diff --git a/epochX/cudacpp/CODEGEN/PLUGIN/CUDACPP_SA_OUTPUT/aloha/template_files/gpu/helas.cu b/epochX/cudacpp/CODEGEN/PLUGIN/CUDACPP_SA_OUTPUT/aloha/template_files/gpu/helas.cu index 2841c66b2f..e9f4ceeb10 100644 --- a/epochX/cudacpp/CODEGEN/PLUGIN/CUDACPP_SA_OUTPUT/aloha/template_files/gpu/helas.cu +++ b/epochX/cudacpp/CODEGEN/PLUGIN/CUDACPP_SA_OUTPUT/aloha/template_files/gpu/helas.cu @@ -1,3 +1,4 @@ +! Copyright (C) 2010 The ALOHA Development team and Contributors. ! Copyright (C) 2010 The MadGraph5_aMC@NLO development team and contributors. ! Created by: J. Alwall (Sep 2010) for the MG5aMC CPP backend. !========================================================================== diff --git a/epochX/cudacpp/CODEGEN/PLUGIN/CUDACPP_SA_OUTPUT/aloha/template_files/gpu/helas.h b/epochX/cudacpp/CODEGEN/PLUGIN/CUDACPP_SA_OUTPUT/aloha/template_files/gpu/helas.h index 6424131df2..931b0c5e25 100644 --- a/epochX/cudacpp/CODEGEN/PLUGIN/CUDACPP_SA_OUTPUT/aloha/template_files/gpu/helas.h +++ b/epochX/cudacpp/CODEGEN/PLUGIN/CUDACPP_SA_OUTPUT/aloha/template_files/gpu/helas.h @@ -1,3 +1,4 @@ +! Copyright (C) 2010 The ALOHA Development team and Contributors. ! Copyright (C) 2010 The MadGraph5_aMC@NLO development team and contributors. ! Created by: J. Alwall (Sep 2010) for the MG5aMC CPP backend. !========================================================================== @@ -164,6 +165,9 @@ const int ipar ) // input: particle# out of npar { mgDebug( 0, __FUNCTION__ ); + // NEW IMPLEMENTATION FIXING FLOATING POINT EXCEPTIONS IN SIMD CODE (#701) + // Variables xxxDENOM are a hack to avoid division-by-0 FPE while preserving speed (#701 and #727) + // Variables xxxDENOM are declared as 'volatile' to make sure they are not optimized away on clang! (#724) const fptype_sv& pvec0 = M_ACCESS::kernelAccessIp4IparConst( momenta, 0, ipar ); const fptype_sv& pvec1 = M_ACCESS::kernelAccessIp4IparConst( momenta, 1, ipar ); const fptype_sv& pvec2 = M_ACCESS::kernelAccessIp4IparConst( momenta, 2, ipar ); @@ -175,6 +179,11 @@ if( fmass != 0. ) { const fptype_sv pp = fpmin( pvec0, fpsqrt( pvec1 * pvec1 + pvec2 * pvec2 + pvec3 * pvec3 ) ); + // In C++ ixxxxx, use a single ip/im numbering that is valid both for pp==0 and pp>0, which have two numbering schemes in Fortran ixxxxx: + // for pp==0, Fortran sqm(0:1) has indexes 0,1 as in C++; but for Fortran pp>0, omega(2) has indexes 1,2 and not 0,1 + // NB: this is only possible in ixxxx, but in oxxxxx two different numbering schemes must be used + const int ip = ( 1 + nh ) / 2; // NB: same as in Fortran pp==0, differs from Fortran pp>0, which is (3+nh)/2 because omega(2) has indexes 1,2 + const int im = ( 1 - nh ) / 2; // NB: same as in Fortran pp==0, differs from Fortran pp>0, which is (3-nh)/2 because omega(2) has indexes 1,2 #ifndef MGONGPU_CPPSIMD if( pp == 0. ) { @@ -182,8 +191,6 @@ fptype sqm[2] = { fpsqrt( std::abs( fmass ) ), 0. }; // possibility of negative fermion masses //sqm[1] = ( fmass < 0. ? -abs( sqm[0] ) : abs( sqm[0] ) ); // AV: why abs here? sqm[1] = ( fmass < 0. ? -sqm[0] : sqm[0] ); // AV: removed an abs here - const int ip = ( 1 + nh ) / 2; // NB: Fortran sqm(0:1) also has indexes 0,1 as in C++ - const int im = ( 1 - nh ) / 2; // NB: Fortran sqm(0:1) also has indexes 0,1 as in C++ fi[2] = cxmake( ip * sqm[ip], 0 ); fi[3] = cxmake( im * nsf * sqm[ip], 0 ); fi[4] = cxmake( ip * nsf * sqm[im], 0 ); @@ -195,8 +202,6 @@ fptype( 1 + nsf - ( 1 - nsf ) * nh ) * (fptype)0.5 }; fptype omega[2] = { fpsqrt( pvec0 + pp ), 0. }; omega[1] = fmass / omega[0]; - const int ip = ( 1 + nh ) / 2; // NB: Fortran is (3+nh)/2 because omega(2) has indexes 1,2 and not 0,1 - const int im = ( 1 - nh ) / 2; // NB: Fortran is (3-nh)/2 because omega(2) has indexes 1,2 and not 0,1 const fptype sfomega[2] = { sf[0] * omega[ip], sf[1] * omega[im] }; const fptype pp3 = fpmax( pp + pvec3, 0. ); const cxtype chi[2] = { cxmake( fpsqrt( pp3 * (fptype)0.5 / pp ), 0. ), @@ -207,8 +212,6 @@ fi[5] = sfomega[1] * chi[ip]; } #else - const int ip = ( 1 + nh ) / 2; - const int im = ( 1 - nh ) / 2; // Branch A: pp == 0. // NB: Do not use "abs" for floats! It returns an integer with no build warning! Use std::abs! fptype sqm[2] = { fpsqrt( std::abs( fmass ) ), 0 }; // possibility of negative fermion masses (NB: SCALAR!) @@ -224,10 +227,12 @@ omega[1] = fmass / omega[0]; const fptype_v sfomega[2] = { sf[0] * omega[ip], sf[1] * omega[im] }; const fptype_v pp3 = fpmax( pp + pvec3, 0 ); - const cxtype_v chi[2] = { cxmake( fpsqrt( pp3 * 0.5 / pp ), 0 ), + volatile fptype_v ppDENOM = fpternary( pp != 0, pp, 1. ); // hack: ppDENOM[ieppV]=1 if pp[ieppV]==0 + volatile fptype_v pp3DENOM = fpternary( pp3 != 0, pp3, 1. ); // hack: pp3DENOM[ieppV]=1 if pp3[ieppV]==0 + const cxtype_v chi[2] = { cxmake( fpsqrt( pp3 * 0.5 / ppDENOM ), 0 ), // hack: dummy[ieppV] is not used if pp[ieppV]==0 cxternary( ( pp3 == 0. ), cxmake( -nh, 0 ), - cxmake( (fptype)nh * pvec1, pvec2 ) / fpsqrt( 2. * pp * pp3 ) ) }; + cxmake( (fptype)nh * pvec1, pvec2 ) / fpsqrt( 2. * ppDENOM * pp3DENOM ) ) }; // hack: dummy[ieppV] is not used if pp[ieppV]==0 const cxtype_v fiB_2 = sfomega[0] * chi[im]; const cxtype_v fiB_3 = sfomega[0] * chi[ip]; const cxtype_v fiB_4 = sfomega[1] * chi[im]; @@ -245,7 +250,16 @@ const fptype_sv sqp0p3 = fpternary( ( pvec1 == 0. and pvec2 == 0. and pvec3 < 0. ), fptype_sv{ 0 }, fpsqrt( fpmax( pvec0 + pvec3, 0. ) ) * (fptype)nsf ); - const cxtype_sv chi[2] = { cxmake( sqp0p3, 0. ), cxternary( ( sqp0p3 == 0. ), cxmake( -(fptype)nhel * fpsqrt( 2. * pvec0 ), 0. ), cxmake( (fptype)nh * pvec1, pvec2 ) / sqp0p3 ) }; +#ifdef MGONGPU_CPPSIMD + volatile fptype_v sqp0p3DENOM = fpternary( sqp0p3 != 0, sqp0p3, 1. ); // hack: dummy sqp0p3DENOM[ieppV]=1 if sqp0p3[ieppV]==0 + cxtype_sv chi[2] = { cxmake( sqp0p3, 0. ), + cxternary( sqp0p3 == 0, + cxmake( -(fptype)nhel * fpsqrt( 2. * pvec0 ), 0. ), + cxmake( (fptype)nh * pvec1, pvec2 ) / (const fptype_v)sqp0p3DENOM ) }; // hack: dummy[ieppV] is not used if sqp0p3[ieppV]==0 +#else + const cxtype_sv chi[2] = { cxmake( sqp0p3, 0. ), + ( sqp0p3 == 0. ? cxmake( -(fptype)nhel * fpsqrt( 2. * pvec0 ), 0. ) : cxmake( (fptype)nh * pvec1, pvec2 ) / sqp0p3 ) }; +#endif if( nh == 1 ) { fi[2] = cxzero_sv(); @@ -396,6 +410,9 @@ const int ipar ) // input: particle# out of npar { mgDebug( 0, __FUNCTION__ ); + // NEW IMPLEMENTATION FIXING FLOATING POINT EXCEPTIONS IN SIMD CODE (#701) + // Variables xxxDENOM are a hack to avoid division-by-0 FPE while preserving speed (#701 and #727) + // Variables xxxDENOM are declared as 'volatile' to make sure they are not optimized away on clang! (#724) const fptype_sv& pvec0 = M_ACCESS::kernelAccessIp4IparConst( momenta, 0, ipar ); const fptype_sv& pvec1 = M_ACCESS::kernelAccessIp4IparConst( momenta, 1, ipar ); const fptype_sv& pvec2 = M_ACCESS::kernelAccessIp4IparConst( momenta, 2, ipar ); @@ -446,13 +463,15 @@ const cxtype vcA_4 = cxmake( 0, nsvahl * sqh ); const cxtype vcA_5 = cxmake( hel0, 0 ); // Branch B: pp != 0. - const fptype_v emp = pvec0 / ( vmass * pp ); + volatile fptype_v ppDENOM = fpternary( pp != 0, pp, 1. ); // hack: ppDENOM[ieppV]=1 if pp[ieppV]==0 + const fptype_v emp = pvec0 / ( vmass * ppDENOM ); // hack: dummy[ieppV] is not used if pp[ieppV]==0 const cxtype_v vcB_2 = cxmake( hel0 * pp / vmass, 0 ); - const cxtype_v vcB_5 = cxmake( hel0 * pvec3 * emp + hel * pt / pp * sqh, 0 ); + const cxtype_v vcB_5 = cxmake( hel0 * pvec3 * emp + hel * pt / ppDENOM * sqh, 0 ); // hack: dummy[ieppV] is not used if pp[ieppV]==0 // Branch B1: pp != 0. and pt != 0. - const fptype_v pzpt = pvec3 / ( pp * pt ) * sqh * hel; - const cxtype_v vcB1_3 = cxmake( hel0 * pvec1 * emp - pvec1 * pzpt, -(fptype)nsvahl * pvec2 / pt * sqh ); - const cxtype_v vcB1_4 = cxmake( hel0 * pvec2 * emp - pvec2 * pzpt, (fptype)nsvahl * pvec1 / pt * sqh ); + volatile fptype_v ptDENOM = fpternary( pt != 0, pt, 1. ); // hack: ptDENOM[ieppV]=1 if pt[ieppV]==0 + const fptype_v pzpt = pvec3 / ( ppDENOM * ptDENOM ) * sqh * hel; // hack: dummy[ieppV] is not used if pp[ieppV]==0 + const cxtype_v vcB1_3 = cxmake( hel0 * pvec1 * emp - pvec1 * pzpt, -(fptype)nsvahl * pvec2 / ptDENOM * sqh ); // hack: dummy[ieppV] is not used if pt[ieppV]==0 + const cxtype_v vcB1_4 = cxmake( hel0 * pvec2 * emp - pvec2 * pzpt, (fptype)nsvahl * pvec1 / ptDENOM * sqh ); // hack: dummy[ieppV] is not used if pt[ieppV]==0 // Branch B2: pp != 0. and pt == 0. const cxtype vcB2_3 = cxmake( -hel * sqh, 0. ); const cxtype_v vcB2_4 = cxmake( 0., (fptype)nsvahl * fpternary( ( pvec3 < 0 ), -sqh, sqh ) ); // AV: removed an abs here @@ -487,9 +506,10 @@ } #else // Branch A: pt != 0. - const fptype_v pzpt = pvec3 / ( pp * pt ) * sqh * hel; - const cxtype_v vcA_3 = cxmake( -pvec1 * pzpt, -(fptype)nsv * pvec2 / pt * sqh ); - const cxtype_v vcA_4 = cxmake( -pvec2 * pzpt, (fptype)nsv * pvec1 / pt * sqh ); + volatile fptype_v ptDENOM = fpternary( pt != 0, pt, 1. ); // hack: ptDENOM[ieppV]=1 if pt[ieppV]==0 + const fptype_v pzpt = pvec3 / ( pp * ptDENOM ) * sqh * hel; // hack: dummy[ieppV] is not used if pt[ieppV]==0 + const cxtype_v vcA_3 = cxmake( -pvec1 * pzpt, -(fptype)nsv * pvec2 / ptDENOM * sqh ); // hack: dummy[ieppV] is not used if pt[ieppV]==0 + const cxtype_v vcA_4 = cxmake( -pvec2 * pzpt, (fptype)nsv * pvec1 / ptDENOM * sqh ); // hack: dummy[ieppV] is not used if pt[ieppV]==0 // Branch B: pt == 0. const cxtype vcB_3 = cxmake( -(fptype)hel * sqh, 0 ); const cxtype_v vcB_4 = cxmake( 0, (fptype)nsv * fpternary( ( pvec3 < 0 ), -sqh, sqh ) ); // AV: removed an abs here @@ -541,6 +561,9 @@ const int ipar ) // input: particle# out of npar { mgDebug( 0, __FUNCTION__ ); + // NEW IMPLEMENTATION FIXING FLOATING POINT EXCEPTIONS IN SIMD CODE (#701) + // Variables xxxDENOM are a hack to avoid division-by-0 FPE while preserving speed (#701 and #727) + // Variables xxxDENOM are declared as 'volatile' to make sure they are not optimized away on clang! (#724) const fptype_sv& pvec0 = M_ACCESS::kernelAccessIp4IparConst( momenta, 0, ipar ); const fptype_sv& pvec1 = M_ACCESS::kernelAccessIp4IparConst( momenta, 1, ipar ); const fptype_sv& pvec2 = M_ACCESS::kernelAccessIp4IparConst( momenta, 2, ipar ); @@ -604,10 +627,12 @@ const int imB = ( 1 - nh ) / 2; const fptype_v sfomeg[2] = { sf[0] * omega[ipB], sf[1] * omega[imB] }; const fptype_v pp3 = fpmax( pp + pvec3, 0. ); - const cxtype_v chi[2] = { cxmake( fpsqrt( pp3 * 0.5 / pp ), 0. ), + volatile fptype_v ppDENOM = fpternary( pp != 0, pp, 1. ); // hack: ppDENOM[ieppV]=1 if pp[ieppV]==0 + volatile fptype_v pp3DENOM = fpternary( pp3 != 0, pp3, 1. ); // hack: pp3DENOM[ieppV]=1 if pp3[ieppV]==0 + const cxtype_v chi[2] = { cxmake( fpsqrt( pp3 * 0.5 / ppDENOM ), 0. ), // hack: dummy[ieppV] is not used if pp[ieppV]==0 ( cxternary( ( pp3 == 0. ), cxmake( -nh, 0. ), - cxmake( (fptype)nh * pvec1, -pvec2 ) / fpsqrt( 2. * pp * pp3 ) ) ) }; + cxmake( (fptype)nh * pvec1, -pvec2 ) / fpsqrt( 2. * ppDENOM * pp3DENOM ) ) ) }; // hack: dummy[ieppV] is not used if pp[ieppV]==0 const cxtype_v foB_2 = sfomeg[1] * chi[imB]; const cxtype_v foB_3 = sfomeg[1] * chi[ipB]; const cxtype_v foB_4 = sfomeg[0] * chi[imB]; @@ -625,10 +650,16 @@ const fptype_sv sqp0p3 = fpternary( ( pvec1 == 0. ) and ( pvec2 == 0. ) and ( pvec3 < 0. ), 0, fpsqrt( fpmax( pvec0 + pvec3, 0. ) ) * (fptype)nsf ); +#ifdef MGONGPU_CPPSIMD + volatile fptype_v sqp0p3DENOM = fpternary( sqp0p3 != 0, sqp0p3, 1. ); // hack: sqp0p3DENOM[ieppV]=1 if sqp0p3[ieppV]==0 + const cxtype_v chi[2] = { cxmake( sqp0p3, 0. ), + cxternary( ( sqp0p3 == 0. ), + cxmake( -nhel, 0. ) * fpsqrt( 2. * pvec0 ), + cxmake( (fptype)nh * pvec1, -pvec2 ) / (const fptype_sv)sqp0p3DENOM ) }; // hack: dummy[ieppV] is not used if sqp0p3[ieppV]==0 +#else const cxtype_sv chi[2] = { cxmake( sqp0p3, 0. ), - cxternary( ( sqp0p3 == 0. ), - cxmake( -nhel, 0. ) * fpsqrt( 2. * pvec0 ), - cxmake( (fptype)nh * pvec1, -pvec2 ) / sqp0p3 ) }; + ( sqp0p3 == 0. ? cxmake( -nhel, 0. ) * fpsqrt( 2. * pvec0 ) : cxmake( (fptype)nh * pvec1, -pvec2 ) / sqp0p3 ) }; +#endif if( nh == 1 ) { fo[2] = chi[0]; diff --git a/epochX/cudacpp/CODEGEN/PLUGIN/CUDACPP_SA_OUTPUT/madgraph/iolibs/template_files/cpp_model_parameters_cc.inc b/epochX/cudacpp/CODEGEN/PLUGIN/CUDACPP_SA_OUTPUT/madgraph/iolibs/template_files/cpp_model_parameters_cc.inc index 6dc8ed45a7..3c231bdbd6 100644 --- a/epochX/cudacpp/CODEGEN/PLUGIN/CUDACPP_SA_OUTPUT/madgraph/iolibs/template_files/cpp_model_parameters_cc.inc +++ b/epochX/cudacpp/CODEGEN/PLUGIN/CUDACPP_SA_OUTPUT/madgraph/iolibs/template_files/cpp_model_parameters_cc.inc @@ -15,6 +15,12 @@ #include #include +#ifdef __CUDACC__ +using namespace mg5amcGpu; +#else +using namespace mg5amcCpu; +#endif + #ifndef MGONGPU_HARDCODE_PARAM // Initialize static instance diff --git a/epochX/cudacpp/CODEGEN/PLUGIN/CUDACPP_SA_OUTPUT/madgraph/iolibs/template_files/cpp_model_parameters_h.inc b/epochX/cudacpp/CODEGEN/PLUGIN/CUDACPP_SA_OUTPUT/madgraph/iolibs/template_files/cpp_model_parameters_h.inc index 8920a10618..0250c160ed 100644 --- a/epochX/cudacpp/CODEGEN/PLUGIN/CUDACPP_SA_OUTPUT/madgraph/iolibs/template_files/cpp_model_parameters_h.inc +++ b/epochX/cudacpp/CODEGEN/PLUGIN/CUDACPP_SA_OUTPUT/madgraph/iolibs/template_files/cpp_model_parameters_h.inc @@ -24,126 +24,151 @@ #include "read_slha.h" -class Parameters_%(model_name)s +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { -public: + class Parameters_%(model_name)s + { + public: + + static Parameters_%(model_name)s* getInstance(); - static Parameters_%(model_name)s* getInstance(); + // Define "zero" + double zero, ZERO; - // Define "zero" - double zero, ZERO; + %(independent_parameters)s - %(independent_parameters)s + %(independent_couplings)s - %(independent_couplings)s + %(dependent_parameters)s - %(dependent_parameters)s + %(dependent_couplings)s - %(dependent_couplings)s + // Set parameters that are unchanged during the run + void setIndependentParameters( SLHAReader& slha ); - // Set parameters that are unchanged during the run - void setIndependentParameters( SLHAReader& slha ); + // Set couplings that are unchanged during the run + void setIndependentCouplings(); - // Set couplings that are unchanged during the run - void setIndependentCouplings(); + // Set parameters that are changed event by event + //void setDependentParameters(); // now computed event-by-event (running alphas #373) - // Set parameters that are changed event by event - //void setDependentParameters(); // now computed event-by-event (running alphas #373) + // Set couplings that are changed event by event + //void setDependentCouplings(); // now computed event-by-event (running alphas #373) - // Set couplings that are changed event by event - //void setDependentCouplings(); // now computed event-by-event (running alphas #373) + // Print parameters that are unchanged during the run + void printIndependentParameters(); - // Print parameters that are unchanged during the run - void printIndependentParameters(); + // Print couplings that are unchanged during the run + void printIndependentCouplings(); - // Print couplings that are unchanged during the run - void printIndependentCouplings(); + // Print parameters that are changed event by event + //void printDependentParameters(); // now computed event-by-event (running alphas #373) - // Print parameters that are changed event by event - //void printDependentParameters(); // now computed event-by-event (running alphas #373) + // Print couplings that are changed event by event + //void printDependentCouplings(); // now computed event-by-event (running alphas #373) - // Print couplings that are changed event by event - //void printDependentCouplings(); // now computed event-by-event (running alphas #373) + private: -private: + static Parameters_%(model_name)s* instance; + }; - static Parameters_%(model_name)s* instance; -}; +} // end namespace mg5amcGpu/mg5amcCpu #else #include #include -// Hardcoded constexpr physics parameters -namespace Parameters_%(model_name)s // keep the same name rather than HardcodedParameters_%(model_name)s for simplicity +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { - // Constexpr implementation of sqrt (see https://stackoverflow.com/a/34134071) - double constexpr sqrtNewtonRaphson( double x, double curr, double prev ) - { - return curr == prev ? curr : sqrtNewtonRaphson( x, 0.5 * ( curr + x / curr ), curr ); - } - double constexpr constexpr_sqrt( double x ) + // Hardcoded constexpr physics parameters + namespace Parameters_%(model_name)s // keep the same name rather than HardcodedParameters_%(model_name)s for simplicity { - return x >= 0 // && x < std::numeric_limits::infinity() // avoid -Wtautological-constant-compare warning in fast math - ? sqrtNewtonRaphson( x, x, 0 ) - : std::numeric_limits::quiet_NaN(); - } + // Constexpr implementation of sqrt (see https://stackoverflow.com/a/34134071) + double constexpr sqrtNewtonRaphson( double x, double curr, double prev ) + { + return curr == prev ? curr : sqrtNewtonRaphson( x, 0.5 * ( curr + x / curr ), curr ); + } + double constexpr constexpr_sqrt( double x ) + { + return x >= 0 // && x < std::numeric_limits::infinity() // avoid -Wtautological-constant-compare warning in fast math + ? sqrtNewtonRaphson( x, x, 0 ) + : std::numeric_limits::quiet_NaN(); + } - // Constexpr implementation of floor (see https://stackoverflow.com/a/66146159) - constexpr int constexpr_floor( double d ) - { - const int i = static_cast( d ); - return d < i ? i - 1 : i; - } + // Constexpr implementation of floor (see https://stackoverflow.com/a/66146159) + constexpr int constexpr_floor( double d ) + { + const int i = static_cast( d ); + return d < i ? i - 1 : i; + } - // Constexpr implementation of pow - constexpr double constexpr_pow( double base, double exp ) - { - // NB(1): this implementation of constexpr_pow requires exponent >= 0 - assert( exp >= 0 ); // NB would fail at compile time with "error: call to non-‘constexpr’ function ‘void __assert_fail'" - // NB(2): this implementation of constexpr_pow requires an integer exponent - const int iexp = constexpr_floor( exp ); - assert( static_cast( iexp ) == exp ); // NB would fail at compile time with "error: call to non-‘constexpr’ function ‘void __assert_fail'" - // Iterative implementation of pow if exp is a non negative integer - return iexp == 0 ? 1 : base * constexpr_pow( base, iexp - 1 ); + // Constexpr implementation of pow + constexpr double constexpr_pow( double base, double exp ) + { + // NB(1): this implementation of constexpr_pow requires exponent >= 0 + assert( exp >= 0 ); // NB would fail at compile time with "error: call to non-‘constexpr’ function ‘void __assert_fail'" + // NB(2): this implementation of constexpr_pow requires an integer exponent + const int iexp = constexpr_floor( exp ); + assert( static_cast( iexp ) == exp ); // NB would fail at compile time with "error: call to non-‘constexpr’ function ‘void __assert_fail'" + // Iterative implementation of pow if exp is a non negative integer + return iexp == 0 ? 1 : base * constexpr_pow( base, iexp - 1 ); + } + + // Model parameters independent of aS + constexpr double zero = 0; + constexpr double ZERO = 0; + %(hardcoded_independent_parameters)s + // Model couplings independent of aS + %(hardcoded_independent_couplings)s + // Model parameters dependent on aS + %(hardcoded_dependent_parameters)s + // Model couplings dependent on aS + %(hardcoded_dependent_couplings)s + // Print parameters that are unchanged during the run + void printIndependentParameters(); + + // Print couplings that are unchanged during the run + void printIndependentCouplings(); + + // Print parameters that are changed event by event + //void printDependentParameters(); // now computed event-by-event (running alphas #373) + + // Print couplings that are changed event by event + //void printDependentCouplings(); // now computed event-by-event (running alphas #373) } - // Model parameters independent of aS - constexpr double zero = 0; - constexpr double ZERO = 0; - %(hardcoded_independent_parameters)s - // Model couplings independent of aS - %(hardcoded_independent_couplings)s - // Model parameters dependent on aS - %(hardcoded_dependent_parameters)s - // Model couplings dependent on aS - %(hardcoded_dependent_couplings)s - // Print parameters that are unchanged during the run - void printIndependentParameters(); - - // Print couplings that are unchanged during the run - void printIndependentCouplings(); - - // Print parameters that are changed event by event - //void printDependentParameters(); // now computed event-by-event (running alphas #373) - - // Print couplings that are changed event by event - //void printDependentCouplings(); // now computed event-by-event (running alphas #373) -} +} // end namespace mg5amcGpu/mg5amcCpu #endif //========================================================================== -namespace Parameters_%(model_name)s_dependentCouplings +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { - constexpr size_t ndcoup = %(ndcoup)d; // #couplings that vary event by event because they depend on the running alphas QCD -%(idcoup)s - struct DependentCouplings_sv + namespace Parameters_%(model_name)s_dependentCouplings { + constexpr size_t ndcoup = %(ndcoup)d; // #couplings that vary event by event because they depend on the running alphas QCD +%(idcoup)s + struct DependentCouplings_sv + { %(dcoupdecl)s - }; + }; #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wunused-variable" // e.g. <> #pragma GCC diagnostic ignored "-Wunused-parameter" // e.g. <> @@ -151,48 +176,42 @@ namespace Parameters_%(model_name)s_dependentCouplings #pragma nv_diagnostic push #pragma nv_diag_suppress 177 // e.g. <> #endif - __host__ __device__ inline const DependentCouplings_sv computeDependentCouplings_fromG( const fptype_sv& G_sv ) - { + __host__ __device__ inline const DependentCouplings_sv computeDependentCouplings_fromG( const fptype_sv& G_sv ) + { #ifdef MGONGPU_HARDCODE_PARAM - using namespace Parameters_%(model_name)s; + using namespace Parameters_%(model_name)s; #endif - // NB: hardcode cxtype cI(0,1) instead of cxtype (or hardcoded cxsmpl) mdl_complexi (which exists in Parameters_%(model_name)s) because: - // (1) mdl_complexi is always (0,1); (2) mdl_complexi is undefined in device code; (3) need cxsmpl conversion to cxtype in code below - const cxtype cI( 0., 1. ); - DependentCouplings_sv out; + // NB: hardcode cxtype cI(0,1) instead of cxtype (or hardcoded cxsmpl) mdl_complexi (which exists in Parameters_%(model_name)s) because: + // (1) mdl_complexi is always (0,1); (2) mdl_complexi is undefined in device code; (3) need cxsmpl conversion to cxtype in code below + const cxtype cI( 0., 1. ); + DependentCouplings_sv out; %(eftspecial1)s - { - const fptype_sv& G = G_sv; - // Model parameters dependent on aS + { + const fptype_sv& G = G_sv; + // Model parameters dependent on aS %(dcoupsetdpar)s - // Model couplings dependent on aS + // Model couplings dependent on aS %(dcoupsetdcoup)s - } + } %(eftspecial2)s - return out; - } + return out; + } #ifdef __CUDACC__ #pragma GCC diagnostic pop #pragma nv_diagnostic pop #endif -} + } -//========================================================================== + //========================================================================== -namespace Parameters_%(model_name)s_independentCouplings -{ - constexpr size_t nicoup = %(nicoup)d; // #couplings that are fixed for all events because they do not depend on the running alphas QCD + namespace Parameters_%(model_name)s_independentCouplings + { + constexpr size_t nicoup = %(nicoup)d; // #couplings that are fixed for all events because they do not depend on the running alphas QCD %(iicoup)s -} + } -//========================================================================== + //========================================================================== -#ifdef __CUDACC__ -namespace mg5amcGpu -#else -namespace mg5amcCpu -#endif -{ #pragma GCC diagnostic push #ifndef __clang__ #pragma GCC diagnostic ignored "-Wunused-but-set-variable" // e.g. <> @@ -212,7 +231,8 @@ namespace mg5amcCpu return; } #pragma GCC diagnostic pop -} + +} // end namespace mg5amcGpu/mg5amcCpu //========================================================================== diff --git a/epochX/cudacpp/CODEGEN/PLUGIN/CUDACPP_SA_OUTPUT/madgraph/iolibs/template_files/gpu/Bridge.h b/epochX/cudacpp/CODEGEN/PLUGIN/CUDACPP_SA_OUTPUT/madgraph/iolibs/template_files/gpu/Bridge.h index 4cafe0c997..d7e629cacd 100644 --- a/epochX/cudacpp/CODEGEN/PLUGIN/CUDACPP_SA_OUTPUT/madgraph/iolibs/template_files/gpu/Bridge.h +++ b/epochX/cudacpp/CODEGEN/PLUGIN/CUDACPP_SA_OUTPUT/madgraph/iolibs/template_files/gpu/Bridge.h @@ -152,32 +152,32 @@ namespace mg5amcCpu #ifdef __CUDACC__ int m_gputhreads; // number of gpu threads (default set from number of events, can be modified) int m_gpublocks; // number of gpu blocks (default set from number of events, can be modified) - mg5amcGpu::DeviceBuffer m_devMomentaF; - mg5amcGpu::DeviceBufferMomenta m_devMomentaC; - mg5amcGpu::DeviceBufferGs m_devGs; - mg5amcGpu::DeviceBufferRndNumHelicity m_devRndHel; - mg5amcGpu::DeviceBufferRndNumColor m_devRndCol; - mg5amcGpu::DeviceBufferMatrixElements m_devMEs; - mg5amcGpu::DeviceBufferSelectedHelicity m_devSelHel; - mg5amcGpu::DeviceBufferSelectedColor m_devSelCol; - mg5amcGpu::PinnedHostBufferGs m_hstGs; - mg5amcGpu::PinnedHostBufferRndNumHelicity m_hstRndHel; - mg5amcGpu::PinnedHostBufferRndNumColor m_hstRndCol; - mg5amcGpu::PinnedHostBufferMatrixElements m_hstMEs; - mg5amcGpu::PinnedHostBufferSelectedHelicity m_hstSelHel; - mg5amcGpu::PinnedHostBufferSelectedColor m_hstSelCol; - std::unique_ptr m_pmek; + DeviceBuffer m_devMomentaF; + DeviceBufferMomenta m_devMomentaC; + DeviceBufferGs m_devGs; + DeviceBufferRndNumHelicity m_devRndHel; + DeviceBufferRndNumColor m_devRndCol; + DeviceBufferMatrixElements m_devMEs; + DeviceBufferSelectedHelicity m_devSelHel; + DeviceBufferSelectedColor m_devSelCol; + PinnedHostBufferGs m_hstGs; + PinnedHostBufferRndNumHelicity m_hstRndHel; + PinnedHostBufferRndNumColor m_hstRndCol; + PinnedHostBufferMatrixElements m_hstMEs; + PinnedHostBufferSelectedHelicity m_hstSelHel; + PinnedHostBufferSelectedColor m_hstSelCol; + std::unique_ptr m_pmek; //static constexpr int s_gputhreadsmin = 16; // minimum number of gpu threads (TEST VALUE FOR MADEVENT) static constexpr int s_gputhreadsmin = 32; // minimum number of gpu threads (DEFAULT) #else - mg5amcCpu::HostBufferMomenta m_hstMomentaC; - mg5amcCpu::HostBufferGs m_hstGs; - mg5amcCpu::HostBufferRndNumHelicity m_hstRndHel; - mg5amcCpu::HostBufferRndNumColor m_hstRndCol; - mg5amcCpu::HostBufferMatrixElements m_hstMEs; - mg5amcCpu::HostBufferSelectedHelicity m_hstSelHel; - mg5amcCpu::HostBufferSelectedColor m_hstSelCol; - std::unique_ptr m_pmek; + HostBufferMomenta m_hstMomentaC; + HostBufferGs m_hstGs; + HostBufferRndNumHelicity m_hstRndHel; + HostBufferRndNumColor m_hstRndCol; + HostBufferMatrixElements m_hstMEs; + HostBufferSelectedHelicity m_hstSelHel; + HostBufferSelectedColor m_hstSelCol; + std::unique_ptr m_pmek; #endif }; @@ -244,12 +244,12 @@ namespace mg5amcCpu } std::cout << "WARNING! Instantiate device Bridge (nevt=" << m_nevt << ", gpublocks=" << m_gpublocks << ", gputhreads=" << m_gputhreads << ", gpublocks*gputhreads=" << m_gpublocks * m_gputhreads << ")" << std::endl; - mg5amcGpu::CPPProcess process( /*verbose=*/false ); - m_pmek.reset( new mg5amcGpu::MatrixElementKernelDevice( m_devMomentaC, m_devGs, m_devRndHel, m_devRndCol, m_devMEs, m_devSelHel, m_devSelCol, m_gpublocks, m_gputhreads ) ); + CPPProcess process( /*verbose=*/false ); + m_pmek.reset( new MatrixElementKernelDevice( m_devMomentaC, m_devGs, m_devRndHel, m_devRndCol, m_devMEs, m_devSelHel, m_devSelCol, m_gpublocks, m_gputhreads ) ); #else std::cout << "WARNING! Instantiate host Bridge (nevt=" << m_nevt << ")" << std::endl; - mg5amcCpu::CPPProcess process( /*verbose=*/false ); - m_pmek.reset( new mg5amcCpu::MatrixElementKernelHost( m_hstMomentaC, m_hstGs, m_hstRndHel, m_hstRndCol, m_hstMEs, m_hstSelHel, m_hstSelCol, m_nevt ) ); + CPPProcess process( /*verbose=*/false ); + m_pmek.reset( new MatrixElementKernelHost( m_hstMomentaC, m_hstGs, m_hstRndHel, m_hstRndCol, m_hstMEs, m_hstSelHel, m_hstSelCol, m_nevt ) ); #endif // __CUDACC__ process.initProc( "../../Cards/param_card.dat" ); } diff --git a/epochX/cudacpp/CODEGEN/PLUGIN/CUDACPP_SA_OUTPUT/madgraph/iolibs/template_files/gpu/BridgeKernels.cc b/epochX/cudacpp/CODEGEN/PLUGIN/CUDACPP_SA_OUTPUT/madgraph/iolibs/template_files/gpu/BridgeKernels.cc index cef4cb3c71..d58066c9c1 100644 --- a/epochX/cudacpp/CODEGEN/PLUGIN/CUDACPP_SA_OUTPUT/madgraph/iolibs/template_files/gpu/BridgeKernels.cc +++ b/epochX/cudacpp/CODEGEN/PLUGIN/CUDACPP_SA_OUTPUT/madgraph/iolibs/template_files/gpu/BridgeKernels.cc @@ -9,9 +9,6 @@ #include -constexpr int np4 = CPPProcess::np4; // dimensions of 4-momenta (E,px,py,pz) -constexpr int npar = CPPProcess::npar; // #particles in total (external = initial + final): e.g. 4 for e+ e- -> mu+ mu- - //============================================================================ #ifdef __CUDACC__ @@ -20,6 +17,9 @@ namespace mg5amcGpu namespace mg5amcCpu #endif { + constexpr int np4 = CPPProcess::np4; // dimensions of 4-momenta (E,px,py,pz) + constexpr int npar = CPPProcess::npar; // #particles in total (external = initial + final): e.g. 4 for e+ e- -> mu+ mu- + //-------------------------------------------------------------------------- BridgeKernelBase::BridgeKernelBase( const BufferMomenta& momenta, // input: momenta diff --git a/epochX/cudacpp/CODEGEN/PLUGIN/CUDACPP_SA_OUTPUT/madgraph/iolibs/template_files/gpu/MemoryAccessAmplitudes.h b/epochX/cudacpp/CODEGEN/PLUGIN/CUDACPP_SA_OUTPUT/madgraph/iolibs/template_files/gpu/MemoryAccessAmplitudes.h index 68f6838b5c..573b3bbbc9 100644 --- a/epochX/cudacpp/CODEGEN/PLUGIN/CUDACPP_SA_OUTPUT/madgraph/iolibs/template_files/gpu/MemoryAccessAmplitudes.h +++ b/epochX/cudacpp/CODEGEN/PLUGIN/CUDACPP_SA_OUTPUT/madgraph/iolibs/template_files/gpu/MemoryAccessAmplitudes.h @@ -14,142 +14,151 @@ #define MGONGPU_TRIVIAL_AMPLITUDES 1 -//---------------------------------------------------------------------------- - -#ifndef MGONGPU_TRIVIAL_AMPLITUDES - -// A class describing the internal layout of memory buffers for amplitudes -// This implementation uses an AOSOA[npagA][nx2][neppA] where nevt=npagA*neppA -// [If many implementations are used, a suffix _AOSOAv1 should be appended to the class name] -class MemoryAccessAmplitudesBase //_AOSOAv1 +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { -public: - - // Number of Events Per Page in the amplitude AOSOA memory buffer layout - static constexpr int neppA = 1; // AOS (just a test...) + //---------------------------------------------------------------------------- -private: - - friend class MemoryAccessHelper; - friend class KernelAccessHelper; - friend class KernelAccessHelper; - - // The number of floating point components of a complex number - static constexpr int nx2 = mgOnGpu::nx2; - - //-------------------------------------------------------------------------- - // NB all KernelLaunchers assume that memory access can be decomposed as "accessField = decodeRecord( accessRecord )" - // (in other words: first locate the event record for a given event, then locate an element in that record) - //-------------------------------------------------------------------------- +#ifndef MGONGPU_TRIVIAL_AMPLITUDES - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] - static __host__ __device__ inline fptype* - ieventAccessRecord( fptype* buffer, - const int ievt ) + // A class describing the internal layout of memory buffers for amplitudes + // This implementation uses an AOSOA[npagA][nx2][neppA] where nevt=npagA*neppA + // [If many implementations are used, a suffix _AOSOAv1 should be appended to the class name] + class MemoryAccessAmplitudesBase //_AOSOAv1 { - const int ipagA = ievt / neppA; // #event "A-page" - const int ieppA = ievt % neppA; // #event in the current event A-page - constexpr int ix2 = 0; - return &( buffer[ipagA * nx2 * neppA + ix2 * neppA + ieppA] ); // AOSOA[ipagA][ix2][ieppA] - } - - //-------------------------------------------------------------------------- - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, Ts... args ) <===] - // [NB: expand variadic template "Ts... args" to "const int ix2" and rename "Field" as "Ix2"] - static __host__ __device__ inline fptype& - decodeRecord( fptype* buffer, - const int ix2 ) + public: + + // Number of Events Per Page in the amplitude AOSOA memory buffer layout + static constexpr int neppA = 1; // AOS (just a test...) + + private: + + friend class MemoryAccessHelper; + friend class KernelAccessHelper; + friend class KernelAccessHelper; + + // The number of floating point components of a complex number + static constexpr int nx2 = mgOnGpu::nx2; + + //-------------------------------------------------------------------------- + // NB all KernelLaunchers assume that memory access can be decomposed as "accessField = decodeRecord( accessRecord )" + // (in other words: first locate the event record for a given event, then locate an element in that record) + //-------------------------------------------------------------------------- + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] + static __host__ __device__ inline fptype* + ieventAccessRecord( fptype* buffer, + const int ievt ) + { + const int ipagA = ievt / neppA; // #event "A-page" + const int ieppA = ievt % neppA; // #event in the current event A-page + constexpr int ix2 = 0; + return &( buffer[ipagA * nx2 * neppA + ix2 * neppA + ieppA] ); // AOSOA[ipagA][ix2][ieppA] + } + + //-------------------------------------------------------------------------- + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, Ts... args ) <===] + // [NB: expand variadic template "Ts... args" to "const int ix2" and rename "Field" as "Ix2"] + static __host__ __device__ inline fptype& + decodeRecord( fptype* buffer, + const int ix2 ) + { + constexpr int ipagA = 0; + constexpr int ieppA = 0; + return buffer[ipagA * nx2 * neppA + ix2 * neppA + ieppA]; // AOSOA[ipagA][ix2][ieppA] + } + }; + + //---------------------------------------------------------------------------- + + // A class providing access to memory buffers for a given event, based on explicit event numbers + // Its methods use the MemoryAccessHelper templates - note the use of the template keyword in template function instantiations + class MemoryAccessAmplitudes : public MemoryAccessAmplitudesBase { - constexpr int ipagA = 0; - constexpr int ieppA = 0; - return buffer[ipagA * nx2 * neppA + ix2 * neppA + ieppA]; // AOSOA[ipagA][ix2][ieppA] - } -}; + public: -//---------------------------------------------------------------------------- + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] + static constexpr auto ieventAccessRecord = MemoryAccessHelper::ieventAccessRecord; -// A class providing access to memory buffers for a given event, based on explicit event numbers -// Its methods use the MemoryAccessHelper templates - note the use of the template keyword in template function instantiations -class MemoryAccessAmplitudes : public MemoryAccessAmplitudesBase -{ -public: - - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] - static constexpr auto ieventAccessRecord = MemoryAccessHelper::ieventAccessRecord; + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (const) ===> const fptype* ieventAccessRecordConst( const fptype* buffer, const int ievt ) <===] + static constexpr auto ieventAccessRecordConst = MemoryAccessHelper::ieventAccessRecordConst; - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (const) ===> const fptype* ieventAccessRecordConst( const fptype* buffer, const int ievt ) <===] - static constexpr auto ieventAccessRecordConst = MemoryAccessHelper::ieventAccessRecordConst; + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, const int ix2 ) <===] + static constexpr auto decodeRecordIx2 = MemoryAccessHelper::decodeRecord; - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, const int ix2 ) <===] - static constexpr auto decodeRecordIx2 = MemoryAccessHelper::decodeRecord; + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (const) ===> const fptype& decodeRecordConst( const fptype* buffer, const int ix2 ) <===] + static constexpr auto decodeRecordIx2Const = + MemoryAccessHelper::template decodeRecordConst; - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (const) ===> const fptype& decodeRecordConst( const fptype* buffer, const int ix2 ) <===] - static constexpr auto decodeRecordIx2Const = - MemoryAccessHelper::template decodeRecordConst; + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (non-const) ===> fptype& ieventAccessIx2( fptype* buffer, const ievt, const int ix2 ) <===] + static constexpr auto ieventAccessIx2 = + MemoryAccessHelper::template ieventAccessField; - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (non-const) ===> fptype& ieventAccessIx2( fptype* buffer, const ievt, const int ix2 ) <===] - static constexpr auto ieventAccessIx2 = - MemoryAccessHelper::template ieventAccessField; - - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (const) ===> const fptype& ieventAccessIx2Const( const fptype* buffer, const ievt, const int ix2 ) <===] - static constexpr auto ieventAccessIx2Const = - MemoryAccessHelper::template ieventAccessFieldConst; -}; + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (const) ===> const fptype& ieventAccessIx2Const( const fptype* buffer, const ievt, const int ix2 ) <===] + static constexpr auto ieventAccessIx2Const = + MemoryAccessHelper::template ieventAccessFieldConst; + }; #endif // #ifndef MGONGPU_TRIVIAL_AMPLITUDES -//---------------------------------------------------------------------------- + //---------------------------------------------------------------------------- -// A class providing access to memory buffers for a given event, based on implicit kernel rules -// Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations -template -class KernelAccessAmplitudes -{ -public: + // A class providing access to memory buffers for a given event, based on implicit kernel rules + // Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations + template + class KernelAccessAmplitudes + { + public: #ifndef MGONGPU_TRIVIAL_AMPLITUDES - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (non-const) ===> fptype& kernelAccessIx2( fptype* buffer, const int ix2 ) <===] - static constexpr auto kernelAccessIx2 = - KernelAccessHelper::template kernelAccessField; + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (non-const) ===> fptype& kernelAccessIx2( fptype* buffer, const int ix2 ) <===] + static constexpr auto kernelAccessIx2 = + KernelAccessHelper::template kernelAccessField; - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (const) ===> const fptype& kernelAccessIx2Const( const fptype* buffer, const int ix2 ) <===] - static constexpr auto kernelAccessIx2Const = - KernelAccessHelper::template kernelAccessFieldConst; + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (const) ===> const fptype& kernelAccessIx2Const( const fptype* buffer, const int ix2 ) <===] + static constexpr auto kernelAccessIx2Const = + KernelAccessHelper::template kernelAccessFieldConst; #else - static __host__ __device__ inline cxtype_sv* - kernelAccess( fptype* buffer ) - { - return reinterpret_cast( buffer ); - } + static __host__ __device__ inline cxtype_sv* + kernelAccess( fptype* buffer ) + { + return reinterpret_cast( buffer ); + } - static __host__ __device__ inline const cxtype_sv* - kernelAccessConst( const fptype* buffer ) - { - return reinterpret_cast( buffer ); - } + static __host__ __device__ inline const cxtype_sv* + kernelAccessConst( const fptype* buffer ) + { + return reinterpret_cast( buffer ); + } #endif // #ifndef MGONGPU_TRIVIAL_AMPLITUDES -}; + }; + + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- + typedef KernelAccessAmplitudes HostAccessAmplitudes; + typedef KernelAccessAmplitudes DeviceAccessAmplitudes; -typedef KernelAccessAmplitudes HostAccessAmplitudes; -typedef KernelAccessAmplitudes DeviceAccessAmplitudes; + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- +} // end namespace mg5amcGpu/mg5amcCpu #endif // MemoryAccessAmplitudes_H diff --git a/epochX/cudacpp/CODEGEN/PLUGIN/CUDACPP_SA_OUTPUT/madgraph/iolibs/template_files/gpu/MemoryAccessCouplings.h b/epochX/cudacpp/CODEGEN/PLUGIN/CUDACPP_SA_OUTPUT/madgraph/iolibs/template_files/gpu/MemoryAccessCouplings.h index 8f732844b9..1afc589b11 100644 --- a/epochX/cudacpp/CODEGEN/PLUGIN/CUDACPP_SA_OUTPUT/madgraph/iolibs/template_files/gpu/MemoryAccessCouplings.h +++ b/epochX/cudacpp/CODEGEN/PLUGIN/CUDACPP_SA_OUTPUT/madgraph/iolibs/template_files/gpu/MemoryAccessCouplings.h @@ -14,248 +14,257 @@ #include "MemoryAccessMomenta.h" // for MemoryAccessMomentaBase::neppM #include "MemoryBuffers.h" // for HostBufferCouplings::isaligned -//---------------------------------------------------------------------------- - -// A class describing the internal layout of memory buffers for couplings -// This implementation uses an AOSOA[npagC][ndcoup][nx2][neppC] "super-buffer" where nevt=npagC*neppC -// From the "super-buffer" for ndcoup different couplings, use idcoupAccessBuffer to access the buffer for one specific coupling -// [If many implementations are used, a suffix _AOSOAv1 should be appended to the class name] -class MemoryAccessCouplingsBase //_AOSOAv1 +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { -public: - - // Number of Events Per Page in the coupling AOSOA memory buffer layout - static constexpr int neppC = MemoryAccessMomentaBase::neppM; // use the same AOSOA striding as for momenta - - // SANITY CHECK: check that neppC is a power of two - static_assert( ispoweroftwo( neppC ), "neppC is not a power of 2" ); - - //-------------------------------------------------------------------------- - // ** NB! A single super-buffer AOSOA[npagC][ndcoup][nx2][neppC] includes data for ndcoup different couplings ** - // ** NB! The ieventAccessRecord and kernelAccess functions refer to the buffer for one individual coupling ** - // ** NB! Use idcoupAccessBuffer to add a fixed offset and locate the buffer for one given individual coupling ** - //-------------------------------------------------------------------------- - - // Locate the buffer for a single coupling (output) in a memory super-buffer (input) from the given coupling index (input) - // [Signature (non-const) ===> fptype* idcoupAccessBuffer( fptype* buffer, const int idcoup ) <===] - // NB: keep this in public even if exposed through KernelAccessCouplings: nvcc says it is inaccesible otherwise? - static __host__ __device__ inline fptype* - idcoupAccessBuffer( fptype* buffer, // input "super-buffer" - const int idcoup ) - { - constexpr int ipagC = 0; - constexpr int ieppC = 0; - constexpr int ix2 = 0; - // NB! this effectively adds an offset "idcoup * nx2 * neppC" - return &( buffer[ipagC * ndcoup * nx2 * neppC + idcoup * nx2 * neppC + ix2 * neppC + ieppC] ); // AOSOA[ipagC][idcoup][ix2][ieppC] - } - - // Locate the buffer for a single coupling (output) in a memory super-buffer (input) from the given coupling index (input) - // [Signature (const) ===> const fptype* idcoupAccessBufferConst( const fptype* buffer, const int idcoup ) <===] - // NB: keep this in public even if exposed through KernelAccessCouplings: nvcc says it is inaccesible otherwise? - static __host__ __device__ inline const fptype* - idcoupAccessBufferConst( const fptype* buffer, // input "super-buffer" - const int idcoup ) - { - return idcoupAccessBuffer( const_cast( buffer ), idcoup ); - } - -private: + //---------------------------------------------------------------------------- - friend class MemoryAccessHelper; - friend class KernelAccessHelper; - friend class KernelAccessHelper; - - // The number of couplings that dependent on the running alphas QCD in this specific process - static constexpr size_t ndcoup = Parameters_%(model_name)s_dependentCouplings::ndcoup; - - // The number of floating point components of a complex number - static constexpr int nx2 = mgOnGpu::nx2; - - //-------------------------------------------------------------------------- - // NB all KernelLaunchers assume that memory access can be decomposed as "accessField = decodeRecord( accessRecord )" - // (in other words: first locate the event record for a given event, then locate an element in that record) - //-------------------------------------------------------------------------- - - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] - static __host__ __device__ inline fptype* - ieventAccessRecord( fptype* buffer, - const int ievt ) + // A class describing the internal layout of memory buffers for couplings + // This implementation uses an AOSOA[npagC][ndcoup][nx2][neppC] "super-buffer" where nevt=npagC*neppC + // From the "super-buffer" for ndcoup different couplings, use idcoupAccessBuffer to access the buffer for one specific coupling + // [If many implementations are used, a suffix _AOSOAv1 should be appended to the class name] + class MemoryAccessCouplingsBase //_AOSOAv1 { - const int ipagC = ievt / neppC; // #event "C-page" - const int ieppC = ievt %% neppC; // #event in the current event C-page - constexpr int idcoup = 0; - constexpr int ix2 = 0; - return &( buffer[ipagC * ndcoup * nx2 * neppC + idcoup * nx2 * neppC + ix2 * neppC + ieppC] ); // AOSOA[ipagC][idcoup][ix2][ieppC] - } - - //-------------------------------------------------------------------------- - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, Ts... args ) <===] - // [NB: expand variadic template "Ts... args" to "const int ix2" and rename "Field" as "Ix2"] - static __host__ __device__ inline fptype& - decodeRecord( fptype* buffer, - const int ix2 ) + public: + + // Number of Events Per Page in the coupling AOSOA memory buffer layout + static constexpr int neppC = MemoryAccessMomentaBase::neppM; // use the same AOSOA striding as for momenta + + // SANITY CHECK: check that neppC is a power of two + static_assert( ispoweroftwo( neppC ), "neppC is not a power of 2" ); + + //-------------------------------------------------------------------------- + // ** NB! A single super-buffer AOSOA[npagC][ndcoup][nx2][neppC] includes data for ndcoup different couplings ** + // ** NB! The ieventAccessRecord and kernelAccess functions refer to the buffer for one individual coupling ** + // ** NB! Use idcoupAccessBuffer to add a fixed offset and locate the buffer for one given individual coupling ** + //-------------------------------------------------------------------------- + + // Locate the buffer for a single coupling (output) in a memory super-buffer (input) from the given coupling index (input) + // [Signature (non-const) ===> fptype* idcoupAccessBuffer( fptype* buffer, const int idcoup ) <===] + // NB: keep this in public even if exposed through KernelAccessCouplings: nvcc says it is inaccesible otherwise? + static __host__ __device__ inline fptype* + idcoupAccessBuffer( fptype* buffer, // input "super-buffer" + const int idcoup ) + { + constexpr int ipagC = 0; + constexpr int ieppC = 0; + constexpr int ix2 = 0; + // NB! this effectively adds an offset "idcoup * nx2 * neppC" + return &( buffer[ipagC * ndcoup * nx2 * neppC + idcoup * nx2 * neppC + ix2 * neppC + ieppC] ); // AOSOA[ipagC][idcoup][ix2][ieppC] + } + + // Locate the buffer for a single coupling (output) in a memory super-buffer (input) from the given coupling index (input) + // [Signature (const) ===> const fptype* idcoupAccessBufferConst( const fptype* buffer, const int idcoup ) <===] + // NB: keep this in public even if exposed through KernelAccessCouplings: nvcc says it is inaccesible otherwise? + static __host__ __device__ inline const fptype* + idcoupAccessBufferConst( const fptype* buffer, // input "super-buffer" + const int idcoup ) + { + return idcoupAccessBuffer( const_cast( buffer ), idcoup ); + } + + private: + + friend class MemoryAccessHelper; + friend class KernelAccessHelper; + friend class KernelAccessHelper; + + // The number of couplings that dependent on the running alphas QCD in this specific process + static constexpr size_t ndcoup = Parameters_%(model_name)s_dependentCouplings::ndcoup; + + // The number of floating point components of a complex number + static constexpr int nx2 = mgOnGpu::nx2; + + //-------------------------------------------------------------------------- + // NB all KernelLaunchers assume that memory access can be decomposed as "accessField = decodeRecord( accessRecord )" + // (in other words: first locate the event record for a given event, then locate an element in that record) + //-------------------------------------------------------------------------- + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] + static __host__ __device__ inline fptype* + ieventAccessRecord( fptype* buffer, + const int ievt ) + { + const int ipagC = ievt / neppC; // #event "C-page" + const int ieppC = ievt %% neppC; // #event in the current event C-page + constexpr int idcoup = 0; + constexpr int ix2 = 0; + return &( buffer[ipagC * ndcoup * nx2 * neppC + idcoup * nx2 * neppC + ix2 * neppC + ieppC] ); // AOSOA[ipagC][idcoup][ix2][ieppC] + } + + //-------------------------------------------------------------------------- + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, Ts... args ) <===] + // [NB: expand variadic template "Ts... args" to "const int ix2" and rename "Field" as "Ix2"] + static __host__ __device__ inline fptype& + decodeRecord( fptype* buffer, + const int ix2 ) + { + constexpr int ipagC = 0; + constexpr int ieppC = 0; + // NB! the offset "idcoup * nx2 * neppC" has been added in idcoupAccessBuffer + constexpr int idcoup = 0; + return buffer[ipagC * ndcoup * nx2 * neppC + idcoup * nx2 * neppC + ix2 * neppC + ieppC]; // AOSOA[ipagC][idcoup][ix2][ieppC] + } + }; + + //---------------------------------------------------------------------------- + + // A class providing access to memory buffers for a given event, based on explicit event numbers + // Its methods use the MemoryAccessHelper templates - note the use of the template keyword in template function instantiations + class MemoryAccessCouplings : public MemoryAccessCouplingsBase { - constexpr int ipagC = 0; - constexpr int ieppC = 0; - // NB! the offset "idcoup * nx2 * neppC" has been added in idcoupAccessBuffer - constexpr int idcoup = 0; - return buffer[ipagC * ndcoup * nx2 * neppC + idcoup * nx2 * neppC + ix2 * neppC + ieppC]; // AOSOA[ipagC][idcoup][ix2][ieppC] - } -}; - -//---------------------------------------------------------------------------- - -// A class providing access to memory buffers for a given event, based on explicit event numbers -// Its methods use the MemoryAccessHelper templates - note the use of the template keyword in template function instantiations -class MemoryAccessCouplings : public MemoryAccessCouplingsBase -{ -public: - - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] - static constexpr auto ieventAccessRecord = MemoryAccessHelper::ieventAccessRecord; - - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (const) ===> const fptype* ieventAccessRecordConst( const fptype* buffer, const int ievt ) <===] - static constexpr auto ieventAccessRecordConst = MemoryAccessHelper::ieventAccessRecordConst; - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, const int ix2 ) <===] - static constexpr auto decodeRecordIx2 = MemoryAccessHelper::decodeRecord; - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (const) ===> const fptype& decodeRecordConst( const fptype* buffer, const int ix2 ) <===] - static constexpr auto decodeRecordIx2Const = - MemoryAccessHelper::template decodeRecordConst; - - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (non-const) ===> fptype& ieventAccessIx2( fptype* buffer, const ievt, const int ix2 ) <===] - static constexpr auto ieventAccessIx2 = - MemoryAccessHelper::template ieventAccessField; - - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (const) ===> const fptype& ieventAccessIx2Const( const fptype* buffer, const ievt, const int ix2 ) <===] - static constexpr auto ieventAccessIx2Const = - MemoryAccessHelper::template ieventAccessFieldConst; -}; - -//---------------------------------------------------------------------------- - -// A class providing access to memory buffers for a given event, based on implicit kernel rules -// Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations -template -class KernelAccessCouplings -{ -public: - - // Expose selected functions from MemoryAccessCouplingsBase - static constexpr auto idcoupAccessBuffer = MemoryAccessCouplingsBase::idcoupAccessBuffer; - static constexpr auto idcoupAccessBufferConst = MemoryAccessCouplingsBase::idcoupAccessBufferConst; - - // Expose selected functions from MemoryAccessCouplings - static constexpr auto ieventAccessRecordConst = MemoryAccessCouplings::ieventAccessRecordConst; - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (non-const, SCALAR) ===> fptype& kernelAccessIx2( fptype* buffer, const int ix2 ) <===] - static constexpr auto kernelAccessIx2_s = - KernelAccessHelper::template kernelAccessField; - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (const, SCALAR) ===> const fptype& kernelAccessIx2Const( const fptype* buffer, const int ix2 ) <===] - static constexpr auto kernelAccessIx2Const_s = - KernelAccessHelper::template kernelAccessFieldConst; - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (non const, SCALAR OR VECTOR) ===> fptype_sv& kernelAccessIx2( fptype* buffer, const int ix2 ) <===] - static __host__ __device__ inline fptype_sv& - kernelAccessIx2( fptype* buffer, - const int ix2 ) + public: + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] + static constexpr auto ieventAccessRecord = MemoryAccessHelper::ieventAccessRecord; + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (const) ===> const fptype* ieventAccessRecordConst( const fptype* buffer, const int ievt ) <===] + static constexpr auto ieventAccessRecordConst = MemoryAccessHelper::ieventAccessRecordConst; + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, const int ix2 ) <===] + static constexpr auto decodeRecordIx2 = MemoryAccessHelper::decodeRecord; + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (const) ===> const fptype& decodeRecordConst( const fptype* buffer, const int ix2 ) <===] + static constexpr auto decodeRecordIx2Const = + MemoryAccessHelper::template decodeRecordConst; + + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (non-const) ===> fptype& ieventAccessIx2( fptype* buffer, const ievt, const int ix2 ) <===] + static constexpr auto ieventAccessIx2 = + MemoryAccessHelper::template ieventAccessField; + + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (const) ===> const fptype& ieventAccessIx2Const( const fptype* buffer, const ievt, const int ix2 ) <===] + static constexpr auto ieventAccessIx2Const = + MemoryAccessHelper::template ieventAccessFieldConst; + }; + + //---------------------------------------------------------------------------- + + // A class providing access to memory buffers for a given event, based on implicit kernel rules + // Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations + template + class KernelAccessCouplings { - fptype& out = kernelAccessIx2_s( buffer, ix2 ); + public: + + // Expose selected functions from MemoryAccessCouplingsBase + static constexpr auto idcoupAccessBuffer = MemoryAccessCouplingsBase::idcoupAccessBuffer; + static constexpr auto idcoupAccessBufferConst = MemoryAccessCouplingsBase::idcoupAccessBufferConst; + + // Expose selected functions from MemoryAccessCouplings + static constexpr auto ieventAccessRecordConst = MemoryAccessCouplings::ieventAccessRecordConst; + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (non-const, SCALAR) ===> fptype& kernelAccessIx2( fptype* buffer, const int ix2 ) <===] + static constexpr auto kernelAccessIx2_s = + KernelAccessHelper::template kernelAccessField; + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (const, SCALAR) ===> const fptype& kernelAccessIx2Const( const fptype* buffer, const int ix2 ) <===] + static constexpr auto kernelAccessIx2Const_s = + KernelAccessHelper::template kernelAccessFieldConst; + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (non const, SCALAR OR VECTOR) ===> fptype_sv& kernelAccessIx2( fptype* buffer, const int ix2 ) <===] + static __host__ __device__ inline fptype_sv& + kernelAccessIx2( fptype* buffer, + const int ix2 ) + { + fptype& out = kernelAccessIx2_s( buffer, ix2 ); #ifndef MGONGPU_CPPSIMD - return out; + return out; #else - // NB: derived from MemoryAccessMomenta, restricting the implementation to contiguous aligned arrays - constexpr int neppC = MemoryAccessCouplingsBase::neppC; - static_assert( neppC >= neppV ); // ASSUME CONTIGUOUS ARRAYS - static_assert( neppC %% neppV == 0 ); // ASSUME CONTIGUOUS ARRAYS - static_assert( mg5amcCpu::HostBufferCouplings::isaligned() ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) - //assert( (size_t)( buffer ) %% mgOnGpu::cppAlign == 0 ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) - return mg5amcCpu::fptypevFromAlignedArray( out ); // SIMD bulk load of neppV, use reinterpret_cast + // NB: derived from MemoryAccessMomenta, restricting the implementation to contiguous aligned arrays + constexpr int neppC = MemoryAccessCouplingsBase::neppC; + static_assert( neppC >= neppV ); // ASSUME CONTIGUOUS ARRAYS + static_assert( neppC %% neppV == 0 ); // ASSUME CONTIGUOUS ARRAYS + static_assert( mg5amcCpu::HostBufferCouplings::isaligned() ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) + //assert( (size_t)( buffer ) %% mgOnGpu::cppAlign == 0 ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) + return mg5amcCpu::fptypevFromAlignedArray( out ); // SIMD bulk load of neppV, use reinterpret_cast #endif - } + } - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (const, SCALAR OR VECTOR) ===> const fptype_sv& kernelAccessIx2Const( const fptype* buffer, const int ix2 ) <===] - static __host__ __device__ inline const fptype_sv& - kernelAccessIx2Const( const fptype* buffer, - const int ix2 ) - { - return kernelAccessIx2( const_cast( buffer ), ix2 ); - } - - /* - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (const, SCALAR OR VECTOR) ===> const fptype_sv& kernelAccessIx2Const( const fptype* buffer, const int ix2 ) <===] - static __host__ __device__ inline const fptype_sv& - kernelAccessIx2Const( const fptype* buffer, - const int ix2 ) - { - const fptype& out = kernelAccessIx2Const_s( buffer, ix2 ); + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (const, SCALAR OR VECTOR) ===> const fptype_sv& kernelAccessIx2Const( const fptype* buffer, const int ix2 ) <===] + static __host__ __device__ inline const fptype_sv& + kernelAccessIx2Const( const fptype* buffer, + const int ix2 ) + { + return kernelAccessIx2( const_cast( buffer ), ix2 ); + } + + /* + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (const, SCALAR OR VECTOR) ===> const fptype_sv& kernelAccessIx2Const( const fptype* buffer, const int ix2 ) <===] + static __host__ __device__ inline const fptype_sv& + kernelAccessIx2Const( const fptype* buffer, + const int ix2 ) + { + const fptype& out = kernelAccessIx2Const_s( buffer, ix2 ); #ifndef MGONGPU_CPPSIMD - return out; + return out; #else - // NB: derived from MemoryAccessMomenta, restricting the implementation to contiguous aligned arrays - constexpr int neppC = MemoryAccessCouplingsBase::neppC; - static_assert( neppC >= neppV ); // ASSUME CONTIGUOUS ARRAYS - static_assert( neppC %% neppV == 0 ); // ASSUME CONTIGUOUS ARRAYS - static_assert( mg5amcCpu::HostBufferCouplings::isaligned() ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) - //assert( (size_t)( buffer ) %% mgOnGpu::cppAlign == 0 ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) - return mg5amcCpu::fptypevFromAlignedArray( out ); // SIMD bulk load of neppV, use reinterpret_cast + // NB: derived from MemoryAccessMomenta, restricting the implementation to contiguous aligned arrays + constexpr int neppC = MemoryAccessCouplingsBase::neppC; + static_assert( neppC >= neppV ); // ASSUME CONTIGUOUS ARRAYS + static_assert( neppC %% neppV == 0 ); // ASSUME CONTIGUOUS ARRAYS + static_assert( mg5amcCpu::HostBufferCouplings::isaligned() ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) + //assert( (size_t)( buffer ) %% mgOnGpu::cppAlign == 0 ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) + return mg5amcCpu::fptypevFromAlignedArray( out ); // SIMD bulk load of neppV, use reinterpret_cast #endif - } - */ - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (non const, SCALAR OR VECTOR) ===> cxtype_sv_ref kernelAccess( fptype* buffer ) <===] - static __host__ __device__ inline cxtype_sv_ref - kernelAccess( fptype* buffer ) - { - /* - fptype_sv& real = kernelAccessIx2( buffer, 0 ); - fptype_sv& imag = kernelAccessIx2( buffer, 1 ); - printf( "C_ACCESS::kernelAccess: pbuffer=%%p pr=%%p pi=%%p\n", buffer, &real, &imag ); - return cxtype_sv_ref( real, imag ); - */ - return cxtype_sv_ref( kernelAccessIx2( buffer, 0 ), - kernelAccessIx2( buffer, 1 ) ); - } - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (const, SCALAR OR VECTOR) ===> cxtype_sv kernelAccessConst( const fptype* buffer ) <===] - static __host__ __device__ inline cxtype_sv - kernelAccessConst( const fptype* buffer ) - { - /* - const fptype_sv& real = kernelAccessIx2Const( buffer, 0 ); - const fptype_sv& imag = kernelAccessIx2Const( buffer, 1 ); - printf( "C_ACCESS::kernelAccessConst: pbuffer=%%p pr=%%p pi=%%p\n", buffer, &real, &imag ); - return cxtype_sv( real, imag ); + } */ - return cxtype_sv( kernelAccessIx2Const( buffer, 0 ), - kernelAccessIx2Const( buffer, 1 ) ); - } -}; - -//---------------------------------------------------------------------------- - -typedef KernelAccessCouplings HostAccessCouplings; -typedef KernelAccessCouplings DeviceAccessCouplings; -//---------------------------------------------------------------------------- + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (non const, SCALAR OR VECTOR) ===> cxtype_sv_ref kernelAccess( fptype* buffer ) <===] + static __host__ __device__ inline cxtype_sv_ref + kernelAccess( fptype* buffer ) + { + /* + fptype_sv& real = kernelAccessIx2( buffer, 0 ); + fptype_sv& imag = kernelAccessIx2( buffer, 1 ); + printf( "C_ACCESS::kernelAccess: pbuffer=%%p pr=%%p pi=%%p\n", buffer, &real, &imag ); + return cxtype_sv_ref( real, imag ); + */ + return cxtype_sv_ref( kernelAccessIx2( buffer, 0 ), + kernelAccessIx2( buffer, 1 ) ); + } + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (const, SCALAR OR VECTOR) ===> cxtype_sv kernelAccessConst( const fptype* buffer ) <===] + static __host__ __device__ inline cxtype_sv + kernelAccessConst( const fptype* buffer ) + { + /* + const fptype_sv& real = kernelAccessIx2Const( buffer, 0 ); + const fptype_sv& imag = kernelAccessIx2Const( buffer, 1 ); + printf( "C_ACCESS::kernelAccessConst: pbuffer=%%p pr=%%p pi=%%p\n", buffer, &real, &imag ); + return cxtype_sv( real, imag ); + */ + return cxtype_sv( kernelAccessIx2Const( buffer, 0 ), + kernelAccessIx2Const( buffer, 1 ) ); + } + }; + + //---------------------------------------------------------------------------- + + typedef KernelAccessCouplings HostAccessCouplings; + typedef KernelAccessCouplings DeviceAccessCouplings; + + //---------------------------------------------------------------------------- + +} // end namespace mg5amcGpu/mg5amcCpu #endif // MemoryAccessCouplings_H diff --git a/epochX/cudacpp/CODEGEN/PLUGIN/CUDACPP_SA_OUTPUT/madgraph/iolibs/template_files/gpu/MemoryAccessCouplingsFixed.h b/epochX/cudacpp/CODEGEN/PLUGIN/CUDACPP_SA_OUTPUT/madgraph/iolibs/template_files/gpu/MemoryAccessCouplingsFixed.h index 81193ab261..dc0d93afff 100644 --- a/epochX/cudacpp/CODEGEN/PLUGIN/CUDACPP_SA_OUTPUT/madgraph/iolibs/template_files/gpu/MemoryAccessCouplingsFixed.h +++ b/epochX/cudacpp/CODEGEN/PLUGIN/CUDACPP_SA_OUTPUT/madgraph/iolibs/template_files/gpu/MemoryAccessCouplingsFixed.h @@ -13,63 +13,72 @@ //#include "MemoryAccessHelpers.h" -//---------------------------------------------------------------------------- - -// A class describing the internal layout of memory buffers for fixed couplings -// This implementation uses a STRUCT[ndcoup][nx2] "super-buffer" layout: in practice, the cIPC global array -// From the "super-buffer" for ndcoup different couplings, use idcoupAccessBuffer to access the buffer for one specific coupling -// [If many implementations are used, a suffix _Sv1 should be appended to the class name] -class MemoryAccessCouplingsFixedBase //_Sv1 +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { -public: + //---------------------------------------------------------------------------- - // Locate the buffer for a single coupling (output) in a memory super-buffer (input) from the given coupling index (input) - // [Signature (const) ===> const fptype* iicoupAccessBufferConst( const fptype* buffer, const int iicoup ) <===] - static __host__ __device__ inline const fptype* - iicoupAccessBufferConst( const fptype* buffer, // input "super-buffer": in practice, the cIPC global array - const int iicoup ) + // A class describing the internal layout of memory buffers for fixed couplings + // This implementation uses a STRUCT[ndcoup][nx2] "super-buffer" layout: in practice, the cIPC global array + // From the "super-buffer" for ndcoup different couplings, use idcoupAccessBuffer to access the buffer for one specific coupling + // [If many implementations are used, a suffix _Sv1 should be appended to the class name] + class MemoryAccessCouplingsFixedBase //_Sv1 { - constexpr int ix2 = 0; - // NB! this effectively adds an offset "iicoup * nx2" - return &( buffer[iicoup * nx2 + ix2] ); // STRUCT[idcoup][ix2] - } - -private: - - // The number of floating point components of a complex number - static constexpr int nx2 = mgOnGpu::nx2; -}; - -//---------------------------------------------------------------------------- + public: + + // Locate the buffer for a single coupling (output) in a memory super-buffer (input) from the given coupling index (input) + // [Signature (const) ===> const fptype* iicoupAccessBufferConst( const fptype* buffer, const int iicoup ) <===] + static __host__ __device__ inline const fptype* + iicoupAccessBufferConst( const fptype* buffer, // input "super-buffer": in practice, the cIPC global array + const int iicoup ) + { + constexpr int ix2 = 0; + // NB! this effectively adds an offset "iicoup * nx2" + return &( buffer[iicoup * nx2 + ix2] ); // STRUCT[idcoup][ix2] + } + + private: + + // The number of floating point components of a complex number + static constexpr int nx2 = mgOnGpu::nx2; + }; + + //---------------------------------------------------------------------------- + + // A class providing access to memory buffers for a given event, based on implicit kernel rules + // Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations + template + class KernelAccessCouplingsFixed + { + public: -// A class providing access to memory buffers for a given event, based on implicit kernel rules -// Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations -template -class KernelAccessCouplingsFixed -{ -public: + // Expose selected functions from MemoryAccessCouplingsFixedBase + static constexpr auto iicoupAccessBufferConst = MemoryAccessCouplingsFixedBase::iicoupAccessBufferConst; - // Expose selected functions from MemoryAccessCouplingsFixedBase - static constexpr auto iicoupAccessBufferConst = MemoryAccessCouplingsFixedBase::iicoupAccessBufferConst; + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (const, SCALAR OR VECTOR) ===> cxtype_sv kernelAccessConst( const fptype* buffer ) <===] + static __host__ __device__ inline const cxtype_sv + kernelAccessConst( const fptype* buffer ) + { + // TRIVIAL ACCESS to fixed-couplings buffers! + //return cxmake( fptype_sv{ buffer[0] }, fptype_sv{ buffer[1] } ); // NO! BUG #339! + const fptype_sv r_sv = fptype_sv{ 0 } + buffer[0]; + const fptype_sv i_sv = fptype_sv{ 0 } + buffer[1]; + return cxmake( r_sv, i_sv ); // ugly but effective + } + }; - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (const, SCALAR OR VECTOR) ===> cxtype_sv kernelAccessConst( const fptype* buffer ) <===] - static __host__ __device__ inline const cxtype_sv - kernelAccessConst( const fptype* buffer ) - { - // TRIVIAL ACCESS to fixed-couplings buffers! - //return cxmake( fptype_sv{ buffer[0] }, fptype_sv{ buffer[1] } ); // NO! BUG #339! - const fptype_sv r_sv = fptype_sv{ 0 } + buffer[0]; - const fptype_sv i_sv = fptype_sv{ 0 } + buffer[1]; - return cxmake( r_sv, i_sv ); // ugly but effective - } -}; + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- + typedef KernelAccessCouplingsFixed HostAccessCouplingsFixed; + typedef KernelAccessCouplingsFixed DeviceAccessCouplingsFixed; -typedef KernelAccessCouplingsFixed HostAccessCouplingsFixed; -typedef KernelAccessCouplingsFixed DeviceAccessCouplingsFixed; + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- +} // end namespace mg5amcGpu/mg5amcCpu #endif // MemoryAccessCouplingsFixed_H diff --git a/epochX/cudacpp/CODEGEN/PLUGIN/CUDACPP_SA_OUTPUT/madgraph/iolibs/template_files/gpu/MemoryAccessDenominators.h b/epochX/cudacpp/CODEGEN/PLUGIN/CUDACPP_SA_OUTPUT/madgraph/iolibs/template_files/gpu/MemoryAccessDenominators.h index e76ae65ff9..3bce635718 100644 --- a/epochX/cudacpp/CODEGEN/PLUGIN/CUDACPP_SA_OUTPUT/madgraph/iolibs/template_files/gpu/MemoryAccessDenominators.h +++ b/epochX/cudacpp/CODEGEN/PLUGIN/CUDACPP_SA_OUTPUT/madgraph/iolibs/template_files/gpu/MemoryAccessDenominators.h @@ -9,15 +9,24 @@ #include "MemoryAccessGs.h" -//---------------------------------------------------------------------------- +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif +{ + //---------------------------------------------------------------------------- + + // A class describing the internal layout of memory buffers for denominators + // This implementation reuses the plain ARRAY[nevt] implementation of MemoryAccessGs -// A class describing the internal layout of memory buffers for denominators -// This implementation reuses the plain ARRAY[nevt] implementation of MemoryAccessGs + typedef KernelAccessGs HostAccessDenominators; + typedef KernelAccessGs DeviceAccessDenominators; -typedef KernelAccessGs HostAccessDenominators; -typedef KernelAccessGs DeviceAccessDenominators; + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- +} // end namespace mg5amcGpu/mg5amcCpu #endif #endif // MemoryAccessDenominators_H diff --git a/epochX/cudacpp/CODEGEN/PLUGIN/CUDACPP_SA_OUTPUT/madgraph/iolibs/template_files/gpu/MemoryAccessGs.h b/epochX/cudacpp/CODEGEN/PLUGIN/CUDACPP_SA_OUTPUT/madgraph/iolibs/template_files/gpu/MemoryAccessGs.h index 8996c0554c..31311aa375 100644 --- a/epochX/cudacpp/CODEGEN/PLUGIN/CUDACPP_SA_OUTPUT/madgraph/iolibs/template_files/gpu/MemoryAccessGs.h +++ b/epochX/cudacpp/CODEGEN/PLUGIN/CUDACPP_SA_OUTPUT/madgraph/iolibs/template_files/gpu/MemoryAccessGs.h @@ -12,142 +12,151 @@ #include "MemoryAccessVectors.h" #include "MemoryBuffers.h" // for HostBufferMatrixElements::isaligned -//---------------------------------------------------------------------------- - -// A class describing the internal layout of memory buffers for Gs -// This implementation uses a plain ARRAY[nevt] -// [If many implementations are used, a suffix _ARRAYv1 should be appended to the class name] -class MemoryAccessGsBase //_ARRAYv1 +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { -private: - - friend class MemoryAccessHelper; - friend class KernelAccessHelper; - friend class KernelAccessHelper; - - //-------------------------------------------------------------------------- - // NB all KernelLaunchers assume that memory access can be decomposed as "accessField = decodeRecord( accessRecord )" - // (in other words: first locate the event record for a given event, then locate an element in that record) - //-------------------------------------------------------------------------- - - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] - static __host__ __device__ inline fptype* - ieventAccessRecord( fptype* buffer, - const int ievt ) - { - return &( buffer[ievt] ); // ARRAY[nevt] - } - - //-------------------------------------------------------------------------- + //---------------------------------------------------------------------------- - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, Ts... args ) <===] - // [NB: expand variadic template "Ts... args" to empty and rename "Field" as empty] - static __host__ __device__ inline fptype& - decodeRecord( fptype* buffer ) + // A class describing the internal layout of memory buffers for Gs + // This implementation uses a plain ARRAY[nevt] + // [If many implementations are used, a suffix _ARRAYv1 should be appended to the class name] + class MemoryAccessGsBase //_ARRAYv1 { - constexpr int ievt = 0; - return buffer[ievt]; // ARRAY[nevt] - } -}; - -//---------------------------------------------------------------------------- - -// A class providing access to memory buffers for a given event, based on explicit event numbers -// Its methods use the MemoryAccessHelper templates - note the use of the template keyword in template function instantiations -class MemoryAccessGs : public MemoryAccessGsBase -{ -public: - - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] - static constexpr auto ieventAccessRecord = MemoryAccessHelper::ieventAccessRecord; - - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (const) ===> const fptype* ieventAccessRecordConst( const fptype* buffer, const int ievt ) <===] - static constexpr auto ieventAccessRecordConst = MemoryAccessHelper::ieventAccessRecordConst; - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer ) <===] - static constexpr auto decodeRecord = MemoryAccessHelper::decodeRecord; - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (const) ===> const fptype& decodeRecordConst( const fptype* buffer ) <===] - static constexpr auto decodeRecordConst = - MemoryAccessHelper::template decodeRecordConst<>; - - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (non-const) ===> fptype& ieventAccess( fptype* buffer, const ievt ) <===] - static constexpr auto ieventAccess = - MemoryAccessHelper::template ieventAccessField<>; - - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (const) ===> const fptype& ieventAccessConst( const fptype* buffer, const ievt ) <===] - static constexpr auto ieventAccessConst = - MemoryAccessHelper::template ieventAccessFieldConst<>; -}; - -//---------------------------------------------------------------------------- - -// A class providing access to memory buffers for a given event, based on implicit kernel rules -// Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations -template -class KernelAccessGs -{ -public: - - // Expose selected functions from MemoryAccessGs - static constexpr auto ieventAccessRecord = MemoryAccessGs::ieventAccessRecord; - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (non-const, SCALAR) ===> fptype& kernelAccess( fptype* buffer ) <===] - static constexpr auto kernelAccess_s = - KernelAccessHelper::template kernelAccessField<>; // requires cuda 11.4 - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) - // [Signature (non-const, SCALAR OR VECTOR) ===> fptype_sv& kernelAccess( fptype* buffer ) <===] - static __host__ __device__ inline fptype_sv& - kernelAccess( fptype* buffer ) + private: + + friend class MemoryAccessHelper; + friend class KernelAccessHelper; + friend class KernelAccessHelper; + + //-------------------------------------------------------------------------- + // NB all KernelLaunchers assume that memory access can be decomposed as "accessField = decodeRecord( accessRecord )" + // (in other words: first locate the event record for a given event, then locate an element in that record) + //-------------------------------------------------------------------------- + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] + static __host__ __device__ inline fptype* + ieventAccessRecord( fptype* buffer, + const int ievt ) + { + return &( buffer[ievt] ); // ARRAY[nevt] + } + + //-------------------------------------------------------------------------- + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, Ts... args ) <===] + // [NB: expand variadic template "Ts... args" to empty and rename "Field" as empty] + static __host__ __device__ inline fptype& + decodeRecord( fptype* buffer ) + { + constexpr int ievt = 0; + return buffer[ievt]; // ARRAY[nevt] + } + }; + + //---------------------------------------------------------------------------- + + // A class providing access to memory buffers for a given event, based on explicit event numbers + // Its methods use the MemoryAccessHelper templates - note the use of the template keyword in template function instantiations + class MemoryAccessGs : public MemoryAccessGsBase + { + public: + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] + static constexpr auto ieventAccessRecord = MemoryAccessHelper::ieventAccessRecord; + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (const) ===> const fptype* ieventAccessRecordConst( const fptype* buffer, const int ievt ) <===] + static constexpr auto ieventAccessRecordConst = MemoryAccessHelper::ieventAccessRecordConst; + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer ) <===] + static constexpr auto decodeRecord = MemoryAccessHelper::decodeRecord; + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (const) ===> const fptype& decodeRecordConst( const fptype* buffer ) <===] + static constexpr auto decodeRecordConst = + MemoryAccessHelper::template decodeRecordConst<>; + + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (non-const) ===> fptype& ieventAccess( fptype* buffer, const ievt ) <===] + static constexpr auto ieventAccess = + MemoryAccessHelper::template ieventAccessField<>; + + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (const) ===> const fptype& ieventAccessConst( const fptype* buffer, const ievt ) <===] + static constexpr auto ieventAccessConst = + MemoryAccessHelper::template ieventAccessFieldConst<>; + }; + + //---------------------------------------------------------------------------- + + // A class providing access to memory buffers for a given event, based on implicit kernel rules + // Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations + template + class KernelAccessGs { - fptype& out = kernelAccess_s( buffer ); + public: + + // Expose selected functions from MemoryAccessGs + static constexpr auto ieventAccessRecord = MemoryAccessGs::ieventAccessRecord; + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (non-const, SCALAR) ===> fptype& kernelAccess( fptype* buffer ) <===] + static constexpr auto kernelAccess_s = + KernelAccessHelper::template kernelAccessField<>; // requires cuda 11.4 + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) + // [Signature (non-const, SCALAR OR VECTOR) ===> fptype_sv& kernelAccess( fptype* buffer ) <===] + static __host__ __device__ inline fptype_sv& + kernelAccess( fptype* buffer ) + { + fptype& out = kernelAccess_s( buffer ); #ifndef MGONGPU_CPPSIMD - return out; + return out; #else - // NB: derived from MemoryAccessMomenta, restricting the implementation to contiguous aligned arrays (#435) - static_assert( mg5amcCpu::HostBufferGs::isaligned() ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) - //assert( (size_t)( buffer ) % mgOnGpu::cppAlign == 0 ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) - return mg5amcCpu::fptypevFromAlignedArray( out ); // SIMD bulk load of neppV, use reinterpret_cast + // NB: derived from MemoryAccessMomenta, restricting the implementation to contiguous aligned arrays (#435) + static_assert( mg5amcCpu::HostBufferGs::isaligned() ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) + //assert( (size_t)( buffer ) % mgOnGpu::cppAlign == 0 ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) + return mg5amcCpu::fptypevFromAlignedArray( out ); // SIMD bulk load of neppV, use reinterpret_cast #endif - } - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (const, SCALAR) ===> const fptype& kernelAccessConst( const fptype* buffer ) <===] - static constexpr auto kernelAccessConst_s = - KernelAccessHelper::template kernelAccessFieldConst<>; // requires cuda 11.4 - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) - // [Signature (const, SCALAR OR VECTOR) ===> const fptype_sv& kernelAccess( const fptype* buffer ) <===] - static __host__ __device__ inline const fptype_sv& - kernelAccessConst( const fptype* buffer ) - { - const fptype& out = kernelAccessConst_s( buffer ); + } + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (const, SCALAR) ===> const fptype& kernelAccessConst( const fptype* buffer ) <===] + static constexpr auto kernelAccessConst_s = + KernelAccessHelper::template kernelAccessFieldConst<>; // requires cuda 11.4 + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) + // [Signature (const, SCALAR OR VECTOR) ===> const fptype_sv& kernelAccess( const fptype* buffer ) <===] + static __host__ __device__ inline const fptype_sv& + kernelAccessConst( const fptype* buffer ) + { + const fptype& out = kernelAccessConst_s( buffer ); #ifndef MGONGPU_CPPSIMD - return out; + return out; #else - // NB: derived from MemoryAccessMomenta, restricting the implementation to contiguous aligned arrays (#435) - static_assert( mg5amcCpu::HostBufferGs::isaligned() ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) - //assert( (size_t)( buffer ) % mgOnGpu::cppAlign == 0 ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) - return mg5amcCpu::fptypevFromAlignedArray( out ); // SIMD bulk load of neppV, use reinterpret_cast + // NB: derived from MemoryAccessMomenta, restricting the implementation to contiguous aligned arrays (#435) + static_assert( mg5amcCpu::HostBufferGs::isaligned() ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) + //assert( (size_t)( buffer ) % mgOnGpu::cppAlign == 0 ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) + return mg5amcCpu::fptypevFromAlignedArray( out ); // SIMD bulk load of neppV, use reinterpret_cast #endif - } -}; + } + }; + + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- + typedef KernelAccessGs HostAccessGs; + typedef KernelAccessGs DeviceAccessGs; -typedef KernelAccessGs HostAccessGs; -typedef KernelAccessGs DeviceAccessGs; + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- +} // end namespace mg5amcGpu/mg5amcCpu #endif // MemoryAccessGs_H diff --git a/epochX/cudacpp/CODEGEN/PLUGIN/CUDACPP_SA_OUTPUT/madgraph/iolibs/template_files/gpu/MemoryAccessMatrixElements.h b/epochX/cudacpp/CODEGEN/PLUGIN/CUDACPP_SA_OUTPUT/madgraph/iolibs/template_files/gpu/MemoryAccessMatrixElements.h index b2a82d9acf..f32e6fea5b 100644 --- a/epochX/cudacpp/CODEGEN/PLUGIN/CUDACPP_SA_OUTPUT/madgraph/iolibs/template_files/gpu/MemoryAccessMatrixElements.h +++ b/epochX/cudacpp/CODEGEN/PLUGIN/CUDACPP_SA_OUTPUT/madgraph/iolibs/template_files/gpu/MemoryAccessMatrixElements.h @@ -12,126 +12,135 @@ #include "MemoryAccessVectors.h" #include "MemoryBuffers.h" // for HostBufferMatrixElements::isaligned -//---------------------------------------------------------------------------- - -// A class describing the internal layout of memory buffers for matrix elements -// This implementation uses a plain ARRAY[nevt] -// [If many implementations are used, a suffix _ARRAYv1 should be appended to the class name] -class MemoryAccessMatrixElementsBase //_ARRAYv1 +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { -private: - - friend class MemoryAccessHelper; - friend class KernelAccessHelper; - friend class KernelAccessHelper; - - //-------------------------------------------------------------------------- - // NB all KernelLaunchers assume that memory access can be decomposed as "accessField = decodeRecord( accessRecord )" - // (in other words: first locate the event record for a given event, then locate an element in that record) - //-------------------------------------------------------------------------- - - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] - static __host__ __device__ inline fptype* - ieventAccessRecord( fptype* buffer, - const int ievt ) - { - return &( buffer[ievt] ); // ARRAY[nevt] - } + //---------------------------------------------------------------------------- - //-------------------------------------------------------------------------- - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, Ts... args ) <===] - // [NB: expand variadic template "Ts... args" to empty and rename "Field" as empty] - static __host__ __device__ inline fptype& - decodeRecord( fptype* buffer ) + // A class describing the internal layout of memory buffers for matrix elements + // This implementation uses a plain ARRAY[nevt] + // [If many implementations are used, a suffix _ARRAYv1 should be appended to the class name] + class MemoryAccessMatrixElementsBase //_ARRAYv1 { - constexpr int ievt = 0; - return buffer[ievt]; // ARRAY[nevt] - } -}; - -//---------------------------------------------------------------------------- - -// A class providing access to memory buffers for a given event, based on explicit event numbers -// Its methods use the MemoryAccessHelper templates - note the use of the template keyword in template function instantiations -class MemoryAccessMatrixElements : public MemoryAccessMatrixElementsBase -{ -public: - - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] - static constexpr auto ieventAccessRecord = MemoryAccessHelper::ieventAccessRecord; - - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (const) ===> const fptype* ieventAccessRecordConst( const fptype* buffer, const int ievt ) <===] - static constexpr auto ieventAccessRecordConst = MemoryAccessHelper::ieventAccessRecordConst; - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer ) <===] - static constexpr auto decodeRecord = MemoryAccessHelper::decodeRecord; - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (const) ===> const fptype& decodeRecordConst( const fptype* buffer ) <===] - static constexpr auto decodeRecordConst = - MemoryAccessHelper::template decodeRecordConst<>; - - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (non-const) ===> fptype& ieventAccess( fptype* buffer, const ievt ) <===] - static constexpr auto ieventAccess = - MemoryAccessHelper::template ieventAccessField<>; - - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (const) ===> const fptype& ieventAccessConst( const fptype* buffer, const ievt ) <===] - static constexpr auto ieventAccessConst = - MemoryAccessHelper::template ieventAccessFieldConst<>; -}; - -//---------------------------------------------------------------------------- - -// A class providing access to memory buffers for a given event, based on implicit kernel rules -// Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations -template -class KernelAccessMatrixElements -{ -public: - - // Expose selected functions from MemoryAccessMatrixElements - static constexpr auto ieventAccessRecord = MemoryAccessMatrixElements::ieventAccessRecord; - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (non-const, SCALAR) ===> fptype& kernelAccess_s( fptype* buffer ) <===] - static constexpr auto kernelAccess_s = - KernelAccessHelper::template kernelAccessField<>; // requires cuda 11.4 - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) - // [Signature (non const, SCALAR OR VECTOR) ===> fptype_sv& kernelAccess( const fptype* buffer ) <===] - static __host__ __device__ inline fptype_sv& - kernelAccess( fptype* buffer ) + private: + + friend class MemoryAccessHelper; + friend class KernelAccessHelper; + friend class KernelAccessHelper; + + //-------------------------------------------------------------------------- + // NB all KernelLaunchers assume that memory access can be decomposed as "accessField = decodeRecord( accessRecord )" + // (in other words: first locate the event record for a given event, then locate an element in that record) + //-------------------------------------------------------------------------- + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] + static __host__ __device__ inline fptype* + ieventAccessRecord( fptype* buffer, + const int ievt ) + { + return &( buffer[ievt] ); // ARRAY[nevt] + } + + //-------------------------------------------------------------------------- + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, Ts... args ) <===] + // [NB: expand variadic template "Ts... args" to empty and rename "Field" as empty] + static __host__ __device__ inline fptype& + decodeRecord( fptype* buffer ) + { + constexpr int ievt = 0; + return buffer[ievt]; // ARRAY[nevt] + } + }; + + //---------------------------------------------------------------------------- + + // A class providing access to memory buffers for a given event, based on explicit event numbers + // Its methods use the MemoryAccessHelper templates - note the use of the template keyword in template function instantiations + class MemoryAccessMatrixElements : public MemoryAccessMatrixElementsBase + { + public: + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] + static constexpr auto ieventAccessRecord = MemoryAccessHelper::ieventAccessRecord; + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (const) ===> const fptype* ieventAccessRecordConst( const fptype* buffer, const int ievt ) <===] + static constexpr auto ieventAccessRecordConst = MemoryAccessHelper::ieventAccessRecordConst; + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer ) <===] + static constexpr auto decodeRecord = MemoryAccessHelper::decodeRecord; + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (const) ===> const fptype& decodeRecordConst( const fptype* buffer ) <===] + static constexpr auto decodeRecordConst = + MemoryAccessHelper::template decodeRecordConst<>; + + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (non-const) ===> fptype& ieventAccess( fptype* buffer, const ievt ) <===] + static constexpr auto ieventAccess = + MemoryAccessHelper::template ieventAccessField<>; + + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (const) ===> const fptype& ieventAccessConst( const fptype* buffer, const ievt ) <===] + static constexpr auto ieventAccessConst = + MemoryAccessHelper::template ieventAccessFieldConst<>; + }; + + //---------------------------------------------------------------------------- + + // A class providing access to memory buffers for a given event, based on implicit kernel rules + // Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations + template + class KernelAccessMatrixElements { - fptype& out = kernelAccess_s( buffer ); + public: + + // Expose selected functions from MemoryAccessMatrixElements + static constexpr auto ieventAccessRecord = MemoryAccessMatrixElements::ieventAccessRecord; + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (non-const, SCALAR) ===> fptype& kernelAccess_s( fptype* buffer ) <===] + static constexpr auto kernelAccess_s = + KernelAccessHelper::template kernelAccessField<>; // requires cuda 11.4 + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) + // [Signature (non const, SCALAR OR VECTOR) ===> fptype_sv& kernelAccess( const fptype* buffer ) <===] + static __host__ __device__ inline fptype_sv& + kernelAccess( fptype* buffer ) + { + fptype& out = kernelAccess_s( buffer ); #ifndef MGONGPU_CPPSIMD - return out; + return out; #else - // NB: derived from MemoryAccessMomenta, restricting the implementation to contiguous aligned arrays (#435) - static_assert( mg5amcCpu::HostBufferMatrixElements::isaligned() ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) - //assert( (size_t)( buffer ) % mgOnGpu::cppAlign == 0 ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) - return mg5amcCpu::fptypevFromAlignedArray( out ); // SIMD bulk load of neppV, use reinterpret_cast + // NB: derived from MemoryAccessMomenta, restricting the implementation to contiguous aligned arrays (#435) + static_assert( mg5amcCpu::HostBufferMatrixElements::isaligned() ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) + //assert( (size_t)( buffer ) % mgOnGpu::cppAlign == 0 ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) + return mg5amcCpu::fptypevFromAlignedArray( out ); // SIMD bulk load of neppV, use reinterpret_cast #endif - } + } + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (const) ===> const fptype& kernelAccessConst( const fptype* buffer ) <===] + static constexpr auto kernelAccessConst = + KernelAccessHelper::template kernelAccessFieldConst<>; // requires cuda 11.4 + }; - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (const) ===> const fptype& kernelAccessConst( const fptype* buffer ) <===] - static constexpr auto kernelAccessConst = - KernelAccessHelper::template kernelAccessFieldConst<>; // requires cuda 11.4 -}; + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- + typedef KernelAccessMatrixElements HostAccessMatrixElements; + typedef KernelAccessMatrixElements DeviceAccessMatrixElements; -typedef KernelAccessMatrixElements HostAccessMatrixElements; -typedef KernelAccessMatrixElements DeviceAccessMatrixElements; + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- +} // end namespace mg5amcGpu/mg5amcCpu #endif // MemoryAccessMatrixElements_H diff --git a/epochX/cudacpp/CODEGEN/PLUGIN/CUDACPP_SA_OUTPUT/madgraph/iolibs/template_files/gpu/MemoryAccessMomenta.h b/epochX/cudacpp/CODEGEN/PLUGIN/CUDACPP_SA_OUTPUT/madgraph/iolibs/template_files/gpu/MemoryAccessMomenta.h index 0ac4faa3c7..29266de32c 100644 --- a/epochX/cudacpp/CODEGEN/PLUGIN/CUDACPP_SA_OUTPUT/madgraph/iolibs/template_files/gpu/MemoryAccessMomenta.h +++ b/epochX/cudacpp/CODEGEN/PLUGIN/CUDACPP_SA_OUTPUT/madgraph/iolibs/template_files/gpu/MemoryAccessMomenta.h @@ -12,261 +12,264 @@ #include "MemoryAccessHelpers.h" #include "MemoryAccessVectors.h" +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) #ifdef __CUDACC__ -using mg5amcGpu::CPPProcess; +namespace mg5amcGpu #else -using mg5amcCpu::CPPProcess; +namespace mg5amcCpu #endif - -//---------------------------------------------------------------------------- - -// A class describing the internal layout of memory buffers for momenta -// This implementation uses an AOSOA[npagM][npar][np4][neppM] where nevt=npagM*neppM -// [If many implementations are used, a suffix _AOSOAv1 should be appended to the class name] -class MemoryAccessMomentaBase //_AOSOAv1 { -public: + //---------------------------------------------------------------------------- + + // A class describing the internal layout of memory buffers for momenta + // This implementation uses an AOSOA[npagM][npar][np4][neppM] where nevt=npagM*neppM + // [If many implementations are used, a suffix _AOSOAv1 should be appended to the class name] + class MemoryAccessMomentaBase //_AOSOAv1 + { + public: - // Number of Events Per Page in the momenta AOSOA memory buffer layout - // (these are all best kept as a compile-time constants: see issue #23) + // Number of Events Per Page in the momenta AOSOA memory buffer layout + // (these are all best kept as a compile-time constants: see issue #23) #ifdef __CUDACC__ /* clang-format off */ - // ----------------------------------------------------------------------------------------------- - // --- GPUs: neppM is best set to a power of 2 times the number of fptype's in a 32-byte cacheline - // --- This is relevant to ensure coalesced access to momenta in global memory - // --- Note that neppR is hardcoded and may differ from neppM and neppV on some platforms - // ----------------------------------------------------------------------------------------------- - //static constexpr int neppM = 64/sizeof(fptype); // 2x 32-byte GPU cache lines (512 bits): 8 (DOUBLE) or 16 (FLOAT) - static constexpr int neppM = 32/sizeof(fptype); // (DEFAULT) 32-byte GPU cache line (256 bits): 4 (DOUBLE) or 8 (FLOAT) - //static constexpr int neppM = 1; // *** NB: this is equivalent to AOS *** (slower: 1.03E9 instead of 1.11E9 in eemumu) + // ----------------------------------------------------------------------------------------------- + // --- GPUs: neppM is best set to a power of 2 times the number of fptype's in a 32-byte cacheline + // --- This is relevant to ensure coalesced access to momenta in global memory + // --- Note that neppR is hardcoded and may differ from neppM and neppV on some platforms + // ----------------------------------------------------------------------------------------------- + //static constexpr int neppM = 64/sizeof(fptype); // 2x 32-byte GPU cache lines (512 bits): 8 (DOUBLE) or 16 (FLOAT) + static constexpr int neppM = 32/sizeof(fptype); // (DEFAULT) 32-byte GPU cache line (256 bits): 4 (DOUBLE) or 8 (FLOAT) + //static constexpr int neppM = 1; // *** NB: this is equivalent to AOS *** (slower: 1.03E9 instead of 1.11E9 in eemumu) #else - // ----------------------------------------------------------------------------------------------- - // --- CPUs: neppM is best set equal to the number of fptype's (neppV) in a vector register - // --- This is relevant to ensure faster access to momenta from C++ memory cache lines - // --- However, neppM is now decoupled from neppV (issue #176) and can be separately hardcoded - // --- In practice, neppR, neppM and neppV could now (in principle) all be different - // ----------------------------------------------------------------------------------------------- + // ----------------------------------------------------------------------------------------------- + // --- CPUs: neppM is best set equal to the number of fptype's (neppV) in a vector register + // --- This is relevant to ensure faster access to momenta from C++ memory cache lines + // --- However, neppM is now decoupled from neppV (issue #176) and can be separately hardcoded + // --- In practice, neppR, neppM and neppV could now (in principle) all be different + // ----------------------------------------------------------------------------------------------- #ifdef MGONGPU_CPPSIMD - static constexpr int neppM = MGONGPU_CPPSIMD; // (DEFAULT) neppM=neppV for optimal performance - //static constexpr int neppM = 64/sizeof(fptype); // maximum CPU vector width (512 bits): 8 (DOUBLE) or 16 (FLOAT) - //static constexpr int neppM = 32/sizeof(fptype); // lower CPU vector width (256 bits): 4 (DOUBLE) or 8 (FLOAT) - //static constexpr int neppM = 1; // *** NB: this is equivalent to AOS *** (slower: 4.66E6 instead of 5.09E9 in eemumu) - //static constexpr int neppM = MGONGPU_CPPSIMD*2; // FOR TESTS + static constexpr int neppM = MGONGPU_CPPSIMD; // (DEFAULT) neppM=neppV for optimal performance + //static constexpr int neppM = 64/sizeof(fptype); // maximum CPU vector width (512 bits): 8 (DOUBLE) or 16 (FLOAT) + //static constexpr int neppM = 32/sizeof(fptype); // lower CPU vector width (256 bits): 4 (DOUBLE) or 8 (FLOAT) + //static constexpr int neppM = 1; // *** NB: this is equivalent to AOS *** (slower: 4.66E6 instead of 5.09E9 in eemumu) + //static constexpr int neppM = MGONGPU_CPPSIMD*2; // FOR TESTS #else - static constexpr int neppM = 1; // (DEFAULT) neppM=neppV for optimal performance (NB: this is equivalent to AOS) + static constexpr int neppM = 1; // (DEFAULT) neppM=neppV for optimal performance (NB: this is equivalent to AOS) #endif #endif /* clang-format on */ - // SANITY CHECK: check that neppM is a power of two - static_assert( ispoweroftwo( neppM ), "neppM is not a power of 2" ); + // SANITY CHECK: check that neppM is a power of two + static_assert( ispoweroftwo( neppM ), "neppM is not a power of 2" ); -private: + private: - friend class MemoryAccessHelper; - friend class KernelAccessHelper; - friend class KernelAccessHelper; + friend class MemoryAccessHelper; + friend class KernelAccessHelper; + friend class KernelAccessHelper; - // The number of components of a 4-momentum - static constexpr int np4 = CPPProcess::np4; + // The number of components of a 4-momentum + static constexpr int np4 = CPPProcess::np4; - // The number of particles in this physics process - static constexpr int npar = CPPProcess::npar; + // The number of particles in this physics process + static constexpr int npar = CPPProcess::npar; - //-------------------------------------------------------------------------- - // NB all KernelLaunchers assume that memory access can be decomposed as "accessField = decodeRecord( accessRecord )" - // (in other words: first locate the event record for a given event, then locate an element in that record) - //-------------------------------------------------------------------------- + //-------------------------------------------------------------------------- + // NB all KernelLaunchers assume that memory access can be decomposed as "accessField = decodeRecord( accessRecord )" + // (in other words: first locate the event record for a given event, then locate an element in that record) + //-------------------------------------------------------------------------- - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] - static __host__ __device__ inline fptype* - ieventAccessRecord( fptype* buffer, - const int ievt ) - { - const int ipagM = ievt / neppM; // #event "M-page" - const int ieppM = ievt % neppM; // #event in the current event M-page - constexpr int ip4 = 0; - constexpr int ipar = 0; - return &( buffer[ipagM * npar * np4 * neppM + ipar * np4 * neppM + ip4 * neppM + ieppM] ); // AOSOA[ipagM][ipar][ip4][ieppM] - } - - //-------------------------------------------------------------------------- - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, Ts... args ) <===] - // [NB: expand variadic template "Ts... args" to "const int ip4, const int ipar" and rename "Field" as "Ip4Ipar"] - static __host__ __device__ inline fptype& - decodeRecord( fptype* buffer, - const int ip4, - const int ipar ) + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] + static __host__ __device__ inline fptype* + ieventAccessRecord( fptype* buffer, + const int ievt ) + { + const int ipagM = ievt / neppM; // #event "M-page" + const int ieppM = ievt % neppM; // #event in the current event M-page + constexpr int ip4 = 0; + constexpr int ipar = 0; + return &( buffer[ipagM * npar * np4 * neppM + ipar * np4 * neppM + ip4 * neppM + ieppM] ); // AOSOA[ipagM][ipar][ip4][ieppM] + } + + //-------------------------------------------------------------------------- + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, Ts... args ) <===] + // [NB: expand variadic template "Ts... args" to "const int ip4, const int ipar" and rename "Field" as "Ip4Ipar"] + static __host__ __device__ inline fptype& + decodeRecord( fptype* buffer, + const int ip4, + const int ipar ) + { + constexpr int ipagM = 0; + constexpr int ieppM = 0; + return buffer[ipagM * npar * np4 * neppM + ipar * np4 * neppM + ip4 * neppM + ieppM]; // AOSOA[ipagM][ipar][ip4][ieppM] + } + }; + + //---------------------------------------------------------------------------- + + // A class providing access to memory buffers for a given event, based on explicit event numbers + // Its methods use the MemoryAccessHelper templates - note the use of the template keyword in template function instantiations + class MemoryAccessMomenta : public MemoryAccessMomentaBase { - constexpr int ipagM = 0; - constexpr int ieppM = 0; - return buffer[ipagM * npar * np4 * neppM + ipar * np4 * neppM + ip4 * neppM + ieppM]; // AOSOA[ipagM][ipar][ip4][ieppM] - } -}; + public: + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] + static constexpr auto ieventAccessRecord = MemoryAccessHelper::ieventAccessRecord; + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (const) ===> const fptype* ieventAccessRecordConst( const fptype* buffer, const int ievt ) <===] + static constexpr auto ieventAccessRecordConst = MemoryAccessHelper::ieventAccessRecordConst; + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, const int ipar, const int ipar ) <===] + static constexpr auto decodeRecordIp4Ipar = MemoryAccessHelper::decodeRecord; + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (const) ===> const fptype& decodeRecordConst( const fptype* buffer, const int ipar, const int ipar ) <===] + static constexpr auto decodeRecordIp4IparConst = + MemoryAccessHelper::template decodeRecordConst; + + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (non-const) ===> fptype& ieventAccessIp4Ipar( fptype* buffer, const ievt, const int ipar, const int ipar ) <===] + static constexpr auto ieventAccessIp4Ipar = + MemoryAccessHelper::template ieventAccessField; + + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (const) ===> const fptype& ieventAccessIp4IparConst( const fptype* buffer, const ievt, const int ipar, const int ipar ) <===] + // DEFAULT VERSION + static constexpr auto ieventAccessIp4IparConst = + MemoryAccessHelper::template ieventAccessFieldConst; + + /* + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (const) ===> const fptype& ieventAccessIp4IparConst( const fptype* buffer, const ievt, const int ipar, const int ipar ) <===] + // DEBUG VERSION WITH PRINTOUTS + static __host__ __device__ inline const fptype& + ieventAccessIp4IparConst( const fptype* buffer, + const int ievt, + const int ip4, + const int ipar ) + { + const fptype& out = MemoryAccessHelper::template ieventAccessFieldConst( buffer, ievt, ip4, ipar ); + printf( "ipar=%2d ip4=%2d ievt=%8d out=%8.3f\n", ipar, ip4, ievt, out ); + return out; + } + */ + }; -//---------------------------------------------------------------------------- + //---------------------------------------------------------------------------- -// A class providing access to memory buffers for a given event, based on explicit event numbers -// Its methods use the MemoryAccessHelper templates - note the use of the template keyword in template function instantiations -class MemoryAccessMomenta : public MemoryAccessMomentaBase -{ -public: - - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] - static constexpr auto ieventAccessRecord = MemoryAccessHelper::ieventAccessRecord; - - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (const) ===> const fptype* ieventAccessRecordConst( const fptype* buffer, const int ievt ) <===] - static constexpr auto ieventAccessRecordConst = MemoryAccessHelper::ieventAccessRecordConst; - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, const int ipar, const int ipar ) <===] - static constexpr auto decodeRecordIp4Ipar = MemoryAccessHelper::decodeRecord; - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (const) ===> const fptype& decodeRecordConst( const fptype* buffer, const int ipar, const int ipar ) <===] - static constexpr auto decodeRecordIp4IparConst = - MemoryAccessHelper::template decodeRecordConst; - - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (non-const) ===> fptype& ieventAccessIp4Ipar( fptype* buffer, const ievt, const int ipar, const int ipar ) <===] - static constexpr auto ieventAccessIp4Ipar = - MemoryAccessHelper::template ieventAccessField; - - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (const) ===> const fptype& ieventAccessIp4IparConst( const fptype* buffer, const ievt, const int ipar, const int ipar ) <===] - // DEFAULT VERSION - static constexpr auto ieventAccessIp4IparConst = - MemoryAccessHelper::template ieventAccessFieldConst; - - /* - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (const) ===> const fptype& ieventAccessIp4IparConst( const fptype* buffer, const ievt, const int ipar, const int ipar ) <===] - // DEBUG VERSION WITH PRINTOUTS - static __host__ __device__ inline const fptype& - ieventAccessIp4IparConst( const fptype* buffer, - const int ievt, - const int ip4, - const int ipar ) + // A class providing access to memory buffers for a given event, based on implicit kernel rules + // Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations + template + class KernelAccessMomenta { - const fptype& out = MemoryAccessHelper::template ieventAccessFieldConst( buffer, ievt, ip4, ipar ); - printf( "ipar=%2d ip4=%2d ievt=%8d out=%8.3f\n", ipar, ip4, ievt, out ); - return out; - } - */ -}; - -//---------------------------------------------------------------------------- - -// A class providing access to memory buffers for a given event, based on implicit kernel rules -// Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations -template -class KernelAccessMomenta -{ -public: - - // Expose selected functions from MemoryAccessMomenta - static constexpr auto ieventAccessRecordConst = MemoryAccessMomenta::ieventAccessRecordConst; - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (non-const, SCALAR) ===> fptype& kernelAccessIp4Ipar( fptype* buffer, const int ipar, const int ipar ) <===] - static constexpr auto kernelAccessIp4Ipar = - KernelAccessHelper::template kernelAccessField; - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (const, SCALAR) ===> const fptype& kernelAccessIp4IparConst( const fptype* buffer, const int ipar, const int ipar ) <===] - // DEFAULT VERSION - static constexpr auto kernelAccessIp4IparConst_s = - KernelAccessHelper::template kernelAccessFieldConst; - - /* - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (const, SCALAR) ===> const fptype& kernelAccessIp4IparConst( const fptype* buffer, const int ipar, const int ipar ) <===] - // DEBUG VERSION WITH PRINTOUTS - static __host__ __device__ inline const fptype& - kernelAccessIp4IparConst_s( const fptype* buffer, + public: + + // Expose selected functions from MemoryAccessMomenta + static constexpr auto ieventAccessRecordConst = MemoryAccessMomenta::ieventAccessRecordConst; + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (non-const, SCALAR) ===> fptype& kernelAccessIp4Ipar( fptype* buffer, const int ipar, const int ipar ) <===] + static constexpr auto kernelAccessIp4Ipar = + KernelAccessHelper::template kernelAccessField; + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (const, SCALAR) ===> const fptype& kernelAccessIp4IparConst( const fptype* buffer, const int ipar, const int ipar ) <===] + // DEFAULT VERSION + static constexpr auto kernelAccessIp4IparConst_s = + KernelAccessHelper::template kernelAccessFieldConst; + + /* + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (const, SCALAR) ===> const fptype& kernelAccessIp4IparConst( const fptype* buffer, const int ipar, const int ipar ) <===] + // DEBUG VERSION WITH PRINTOUTS + static __host__ __device__ inline const fptype& + kernelAccessIp4IparConst_s( const fptype* buffer, + const int ip4, + const int ipar ) + { + const fptype& out = KernelAccessHelper::template kernelAccessFieldConst( buffer, ip4, ipar ); + printf( "ipar=%2d ip4=%2d ievt='kernel' out=%8.3f\n", ipar, ip4, out ); + return out; + } + */ + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (const, SCALAR OR VECTOR) ===> fptype_sv kernelAccessIp4IparConst( const fptype* buffer, const int ipar, const int ipar ) <===] + // FIXME? Eventually return by const reference and support aligned arrays only? + // FIXME? Currently return by value to support also unaligned and arbitrary arrays + static __host__ __device__ inline fptype_sv + kernelAccessIp4IparConst( const fptype* buffer, const int ip4, const int ipar ) - { - const fptype& out = KernelAccessHelper::template kernelAccessFieldConst( buffer, ip4, ipar ); - printf( "ipar=%2d ip4=%2d ievt='kernel' out=%8.3f\n", ipar, ip4, out ); - return out; - } - */ - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (const, SCALAR OR VECTOR) ===> fptype_sv kernelAccessIp4IparConst( const fptype* buffer, const int ipar, const int ipar ) <===] - // FIXME? Eventually return by const reference and support aligned arrays only? - // FIXME? Currently return by value to support also unaligned and arbitrary arrays - static __host__ __device__ inline fptype_sv - kernelAccessIp4IparConst( const fptype* buffer, - const int ip4, - const int ipar ) - { - const fptype& out = kernelAccessIp4IparConst_s( buffer, ip4, ipar ); + { + const fptype& out = kernelAccessIp4IparConst_s( buffer, ip4, ipar ); #ifndef MGONGPU_CPPSIMD - return out; + return out; #else - constexpr int neppM = MemoryAccessMomentaBase::neppM; - constexpr bool useContiguousEventsIfPossible = true; // DEFAULT - //constexpr bool useContiguousEventsIfPossible = false; // FOR PERFORMANCE TESTS (treat as arbitrary array even if it is an AOSOA) - // Use c++17 "if constexpr": compile-time branching - if constexpr( useContiguousEventsIfPossible && ( neppM >= neppV ) && ( neppM % neppV == 0 ) ) - { - //constexpr bool skipAlignmentCheck = true; // FASTEST (SEGFAULTS IF MISALIGNED ACCESS, NEEDS A SANITY CHECK ELSEWHERE!) - constexpr bool skipAlignmentCheck = false; // DEFAULT: A BIT SLOWER BUT SAFER [ALLOWS MISALIGNED ACCESS] - if constexpr( skipAlignmentCheck ) - { - //static bool first=true; if( first ){ std::cout << "WARNING! assume aligned AOSOA, skip check" << std::endl; first=false; } // SLOWER (5.06E6) - // FASTEST? (5.09E6 in eemumu 512y) - // This assumes alignment for momenta1d without checking - causes segmentation fault in reinterpret_cast if not aligned! - return mg5amcCpu::fptypevFromAlignedArray( out ); // use reinterpret_cast - } - else if( (size_t)( buffer ) % mgOnGpu::cppAlign == 0 ) + constexpr int neppM = MemoryAccessMomentaBase::neppM; + constexpr bool useContiguousEventsIfPossible = true; // DEFAULT + //constexpr bool useContiguousEventsIfPossible = false; // FOR PERFORMANCE TESTS (treat as arbitrary array even if it is an AOSOA) + // Use c++17 "if constexpr": compile-time branching + if constexpr( useContiguousEventsIfPossible && ( neppM >= neppV ) && ( neppM % neppV == 0 ) ) { - //static bool first=true; if( first ){ std::cout << "WARNING! aligned AOSOA, reinterpret cast" << std::endl; first=false; } // SLOWER (5.00E6) - // DEFAULT! A tiny bit (<1%) slower because of the alignment check (5.07E6 in eemumu 512y) - // This explicitly checks buffer alignment to avoid segmentation faults in reinterpret_cast - return mg5amcCpu::fptypevFromAlignedArray( out ); // SIMD bulk load of neppV, use reinterpret_cast + //constexpr bool skipAlignmentCheck = true; // FASTEST (SEGFAULTS IF MISALIGNED ACCESS, NEEDS A SANITY CHECK ELSEWHERE!) + constexpr bool skipAlignmentCheck = false; // DEFAULT: A BIT SLOWER BUT SAFER [ALLOWS MISALIGNED ACCESS] + if constexpr( skipAlignmentCheck ) + { + //static bool first=true; if( first ){ std::cout << "WARNING! assume aligned AOSOA, skip check" << std::endl; first=false; } // SLOWER (5.06E6) + // FASTEST? (5.09E6 in eemumu 512y) + // This assumes alignment for momenta1d without checking - causes segmentation fault in reinterpret_cast if not aligned! + return mg5amcCpu::fptypevFromAlignedArray( out ); // use reinterpret_cast + } + else if( (size_t)( buffer ) % mgOnGpu::cppAlign == 0 ) + { + //static bool first=true; if( first ){ std::cout << "WARNING! aligned AOSOA, reinterpret cast" << std::endl; first=false; } // SLOWER (5.00E6) + // DEFAULT! A tiny bit (<1%) slower because of the alignment check (5.07E6 in eemumu 512y) + // This explicitly checks buffer alignment to avoid segmentation faults in reinterpret_cast + return mg5amcCpu::fptypevFromAlignedArray( out ); // SIMD bulk load of neppV, use reinterpret_cast + } + else + { + //static bool first=true; if( first ){ std::cout << "WARNING! AOSOA but no reinterpret cast" << std::endl; first=false; } // SLOWER (4.93E6) + // A bit (1%) slower (5.05E6 in eemumu 512y) + // This does not require buffer alignment, but it requires AOSOA with neppM>=neppV and neppM%neppV==0 + return mg5amcCpu::fptypevFromUnalignedArray( out ); // SIMD bulk load of neppV, do not use reinterpret_cast (fewer SIMD operations) + } } else { - //static bool first=true; if( first ){ std::cout << "WARNING! AOSOA but no reinterpret cast" << std::endl; first=false; } // SLOWER (4.93E6) - // A bit (1%) slower (5.05E6 in eemumu 512y) - // This does not require buffer alignment, but it requires AOSOA with neppM>=neppV and neppM%neppV==0 - return mg5amcCpu::fptypevFromUnalignedArray( out ); // SIMD bulk load of neppV, do not use reinterpret_cast (fewer SIMD operations) + //static bool first=true; if( first ){ std::cout << "WARNING! arbitrary array" << std::endl; first=false; } // SLOWER (5.08E6) + // ?!Used to be much slower, now a tiny bit faster for AOSOA?! (5.11E6 for AOSOA, 4.64E6 for AOS in eemumu 512y) + // This does not even require AOSOA with neppM>=neppV and neppM%neppV==0 (e.g. can be used with AOS neppM==1) + constexpr int ievt0 = 0; // just make it explicit in the code that buffer refers to a given ievt0 and decoderIeppV fetches event ievt0+ieppV + auto decoderIeppv = [buffer, ip4, ipar]( int ieppV ) + -> const fptype& + { return MemoryAccessMomenta::ieventAccessIp4IparConst( buffer, ievt0 + ieppV, ip4, ipar ); }; + return mg5amcCpu::fptypevFromArbitraryArray( decoderIeppv ); // iterate over ieppV in neppV (no SIMD) } +#endif } - else + + // Is this a HostAccess or DeviceAccess class? + // [this is only needed for a warning printout in rambo.h for nparf==1 #358] + static __host__ __device__ inline constexpr bool + isOnDevice() { - //static bool first=true; if( first ){ std::cout << "WARNING! arbitrary array" << std::endl; first=false; } // SLOWER (5.08E6) - // ?!Used to be much slower, now a tiny bit faster for AOSOA?! (5.11E6 for AOSOA, 4.64E6 for AOS in eemumu 512y) - // This does not even require AOSOA with neppM>=neppV and neppM%neppV==0 (e.g. can be used with AOS neppM==1) - constexpr int ievt0 = 0; // just make it explicit in the code that buffer refers to a given ievt0 and decoderIeppV fetches event ievt0+ieppV - auto decoderIeppv = [buffer, ip4, ipar]( int ieppV ) - -> const fptype& - { return MemoryAccessMomenta::ieventAccessIp4IparConst( buffer, ievt0 + ieppV, ip4, ipar ); }; - return mg5amcCpu::fptypevFromArbitraryArray( decoderIeppv ); // iterate over ieppV in neppV (no SIMD) + return onDevice; } -#endif - } + }; - // Is this a HostAccess or DeviceAccess class? - // [this is only needed for a warning printout in rambo.h for nparf==1 #358] - static __host__ __device__ inline constexpr bool - isOnDevice() - { - return onDevice; - } -}; + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- + typedef KernelAccessMomenta HostAccessMomenta; + typedef KernelAccessMomenta DeviceAccessMomenta; -typedef KernelAccessMomenta HostAccessMomenta; -typedef KernelAccessMomenta DeviceAccessMomenta; + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- +} // end namespace mg5amcGpu/mg5amcCpu #endif // MemoryAccessMomenta_H diff --git a/epochX/cudacpp/CODEGEN/PLUGIN/CUDACPP_SA_OUTPUT/madgraph/iolibs/template_files/gpu/MemoryAccessNumerators.h b/epochX/cudacpp/CODEGEN/PLUGIN/CUDACPP_SA_OUTPUT/madgraph/iolibs/template_files/gpu/MemoryAccessNumerators.h index b373fd6048..b152183b28 100644 --- a/epochX/cudacpp/CODEGEN/PLUGIN/CUDACPP_SA_OUTPUT/madgraph/iolibs/template_files/gpu/MemoryAccessNumerators.h +++ b/epochX/cudacpp/CODEGEN/PLUGIN/CUDACPP_SA_OUTPUT/madgraph/iolibs/template_files/gpu/MemoryAccessNumerators.h @@ -9,15 +9,24 @@ #include "MemoryAccessGs.h" -//---------------------------------------------------------------------------- +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif +{ + //---------------------------------------------------------------------------- + + // A class describing the internal layout of memory buffers for numerators + // This implementation reuses the plain ARRAY[nevt] implementation of MemoryAccessGs -// A class describing the internal layout of memory buffers for numerators -// This implementation reuses the plain ARRAY[nevt] implementation of MemoryAccessGs + typedef KernelAccessGs HostAccessNumerators; + typedef KernelAccessGs DeviceAccessNumerators; -typedef KernelAccessGs HostAccessNumerators; -typedef KernelAccessGs DeviceAccessNumerators; + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- +} // end namespace mg5amcGpu/mg5amcCpu #endif #endif // MemoryAccessNumerators_H diff --git a/epochX/cudacpp/CODEGEN/PLUGIN/CUDACPP_SA_OUTPUT/madgraph/iolibs/template_files/gpu/MemoryAccessWavefunctions.h b/epochX/cudacpp/CODEGEN/PLUGIN/CUDACPP_SA_OUTPUT/madgraph/iolibs/template_files/gpu/MemoryAccessWavefunctions.h index f42f0d34ed..5428aaf933 100644 --- a/epochX/cudacpp/CODEGEN/PLUGIN/CUDACPP_SA_OUTPUT/madgraph/iolibs/template_files/gpu/MemoryAccessWavefunctions.h +++ b/epochX/cudacpp/CODEGEN/PLUGIN/CUDACPP_SA_OUTPUT/madgraph/iolibs/template_files/gpu/MemoryAccessWavefunctions.h @@ -14,147 +14,156 @@ #define MGONGPU_TRIVIAL_WAVEFUNCTIONS 1 -//---------------------------------------------------------------------------- - -#ifndef MGONGPU_TRIVIAL_WAVEFUNCTIONS - -// A class describing the internal layout of memory buffers for wavefunctions -// This implementation uses an AOSOA[npagW][nw6][nx2][neppW] where nevt=npagW*neppW -// [If many implementations are used, a suffix _AOSOAv1 should be appended to the class name] -class MemoryAccessWavefunctionsBase //_AOSOAv1 +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { -public: - - // Number of Events Per Page in the wavefunction AOSOA memory buffer layout - static constexpr int neppW = 1; // AOS (just a test...) - -private: - - friend class MemoryAccessHelper; - friend class KernelAccessHelper; - friend class KernelAccessHelper; - - // The number of components of a (fermion or vector) wavefunction - static constexpr int nw6 = mgOnGpu::nw6; - - // The number of floating point components of a complex number - static constexpr int nx2 = mgOnGpu::nx2; + //---------------------------------------------------------------------------- - //-------------------------------------------------------------------------- - // NB all KernelLaunchers assume that memory access can be decomposed as "accessField = decodeRecord( accessRecord )" - // (in other words: first locate the event record for a given event, then locate an element in that record) - //-------------------------------------------------------------------------- +#ifndef MGONGPU_TRIVIAL_WAVEFUNCTIONS - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] - static __host__ __device__ inline fptype* - ieventAccessRecord( fptype* buffer, - const int ievt ) + // A class describing the internal layout of memory buffers for wavefunctions + // This implementation uses an AOSOA[npagW][nw6][nx2][neppW] where nevt=npagW*neppW + // [If many implementations are used, a suffix _AOSOAv1 should be appended to the class name] + class MemoryAccessWavefunctionsBase //_AOSOAv1 { - const int ipagW = ievt / neppW; // #event "W-page" - const int ieppW = ievt % neppW; // #event in the current event W-page - constexpr int iw6 = 0; - constexpr int ix2 = 0; - return &( buffer[ipagW * nw6 * nx2 * neppW + iw6 * nx2 * neppW + ix2 * neppW + ieppW] ); // AOSOA[ipagW][iw6][ix2][ieppW] - } - - //-------------------------------------------------------------------------- - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, Ts... args ) <===] - // [NB: expand variadic template "Ts... args" to "const int iw6, const int ix2" and rename "Field" as "Iw6Ix2"] - static __host__ __device__ inline fptype& - decodeRecord( fptype* buffer, - const int iw6, - const int ix2 ) + public: + + // Number of Events Per Page in the wavefunction AOSOA memory buffer layout + static constexpr int neppW = 1; // AOS (just a test...) + + private: + + friend class MemoryAccessHelper; + friend class KernelAccessHelper; + friend class KernelAccessHelper; + + // The number of components of a (fermion or vector) wavefunction + static constexpr int nw6 = mgOnGpu::nw6; + + // The number of floating point components of a complex number + static constexpr int nx2 = mgOnGpu::nx2; + + //-------------------------------------------------------------------------- + // NB all KernelLaunchers assume that memory access can be decomposed as "accessField = decodeRecord( accessRecord )" + // (in other words: first locate the event record for a given event, then locate an element in that record) + //-------------------------------------------------------------------------- + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] + static __host__ __device__ inline fptype* + ieventAccessRecord( fptype* buffer, + const int ievt ) + { + const int ipagW = ievt / neppW; // #event "W-page" + const int ieppW = ievt % neppW; // #event in the current event W-page + constexpr int iw6 = 0; + constexpr int ix2 = 0; + return &( buffer[ipagW * nw6 * nx2 * neppW + iw6 * nx2 * neppW + ix2 * neppW + ieppW] ); // AOSOA[ipagW][iw6][ix2][ieppW] + } + + //-------------------------------------------------------------------------- + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, Ts... args ) <===] + // [NB: expand variadic template "Ts... args" to "const int iw6, const int ix2" and rename "Field" as "Iw6Ix2"] + static __host__ __device__ inline fptype& + decodeRecord( fptype* buffer, + const int iw6, + const int ix2 ) + { + constexpr int ipagW = 0; + constexpr int ieppW = 0; + return buffer[ipagW * nw6 * nx2 * neppW + iw6 * nx2 * neppW + ix2 * neppW + ieppW]; // AOSOA[ipagW][iw6][ix2][ieppW] + } + }; + + //---------------------------------------------------------------------------- + + // A class providing access to memory buffers for a given event, based on explicit event numbers + // Its methods use the MemoryAccessHelper templates - note the use of the template keyword in template function instantiations + class MemoryAccessWavefunctions : public MemoryAccessWavefunctionsBase { - constexpr int ipagW = 0; - constexpr int ieppW = 0; - return buffer[ipagW * nw6 * nx2 * neppW + iw6 * nx2 * neppW + ix2 * neppW + ieppW]; // AOSOA[ipagW][iw6][ix2][ieppW] - } -}; - -//---------------------------------------------------------------------------- + public: -// A class providing access to memory buffers for a given event, based on explicit event numbers -// Its methods use the MemoryAccessHelper templates - note the use of the template keyword in template function instantiations -class MemoryAccessWavefunctions : public MemoryAccessWavefunctionsBase -{ -public: + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] + static constexpr auto ieventAccessRecord = MemoryAccessHelper::ieventAccessRecord; - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] - static constexpr auto ieventAccessRecord = MemoryAccessHelper::ieventAccessRecord; + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (const) ===> const fptype* ieventAccessRecordConst( const fptype* buffer, const int ievt ) <===] + static constexpr auto ieventAccessRecordConst = MemoryAccessHelper::ieventAccessRecordConst; - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (const) ===> const fptype* ieventAccessRecordConst( const fptype* buffer, const int ievt ) <===] - static constexpr auto ieventAccessRecordConst = MemoryAccessHelper::ieventAccessRecordConst; + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, const int iw6, const int ix2 ) <===] + static constexpr auto decodeRecordIw6Ix2 = MemoryAccessHelper::decodeRecord; - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, const int iw6, const int ix2 ) <===] - static constexpr auto decodeRecordIw6Ix2 = MemoryAccessHelper::decodeRecord; + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (const) ===> const fptype& decodeRecordConst( const fptype* buffer, const int iw6, const int ix2 ) <===] + static constexpr auto decodeRecordIw6Ix2Const = + MemoryAccessHelper::template decodeRecordConst; - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (const) ===> const fptype& decodeRecordConst( const fptype* buffer, const int iw6, const int ix2 ) <===] - static constexpr auto decodeRecordIw6Ix2Const = - MemoryAccessHelper::template decodeRecordConst; + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (non-const) ===> fptype& ieventAccessIw6Ix2( fptype* buffer, const ievt, const int iw6, const int ix2 ) <===] + static constexpr auto ieventAccessIw6Ix2 = + MemoryAccessHelper::template ieventAccessField; - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (non-const) ===> fptype& ieventAccessIw6Ix2( fptype* buffer, const ievt, const int iw6, const int ix2 ) <===] - static constexpr auto ieventAccessIw6Ix2 = - MemoryAccessHelper::template ieventAccessField; - - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (const) ===> const fptype& ieventAccessIw6Ix2Const( const fptype* buffer, const ievt, const int iw6, const int ix2 ) <===] - static constexpr auto ieventAccessIw6Ix2Const = - MemoryAccessHelper::template ieventAccessFieldConst; -}; + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (const) ===> const fptype& ieventAccessIw6Ix2Const( const fptype* buffer, const ievt, const int iw6, const int ix2 ) <===] + static constexpr auto ieventAccessIw6Ix2Const = + MemoryAccessHelper::template ieventAccessFieldConst; + }; #endif // #ifndef MGONGPU_TRIVIAL_WAVEFUNCTIONS -//---------------------------------------------------------------------------- + //---------------------------------------------------------------------------- -// A class providing access to memory buffers for a given event, based on implicit kernel rules -// Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations -template -class KernelAccessWavefunctions -{ -public: + // A class providing access to memory buffers for a given event, based on implicit kernel rules + // Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations + template + class KernelAccessWavefunctions + { + public: #ifndef MGONGPU_TRIVIAL_WAVEFUNCTIONS - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (non-const) ===> fptype& kernelAccessIw6Ix2( fptype* buffer, const int iw6, const int ix2 ) <===] - static constexpr auto kernelAccessIw6Ix2 = - KernelAccessHelper::template kernelAccessField; + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (non-const) ===> fptype& kernelAccessIw6Ix2( fptype* buffer, const int iw6, const int ix2 ) <===] + static constexpr auto kernelAccessIw6Ix2 = + KernelAccessHelper::template kernelAccessField; - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (const) ===> const fptype& kernelAccessIw6Ix2Const( const fptype* buffer, const int iw6, const int ix2 ) <===] - static constexpr auto kernelAccessIw6Ix2Const = - KernelAccessHelper::template kernelAccessFieldConst; + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (const) ===> const fptype& kernelAccessIw6Ix2Const( const fptype* buffer, const int iw6, const int ix2 ) <===] + static constexpr auto kernelAccessIw6Ix2Const = + KernelAccessHelper::template kernelAccessFieldConst; #else - static __host__ __device__ inline cxtype_sv* - kernelAccess( fptype* buffer ) - { - return reinterpret_cast( buffer ); - } + static __host__ __device__ inline cxtype_sv* + kernelAccess( fptype* buffer ) + { + return reinterpret_cast( buffer ); + } - static __host__ __device__ inline const cxtype_sv* - kernelAccessConst( const fptype* buffer ) - { - return reinterpret_cast( buffer ); - } + static __host__ __device__ inline const cxtype_sv* + kernelAccessConst( const fptype* buffer ) + { + return reinterpret_cast( buffer ); + } #endif // #ifndef MGONGPU_TRIVIAL_WAVEFUNCTIONS -}; + }; + + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- + typedef KernelAccessWavefunctions HostAccessWavefunctions; + typedef KernelAccessWavefunctions DeviceAccessWavefunctions; -typedef KernelAccessWavefunctions HostAccessWavefunctions; -typedef KernelAccessWavefunctions DeviceAccessWavefunctions; + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- +} // end namespace mg5amcGpu/mg5amcCpu #endif // MemoryAccessWavefunctions_H diff --git a/epochX/cudacpp/CODEGEN/PLUGIN/CUDACPP_SA_OUTPUT/madgraph/iolibs/template_files/gpu/cpp_hel_amps_cc.inc b/epochX/cudacpp/CODEGEN/PLUGIN/CUDACPP_SA_OUTPUT/madgraph/iolibs/template_files/gpu/cpp_hel_amps_cc.inc index 74a5f5e5c1..9f50efdb07 100644 --- a/epochX/cudacpp/CODEGEN/PLUGIN/CUDACPP_SA_OUTPUT/madgraph/iolibs/template_files/gpu/cpp_hel_amps_cc.inc +++ b/epochX/cudacpp/CODEGEN/PLUGIN/CUDACPP_SA_OUTPUT/madgraph/iolibs/template_files/gpu/cpp_hel_amps_cc.inc @@ -1,3 +1,4 @@ +! Copyright (C) 2010 The ALOHA Development team and Contributors. ! Copyright (C) 2010 The MadGraph5_aMC@NLO development team and contributors. ! Created by: J. Alwall (Sep 2010) for the MG5aMC CPP backend. !========================================================================== diff --git a/epochX/cudacpp/CODEGEN/PLUGIN/CUDACPP_SA_OUTPUT/madgraph/iolibs/template_files/gpu/cpp_hel_amps_h.inc b/epochX/cudacpp/CODEGEN/PLUGIN/CUDACPP_SA_OUTPUT/madgraph/iolibs/template_files/gpu/cpp_hel_amps_h.inc index 862f4b1976..562af241af 100644 --- a/epochX/cudacpp/CODEGEN/PLUGIN/CUDACPP_SA_OUTPUT/madgraph/iolibs/template_files/gpu/cpp_hel_amps_h.inc +++ b/epochX/cudacpp/CODEGEN/PLUGIN/CUDACPP_SA_OUTPUT/madgraph/iolibs/template_files/gpu/cpp_hel_amps_h.inc @@ -1,3 +1,4 @@ +// Copyright (C) 2010 The ALOHA Development team and Contributors. // Copyright (C) 2010 The MadGraph5_aMC@NLO development team and contributors. // Created by: J. Alwall (Sep 2010) for the MG5aMC backend. //========================================================================== @@ -19,6 +20,7 @@ #include "Parameters_%(model_name)s.h" +#include //#include //#include //#include diff --git a/epochX/cudacpp/CODEGEN/PLUGIN/CUDACPP_SA_OUTPUT/madgraph/iolibs/template_files/gpu/cudacpp.mk b/epochX/cudacpp/CODEGEN/PLUGIN/CUDACPP_SA_OUTPUT/madgraph/iolibs/template_files/gpu/cudacpp.mk index c2937d59d2..8162dee42b 100644 --- a/epochX/cudacpp/CODEGEN/PLUGIN/CUDACPP_SA_OUTPUT/madgraph/iolibs/template_files/gpu/cudacpp.mk +++ b/epochX/cudacpp/CODEGEN/PLUGIN/CUDACPP_SA_OUTPUT/madgraph/iolibs/template_files/gpu/cudacpp.mk @@ -76,7 +76,7 @@ endif CXXFLAGS = $(OPTFLAGS) -std=c++17 $(INCFLAGS) -Wall -Wshadow -Wextra ifeq ($(shell $(CXX) --version | grep ^nvc++),) -CXXFLAGS+= -ffast-math # see issue #117 +CXXFLAGS += -ffast-math # see issue #117 endif ###CXXFLAGS+= -Ofast # performance is not different from --fast-math ###CXXFLAGS+= -g # FOR DEBUGGING ONLY @@ -122,7 +122,7 @@ ifneq ($(wildcard $(CUDA_HOME)/bin/nvcc),) CUINC = -I$(CUDA_HOME)/include/ CURANDLIBFLAGS = -L$(CUDA_HOME)/lib64/ -lcurand # NB: -lcuda is not needed here! CUOPTFLAGS = -lineinfo - CUFLAGS = $(OPTFLAGS) $(CUOPTFLAGS) $(INCFLAGS) $(CUINC) $(USE_NVTX) $(CUARCHFLAGS) -use_fast_math + CUFLAGS = $(foreach opt, $(OPTFLAGS), -Xcompiler $(opt)) $(CUOPTFLAGS) $(INCFLAGS) $(CUINC) $(USE_NVTX) $(CUARCHFLAGS) -use_fast_math ###CUFLAGS += -Xcompiler -Wall -Xcompiler -Wextra -Xcompiler -Wshadow ###NVCC_VERSION = $(shell $(NVCC) --version | grep 'Cuda compilation tools' | cut -d' ' -f5 | cut -d, -f1) CUFLAGS += -std=c++17 # need CUDA >= 11.2 (see #333): this is enforced in mgOnGpuConfig.h @@ -142,6 +142,8 @@ else override CUINC= override CURANDLIBFLAGS= endif +export NVCC +export CUFLAGS # Set the host C++ compiler for nvcc via "-ccbin " # (NB issue #505: this must be a single word, "clang++ --gcc-toolchain..." is not supported) @@ -439,7 +441,7 @@ endif # Target (and build options): debug MAKEDEBUG= -debug: OPTFLAGS = -g -O0 -DDEBUG2 +debug: OPTFLAGS = -g -O0 debug: CUOPTFLAGS = -G debug: MAKEDEBUG := debug debug: all.$(TAG) @@ -468,9 +470,9 @@ $(BUILDDIR)/%%.o : %%.cc *.h ../../src/*.h $(BUILDDIR)/.build.$(TAG) @if [ ! -d $(BUILDDIR) ]; then echo "mkdir -p $(BUILDDIR)"; mkdir -p $(BUILDDIR); fi $(CXX) $(CPPFLAGS) $(CXXFLAGS) -fPIC -c $< -o $@ -# Apply special build flags only to CrossSectionKernel.cc and gCrossSectionKernel.cu (no fast math, see #117) +# Apply special build flags only to CrossSectionKernel.cc and gCrossSectionKernel.cu (no fast math, see #117 and #516) ifeq ($(shell $(CXX) --version | grep ^nvc++),) -$(BUILDDIR)/CrossSectionKernels.o: CXXFLAGS += -fno-fast-math +$(BUILDDIR)/CrossSectionKernels.o: CXXFLAGS := $(filter-out -ffast-math,$(CXXFLAGS)) $(BUILDDIR)/CrossSectionKernels.o: CXXFLAGS += -fno-fast-math ifneq ($(NVCC),) $(BUILDDIR)/gCrossSectionKernels.o: CUFLAGS += -Xcompiler -fno-fast-math diff --git a/epochX/cudacpp/CODEGEN/PLUGIN/CUDACPP_SA_OUTPUT/madgraph/iolibs/template_files/gpu/cudacpp_src.mk b/epochX/cudacpp/CODEGEN/PLUGIN/CUDACPP_SA_OUTPUT/madgraph/iolibs/template_files/gpu/cudacpp_src.mk index bc2e0123ee..dac2e47d1d 100644 --- a/epochX/cudacpp/CODEGEN/PLUGIN/CUDACPP_SA_OUTPUT/madgraph/iolibs/template_files/gpu/cudacpp_src.mk +++ b/epochX/cudacpp/CODEGEN/PLUGIN/CUDACPP_SA_OUTPUT/madgraph/iolibs/template_files/gpu/cudacpp_src.mk @@ -38,7 +38,13 @@ endif #------------------------------------------------------------------------------- -#=== Configure ccache for CUDA and C++ builds +#=== Configure the CUDA compiler (note: NVCC is already exported including ccache) + +###$(info NVCC=$(NVCC)) + +#------------------------------------------------------------------------------- + +#=== Configure ccache for C++ builds (note: NVCC is already exported including ccache) # Enable ccache if USECCACHE=1 ifeq ($(USECCACHE)$(shell echo $(CXX) | grep ccache),1) @@ -47,11 +53,6 @@ endif #ifeq ($(USECCACHE)$(shell echo $(AR) | grep ccache),1) # override AR:=ccache $(AR) #endif -#ifneq ($(NVCC),) -# ifeq ($(USECCACHE)$(shell echo $(NVCC) | grep ccache),1) -# override NVCC:=ccache $(NVCC) -# endif -#endif #------------------------------------------------------------------------------- @@ -115,7 +116,9 @@ else ifneq ($(shell $(CXX) --version | grep ^nvc++),) # support nvc++ #531 $(error Unknown AVX='$(AVX)': only 'none', 'sse4', 'avx2', '512y' and '512z' are supported) endif else - ifeq ($(AVX),sse4) + ifeq ($(AVX),none) + override AVXFLAGS = -march=x86-64 # no SIMD (see #588) + else ifeq ($(AVX),sse4) override AVXFLAGS = -march=nehalem # SSE4.2 with 128 width (xmm registers) else ifeq ($(AVX),avx2) override AVXFLAGS = -march=haswell # AVX2 with 256 width (ymm registers) [DEFAULT for clang] @@ -216,7 +219,7 @@ MG5AMC_COMMONLIB = mg5amc_common all.$(TAG): $(BUILDDIR)/.build.$(TAG) $(LIBDIR)/.build.$(TAG) $(LIBDIR)/lib$(MG5AMC_COMMONLIB).so # Target (and build options): debug -debug: OPTFLAGS = -g -O0 -DDEBUG2 +debug: OPTFLAGS = -g -O0 debug: all.$(TAG) # Target: tag-specific build lockfiles @@ -237,17 +240,31 @@ $(LIBDIR)/.build.$(TAG): # Generic target and build rules: objects from C++ compilation $(BUILDDIR)/%%.o : %%.cc *.h $(BUILDDIR)/.build.$(TAG) - @if [ ! -d $(BUILDDIR) ]; then mkdir -p $(BUILDDIR); fi - $(CXX) $(CPPFLAGS) $(CXXFLAGS) -c $< -o $@ + @if [ ! -d $(BUILDDIR) ]; then echo "mkdir -p $(BUILDDIR)"; mkdir -p $(BUILDDIR); fi + $(CXX) $(CPPFLAGS) $(CXXFLAGS) -fPIC -c $< -o $@ + +# Generic target and build rules: objects from CUDA compilation +$(BUILDDIR)/%%_cu.o : %%.cc *.h $(BUILDDIR)/.build.$(TAG) + @if [ ! -d $(BUILDDIR) ]; then echo "mkdir -p $(BUILDDIR)"; mkdir -p $(BUILDDIR); fi + $(NVCC) $(CPPFLAGS) $(CUFLAGS) -Xcompiler -fPIC -c -x cu $< -o $@ #------------------------------------------------------------------------------- cxx_objects=$(addprefix $(BUILDDIR)/, Parameters_%(model)s.o read_slha.o) +ifneq ($(NVCC),) +cu_objects=$(addprefix $(BUILDDIR)/, Parameters_%(model)s_cu.o) +endif # Target (and build rules): common (src) library +ifneq ($(NVCC),) +$(LIBDIR)/lib$(MG5AMC_COMMONLIB).so : $(cxx_objects) $(cu_objects) + @if [ ! -d $(LIBDIR) ]; then echo "mkdir -p $(LIBDIR)"; mkdir -p $(LIBDIR); fi + $(NVCC) -shared -o $@ $(cxx_objects) $(cu_objects) +else $(LIBDIR)/lib$(MG5AMC_COMMONLIB).so : $(cxx_objects) @if [ ! -d $(LIBDIR) ]; then echo "mkdir -p $(LIBDIR)"; mkdir -p $(LIBDIR); fi - $(CXX) -shared -o$@ $(cxx_objects) + $(CXX) -shared -o $@ $(cxx_objects) +endif #------------------------------------------------------------------------------- diff --git a/epochX/cudacpp/CODEGEN/PLUGIN/CUDACPP_SA_OUTPUT/madgraph/iolibs/template_files/gpu/mgOnGpuConfig.h b/epochX/cudacpp/CODEGEN/PLUGIN/CUDACPP_SA_OUTPUT/madgraph/iolibs/template_files/gpu/mgOnGpuConfig.h index 8b283c1d36..02bfdcf8f5 100644 --- a/epochX/cudacpp/CODEGEN/PLUGIN/CUDACPP_SA_OUTPUT/madgraph/iolibs/template_files/gpu/mgOnGpuConfig.h +++ b/epochX/cudacpp/CODEGEN/PLUGIN/CUDACPP_SA_OUTPUT/madgraph/iolibs/template_files/gpu/mgOnGpuConfig.h @@ -98,6 +98,7 @@ #endif #endif +// NB: namespace mgOnGpu includes types which are defined in exactly the same way for CPU and GPU builds (see #318 and #725) namespace mgOnGpu { diff --git a/epochX/cudacpp/CODEGEN/PLUGIN/CUDACPP_SA_OUTPUT/madgraph/iolibs/template_files/gpu/mgOnGpuCxtypes.h b/epochX/cudacpp/CODEGEN/PLUGIN/CUDACPP_SA_OUTPUT/madgraph/iolibs/template_files/gpu/mgOnGpuCxtypes.h index 0cb2f1db7e..b56348bc58 100644 --- a/epochX/cudacpp/CODEGEN/PLUGIN/CUDACPP_SA_OUTPUT/madgraph/iolibs/template_files/gpu/mgOnGpuCxtypes.h +++ b/epochX/cudacpp/CODEGEN/PLUGIN/CUDACPP_SA_OUTPUT/madgraph/iolibs/template_files/gpu/mgOnGpuCxtypes.h @@ -43,8 +43,12 @@ // COMPLEX TYPES: SIMPLE COMPLEX CLASS (cxsmpl) //========================================================================== +// NB: namespace mgOnGpu includes types which are defined in exactly the same way for CPU and GPU builds (see #318 and #725) namespace mgOnGpu /* clang-format off */ { + // The number of floating point types in a complex type (real, imaginary) + constexpr int nx2 = 2; + // --- Type definition (simple complex type derived from cxtype_v) template class cxsmpl @@ -78,128 +82,139 @@ namespace mgOnGpu /* clang-format off */ using mgOnGpu::cxsmpl; // Printout to stream for user defined types -template -inline __host__ __device__ std::ostream& -operator<<( std::ostream& out, const cxsmpl& c ) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { - out << std::complex( c.real(), c.imag() ); - return out; -} + template + inline __host__ std::ostream& + operator<<( std::ostream& out, const cxsmpl& c ) + { + out << std::complex( c.real(), c.imag() ); + return out; + } -// Operators for cxsmpl -template -inline __host__ __device__ constexpr cxsmpl -operator+( const cxsmpl a ) -{ - return a; -} + // Operators for cxsmpl + template + inline __host__ __device__ constexpr cxsmpl + operator+( const cxsmpl a ) + { + return a; + } -template -inline __host__ __device__ constexpr cxsmpl -operator-( const cxsmpl& a ) -{ - return cxsmpl( -a.real(), -a.imag() ); -} + template + inline __host__ __device__ constexpr cxsmpl + operator-( const cxsmpl& a ) + { + return cxsmpl( -a.real(), -a.imag() ); + } -template -inline __host__ __device__ constexpr cxsmpl -operator+( const cxsmpl& a, const cxsmpl& b ) -{ - return cxsmpl( a.real() + b.real(), a.imag() + b.imag() ); -} + template + inline __host__ __device__ constexpr cxsmpl + operator+( const cxsmpl& a, const cxsmpl& b ) + { + return cxsmpl( a.real() + b.real(), a.imag() + b.imag() ); + } -template -inline __host__ __device__ constexpr cxsmpl -operator+( const FP& a, const cxsmpl& b ) -{ - return cxsmpl( a, 0 ) + b; -} + template + inline __host__ __device__ constexpr cxsmpl + operator+( const FP& a, const cxsmpl& b ) + { + return cxsmpl( a, 0 ) + b; + } -template -inline __host__ __device__ constexpr cxsmpl -operator-( const cxsmpl& a, const cxsmpl& b ) -{ - return cxsmpl( a.real() - b.real(), a.imag() - b.imag() ); -} + template + inline __host__ __device__ constexpr cxsmpl + operator-( const cxsmpl& a, const cxsmpl& b ) + { + return cxsmpl( a.real() - b.real(), a.imag() - b.imag() ); + } -template -inline __host__ __device__ constexpr cxsmpl -operator-( const FP& a, const cxsmpl& b ) -{ - return cxsmpl( a, 0 ) - b; -} + template + inline __host__ __device__ constexpr cxsmpl + operator-( const FP& a, const cxsmpl& b ) + { + return cxsmpl( a, 0 ) - b; + } -template -inline __host__ __device__ constexpr cxsmpl -operator*( const cxsmpl& a, const cxsmpl& b ) -{ - return cxsmpl( a.real() * b.real() - a.imag() * b.imag(), a.imag() * b.real() + a.real() * b.imag() ); -} + template + inline __host__ __device__ constexpr cxsmpl + operator*( const cxsmpl& a, const cxsmpl& b ) + { + return cxsmpl( a.real() * b.real() - a.imag() * b.imag(), a.imag() * b.real() + a.real() * b.imag() ); + } -template -inline __host__ __device__ constexpr cxsmpl -operator*( const FP& a, const cxsmpl& b ) -{ - return cxsmpl( a, 0 ) * b; -} + template + inline __host__ __device__ constexpr cxsmpl + operator*( const FP& a, const cxsmpl& b ) + { + return cxsmpl( a, 0 ) * b; + } -inline __host__ __device__ constexpr cxsmpl -operator*( const double& a, const cxsmpl& b ) -{ - return cxsmpl( a, 0 ) * b; -} + inline __host__ __device__ constexpr cxsmpl + operator*( const double& a, const cxsmpl& b ) + { + return cxsmpl( a, 0 ) * b; + } -template -inline __host__ __device__ constexpr cxsmpl -operator/( const cxsmpl& a, const cxsmpl& b ) -{ - FP bnorm = b.real() * b.real() + b.imag() * b.imag(); - return cxsmpl( ( a.real() * b.real() + a.imag() * b.imag() ) / bnorm, - ( a.imag() * b.real() - a.real() * b.imag() ) / bnorm ); -} + template + inline __host__ __device__ constexpr cxsmpl + operator/( const cxsmpl& a, const cxsmpl& b ) + { + FP bnorm = b.real() * b.real() + b.imag() * b.imag(); + return cxsmpl( ( a.real() * b.real() + a.imag() * b.imag() ) / bnorm, + ( a.imag() * b.real() - a.real() * b.imag() ) / bnorm ); + } -template -inline __host__ __device__ constexpr cxsmpl -operator/( const FP& a, const cxsmpl& b ) -{ - return cxsmpl( a, 0 ) / b; -} + template + inline __host__ __device__ constexpr cxsmpl + operator/( const FP& a, const cxsmpl& b ) + { + return cxsmpl( a, 0 ) / b; + } -template -inline __host__ __device__ constexpr cxsmpl -operator+( const cxsmpl& a, const FP& b ) -{ - return a + cxsmpl( b, 0 ); -} + template + inline __host__ __device__ constexpr cxsmpl + operator+( const cxsmpl& a, const FP& b ) + { + return a + cxsmpl( b, 0 ); + } -template -inline __host__ __device__ constexpr cxsmpl -operator-( const cxsmpl& a, const FP& b ) -{ - return a - cxsmpl( b, 0 ); -} + template + inline __host__ __device__ constexpr cxsmpl + operator-( const cxsmpl& a, const FP& b ) + { + return a - cxsmpl( b, 0 ); + } -template -inline __host__ __device__ constexpr cxsmpl -operator*( const cxsmpl& a, const FP& b ) -{ - return a * cxsmpl( b, 0 ); -} + template + inline __host__ __device__ constexpr cxsmpl + operator*( const cxsmpl& a, const FP& b ) + { + return a * cxsmpl( b, 0 ); + } -template -inline __host__ __device__ constexpr cxsmpl -operator/( const cxsmpl& a, const FP& b ) -{ - return a / cxsmpl( b, 0 ); + template + inline __host__ __device__ constexpr cxsmpl + operator/( const cxsmpl& a, const FP& b ) + { + return a / cxsmpl( b, 0 ); + } } //========================================================================== // COMPLEX TYPES: (PLATFORM-SPECIFIC) TYPEDEFS //========================================================================== -namespace mgOnGpu +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { - // --- Type definitions (complex type: cxtype) #ifdef __CUDACC__ // cuda #if defined MGONGPU_CUCXTYPE_THRUST @@ -221,390 +236,402 @@ namespace mgOnGpu #endif #endif - // The number of floating point types in a complex type (real, imaginary) - constexpr int nx2 = 2; - // SANITY CHECK: memory access may be based on casts of fptype[2] to cxtype (e.g. for wavefunctions) - static_assert( sizeof( cxtype ) == nx2 * sizeof( fptype ), "sizeof(cxtype) is not 2*sizeof(fptype)" ); + static_assert( sizeof( cxtype ) == mgOnGpu::nx2 * sizeof( fptype ), "sizeof(cxtype) is not 2*sizeof(fptype)" ); } -// Expose typedefs and operators outside the namespace -using mgOnGpu::cxtype; +// DANGEROUS! this was mixing different cxtype definitions for CPU and GPU builds (see #318 and #725) +// DO NOT expose typedefs and operators outside the namespace +//using mgOnGpu::cxtype; //========================================================================== // COMPLEX TYPES: (PLATFORM-SPECIFIC) FUNCTIONS AND OPERATORS //========================================================================== +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif +{ #if defined MGONGPU_CUCXTYPE_CXSMPL or defined MGONGPU_CPPCXTYPE_CXSMPL -//------------------------------ -// CUDA or C++ - using cxsmpl -//------------------------------ + //------------------------------ + // CUDA or C++ - using cxsmpl + //------------------------------ -inline __host__ __device__ cxtype -cxmake( const fptype& r, const fptype& i ) -{ - return cxtype( r, i ); // cxsmpl constructor -} + inline __host__ __device__ cxtype + cxmake( const fptype& r, const fptype& i ) + { + return cxtype( r, i ); // cxsmpl constructor + } -inline __host__ __device__ fptype -cxreal( const cxtype& c ) -{ - return c.real(); // cxsmpl::real() -} + inline __host__ __device__ fptype + cxreal( const cxtype& c ) + { + return c.real(); // cxsmpl::real() + } -inline __host__ __device__ fptype -cximag( const cxtype& c ) -{ - return c.imag(); // cxsmpl::imag() -} + inline __host__ __device__ fptype + cximag( const cxtype& c ) + { + return c.imag(); // cxsmpl::imag() + } -inline __host__ __device__ cxtype -cxconj( const cxtype& c ) -{ - return conj( c ); // conj( cxsmpl ) -} + inline __host__ __device__ cxtype + cxconj( const cxtype& c ) + { + return conj( c ); // conj( cxsmpl ) + } -inline __host__ cxtype // NOT __device__ -cxmake( const std::complex& c ) // std::complex to cxsmpl (float-to-float or float-to-double) -{ - return cxmake( c.real(), c.imag() ); -} + inline __host__ cxtype // NOT __device__ + cxmake( const std::complex& c ) // std::complex to cxsmpl (float-to-float or float-to-double) + { + return cxmake( c.real(), c.imag() ); + } -inline __host__ cxtype // NOT __device__ -cxmake( const std::complex& c ) // std::complex to cxsmpl (double-to-float or double-to-double) -{ - return cxmake( c.real(), c.imag() ); -} + inline __host__ cxtype // NOT __device__ + cxmake( const std::complex& c ) // std::complex to cxsmpl (double-to-float or double-to-double) + { + return cxmake( c.real(), c.imag() ); + } #endif // #if defined MGONGPU_CUCXTYPE_CXSMPL or defined MGONGPU_CPPCXTYPE_CXSMPL -//========================================================================== + //========================================================================== #if defined __CUDACC__ and defined MGONGPU_CUCXTYPE_THRUST // cuda + thrust -//------------------------------ -// CUDA - using thrust::complex -//------------------------------ + //------------------------------ + // CUDA - using thrust::complex + //------------------------------ -inline __host__ __device__ cxtype -cxmake( const fptype& r, const fptype& i ) -{ - return cxtype( r, i ); // thrust::complex constructor -} + inline __host__ __device__ cxtype + cxmake( const fptype& r, const fptype& i ) + { + return cxtype( r, i ); // thrust::complex constructor + } -inline __host__ __device__ fptype -cxreal( const cxtype& c ) -{ - return c.real(); // thrust::complex::real() -} + inline __host__ __device__ fptype + cxreal( const cxtype& c ) + { + return c.real(); // thrust::complex::real() + } -inline __host__ __device__ fptype -cximag( const cxtype& c ) -{ - return c.imag(); // thrust::complex::imag() -} + inline __host__ __device__ fptype + cximag( const cxtype& c ) + { + return c.imag(); // thrust::complex::imag() + } -inline __host__ __device__ cxtype -cxconj( const cxtype& c ) -{ - return conj( c ); // conj( thrust::complex ) -} + inline __host__ __device__ cxtype + cxconj( const cxtype& c ) + { + return conj( c ); // conj( thrust::complex ) + } -inline __host__ __device__ const cxtype& -cxmake( const cxtype& c ) -{ - return c; -} + inline __host__ __device__ const cxtype& + cxmake( const cxtype& c ) + { + return c; + } #endif // #if defined __CUDACC__ and defined MGONGPU_CUCXTYPE_THRUST -//========================================================================== + //========================================================================== #if defined __CUDACC__ and defined MGONGPU_CUCXTYPE_CUCOMPLEX // cuda + cucomplex -//------------------------------ -// CUDA - using cuComplex -//------------------------------ + //------------------------------ + // CUDA - using cuComplex + //------------------------------ #if defined MGONGPU_FPTYPE_DOUBLE // cuda + cucomplex + double -//+++++++++++++++++++++++++ -// cuDoubleComplex ONLY -//+++++++++++++++++++++++++ + //+++++++++++++++++++++++++ + // cuDoubleComplex ONLY + //+++++++++++++++++++++++++ -inline __host__ __device__ cxtype -cxmake( const fptype& r, const fptype& i ) -{ - return make_cuDoubleComplex( r, i ); -} + inline __host__ __device__ cxtype + cxmake( const fptype& r, const fptype& i ) + { + return make_cuDoubleComplex( r, i ); + } -inline __host__ __device__ fptype -cxreal( const cxtype& c ) -{ - return cuCreal( c ); // returns by value -} + inline __host__ __device__ fptype + cxreal( const cxtype& c ) + { + return cuCreal( c ); // returns by value + } -inline __host__ __device__ fptype -cximag( const cxtype& c ) -{ - return cuCimag( c ); // returns by value -} + inline __host__ __device__ fptype + cximag( const cxtype& c ) + { + return cuCimag( c ); // returns by value + } -inline __host__ __device__ cxtype -operator+( const cxtype& a, const cxtype& b ) -{ - return cuCadd( a, b ); -} + inline __host__ __device__ cxtype + operator+( const cxtype& a, const cxtype& b ) + { + return cuCadd( a, b ); + } -inline __host__ __device__ cxtype& -operator+=( cxtype& a, const cxtype& b ) -{ - a = cuCadd( a, b ); - return a; -} + inline __host__ __device__ cxtype& + operator+=( cxtype& a, const cxtype& b ) + { + a = cuCadd( a, b ); + return a; + } -inline __host__ __device__ cxtype -operator-( const cxtype& a, const cxtype& b ) -{ - return cuCsub( a, b ); -} + inline __host__ __device__ cxtype + operator-( const cxtype& a, const cxtype& b ) + { + return cuCsub( a, b ); + } -inline __host__ __device__ cxtype& -operator-=( cxtype& a, const cxtype& b ) -{ - a = cuCsub( a, b ); - return a; -} + inline __host__ __device__ cxtype& + operator-=( cxtype& a, const cxtype& b ) + { + a = cuCsub( a, b ); + return a; + } -inline __host__ __device__ cxtype -operator*( const cxtype& a, const cxtype& b ) -{ - return cuCmul( a, b ); -} + inline __host__ __device__ cxtype + operator*( const cxtype& a, const cxtype& b ) + { + return cuCmul( a, b ); + } -inline __host__ __device__ cxtype -operator/( const cxtype& a, const cxtype& b ) -{ - return cuCdiv( a, b ); -} + inline __host__ __device__ cxtype + operator/( const cxtype& a, const cxtype& b ) + { + return cuCdiv( a, b ); + } #elif defined MGONGPU_FPTYPE_FLOAT // cuda + cucomplex + float -//+++++++++++++++++++++++++ -// cuFloatComplex ONLY -//+++++++++++++++++++++++++ + //+++++++++++++++++++++++++ + // cuFloatComplex ONLY + //+++++++++++++++++++++++++ -inline __host__ __device__ cxtype -cxmake( const fptype& r, const fptype& i ) -{ - return make_cuFloatComplex( r, i ); -} + inline __host__ __device__ cxtype + cxmake( const fptype& r, const fptype& i ) + { + return make_cuFloatComplex( r, i ); + } -inline __host__ __device__ fptype -cxreal( const cxtype& c ) -{ - return cuCrealf( c ); // returns by value -} + inline __host__ __device__ fptype + cxreal( const cxtype& c ) + { + return cuCrealf( c ); // returns by value + } -inline __host__ __device__ fptype -cximag( const cxtype& c ) -{ - return cuCimagf( c ); // returns by value -} + inline __host__ __device__ fptype + cximag( const cxtype& c ) + { + return cuCimagf( c ); // returns by value + } -inline __host__ __device__ cxtype -operator+( const cxtype& a, const cxtype& b ) -{ - return cuCaddf( a, b ); -} + inline __host__ __device__ cxtype + operator+( const cxtype& a, const cxtype& b ) + { + return cuCaddf( a, b ); + } -inline __host__ __device__ cxtype& -operator+=( cxtype& a, const cxtype& b ) -{ - a = cuCaddf( a, b ); - return a; -} + inline __host__ __device__ cxtype& + operator+=( cxtype& a, const cxtype& b ) + { + a = cuCaddf( a, b ); + return a; + } -inline __host__ __device__ cxtype -operator-( const cxtype& a, const cxtype& b ) -{ - return cuCsubf( a, b ); -} + inline __host__ __device__ cxtype + operator-( const cxtype& a, const cxtype& b ) + { + return cuCsubf( a, b ); + } -inline __host__ __device__ cxtype& -operator-=( cxtype& a, const cxtype& b ) -{ - a = cuCsubf( a, b ); - return a; -} + inline __host__ __device__ cxtype& + operator-=( cxtype& a, const cxtype& b ) + { + a = cuCsubf( a, b ); + return a; + } -inline __host__ __device__ cxtype -operator*( const cxtype& a, const cxtype& b ) -{ - return cuCmulf( a, b ); -} + inline __host__ __device__ cxtype + operator*( const cxtype& a, const cxtype& b ) + { + return cuCmulf( a, b ); + } -inline __host__ __device__ cxtype -operator/( const cxtype& a, const cxtype& b ) -{ - return cuCdivf( a, b ); -} + inline __host__ __device__ cxtype + operator/( const cxtype& a, const cxtype& b ) + { + return cuCdivf( a, b ); + } -inline __host__ cxtype // NOT __device__ -cxmake( const std::complex& c ) // std::complex to cucomplex (cast double-to-float) -{ - return cxmake( (fptype)c.real(), (fptype)c.imag() ); -} + inline __host__ cxtype // NOT __device__ + cxmake( const std::complex& c ) // std::complex to cucomplex (cast double-to-float) + { + return cxmake( (fptype)c.real(), (fptype)c.imag() ); + } #endif -//+++++++++++++++++++++++++ -// cuDoubleComplex OR -// cuFloatComplex -//+++++++++++++++++++++++++ + //+++++++++++++++++++++++++ + // cuDoubleComplex OR + // cuFloatComplex + //+++++++++++++++++++++++++ -inline __host__ __device__ cxtype -operator+( const cxtype a ) -{ - return a; -} + inline __host__ __device__ cxtype + operator+( const cxtype a ) + { + return a; + } -inline __host__ __device__ cxtype -operator-( const cxtype& a ) -{ - return cxmake( -cxreal( a ), -cximag( a ) ); -} + inline __host__ __device__ cxtype + operator-( const cxtype& a ) + { + return cxmake( -cxreal( a ), -cximag( a ) ); + } -inline __host__ __device__ cxtype -operator+( const fptype& a, const cxtype& b ) -{ - return cxmake( a, 0 ) + b; -} + inline __host__ __device__ cxtype + operator+( const fptype& a, const cxtype& b ) + { + return cxmake( a, 0 ) + b; + } -inline __host__ __device__ cxtype -operator-( const fptype& a, const cxtype& b ) -{ - return cxmake( a, 0 ) - b; -} + inline __host__ __device__ cxtype + operator-( const fptype& a, const cxtype& b ) + { + return cxmake( a, 0 ) - b; + } -inline __host__ __device__ cxtype -operator*( const fptype& a, const cxtype& b ) -{ - return cxmake( a, 0 ) * b; -} + inline __host__ __device__ cxtype + operator*( const fptype& a, const cxtype& b ) + { + return cxmake( a, 0 ) * b; + } -inline __host__ __device__ cxtype -operator/( const fptype& a, const cxtype& b ) -{ - return cxmake( a, 0 ) / b; -} + inline __host__ __device__ cxtype + operator/( const fptype& a, const cxtype& b ) + { + return cxmake( a, 0 ) / b; + } -inline __host__ __device__ cxtype -operator+( const cxtype& a, const fptype& b ) -{ - return a + cxmake( b, 0 ); -} + inline __host__ __device__ cxtype + operator+( const cxtype& a, const fptype& b ) + { + return a + cxmake( b, 0 ); + } -inline __host__ __device__ cxtype -operator-( const cxtype& a, const fptype& b ) -{ - return a - cxmake( b, 0 ); -} + inline __host__ __device__ cxtype + operator-( const cxtype& a, const fptype& b ) + { + return a - cxmake( b, 0 ); + } -inline __host__ __device__ cxtype -operator*( const cxtype& a, const fptype& b ) -{ - return a * cxmake( b, 0 ); -} + inline __host__ __device__ cxtype + operator*( const cxtype& a, const fptype& b ) + { + return a * cxmake( b, 0 ); + } -inline __host__ __device__ cxtype -operator/( const cxtype& a, const fptype& b ) -{ - return a / cxmake( b, 0 ); -} + inline __host__ __device__ cxtype + operator/( const cxtype& a, const fptype& b ) + { + return a / cxmake( b, 0 ); + } -inline __host__ __device__ cxtype -cxconj( const cxtype& c ) -{ - return cxmake( cxreal( c ), -cximag( c ) ); -} + inline __host__ __device__ cxtype + cxconj( const cxtype& c ) + { + return cxmake( cxreal( c ), -cximag( c ) ); + } -inline __host__ cxtype // NOT __device__ -cxmake( const std::complex& c ) // std::complex to cucomplex (float-to-float or double-to-double) -{ - return cxmake( c.real(), c.imag() ); -} + inline __host__ cxtype // NOT __device__ + cxmake( const std::complex& c ) // std::complex to cucomplex (float-to-float or double-to-double) + { + return cxmake( c.real(), c.imag() ); + } #endif // #if defined __CUDACC__ and defined MGONGPU_CUCXTYPE_CUCOMPLEX -//========================================================================== + //========================================================================== #if not defined __CUDACC__ and defined MGONGPU_CPPCXTYPE_STDCOMPLEX // c++ + stdcomplex -//------------------------------ -// C++ - using std::complex -//------------------------------ + //------------------------------ + // C++ - using std::complex + //------------------------------ -inline cxtype -cxmake( const fptype& r, const fptype& i ) -{ - return cxtype( r, i ); // std::complex constructor -} + inline cxtype + cxmake( const fptype& r, const fptype& i ) + { + return cxtype( r, i ); // std::complex constructor + } -inline fptype -cxreal( const cxtype& c ) -{ - return c.real(); // std::complex::real() -} + inline fptype + cxreal( const cxtype& c ) + { + return c.real(); // std::complex::real() + } -inline fptype -cximag( const cxtype& c ) -{ - return c.imag(); // std::complex::imag() -} + inline fptype + cximag( const cxtype& c ) + { + return c.imag(); // std::complex::imag() + } -inline cxtype -cxconj( const cxtype& c ) -{ - return conj( c ); // conj( std::complex ) -} + inline cxtype + cxconj( const cxtype& c ) + { + return conj( c ); // conj( std::complex ) + } -inline const cxtype& -cxmake( const cxtype& c ) // std::complex to std::complex (float-to-float or double-to-double) -{ - return c; -} + inline const cxtype& + cxmake( const cxtype& c ) // std::complex to std::complex (float-to-float or double-to-double) + { + return c; + } #if defined MGONGPU_FPTYPE_FLOAT -inline cxtype -cxmake( const std::complex& c ) // std::complex to std::complex (cast double-to-float) -{ - return cxmake( (fptype)c.real(), (fptype)c.imag() ); -} + inline cxtype + cxmake( const std::complex& c ) // std::complex to std::complex (cast double-to-float) + { + return cxmake( (fptype)c.real(), (fptype)c.imag() ); + } #endif #endif // #if not defined __CUDACC__ and defined MGONGPU_CPPCXTYPE_STDCOMPLEX -//========================================================================== + //========================================================================== -inline __host__ __device__ const cxtype -cxmake( const cxsmpl& c ) // cxsmpl to cxtype (float-to-float or float-to-double) -{ - return cxmake( c.real(), c.imag() ); -} + inline __host__ __device__ const cxtype + cxmake( const cxsmpl& c ) // cxsmpl to cxtype (float-to-float or float-to-double) + { + return cxmake( c.real(), c.imag() ); + } -inline __host__ __device__ const cxtype -cxmake( const cxsmpl& c ) // cxsmpl to cxtype (double-to-float or double-to-double) -{ - return cxmake( c.real(), c.imag() ); -} + inline __host__ __device__ const cxtype + cxmake( const cxsmpl& c ) // cxsmpl to cxtype (double-to-float or double-to-double) + { + return cxmake( c.real(), c.imag() ); + } + +} // end namespace mg5amcGpu/mg5amcCpu //========================================================================== // COMPLEX TYPES: WRAPPER OVER RI FLOATING POINT PAIR (cxtype_ref) //========================================================================== -namespace mgOnGpu /* clang-format off */ +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { // The cxtype_ref class (a non-const reference to two fp variables) was originally designed for cxtype_v::operator[] // It used to be included in the code only when MGONGPU_HAS_CPPCXTYPEV_BRK (originally MGONGPU_HAS_CPPCXTYPE_REF) is defined @@ -615,23 +642,30 @@ namespace mgOnGpu /* clang-format off */ cxtype_ref() = delete; cxtype_ref( const cxtype_ref& ) = delete; cxtype_ref( cxtype_ref&& ) = default; // copy refs - __host__ __device__ cxtype_ref( fptype& r, fptype& i ) : m_preal( &r ), m_pimag( &i ) {} // copy refs + __host__ __device__ cxtype_ref( fptype& r, fptype& i ) + : m_preal( &r ), m_pimag( &i ) {} // copy refs cxtype_ref& operator=( const cxtype_ref& ) = delete; //__host__ __device__ cxtype_ref& operator=( cxtype_ref&& c ) {...} // REMOVED! Should copy refs or copy values? No longer needed in cxternary - __host__ __device__ cxtype_ref& operator=( const cxtype& c ) { *m_preal = cxreal( c ); *m_pimag = cximag( c ); return *this; } // copy values + __host__ __device__ cxtype_ref& operator=( const cxtype& c ) + { + *m_preal = cxreal( c ); + *m_pimag = cximag( c ); + return *this; + } // copy values __host__ __device__ operator cxtype() const { return cxmake( *m_preal, *m_pimag ); } private: fptype *m_preal, *m_pimag; // RI }; -} /* clang-format on */ -// Printout to stream for user defined types -inline __host__ __device__ std::ostream& -operator<<( std::ostream& out, const mgOnGpu::cxtype_ref& c ) -{ - out << (cxtype)c; - return out; -} + // Printout to stream for user defined types + inline __host__ __device__ std::ostream& + operator<<( std::ostream& out, const cxtype_ref& c ) + { + out << (cxtype)c; + return out; + } + +} // end namespace mg5amcGpu/mg5amcCpu //========================================================================== diff --git a/epochX/cudacpp/CODEGEN/PLUGIN/CUDACPP_SA_OUTPUT/madgraph/iolibs/template_files/gpu/mgOnGpuFptypes.h b/epochX/cudacpp/CODEGEN/PLUGIN/CUDACPP_SA_OUTPUT/madgraph/iolibs/template_files/gpu/mgOnGpuFptypes.h index a1cde16a67..905c97d700 100644 --- a/epochX/cudacpp/CODEGEN/PLUGIN/CUDACPP_SA_OUTPUT/madgraph/iolibs/template_files/gpu/mgOnGpuFptypes.h +++ b/epochX/cudacpp/CODEGEN/PLUGIN/CUDACPP_SA_OUTPUT/madgraph/iolibs/template_files/gpu/mgOnGpuFptypes.h @@ -11,82 +11,91 @@ #include #include -//========================================================================== - -#ifdef __CUDACC__ // cuda - -//------------------------------ -// Floating point types - Cuda -//------------------------------ - -/* -inline __host__ __device__ fptype -fpmax( const fptype& a, const fptype& b ) -{ - return max( a, b ); -} - -inline __host__ __device__ fptype -fpmin( const fptype& a, const fptype& b ) -{ - return min( a, b ); -} -*/ - -inline __host__ __device__ const fptype& -fpmax( const fptype& a, const fptype& b ) +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { - return ( ( b < a ) ? a : b ); -} + //========================================================================== -inline __host__ __device__ const fptype& -fpmin( const fptype& a, const fptype& b ) -{ - return ( ( a < b ) ? a : b ); -} +#ifdef __CUDACC__ // cuda -inline __host__ __device__ fptype -fpsqrt( const fptype& f ) -{ + //------------------------------ + // Floating point types - Cuda + //------------------------------ + + /* + inline __host__ __device__ fptype + fpmax( const fptype& a, const fptype& b ) + { + return max( a, b ); + } + + inline __host__ __device__ fptype + fpmin( const fptype& a, const fptype& b ) + { + return min( a, b ); + } + */ + + inline __host__ __device__ const fptype& + fpmax( const fptype& a, const fptype& b ) + { + return ( ( b < a ) ? a : b ); + } + + inline __host__ __device__ const fptype& + fpmin( const fptype& a, const fptype& b ) + { + return ( ( a < b ) ? a : b ); + } + + inline __host__ __device__ fptype + fpsqrt( const fptype& f ) + { #if defined MGONGPU_FPTYPE_FLOAT - // See https://docs.nvidia.com/cuda/cuda-math-api/group__CUDA__MATH__SINGLE.html - return sqrtf( f ); + // See https://docs.nvidia.com/cuda/cuda-math-api/group__CUDA__MATH__SINGLE.html + return sqrtf( f ); #else - // See https://docs.nvidia.com/cuda/cuda-math-api/group__CUDA__MATH__DOUBLE.html - return sqrt( f ); + // See https://docs.nvidia.com/cuda/cuda-math-api/group__CUDA__MATH__DOUBLE.html + return sqrt( f ); #endif -} + } #endif // #ifdef __CUDACC__ -//========================================================================== + //========================================================================== #ifndef __CUDACC__ -//------------------------------ -// Floating point types - C++ -//------------------------------ + //------------------------------ + // Floating point types - C++ + //------------------------------ -inline const fptype& -fpmax( const fptype& a, const fptype& b ) -{ - return std::max( a, b ); -} + inline const fptype& + fpmax( const fptype& a, const fptype& b ) + { + return std::max( a, b ); + } -inline const fptype& -fpmin( const fptype& a, const fptype& b ) -{ - return std::min( a, b ); -} + inline const fptype& + fpmin( const fptype& a, const fptype& b ) + { + return std::min( a, b ); + } -inline fptype -fpsqrt( const fptype& f ) -{ - return std::sqrt( f ); -} + inline fptype + fpsqrt( const fptype& f ) + { + return std::sqrt( f ); + } #endif // #ifndef __CUDACC__ -//========================================================================== + //========================================================================== + +} // end namespace mg5amcGpu/mg5amcCpu #endif // MGONGPUFPTYPES_H diff --git a/epochX/cudacpp/CODEGEN/PLUGIN/CUDACPP_SA_OUTPUT/madgraph/iolibs/template_files/gpu/mgOnGpuVectors.h b/epochX/cudacpp/CODEGEN/PLUGIN/CUDACPP_SA_OUTPUT/madgraph/iolibs/template_files/gpu/mgOnGpuVectors.h index 9d3e82b1e3..0d3892d026 100644 --- a/epochX/cudacpp/CODEGEN/PLUGIN/CUDACPP_SA_OUTPUT/madgraph/iolibs/template_files/gpu/mgOnGpuVectors.h +++ b/epochX/cudacpp/CODEGEN/PLUGIN/CUDACPP_SA_OUTPUT/madgraph/iolibs/template_files/gpu/mgOnGpuVectors.h @@ -31,7 +31,12 @@ //#undef MGONGPU_HAS_CPPCXTYPEV_BRK // gcc test (very slightly slower? issue #172) #endif -namespace mgOnGpu /* clang-format off */ +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { #ifdef MGONGPU_CPPSIMD @@ -72,22 +77,40 @@ namespace mgOnGpu /* clang-format off */ public: // Array initialization: zero-out as "{0}" (C and C++) or as "{}" (C++ only) // See https://en.cppreference.com/w/c/language/array_initialization#Notes - cxtype_v() : m_real{ 0 }, m_imag{ 0 } {} // RRRR=0000 IIII=0000 + cxtype_v() + : m_real{ 0 }, m_imag{ 0 } {} // RRRR=0000 IIII=0000 cxtype_v( const cxtype_v& ) = default; cxtype_v( cxtype_v&& ) = default; - cxtype_v( const fptype_v& r, const fptype_v& i ) : m_real( r ), m_imag( i ) {} - cxtype_v( const fptype_v& r ) : m_real( r ), m_imag{ 0 } {} // IIII=0000 + cxtype_v( const fptype_v& r, const fptype_v& i ) + : m_real( r ), m_imag( i ) {} + cxtype_v( const fptype_v& r ) + : m_real( r ), m_imag{ 0 } {} // IIII=0000 + cxtype_v( const fptype& r ) + : m_real( fptype_v{} + r ), m_imag{ 0 } {} // IIII=0000 cxtype_v& operator=( const cxtype_v& ) = default; cxtype_v& operator=( cxtype_v&& ) = default; - cxtype_v& operator+=( const cxtype_v& c ) { m_real += c.real(); m_imag += c.imag(); return *this; } - cxtype_v& operator-=( const cxtype_v& c ) { m_real -= c.real(); m_imag -= c.imag(); return *this; } + cxtype_v& operator+=( const cxtype_v& c ) + { + m_real += c.real(); + m_imag += c.imag(); + return *this; + } + cxtype_v& operator-=( const cxtype_v& c ) + { + m_real -= c.real(); + m_imag -= c.imag(); + return *this; + } #ifdef MGONGPU_HAS_CPPCXTYPEV_BRK // NB: THIS IS THE FUNDAMENTAL DIFFERENCE BETWEEN MGONGPU_HAS_CPPCXTYPEV_BRK DEFINED AND NOT DEFINED // NB: the alternative "clang" implementation is simpler: it simply does not have any bracket operator[] // NB: ** do NOT implement operator[] to return a value: it does not fail the build (why?) and gives unexpected results! ** cxtype_ref operator[]( size_t i ) const { return cxtype_ref( m_real[i], m_imag[i] ); } #endif - const fptype_v& real() const { return m_real; } + const fptype_v& real() const + { + return m_real; + } const fptype_v& imag() const { return m_imag; } private: fptype_v m_real, m_imag; // RRRRIIII @@ -98,7 +121,7 @@ namespace mgOnGpu /* clang-format off */ #if defined MGONGPU_FPTYPE_DOUBLE typedef long int bool_v __attribute__( ( ext_vector_type( neppV ) ) ); // bbbb #elif defined MGONGPU_FPTYPE_FLOAT - typedef int bool_v __attribute__( ( ext_vector_type( neppV ) ) ); // bbbb + typedef int bool_v __attribute__( ( ext_vector_type( neppV ) ) ); // bbbb #endif #else // gcc #if defined MGONGPU_FPTYPE_DOUBLE @@ -113,532 +136,551 @@ namespace mgOnGpu /* clang-format off */ const int neppV = 1; #endif // #ifdef MGONGPU_CPPSIMD - -} /* clang-format on */ +} //-------------------------------------------------------------------------- -// Expose typedefs outside the namespace -using mgOnGpu::neppV; -#ifdef MGONGPU_CPPSIMD -using mgOnGpu::fptype_v; -using mgOnGpu::fptype2_v; -using mgOnGpu::cxtype_v; -using mgOnGpu::bool_v; -#endif +// DANGEROUS! this was mixing different cxtype definitions for CPU and GPU builds (see #318 and #725) +// DO NOT expose typedefs outside the namespace +//using mgOnGpu::neppV; +//#ifdef MGONGPU_CPPSIMD +//using mgOnGpu::fptype_v; +//using mgOnGpu::fptype2_v; +//using mgOnGpu::cxtype_v; +//using mgOnGpu::bool_v; +//#endif -//-------------------------------------------------------------------------- +//========================================================================== +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif +{ #ifndef __CUDACC__ -// Printout to stream for user defined types + // Printout to stream for user defined types #ifndef MGONGPU_CPPCXTYPE_CXSMPL // operator<< for cxsmpl has already been defined! -inline std::ostream& -operator<<( std::ostream& out, const cxtype& c ) -{ - out << "[" << cxreal( c ) << "," << cximag( c ) << "]"; - //out << cxreal(c) << "+i" << cximag(c); - return out; -} + inline std::ostream& + operator<<( std::ostream& out, const cxtype& c ) + { + out << "[" << cxreal( c ) << "," << cximag( c ) << "]"; + //out << cxreal(c) << "+i" << cximag(c); + return out; + } #endif -/* + /* #ifdef MGONGPU_CPPSIMD -inline std::ostream& -operator<<( std::ostream& out, const bool_v& v ) -{ - out << "{ " << v[0]; - for ( int i=1; i #include +#include // debug #701 (see https://stackoverflow.com/a/17473528) #include #include #include @@ -28,16 +32,47 @@ #define XTESTID( s ) TESTID( s ) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif +{ + std::string FPEhandlerMessage = "unknown"; + int FPEhandlerIevt = -1; + inline void FPEhandler( int sig ) + { +#ifdef __CUDACC__ + std::cerr << "Floating Point Exception (GPU): '" << FPEhandlerMessage << "' ievt=" << FPEhandlerIevt << std::endl; +#else + std::cerr << "Floating Point Exception (CPU neppV=" << neppV << "): '" << FPEhandlerMessage << "' ievt=" << FPEhandlerIevt << std::endl; +#endif + exit( 0 ); + } +} + TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) { +#ifdef __CUDACC__ + using namespace mg5amcGpu; +#else + using namespace mg5amcCpu; +#endif +#ifndef __APPLE__ // test #701 (except on MacOS where feenableexcept is not defined #730) + const bool enableFPE = !getenv( "CUDACPP_RUNTIME_DISABLEFPE" ); + if( enableFPE ) + { + feenableexcept( FE_INVALID | FE_DIVBYZERO | FE_OVERFLOW | FE_UNDERFLOW ); // debug #701 + signal( SIGFPE, FPEhandler ); + } +#endif constexpr bool dumpEvents = false; // dump the expected output of the test? constexpr bool testEvents = !dumpEvents; // run the test? constexpr fptype toleranceXXXs = std::is_same::value ? 1.E-15 : 1.E-5; // Constant parameters constexpr int neppM = MemoryAccessMomenta::neppM; // AOSOA layout - using mgOnGpu::neppV; constexpr int np4 = CPPProcess::np4; - const int nevt = 16; // 12 independent tests plus 4 duplicates (need a multiple of 8 for floats or for '512z') + const int nevt = 32; // 12 independent tests plus 20 duplicates (need a multiple of 16 for floats '512z') assert( nevt %% neppM == 0 ); // nevt must be a multiple of neppM assert( nevt %% neppV == 0 ); // nevt must be a multiple of neppV // Fill in the input momenta @@ -46,24 +81,41 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) #else mg5amcCpu::HostBufferMomenta hstMomenta( nevt ); // AOSOA[npagM][npar=4][np4=4][neppM] #endif /* clang-format off */ + // NB NEW TESTS FOR DEBUGGING #701: KEEP TWO SEPARATE SETS (16-SIMD-VECTORS!) OF TESTS FOR M==0 AND M!=0! const fptype par0[np4 * nevt] = // AOS[nevt][np4] { - 500, 0, 0, 500, // #0 (m=0 pT=0 E=pz>0) - 500, 0, 0, -500, // #1 (m=0 pT=0 -E=pz<0) - 500, 300, 400, 0, // #2 (m=0 pT>0 pz=0) - 500, 180, 240, 400, // #3 (m=0 pT>0 pz>0) - 500, 180, 240, -400, // #4 (m=0 pT>0 pz<0) - 500, 0, 0, 0, // #5 (m=50>0 pT=0 pz=0) - 500, 0, 0, 300, // #6 (m=40>0 pT=0 pz>0) - 500, 0, 0, -300, // #7 (m=40>0 pT=0 pz<0) - 500, 180, 240, 0, // #8 (m=40>0 pT>0 pz=0) - 500, -240, -180, 0, // #9 (m=40>0 pT>0 pz=0) - 500, 180, 192, 144, // #10 (m=40>0 pT>0 pz>0) - 500, 180, 192, -144, // #11 (m=40>0 pT>0 pz<0) - 500, 0, 0, 500, // DUPLICATE #12 == #0 (m=0 pT=0 E=pz>0) - 500, 0, 0, -500, // DUPLICATE #13 == #1 (m=0 pT=0 -E=pz<0) - 500, 300, 400, 0, // DUPLICATE #14 == #2 (m=0 pT>0 pz=0) - 500, 180, 240, 400 // DUPLICATE #15 == #3 (m=0 pT>0 pz>0) + 500, 0, 0, 500, // #0 (m=0 pT=0 E=pz>0) + 500, 0, 0, -500, // #1 (m=0 pT=0 -E=pz<0) + 500, 300, 400, 0, // #2 (m=0 pT>0 pz=0) + 500, 180, 240, 400, // #3 (m=0 pT>0 pz>0) + 500, 180, 240, -400, // #4 (m=0 pT>0 pz<0) + 500, 0, 0, 500, // #5 DUPLICATE == #0 (m=0 pT=0 E=pz>0) + 500, 0, 0, -500, // #6 DUPLICATE == #1 (m=0 pT=0 -E=pz<0) + 500, 300, 400, 0, // #7 DUPLICATE == #2 (m=0 pT>0 pz=0) + 500, 180, 240, 400, // #8 DUPLICATE == #3 (m=0 pT>0 pz>0) + 500, 180, 240, -400, // #9 DUPLICATE == #4 (m=0 pT>0 pz<0) + 500, 0, 0, 500, // #10 DUPLICATE == #0 (m=0 pT=0 E=pz>0) + 500, 0, 0, -500, // #11 DUPLICATE == #1 (m=0 pT=0 -E=pz<0) + 500, 300, 400, 0, // #12 DUPLICATE == #2 (m=0 pT>0 pz=0) + 500, 180, 240, 400, // #13 DUPLICATE == #3 (m=0 pT>0 pz>0) + 500, 180, 240, -400, // #14 DUPLICATE == #4 (m=0 pT>0 pz<0) + 500, 0, 0, 500, // #15 DUPLICATE == #0 (m=0 pT=0 E=pz>0) + 500, 0, 0, 0, // #16 (m=50>0 pT=0 pz=0) + 500, 0, 0, 300, // #17 (m=40>0 pT=0 pz>0) + 500, 0, 0, -300, // #18 (m=40>0 pT=0 pz<0) + 500, 180, 240, 0, // #19 (m=40>0 pT>0 pz=0) + 500, -240, -180, 0, // #20 (m=40>0 pT>0 pz=0) + 500, 180, 192, 144, // #21 (m=40>0 pT>0 pz>0) + 500, 180, 192, -144, // #22 (m=40>0 pT>0 pz<0) + 500, 0, 0, 0, // #23 DUPLICATE == #16 (m=50>0 pT=0 pz=0) + 500, 0, 0, 300, // #24 DUPLICATE == #17 (m=40>0 pT=0 pz>0) + 500, 0, 0, -300, // #25 DUPLICATE == #18 (m=40>0 pT=0 pz<0) + 500, 180, 240, 0, // #26 DUPLICATE == #19 (m=40>0 pT>0 pz=0) + 500, -240, -180, 0, // #27 DUPLICATE == #20 (m=40>0 pT>0 pz=0) + 500, 180, 192, 144, // #28 DUPLICATE == #21 (m=40>0 pT>0 pz>0) + 500, 180, 192, -144, // #29 DUPLICATE == #22 (m=40>0 pT>0 pz<0) + 500, 0, 0, 0, // #30 DUPLICATE == #16 (m=50>0 pT=0 pz=0) + 500, 0, 0, 300 // #31 DUPLICATE == #17 (m=40>0 pT=0 pz>0) }; /* clang-format on */ // Array initialization: zero-out as "{0}" (C and C++) or as "{}" (C++ only) // See https://en.cppreference.com/w/c/language/array_initialization#Notes @@ -99,7 +151,15 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) constexpr int nw6 = CPPProcess::nw6; // dimensions of each wavefunction (HELAS KEK 91-11): e.g. 6 for e+ e- -> mu+ mu- (fermions and vectors) int itest = 0; // index on the expected output vector std::ofstream dumpFile; - if( dumpEvents ) dumpFile.open( dumpFileName, std::ios::trunc ); + if( dumpEvents ) + { + dumpFile.open( dumpFileName, std::ios::trunc ); + dumpFile << " // Copyright (C) 2020-2023 CERN and UCLouvain." << std::endl + << " // Licensed under the GNU Lesser General Public License (version 3 or later)." << std::endl + << " // Created by: A. Valassi (Apr 2021) for the MG5aMC CUDACPP plugin." << std::endl + << " // Further modified by: A. Valassi (2021-2023) for the MG5aMC CUDACPP plugin." << std::endl; + } + // Lambda function for dumping wavefunctions auto dumpwf6 = [&]( std::ostream& out, const cxtype_sv wf[6], const char* xxx, int ievt, int nsp, fptype mass ) { out << std::setprecision( 15 ) << std::scientific; @@ -129,6 +189,7 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) } out << std::defaultfloat; }; + // Lambda function for testing wavefunctions (1) auto testwf6 = [&]( const cxtype_sv wf[6], const char* xxx, int ievt, int nsp, fptype mass ) { if( dumpEvents ) dumpwf6( dumpFile, wf, xxx, ievt, nsp, mass ); @@ -170,6 +231,7 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) } itest++; }; + // Lambda function for testing wavefunctions (2) auto testwf6two = [&]( const cxtype_sv wf[6], const cxtype_sv expwf[6], const char* xxx, int ievt ) { if( testEvents ) @@ -213,6 +275,32 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) } } }; + // Lambda function for resetting hstMomenta to the values of par0 + // This is needed in each test because hstMomenta may have been modified to ensure a function like ipzxxx can be used (#701) + auto resetHstMomentaToPar0 = [&]() + { + for( int ievt = 0; ievt < nevt; ievt++ ) + for( int ip4 = 0; ip4 < np4; ip4++ ) + MemoryAccessMomenta::ieventAccessIp4Ipar( hstMomenta.data(), ievt, ip4, ipar0 ) = par0[ievt * np4 + ip4]; // AOS to AOSOA + }; + // Lambda function for preparing the test of one specific function + const bool debug = false; + auto prepareTest = [&]( const char* xxx, int ievt ) + { + if( debug ) std::cout << "Prepare test " << xxx << " ievt=" << ievt << std::endl; + resetHstMomentaToPar0(); + FPEhandlerMessage = xxx; + FPEhandlerIevt = ievt; + if( std::string( xxx ) == "ipzxxx" || std::string( xxx ) == "opzxxx" || std::string( xxx ) == "imzxxx" || std::string( xxx ) == "omzxxx" || std::string( xxx ) == "ixzxxx" || std::string( xxx ) == "oxzxxx" ) + { + // Modify hstMomenta so that ALL events have the momenta of a single ievt + // This ensures that a function like ipzxxx (which assumes pZ>0) can be used without triggering FPEs (#701) + // This is done by filling the full SIMD vector with the value of ievt, which was already tested to respect the relevant assumptions + for( int jevt = 0; jevt < nevt; jevt++ ) + for( int ip4 = 0; ip4 < np4; ip4++ ) + MemoryAccessMomenta::ieventAccessIp4Ipar( hstMomenta.data(), jevt, ip4, ipar0 ) = par0[ievt * np4 + ip4]; // AOS to AOSOA + } + }; // Array initialization: zero-out as "{0}" (C and C++) or as "{}" (C++ only) // See https://en.cppreference.com/w/c/language/array_initialization#Notes cxtype_sv outwfI[6] = {}; // last result of ixxxxx (mass==0) @@ -224,6 +312,7 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) fptype* fp_outwf = reinterpret_cast( outwf ); // proof of concept for using fptype* in the interface fptype* fp_outwf3 = reinterpret_cast( outwf3 ); // proof of concept for using fptype* in the interface const int nhel = 1; + // *** START OF TESTING LOOP for( auto nsp: { -1, +1 } ) // antifermion/fermion (or initial/final for scalar and vector) { for( int ievt = 0; ievt < nevt; ievt++ ) @@ -233,9 +322,10 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) #else using namespace mg5amcCpu; #endif - if( false ) + if( debug ) { std::cout << std::endl; + std::cout << "nsp=" << nsp << " ievt=" << ievt << ": "; for( int ip4 = 0; ip4 < np4; ip4++ ) std::cout << par0[ievt * np4 + ip4] << ", "; std::cout << std::endl; } @@ -243,6 +333,7 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) const fptype* ievt0Momenta = MemoryAccessMomenta::ieventAccessRecordConst( hstMomenta.data(), ipagV * neppV ); // Test ixxxxx - NO ASSUMPTIONS { + prepareTest( "ixxxxx", ievt ); const fptype fmass = mass0[ievt]; ixxxxx( ievt0Momenta, fmass, nhel, nsp, fp_outwfI, ipar0 ); testwf6( outwfI, "ixxxxx", ievt, nsp, fmass ); @@ -252,6 +343,7 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) // Test ipzxxx - ASSUMPTIONS: (FMASS == 0) and (PX == PY == 0 and E == +PZ > 0) if( mass0[ievt] == 0 && !isptgt0[ievt] && ispzgt0[ievt] ) { + prepareTest( "ipzxxx", ievt ); ipzxxx( ievt0Momenta, nhel, nsp, fp_outwf, ipar0 ); testwf6two( outwf, outwfI, "ipzxxx", ievt ); testwf6( outwf, "ipzxxx", ievt, nsp, 0 ); @@ -259,6 +351,7 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) // Test imzxxx - ASSUMPTIONS: (FMASS == 0) and (PX == PY == 0 and E == -PZ > 0) if( mass0[ievt] == 0 && !isptgt0[ievt] && ispzlt0[ievt] ) { + prepareTest( "imzxxx", ievt ); imzxxx( ievt0Momenta, nhel, nsp, fp_outwf, ipar0 ); testwf6two( outwf, outwfI, "imzxxx", ievt ); testwf6( outwf, "imzxxx", ievt, nsp, 0 ); @@ -266,12 +359,14 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) // Test ixzxxx - ASSUMPTIONS: (FMASS == 0) and (PT > 0) if( mass0[ievt] == 0 && isptgt0[ievt] ) { + prepareTest( "ixzxxx", ievt ); ixzxxx( ievt0Momenta, nhel, nsp, fp_outwf, ipar0 ); testwf6two( outwf, outwfI, "ixzxxx", ievt ); testwf6( outwf, "ixzxxx", ievt, nsp, 0 ); } // Test vxxxxx - NO ASSUMPTIONS { + prepareTest( "vxxxxx", ievt ); const fptype vmass = mass0[ievt]; vxxxxx( ievt0Momenta, vmass, nhel, nsp, fp_outwf, ipar0 ); testwf6( outwf, "vxxxxx", ievt, nsp, vmass ); @@ -280,6 +375,7 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) } // Test sxxxxx - NO ASSUMPTIONS { + prepareTest( "sxxxxx", ievt ); const fptype smass = mass0[ievt]; sxxxxx( ievt0Momenta, nsp, fp_outwf3, ipar0 ); // no mass, no helicity (was "smass>0") testwf6( outwf3, "sxxxxx", ievt, nsp, smass ); @@ -288,6 +384,7 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) } // Test oxxxxx - NO ASSUMPTIONS { + prepareTest( "oxxxxx", ievt ); const fptype fmass = mass0[ievt]; oxxxxx( ievt0Momenta, fmass, nhel, nsp, fp_outwfO, ipar0 ); testwf6( outwfO, "oxxxxx", ievt, nsp, fmass ); @@ -297,6 +394,7 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) // Test opzxxx - ASSUMPTIONS: (FMASS == 0) and (PX == PY == 0 and E == +PZ > 0) if( mass0[ievt] == 0 && !isptgt0[ievt] && ispzgt0[ievt] ) { + prepareTest( "opzxxx", ievt ); opzxxx( ievt0Momenta, nhel, nsp, fp_outwf, ipar0 ); testwf6two( outwf, outwfO, "opzxxx", ievt ); testwf6( outwf, "opzxxx", ievt, nsp, 0 ); @@ -304,6 +402,7 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) // Test omzxxx - ASSUMPTIONS: (FMASS == 0) and (PX == PY == 0 and E == -PZ > 0) if( mass0[ievt] == 0 && !isptgt0[ievt] && ispzlt0[ievt] ) { + prepareTest( "omzxxx", ievt ); omzxxx( ievt0Momenta, nhel, nsp, fp_outwf, ipar0 ); testwf6two( outwf, outwfO, "omzxxx", ievt ); testwf6( outwf, "omzxxx", ievt, nsp, 0 ); @@ -311,17 +410,25 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) // Test oxzxxx - ASSUMPTIONS: (FMASS == 0) and (PT > 0) if( mass0[ievt] == 0 && isptgt0[ievt] ) { - oxzxxx( ievt0Momenta, nhel, nsp, reinterpret_cast( outwf ), ipar0 ); + prepareTest( "oxzxxx", ievt ); + oxzxxx( ievt0Momenta, nhel, nsp, fp_outwf, ipar0 ); testwf6two( outwf, outwfO, "oxzxxx", ievt ); testwf6( outwf, "oxzxxx", ievt, nsp, 0 ); } } } + // *** END OF TESTING LOOP if( dumpEvents ) { dumpFile.close(); std::cout << "INFO: New reference data dumped to file '" << dumpFileName << "'" << std::endl; } +#ifndef __APPLE__ // test #701 (except on MacOS where fedisableexcept is not defined #730) + if( enableFPE ) + { + fedisableexcept( FE_INVALID | FE_DIVBYZERO | FE_OVERFLOW | FE_UNDERFLOW ); // debug #701 + } +#endif } //========================================================================== diff --git a/epochX/cudacpp/CODEGEN/PLUGIN/CUDACPP_SA_OUTPUT/madgraph/iolibs/template_files/gpu/testxxx_cc_ref.txt b/epochX/cudacpp/CODEGEN/PLUGIN/CUDACPP_SA_OUTPUT/madgraph/iolibs/template_files/gpu/testxxx_cc_ref.txt index acb9bde918..637530d1f5 100644 --- a/epochX/cudacpp/CODEGEN/PLUGIN/CUDACPP_SA_OUTPUT/madgraph/iolibs/template_files/gpu/testxxx_cc_ref.txt +++ b/epochX/cudacpp/CODEGEN/PLUGIN/CUDACPP_SA_OUTPUT/madgraph/iolibs/template_files/gpu/testxxx_cc_ref.txt @@ -5,14 +5,14 @@ expwfs.push_back( { // --------- 5.000000000000000e+02, 5.000000000000000e+02, // itest=0: ixxxxx#0 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=0: ixxxxx#0 nsp=-1 mass=0 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=0: ixxxxx#0 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=0: ixxxxx#0 nsp=-1 mass=0 -3.162277660168379e+01, 0.000000000000000e+00, // itest=0: ixxxxx#0 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=0: ixxxxx#0 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=0: ixxxxx#0 nsp=-1 mass=0 expwfs.push_back( { // --------- 5.000000000000000e+02, 5.000000000000000e+02, // itest=1: ixxxxx#0 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=1: ixxxxx#0 nsp=-1 mass=0 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=1: ixxxxx#0 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=1: ixxxxx#0 nsp=-1 mass=0 -3.162277660168379e+01, 0.000000000000000e+00, // itest=1: ixxxxx#0 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=1: ixxxxx#0 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=1: ixxxxx#0 nsp=-1 mass=0 @@ -82,8 +82,8 @@ expwfs.push_back( { // --------- 5.000000000000000e+02, -5.000000000000000e+02, // itest=11: ixxxxx#1 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=11: ixxxxx#1 nsp=-1 mass=0 - -3.162277660168379e+01, -0.000000000000000e+00, // itest=11: ixxxxx#1 nsp=-1 mass=0 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=11: ixxxxx#1 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=11: ixxxxx#1 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=11: ixxxxx#1 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=11: ixxxxx#1 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=11: ixxxxx#1 nsp=-1 mass=0 expwfs.push_back( { // --------- @@ -133,8 +133,8 @@ -0.000000000000000e+00, -0.000000000000000e+00, // itest=18: oxxxxx#1 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=18: oxxxxx#1 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=18: oxxxxx#1 nsp=-1 mass=0 - -3.162277660168379e+01, -0.000000000000000e+00, // itest=18: oxxxxx#1 nsp=-1 mass=0 - -0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=18: oxxxxx#1 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=18: oxxxxx#1 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=18: oxxxxx#1 nsp=-1 mass=0 expwfs.push_back( { // --------- -5.000000000000000e+02, 5.000000000000000e+02, // itest=19: omzxxx#1 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=19: omzxxx#1 nsp=-1 mass=0 @@ -145,14 +145,14 @@ expwfs.push_back( { // --------- 5.000000000000000e+02, 0.000000000000000e+00, // itest=20: ixxxxx#2 nsp=-1 mass=0 3.000000000000000e+02, 4.000000000000000e+02, // itest=20: ixxxxx#2 nsp=-1 mass=0 - 1.341640786499874e+01, -1.788854381999832e+01, // itest=20: ixxxxx#2 nsp=-1 mass=0 + 1.341640786499874e+01, -1.788854381999831e+01, // itest=20: ixxxxx#2 nsp=-1 mass=0 -2.236067977499790e+01, 0.000000000000000e+00, // itest=20: ixxxxx#2 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=20: ixxxxx#2 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=20: ixxxxx#2 nsp=-1 mass=0 expwfs.push_back( { // --------- 5.000000000000000e+02, 0.000000000000000e+00, // itest=21: ixxxxx#2 nsp=-1 mass=0 3.000000000000000e+02, 4.000000000000000e+02, // itest=21: ixxxxx#2 nsp=-1 mass=0 - 1.341640786499874e+01, -1.788854381999832e+01, // itest=21: ixxxxx#2 nsp=-1 mass=0 + 1.341640786499874e+01, -1.788854381999831e+01, // itest=21: ixxxxx#2 nsp=-1 mass=0 -2.236067977499790e+01, 0.000000000000000e+00, // itest=21: ixxxxx#2 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=21: ixxxxx#2 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=21: ixxxxx#2 nsp=-1 mass=0 @@ -196,14 +196,14 @@ -3.000000000000000e+02, -4.000000000000000e+02, // itest=27: oxxxxx#2 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=27: oxxxxx#2 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=27: oxxxxx#2 nsp=-1 mass=0 - 1.341640786499874e+01, 1.788854381999832e+01, // itest=27: oxxxxx#2 nsp=-1 mass=0 + 1.341640786499874e+01, 1.788854381999831e+01, // itest=27: oxxxxx#2 nsp=-1 mass=0 -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=27: oxxxxx#2 nsp=-1 mass=0 expwfs.push_back( { // --------- -5.000000000000000e+02, -0.000000000000000e+00, // itest=28: oxxxxx#2 nsp=-1 mass=0 -3.000000000000000e+02, -4.000000000000000e+02, // itest=28: oxxxxx#2 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=28: oxxxxx#2 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=28: oxxxxx#2 nsp=-1 mass=0 - 1.341640786499874e+01, 1.788854381999832e+01, // itest=28: oxxxxx#2 nsp=-1 mass=0 + 1.341640786499874e+01, 1.788854381999831e+01, // itest=28: oxxxxx#2 nsp=-1 mass=0 -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=28: oxxxxx#2 nsp=-1 mass=0 expwfs.push_back( { // --------- -5.000000000000000e+02, -0.000000000000000e+00, // itest=29: oxzxxx#2 nsp=-1 mass=0 @@ -353,1696 +353,3684 @@ 1.800000000000000e+01, 2.400000000000000e+01, // itest=49: oxzxxx#4 nsp=-1 mass=0 -1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=49: oxzxxx#4 nsp=-1 mass=0 expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=50: ixxxxx#5 nsp=-1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=50: ixxxxx#5 nsp=-1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=50: ixxxxx#5 nsp=-1 mass=500 - -2.236067977499790e+01, 0.000000000000000e+00, // itest=50: ixxxxx#5 nsp=-1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=50: ixxxxx#5 nsp=-1 mass=500 - 2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=50: ixxxxx#5 nsp=-1 mass=500 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=51: ixxxxx#5 nsp=-1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=51: ixxxxx#5 nsp=-1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=51: ixxxxx#5 nsp=-1 mass=-500 - -2.236067977499790e+01, 0.000000000000000e+00, // itest=51: ixxxxx#5 nsp=-1 mass=-500 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=51: ixxxxx#5 nsp=-1 mass=-500 - -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=51: ixxxxx#5 nsp=-1 mass=-500 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=52: vxxxxx#5 nsp=-1 mass=500 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=52: vxxxxx#5 nsp=-1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=52: vxxxxx#5 nsp=-1 mass=500 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=52: vxxxxx#5 nsp=-1 mass=500 - 0.000000000000000e+00, -7.071067811865476e-01, // itest=52: vxxxxx#5 nsp=-1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=52: vxxxxx#5 nsp=-1 mass=500 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=53: vxxxxx#5 nsp=-1 mass=-500 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=53: vxxxxx#5 nsp=-1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=53: vxxxxx#5 nsp=-1 mass=-500 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=53: vxxxxx#5 nsp=-1 mass=-500 - 0.000000000000000e+00, -7.071067811865476e-01, // itest=53: vxxxxx#5 nsp=-1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=53: vxxxxx#5 nsp=-1 mass=-500 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=54: sxxxxx#5 nsp=-1 mass=500 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=54: sxxxxx#5 nsp=-1 mass=500 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=54: sxxxxx#5 nsp=-1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=54: sxxxxx#5 nsp=-1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=54: sxxxxx#5 nsp=-1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=54: sxxxxx#5 nsp=-1 mass=500 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=55: sxxxxx#5 nsp=-1 mass=-500 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=55: sxxxxx#5 nsp=-1 mass=-500 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=55: sxxxxx#5 nsp=-1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=55: sxxxxx#5 nsp=-1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=55: sxxxxx#5 nsp=-1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=55: sxxxxx#5 nsp=-1 mass=-500 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=56: oxxxxx#5 nsp=-1 mass=500 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=56: oxxxxx#5 nsp=-1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=56: oxxxxx#5 nsp=-1 mass=500 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=56: oxxxxx#5 nsp=-1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=56: oxxxxx#5 nsp=-1 mass=500 - -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=56: oxxxxx#5 nsp=-1 mass=500 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=57: oxxxxx#5 nsp=-1 mass=-500 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=57: oxxxxx#5 nsp=-1 mass=-500 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=57: oxxxxx#5 nsp=-1 mass=-500 - -2.236067977499790e+01, 0.000000000000000e+00, // itest=57: oxxxxx#5 nsp=-1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=57: oxxxxx#5 nsp=-1 mass=-500 - -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=57: oxxxxx#5 nsp=-1 mass=-500 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 3.000000000000000e+02, // itest=58: ixxxxx#6 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=58: ixxxxx#6 nsp=-1 mass=400 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=58: ixxxxx#6 nsp=-1 mass=400 - -2.828427124746190e+01, -0.000000000000000e+00, // itest=58: ixxxxx#6 nsp=-1 mass=400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=58: ixxxxx#6 nsp=-1 mass=400 - 1.414213562373095e+01, 0.000000000000000e+00 } ); // itest=58: ixxxxx#6 nsp=-1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 3.000000000000000e+02, // itest=59: ixxxxx#6 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=59: ixxxxx#6 nsp=-1 mass=-400 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=59: ixxxxx#6 nsp=-1 mass=-400 - -2.828427124746190e+01, -0.000000000000000e+00, // itest=59: ixxxxx#6 nsp=-1 mass=-400 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=59: ixxxxx#6 nsp=-1 mass=-400 - -1.414213562373095e+01, -0.000000000000000e+00 } ); // itest=59: ixxxxx#6 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -3.000000000000000e+02, // itest=60: vxxxxx#6 nsp=-1 mass=400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=60: vxxxxx#6 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=60: vxxxxx#6 nsp=-1 mass=400 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=60: vxxxxx#6 nsp=-1 mass=400 - 0.000000000000000e+00, -7.071067811865476e-01, // itest=60: vxxxxx#6 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=60: vxxxxx#6 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -3.000000000000000e+02, // itest=61: vxxxxx#6 nsp=-1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=61: vxxxxx#6 nsp=-1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=61: vxxxxx#6 nsp=-1 mass=-400 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=61: vxxxxx#6 nsp=-1 mass=-400 - 0.000000000000000e+00, -7.071067811865476e-01, // itest=61: vxxxxx#6 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=61: vxxxxx#6 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -3.000000000000000e+02, // itest=62: sxxxxx#6 nsp=-1 mass=400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=62: sxxxxx#6 nsp=-1 mass=400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=62: sxxxxx#6 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=62: sxxxxx#6 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=62: sxxxxx#6 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=62: sxxxxx#6 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -3.000000000000000e+02, // itest=63: sxxxxx#6 nsp=-1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=63: sxxxxx#6 nsp=-1 mass=-400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=63: sxxxxx#6 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=63: sxxxxx#6 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=63: sxxxxx#6 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=63: sxxxxx#6 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -3.000000000000000e+02, // itest=64: oxxxxx#6 nsp=-1 mass=400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=64: oxxxxx#6 nsp=-1 mass=400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=64: oxxxxx#6 nsp=-1 mass=400 - 1.414213562373095e+01, 0.000000000000000e+00, // itest=64: oxxxxx#6 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=64: oxxxxx#6 nsp=-1 mass=400 - -2.828427124746190e+01, -0.000000000000000e+00 } ); // itest=64: oxxxxx#6 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -3.000000000000000e+02, // itest=65: oxxxxx#6 nsp=-1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=65: oxxxxx#6 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=65: oxxxxx#6 nsp=-1 mass=-400 - -1.414213562373095e+01, -0.000000000000000e+00, // itest=65: oxxxxx#6 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=65: oxxxxx#6 nsp=-1 mass=-400 - -2.828427124746190e+01, -0.000000000000000e+00 } ); // itest=65: oxxxxx#6 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -3.000000000000000e+02, // itest=66: ixxxxx#7 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=66: ixxxxx#7 nsp=-1 mass=400 - -2.828427124746190e+01, -0.000000000000000e+00, // itest=66: ixxxxx#7 nsp=-1 mass=400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=66: ixxxxx#7 nsp=-1 mass=400 - 1.414213562373095e+01, 0.000000000000000e+00, // itest=66: ixxxxx#7 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=66: ixxxxx#7 nsp=-1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -3.000000000000000e+02, // itest=67: ixxxxx#7 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=67: ixxxxx#7 nsp=-1 mass=-400 - -2.828427124746190e+01, -0.000000000000000e+00, // itest=67: ixxxxx#7 nsp=-1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=67: ixxxxx#7 nsp=-1 mass=-400 - -1.414213562373095e+01, -0.000000000000000e+00, // itest=67: ixxxxx#7 nsp=-1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=67: ixxxxx#7 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 3.000000000000000e+02, // itest=68: vxxxxx#7 nsp=-1 mass=400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=68: vxxxxx#7 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=68: vxxxxx#7 nsp=-1 mass=400 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=68: vxxxxx#7 nsp=-1 mass=400 - 0.000000000000000e+00, 7.071067811865476e-01, // itest=68: vxxxxx#7 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=68: vxxxxx#7 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 3.000000000000000e+02, // itest=69: vxxxxx#7 nsp=-1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=69: vxxxxx#7 nsp=-1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=69: vxxxxx#7 nsp=-1 mass=-400 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=69: vxxxxx#7 nsp=-1 mass=-400 - 0.000000000000000e+00, 7.071067811865476e-01, // itest=69: vxxxxx#7 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=69: vxxxxx#7 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 3.000000000000000e+02, // itest=70: sxxxxx#7 nsp=-1 mass=400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=70: sxxxxx#7 nsp=-1 mass=400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=70: sxxxxx#7 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=70: sxxxxx#7 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=70: sxxxxx#7 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=70: sxxxxx#7 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 3.000000000000000e+02, // itest=71: sxxxxx#7 nsp=-1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=71: sxxxxx#7 nsp=-1 mass=-400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=71: sxxxxx#7 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=71: sxxxxx#7 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=71: sxxxxx#7 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=71: sxxxxx#7 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 3.000000000000000e+02, // itest=72: oxxxxx#7 nsp=-1 mass=400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=72: oxxxxx#7 nsp=-1 mass=400 - 1.414213562373095e+01, 0.000000000000000e+00, // itest=72: oxxxxx#7 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=72: oxxxxx#7 nsp=-1 mass=400 - -2.828427124746190e+01, -0.000000000000000e+00, // itest=72: oxxxxx#7 nsp=-1 mass=400 - -0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=72: oxxxxx#7 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 3.000000000000000e+02, // itest=73: oxxxxx#7 nsp=-1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=73: oxxxxx#7 nsp=-1 mass=-400 - -1.414213562373095e+01, -0.000000000000000e+00, // itest=73: oxxxxx#7 nsp=-1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=73: oxxxxx#7 nsp=-1 mass=-400 - -2.828427124746190e+01, -0.000000000000000e+00, // itest=73: oxxxxx#7 nsp=-1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=73: oxxxxx#7 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=74: ixxxxx#8 nsp=-1 mass=400 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=74: ixxxxx#8 nsp=-1 mass=400 - 1.200000000000000e+01, -1.600000000000000e+01, // itest=74: ixxxxx#8 nsp=-1 mass=400 - -2.000000000000000e+01, -0.000000000000000e+00, // itest=74: ixxxxx#8 nsp=-1 mass=400 - -5.999999999999999e+00, 7.999999999999999e+00, // itest=74: ixxxxx#8 nsp=-1 mass=400 - 1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=74: ixxxxx#8 nsp=-1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=75: ixxxxx#8 nsp=-1 mass=-400 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=75: ixxxxx#8 nsp=-1 mass=-400 - 1.200000000000000e+01, -1.600000000000000e+01, // itest=75: ixxxxx#8 nsp=-1 mass=-400 - -2.000000000000000e+01, -0.000000000000000e+00, // itest=75: ixxxxx#8 nsp=-1 mass=-400 - 5.999999999999999e+00, -7.999999999999999e+00, // itest=75: ixxxxx#8 nsp=-1 mass=-400 - -1.000000000000000e+01, -0.000000000000000e+00 } ); // itest=75: ixxxxx#8 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=76: vxxxxx#8 nsp=-1 mass=400 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=76: vxxxxx#8 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=76: vxxxxx#8 nsp=-1 mass=400 - 0.000000000000000e+00, 5.656854249492381e-01, // itest=76: vxxxxx#8 nsp=-1 mass=400 - 0.000000000000000e+00, -4.242640687119285e-01, // itest=76: vxxxxx#8 nsp=-1 mass=400 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=76: vxxxxx#8 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=77: vxxxxx#8 nsp=-1 mass=-400 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=77: vxxxxx#8 nsp=-1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=77: vxxxxx#8 nsp=-1 mass=-400 - -0.000000000000000e+00, 5.656854249492381e-01, // itest=77: vxxxxx#8 nsp=-1 mass=-400 - -0.000000000000000e+00, -4.242640687119285e-01, // itest=77: vxxxxx#8 nsp=-1 mass=-400 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=77: vxxxxx#8 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=78: sxxxxx#8 nsp=-1 mass=400 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=78: sxxxxx#8 nsp=-1 mass=400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=78: sxxxxx#8 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=78: sxxxxx#8 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=78: sxxxxx#8 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=78: sxxxxx#8 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=79: sxxxxx#8 nsp=-1 mass=-400 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=79: sxxxxx#8 nsp=-1 mass=-400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=79: sxxxxx#8 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=79: sxxxxx#8 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=79: sxxxxx#8 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=79: sxxxxx#8 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=80: oxxxxx#8 nsp=-1 mass=400 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=80: oxxxxx#8 nsp=-1 mass=400 - -5.999999999999999e+00, -7.999999999999999e+00, // itest=80: oxxxxx#8 nsp=-1 mass=400 - 1.000000000000000e+01, 0.000000000000000e+00, // itest=80: oxxxxx#8 nsp=-1 mass=400 - 1.200000000000000e+01, 1.600000000000000e+01, // itest=80: oxxxxx#8 nsp=-1 mass=400 - -2.000000000000000e+01, -0.000000000000000e+00 } ); // itest=80: oxxxxx#8 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=81: oxxxxx#8 nsp=-1 mass=-400 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=81: oxxxxx#8 nsp=-1 mass=-400 - 5.999999999999999e+00, 7.999999999999999e+00, // itest=81: oxxxxx#8 nsp=-1 mass=-400 - -1.000000000000000e+01, -0.000000000000000e+00, // itest=81: oxxxxx#8 nsp=-1 mass=-400 - 1.200000000000000e+01, 1.600000000000000e+01, // itest=81: oxxxxx#8 nsp=-1 mass=-400 - -2.000000000000000e+01, -0.000000000000000e+00 } ); // itest=81: oxxxxx#8 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=82: ixxxxx#9 nsp=-1 mass=400 - -2.400000000000000e+02, -1.800000000000000e+02, // itest=82: ixxxxx#9 nsp=-1 mass=400 - -1.600000000000000e+01, 1.200000000000000e+01, // itest=82: ixxxxx#9 nsp=-1 mass=400 - -2.000000000000000e+01, -0.000000000000000e+00, // itest=82: ixxxxx#9 nsp=-1 mass=400 - 7.999999999999999e+00, -5.999999999999999e+00, // itest=82: ixxxxx#9 nsp=-1 mass=400 - 1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=82: ixxxxx#9 nsp=-1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=83: ixxxxx#9 nsp=-1 mass=-400 - -2.400000000000000e+02, -1.800000000000000e+02, // itest=83: ixxxxx#9 nsp=-1 mass=-400 - -1.600000000000000e+01, 1.200000000000000e+01, // itest=83: ixxxxx#9 nsp=-1 mass=-400 - -2.000000000000000e+01, -0.000000000000000e+00, // itest=83: ixxxxx#9 nsp=-1 mass=-400 - -7.999999999999999e+00, 5.999999999999999e+00, // itest=83: ixxxxx#9 nsp=-1 mass=-400 - -1.000000000000000e+01, -0.000000000000000e+00 } ); // itest=83: ixxxxx#9 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=84: vxxxxx#9 nsp=-1 mass=400 - 2.400000000000000e+02, 1.800000000000000e+02, // itest=84: vxxxxx#9 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=84: vxxxxx#9 nsp=-1 mass=400 - 0.000000000000000e+00, -4.242640687119285e-01, // itest=84: vxxxxx#9 nsp=-1 mass=400 - 0.000000000000000e+00, 5.656854249492381e-01, // itest=84: vxxxxx#9 nsp=-1 mass=400 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=84: vxxxxx#9 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=85: vxxxxx#9 nsp=-1 mass=-400 - 2.400000000000000e+02, 1.800000000000000e+02, // itest=85: vxxxxx#9 nsp=-1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=85: vxxxxx#9 nsp=-1 mass=-400 - 0.000000000000000e+00, -4.242640687119285e-01, // itest=85: vxxxxx#9 nsp=-1 mass=-400 - 0.000000000000000e+00, 5.656854249492381e-01, // itest=85: vxxxxx#9 nsp=-1 mass=-400 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=85: vxxxxx#9 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=86: sxxxxx#9 nsp=-1 mass=400 - 2.400000000000000e+02, 1.800000000000000e+02, // itest=86: sxxxxx#9 nsp=-1 mass=400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=86: sxxxxx#9 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=86: sxxxxx#9 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=86: sxxxxx#9 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=86: sxxxxx#9 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=87: sxxxxx#9 nsp=-1 mass=-400 - 2.400000000000000e+02, 1.800000000000000e+02, // itest=87: sxxxxx#9 nsp=-1 mass=-400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=87: sxxxxx#9 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=87: sxxxxx#9 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=87: sxxxxx#9 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=87: sxxxxx#9 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=88: oxxxxx#9 nsp=-1 mass=400 - 2.400000000000000e+02, 1.800000000000000e+02, // itest=88: oxxxxx#9 nsp=-1 mass=400 - 7.999999999999999e+00, 5.999999999999999e+00, // itest=88: oxxxxx#9 nsp=-1 mass=400 - 1.000000000000000e+01, 0.000000000000000e+00, // itest=88: oxxxxx#9 nsp=-1 mass=400 - -1.600000000000000e+01, -1.200000000000000e+01, // itest=88: oxxxxx#9 nsp=-1 mass=400 - -2.000000000000000e+01, -0.000000000000000e+00 } ); // itest=88: oxxxxx#9 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=89: oxxxxx#9 nsp=-1 mass=-400 - 2.400000000000000e+02, 1.800000000000000e+02, // itest=89: oxxxxx#9 nsp=-1 mass=-400 - -7.999999999999999e+00, -5.999999999999999e+00, // itest=89: oxxxxx#9 nsp=-1 mass=-400 - -1.000000000000000e+01, -0.000000000000000e+00, // itest=89: oxxxxx#9 nsp=-1 mass=-400 - -1.600000000000000e+01, -1.200000000000000e+01, // itest=89: oxxxxx#9 nsp=-1 mass=-400 - -2.000000000000000e+01, -0.000000000000000e+00 } ); // itest=89: oxxxxx#9 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 1.440000000000000e+02, // itest=90: ixxxxx#10 nsp=-1 mass=400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=90: ixxxxx#10 nsp=-1 mass=400 - 9.863939238321439e+00, -1.052153518754287e+01, // itest=90: ixxxxx#10 nsp=-1 mass=400 - -2.433105012119288e+01, -0.000000000000000e+00, // itest=90: ixxxxx#10 nsp=-1 mass=400 - -4.931969619160719e+00, 5.260767593771432e+00, // itest=90: ixxxxx#10 nsp=-1 mass=400 - 1.216552506059644e+01, 0.000000000000000e+00 } ); // itest=90: ixxxxx#10 nsp=-1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 1.440000000000000e+02, // itest=91: ixxxxx#10 nsp=-1 mass=-400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=91: ixxxxx#10 nsp=-1 mass=-400 - 9.863939238321439e+00, -1.052153518754287e+01, // itest=91: ixxxxx#10 nsp=-1 mass=-400 - -2.433105012119288e+01, -0.000000000000000e+00, // itest=91: ixxxxx#10 nsp=-1 mass=-400 - 4.931969619160719e+00, -5.260767593771432e+00, // itest=91: ixxxxx#10 nsp=-1 mass=-400 - -1.216552506059644e+01, -0.000000000000000e+00 } ); // itest=91: ixxxxx#10 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -1.440000000000000e+02, // itest=92: vxxxxx#10 nsp=-1 mass=400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=92: vxxxxx#10 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=92: vxxxxx#10 nsp=-1 mass=400 - -2.321373168788980e-01, 5.158607041753289e-01, // itest=92: vxxxxx#10 nsp=-1 mass=400 - -2.476131380041579e-01, -4.836194101643708e-01, // itest=92: vxxxxx#10 nsp=-1 mass=400 - 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=92: vxxxxx#10 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -1.440000000000000e+02, // itest=93: vxxxxx#10 nsp=-1 mass=-400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=93: vxxxxx#10 nsp=-1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=93: vxxxxx#10 nsp=-1 mass=-400 - -2.321373168788980e-01, 5.158607041753289e-01, // itest=93: vxxxxx#10 nsp=-1 mass=-400 - -2.476131380041579e-01, -4.836194101643708e-01, // itest=93: vxxxxx#10 nsp=-1 mass=-400 - 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=93: vxxxxx#10 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -1.440000000000000e+02, // itest=94: sxxxxx#10 nsp=-1 mass=400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=94: sxxxxx#10 nsp=-1 mass=400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=94: sxxxxx#10 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=94: sxxxxx#10 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=94: sxxxxx#10 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=94: sxxxxx#10 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -1.440000000000000e+02, // itest=95: sxxxxx#10 nsp=-1 mass=-400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=95: sxxxxx#10 nsp=-1 mass=-400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=95: sxxxxx#10 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=95: sxxxxx#10 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=95: sxxxxx#10 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=95: sxxxxx#10 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -1.440000000000000e+02, // itest=96: oxxxxx#10 nsp=-1 mass=400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=96: oxxxxx#10 nsp=-1 mass=400 - -4.931969619160719e+00, -5.260767593771432e+00, // itest=96: oxxxxx#10 nsp=-1 mass=400 - 1.216552506059644e+01, 0.000000000000000e+00, // itest=96: oxxxxx#10 nsp=-1 mass=400 - 9.863939238321439e+00, 1.052153518754287e+01, // itest=96: oxxxxx#10 nsp=-1 mass=400 - -2.433105012119288e+01, -0.000000000000000e+00 } ); // itest=96: oxxxxx#10 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -1.440000000000000e+02, // itest=97: oxxxxx#10 nsp=-1 mass=-400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=97: oxxxxx#10 nsp=-1 mass=-400 - 4.931969619160719e+00, 5.260767593771432e+00, // itest=97: oxxxxx#10 nsp=-1 mass=-400 - -1.216552506059644e+01, -0.000000000000000e+00, // itest=97: oxxxxx#10 nsp=-1 mass=-400 - 9.863939238321439e+00, 1.052153518754287e+01, // itest=97: oxxxxx#10 nsp=-1 mass=-400 - -2.433105012119288e+01, -0.000000000000000e+00 } ); // itest=97: oxxxxx#10 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -1.440000000000000e+02, // itest=98: ixxxxx#11 nsp=-1 mass=400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=98: ixxxxx#11 nsp=-1 mass=400 - 1.664100588675688e+01, -1.775040627920733e+01, // itest=98: ixxxxx#11 nsp=-1 mass=400 - -1.442220510185596e+01, -0.000000000000000e+00, // itest=98: ixxxxx#11 nsp=-1 mass=400 - -8.320502943378436e+00, 8.875203139603666e+00, // itest=98: ixxxxx#11 nsp=-1 mass=400 - 7.211102550927978e+00, 0.000000000000000e+00 } ); // itest=98: ixxxxx#11 nsp=-1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -1.440000000000000e+02, // itest=99: ixxxxx#11 nsp=-1 mass=-400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=99: ixxxxx#11 nsp=-1 mass=-400 - 1.664100588675688e+01, -1.775040627920733e+01, // itest=99: ixxxxx#11 nsp=-1 mass=-400 - -1.442220510185596e+01, -0.000000000000000e+00, // itest=99: ixxxxx#11 nsp=-1 mass=-400 - 8.320502943378436e+00, -8.875203139603666e+00, // itest=99: ixxxxx#11 nsp=-1 mass=-400 - -7.211102550927978e+00, -0.000000000000000e+00 } ); // itest=99: ixxxxx#11 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 1.440000000000000e+02, // itest=100: vxxxxx#11 nsp=-1 mass=400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=100: vxxxxx#11 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=100: vxxxxx#11 nsp=-1 mass=400 - 2.321373168788980e-01, 5.158607041753289e-01, // itest=100: vxxxxx#11 nsp=-1 mass=400 - 2.476131380041579e-01, -4.836194101643708e-01, // itest=100: vxxxxx#11 nsp=-1 mass=400 - 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=100: vxxxxx#11 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 1.440000000000000e+02, // itest=101: vxxxxx#11 nsp=-1 mass=-400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=101: vxxxxx#11 nsp=-1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=101: vxxxxx#11 nsp=-1 mass=-400 - 2.321373168788980e-01, 5.158607041753289e-01, // itest=101: vxxxxx#11 nsp=-1 mass=-400 - 2.476131380041579e-01, -4.836194101643708e-01, // itest=101: vxxxxx#11 nsp=-1 mass=-400 - 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=101: vxxxxx#11 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 1.440000000000000e+02, // itest=102: sxxxxx#11 nsp=-1 mass=400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=102: sxxxxx#11 nsp=-1 mass=400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=102: sxxxxx#11 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=102: sxxxxx#11 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=102: sxxxxx#11 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=102: sxxxxx#11 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 1.440000000000000e+02, // itest=103: sxxxxx#11 nsp=-1 mass=-400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=103: sxxxxx#11 nsp=-1 mass=-400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=103: sxxxxx#11 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=103: sxxxxx#11 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=103: sxxxxx#11 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=103: sxxxxx#11 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 1.440000000000000e+02, // itest=104: oxxxxx#11 nsp=-1 mass=400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=104: oxxxxx#11 nsp=-1 mass=400 - -8.320502943378436e+00, -8.875203139603666e+00, // itest=104: oxxxxx#11 nsp=-1 mass=400 - 7.211102550927978e+00, 0.000000000000000e+00, // itest=104: oxxxxx#11 nsp=-1 mass=400 - 1.664100588675688e+01, 1.775040627920733e+01, // itest=104: oxxxxx#11 nsp=-1 mass=400 - -1.442220510185596e+01, -0.000000000000000e+00 } ); // itest=104: oxxxxx#11 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 1.440000000000000e+02, // itest=105: oxxxxx#11 nsp=-1 mass=-400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=105: oxxxxx#11 nsp=-1 mass=-400 - 8.320502943378436e+00, 8.875203139603666e+00, // itest=105: oxxxxx#11 nsp=-1 mass=-400 - -7.211102550927978e+00, -0.000000000000000e+00, // itest=105: oxxxxx#11 nsp=-1 mass=-400 - 1.664100588675688e+01, 1.775040627920733e+01, // itest=105: oxxxxx#11 nsp=-1 mass=-400 - -1.442220510185596e+01, -0.000000000000000e+00 } ); // itest=105: oxxxxx#11 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=106: ixxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=106: ixxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=106: ixxxxx#12 nsp=-1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00, // itest=106: ixxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=106: ixxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=106: ixxxxx#12 nsp=-1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=107: ixxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=107: ixxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=107: ixxxxx#12 nsp=-1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00, // itest=107: ixxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=107: ixxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=107: ixxxxx#12 nsp=-1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=108: ipzxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=108: ipzxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=108: ipzxxx#12 nsp=-1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00, // itest=108: ipzxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=108: ipzxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=108: ipzxxx#12 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=109: vxxxxx#12 nsp=-1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=109: vxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=109: vxxxxx#12 nsp=-1 mass=0 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=109: vxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, -7.071067811865476e-01, // itest=109: vxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=109: vxxxxx#12 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=110: vxxxxx#12 nsp=-1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=110: vxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=110: vxxxxx#12 nsp=-1 mass=0 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=110: vxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, -7.071067811865476e-01, // itest=110: vxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=110: vxxxxx#12 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=111: sxxxxx#12 nsp=-1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=111: sxxxxx#12 nsp=-1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=111: sxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=111: sxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=111: sxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=111: sxxxxx#12 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=112: sxxxxx#12 nsp=-1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=112: sxxxxx#12 nsp=-1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=112: sxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=112: sxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=112: sxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=112: sxxxxx#12 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=113: oxxxxx#12 nsp=-1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=113: oxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=113: oxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=113: oxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=113: oxxxxx#12 nsp=-1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=113: oxxxxx#12 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=114: oxxxxx#12 nsp=-1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=114: oxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=114: oxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=114: oxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=114: oxxxxx#12 nsp=-1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=114: oxxxxx#12 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=115: opzxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=115: opzxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=115: opzxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=115: opzxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=115: opzxxx#12 nsp=-1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=115: opzxxx#12 nsp=-1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=116: ixxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=116: ixxxxx#13 nsp=-1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00, // itest=116: ixxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=116: ixxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=116: ixxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=116: ixxxxx#13 nsp=-1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=117: ixxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=117: ixxxxx#13 nsp=-1 mass=0 - -3.162277660168379e+01, -0.000000000000000e+00, // itest=117: ixxxxx#13 nsp=-1 mass=0 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=117: ixxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=117: ixxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=117: ixxxxx#13 nsp=-1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=118: imzxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=118: imzxxx#13 nsp=-1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00, // itest=118: imzxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=118: imzxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=118: imzxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=118: imzxxx#13 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=119: vxxxxx#13 nsp=-1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=119: vxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=119: vxxxxx#13 nsp=-1 mass=0 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=119: vxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 7.071067811865476e-01, // itest=119: vxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=119: vxxxxx#13 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=120: vxxxxx#13 nsp=-1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=120: vxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=120: vxxxxx#13 nsp=-1 mass=0 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=120: vxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 7.071067811865476e-01, // itest=120: vxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=120: vxxxxx#13 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=121: sxxxxx#13 nsp=-1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=121: sxxxxx#13 nsp=-1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=121: sxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=121: sxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=121: sxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=121: sxxxxx#13 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=122: sxxxxx#13 nsp=-1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=122: sxxxxx#13 nsp=-1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=122: sxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=122: sxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=122: sxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=122: sxxxxx#13 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=123: oxxxxx#13 nsp=-1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=123: oxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=123: oxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=123: oxxxxx#13 nsp=-1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00, // itest=123: oxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=123: oxxxxx#13 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=124: oxxxxx#13 nsp=-1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=124: oxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=124: oxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=124: oxxxxx#13 nsp=-1 mass=0 - -3.162277660168379e+01, -0.000000000000000e+00, // itest=124: oxxxxx#13 nsp=-1 mass=0 - -0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=124: oxxxxx#13 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=125: omzxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=125: omzxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=125: omzxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=125: omzxxx#13 nsp=-1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00, // itest=125: omzxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=125: omzxxx#13 nsp=-1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=126: ixxxxx#14 nsp=-1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=126: ixxxxx#14 nsp=-1 mass=0 - 1.341640786499874e+01, -1.788854381999832e+01, // itest=126: ixxxxx#14 nsp=-1 mass=0 - -2.236067977499790e+01, 0.000000000000000e+00, // itest=126: ixxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=126: ixxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=126: ixxxxx#14 nsp=-1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=127: ixxxxx#14 nsp=-1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=127: ixxxxx#14 nsp=-1 mass=0 - 1.341640786499874e+01, -1.788854381999832e+01, // itest=127: ixxxxx#14 nsp=-1 mass=0 - -2.236067977499790e+01, 0.000000000000000e+00, // itest=127: ixxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=127: ixxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=127: ixxxxx#14 nsp=-1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=128: ixzxxx#14 nsp=-1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=128: ixzxxx#14 nsp=-1 mass=0 - 1.341640786499874e+01, -1.788854381999832e+01, // itest=128: ixzxxx#14 nsp=-1 mass=0 - -2.236067977499790e+01, 0.000000000000000e+00, // itest=128: ixzxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=128: ixzxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=128: ixzxxx#14 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=129: vxxxxx#14 nsp=-1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=129: vxxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=129: vxxxxx#14 nsp=-1 mass=0 - -0.000000000000000e+00, 5.656854249492381e-01, // itest=129: vxxxxx#14 nsp=-1 mass=0 - -0.000000000000000e+00, -4.242640687119285e-01, // itest=129: vxxxxx#14 nsp=-1 mass=0 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=129: vxxxxx#14 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=130: vxxxxx#14 nsp=-1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=130: vxxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=130: vxxxxx#14 nsp=-1 mass=0 - -0.000000000000000e+00, 5.656854249492381e-01, // itest=130: vxxxxx#14 nsp=-1 mass=0 - -0.000000000000000e+00, -4.242640687119285e-01, // itest=130: vxxxxx#14 nsp=-1 mass=0 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=130: vxxxxx#14 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=131: sxxxxx#14 nsp=-1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=131: sxxxxx#14 nsp=-1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=131: sxxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=131: sxxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=131: sxxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=131: sxxxxx#14 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=132: sxxxxx#14 nsp=-1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=132: sxxxxx#14 nsp=-1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=132: sxxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=132: sxxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=132: sxxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=132: sxxxxx#14 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=133: oxxxxx#14 nsp=-1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=133: oxxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=133: oxxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=133: oxxxxx#14 nsp=-1 mass=0 - 1.341640786499874e+01, 1.788854381999832e+01, // itest=133: oxxxxx#14 nsp=-1 mass=0 - -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=133: oxxxxx#14 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=134: oxxxxx#14 nsp=-1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=134: oxxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=134: oxxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=134: oxxxxx#14 nsp=-1 mass=0 - 1.341640786499874e+01, 1.788854381999832e+01, // itest=134: oxxxxx#14 nsp=-1 mass=0 - -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=134: oxxxxx#14 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=135: oxzxxx#14 nsp=-1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=135: oxzxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=135: oxzxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=135: oxzxxx#14 nsp=-1 mass=0 - 1.341640786499874e+01, 1.788854381999832e+01, // itest=135: oxzxxx#14 nsp=-1 mass=0 - -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=135: oxzxxx#14 nsp=-1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=136: ixxxxx#15 nsp=-1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=136: ixxxxx#15 nsp=-1 mass=0 - 6.000000000000000e+00, -8.000000000000000e+00, // itest=136: ixxxxx#15 nsp=-1 mass=0 - -3.000000000000000e+01, 0.000000000000000e+00, // itest=136: ixxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=136: ixxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=136: ixxxxx#15 nsp=-1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=137: ixxxxx#15 nsp=-1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=137: ixxxxx#15 nsp=-1 mass=0 - 6.000000000000000e+00, -8.000000000000000e+00, // itest=137: ixxxxx#15 nsp=-1 mass=0 - -3.000000000000000e+01, 0.000000000000000e+00, // itest=137: ixxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=137: ixxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=137: ixxxxx#15 nsp=-1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=138: ixzxxx#15 nsp=-1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=138: ixzxxx#15 nsp=-1 mass=0 - 6.000000000000000e+00, -8.000000000000000e+00, // itest=138: ixzxxx#15 nsp=-1 mass=0 - -3.000000000000000e+01, 0.000000000000000e+00, // itest=138: ixzxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=138: ixzxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=138: ixzxxx#15 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=139: vxxxxx#15 nsp=-1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=139: vxxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=139: vxxxxx#15 nsp=-1 mass=0 - -3.394112549695428e-01, 5.656854249492381e-01, // itest=139: vxxxxx#15 nsp=-1 mass=0 - -4.525483399593904e-01, -4.242640687119285e-01, // itest=139: vxxxxx#15 nsp=-1 mass=0 - 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=139: vxxxxx#15 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=140: vxxxxx#15 nsp=-1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=140: vxxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=140: vxxxxx#15 nsp=-1 mass=0 - -3.394112549695428e-01, 5.656854249492381e-01, // itest=140: vxxxxx#15 nsp=-1 mass=0 - -4.525483399593904e-01, -4.242640687119285e-01, // itest=140: vxxxxx#15 nsp=-1 mass=0 - 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=140: vxxxxx#15 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=141: sxxxxx#15 nsp=-1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=141: sxxxxx#15 nsp=-1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=141: sxxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=141: sxxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=141: sxxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=141: sxxxxx#15 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=142: sxxxxx#15 nsp=-1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=142: sxxxxx#15 nsp=-1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=142: sxxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=142: sxxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=142: sxxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=142: sxxxxx#15 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=143: oxxxxx#15 nsp=-1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=143: oxxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=143: oxxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=143: oxxxxx#15 nsp=-1 mass=0 - 6.000000000000000e+00, 8.000000000000000e+00, // itest=143: oxxxxx#15 nsp=-1 mass=0 - -3.000000000000000e+01, 0.000000000000000e+00 } ); // itest=143: oxxxxx#15 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=144: oxxxxx#15 nsp=-1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=144: oxxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=144: oxxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=144: oxxxxx#15 nsp=-1 mass=0 - 6.000000000000000e+00, 8.000000000000000e+00, // itest=144: oxxxxx#15 nsp=-1 mass=0 - -3.000000000000000e+01, 0.000000000000000e+00 } ); // itest=144: oxxxxx#15 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=145: oxzxxx#15 nsp=-1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=145: oxzxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=145: oxzxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=145: oxzxxx#15 nsp=-1 mass=0 - 6.000000000000000e+00, 8.000000000000000e+00, // itest=145: oxzxxx#15 nsp=-1 mass=0 - -3.000000000000000e+01, 0.000000000000000e+00 } ); // itest=145: oxzxxx#15 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=146: ixxxxx#0 nsp=1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=146: ixxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=146: ixxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=146: ixxxxx#0 nsp=1 mass=0 - 3.162277660168379e+01, 0.000000000000000e+00, // itest=146: ixxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=146: ixxxxx#0 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=147: ixxxxx#0 nsp=1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=147: ixxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=147: ixxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=147: ixxxxx#0 nsp=1 mass=0 - 3.162277660168379e+01, 0.000000000000000e+00, // itest=147: ixxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=147: ixxxxx#0 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=148: ipzxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=148: ipzxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=148: ipzxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=148: ipzxxx#0 nsp=1 mass=0 - 3.162277660168379e+01, 0.000000000000000e+00, // itest=148: ipzxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=148: ipzxxx#0 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=149: vxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=149: vxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=149: vxxxxx#0 nsp=1 mass=0 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=149: vxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 7.071067811865476e-01, // itest=149: vxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=149: vxxxxx#0 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=150: vxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=150: vxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=150: vxxxxx#0 nsp=1 mass=0 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=150: vxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 7.071067811865476e-01, // itest=150: vxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=150: vxxxxx#0 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=151: sxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=151: sxxxxx#0 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=151: sxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=151: sxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=151: sxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=151: sxxxxx#0 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=152: sxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=152: sxxxxx#0 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=152: sxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=152: sxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=152: sxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=152: sxxxxx#0 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=153: oxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=153: oxxxxx#0 nsp=1 mass=0 - 3.162277660168379e+01, 0.000000000000000e+00, // itest=153: oxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=153: oxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=153: oxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=153: oxxxxx#0 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=154: oxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=154: oxxxxx#0 nsp=1 mass=0 - 3.162277660168379e+01, 0.000000000000000e+00, // itest=154: oxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=154: oxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=154: oxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=154: oxxxxx#0 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=155: opzxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=155: opzxxx#0 nsp=1 mass=0 - 3.162277660168379e+01, 0.000000000000000e+00, // itest=155: opzxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=155: opzxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=155: opzxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=155: opzxxx#0 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=156: ixxxxx#1 nsp=1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=156: ixxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=156: ixxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=156: ixxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=156: ixxxxx#1 nsp=1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=156: ixxxxx#1 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=157: ixxxxx#1 nsp=1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=157: ixxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=157: ixxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=157: ixxxxx#1 nsp=1 mass=0 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=157: ixxxxx#1 nsp=1 mass=0 - -3.162277660168379e+01, -0.000000000000000e+00 } ); // itest=157: ixxxxx#1 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=158: imzxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=158: imzxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=158: imzxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=158: imzxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=158: imzxxx#1 nsp=1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=158: imzxxx#1 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=159: vxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=159: vxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=159: vxxxxx#1 nsp=1 mass=0 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=159: vxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, -7.071067811865476e-01, // itest=159: vxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=159: vxxxxx#1 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=160: vxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=160: vxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=160: vxxxxx#1 nsp=1 mass=0 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=160: vxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, -7.071067811865476e-01, // itest=160: vxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=160: vxxxxx#1 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=161: sxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=161: sxxxxx#1 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=161: sxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=161: sxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=161: sxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=161: sxxxxx#1 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=162: sxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=162: sxxxxx#1 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=162: sxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=162: sxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=162: sxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=162: sxxxxx#1 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=163: oxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=163: oxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=163: oxxxxx#1 nsp=1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00, // itest=163: oxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=163: oxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=163: oxxxxx#1 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=164: oxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=164: oxxxxx#1 nsp=1 mass=0 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=164: oxxxxx#1 nsp=1 mass=0 - -3.162277660168379e+01, -0.000000000000000e+00, // itest=164: oxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=164: oxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=164: oxxxxx#1 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=165: omzxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=165: omzxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=165: omzxxx#1 nsp=1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00, // itest=165: omzxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=165: omzxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=165: omzxxx#1 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=166: ixxxxx#2 nsp=1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=166: ixxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=166: ixxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=166: ixxxxx#2 nsp=1 mass=0 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=166: ixxxxx#2 nsp=1 mass=0 - 1.341640786499874e+01, 1.788854381999832e+01 } ); // itest=166: ixxxxx#2 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=167: ixxxxx#2 nsp=1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=167: ixxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=167: ixxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=167: ixxxxx#2 nsp=1 mass=0 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=167: ixxxxx#2 nsp=1 mass=0 - 1.341640786499874e+01, 1.788854381999832e+01 } ); // itest=167: ixxxxx#2 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=168: ixzxxx#2 nsp=1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=168: ixzxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=168: ixzxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=168: ixzxxx#2 nsp=1 mass=0 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=168: ixzxxx#2 nsp=1 mass=0 - 1.341640786499874e+01, 1.788854381999832e+01 } ); // itest=168: ixzxxx#2 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=169: vxxxxx#2 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=169: vxxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=169: vxxxxx#2 nsp=1 mass=0 - -0.000000000000000e+00, -5.656854249492381e-01, // itest=169: vxxxxx#2 nsp=1 mass=0 - -0.000000000000000e+00, 4.242640687119285e-01, // itest=169: vxxxxx#2 nsp=1 mass=0 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=169: vxxxxx#2 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=170: vxxxxx#2 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=170: vxxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=170: vxxxxx#2 nsp=1 mass=0 - -0.000000000000000e+00, -5.656854249492381e-01, // itest=170: vxxxxx#2 nsp=1 mass=0 - -0.000000000000000e+00, 4.242640687119285e-01, // itest=170: vxxxxx#2 nsp=1 mass=0 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=170: vxxxxx#2 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=171: sxxxxx#2 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=171: sxxxxx#2 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=171: sxxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=171: sxxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=171: sxxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=171: sxxxxx#2 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=172: sxxxxx#2 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=172: sxxxxx#2 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=172: sxxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=172: sxxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=172: sxxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=172: sxxxxx#2 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=173: oxxxxx#2 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=173: oxxxxx#2 nsp=1 mass=0 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=173: oxxxxx#2 nsp=1 mass=0 - 1.341640786499874e+01, -1.788854381999832e+01, // itest=173: oxxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=173: oxxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=173: oxxxxx#2 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=174: oxxxxx#2 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=174: oxxxxx#2 nsp=1 mass=0 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=174: oxxxxx#2 nsp=1 mass=0 - 1.341640786499874e+01, -1.788854381999832e+01, // itest=174: oxxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=174: oxxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=174: oxxxxx#2 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=175: oxzxxx#2 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=175: oxzxxx#2 nsp=1 mass=0 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=175: oxzxxx#2 nsp=1 mass=0 - 1.341640786499874e+01, -1.788854381999832e+01, // itest=175: oxzxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=175: oxzxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=175: oxzxxx#2 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=176: ixxxxx#3 nsp=1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=176: ixxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=176: ixxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=176: ixxxxx#3 nsp=1 mass=0 - 3.000000000000000e+01, 0.000000000000000e+00, // itest=176: ixxxxx#3 nsp=1 mass=0 - 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=176: ixxxxx#3 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=177: ixxxxx#3 nsp=1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=177: ixxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=177: ixxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=177: ixxxxx#3 nsp=1 mass=0 - 3.000000000000000e+01, 0.000000000000000e+00, // itest=177: ixxxxx#3 nsp=1 mass=0 - 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=177: ixxxxx#3 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=178: ixzxxx#3 nsp=1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=178: ixzxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=178: ixzxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=178: ixzxxx#3 nsp=1 mass=0 - 3.000000000000000e+01, 0.000000000000000e+00, // itest=178: ixzxxx#3 nsp=1 mass=0 - 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=178: ixzxxx#3 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=179: vxxxxx#3 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=179: vxxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=179: vxxxxx#3 nsp=1 mass=0 - -3.394112549695428e-01, -5.656854249492381e-01, // itest=179: vxxxxx#3 nsp=1 mass=0 - -4.525483399593904e-01, 4.242640687119285e-01, // itest=179: vxxxxx#3 nsp=1 mass=0 - 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=179: vxxxxx#3 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=180: vxxxxx#3 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=180: vxxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=180: vxxxxx#3 nsp=1 mass=0 - -3.394112549695428e-01, -5.656854249492381e-01, // itest=180: vxxxxx#3 nsp=1 mass=0 - -4.525483399593904e-01, 4.242640687119285e-01, // itest=180: vxxxxx#3 nsp=1 mass=0 - 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=180: vxxxxx#3 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=181: sxxxxx#3 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=181: sxxxxx#3 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=181: sxxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=181: sxxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=181: sxxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=181: sxxxxx#3 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=182: sxxxxx#3 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=182: sxxxxx#3 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=182: sxxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=182: sxxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=182: sxxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=182: sxxxxx#3 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=183: oxxxxx#3 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=183: oxxxxx#3 nsp=1 mass=0 - 3.000000000000000e+01, 0.000000000000000e+00, // itest=183: oxxxxx#3 nsp=1 mass=0 - 6.000000000000000e+00, -8.000000000000000e+00, // itest=183: oxxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=183: oxxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=183: oxxxxx#3 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=184: oxxxxx#3 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=184: oxxxxx#3 nsp=1 mass=0 - 3.000000000000000e+01, 0.000000000000000e+00, // itest=184: oxxxxx#3 nsp=1 mass=0 - 6.000000000000000e+00, -8.000000000000000e+00, // itest=184: oxxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=184: oxxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=184: oxxxxx#3 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=185: oxzxxx#3 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=185: oxzxxx#3 nsp=1 mass=0 - 3.000000000000000e+01, 0.000000000000000e+00, // itest=185: oxzxxx#3 nsp=1 mass=0 - 6.000000000000000e+00, -8.000000000000000e+00, // itest=185: oxzxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=185: oxzxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=185: oxzxxx#3 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 4.000000000000000e+02, // itest=186: ixxxxx#4 nsp=1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=186: ixxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=186: ixxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=186: ixxxxx#4 nsp=1 mass=0 - 1.000000000000000e+01, 0.000000000000000e+00, // itest=186: ixxxxx#4 nsp=1 mass=0 - 1.800000000000000e+01, 2.400000000000000e+01 } ); // itest=186: ixxxxx#4 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 4.000000000000000e+02, // itest=187: ixxxxx#4 nsp=1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=187: ixxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=187: ixxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=187: ixxxxx#4 nsp=1 mass=0 - 1.000000000000000e+01, 0.000000000000000e+00, // itest=187: ixxxxx#4 nsp=1 mass=0 - 1.800000000000000e+01, 2.400000000000000e+01 } ); // itest=187: ixxxxx#4 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 4.000000000000000e+02, // itest=188: ixzxxx#4 nsp=1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=188: ixzxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=188: ixzxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=188: ixzxxx#4 nsp=1 mass=0 - 1.000000000000000e+01, 0.000000000000000e+00, // itest=188: ixzxxx#4 nsp=1 mass=0 - 1.800000000000000e+01, 2.400000000000000e+01 } ); // itest=188: ixzxxx#4 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -4.000000000000000e+02, // itest=189: vxxxxx#4 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=189: vxxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=189: vxxxxx#4 nsp=1 mass=0 - 3.394112549695428e-01, -5.656854249492381e-01, // itest=189: vxxxxx#4 nsp=1 mass=0 - 4.525483399593904e-01, 4.242640687119285e-01, // itest=189: vxxxxx#4 nsp=1 mass=0 - 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=189: vxxxxx#4 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -4.000000000000000e+02, // itest=190: vxxxxx#4 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=190: vxxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=190: vxxxxx#4 nsp=1 mass=0 - 3.394112549695428e-01, -5.656854249492381e-01, // itest=190: vxxxxx#4 nsp=1 mass=0 - 4.525483399593904e-01, 4.242640687119285e-01, // itest=190: vxxxxx#4 nsp=1 mass=0 - 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=190: vxxxxx#4 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -4.000000000000000e+02, // itest=191: sxxxxx#4 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=191: sxxxxx#4 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=191: sxxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=191: sxxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=191: sxxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=191: sxxxxx#4 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -4.000000000000000e+02, // itest=192: sxxxxx#4 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=192: sxxxxx#4 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=192: sxxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=192: sxxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=192: sxxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=192: sxxxxx#4 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -4.000000000000000e+02, // itest=193: oxxxxx#4 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=193: oxxxxx#4 nsp=1 mass=0 - 1.000000000000000e+01, 0.000000000000000e+00, // itest=193: oxxxxx#4 nsp=1 mass=0 - 1.800000000000000e+01, -2.400000000000000e+01, // itest=193: oxxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=193: oxxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=193: oxxxxx#4 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -4.000000000000000e+02, // itest=194: oxxxxx#4 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=194: oxxxxx#4 nsp=1 mass=0 - 1.000000000000000e+01, 0.000000000000000e+00, // itest=194: oxxxxx#4 nsp=1 mass=0 - 1.800000000000000e+01, -2.400000000000000e+01, // itest=194: oxxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=194: oxxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=194: oxxxxx#4 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -4.000000000000000e+02, // itest=195: oxzxxx#4 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=195: oxzxxx#4 nsp=1 mass=0 - 1.000000000000000e+01, 0.000000000000000e+00, // itest=195: oxzxxx#4 nsp=1 mass=0 - 1.800000000000000e+01, -2.400000000000000e+01, // itest=195: oxzxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=195: oxzxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=195: oxzxxx#4 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=196: ixxxxx#5 nsp=1 mass=500 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=196: ixxxxx#5 nsp=1 mass=500 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=196: ixxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=196: ixxxxx#5 nsp=1 mass=500 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=196: ixxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=196: ixxxxx#5 nsp=1 mass=500 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=197: ixxxxx#5 nsp=1 mass=-500 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=197: ixxxxx#5 nsp=1 mass=-500 - -2.236067977499790e+01, 0.000000000000000e+00, // itest=197: ixxxxx#5 nsp=1 mass=-500 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=197: ixxxxx#5 nsp=1 mass=-500 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=197: ixxxxx#5 nsp=1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=197: ixxxxx#5 nsp=1 mass=-500 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=198: vxxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=198: vxxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=198: vxxxxx#5 nsp=1 mass=500 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=198: vxxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 7.071067811865476e-01, // itest=198: vxxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=198: vxxxxx#5 nsp=1 mass=500 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=199: vxxxxx#5 nsp=1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=199: vxxxxx#5 nsp=1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=199: vxxxxx#5 nsp=1 mass=-500 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=199: vxxxxx#5 nsp=1 mass=-500 - 0.000000000000000e+00, 7.071067811865476e-01, // itest=199: vxxxxx#5 nsp=1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=199: vxxxxx#5 nsp=1 mass=-500 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=200: sxxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=200: sxxxxx#5 nsp=1 mass=500 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=200: sxxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=200: sxxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=200: sxxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=200: sxxxxx#5 nsp=1 mass=500 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=201: sxxxxx#5 nsp=1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=201: sxxxxx#5 nsp=1 mass=-500 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=201: sxxxxx#5 nsp=1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=201: sxxxxx#5 nsp=1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=201: sxxxxx#5 nsp=1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=201: sxxxxx#5 nsp=1 mass=-500 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=202: oxxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=202: oxxxxx#5 nsp=1 mass=500 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=202: oxxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=202: oxxxxx#5 nsp=1 mass=500 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=202: oxxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=202: oxxxxx#5 nsp=1 mass=500 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=203: oxxxxx#5 nsp=1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=203: oxxxxx#5 nsp=1 mass=-500 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=203: oxxxxx#5 nsp=1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=203: oxxxxx#5 nsp=1 mass=-500 - -2.236067977499790e+01, 0.000000000000000e+00, // itest=203: oxxxxx#5 nsp=1 mass=-500 - -0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=203: oxxxxx#5 nsp=1 mass=-500 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -3.000000000000000e+02, // itest=204: ixxxxx#6 nsp=1 mass=400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=204: ixxxxx#6 nsp=1 mass=400 - 1.414213562373095e+01, 0.000000000000000e+00, // itest=204: ixxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=204: ixxxxx#6 nsp=1 mass=400 - 2.828427124746190e+01, 0.000000000000000e+00, // itest=204: ixxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=204: ixxxxx#6 nsp=1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -3.000000000000000e+02, // itest=205: ixxxxx#6 nsp=1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=205: ixxxxx#6 nsp=1 mass=-400 - -1.414213562373095e+01, -0.000000000000000e+00, // itest=205: ixxxxx#6 nsp=1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=205: ixxxxx#6 nsp=1 mass=-400 - 2.828427124746190e+01, 0.000000000000000e+00, // itest=205: ixxxxx#6 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=205: ixxxxx#6 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 3.000000000000000e+02, // itest=206: vxxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=206: vxxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=206: vxxxxx#6 nsp=1 mass=400 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=206: vxxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, 7.071067811865476e-01, // itest=206: vxxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=206: vxxxxx#6 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 3.000000000000000e+02, // itest=207: vxxxxx#6 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=207: vxxxxx#6 nsp=1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=207: vxxxxx#6 nsp=1 mass=-400 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=207: vxxxxx#6 nsp=1 mass=-400 - 0.000000000000000e+00, 7.071067811865476e-01, // itest=207: vxxxxx#6 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=207: vxxxxx#6 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 3.000000000000000e+02, // itest=208: sxxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=208: sxxxxx#6 nsp=1 mass=400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=208: sxxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=208: sxxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=208: sxxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=208: sxxxxx#6 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 3.000000000000000e+02, // itest=209: sxxxxx#6 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=209: sxxxxx#6 nsp=1 mass=-400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=209: sxxxxx#6 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=209: sxxxxx#6 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=209: sxxxxx#6 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=209: sxxxxx#6 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 3.000000000000000e+02, // itest=210: oxxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=210: oxxxxx#6 nsp=1 mass=400 - 2.828427124746190e+01, 0.000000000000000e+00, // itest=210: oxxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=210: oxxxxx#6 nsp=1 mass=400 - 1.414213562373095e+01, 0.000000000000000e+00, // itest=210: oxxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=210: oxxxxx#6 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 3.000000000000000e+02, // itest=211: oxxxxx#6 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=211: oxxxxx#6 nsp=1 mass=-400 - 2.828427124746190e+01, 0.000000000000000e+00, // itest=211: oxxxxx#6 nsp=1 mass=-400 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=211: oxxxxx#6 nsp=1 mass=-400 - -1.414213562373095e+01, -0.000000000000000e+00, // itest=211: oxxxxx#6 nsp=1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=211: oxxxxx#6 nsp=1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 3.000000000000000e+02, // itest=212: ixxxxx#7 nsp=1 mass=400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=212: ixxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=212: ixxxxx#7 nsp=1 mass=400 - -1.414213562373095e+01, 0.000000000000000e+00, // itest=212: ixxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=212: ixxxxx#7 nsp=1 mass=400 - -2.828427124746190e+01, 0.000000000000000e+00 } ); // itest=212: ixxxxx#7 nsp=1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 3.000000000000000e+02, // itest=213: ixxxxx#7 nsp=1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=213: ixxxxx#7 nsp=1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=213: ixxxxx#7 nsp=1 mass=-400 - 1.414213562373095e+01, -0.000000000000000e+00, // itest=213: ixxxxx#7 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=213: ixxxxx#7 nsp=1 mass=-400 - -2.828427124746190e+01, 0.000000000000000e+00 } ); // itest=213: ixxxxx#7 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -3.000000000000000e+02, // itest=214: vxxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=214: vxxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=214: vxxxxx#7 nsp=1 mass=400 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=214: vxxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, -7.071067811865476e-01, // itest=214: vxxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=214: vxxxxx#7 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -3.000000000000000e+02, // itest=215: vxxxxx#7 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=215: vxxxxx#7 nsp=1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=215: vxxxxx#7 nsp=1 mass=-400 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=215: vxxxxx#7 nsp=1 mass=-400 - 0.000000000000000e+00, -7.071067811865476e-01, // itest=215: vxxxxx#7 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=215: vxxxxx#7 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -3.000000000000000e+02, // itest=216: sxxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=216: sxxxxx#7 nsp=1 mass=400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=216: sxxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=216: sxxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=216: sxxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=216: sxxxxx#7 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -3.000000000000000e+02, // itest=217: sxxxxx#7 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=217: sxxxxx#7 nsp=1 mass=-400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=217: sxxxxx#7 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=217: sxxxxx#7 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=217: sxxxxx#7 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=217: sxxxxx#7 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -3.000000000000000e+02, // itest=218: oxxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=218: oxxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=218: oxxxxx#7 nsp=1 mass=400 - -2.828427124746190e+01, 0.000000000000000e+00, // itest=218: oxxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=218: oxxxxx#7 nsp=1 mass=400 - -1.414213562373095e+01, 0.000000000000000e+00 } ); // itest=218: oxxxxx#7 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -3.000000000000000e+02, // itest=219: oxxxxx#7 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=219: oxxxxx#7 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=219: oxxxxx#7 nsp=1 mass=-400 - -2.828427124746190e+01, 0.000000000000000e+00, // itest=219: oxxxxx#7 nsp=1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=219: oxxxxx#7 nsp=1 mass=-400 - 1.414213562373095e+01, -0.000000000000000e+00 } ); // itest=219: oxxxxx#7 nsp=1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=220: ixxxxx#8 nsp=1 mass=400 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=220: ixxxxx#8 nsp=1 mass=400 - 1.000000000000000e+01, 0.000000000000000e+00, // itest=220: ixxxxx#8 nsp=1 mass=400 - 5.999999999999999e+00, 7.999999999999999e+00, // itest=220: ixxxxx#8 nsp=1 mass=400 - 2.000000000000000e+01, 0.000000000000000e+00, // itest=220: ixxxxx#8 nsp=1 mass=400 - 1.200000000000000e+01, 1.600000000000000e+01 } ); // itest=220: ixxxxx#8 nsp=1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=221: ixxxxx#8 nsp=1 mass=-400 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=221: ixxxxx#8 nsp=1 mass=-400 - -1.000000000000000e+01, -0.000000000000000e+00, // itest=221: ixxxxx#8 nsp=1 mass=-400 - -5.999999999999999e+00, -7.999999999999999e+00, // itest=221: ixxxxx#8 nsp=1 mass=-400 - 2.000000000000000e+01, 0.000000000000000e+00, // itest=221: ixxxxx#8 nsp=1 mass=-400 - 1.200000000000000e+01, 1.600000000000000e+01 } ); // itest=221: ixxxxx#8 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=222: vxxxxx#8 nsp=1 mass=400 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=222: vxxxxx#8 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=222: vxxxxx#8 nsp=1 mass=400 - 0.000000000000000e+00, -5.656854249492381e-01, // itest=222: vxxxxx#8 nsp=1 mass=400 - 0.000000000000000e+00, 4.242640687119285e-01, // itest=222: vxxxxx#8 nsp=1 mass=400 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=222: vxxxxx#8 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=223: vxxxxx#8 nsp=1 mass=-400 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=223: vxxxxx#8 nsp=1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=223: vxxxxx#8 nsp=1 mass=-400 - -0.000000000000000e+00, -5.656854249492381e-01, // itest=223: vxxxxx#8 nsp=1 mass=-400 - -0.000000000000000e+00, 4.242640687119285e-01, // itest=223: vxxxxx#8 nsp=1 mass=-400 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=223: vxxxxx#8 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=224: sxxxxx#8 nsp=1 mass=400 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=224: sxxxxx#8 nsp=1 mass=400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=224: sxxxxx#8 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=224: sxxxxx#8 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=224: sxxxxx#8 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=224: sxxxxx#8 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=225: sxxxxx#8 nsp=1 mass=-400 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=225: sxxxxx#8 nsp=1 mass=-400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=225: sxxxxx#8 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=225: sxxxxx#8 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=225: sxxxxx#8 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=225: sxxxxx#8 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=226: oxxxxx#8 nsp=1 mass=400 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=226: oxxxxx#8 nsp=1 mass=400 - 2.000000000000000e+01, 0.000000000000000e+00, // itest=226: oxxxxx#8 nsp=1 mass=400 - 1.200000000000000e+01, -1.600000000000000e+01, // itest=226: oxxxxx#8 nsp=1 mass=400 - 1.000000000000000e+01, 0.000000000000000e+00, // itest=226: oxxxxx#8 nsp=1 mass=400 - 5.999999999999999e+00, -7.999999999999999e+00 } ); // itest=226: oxxxxx#8 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=227: oxxxxx#8 nsp=1 mass=-400 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=227: oxxxxx#8 nsp=1 mass=-400 - 2.000000000000000e+01, 0.000000000000000e+00, // itest=227: oxxxxx#8 nsp=1 mass=-400 - 1.200000000000000e+01, -1.600000000000000e+01, // itest=227: oxxxxx#8 nsp=1 mass=-400 - -1.000000000000000e+01, -0.000000000000000e+00, // itest=227: oxxxxx#8 nsp=1 mass=-400 - -5.999999999999999e+00, 7.999999999999999e+00 } ); // itest=227: oxxxxx#8 nsp=1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=228: ixxxxx#9 nsp=1 mass=400 - 2.400000000000000e+02, 1.800000000000000e+02, // itest=228: ixxxxx#9 nsp=1 mass=400 - 1.000000000000000e+01, 0.000000000000000e+00, // itest=228: ixxxxx#9 nsp=1 mass=400 - -7.999999999999999e+00, -5.999999999999999e+00, // itest=228: ixxxxx#9 nsp=1 mass=400 - 2.000000000000000e+01, 0.000000000000000e+00, // itest=228: ixxxxx#9 nsp=1 mass=400 - -1.600000000000000e+01, -1.200000000000000e+01 } ); // itest=228: ixxxxx#9 nsp=1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=229: ixxxxx#9 nsp=1 mass=-400 - 2.400000000000000e+02, 1.800000000000000e+02, // itest=229: ixxxxx#9 nsp=1 mass=-400 - -1.000000000000000e+01, -0.000000000000000e+00, // itest=229: ixxxxx#9 nsp=1 mass=-400 - 7.999999999999999e+00, 5.999999999999999e+00, // itest=229: ixxxxx#9 nsp=1 mass=-400 - 2.000000000000000e+01, 0.000000000000000e+00, // itest=229: ixxxxx#9 nsp=1 mass=-400 - -1.600000000000000e+01, -1.200000000000000e+01 } ); // itest=229: ixxxxx#9 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=230: vxxxxx#9 nsp=1 mass=400 - -2.400000000000000e+02, -1.800000000000000e+02, // itest=230: vxxxxx#9 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=230: vxxxxx#9 nsp=1 mass=400 - 0.000000000000000e+00, 4.242640687119285e-01, // itest=230: vxxxxx#9 nsp=1 mass=400 - 0.000000000000000e+00, -5.656854249492381e-01, // itest=230: vxxxxx#9 nsp=1 mass=400 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=230: vxxxxx#9 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=231: vxxxxx#9 nsp=1 mass=-400 - -2.400000000000000e+02, -1.800000000000000e+02, // itest=231: vxxxxx#9 nsp=1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=231: vxxxxx#9 nsp=1 mass=-400 - 0.000000000000000e+00, 4.242640687119285e-01, // itest=231: vxxxxx#9 nsp=1 mass=-400 - 0.000000000000000e+00, -5.656854249492381e-01, // itest=231: vxxxxx#9 nsp=1 mass=-400 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=231: vxxxxx#9 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=232: sxxxxx#9 nsp=1 mass=400 - -2.400000000000000e+02, -1.800000000000000e+02, // itest=232: sxxxxx#9 nsp=1 mass=400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=232: sxxxxx#9 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=232: sxxxxx#9 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=232: sxxxxx#9 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=232: sxxxxx#9 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=233: sxxxxx#9 nsp=1 mass=-400 - -2.400000000000000e+02, -1.800000000000000e+02, // itest=233: sxxxxx#9 nsp=1 mass=-400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=233: sxxxxx#9 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=233: sxxxxx#9 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=233: sxxxxx#9 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=233: sxxxxx#9 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=234: oxxxxx#9 nsp=1 mass=400 - -2.400000000000000e+02, -1.800000000000000e+02, // itest=234: oxxxxx#9 nsp=1 mass=400 - 2.000000000000000e+01, 0.000000000000000e+00, // itest=234: oxxxxx#9 nsp=1 mass=400 - -1.600000000000000e+01, 1.200000000000000e+01, // itest=234: oxxxxx#9 nsp=1 mass=400 - 1.000000000000000e+01, 0.000000000000000e+00, // itest=234: oxxxxx#9 nsp=1 mass=400 - -7.999999999999999e+00, 5.999999999999999e+00 } ); // itest=234: oxxxxx#9 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=235: oxxxxx#9 nsp=1 mass=-400 - -2.400000000000000e+02, -1.800000000000000e+02, // itest=235: oxxxxx#9 nsp=1 mass=-400 - 2.000000000000000e+01, 0.000000000000000e+00, // itest=235: oxxxxx#9 nsp=1 mass=-400 - -1.600000000000000e+01, 1.200000000000000e+01, // itest=235: oxxxxx#9 nsp=1 mass=-400 - -1.000000000000000e+01, -0.000000000000000e+00, // itest=235: oxxxxx#9 nsp=1 mass=-400 - 7.999999999999999e+00, -5.999999999999999e+00 } ); // itest=235: oxxxxx#9 nsp=1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -1.440000000000000e+02, // itest=236: ixxxxx#10 nsp=1 mass=400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=236: ixxxxx#10 nsp=1 mass=400 - 1.216552506059644e+01, 0.000000000000000e+00, // itest=236: ixxxxx#10 nsp=1 mass=400 - 4.931969619160719e+00, 5.260767593771432e+00, // itest=236: ixxxxx#10 nsp=1 mass=400 - 2.433105012119288e+01, 0.000000000000000e+00, // itest=236: ixxxxx#10 nsp=1 mass=400 - 9.863939238321439e+00, 1.052153518754287e+01 } ); // itest=236: ixxxxx#10 nsp=1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -1.440000000000000e+02, // itest=237: ixxxxx#10 nsp=1 mass=-400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=237: ixxxxx#10 nsp=1 mass=-400 - -1.216552506059644e+01, -0.000000000000000e+00, // itest=237: ixxxxx#10 nsp=1 mass=-400 - -4.931969619160719e+00, -5.260767593771432e+00, // itest=237: ixxxxx#10 nsp=1 mass=-400 - 2.433105012119288e+01, 0.000000000000000e+00, // itest=237: ixxxxx#10 nsp=1 mass=-400 - 9.863939238321439e+00, 1.052153518754287e+01 } ); // itest=237: ixxxxx#10 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 1.440000000000000e+02, // itest=238: vxxxxx#10 nsp=1 mass=400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=238: vxxxxx#10 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=238: vxxxxx#10 nsp=1 mass=400 - -2.321373168788980e-01, -5.158607041753289e-01, // itest=238: vxxxxx#10 nsp=1 mass=400 - -2.476131380041579e-01, 4.836194101643708e-01, // itest=238: vxxxxx#10 nsp=1 mass=400 - 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=238: vxxxxx#10 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 1.440000000000000e+02, // itest=239: vxxxxx#10 nsp=1 mass=-400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=239: vxxxxx#10 nsp=1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=239: vxxxxx#10 nsp=1 mass=-400 - -2.321373168788980e-01, -5.158607041753289e-01, // itest=239: vxxxxx#10 nsp=1 mass=-400 - -2.476131380041579e-01, 4.836194101643708e-01, // itest=239: vxxxxx#10 nsp=1 mass=-400 - 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=239: vxxxxx#10 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 1.440000000000000e+02, // itest=240: sxxxxx#10 nsp=1 mass=400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=240: sxxxxx#10 nsp=1 mass=400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=240: sxxxxx#10 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=240: sxxxxx#10 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=240: sxxxxx#10 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=240: sxxxxx#10 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 1.440000000000000e+02, // itest=241: sxxxxx#10 nsp=1 mass=-400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=241: sxxxxx#10 nsp=1 mass=-400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=241: sxxxxx#10 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=241: sxxxxx#10 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=241: sxxxxx#10 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=241: sxxxxx#10 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 1.440000000000000e+02, // itest=242: oxxxxx#10 nsp=1 mass=400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=242: oxxxxx#10 nsp=1 mass=400 - 2.433105012119288e+01, 0.000000000000000e+00, // itest=242: oxxxxx#10 nsp=1 mass=400 - 9.863939238321439e+00, -1.052153518754287e+01, // itest=242: oxxxxx#10 nsp=1 mass=400 - 1.216552506059644e+01, 0.000000000000000e+00, // itest=242: oxxxxx#10 nsp=1 mass=400 - 4.931969619160719e+00, -5.260767593771432e+00 } ); // itest=242: oxxxxx#10 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 1.440000000000000e+02, // itest=243: oxxxxx#10 nsp=1 mass=-400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=243: oxxxxx#10 nsp=1 mass=-400 - 2.433105012119288e+01, 0.000000000000000e+00, // itest=243: oxxxxx#10 nsp=1 mass=-400 - 9.863939238321439e+00, -1.052153518754287e+01, // itest=243: oxxxxx#10 nsp=1 mass=-400 - -1.216552506059644e+01, -0.000000000000000e+00, // itest=243: oxxxxx#10 nsp=1 mass=-400 - -4.931969619160719e+00, 5.260767593771432e+00 } ); // itest=243: oxxxxx#10 nsp=1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 1.440000000000000e+02, // itest=244: ixxxxx#11 nsp=1 mass=400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=244: ixxxxx#11 nsp=1 mass=400 - 7.211102550927978e+00, 0.000000000000000e+00, // itest=244: ixxxxx#11 nsp=1 mass=400 - 8.320502943378436e+00, 8.875203139603666e+00, // itest=244: ixxxxx#11 nsp=1 mass=400 - 1.442220510185596e+01, 0.000000000000000e+00, // itest=244: ixxxxx#11 nsp=1 mass=400 - 1.664100588675688e+01, 1.775040627920733e+01 } ); // itest=244: ixxxxx#11 nsp=1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 1.440000000000000e+02, // itest=245: ixxxxx#11 nsp=1 mass=-400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=245: ixxxxx#11 nsp=1 mass=-400 - -7.211102550927978e+00, -0.000000000000000e+00, // itest=245: ixxxxx#11 nsp=1 mass=-400 - -8.320502943378436e+00, -8.875203139603666e+00, // itest=245: ixxxxx#11 nsp=1 mass=-400 - 1.442220510185596e+01, 0.000000000000000e+00, // itest=245: ixxxxx#11 nsp=1 mass=-400 - 1.664100588675688e+01, 1.775040627920733e+01 } ); // itest=245: ixxxxx#11 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -1.440000000000000e+02, // itest=246: vxxxxx#11 nsp=1 mass=400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=246: vxxxxx#11 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=246: vxxxxx#11 nsp=1 mass=400 - 2.321373168788980e-01, -5.158607041753289e-01, // itest=246: vxxxxx#11 nsp=1 mass=400 - 2.476131380041579e-01, 4.836194101643708e-01, // itest=246: vxxxxx#11 nsp=1 mass=400 - 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=246: vxxxxx#11 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -1.440000000000000e+02, // itest=247: vxxxxx#11 nsp=1 mass=-400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=247: vxxxxx#11 nsp=1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=247: vxxxxx#11 nsp=1 mass=-400 - 2.321373168788980e-01, -5.158607041753289e-01, // itest=247: vxxxxx#11 nsp=1 mass=-400 - 2.476131380041579e-01, 4.836194101643708e-01, // itest=247: vxxxxx#11 nsp=1 mass=-400 - 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=247: vxxxxx#11 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -1.440000000000000e+02, // itest=248: sxxxxx#11 nsp=1 mass=400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=248: sxxxxx#11 nsp=1 mass=400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=248: sxxxxx#11 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=248: sxxxxx#11 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=248: sxxxxx#11 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=248: sxxxxx#11 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -1.440000000000000e+02, // itest=249: sxxxxx#11 nsp=1 mass=-400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=249: sxxxxx#11 nsp=1 mass=-400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=249: sxxxxx#11 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=249: sxxxxx#11 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=249: sxxxxx#11 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=249: sxxxxx#11 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -1.440000000000000e+02, // itest=250: oxxxxx#11 nsp=1 mass=400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=250: oxxxxx#11 nsp=1 mass=400 - 1.442220510185596e+01, 0.000000000000000e+00, // itest=250: oxxxxx#11 nsp=1 mass=400 - 1.664100588675688e+01, -1.775040627920733e+01, // itest=250: oxxxxx#11 nsp=1 mass=400 - 7.211102550927978e+00, 0.000000000000000e+00, // itest=250: oxxxxx#11 nsp=1 mass=400 - 8.320502943378436e+00, -8.875203139603666e+00 } ); // itest=250: oxxxxx#11 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -1.440000000000000e+02, // itest=251: oxxxxx#11 nsp=1 mass=-400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=251: oxxxxx#11 nsp=1 mass=-400 - 1.442220510185596e+01, 0.000000000000000e+00, // itest=251: oxxxxx#11 nsp=1 mass=-400 - 1.664100588675688e+01, -1.775040627920733e+01, // itest=251: oxxxxx#11 nsp=1 mass=-400 - -7.211102550927978e+00, -0.000000000000000e+00, // itest=251: oxxxxx#11 nsp=1 mass=-400 - -8.320502943378436e+00, 8.875203139603666e+00 } ); // itest=251: oxxxxx#11 nsp=1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=252: ixxxxx#12 nsp=1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=252: ixxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=252: ixxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=252: ixxxxx#12 nsp=1 mass=0 - 3.162277660168379e+01, 0.000000000000000e+00, // itest=252: ixxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=252: ixxxxx#12 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=253: ixxxxx#12 nsp=1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=253: ixxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=253: ixxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=253: ixxxxx#12 nsp=1 mass=0 - 3.162277660168379e+01, 0.000000000000000e+00, // itest=253: ixxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=253: ixxxxx#12 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=254: ipzxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=254: ipzxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=254: ipzxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=254: ipzxxx#12 nsp=1 mass=0 - 3.162277660168379e+01, 0.000000000000000e+00, // itest=254: ipzxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=254: ipzxxx#12 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=255: vxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=255: vxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=255: vxxxxx#12 nsp=1 mass=0 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=255: vxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 7.071067811865476e-01, // itest=255: vxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=255: vxxxxx#12 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=256: vxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=256: vxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=256: vxxxxx#12 nsp=1 mass=0 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=256: vxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 7.071067811865476e-01, // itest=256: vxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=256: vxxxxx#12 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=257: sxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=257: sxxxxx#12 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=257: sxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=257: sxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=257: sxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=257: sxxxxx#12 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=258: sxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=258: sxxxxx#12 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=258: sxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=258: sxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=258: sxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=258: sxxxxx#12 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=259: oxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=259: oxxxxx#12 nsp=1 mass=0 - 3.162277660168379e+01, 0.000000000000000e+00, // itest=259: oxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=259: oxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=259: oxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=259: oxxxxx#12 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=260: oxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=260: oxxxxx#12 nsp=1 mass=0 - 3.162277660168379e+01, 0.000000000000000e+00, // itest=260: oxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=260: oxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=260: oxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=260: oxxxxx#12 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=261: opzxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=261: opzxxx#12 nsp=1 mass=0 - 3.162277660168379e+01, 0.000000000000000e+00, // itest=261: opzxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=261: opzxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=261: opzxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=261: opzxxx#12 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=262: ixxxxx#13 nsp=1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=262: ixxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=262: ixxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=262: ixxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=262: ixxxxx#13 nsp=1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=262: ixxxxx#13 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=263: ixxxxx#13 nsp=1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=263: ixxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=263: ixxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=263: ixxxxx#13 nsp=1 mass=0 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=263: ixxxxx#13 nsp=1 mass=0 - -3.162277660168379e+01, -0.000000000000000e+00 } ); // itest=263: ixxxxx#13 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=264: imzxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=264: imzxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=264: imzxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=264: imzxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=264: imzxxx#13 nsp=1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=264: imzxxx#13 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=265: vxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=265: vxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=265: vxxxxx#13 nsp=1 mass=0 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=265: vxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, -7.071067811865476e-01, // itest=265: vxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=265: vxxxxx#13 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=266: vxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=266: vxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=266: vxxxxx#13 nsp=1 mass=0 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=266: vxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, -7.071067811865476e-01, // itest=266: vxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=266: vxxxxx#13 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=267: sxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=267: sxxxxx#13 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=267: sxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=267: sxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=267: sxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=267: sxxxxx#13 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=268: sxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=268: sxxxxx#13 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=268: sxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=268: sxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=268: sxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=268: sxxxxx#13 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=269: oxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=269: oxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=269: oxxxxx#13 nsp=1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00, // itest=269: oxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=269: oxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=269: oxxxxx#13 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=270: oxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=270: oxxxxx#13 nsp=1 mass=0 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=270: oxxxxx#13 nsp=1 mass=0 - -3.162277660168379e+01, -0.000000000000000e+00, // itest=270: oxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=270: oxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=270: oxxxxx#13 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=271: omzxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=271: omzxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=271: omzxxx#13 nsp=1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00, // itest=271: omzxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=271: omzxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=271: omzxxx#13 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=272: ixxxxx#14 nsp=1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=272: ixxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=272: ixxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=272: ixxxxx#14 nsp=1 mass=0 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=272: ixxxxx#14 nsp=1 mass=0 - 1.341640786499874e+01, 1.788854381999832e+01 } ); // itest=272: ixxxxx#14 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=273: ixxxxx#14 nsp=1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=273: ixxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=273: ixxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=273: ixxxxx#14 nsp=1 mass=0 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=273: ixxxxx#14 nsp=1 mass=0 - 1.341640786499874e+01, 1.788854381999832e+01 } ); // itest=273: ixxxxx#14 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=274: ixzxxx#14 nsp=1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=274: ixzxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=274: ixzxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=274: ixzxxx#14 nsp=1 mass=0 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=274: ixzxxx#14 nsp=1 mass=0 - 1.341640786499874e+01, 1.788854381999832e+01 } ); // itest=274: ixzxxx#14 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=275: vxxxxx#14 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=275: vxxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=275: vxxxxx#14 nsp=1 mass=0 - -0.000000000000000e+00, -5.656854249492381e-01, // itest=275: vxxxxx#14 nsp=1 mass=0 - -0.000000000000000e+00, 4.242640687119285e-01, // itest=275: vxxxxx#14 nsp=1 mass=0 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=275: vxxxxx#14 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=276: vxxxxx#14 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=276: vxxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=276: vxxxxx#14 nsp=1 mass=0 - -0.000000000000000e+00, -5.656854249492381e-01, // itest=276: vxxxxx#14 nsp=1 mass=0 - -0.000000000000000e+00, 4.242640687119285e-01, // itest=276: vxxxxx#14 nsp=1 mass=0 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=276: vxxxxx#14 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=277: sxxxxx#14 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=277: sxxxxx#14 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=277: sxxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=277: sxxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=277: sxxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=277: sxxxxx#14 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=278: sxxxxx#14 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=278: sxxxxx#14 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=278: sxxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=278: sxxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=278: sxxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=278: sxxxxx#14 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=279: oxxxxx#14 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=279: oxxxxx#14 nsp=1 mass=0 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=279: oxxxxx#14 nsp=1 mass=0 - 1.341640786499874e+01, -1.788854381999832e+01, // itest=279: oxxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=279: oxxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=279: oxxxxx#14 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=280: oxxxxx#14 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=280: oxxxxx#14 nsp=1 mass=0 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=280: oxxxxx#14 nsp=1 mass=0 - 1.341640786499874e+01, -1.788854381999832e+01, // itest=280: oxxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=280: oxxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=280: oxxxxx#14 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=281: oxzxxx#14 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=281: oxzxxx#14 nsp=1 mass=0 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=281: oxzxxx#14 nsp=1 mass=0 - 1.341640786499874e+01, -1.788854381999832e+01, // itest=281: oxzxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=281: oxzxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=281: oxzxxx#14 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=282: ixxxxx#15 nsp=1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=282: ixxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=282: ixxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=282: ixxxxx#15 nsp=1 mass=0 - 3.000000000000000e+01, 0.000000000000000e+00, // itest=282: ixxxxx#15 nsp=1 mass=0 - 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=282: ixxxxx#15 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=283: ixxxxx#15 nsp=1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=283: ixxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=283: ixxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=283: ixxxxx#15 nsp=1 mass=0 - 3.000000000000000e+01, 0.000000000000000e+00, // itest=283: ixxxxx#15 nsp=1 mass=0 - 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=283: ixxxxx#15 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=284: ixzxxx#15 nsp=1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=284: ixzxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=284: ixzxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=284: ixzxxx#15 nsp=1 mass=0 - 3.000000000000000e+01, 0.000000000000000e+00, // itest=284: ixzxxx#15 nsp=1 mass=0 - 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=284: ixzxxx#15 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=285: vxxxxx#15 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=285: vxxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=285: vxxxxx#15 nsp=1 mass=0 - -3.394112549695428e-01, -5.656854249492381e-01, // itest=285: vxxxxx#15 nsp=1 mass=0 - -4.525483399593904e-01, 4.242640687119285e-01, // itest=285: vxxxxx#15 nsp=1 mass=0 - 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=285: vxxxxx#15 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=286: vxxxxx#15 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=286: vxxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=286: vxxxxx#15 nsp=1 mass=0 - -3.394112549695428e-01, -5.656854249492381e-01, // itest=286: vxxxxx#15 nsp=1 mass=0 - -4.525483399593904e-01, 4.242640687119285e-01, // itest=286: vxxxxx#15 nsp=1 mass=0 - 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=286: vxxxxx#15 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=287: sxxxxx#15 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=287: sxxxxx#15 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=287: sxxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=287: sxxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=287: sxxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=287: sxxxxx#15 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=288: sxxxxx#15 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=288: sxxxxx#15 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=288: sxxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=288: sxxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=288: sxxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=288: sxxxxx#15 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=289: oxxxxx#15 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=289: oxxxxx#15 nsp=1 mass=0 - 3.000000000000000e+01, 0.000000000000000e+00, // itest=289: oxxxxx#15 nsp=1 mass=0 - 6.000000000000000e+00, -8.000000000000000e+00, // itest=289: oxxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=289: oxxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=289: oxxxxx#15 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=290: oxxxxx#15 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=290: oxxxxx#15 nsp=1 mass=0 - 3.000000000000000e+01, 0.000000000000000e+00, // itest=290: oxxxxx#15 nsp=1 mass=0 - 6.000000000000000e+00, -8.000000000000000e+00, // itest=290: oxxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=290: oxxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=290: oxxxxx#15 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=291: oxzxxx#15 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=291: oxzxxx#15 nsp=1 mass=0 - 3.000000000000000e+01, 0.000000000000000e+00, // itest=291: oxzxxx#15 nsp=1 mass=0 - 6.000000000000000e+00, -8.000000000000000e+00, // itest=291: oxzxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=291: oxzxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=291: oxzxxx#15 nsp=1 mass=0 + 5.000000000000000e+02, 5.000000000000000e+02, // itest=50: ixxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=50: ixxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=50: ixxxxx#5 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=50: ixxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=50: ixxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=50: ixxxxx#5 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=51: ixxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=51: ixxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=51: ixxxxx#5 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=51: ixxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=51: ixxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=51: ixxxxx#5 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=52: ipzxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=52: ipzxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=52: ipzxxx#5 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=52: ipzxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=52: ipzxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=52: ipzxxx#5 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=53: vxxxxx#5 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=53: vxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=53: vxxxxx#5 nsp=-1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=53: vxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=53: vxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=53: vxxxxx#5 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=54: vxxxxx#5 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=54: vxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=54: vxxxxx#5 nsp=-1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=54: vxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=54: vxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=54: vxxxxx#5 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=55: sxxxxx#5 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=55: sxxxxx#5 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=55: sxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=55: sxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=55: sxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=55: sxxxxx#5 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=56: sxxxxx#5 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=56: sxxxxx#5 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=56: sxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=56: sxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=56: sxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=56: sxxxxx#5 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=57: oxxxxx#5 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=57: oxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=57: oxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=57: oxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=57: oxxxxx#5 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=57: oxxxxx#5 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=58: oxxxxx#5 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=58: oxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=58: oxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=58: oxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=58: oxxxxx#5 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=58: oxxxxx#5 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=59: opzxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=59: opzxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=59: opzxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=59: opzxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=59: opzxxx#5 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=59: opzxxx#5 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=60: ixxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=60: ixxxxx#6 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=60: ixxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=60: ixxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=60: ixxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=60: ixxxxx#6 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=61: ixxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=61: ixxxxx#6 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=61: ixxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=61: ixxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=61: ixxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=61: ixxxxx#6 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=62: imzxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=62: imzxxx#6 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=62: imzxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=62: imzxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=62: imzxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=62: imzxxx#6 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=63: vxxxxx#6 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=63: vxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=63: vxxxxx#6 nsp=-1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=63: vxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=63: vxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=63: vxxxxx#6 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=64: vxxxxx#6 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=64: vxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=64: vxxxxx#6 nsp=-1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=64: vxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=64: vxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=64: vxxxxx#6 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=65: sxxxxx#6 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=65: sxxxxx#6 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=65: sxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=65: sxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=65: sxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=65: sxxxxx#6 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=66: sxxxxx#6 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=66: sxxxxx#6 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=66: sxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=66: sxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=66: sxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=66: sxxxxx#6 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=67: oxxxxx#6 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=67: oxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=67: oxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=67: oxxxxx#6 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=67: oxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=67: oxxxxx#6 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=68: oxxxxx#6 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=68: oxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=68: oxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=68: oxxxxx#6 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=68: oxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=68: oxxxxx#6 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=69: omzxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=69: omzxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=69: omzxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=69: omzxxx#6 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=69: omzxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=69: omzxxx#6 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=70: ixxxxx#7 nsp=-1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=70: ixxxxx#7 nsp=-1 mass=0 + 1.341640786499874e+01, -1.788854381999831e+01, // itest=70: ixxxxx#7 nsp=-1 mass=0 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=70: ixxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=70: ixxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=70: ixxxxx#7 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=71: ixxxxx#7 nsp=-1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=71: ixxxxx#7 nsp=-1 mass=0 + 1.341640786499874e+01, -1.788854381999831e+01, // itest=71: ixxxxx#7 nsp=-1 mass=0 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=71: ixxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=71: ixxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=71: ixxxxx#7 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=72: ixzxxx#7 nsp=-1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=72: ixzxxx#7 nsp=-1 mass=0 + 1.341640786499874e+01, -1.788854381999832e+01, // itest=72: ixzxxx#7 nsp=-1 mass=0 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=72: ixzxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=72: ixzxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=72: ixzxxx#7 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=73: vxxxxx#7 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=73: vxxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=73: vxxxxx#7 nsp=-1 mass=0 + -0.000000000000000e+00, 5.656854249492381e-01, // itest=73: vxxxxx#7 nsp=-1 mass=0 + -0.000000000000000e+00, -4.242640687119285e-01, // itest=73: vxxxxx#7 nsp=-1 mass=0 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=73: vxxxxx#7 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=74: vxxxxx#7 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=74: vxxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=74: vxxxxx#7 nsp=-1 mass=0 + -0.000000000000000e+00, 5.656854249492381e-01, // itest=74: vxxxxx#7 nsp=-1 mass=0 + -0.000000000000000e+00, -4.242640687119285e-01, // itest=74: vxxxxx#7 nsp=-1 mass=0 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=74: vxxxxx#7 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=75: sxxxxx#7 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=75: sxxxxx#7 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=75: sxxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=75: sxxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=75: sxxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=75: sxxxxx#7 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=76: sxxxxx#7 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=76: sxxxxx#7 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=76: sxxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=76: sxxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=76: sxxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=76: sxxxxx#7 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=77: oxxxxx#7 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=77: oxxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=77: oxxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=77: oxxxxx#7 nsp=-1 mass=0 + 1.341640786499874e+01, 1.788854381999831e+01, // itest=77: oxxxxx#7 nsp=-1 mass=0 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=77: oxxxxx#7 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=78: oxxxxx#7 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=78: oxxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=78: oxxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=78: oxxxxx#7 nsp=-1 mass=0 + 1.341640786499874e+01, 1.788854381999831e+01, // itest=78: oxxxxx#7 nsp=-1 mass=0 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=78: oxxxxx#7 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=79: oxzxxx#7 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=79: oxzxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=79: oxzxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=79: oxzxxx#7 nsp=-1 mass=0 + 1.341640786499874e+01, 1.788854381999832e+01, // itest=79: oxzxxx#7 nsp=-1 mass=0 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=79: oxzxxx#7 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=80: ixxxxx#8 nsp=-1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=80: ixxxxx#8 nsp=-1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=80: ixxxxx#8 nsp=-1 mass=0 + -3.000000000000000e+01, 0.000000000000000e+00, // itest=80: ixxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=80: ixxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=80: ixxxxx#8 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=81: ixxxxx#8 nsp=-1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=81: ixxxxx#8 nsp=-1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=81: ixxxxx#8 nsp=-1 mass=0 + -3.000000000000000e+01, 0.000000000000000e+00, // itest=81: ixxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=81: ixxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=81: ixxxxx#8 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=82: ixzxxx#8 nsp=-1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=82: ixzxxx#8 nsp=-1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=82: ixzxxx#8 nsp=-1 mass=0 + -3.000000000000000e+01, 0.000000000000000e+00, // itest=82: ixzxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=82: ixzxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=82: ixzxxx#8 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=83: vxxxxx#8 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=83: vxxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=83: vxxxxx#8 nsp=-1 mass=0 + -3.394112549695428e-01, 5.656854249492381e-01, // itest=83: vxxxxx#8 nsp=-1 mass=0 + -4.525483399593904e-01, -4.242640687119285e-01, // itest=83: vxxxxx#8 nsp=-1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=83: vxxxxx#8 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=84: vxxxxx#8 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=84: vxxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=84: vxxxxx#8 nsp=-1 mass=0 + -3.394112549695428e-01, 5.656854249492381e-01, // itest=84: vxxxxx#8 nsp=-1 mass=0 + -4.525483399593904e-01, -4.242640687119285e-01, // itest=84: vxxxxx#8 nsp=-1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=84: vxxxxx#8 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=85: sxxxxx#8 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=85: sxxxxx#8 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=85: sxxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=85: sxxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=85: sxxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=85: sxxxxx#8 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=86: sxxxxx#8 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=86: sxxxxx#8 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=86: sxxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=86: sxxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=86: sxxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=86: sxxxxx#8 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=87: oxxxxx#8 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=87: oxxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=87: oxxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=87: oxxxxx#8 nsp=-1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00, // itest=87: oxxxxx#8 nsp=-1 mass=0 + -3.000000000000000e+01, 0.000000000000000e+00 } ); // itest=87: oxxxxx#8 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=88: oxxxxx#8 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=88: oxxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=88: oxxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=88: oxxxxx#8 nsp=-1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00, // itest=88: oxxxxx#8 nsp=-1 mass=0 + -3.000000000000000e+01, 0.000000000000000e+00 } ); // itest=88: oxxxxx#8 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=89: oxzxxx#8 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=89: oxzxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=89: oxzxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=89: oxzxxx#8 nsp=-1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00, // itest=89: oxzxxx#8 nsp=-1 mass=0 + -3.000000000000000e+01, 0.000000000000000e+00 } ); // itest=89: oxzxxx#8 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=90: ixxxxx#9 nsp=-1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=90: ixxxxx#9 nsp=-1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=90: ixxxxx#9 nsp=-1 mass=0 + -1.000000000000000e+01, 0.000000000000000e+00, // itest=90: ixxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=90: ixxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=90: ixxxxx#9 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=91: ixxxxx#9 nsp=-1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=91: ixxxxx#9 nsp=-1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=91: ixxxxx#9 nsp=-1 mass=0 + -1.000000000000000e+01, 0.000000000000000e+00, // itest=91: ixxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=91: ixxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=91: ixxxxx#9 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=92: ixzxxx#9 nsp=-1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=92: ixzxxx#9 nsp=-1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=92: ixzxxx#9 nsp=-1 mass=0 + -1.000000000000000e+01, 0.000000000000000e+00, // itest=92: ixzxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=92: ixzxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=92: ixzxxx#9 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=93: vxxxxx#9 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=93: vxxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=93: vxxxxx#9 nsp=-1 mass=0 + 3.394112549695428e-01, 5.656854249492381e-01, // itest=93: vxxxxx#9 nsp=-1 mass=0 + 4.525483399593904e-01, -4.242640687119285e-01, // itest=93: vxxxxx#9 nsp=-1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=93: vxxxxx#9 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=94: vxxxxx#9 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=94: vxxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=94: vxxxxx#9 nsp=-1 mass=0 + 3.394112549695428e-01, 5.656854249492381e-01, // itest=94: vxxxxx#9 nsp=-1 mass=0 + 4.525483399593904e-01, -4.242640687119285e-01, // itest=94: vxxxxx#9 nsp=-1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=94: vxxxxx#9 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=95: sxxxxx#9 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=95: sxxxxx#9 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=95: sxxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=95: sxxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=95: sxxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=95: sxxxxx#9 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=96: sxxxxx#9 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=96: sxxxxx#9 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=96: sxxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=96: sxxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=96: sxxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=96: sxxxxx#9 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=97: oxxxxx#9 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=97: oxxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=97: oxxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=97: oxxxxx#9 nsp=-1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01, // itest=97: oxxxxx#9 nsp=-1 mass=0 + -1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=97: oxxxxx#9 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=98: oxxxxx#9 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=98: oxxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=98: oxxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=98: oxxxxx#9 nsp=-1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01, // itest=98: oxxxxx#9 nsp=-1 mass=0 + -1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=98: oxxxxx#9 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=99: oxzxxx#9 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=99: oxzxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=99: oxzxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=99: oxzxxx#9 nsp=-1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01, // itest=99: oxzxxx#9 nsp=-1 mass=0 + -1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=99: oxzxxx#9 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=100: ixxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=100: ixxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=100: ixxxxx#10 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=100: ixxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=100: ixxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=100: ixxxxx#10 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=101: ixxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=101: ixxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=101: ixxxxx#10 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=101: ixxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=101: ixxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=101: ixxxxx#10 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=102: ipzxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=102: ipzxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=102: ipzxxx#10 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=102: ipzxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=102: ipzxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=102: ipzxxx#10 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=103: vxxxxx#10 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=103: vxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=103: vxxxxx#10 nsp=-1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=103: vxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=103: vxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=103: vxxxxx#10 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=104: vxxxxx#10 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=104: vxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=104: vxxxxx#10 nsp=-1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=104: vxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=104: vxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=104: vxxxxx#10 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=105: sxxxxx#10 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=105: sxxxxx#10 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=105: sxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=105: sxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=105: sxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=105: sxxxxx#10 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=106: sxxxxx#10 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=106: sxxxxx#10 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=106: sxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=106: sxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=106: sxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=106: sxxxxx#10 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=107: oxxxxx#10 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=107: oxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=107: oxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=107: oxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=107: oxxxxx#10 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=107: oxxxxx#10 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=108: oxxxxx#10 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=108: oxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=108: oxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=108: oxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=108: oxxxxx#10 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=108: oxxxxx#10 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=109: opzxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=109: opzxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=109: opzxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=109: opzxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=109: opzxxx#10 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=109: opzxxx#10 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=110: ixxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=110: ixxxxx#11 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=110: ixxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=110: ixxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=110: ixxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=110: ixxxxx#11 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=111: ixxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=111: ixxxxx#11 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=111: ixxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=111: ixxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=111: ixxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=111: ixxxxx#11 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=112: imzxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=112: imzxxx#11 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=112: imzxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=112: imzxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=112: imzxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=112: imzxxx#11 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=113: vxxxxx#11 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=113: vxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=113: vxxxxx#11 nsp=-1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=113: vxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=113: vxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=113: vxxxxx#11 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=114: vxxxxx#11 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=114: vxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=114: vxxxxx#11 nsp=-1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=114: vxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=114: vxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=114: vxxxxx#11 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=115: sxxxxx#11 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=115: sxxxxx#11 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=115: sxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=115: sxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=115: sxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=115: sxxxxx#11 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=116: sxxxxx#11 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=116: sxxxxx#11 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=116: sxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=116: sxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=116: sxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=116: sxxxxx#11 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=117: oxxxxx#11 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=117: oxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=117: oxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=117: oxxxxx#11 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=117: oxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=117: oxxxxx#11 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=118: oxxxxx#11 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=118: oxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=118: oxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=118: oxxxxx#11 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=118: oxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=118: oxxxxx#11 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=119: omzxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=119: omzxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=119: omzxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=119: omzxxx#11 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=119: omzxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=119: omzxxx#11 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=120: ixxxxx#12 nsp=-1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=120: ixxxxx#12 nsp=-1 mass=0 + 1.341640786499874e+01, -1.788854381999831e+01, // itest=120: ixxxxx#12 nsp=-1 mass=0 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=120: ixxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=120: ixxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=120: ixxxxx#12 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=121: ixxxxx#12 nsp=-1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=121: ixxxxx#12 nsp=-1 mass=0 + 1.341640786499874e+01, -1.788854381999831e+01, // itest=121: ixxxxx#12 nsp=-1 mass=0 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=121: ixxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=121: ixxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=121: ixxxxx#12 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=122: ixzxxx#12 nsp=-1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=122: ixzxxx#12 nsp=-1 mass=0 + 1.341640786499874e+01, -1.788854381999832e+01, // itest=122: ixzxxx#12 nsp=-1 mass=0 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=122: ixzxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=122: ixzxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=122: ixzxxx#12 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=123: vxxxxx#12 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=123: vxxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=123: vxxxxx#12 nsp=-1 mass=0 + -0.000000000000000e+00, 5.656854249492381e-01, // itest=123: vxxxxx#12 nsp=-1 mass=0 + -0.000000000000000e+00, -4.242640687119285e-01, // itest=123: vxxxxx#12 nsp=-1 mass=0 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=123: vxxxxx#12 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=124: vxxxxx#12 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=124: vxxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=124: vxxxxx#12 nsp=-1 mass=0 + -0.000000000000000e+00, 5.656854249492381e-01, // itest=124: vxxxxx#12 nsp=-1 mass=0 + -0.000000000000000e+00, -4.242640687119285e-01, // itest=124: vxxxxx#12 nsp=-1 mass=0 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=124: vxxxxx#12 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=125: sxxxxx#12 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=125: sxxxxx#12 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=125: sxxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=125: sxxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=125: sxxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=125: sxxxxx#12 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=126: sxxxxx#12 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=126: sxxxxx#12 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=126: sxxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=126: sxxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=126: sxxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=126: sxxxxx#12 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=127: oxxxxx#12 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=127: oxxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=127: oxxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=127: oxxxxx#12 nsp=-1 mass=0 + 1.341640786499874e+01, 1.788854381999831e+01, // itest=127: oxxxxx#12 nsp=-1 mass=0 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=127: oxxxxx#12 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=128: oxxxxx#12 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=128: oxxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=128: oxxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=128: oxxxxx#12 nsp=-1 mass=0 + 1.341640786499874e+01, 1.788854381999831e+01, // itest=128: oxxxxx#12 nsp=-1 mass=0 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=128: oxxxxx#12 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=129: oxzxxx#12 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=129: oxzxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=129: oxzxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=129: oxzxxx#12 nsp=-1 mass=0 + 1.341640786499874e+01, 1.788854381999832e+01, // itest=129: oxzxxx#12 nsp=-1 mass=0 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=129: oxzxxx#12 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=130: ixxxxx#13 nsp=-1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=130: ixxxxx#13 nsp=-1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=130: ixxxxx#13 nsp=-1 mass=0 + -3.000000000000000e+01, 0.000000000000000e+00, // itest=130: ixxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=130: ixxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=130: ixxxxx#13 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=131: ixxxxx#13 nsp=-1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=131: ixxxxx#13 nsp=-1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=131: ixxxxx#13 nsp=-1 mass=0 + -3.000000000000000e+01, 0.000000000000000e+00, // itest=131: ixxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=131: ixxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=131: ixxxxx#13 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=132: ixzxxx#13 nsp=-1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=132: ixzxxx#13 nsp=-1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=132: ixzxxx#13 nsp=-1 mass=0 + -3.000000000000000e+01, 0.000000000000000e+00, // itest=132: ixzxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=132: ixzxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=132: ixzxxx#13 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=133: vxxxxx#13 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=133: vxxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=133: vxxxxx#13 nsp=-1 mass=0 + -3.394112549695428e-01, 5.656854249492381e-01, // itest=133: vxxxxx#13 nsp=-1 mass=0 + -4.525483399593904e-01, -4.242640687119285e-01, // itest=133: vxxxxx#13 nsp=-1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=133: vxxxxx#13 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=134: vxxxxx#13 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=134: vxxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=134: vxxxxx#13 nsp=-1 mass=0 + -3.394112549695428e-01, 5.656854249492381e-01, // itest=134: vxxxxx#13 nsp=-1 mass=0 + -4.525483399593904e-01, -4.242640687119285e-01, // itest=134: vxxxxx#13 nsp=-1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=134: vxxxxx#13 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=135: sxxxxx#13 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=135: sxxxxx#13 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=135: sxxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=135: sxxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=135: sxxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=135: sxxxxx#13 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=136: sxxxxx#13 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=136: sxxxxx#13 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=136: sxxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=136: sxxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=136: sxxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=136: sxxxxx#13 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=137: oxxxxx#13 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=137: oxxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=137: oxxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=137: oxxxxx#13 nsp=-1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00, // itest=137: oxxxxx#13 nsp=-1 mass=0 + -3.000000000000000e+01, 0.000000000000000e+00 } ); // itest=137: oxxxxx#13 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=138: oxxxxx#13 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=138: oxxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=138: oxxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=138: oxxxxx#13 nsp=-1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00, // itest=138: oxxxxx#13 nsp=-1 mass=0 + -3.000000000000000e+01, 0.000000000000000e+00 } ); // itest=138: oxxxxx#13 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=139: oxzxxx#13 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=139: oxzxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=139: oxzxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=139: oxzxxx#13 nsp=-1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00, // itest=139: oxzxxx#13 nsp=-1 mass=0 + -3.000000000000000e+01, 0.000000000000000e+00 } ); // itest=139: oxzxxx#13 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=140: ixxxxx#14 nsp=-1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=140: ixxxxx#14 nsp=-1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=140: ixxxxx#14 nsp=-1 mass=0 + -1.000000000000000e+01, 0.000000000000000e+00, // itest=140: ixxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=140: ixxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=140: ixxxxx#14 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=141: ixxxxx#14 nsp=-1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=141: ixxxxx#14 nsp=-1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=141: ixxxxx#14 nsp=-1 mass=0 + -1.000000000000000e+01, 0.000000000000000e+00, // itest=141: ixxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=141: ixxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=141: ixxxxx#14 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=142: ixzxxx#14 nsp=-1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=142: ixzxxx#14 nsp=-1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=142: ixzxxx#14 nsp=-1 mass=0 + -1.000000000000000e+01, 0.000000000000000e+00, // itest=142: ixzxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=142: ixzxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=142: ixzxxx#14 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=143: vxxxxx#14 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=143: vxxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=143: vxxxxx#14 nsp=-1 mass=0 + 3.394112549695428e-01, 5.656854249492381e-01, // itest=143: vxxxxx#14 nsp=-1 mass=0 + 4.525483399593904e-01, -4.242640687119285e-01, // itest=143: vxxxxx#14 nsp=-1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=143: vxxxxx#14 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=144: vxxxxx#14 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=144: vxxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=144: vxxxxx#14 nsp=-1 mass=0 + 3.394112549695428e-01, 5.656854249492381e-01, // itest=144: vxxxxx#14 nsp=-1 mass=0 + 4.525483399593904e-01, -4.242640687119285e-01, // itest=144: vxxxxx#14 nsp=-1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=144: vxxxxx#14 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=145: sxxxxx#14 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=145: sxxxxx#14 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=145: sxxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=145: sxxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=145: sxxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=145: sxxxxx#14 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=146: sxxxxx#14 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=146: sxxxxx#14 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=146: sxxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=146: sxxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=146: sxxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=146: sxxxxx#14 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=147: oxxxxx#14 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=147: oxxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=147: oxxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=147: oxxxxx#14 nsp=-1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01, // itest=147: oxxxxx#14 nsp=-1 mass=0 + -1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=147: oxxxxx#14 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=148: oxxxxx#14 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=148: oxxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=148: oxxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=148: oxxxxx#14 nsp=-1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01, // itest=148: oxxxxx#14 nsp=-1 mass=0 + -1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=148: oxxxxx#14 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=149: oxzxxx#14 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=149: oxzxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=149: oxzxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=149: oxzxxx#14 nsp=-1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01, // itest=149: oxzxxx#14 nsp=-1 mass=0 + -1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=149: oxzxxx#14 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=150: ixxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=150: ixxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=150: ixxxxx#15 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=150: ixxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=150: ixxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=150: ixxxxx#15 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=151: ixxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=151: ixxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=151: ixxxxx#15 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=151: ixxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=151: ixxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=151: ixxxxx#15 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=152: ipzxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=152: ipzxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=152: ipzxxx#15 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=152: ipzxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=152: ipzxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=152: ipzxxx#15 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=153: vxxxxx#15 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=153: vxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=153: vxxxxx#15 nsp=-1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=153: vxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=153: vxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=153: vxxxxx#15 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=154: vxxxxx#15 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=154: vxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=154: vxxxxx#15 nsp=-1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=154: vxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=154: vxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=154: vxxxxx#15 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=155: sxxxxx#15 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=155: sxxxxx#15 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=155: sxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=155: sxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=155: sxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=155: sxxxxx#15 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=156: sxxxxx#15 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=156: sxxxxx#15 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=156: sxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=156: sxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=156: sxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=156: sxxxxx#15 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=157: oxxxxx#15 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=157: oxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=157: oxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=157: oxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=157: oxxxxx#15 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=157: oxxxxx#15 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=158: oxxxxx#15 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=158: oxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=158: oxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=158: oxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=158: oxxxxx#15 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=158: oxxxxx#15 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=159: opzxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=159: opzxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=159: opzxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=159: opzxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=159: opzxxx#15 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=159: opzxxx#15 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=160: ixxxxx#16 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=160: ixxxxx#16 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=160: ixxxxx#16 nsp=-1 mass=500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=160: ixxxxx#16 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=160: ixxxxx#16 nsp=-1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=160: ixxxxx#16 nsp=-1 mass=500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=161: ixxxxx#16 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=161: ixxxxx#16 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=161: ixxxxx#16 nsp=-1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=161: ixxxxx#16 nsp=-1 mass=-500 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=161: ixxxxx#16 nsp=-1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=161: ixxxxx#16 nsp=-1 mass=-500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=162: vxxxxx#16 nsp=-1 mass=500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=162: vxxxxx#16 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=162: vxxxxx#16 nsp=-1 mass=500 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=162: vxxxxx#16 nsp=-1 mass=500 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=162: vxxxxx#16 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=162: vxxxxx#16 nsp=-1 mass=500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=163: vxxxxx#16 nsp=-1 mass=-500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=163: vxxxxx#16 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=163: vxxxxx#16 nsp=-1 mass=-500 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=163: vxxxxx#16 nsp=-1 mass=-500 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=163: vxxxxx#16 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=163: vxxxxx#16 nsp=-1 mass=-500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=164: sxxxxx#16 nsp=-1 mass=500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=164: sxxxxx#16 nsp=-1 mass=500 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=164: sxxxxx#16 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=164: sxxxxx#16 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=164: sxxxxx#16 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=164: sxxxxx#16 nsp=-1 mass=500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=165: sxxxxx#16 nsp=-1 mass=-500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=165: sxxxxx#16 nsp=-1 mass=-500 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=165: sxxxxx#16 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=165: sxxxxx#16 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=165: sxxxxx#16 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=165: sxxxxx#16 nsp=-1 mass=-500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=166: oxxxxx#16 nsp=-1 mass=500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=166: oxxxxx#16 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=166: oxxxxx#16 nsp=-1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=166: oxxxxx#16 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=166: oxxxxx#16 nsp=-1 mass=500 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=166: oxxxxx#16 nsp=-1 mass=500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=167: oxxxxx#16 nsp=-1 mass=-500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=167: oxxxxx#16 nsp=-1 mass=-500 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=167: oxxxxx#16 nsp=-1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=167: oxxxxx#16 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=167: oxxxxx#16 nsp=-1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=167: oxxxxx#16 nsp=-1 mass=-500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=168: ixxxxx#17 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=168: ixxxxx#17 nsp=-1 mass=400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=168: ixxxxx#17 nsp=-1 mass=400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=168: ixxxxx#17 nsp=-1 mass=400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=168: ixxxxx#17 nsp=-1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00 } ); // itest=168: ixxxxx#17 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=169: ixxxxx#17 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=169: ixxxxx#17 nsp=-1 mass=-400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=169: ixxxxx#17 nsp=-1 mass=-400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=169: ixxxxx#17 nsp=-1 mass=-400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=169: ixxxxx#17 nsp=-1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00 } ); // itest=169: ixxxxx#17 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=170: vxxxxx#17 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=170: vxxxxx#17 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=170: vxxxxx#17 nsp=-1 mass=400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=170: vxxxxx#17 nsp=-1 mass=400 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=170: vxxxxx#17 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=170: vxxxxx#17 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=171: vxxxxx#17 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=171: vxxxxx#17 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=171: vxxxxx#17 nsp=-1 mass=-400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=171: vxxxxx#17 nsp=-1 mass=-400 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=171: vxxxxx#17 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=171: vxxxxx#17 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=172: sxxxxx#17 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=172: sxxxxx#17 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=172: sxxxxx#17 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=172: sxxxxx#17 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=172: sxxxxx#17 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=172: sxxxxx#17 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=173: sxxxxx#17 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=173: sxxxxx#17 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=173: sxxxxx#17 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=173: sxxxxx#17 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=173: sxxxxx#17 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=173: sxxxxx#17 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=174: oxxxxx#17 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=174: oxxxxx#17 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=174: oxxxxx#17 nsp=-1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=174: oxxxxx#17 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=174: oxxxxx#17 nsp=-1 mass=400 + -2.828427124746190e+01, -0.000000000000000e+00 } ); // itest=174: oxxxxx#17 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=175: oxxxxx#17 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=175: oxxxxx#17 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=175: oxxxxx#17 nsp=-1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=175: oxxxxx#17 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=175: oxxxxx#17 nsp=-1 mass=-400 + -2.828427124746190e+01, -0.000000000000000e+00 } ); // itest=175: oxxxxx#17 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=176: ixxxxx#18 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=176: ixxxxx#18 nsp=-1 mass=400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=176: ixxxxx#18 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=176: ixxxxx#18 nsp=-1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=176: ixxxxx#18 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=176: ixxxxx#18 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=177: ixxxxx#18 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=177: ixxxxx#18 nsp=-1 mass=-400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=177: ixxxxx#18 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=177: ixxxxx#18 nsp=-1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=177: ixxxxx#18 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=177: ixxxxx#18 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=178: vxxxxx#18 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=178: vxxxxx#18 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=178: vxxxxx#18 nsp=-1 mass=400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=178: vxxxxx#18 nsp=-1 mass=400 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=178: vxxxxx#18 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=178: vxxxxx#18 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=179: vxxxxx#18 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=179: vxxxxx#18 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=179: vxxxxx#18 nsp=-1 mass=-400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=179: vxxxxx#18 nsp=-1 mass=-400 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=179: vxxxxx#18 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=179: vxxxxx#18 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=180: sxxxxx#18 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=180: sxxxxx#18 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=180: sxxxxx#18 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=180: sxxxxx#18 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=180: sxxxxx#18 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=180: sxxxxx#18 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=181: sxxxxx#18 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=181: sxxxxx#18 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=181: sxxxxx#18 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=181: sxxxxx#18 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=181: sxxxxx#18 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=181: sxxxxx#18 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=182: oxxxxx#18 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=182: oxxxxx#18 nsp=-1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=182: oxxxxx#18 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=182: oxxxxx#18 nsp=-1 mass=400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=182: oxxxxx#18 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=182: oxxxxx#18 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=183: oxxxxx#18 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=183: oxxxxx#18 nsp=-1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=183: oxxxxx#18 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=183: oxxxxx#18 nsp=-1 mass=-400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=183: oxxxxx#18 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=183: oxxxxx#18 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=184: ixxxxx#19 nsp=-1 mass=400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=184: ixxxxx#19 nsp=-1 mass=400 + 1.200000000000000e+01, -1.600000000000000e+01, // itest=184: ixxxxx#19 nsp=-1 mass=400 + -2.000000000000000e+01, -0.000000000000000e+00, // itest=184: ixxxxx#19 nsp=-1 mass=400 + -5.999999999999999e+00, 7.999999999999999e+00, // itest=184: ixxxxx#19 nsp=-1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=184: ixxxxx#19 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=185: ixxxxx#19 nsp=-1 mass=-400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=185: ixxxxx#19 nsp=-1 mass=-400 + 1.200000000000000e+01, -1.600000000000000e+01, // itest=185: ixxxxx#19 nsp=-1 mass=-400 + -2.000000000000000e+01, -0.000000000000000e+00, // itest=185: ixxxxx#19 nsp=-1 mass=-400 + 5.999999999999999e+00, -7.999999999999999e+00, // itest=185: ixxxxx#19 nsp=-1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00 } ); // itest=185: ixxxxx#19 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=186: vxxxxx#19 nsp=-1 mass=400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=186: vxxxxx#19 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=186: vxxxxx#19 nsp=-1 mass=400 + 0.000000000000000e+00, 5.656854249492381e-01, // itest=186: vxxxxx#19 nsp=-1 mass=400 + 0.000000000000000e+00, -4.242640687119285e-01, // itest=186: vxxxxx#19 nsp=-1 mass=400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=186: vxxxxx#19 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=187: vxxxxx#19 nsp=-1 mass=-400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=187: vxxxxx#19 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=187: vxxxxx#19 nsp=-1 mass=-400 + -0.000000000000000e+00, 5.656854249492381e-01, // itest=187: vxxxxx#19 nsp=-1 mass=-400 + -0.000000000000000e+00, -4.242640687119285e-01, // itest=187: vxxxxx#19 nsp=-1 mass=-400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=187: vxxxxx#19 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=188: sxxxxx#19 nsp=-1 mass=400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=188: sxxxxx#19 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=188: sxxxxx#19 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=188: sxxxxx#19 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=188: sxxxxx#19 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=188: sxxxxx#19 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=189: sxxxxx#19 nsp=-1 mass=-400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=189: sxxxxx#19 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=189: sxxxxx#19 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=189: sxxxxx#19 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=189: sxxxxx#19 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=189: sxxxxx#19 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=190: oxxxxx#19 nsp=-1 mass=400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=190: oxxxxx#19 nsp=-1 mass=400 + -5.999999999999999e+00, -7.999999999999999e+00, // itest=190: oxxxxx#19 nsp=-1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=190: oxxxxx#19 nsp=-1 mass=400 + 1.200000000000000e+01, 1.600000000000000e+01, // itest=190: oxxxxx#19 nsp=-1 mass=400 + -2.000000000000000e+01, -0.000000000000000e+00 } ); // itest=190: oxxxxx#19 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=191: oxxxxx#19 nsp=-1 mass=-400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=191: oxxxxx#19 nsp=-1 mass=-400 + 5.999999999999999e+00, 7.999999999999999e+00, // itest=191: oxxxxx#19 nsp=-1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00, // itest=191: oxxxxx#19 nsp=-1 mass=-400 + 1.200000000000000e+01, 1.600000000000000e+01, // itest=191: oxxxxx#19 nsp=-1 mass=-400 + -2.000000000000000e+01, -0.000000000000000e+00 } ); // itest=191: oxxxxx#19 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=192: ixxxxx#20 nsp=-1 mass=400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=192: ixxxxx#20 nsp=-1 mass=400 + -1.600000000000000e+01, 1.200000000000000e+01, // itest=192: ixxxxx#20 nsp=-1 mass=400 + -2.000000000000000e+01, -0.000000000000000e+00, // itest=192: ixxxxx#20 nsp=-1 mass=400 + 7.999999999999999e+00, -5.999999999999999e+00, // itest=192: ixxxxx#20 nsp=-1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=192: ixxxxx#20 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=193: ixxxxx#20 nsp=-1 mass=-400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=193: ixxxxx#20 nsp=-1 mass=-400 + -1.600000000000000e+01, 1.200000000000000e+01, // itest=193: ixxxxx#20 nsp=-1 mass=-400 + -2.000000000000000e+01, -0.000000000000000e+00, // itest=193: ixxxxx#20 nsp=-1 mass=-400 + -7.999999999999999e+00, 5.999999999999999e+00, // itest=193: ixxxxx#20 nsp=-1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00 } ); // itest=193: ixxxxx#20 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=194: vxxxxx#20 nsp=-1 mass=400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=194: vxxxxx#20 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=194: vxxxxx#20 nsp=-1 mass=400 + 0.000000000000000e+00, -4.242640687119285e-01, // itest=194: vxxxxx#20 nsp=-1 mass=400 + 0.000000000000000e+00, 5.656854249492381e-01, // itest=194: vxxxxx#20 nsp=-1 mass=400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=194: vxxxxx#20 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=195: vxxxxx#20 nsp=-1 mass=-400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=195: vxxxxx#20 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=195: vxxxxx#20 nsp=-1 mass=-400 + 0.000000000000000e+00, -4.242640687119285e-01, // itest=195: vxxxxx#20 nsp=-1 mass=-400 + 0.000000000000000e+00, 5.656854249492381e-01, // itest=195: vxxxxx#20 nsp=-1 mass=-400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=195: vxxxxx#20 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=196: sxxxxx#20 nsp=-1 mass=400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=196: sxxxxx#20 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=196: sxxxxx#20 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=196: sxxxxx#20 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=196: sxxxxx#20 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=196: sxxxxx#20 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=197: sxxxxx#20 nsp=-1 mass=-400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=197: sxxxxx#20 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=197: sxxxxx#20 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=197: sxxxxx#20 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=197: sxxxxx#20 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=197: sxxxxx#20 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=198: oxxxxx#20 nsp=-1 mass=400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=198: oxxxxx#20 nsp=-1 mass=400 + 7.999999999999999e+00, 5.999999999999999e+00, // itest=198: oxxxxx#20 nsp=-1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=198: oxxxxx#20 nsp=-1 mass=400 + -1.600000000000000e+01, -1.200000000000000e+01, // itest=198: oxxxxx#20 nsp=-1 mass=400 + -2.000000000000000e+01, -0.000000000000000e+00 } ); // itest=198: oxxxxx#20 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=199: oxxxxx#20 nsp=-1 mass=-400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=199: oxxxxx#20 nsp=-1 mass=-400 + -7.999999999999999e+00, -5.999999999999999e+00, // itest=199: oxxxxx#20 nsp=-1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00, // itest=199: oxxxxx#20 nsp=-1 mass=-400 + -1.600000000000000e+01, -1.200000000000000e+01, // itest=199: oxxxxx#20 nsp=-1 mass=-400 + -2.000000000000000e+01, -0.000000000000000e+00 } ); // itest=199: oxxxxx#20 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=200: ixxxxx#21 nsp=-1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=200: ixxxxx#21 nsp=-1 mass=400 + 9.863939238321439e+00, -1.052153518754287e+01, // itest=200: ixxxxx#21 nsp=-1 mass=400 + -2.433105012119288e+01, -0.000000000000000e+00, // itest=200: ixxxxx#21 nsp=-1 mass=400 + -4.931969619160719e+00, 5.260767593771432e+00, // itest=200: ixxxxx#21 nsp=-1 mass=400 + 1.216552506059644e+01, 0.000000000000000e+00 } ); // itest=200: ixxxxx#21 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=201: ixxxxx#21 nsp=-1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=201: ixxxxx#21 nsp=-1 mass=-400 + 9.863939238321439e+00, -1.052153518754287e+01, // itest=201: ixxxxx#21 nsp=-1 mass=-400 + -2.433105012119288e+01, -0.000000000000000e+00, // itest=201: ixxxxx#21 nsp=-1 mass=-400 + 4.931969619160719e+00, -5.260767593771432e+00, // itest=201: ixxxxx#21 nsp=-1 mass=-400 + -1.216552506059644e+01, -0.000000000000000e+00 } ); // itest=201: ixxxxx#21 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=202: vxxxxx#21 nsp=-1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=202: vxxxxx#21 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=202: vxxxxx#21 nsp=-1 mass=400 + -2.321373168788980e-01, 5.158607041753289e-01, // itest=202: vxxxxx#21 nsp=-1 mass=400 + -2.476131380041579e-01, -4.836194101643708e-01, // itest=202: vxxxxx#21 nsp=-1 mass=400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=202: vxxxxx#21 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=203: vxxxxx#21 nsp=-1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=203: vxxxxx#21 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=203: vxxxxx#21 nsp=-1 mass=-400 + -2.321373168788980e-01, 5.158607041753289e-01, // itest=203: vxxxxx#21 nsp=-1 mass=-400 + -2.476131380041579e-01, -4.836194101643708e-01, // itest=203: vxxxxx#21 nsp=-1 mass=-400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=203: vxxxxx#21 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=204: sxxxxx#21 nsp=-1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=204: sxxxxx#21 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=204: sxxxxx#21 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=204: sxxxxx#21 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=204: sxxxxx#21 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=204: sxxxxx#21 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=205: sxxxxx#21 nsp=-1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=205: sxxxxx#21 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=205: sxxxxx#21 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=205: sxxxxx#21 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=205: sxxxxx#21 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=205: sxxxxx#21 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=206: oxxxxx#21 nsp=-1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=206: oxxxxx#21 nsp=-1 mass=400 + -4.931969619160719e+00, -5.260767593771432e+00, // itest=206: oxxxxx#21 nsp=-1 mass=400 + 1.216552506059644e+01, 0.000000000000000e+00, // itest=206: oxxxxx#21 nsp=-1 mass=400 + 9.863939238321439e+00, 1.052153518754287e+01, // itest=206: oxxxxx#21 nsp=-1 mass=400 + -2.433105012119288e+01, -0.000000000000000e+00 } ); // itest=206: oxxxxx#21 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=207: oxxxxx#21 nsp=-1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=207: oxxxxx#21 nsp=-1 mass=-400 + 4.931969619160719e+00, 5.260767593771432e+00, // itest=207: oxxxxx#21 nsp=-1 mass=-400 + -1.216552506059644e+01, -0.000000000000000e+00, // itest=207: oxxxxx#21 nsp=-1 mass=-400 + 9.863939238321439e+00, 1.052153518754287e+01, // itest=207: oxxxxx#21 nsp=-1 mass=-400 + -2.433105012119288e+01, -0.000000000000000e+00 } ); // itest=207: oxxxxx#21 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=208: ixxxxx#22 nsp=-1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=208: ixxxxx#22 nsp=-1 mass=400 + 1.664100588675688e+01, -1.775040627920733e+01, // itest=208: ixxxxx#22 nsp=-1 mass=400 + -1.442220510185596e+01, -0.000000000000000e+00, // itest=208: ixxxxx#22 nsp=-1 mass=400 + -8.320502943378436e+00, 8.875203139603666e+00, // itest=208: ixxxxx#22 nsp=-1 mass=400 + 7.211102550927978e+00, 0.000000000000000e+00 } ); // itest=208: ixxxxx#22 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=209: ixxxxx#22 nsp=-1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=209: ixxxxx#22 nsp=-1 mass=-400 + 1.664100588675688e+01, -1.775040627920733e+01, // itest=209: ixxxxx#22 nsp=-1 mass=-400 + -1.442220510185596e+01, -0.000000000000000e+00, // itest=209: ixxxxx#22 nsp=-1 mass=-400 + 8.320502943378436e+00, -8.875203139603666e+00, // itest=209: ixxxxx#22 nsp=-1 mass=-400 + -7.211102550927978e+00, -0.000000000000000e+00 } ); // itest=209: ixxxxx#22 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=210: vxxxxx#22 nsp=-1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=210: vxxxxx#22 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=210: vxxxxx#22 nsp=-1 mass=400 + 2.321373168788980e-01, 5.158607041753289e-01, // itest=210: vxxxxx#22 nsp=-1 mass=400 + 2.476131380041579e-01, -4.836194101643708e-01, // itest=210: vxxxxx#22 nsp=-1 mass=400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=210: vxxxxx#22 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=211: vxxxxx#22 nsp=-1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=211: vxxxxx#22 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=211: vxxxxx#22 nsp=-1 mass=-400 + 2.321373168788980e-01, 5.158607041753289e-01, // itest=211: vxxxxx#22 nsp=-1 mass=-400 + 2.476131380041579e-01, -4.836194101643708e-01, // itest=211: vxxxxx#22 nsp=-1 mass=-400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=211: vxxxxx#22 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=212: sxxxxx#22 nsp=-1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=212: sxxxxx#22 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=212: sxxxxx#22 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=212: sxxxxx#22 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=212: sxxxxx#22 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=212: sxxxxx#22 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=213: sxxxxx#22 nsp=-1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=213: sxxxxx#22 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=213: sxxxxx#22 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=213: sxxxxx#22 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=213: sxxxxx#22 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=213: sxxxxx#22 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=214: oxxxxx#22 nsp=-1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=214: oxxxxx#22 nsp=-1 mass=400 + -8.320502943378436e+00, -8.875203139603666e+00, // itest=214: oxxxxx#22 nsp=-1 mass=400 + 7.211102550927978e+00, 0.000000000000000e+00, // itest=214: oxxxxx#22 nsp=-1 mass=400 + 1.664100588675688e+01, 1.775040627920733e+01, // itest=214: oxxxxx#22 nsp=-1 mass=400 + -1.442220510185596e+01, -0.000000000000000e+00 } ); // itest=214: oxxxxx#22 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=215: oxxxxx#22 nsp=-1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=215: oxxxxx#22 nsp=-1 mass=-400 + 8.320502943378436e+00, 8.875203139603666e+00, // itest=215: oxxxxx#22 nsp=-1 mass=-400 + -7.211102550927978e+00, -0.000000000000000e+00, // itest=215: oxxxxx#22 nsp=-1 mass=-400 + 1.664100588675688e+01, 1.775040627920733e+01, // itest=215: oxxxxx#22 nsp=-1 mass=-400 + -1.442220510185596e+01, -0.000000000000000e+00 } ); // itest=215: oxxxxx#22 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=216: ixxxxx#23 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=216: ixxxxx#23 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=216: ixxxxx#23 nsp=-1 mass=500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=216: ixxxxx#23 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=216: ixxxxx#23 nsp=-1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=216: ixxxxx#23 nsp=-1 mass=500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=217: ixxxxx#23 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=217: ixxxxx#23 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=217: ixxxxx#23 nsp=-1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=217: ixxxxx#23 nsp=-1 mass=-500 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=217: ixxxxx#23 nsp=-1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=217: ixxxxx#23 nsp=-1 mass=-500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=218: vxxxxx#23 nsp=-1 mass=500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=218: vxxxxx#23 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=218: vxxxxx#23 nsp=-1 mass=500 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=218: vxxxxx#23 nsp=-1 mass=500 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=218: vxxxxx#23 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=218: vxxxxx#23 nsp=-1 mass=500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=219: vxxxxx#23 nsp=-1 mass=-500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=219: vxxxxx#23 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=219: vxxxxx#23 nsp=-1 mass=-500 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=219: vxxxxx#23 nsp=-1 mass=-500 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=219: vxxxxx#23 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=219: vxxxxx#23 nsp=-1 mass=-500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=220: sxxxxx#23 nsp=-1 mass=500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=220: sxxxxx#23 nsp=-1 mass=500 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=220: sxxxxx#23 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=220: sxxxxx#23 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=220: sxxxxx#23 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=220: sxxxxx#23 nsp=-1 mass=500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=221: sxxxxx#23 nsp=-1 mass=-500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=221: sxxxxx#23 nsp=-1 mass=-500 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=221: sxxxxx#23 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=221: sxxxxx#23 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=221: sxxxxx#23 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=221: sxxxxx#23 nsp=-1 mass=-500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=222: oxxxxx#23 nsp=-1 mass=500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=222: oxxxxx#23 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=222: oxxxxx#23 nsp=-1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=222: oxxxxx#23 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=222: oxxxxx#23 nsp=-1 mass=500 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=222: oxxxxx#23 nsp=-1 mass=500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=223: oxxxxx#23 nsp=-1 mass=-500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=223: oxxxxx#23 nsp=-1 mass=-500 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=223: oxxxxx#23 nsp=-1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=223: oxxxxx#23 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=223: oxxxxx#23 nsp=-1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=223: oxxxxx#23 nsp=-1 mass=-500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=224: ixxxxx#24 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=224: ixxxxx#24 nsp=-1 mass=400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=224: ixxxxx#24 nsp=-1 mass=400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=224: ixxxxx#24 nsp=-1 mass=400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=224: ixxxxx#24 nsp=-1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00 } ); // itest=224: ixxxxx#24 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=225: ixxxxx#24 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=225: ixxxxx#24 nsp=-1 mass=-400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=225: ixxxxx#24 nsp=-1 mass=-400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=225: ixxxxx#24 nsp=-1 mass=-400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=225: ixxxxx#24 nsp=-1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00 } ); // itest=225: ixxxxx#24 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=226: vxxxxx#24 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=226: vxxxxx#24 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=226: vxxxxx#24 nsp=-1 mass=400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=226: vxxxxx#24 nsp=-1 mass=400 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=226: vxxxxx#24 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=226: vxxxxx#24 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=227: vxxxxx#24 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=227: vxxxxx#24 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=227: vxxxxx#24 nsp=-1 mass=-400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=227: vxxxxx#24 nsp=-1 mass=-400 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=227: vxxxxx#24 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=227: vxxxxx#24 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=228: sxxxxx#24 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=228: sxxxxx#24 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=228: sxxxxx#24 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=228: sxxxxx#24 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=228: sxxxxx#24 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=228: sxxxxx#24 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=229: sxxxxx#24 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=229: sxxxxx#24 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=229: sxxxxx#24 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=229: sxxxxx#24 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=229: sxxxxx#24 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=229: sxxxxx#24 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=230: oxxxxx#24 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=230: oxxxxx#24 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=230: oxxxxx#24 nsp=-1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=230: oxxxxx#24 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=230: oxxxxx#24 nsp=-1 mass=400 + -2.828427124746190e+01, -0.000000000000000e+00 } ); // itest=230: oxxxxx#24 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=231: oxxxxx#24 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=231: oxxxxx#24 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=231: oxxxxx#24 nsp=-1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=231: oxxxxx#24 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=231: oxxxxx#24 nsp=-1 mass=-400 + -2.828427124746190e+01, -0.000000000000000e+00 } ); // itest=231: oxxxxx#24 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=232: ixxxxx#25 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=232: ixxxxx#25 nsp=-1 mass=400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=232: ixxxxx#25 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=232: ixxxxx#25 nsp=-1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=232: ixxxxx#25 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=232: ixxxxx#25 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=233: ixxxxx#25 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=233: ixxxxx#25 nsp=-1 mass=-400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=233: ixxxxx#25 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=233: ixxxxx#25 nsp=-1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=233: ixxxxx#25 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=233: ixxxxx#25 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=234: vxxxxx#25 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=234: vxxxxx#25 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=234: vxxxxx#25 nsp=-1 mass=400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=234: vxxxxx#25 nsp=-1 mass=400 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=234: vxxxxx#25 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=234: vxxxxx#25 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=235: vxxxxx#25 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=235: vxxxxx#25 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=235: vxxxxx#25 nsp=-1 mass=-400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=235: vxxxxx#25 nsp=-1 mass=-400 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=235: vxxxxx#25 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=235: vxxxxx#25 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=236: sxxxxx#25 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=236: sxxxxx#25 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=236: sxxxxx#25 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=236: sxxxxx#25 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=236: sxxxxx#25 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=236: sxxxxx#25 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=237: sxxxxx#25 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=237: sxxxxx#25 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=237: sxxxxx#25 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=237: sxxxxx#25 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=237: sxxxxx#25 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=237: sxxxxx#25 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=238: oxxxxx#25 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=238: oxxxxx#25 nsp=-1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=238: oxxxxx#25 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=238: oxxxxx#25 nsp=-1 mass=400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=238: oxxxxx#25 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=238: oxxxxx#25 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=239: oxxxxx#25 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=239: oxxxxx#25 nsp=-1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=239: oxxxxx#25 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=239: oxxxxx#25 nsp=-1 mass=-400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=239: oxxxxx#25 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=239: oxxxxx#25 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=240: ixxxxx#26 nsp=-1 mass=400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=240: ixxxxx#26 nsp=-1 mass=400 + 1.200000000000000e+01, -1.600000000000000e+01, // itest=240: ixxxxx#26 nsp=-1 mass=400 + -2.000000000000000e+01, -0.000000000000000e+00, // itest=240: ixxxxx#26 nsp=-1 mass=400 + -5.999999999999999e+00, 7.999999999999999e+00, // itest=240: ixxxxx#26 nsp=-1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=240: ixxxxx#26 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=241: ixxxxx#26 nsp=-1 mass=-400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=241: ixxxxx#26 nsp=-1 mass=-400 + 1.200000000000000e+01, -1.600000000000000e+01, // itest=241: ixxxxx#26 nsp=-1 mass=-400 + -2.000000000000000e+01, -0.000000000000000e+00, // itest=241: ixxxxx#26 nsp=-1 mass=-400 + 5.999999999999999e+00, -7.999999999999999e+00, // itest=241: ixxxxx#26 nsp=-1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00 } ); // itest=241: ixxxxx#26 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=242: vxxxxx#26 nsp=-1 mass=400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=242: vxxxxx#26 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=242: vxxxxx#26 nsp=-1 mass=400 + 0.000000000000000e+00, 5.656854249492381e-01, // itest=242: vxxxxx#26 nsp=-1 mass=400 + 0.000000000000000e+00, -4.242640687119285e-01, // itest=242: vxxxxx#26 nsp=-1 mass=400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=242: vxxxxx#26 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=243: vxxxxx#26 nsp=-1 mass=-400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=243: vxxxxx#26 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=243: vxxxxx#26 nsp=-1 mass=-400 + -0.000000000000000e+00, 5.656854249492381e-01, // itest=243: vxxxxx#26 nsp=-1 mass=-400 + -0.000000000000000e+00, -4.242640687119285e-01, // itest=243: vxxxxx#26 nsp=-1 mass=-400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=243: vxxxxx#26 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=244: sxxxxx#26 nsp=-1 mass=400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=244: sxxxxx#26 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=244: sxxxxx#26 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=244: sxxxxx#26 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=244: sxxxxx#26 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=244: sxxxxx#26 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=245: sxxxxx#26 nsp=-1 mass=-400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=245: sxxxxx#26 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=245: sxxxxx#26 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=245: sxxxxx#26 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=245: sxxxxx#26 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=245: sxxxxx#26 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=246: oxxxxx#26 nsp=-1 mass=400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=246: oxxxxx#26 nsp=-1 mass=400 + -5.999999999999999e+00, -7.999999999999999e+00, // itest=246: oxxxxx#26 nsp=-1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=246: oxxxxx#26 nsp=-1 mass=400 + 1.200000000000000e+01, 1.600000000000000e+01, // itest=246: oxxxxx#26 nsp=-1 mass=400 + -2.000000000000000e+01, -0.000000000000000e+00 } ); // itest=246: oxxxxx#26 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=247: oxxxxx#26 nsp=-1 mass=-400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=247: oxxxxx#26 nsp=-1 mass=-400 + 5.999999999999999e+00, 7.999999999999999e+00, // itest=247: oxxxxx#26 nsp=-1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00, // itest=247: oxxxxx#26 nsp=-1 mass=-400 + 1.200000000000000e+01, 1.600000000000000e+01, // itest=247: oxxxxx#26 nsp=-1 mass=-400 + -2.000000000000000e+01, -0.000000000000000e+00 } ); // itest=247: oxxxxx#26 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=248: ixxxxx#27 nsp=-1 mass=400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=248: ixxxxx#27 nsp=-1 mass=400 + -1.600000000000000e+01, 1.200000000000000e+01, // itest=248: ixxxxx#27 nsp=-1 mass=400 + -2.000000000000000e+01, -0.000000000000000e+00, // itest=248: ixxxxx#27 nsp=-1 mass=400 + 7.999999999999999e+00, -5.999999999999999e+00, // itest=248: ixxxxx#27 nsp=-1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=248: ixxxxx#27 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=249: ixxxxx#27 nsp=-1 mass=-400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=249: ixxxxx#27 nsp=-1 mass=-400 + -1.600000000000000e+01, 1.200000000000000e+01, // itest=249: ixxxxx#27 nsp=-1 mass=-400 + -2.000000000000000e+01, -0.000000000000000e+00, // itest=249: ixxxxx#27 nsp=-1 mass=-400 + -7.999999999999999e+00, 5.999999999999999e+00, // itest=249: ixxxxx#27 nsp=-1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00 } ); // itest=249: ixxxxx#27 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=250: vxxxxx#27 nsp=-1 mass=400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=250: vxxxxx#27 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=250: vxxxxx#27 nsp=-1 mass=400 + 0.000000000000000e+00, -4.242640687119285e-01, // itest=250: vxxxxx#27 nsp=-1 mass=400 + 0.000000000000000e+00, 5.656854249492381e-01, // itest=250: vxxxxx#27 nsp=-1 mass=400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=250: vxxxxx#27 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=251: vxxxxx#27 nsp=-1 mass=-400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=251: vxxxxx#27 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=251: vxxxxx#27 nsp=-1 mass=-400 + 0.000000000000000e+00, -4.242640687119285e-01, // itest=251: vxxxxx#27 nsp=-1 mass=-400 + 0.000000000000000e+00, 5.656854249492381e-01, // itest=251: vxxxxx#27 nsp=-1 mass=-400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=251: vxxxxx#27 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=252: sxxxxx#27 nsp=-1 mass=400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=252: sxxxxx#27 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=252: sxxxxx#27 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=252: sxxxxx#27 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=252: sxxxxx#27 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=252: sxxxxx#27 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=253: sxxxxx#27 nsp=-1 mass=-400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=253: sxxxxx#27 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=253: sxxxxx#27 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=253: sxxxxx#27 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=253: sxxxxx#27 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=253: sxxxxx#27 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=254: oxxxxx#27 nsp=-1 mass=400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=254: oxxxxx#27 nsp=-1 mass=400 + 7.999999999999999e+00, 5.999999999999999e+00, // itest=254: oxxxxx#27 nsp=-1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=254: oxxxxx#27 nsp=-1 mass=400 + -1.600000000000000e+01, -1.200000000000000e+01, // itest=254: oxxxxx#27 nsp=-1 mass=400 + -2.000000000000000e+01, -0.000000000000000e+00 } ); // itest=254: oxxxxx#27 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=255: oxxxxx#27 nsp=-1 mass=-400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=255: oxxxxx#27 nsp=-1 mass=-400 + -7.999999999999999e+00, -5.999999999999999e+00, // itest=255: oxxxxx#27 nsp=-1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00, // itest=255: oxxxxx#27 nsp=-1 mass=-400 + -1.600000000000000e+01, -1.200000000000000e+01, // itest=255: oxxxxx#27 nsp=-1 mass=-400 + -2.000000000000000e+01, -0.000000000000000e+00 } ); // itest=255: oxxxxx#27 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=256: ixxxxx#28 nsp=-1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=256: ixxxxx#28 nsp=-1 mass=400 + 9.863939238321439e+00, -1.052153518754287e+01, // itest=256: ixxxxx#28 nsp=-1 mass=400 + -2.433105012119288e+01, -0.000000000000000e+00, // itest=256: ixxxxx#28 nsp=-1 mass=400 + -4.931969619160719e+00, 5.260767593771432e+00, // itest=256: ixxxxx#28 nsp=-1 mass=400 + 1.216552506059644e+01, 0.000000000000000e+00 } ); // itest=256: ixxxxx#28 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=257: ixxxxx#28 nsp=-1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=257: ixxxxx#28 nsp=-1 mass=-400 + 9.863939238321439e+00, -1.052153518754287e+01, // itest=257: ixxxxx#28 nsp=-1 mass=-400 + -2.433105012119288e+01, -0.000000000000000e+00, // itest=257: ixxxxx#28 nsp=-1 mass=-400 + 4.931969619160719e+00, -5.260767593771432e+00, // itest=257: ixxxxx#28 nsp=-1 mass=-400 + -1.216552506059644e+01, -0.000000000000000e+00 } ); // itest=257: ixxxxx#28 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=258: vxxxxx#28 nsp=-1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=258: vxxxxx#28 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=258: vxxxxx#28 nsp=-1 mass=400 + -2.321373168788980e-01, 5.158607041753289e-01, // itest=258: vxxxxx#28 nsp=-1 mass=400 + -2.476131380041579e-01, -4.836194101643708e-01, // itest=258: vxxxxx#28 nsp=-1 mass=400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=258: vxxxxx#28 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=259: vxxxxx#28 nsp=-1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=259: vxxxxx#28 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=259: vxxxxx#28 nsp=-1 mass=-400 + -2.321373168788980e-01, 5.158607041753289e-01, // itest=259: vxxxxx#28 nsp=-1 mass=-400 + -2.476131380041579e-01, -4.836194101643708e-01, // itest=259: vxxxxx#28 nsp=-1 mass=-400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=259: vxxxxx#28 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=260: sxxxxx#28 nsp=-1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=260: sxxxxx#28 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=260: sxxxxx#28 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=260: sxxxxx#28 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=260: sxxxxx#28 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=260: sxxxxx#28 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=261: sxxxxx#28 nsp=-1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=261: sxxxxx#28 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=261: sxxxxx#28 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=261: sxxxxx#28 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=261: sxxxxx#28 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=261: sxxxxx#28 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=262: oxxxxx#28 nsp=-1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=262: oxxxxx#28 nsp=-1 mass=400 + -4.931969619160719e+00, -5.260767593771432e+00, // itest=262: oxxxxx#28 nsp=-1 mass=400 + 1.216552506059644e+01, 0.000000000000000e+00, // itest=262: oxxxxx#28 nsp=-1 mass=400 + 9.863939238321439e+00, 1.052153518754287e+01, // itest=262: oxxxxx#28 nsp=-1 mass=400 + -2.433105012119288e+01, -0.000000000000000e+00 } ); // itest=262: oxxxxx#28 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=263: oxxxxx#28 nsp=-1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=263: oxxxxx#28 nsp=-1 mass=-400 + 4.931969619160719e+00, 5.260767593771432e+00, // itest=263: oxxxxx#28 nsp=-1 mass=-400 + -1.216552506059644e+01, -0.000000000000000e+00, // itest=263: oxxxxx#28 nsp=-1 mass=-400 + 9.863939238321439e+00, 1.052153518754287e+01, // itest=263: oxxxxx#28 nsp=-1 mass=-400 + -2.433105012119288e+01, -0.000000000000000e+00 } ); // itest=263: oxxxxx#28 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=264: ixxxxx#29 nsp=-1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=264: ixxxxx#29 nsp=-1 mass=400 + 1.664100588675688e+01, -1.775040627920733e+01, // itest=264: ixxxxx#29 nsp=-1 mass=400 + -1.442220510185596e+01, -0.000000000000000e+00, // itest=264: ixxxxx#29 nsp=-1 mass=400 + -8.320502943378436e+00, 8.875203139603666e+00, // itest=264: ixxxxx#29 nsp=-1 mass=400 + 7.211102550927978e+00, 0.000000000000000e+00 } ); // itest=264: ixxxxx#29 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=265: ixxxxx#29 nsp=-1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=265: ixxxxx#29 nsp=-1 mass=-400 + 1.664100588675688e+01, -1.775040627920733e+01, // itest=265: ixxxxx#29 nsp=-1 mass=-400 + -1.442220510185596e+01, -0.000000000000000e+00, // itest=265: ixxxxx#29 nsp=-1 mass=-400 + 8.320502943378436e+00, -8.875203139603666e+00, // itest=265: ixxxxx#29 nsp=-1 mass=-400 + -7.211102550927978e+00, -0.000000000000000e+00 } ); // itest=265: ixxxxx#29 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=266: vxxxxx#29 nsp=-1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=266: vxxxxx#29 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=266: vxxxxx#29 nsp=-1 mass=400 + 2.321373168788980e-01, 5.158607041753289e-01, // itest=266: vxxxxx#29 nsp=-1 mass=400 + 2.476131380041579e-01, -4.836194101643708e-01, // itest=266: vxxxxx#29 nsp=-1 mass=400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=266: vxxxxx#29 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=267: vxxxxx#29 nsp=-1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=267: vxxxxx#29 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=267: vxxxxx#29 nsp=-1 mass=-400 + 2.321373168788980e-01, 5.158607041753289e-01, // itest=267: vxxxxx#29 nsp=-1 mass=-400 + 2.476131380041579e-01, -4.836194101643708e-01, // itest=267: vxxxxx#29 nsp=-1 mass=-400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=267: vxxxxx#29 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=268: sxxxxx#29 nsp=-1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=268: sxxxxx#29 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=268: sxxxxx#29 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=268: sxxxxx#29 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=268: sxxxxx#29 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=268: sxxxxx#29 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=269: sxxxxx#29 nsp=-1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=269: sxxxxx#29 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=269: sxxxxx#29 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=269: sxxxxx#29 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=269: sxxxxx#29 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=269: sxxxxx#29 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=270: oxxxxx#29 nsp=-1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=270: oxxxxx#29 nsp=-1 mass=400 + -8.320502943378436e+00, -8.875203139603666e+00, // itest=270: oxxxxx#29 nsp=-1 mass=400 + 7.211102550927978e+00, 0.000000000000000e+00, // itest=270: oxxxxx#29 nsp=-1 mass=400 + 1.664100588675688e+01, 1.775040627920733e+01, // itest=270: oxxxxx#29 nsp=-1 mass=400 + -1.442220510185596e+01, -0.000000000000000e+00 } ); // itest=270: oxxxxx#29 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=271: oxxxxx#29 nsp=-1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=271: oxxxxx#29 nsp=-1 mass=-400 + 8.320502943378436e+00, 8.875203139603666e+00, // itest=271: oxxxxx#29 nsp=-1 mass=-400 + -7.211102550927978e+00, -0.000000000000000e+00, // itest=271: oxxxxx#29 nsp=-1 mass=-400 + 1.664100588675688e+01, 1.775040627920733e+01, // itest=271: oxxxxx#29 nsp=-1 mass=-400 + -1.442220510185596e+01, -0.000000000000000e+00 } ); // itest=271: oxxxxx#29 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=272: ixxxxx#30 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=272: ixxxxx#30 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=272: ixxxxx#30 nsp=-1 mass=500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=272: ixxxxx#30 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=272: ixxxxx#30 nsp=-1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=272: ixxxxx#30 nsp=-1 mass=500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=273: ixxxxx#30 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=273: ixxxxx#30 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=273: ixxxxx#30 nsp=-1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=273: ixxxxx#30 nsp=-1 mass=-500 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=273: ixxxxx#30 nsp=-1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=273: ixxxxx#30 nsp=-1 mass=-500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=274: vxxxxx#30 nsp=-1 mass=500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=274: vxxxxx#30 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=274: vxxxxx#30 nsp=-1 mass=500 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=274: vxxxxx#30 nsp=-1 mass=500 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=274: vxxxxx#30 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=274: vxxxxx#30 nsp=-1 mass=500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=275: vxxxxx#30 nsp=-1 mass=-500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=275: vxxxxx#30 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=275: vxxxxx#30 nsp=-1 mass=-500 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=275: vxxxxx#30 nsp=-1 mass=-500 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=275: vxxxxx#30 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=275: vxxxxx#30 nsp=-1 mass=-500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=276: sxxxxx#30 nsp=-1 mass=500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=276: sxxxxx#30 nsp=-1 mass=500 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=276: sxxxxx#30 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=276: sxxxxx#30 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=276: sxxxxx#30 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=276: sxxxxx#30 nsp=-1 mass=500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=277: sxxxxx#30 nsp=-1 mass=-500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=277: sxxxxx#30 nsp=-1 mass=-500 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=277: sxxxxx#30 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=277: sxxxxx#30 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=277: sxxxxx#30 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=277: sxxxxx#30 nsp=-1 mass=-500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=278: oxxxxx#30 nsp=-1 mass=500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=278: oxxxxx#30 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=278: oxxxxx#30 nsp=-1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=278: oxxxxx#30 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=278: oxxxxx#30 nsp=-1 mass=500 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=278: oxxxxx#30 nsp=-1 mass=500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=279: oxxxxx#30 nsp=-1 mass=-500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=279: oxxxxx#30 nsp=-1 mass=-500 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=279: oxxxxx#30 nsp=-1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=279: oxxxxx#30 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=279: oxxxxx#30 nsp=-1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=279: oxxxxx#30 nsp=-1 mass=-500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=280: ixxxxx#31 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=280: ixxxxx#31 nsp=-1 mass=400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=280: ixxxxx#31 nsp=-1 mass=400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=280: ixxxxx#31 nsp=-1 mass=400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=280: ixxxxx#31 nsp=-1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00 } ); // itest=280: ixxxxx#31 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=281: ixxxxx#31 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=281: ixxxxx#31 nsp=-1 mass=-400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=281: ixxxxx#31 nsp=-1 mass=-400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=281: ixxxxx#31 nsp=-1 mass=-400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=281: ixxxxx#31 nsp=-1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00 } ); // itest=281: ixxxxx#31 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=282: vxxxxx#31 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=282: vxxxxx#31 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=282: vxxxxx#31 nsp=-1 mass=400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=282: vxxxxx#31 nsp=-1 mass=400 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=282: vxxxxx#31 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=282: vxxxxx#31 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=283: vxxxxx#31 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=283: vxxxxx#31 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=283: vxxxxx#31 nsp=-1 mass=-400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=283: vxxxxx#31 nsp=-1 mass=-400 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=283: vxxxxx#31 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=283: vxxxxx#31 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=284: sxxxxx#31 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=284: sxxxxx#31 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=284: sxxxxx#31 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=284: sxxxxx#31 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=284: sxxxxx#31 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=284: sxxxxx#31 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=285: sxxxxx#31 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=285: sxxxxx#31 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=285: sxxxxx#31 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=285: sxxxxx#31 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=285: sxxxxx#31 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=285: sxxxxx#31 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=286: oxxxxx#31 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=286: oxxxxx#31 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=286: oxxxxx#31 nsp=-1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=286: oxxxxx#31 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=286: oxxxxx#31 nsp=-1 mass=400 + -2.828427124746190e+01, -0.000000000000000e+00 } ); // itest=286: oxxxxx#31 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=287: oxxxxx#31 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=287: oxxxxx#31 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=287: oxxxxx#31 nsp=-1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=287: oxxxxx#31 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=287: oxxxxx#31 nsp=-1 mass=-400 + -2.828427124746190e+01, -0.000000000000000e+00 } ); // itest=287: oxxxxx#31 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=288: ixxxxx#0 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=288: ixxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=288: ixxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=288: ixxxxx#0 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=288: ixxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=288: ixxxxx#0 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=289: ixxxxx#0 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=289: ixxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=289: ixxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=289: ixxxxx#0 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=289: ixxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=289: ixxxxx#0 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=290: ipzxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=290: ipzxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=290: ipzxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=290: ipzxxx#0 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=290: ipzxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=290: ipzxxx#0 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=291: vxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=291: vxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=291: vxxxxx#0 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=291: vxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=291: vxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=291: vxxxxx#0 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=292: vxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=292: vxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=292: vxxxxx#0 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=292: vxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=292: vxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=292: vxxxxx#0 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=293: sxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=293: sxxxxx#0 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=293: sxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=293: sxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=293: sxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=293: sxxxxx#0 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=294: sxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=294: sxxxxx#0 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=294: sxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=294: sxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=294: sxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=294: sxxxxx#0 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=295: oxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=295: oxxxxx#0 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=295: oxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=295: oxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=295: oxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=295: oxxxxx#0 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=296: oxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=296: oxxxxx#0 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=296: oxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=296: oxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=296: oxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=296: oxxxxx#0 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=297: opzxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=297: opzxxx#0 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=297: opzxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=297: opzxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=297: opzxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=297: opzxxx#0 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=298: ixxxxx#1 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=298: ixxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=298: ixxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=298: ixxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=298: ixxxxx#1 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=298: ixxxxx#1 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=299: ixxxxx#1 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=299: ixxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=299: ixxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=299: ixxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=299: ixxxxx#1 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=299: ixxxxx#1 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=300: imzxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=300: imzxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=300: imzxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=300: imzxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=300: imzxxx#1 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=300: imzxxx#1 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=301: vxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=301: vxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=301: vxxxxx#1 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=301: vxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=301: vxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=301: vxxxxx#1 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=302: vxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=302: vxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=302: vxxxxx#1 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=302: vxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=302: vxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=302: vxxxxx#1 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=303: sxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=303: sxxxxx#1 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=303: sxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=303: sxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=303: sxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=303: sxxxxx#1 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=304: sxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=304: sxxxxx#1 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=304: sxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=304: sxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=304: sxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=304: sxxxxx#1 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=305: oxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=305: oxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=305: oxxxxx#1 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=305: oxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=305: oxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=305: oxxxxx#1 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=306: oxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=306: oxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=306: oxxxxx#1 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=306: oxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=306: oxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=306: oxxxxx#1 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=307: omzxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=307: omzxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=307: omzxxx#1 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=307: omzxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=307: omzxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=307: omzxxx#1 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=308: ixxxxx#2 nsp=1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=308: ixxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=308: ixxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=308: ixxxxx#2 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=308: ixxxxx#2 nsp=1 mass=0 + 1.341640786499874e+01, 1.788854381999831e+01 } ); // itest=308: ixxxxx#2 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=309: ixxxxx#2 nsp=1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=309: ixxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=309: ixxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=309: ixxxxx#2 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=309: ixxxxx#2 nsp=1 mass=0 + 1.341640786499874e+01, 1.788854381999831e+01 } ); // itest=309: ixxxxx#2 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=310: ixzxxx#2 nsp=1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=310: ixzxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=310: ixzxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=310: ixzxxx#2 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=310: ixzxxx#2 nsp=1 mass=0 + 1.341640786499874e+01, 1.788854381999832e+01 } ); // itest=310: ixzxxx#2 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=311: vxxxxx#2 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=311: vxxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=311: vxxxxx#2 nsp=1 mass=0 + -0.000000000000000e+00, -5.656854249492381e-01, // itest=311: vxxxxx#2 nsp=1 mass=0 + -0.000000000000000e+00, 4.242640687119285e-01, // itest=311: vxxxxx#2 nsp=1 mass=0 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=311: vxxxxx#2 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=312: vxxxxx#2 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=312: vxxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=312: vxxxxx#2 nsp=1 mass=0 + -0.000000000000000e+00, -5.656854249492381e-01, // itest=312: vxxxxx#2 nsp=1 mass=0 + -0.000000000000000e+00, 4.242640687119285e-01, // itest=312: vxxxxx#2 nsp=1 mass=0 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=312: vxxxxx#2 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=313: sxxxxx#2 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=313: sxxxxx#2 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=313: sxxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=313: sxxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=313: sxxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=313: sxxxxx#2 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=314: sxxxxx#2 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=314: sxxxxx#2 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=314: sxxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=314: sxxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=314: sxxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=314: sxxxxx#2 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=315: oxxxxx#2 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=315: oxxxxx#2 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=315: oxxxxx#2 nsp=1 mass=0 + 1.341640786499874e+01, -1.788854381999831e+01, // itest=315: oxxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=315: oxxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=315: oxxxxx#2 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=316: oxxxxx#2 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=316: oxxxxx#2 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=316: oxxxxx#2 nsp=1 mass=0 + 1.341640786499874e+01, -1.788854381999831e+01, // itest=316: oxxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=316: oxxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=316: oxxxxx#2 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=317: oxzxxx#2 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=317: oxzxxx#2 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=317: oxzxxx#2 nsp=1 mass=0 + 1.341640786499874e+01, -1.788854381999832e+01, // itest=317: oxzxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=317: oxzxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=317: oxzxxx#2 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=318: ixxxxx#3 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=318: ixxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=318: ixxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=318: ixxxxx#3 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=318: ixxxxx#3 nsp=1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=318: ixxxxx#3 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=319: ixxxxx#3 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=319: ixxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=319: ixxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=319: ixxxxx#3 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=319: ixxxxx#3 nsp=1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=319: ixxxxx#3 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=320: ixzxxx#3 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=320: ixzxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=320: ixzxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=320: ixzxxx#3 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=320: ixzxxx#3 nsp=1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=320: ixzxxx#3 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=321: vxxxxx#3 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=321: vxxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=321: vxxxxx#3 nsp=1 mass=0 + -3.394112549695428e-01, -5.656854249492381e-01, // itest=321: vxxxxx#3 nsp=1 mass=0 + -4.525483399593904e-01, 4.242640687119285e-01, // itest=321: vxxxxx#3 nsp=1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=321: vxxxxx#3 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=322: vxxxxx#3 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=322: vxxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=322: vxxxxx#3 nsp=1 mass=0 + -3.394112549695428e-01, -5.656854249492381e-01, // itest=322: vxxxxx#3 nsp=1 mass=0 + -4.525483399593904e-01, 4.242640687119285e-01, // itest=322: vxxxxx#3 nsp=1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=322: vxxxxx#3 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=323: sxxxxx#3 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=323: sxxxxx#3 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=323: sxxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=323: sxxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=323: sxxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=323: sxxxxx#3 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=324: sxxxxx#3 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=324: sxxxxx#3 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=324: sxxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=324: sxxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=324: sxxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=324: sxxxxx#3 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=325: oxxxxx#3 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=325: oxxxxx#3 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=325: oxxxxx#3 nsp=1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=325: oxxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=325: oxxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=325: oxxxxx#3 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=326: oxxxxx#3 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=326: oxxxxx#3 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=326: oxxxxx#3 nsp=1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=326: oxxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=326: oxxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=326: oxxxxx#3 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=327: oxzxxx#3 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=327: oxzxxx#3 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=327: oxzxxx#3 nsp=1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=327: oxzxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=327: oxzxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=327: oxzxxx#3 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=328: ixxxxx#4 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=328: ixxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=328: ixxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=328: ixxxxx#4 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=328: ixxxxx#4 nsp=1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01 } ); // itest=328: ixxxxx#4 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=329: ixxxxx#4 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=329: ixxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=329: ixxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=329: ixxxxx#4 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=329: ixxxxx#4 nsp=1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01 } ); // itest=329: ixxxxx#4 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=330: ixzxxx#4 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=330: ixzxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=330: ixzxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=330: ixzxxx#4 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=330: ixzxxx#4 nsp=1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01 } ); // itest=330: ixzxxx#4 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=331: vxxxxx#4 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=331: vxxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=331: vxxxxx#4 nsp=1 mass=0 + 3.394112549695428e-01, -5.656854249492381e-01, // itest=331: vxxxxx#4 nsp=1 mass=0 + 4.525483399593904e-01, 4.242640687119285e-01, // itest=331: vxxxxx#4 nsp=1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=331: vxxxxx#4 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=332: vxxxxx#4 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=332: vxxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=332: vxxxxx#4 nsp=1 mass=0 + 3.394112549695428e-01, -5.656854249492381e-01, // itest=332: vxxxxx#4 nsp=1 mass=0 + 4.525483399593904e-01, 4.242640687119285e-01, // itest=332: vxxxxx#4 nsp=1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=332: vxxxxx#4 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=333: sxxxxx#4 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=333: sxxxxx#4 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=333: sxxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=333: sxxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=333: sxxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=333: sxxxxx#4 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=334: sxxxxx#4 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=334: sxxxxx#4 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=334: sxxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=334: sxxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=334: sxxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=334: sxxxxx#4 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=335: oxxxxx#4 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=335: oxxxxx#4 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=335: oxxxxx#4 nsp=1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=335: oxxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=335: oxxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=335: oxxxxx#4 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=336: oxxxxx#4 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=336: oxxxxx#4 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=336: oxxxxx#4 nsp=1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=336: oxxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=336: oxxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=336: oxxxxx#4 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=337: oxzxxx#4 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=337: oxzxxx#4 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=337: oxzxxx#4 nsp=1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=337: oxzxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=337: oxzxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=337: oxzxxx#4 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=338: ixxxxx#5 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=338: ixxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=338: ixxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=338: ixxxxx#5 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=338: ixxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=338: ixxxxx#5 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=339: ixxxxx#5 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=339: ixxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=339: ixxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=339: ixxxxx#5 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=339: ixxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=339: ixxxxx#5 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=340: ipzxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=340: ipzxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=340: ipzxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=340: ipzxxx#5 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=340: ipzxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=340: ipzxxx#5 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=341: vxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=341: vxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=341: vxxxxx#5 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=341: vxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=341: vxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=341: vxxxxx#5 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=342: vxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=342: vxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=342: vxxxxx#5 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=342: vxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=342: vxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=342: vxxxxx#5 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=343: sxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=343: sxxxxx#5 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=343: sxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=343: sxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=343: sxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=343: sxxxxx#5 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=344: sxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=344: sxxxxx#5 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=344: sxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=344: sxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=344: sxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=344: sxxxxx#5 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=345: oxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=345: oxxxxx#5 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=345: oxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=345: oxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=345: oxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=345: oxxxxx#5 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=346: oxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=346: oxxxxx#5 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=346: oxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=346: oxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=346: oxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=346: oxxxxx#5 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=347: opzxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=347: opzxxx#5 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=347: opzxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=347: opzxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=347: opzxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=347: opzxxx#5 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=348: ixxxxx#6 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=348: ixxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=348: ixxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=348: ixxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=348: ixxxxx#6 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=348: ixxxxx#6 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=349: ixxxxx#6 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=349: ixxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=349: ixxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=349: ixxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=349: ixxxxx#6 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=349: ixxxxx#6 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=350: imzxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=350: imzxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=350: imzxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=350: imzxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=350: imzxxx#6 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=350: imzxxx#6 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=351: vxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=351: vxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=351: vxxxxx#6 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=351: vxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=351: vxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=351: vxxxxx#6 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=352: vxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=352: vxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=352: vxxxxx#6 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=352: vxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=352: vxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=352: vxxxxx#6 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=353: sxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=353: sxxxxx#6 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=353: sxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=353: sxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=353: sxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=353: sxxxxx#6 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=354: sxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=354: sxxxxx#6 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=354: sxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=354: sxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=354: sxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=354: sxxxxx#6 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=355: oxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=355: oxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=355: oxxxxx#6 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=355: oxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=355: oxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=355: oxxxxx#6 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=356: oxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=356: oxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=356: oxxxxx#6 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=356: oxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=356: oxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=356: oxxxxx#6 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=357: omzxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=357: omzxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=357: omzxxx#6 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=357: omzxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=357: omzxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=357: omzxxx#6 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=358: ixxxxx#7 nsp=1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=358: ixxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=358: ixxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=358: ixxxxx#7 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=358: ixxxxx#7 nsp=1 mass=0 + 1.341640786499874e+01, 1.788854381999831e+01 } ); // itest=358: ixxxxx#7 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=359: ixxxxx#7 nsp=1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=359: ixxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=359: ixxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=359: ixxxxx#7 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=359: ixxxxx#7 nsp=1 mass=0 + 1.341640786499874e+01, 1.788854381999831e+01 } ); // itest=359: ixxxxx#7 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=360: ixzxxx#7 nsp=1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=360: ixzxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=360: ixzxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=360: ixzxxx#7 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=360: ixzxxx#7 nsp=1 mass=0 + 1.341640786499874e+01, 1.788854381999832e+01 } ); // itest=360: ixzxxx#7 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=361: vxxxxx#7 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=361: vxxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=361: vxxxxx#7 nsp=1 mass=0 + -0.000000000000000e+00, -5.656854249492381e-01, // itest=361: vxxxxx#7 nsp=1 mass=0 + -0.000000000000000e+00, 4.242640687119285e-01, // itest=361: vxxxxx#7 nsp=1 mass=0 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=361: vxxxxx#7 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=362: vxxxxx#7 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=362: vxxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=362: vxxxxx#7 nsp=1 mass=0 + -0.000000000000000e+00, -5.656854249492381e-01, // itest=362: vxxxxx#7 nsp=1 mass=0 + -0.000000000000000e+00, 4.242640687119285e-01, // itest=362: vxxxxx#7 nsp=1 mass=0 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=362: vxxxxx#7 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=363: sxxxxx#7 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=363: sxxxxx#7 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=363: sxxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=363: sxxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=363: sxxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=363: sxxxxx#7 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=364: sxxxxx#7 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=364: sxxxxx#7 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=364: sxxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=364: sxxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=364: sxxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=364: sxxxxx#7 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=365: oxxxxx#7 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=365: oxxxxx#7 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=365: oxxxxx#7 nsp=1 mass=0 + 1.341640786499874e+01, -1.788854381999831e+01, // itest=365: oxxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=365: oxxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=365: oxxxxx#7 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=366: oxxxxx#7 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=366: oxxxxx#7 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=366: oxxxxx#7 nsp=1 mass=0 + 1.341640786499874e+01, -1.788854381999831e+01, // itest=366: oxxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=366: oxxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=366: oxxxxx#7 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=367: oxzxxx#7 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=367: oxzxxx#7 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=367: oxzxxx#7 nsp=1 mass=0 + 1.341640786499874e+01, -1.788854381999832e+01, // itest=367: oxzxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=367: oxzxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=367: oxzxxx#7 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=368: ixxxxx#8 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=368: ixxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=368: ixxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=368: ixxxxx#8 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=368: ixxxxx#8 nsp=1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=368: ixxxxx#8 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=369: ixxxxx#8 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=369: ixxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=369: ixxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=369: ixxxxx#8 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=369: ixxxxx#8 nsp=1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=369: ixxxxx#8 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=370: ixzxxx#8 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=370: ixzxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=370: ixzxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=370: ixzxxx#8 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=370: ixzxxx#8 nsp=1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=370: ixzxxx#8 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=371: vxxxxx#8 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=371: vxxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=371: vxxxxx#8 nsp=1 mass=0 + -3.394112549695428e-01, -5.656854249492381e-01, // itest=371: vxxxxx#8 nsp=1 mass=0 + -4.525483399593904e-01, 4.242640687119285e-01, // itest=371: vxxxxx#8 nsp=1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=371: vxxxxx#8 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=372: vxxxxx#8 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=372: vxxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=372: vxxxxx#8 nsp=1 mass=0 + -3.394112549695428e-01, -5.656854249492381e-01, // itest=372: vxxxxx#8 nsp=1 mass=0 + -4.525483399593904e-01, 4.242640687119285e-01, // itest=372: vxxxxx#8 nsp=1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=372: vxxxxx#8 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=373: sxxxxx#8 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=373: sxxxxx#8 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=373: sxxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=373: sxxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=373: sxxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=373: sxxxxx#8 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=374: sxxxxx#8 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=374: sxxxxx#8 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=374: sxxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=374: sxxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=374: sxxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=374: sxxxxx#8 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=375: oxxxxx#8 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=375: oxxxxx#8 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=375: oxxxxx#8 nsp=1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=375: oxxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=375: oxxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=375: oxxxxx#8 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=376: oxxxxx#8 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=376: oxxxxx#8 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=376: oxxxxx#8 nsp=1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=376: oxxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=376: oxxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=376: oxxxxx#8 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=377: oxzxxx#8 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=377: oxzxxx#8 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=377: oxzxxx#8 nsp=1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=377: oxzxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=377: oxzxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=377: oxzxxx#8 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=378: ixxxxx#9 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=378: ixxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=378: ixxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=378: ixxxxx#9 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=378: ixxxxx#9 nsp=1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01 } ); // itest=378: ixxxxx#9 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=379: ixxxxx#9 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=379: ixxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=379: ixxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=379: ixxxxx#9 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=379: ixxxxx#9 nsp=1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01 } ); // itest=379: ixxxxx#9 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=380: ixzxxx#9 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=380: ixzxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=380: ixzxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=380: ixzxxx#9 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=380: ixzxxx#9 nsp=1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01 } ); // itest=380: ixzxxx#9 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=381: vxxxxx#9 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=381: vxxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=381: vxxxxx#9 nsp=1 mass=0 + 3.394112549695428e-01, -5.656854249492381e-01, // itest=381: vxxxxx#9 nsp=1 mass=0 + 4.525483399593904e-01, 4.242640687119285e-01, // itest=381: vxxxxx#9 nsp=1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=381: vxxxxx#9 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=382: vxxxxx#9 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=382: vxxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=382: vxxxxx#9 nsp=1 mass=0 + 3.394112549695428e-01, -5.656854249492381e-01, // itest=382: vxxxxx#9 nsp=1 mass=0 + 4.525483399593904e-01, 4.242640687119285e-01, // itest=382: vxxxxx#9 nsp=1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=382: vxxxxx#9 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=383: sxxxxx#9 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=383: sxxxxx#9 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=383: sxxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=383: sxxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=383: sxxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=383: sxxxxx#9 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=384: sxxxxx#9 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=384: sxxxxx#9 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=384: sxxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=384: sxxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=384: sxxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=384: sxxxxx#9 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=385: oxxxxx#9 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=385: oxxxxx#9 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=385: oxxxxx#9 nsp=1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=385: oxxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=385: oxxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=385: oxxxxx#9 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=386: oxxxxx#9 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=386: oxxxxx#9 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=386: oxxxxx#9 nsp=1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=386: oxxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=386: oxxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=386: oxxxxx#9 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=387: oxzxxx#9 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=387: oxzxxx#9 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=387: oxzxxx#9 nsp=1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=387: oxzxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=387: oxzxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=387: oxzxxx#9 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=388: ixxxxx#10 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=388: ixxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=388: ixxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=388: ixxxxx#10 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=388: ixxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=388: ixxxxx#10 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=389: ixxxxx#10 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=389: ixxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=389: ixxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=389: ixxxxx#10 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=389: ixxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=389: ixxxxx#10 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=390: ipzxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=390: ipzxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=390: ipzxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=390: ipzxxx#10 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=390: ipzxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=390: ipzxxx#10 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=391: vxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=391: vxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=391: vxxxxx#10 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=391: vxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=391: vxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=391: vxxxxx#10 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=392: vxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=392: vxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=392: vxxxxx#10 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=392: vxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=392: vxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=392: vxxxxx#10 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=393: sxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=393: sxxxxx#10 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=393: sxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=393: sxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=393: sxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=393: sxxxxx#10 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=394: sxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=394: sxxxxx#10 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=394: sxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=394: sxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=394: sxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=394: sxxxxx#10 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=395: oxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=395: oxxxxx#10 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=395: oxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=395: oxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=395: oxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=395: oxxxxx#10 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=396: oxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=396: oxxxxx#10 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=396: oxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=396: oxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=396: oxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=396: oxxxxx#10 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=397: opzxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=397: opzxxx#10 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=397: opzxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=397: opzxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=397: opzxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=397: opzxxx#10 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=398: ixxxxx#11 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=398: ixxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=398: ixxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=398: ixxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=398: ixxxxx#11 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=398: ixxxxx#11 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=399: ixxxxx#11 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=399: ixxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=399: ixxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=399: ixxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=399: ixxxxx#11 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=399: ixxxxx#11 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=400: imzxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=400: imzxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=400: imzxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=400: imzxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=400: imzxxx#11 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=400: imzxxx#11 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=401: vxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=401: vxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=401: vxxxxx#11 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=401: vxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=401: vxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=401: vxxxxx#11 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=402: vxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=402: vxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=402: vxxxxx#11 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=402: vxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=402: vxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=402: vxxxxx#11 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=403: sxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=403: sxxxxx#11 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=403: sxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=403: sxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=403: sxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=403: sxxxxx#11 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=404: sxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=404: sxxxxx#11 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=404: sxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=404: sxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=404: sxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=404: sxxxxx#11 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=405: oxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=405: oxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=405: oxxxxx#11 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=405: oxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=405: oxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=405: oxxxxx#11 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=406: oxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=406: oxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=406: oxxxxx#11 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=406: oxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=406: oxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=406: oxxxxx#11 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=407: omzxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=407: omzxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=407: omzxxx#11 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=407: omzxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=407: omzxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=407: omzxxx#11 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=408: ixxxxx#12 nsp=1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=408: ixxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=408: ixxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=408: ixxxxx#12 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=408: ixxxxx#12 nsp=1 mass=0 + 1.341640786499874e+01, 1.788854381999831e+01 } ); // itest=408: ixxxxx#12 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=409: ixxxxx#12 nsp=1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=409: ixxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=409: ixxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=409: ixxxxx#12 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=409: ixxxxx#12 nsp=1 mass=0 + 1.341640786499874e+01, 1.788854381999831e+01 } ); // itest=409: ixxxxx#12 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=410: ixzxxx#12 nsp=1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=410: ixzxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=410: ixzxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=410: ixzxxx#12 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=410: ixzxxx#12 nsp=1 mass=0 + 1.341640786499874e+01, 1.788854381999832e+01 } ); // itest=410: ixzxxx#12 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=411: vxxxxx#12 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=411: vxxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=411: vxxxxx#12 nsp=1 mass=0 + -0.000000000000000e+00, -5.656854249492381e-01, // itest=411: vxxxxx#12 nsp=1 mass=0 + -0.000000000000000e+00, 4.242640687119285e-01, // itest=411: vxxxxx#12 nsp=1 mass=0 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=411: vxxxxx#12 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=412: vxxxxx#12 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=412: vxxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=412: vxxxxx#12 nsp=1 mass=0 + -0.000000000000000e+00, -5.656854249492381e-01, // itest=412: vxxxxx#12 nsp=1 mass=0 + -0.000000000000000e+00, 4.242640687119285e-01, // itest=412: vxxxxx#12 nsp=1 mass=0 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=412: vxxxxx#12 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=413: sxxxxx#12 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=413: sxxxxx#12 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=413: sxxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=413: sxxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=413: sxxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=413: sxxxxx#12 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=414: sxxxxx#12 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=414: sxxxxx#12 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=414: sxxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=414: sxxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=414: sxxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=414: sxxxxx#12 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=415: oxxxxx#12 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=415: oxxxxx#12 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=415: oxxxxx#12 nsp=1 mass=0 + 1.341640786499874e+01, -1.788854381999831e+01, // itest=415: oxxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=415: oxxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=415: oxxxxx#12 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=416: oxxxxx#12 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=416: oxxxxx#12 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=416: oxxxxx#12 nsp=1 mass=0 + 1.341640786499874e+01, -1.788854381999831e+01, // itest=416: oxxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=416: oxxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=416: oxxxxx#12 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=417: oxzxxx#12 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=417: oxzxxx#12 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=417: oxzxxx#12 nsp=1 mass=0 + 1.341640786499874e+01, -1.788854381999832e+01, // itest=417: oxzxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=417: oxzxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=417: oxzxxx#12 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=418: ixxxxx#13 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=418: ixxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=418: ixxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=418: ixxxxx#13 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=418: ixxxxx#13 nsp=1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=418: ixxxxx#13 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=419: ixxxxx#13 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=419: ixxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=419: ixxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=419: ixxxxx#13 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=419: ixxxxx#13 nsp=1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=419: ixxxxx#13 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=420: ixzxxx#13 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=420: ixzxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=420: ixzxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=420: ixzxxx#13 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=420: ixzxxx#13 nsp=1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=420: ixzxxx#13 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=421: vxxxxx#13 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=421: vxxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=421: vxxxxx#13 nsp=1 mass=0 + -3.394112549695428e-01, -5.656854249492381e-01, // itest=421: vxxxxx#13 nsp=1 mass=0 + -4.525483399593904e-01, 4.242640687119285e-01, // itest=421: vxxxxx#13 nsp=1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=421: vxxxxx#13 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=422: vxxxxx#13 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=422: vxxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=422: vxxxxx#13 nsp=1 mass=0 + -3.394112549695428e-01, -5.656854249492381e-01, // itest=422: vxxxxx#13 nsp=1 mass=0 + -4.525483399593904e-01, 4.242640687119285e-01, // itest=422: vxxxxx#13 nsp=1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=422: vxxxxx#13 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=423: sxxxxx#13 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=423: sxxxxx#13 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=423: sxxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=423: sxxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=423: sxxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=423: sxxxxx#13 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=424: sxxxxx#13 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=424: sxxxxx#13 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=424: sxxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=424: sxxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=424: sxxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=424: sxxxxx#13 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=425: oxxxxx#13 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=425: oxxxxx#13 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=425: oxxxxx#13 nsp=1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=425: oxxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=425: oxxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=425: oxxxxx#13 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=426: oxxxxx#13 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=426: oxxxxx#13 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=426: oxxxxx#13 nsp=1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=426: oxxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=426: oxxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=426: oxxxxx#13 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=427: oxzxxx#13 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=427: oxzxxx#13 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=427: oxzxxx#13 nsp=1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=427: oxzxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=427: oxzxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=427: oxzxxx#13 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=428: ixxxxx#14 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=428: ixxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=428: ixxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=428: ixxxxx#14 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=428: ixxxxx#14 nsp=1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01 } ); // itest=428: ixxxxx#14 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=429: ixxxxx#14 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=429: ixxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=429: ixxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=429: ixxxxx#14 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=429: ixxxxx#14 nsp=1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01 } ); // itest=429: ixxxxx#14 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=430: ixzxxx#14 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=430: ixzxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=430: ixzxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=430: ixzxxx#14 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=430: ixzxxx#14 nsp=1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01 } ); // itest=430: ixzxxx#14 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=431: vxxxxx#14 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=431: vxxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=431: vxxxxx#14 nsp=1 mass=0 + 3.394112549695428e-01, -5.656854249492381e-01, // itest=431: vxxxxx#14 nsp=1 mass=0 + 4.525483399593904e-01, 4.242640687119285e-01, // itest=431: vxxxxx#14 nsp=1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=431: vxxxxx#14 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=432: vxxxxx#14 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=432: vxxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=432: vxxxxx#14 nsp=1 mass=0 + 3.394112549695428e-01, -5.656854249492381e-01, // itest=432: vxxxxx#14 nsp=1 mass=0 + 4.525483399593904e-01, 4.242640687119285e-01, // itest=432: vxxxxx#14 nsp=1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=432: vxxxxx#14 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=433: sxxxxx#14 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=433: sxxxxx#14 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=433: sxxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=433: sxxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=433: sxxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=433: sxxxxx#14 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=434: sxxxxx#14 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=434: sxxxxx#14 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=434: sxxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=434: sxxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=434: sxxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=434: sxxxxx#14 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=435: oxxxxx#14 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=435: oxxxxx#14 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=435: oxxxxx#14 nsp=1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=435: oxxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=435: oxxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=435: oxxxxx#14 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=436: oxxxxx#14 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=436: oxxxxx#14 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=436: oxxxxx#14 nsp=1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=436: oxxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=436: oxxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=436: oxxxxx#14 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=437: oxzxxx#14 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=437: oxzxxx#14 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=437: oxzxxx#14 nsp=1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=437: oxzxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=437: oxzxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=437: oxzxxx#14 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=438: ixxxxx#15 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=438: ixxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=438: ixxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=438: ixxxxx#15 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=438: ixxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=438: ixxxxx#15 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=439: ixxxxx#15 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=439: ixxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=439: ixxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=439: ixxxxx#15 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=439: ixxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=439: ixxxxx#15 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=440: ipzxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=440: ipzxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=440: ipzxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=440: ipzxxx#15 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=440: ipzxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=440: ipzxxx#15 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=441: vxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=441: vxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=441: vxxxxx#15 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=441: vxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=441: vxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=441: vxxxxx#15 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=442: vxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=442: vxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=442: vxxxxx#15 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=442: vxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=442: vxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=442: vxxxxx#15 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=443: sxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=443: sxxxxx#15 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=443: sxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=443: sxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=443: sxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=443: sxxxxx#15 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=444: sxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=444: sxxxxx#15 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=444: sxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=444: sxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=444: sxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=444: sxxxxx#15 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=445: oxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=445: oxxxxx#15 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=445: oxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=445: oxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=445: oxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=445: oxxxxx#15 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=446: oxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=446: oxxxxx#15 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=446: oxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=446: oxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=446: oxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=446: oxxxxx#15 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=447: opzxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=447: opzxxx#15 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=447: opzxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=447: opzxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=447: opzxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=447: opzxxx#15 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=448: ixxxxx#16 nsp=1 mass=500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=448: ixxxxx#16 nsp=1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=448: ixxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=448: ixxxxx#16 nsp=1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=448: ixxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=448: ixxxxx#16 nsp=1 mass=500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=449: ixxxxx#16 nsp=1 mass=-500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=449: ixxxxx#16 nsp=1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=449: ixxxxx#16 nsp=1 mass=-500 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=449: ixxxxx#16 nsp=1 mass=-500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=449: ixxxxx#16 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=449: ixxxxx#16 nsp=1 mass=-500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=450: vxxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=450: vxxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=450: vxxxxx#16 nsp=1 mass=500 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=450: vxxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=450: vxxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=450: vxxxxx#16 nsp=1 mass=500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=451: vxxxxx#16 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=451: vxxxxx#16 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=451: vxxxxx#16 nsp=1 mass=-500 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=451: vxxxxx#16 nsp=1 mass=-500 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=451: vxxxxx#16 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=451: vxxxxx#16 nsp=1 mass=-500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=452: sxxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=452: sxxxxx#16 nsp=1 mass=500 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=452: sxxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=452: sxxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=452: sxxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=452: sxxxxx#16 nsp=1 mass=500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=453: sxxxxx#16 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=453: sxxxxx#16 nsp=1 mass=-500 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=453: sxxxxx#16 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=453: sxxxxx#16 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=453: sxxxxx#16 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=453: sxxxxx#16 nsp=1 mass=-500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=454: oxxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=454: oxxxxx#16 nsp=1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=454: oxxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=454: oxxxxx#16 nsp=1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=454: oxxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=454: oxxxxx#16 nsp=1 mass=500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=455: oxxxxx#16 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=455: oxxxxx#16 nsp=1 mass=-500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=455: oxxxxx#16 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=455: oxxxxx#16 nsp=1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=455: oxxxxx#16 nsp=1 mass=-500 + -0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=455: oxxxxx#16 nsp=1 mass=-500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=456: ixxxxx#17 nsp=1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=456: ixxxxx#17 nsp=1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=456: ixxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=456: ixxxxx#17 nsp=1 mass=400 + 2.828427124746190e+01, 0.000000000000000e+00, // itest=456: ixxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=456: ixxxxx#17 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=457: ixxxxx#17 nsp=1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=457: ixxxxx#17 nsp=1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=457: ixxxxx#17 nsp=1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=457: ixxxxx#17 nsp=1 mass=-400 + 2.828427124746190e+01, 0.000000000000000e+00, // itest=457: ixxxxx#17 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=457: ixxxxx#17 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=458: vxxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=458: vxxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=458: vxxxxx#17 nsp=1 mass=400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=458: vxxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=458: vxxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=458: vxxxxx#17 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=459: vxxxxx#17 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=459: vxxxxx#17 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=459: vxxxxx#17 nsp=1 mass=-400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=459: vxxxxx#17 nsp=1 mass=-400 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=459: vxxxxx#17 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=459: vxxxxx#17 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=460: sxxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=460: sxxxxx#17 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=460: sxxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=460: sxxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=460: sxxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=460: sxxxxx#17 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=461: sxxxxx#17 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=461: sxxxxx#17 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=461: sxxxxx#17 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=461: sxxxxx#17 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=461: sxxxxx#17 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=461: sxxxxx#17 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=462: oxxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=462: oxxxxx#17 nsp=1 mass=400 + 2.828427124746190e+01, 0.000000000000000e+00, // itest=462: oxxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=462: oxxxxx#17 nsp=1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=462: oxxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=462: oxxxxx#17 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=463: oxxxxx#17 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=463: oxxxxx#17 nsp=1 mass=-400 + 2.828427124746190e+01, 0.000000000000000e+00, // itest=463: oxxxxx#17 nsp=1 mass=-400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=463: oxxxxx#17 nsp=1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=463: oxxxxx#17 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=463: oxxxxx#17 nsp=1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=464: ixxxxx#18 nsp=1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=464: ixxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=464: ixxxxx#18 nsp=1 mass=400 + -1.414213562373095e+01, 0.000000000000000e+00, // itest=464: ixxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=464: ixxxxx#18 nsp=1 mass=400 + -2.828427124746190e+01, 0.000000000000000e+00 } ); // itest=464: ixxxxx#18 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=465: ixxxxx#18 nsp=1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=465: ixxxxx#18 nsp=1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=465: ixxxxx#18 nsp=1 mass=-400 + 1.414213562373095e+01, -0.000000000000000e+00, // itest=465: ixxxxx#18 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=465: ixxxxx#18 nsp=1 mass=-400 + -2.828427124746190e+01, 0.000000000000000e+00 } ); // itest=465: ixxxxx#18 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=466: vxxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=466: vxxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=466: vxxxxx#18 nsp=1 mass=400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=466: vxxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=466: vxxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=466: vxxxxx#18 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=467: vxxxxx#18 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=467: vxxxxx#18 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=467: vxxxxx#18 nsp=1 mass=-400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=467: vxxxxx#18 nsp=1 mass=-400 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=467: vxxxxx#18 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=467: vxxxxx#18 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=468: sxxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=468: sxxxxx#18 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=468: sxxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=468: sxxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=468: sxxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=468: sxxxxx#18 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=469: sxxxxx#18 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=469: sxxxxx#18 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=469: sxxxxx#18 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=469: sxxxxx#18 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=469: sxxxxx#18 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=469: sxxxxx#18 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=470: oxxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=470: oxxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=470: oxxxxx#18 nsp=1 mass=400 + -2.828427124746190e+01, 0.000000000000000e+00, // itest=470: oxxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=470: oxxxxx#18 nsp=1 mass=400 + -1.414213562373095e+01, 0.000000000000000e+00 } ); // itest=470: oxxxxx#18 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=471: oxxxxx#18 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=471: oxxxxx#18 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=471: oxxxxx#18 nsp=1 mass=-400 + -2.828427124746190e+01, 0.000000000000000e+00, // itest=471: oxxxxx#18 nsp=1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=471: oxxxxx#18 nsp=1 mass=-400 + 1.414213562373095e+01, -0.000000000000000e+00 } ); // itest=471: oxxxxx#18 nsp=1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=472: ixxxxx#19 nsp=1 mass=400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=472: ixxxxx#19 nsp=1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=472: ixxxxx#19 nsp=1 mass=400 + 5.999999999999999e+00, 7.999999999999999e+00, // itest=472: ixxxxx#19 nsp=1 mass=400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=472: ixxxxx#19 nsp=1 mass=400 + 1.200000000000000e+01, 1.600000000000000e+01 } ); // itest=472: ixxxxx#19 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=473: ixxxxx#19 nsp=1 mass=-400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=473: ixxxxx#19 nsp=1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00, // itest=473: ixxxxx#19 nsp=1 mass=-400 + -5.999999999999999e+00, -7.999999999999999e+00, // itest=473: ixxxxx#19 nsp=1 mass=-400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=473: ixxxxx#19 nsp=1 mass=-400 + 1.200000000000000e+01, 1.600000000000000e+01 } ); // itest=473: ixxxxx#19 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=474: vxxxxx#19 nsp=1 mass=400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=474: vxxxxx#19 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=474: vxxxxx#19 nsp=1 mass=400 + 0.000000000000000e+00, -5.656854249492381e-01, // itest=474: vxxxxx#19 nsp=1 mass=400 + 0.000000000000000e+00, 4.242640687119285e-01, // itest=474: vxxxxx#19 nsp=1 mass=400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=474: vxxxxx#19 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=475: vxxxxx#19 nsp=1 mass=-400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=475: vxxxxx#19 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=475: vxxxxx#19 nsp=1 mass=-400 + -0.000000000000000e+00, -5.656854249492381e-01, // itest=475: vxxxxx#19 nsp=1 mass=-400 + -0.000000000000000e+00, 4.242640687119285e-01, // itest=475: vxxxxx#19 nsp=1 mass=-400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=475: vxxxxx#19 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=476: sxxxxx#19 nsp=1 mass=400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=476: sxxxxx#19 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=476: sxxxxx#19 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=476: sxxxxx#19 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=476: sxxxxx#19 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=476: sxxxxx#19 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=477: sxxxxx#19 nsp=1 mass=-400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=477: sxxxxx#19 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=477: sxxxxx#19 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=477: sxxxxx#19 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=477: sxxxxx#19 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=477: sxxxxx#19 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=478: oxxxxx#19 nsp=1 mass=400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=478: oxxxxx#19 nsp=1 mass=400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=478: oxxxxx#19 nsp=1 mass=400 + 1.200000000000000e+01, -1.600000000000000e+01, // itest=478: oxxxxx#19 nsp=1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=478: oxxxxx#19 nsp=1 mass=400 + 5.999999999999999e+00, -7.999999999999999e+00 } ); // itest=478: oxxxxx#19 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=479: oxxxxx#19 nsp=1 mass=-400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=479: oxxxxx#19 nsp=1 mass=-400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=479: oxxxxx#19 nsp=1 mass=-400 + 1.200000000000000e+01, -1.600000000000000e+01, // itest=479: oxxxxx#19 nsp=1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00, // itest=479: oxxxxx#19 nsp=1 mass=-400 + -5.999999999999999e+00, 7.999999999999999e+00 } ); // itest=479: oxxxxx#19 nsp=1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=480: ixxxxx#20 nsp=1 mass=400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=480: ixxxxx#20 nsp=1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=480: ixxxxx#20 nsp=1 mass=400 + -7.999999999999999e+00, -5.999999999999999e+00, // itest=480: ixxxxx#20 nsp=1 mass=400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=480: ixxxxx#20 nsp=1 mass=400 + -1.600000000000000e+01, -1.200000000000000e+01 } ); // itest=480: ixxxxx#20 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=481: ixxxxx#20 nsp=1 mass=-400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=481: ixxxxx#20 nsp=1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00, // itest=481: ixxxxx#20 nsp=1 mass=-400 + 7.999999999999999e+00, 5.999999999999999e+00, // itest=481: ixxxxx#20 nsp=1 mass=-400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=481: ixxxxx#20 nsp=1 mass=-400 + -1.600000000000000e+01, -1.200000000000000e+01 } ); // itest=481: ixxxxx#20 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=482: vxxxxx#20 nsp=1 mass=400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=482: vxxxxx#20 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=482: vxxxxx#20 nsp=1 mass=400 + 0.000000000000000e+00, 4.242640687119285e-01, // itest=482: vxxxxx#20 nsp=1 mass=400 + 0.000000000000000e+00, -5.656854249492381e-01, // itest=482: vxxxxx#20 nsp=1 mass=400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=482: vxxxxx#20 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=483: vxxxxx#20 nsp=1 mass=-400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=483: vxxxxx#20 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=483: vxxxxx#20 nsp=1 mass=-400 + 0.000000000000000e+00, 4.242640687119285e-01, // itest=483: vxxxxx#20 nsp=1 mass=-400 + 0.000000000000000e+00, -5.656854249492381e-01, // itest=483: vxxxxx#20 nsp=1 mass=-400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=483: vxxxxx#20 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=484: sxxxxx#20 nsp=1 mass=400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=484: sxxxxx#20 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=484: sxxxxx#20 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=484: sxxxxx#20 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=484: sxxxxx#20 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=484: sxxxxx#20 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=485: sxxxxx#20 nsp=1 mass=-400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=485: sxxxxx#20 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=485: sxxxxx#20 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=485: sxxxxx#20 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=485: sxxxxx#20 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=485: sxxxxx#20 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=486: oxxxxx#20 nsp=1 mass=400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=486: oxxxxx#20 nsp=1 mass=400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=486: oxxxxx#20 nsp=1 mass=400 + -1.600000000000000e+01, 1.200000000000000e+01, // itest=486: oxxxxx#20 nsp=1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=486: oxxxxx#20 nsp=1 mass=400 + -7.999999999999999e+00, 5.999999999999999e+00 } ); // itest=486: oxxxxx#20 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=487: oxxxxx#20 nsp=1 mass=-400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=487: oxxxxx#20 nsp=1 mass=-400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=487: oxxxxx#20 nsp=1 mass=-400 + -1.600000000000000e+01, 1.200000000000000e+01, // itest=487: oxxxxx#20 nsp=1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00, // itest=487: oxxxxx#20 nsp=1 mass=-400 + 7.999999999999999e+00, -5.999999999999999e+00 } ); // itest=487: oxxxxx#20 nsp=1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=488: ixxxxx#21 nsp=1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=488: ixxxxx#21 nsp=1 mass=400 + 1.216552506059644e+01, 0.000000000000000e+00, // itest=488: ixxxxx#21 nsp=1 mass=400 + 4.931969619160719e+00, 5.260767593771432e+00, // itest=488: ixxxxx#21 nsp=1 mass=400 + 2.433105012119288e+01, 0.000000000000000e+00, // itest=488: ixxxxx#21 nsp=1 mass=400 + 9.863939238321439e+00, 1.052153518754287e+01 } ); // itest=488: ixxxxx#21 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=489: ixxxxx#21 nsp=1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=489: ixxxxx#21 nsp=1 mass=-400 + -1.216552506059644e+01, -0.000000000000000e+00, // itest=489: ixxxxx#21 nsp=1 mass=-400 + -4.931969619160719e+00, -5.260767593771432e+00, // itest=489: ixxxxx#21 nsp=1 mass=-400 + 2.433105012119288e+01, 0.000000000000000e+00, // itest=489: ixxxxx#21 nsp=1 mass=-400 + 9.863939238321439e+00, 1.052153518754287e+01 } ); // itest=489: ixxxxx#21 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=490: vxxxxx#21 nsp=1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=490: vxxxxx#21 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=490: vxxxxx#21 nsp=1 mass=400 + -2.321373168788980e-01, -5.158607041753289e-01, // itest=490: vxxxxx#21 nsp=1 mass=400 + -2.476131380041579e-01, 4.836194101643708e-01, // itest=490: vxxxxx#21 nsp=1 mass=400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=490: vxxxxx#21 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=491: vxxxxx#21 nsp=1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=491: vxxxxx#21 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=491: vxxxxx#21 nsp=1 mass=-400 + -2.321373168788980e-01, -5.158607041753289e-01, // itest=491: vxxxxx#21 nsp=1 mass=-400 + -2.476131380041579e-01, 4.836194101643708e-01, // itest=491: vxxxxx#21 nsp=1 mass=-400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=491: vxxxxx#21 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=492: sxxxxx#21 nsp=1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=492: sxxxxx#21 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=492: sxxxxx#21 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=492: sxxxxx#21 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=492: sxxxxx#21 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=492: sxxxxx#21 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=493: sxxxxx#21 nsp=1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=493: sxxxxx#21 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=493: sxxxxx#21 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=493: sxxxxx#21 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=493: sxxxxx#21 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=493: sxxxxx#21 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=494: oxxxxx#21 nsp=1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=494: oxxxxx#21 nsp=1 mass=400 + 2.433105012119288e+01, 0.000000000000000e+00, // itest=494: oxxxxx#21 nsp=1 mass=400 + 9.863939238321439e+00, -1.052153518754287e+01, // itest=494: oxxxxx#21 nsp=1 mass=400 + 1.216552506059644e+01, 0.000000000000000e+00, // itest=494: oxxxxx#21 nsp=1 mass=400 + 4.931969619160719e+00, -5.260767593771432e+00 } ); // itest=494: oxxxxx#21 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=495: oxxxxx#21 nsp=1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=495: oxxxxx#21 nsp=1 mass=-400 + 2.433105012119288e+01, 0.000000000000000e+00, // itest=495: oxxxxx#21 nsp=1 mass=-400 + 9.863939238321439e+00, -1.052153518754287e+01, // itest=495: oxxxxx#21 nsp=1 mass=-400 + -1.216552506059644e+01, -0.000000000000000e+00, // itest=495: oxxxxx#21 nsp=1 mass=-400 + -4.931969619160719e+00, 5.260767593771432e+00 } ); // itest=495: oxxxxx#21 nsp=1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=496: ixxxxx#22 nsp=1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=496: ixxxxx#22 nsp=1 mass=400 + 7.211102550927978e+00, 0.000000000000000e+00, // itest=496: ixxxxx#22 nsp=1 mass=400 + 8.320502943378436e+00, 8.875203139603666e+00, // itest=496: ixxxxx#22 nsp=1 mass=400 + 1.442220510185596e+01, 0.000000000000000e+00, // itest=496: ixxxxx#22 nsp=1 mass=400 + 1.664100588675688e+01, 1.775040627920733e+01 } ); // itest=496: ixxxxx#22 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=497: ixxxxx#22 nsp=1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=497: ixxxxx#22 nsp=1 mass=-400 + -7.211102550927978e+00, -0.000000000000000e+00, // itest=497: ixxxxx#22 nsp=1 mass=-400 + -8.320502943378436e+00, -8.875203139603666e+00, // itest=497: ixxxxx#22 nsp=1 mass=-400 + 1.442220510185596e+01, 0.000000000000000e+00, // itest=497: ixxxxx#22 nsp=1 mass=-400 + 1.664100588675688e+01, 1.775040627920733e+01 } ); // itest=497: ixxxxx#22 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=498: vxxxxx#22 nsp=1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=498: vxxxxx#22 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=498: vxxxxx#22 nsp=1 mass=400 + 2.321373168788980e-01, -5.158607041753289e-01, // itest=498: vxxxxx#22 nsp=1 mass=400 + 2.476131380041579e-01, 4.836194101643708e-01, // itest=498: vxxxxx#22 nsp=1 mass=400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=498: vxxxxx#22 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=499: vxxxxx#22 nsp=1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=499: vxxxxx#22 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=499: vxxxxx#22 nsp=1 mass=-400 + 2.321373168788980e-01, -5.158607041753289e-01, // itest=499: vxxxxx#22 nsp=1 mass=-400 + 2.476131380041579e-01, 4.836194101643708e-01, // itest=499: vxxxxx#22 nsp=1 mass=-400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=499: vxxxxx#22 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=500: sxxxxx#22 nsp=1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=500: sxxxxx#22 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=500: sxxxxx#22 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=500: sxxxxx#22 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=500: sxxxxx#22 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=500: sxxxxx#22 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=501: sxxxxx#22 nsp=1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=501: sxxxxx#22 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=501: sxxxxx#22 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=501: sxxxxx#22 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=501: sxxxxx#22 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=501: sxxxxx#22 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=502: oxxxxx#22 nsp=1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=502: oxxxxx#22 nsp=1 mass=400 + 1.442220510185596e+01, 0.000000000000000e+00, // itest=502: oxxxxx#22 nsp=1 mass=400 + 1.664100588675688e+01, -1.775040627920733e+01, // itest=502: oxxxxx#22 nsp=1 mass=400 + 7.211102550927978e+00, 0.000000000000000e+00, // itest=502: oxxxxx#22 nsp=1 mass=400 + 8.320502943378436e+00, -8.875203139603666e+00 } ); // itest=502: oxxxxx#22 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=503: oxxxxx#22 nsp=1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=503: oxxxxx#22 nsp=1 mass=-400 + 1.442220510185596e+01, 0.000000000000000e+00, // itest=503: oxxxxx#22 nsp=1 mass=-400 + 1.664100588675688e+01, -1.775040627920733e+01, // itest=503: oxxxxx#22 nsp=1 mass=-400 + -7.211102550927978e+00, -0.000000000000000e+00, // itest=503: oxxxxx#22 nsp=1 mass=-400 + -8.320502943378436e+00, 8.875203139603666e+00 } ); // itest=503: oxxxxx#22 nsp=1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=504: ixxxxx#23 nsp=1 mass=500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=504: ixxxxx#23 nsp=1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=504: ixxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=504: ixxxxx#23 nsp=1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=504: ixxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=504: ixxxxx#23 nsp=1 mass=500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=505: ixxxxx#23 nsp=1 mass=-500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=505: ixxxxx#23 nsp=1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=505: ixxxxx#23 nsp=1 mass=-500 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=505: ixxxxx#23 nsp=1 mass=-500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=505: ixxxxx#23 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=505: ixxxxx#23 nsp=1 mass=-500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=506: vxxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=506: vxxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=506: vxxxxx#23 nsp=1 mass=500 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=506: vxxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=506: vxxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=506: vxxxxx#23 nsp=1 mass=500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=507: vxxxxx#23 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=507: vxxxxx#23 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=507: vxxxxx#23 nsp=1 mass=-500 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=507: vxxxxx#23 nsp=1 mass=-500 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=507: vxxxxx#23 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=507: vxxxxx#23 nsp=1 mass=-500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=508: sxxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=508: sxxxxx#23 nsp=1 mass=500 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=508: sxxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=508: sxxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=508: sxxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=508: sxxxxx#23 nsp=1 mass=500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=509: sxxxxx#23 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=509: sxxxxx#23 nsp=1 mass=-500 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=509: sxxxxx#23 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=509: sxxxxx#23 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=509: sxxxxx#23 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=509: sxxxxx#23 nsp=1 mass=-500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=510: oxxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=510: oxxxxx#23 nsp=1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=510: oxxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=510: oxxxxx#23 nsp=1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=510: oxxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=510: oxxxxx#23 nsp=1 mass=500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=511: oxxxxx#23 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=511: oxxxxx#23 nsp=1 mass=-500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=511: oxxxxx#23 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=511: oxxxxx#23 nsp=1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=511: oxxxxx#23 nsp=1 mass=-500 + -0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=511: oxxxxx#23 nsp=1 mass=-500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=512: ixxxxx#24 nsp=1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=512: ixxxxx#24 nsp=1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=512: ixxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=512: ixxxxx#24 nsp=1 mass=400 + 2.828427124746190e+01, 0.000000000000000e+00, // itest=512: ixxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=512: ixxxxx#24 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=513: ixxxxx#24 nsp=1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=513: ixxxxx#24 nsp=1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=513: ixxxxx#24 nsp=1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=513: ixxxxx#24 nsp=1 mass=-400 + 2.828427124746190e+01, 0.000000000000000e+00, // itest=513: ixxxxx#24 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=513: ixxxxx#24 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=514: vxxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=514: vxxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=514: vxxxxx#24 nsp=1 mass=400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=514: vxxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=514: vxxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=514: vxxxxx#24 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=515: vxxxxx#24 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=515: vxxxxx#24 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=515: vxxxxx#24 nsp=1 mass=-400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=515: vxxxxx#24 nsp=1 mass=-400 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=515: vxxxxx#24 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=515: vxxxxx#24 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=516: sxxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=516: sxxxxx#24 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=516: sxxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=516: sxxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=516: sxxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=516: sxxxxx#24 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=517: sxxxxx#24 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=517: sxxxxx#24 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=517: sxxxxx#24 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=517: sxxxxx#24 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=517: sxxxxx#24 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=517: sxxxxx#24 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=518: oxxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=518: oxxxxx#24 nsp=1 mass=400 + 2.828427124746190e+01, 0.000000000000000e+00, // itest=518: oxxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=518: oxxxxx#24 nsp=1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=518: oxxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=518: oxxxxx#24 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=519: oxxxxx#24 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=519: oxxxxx#24 nsp=1 mass=-400 + 2.828427124746190e+01, 0.000000000000000e+00, // itest=519: oxxxxx#24 nsp=1 mass=-400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=519: oxxxxx#24 nsp=1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=519: oxxxxx#24 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=519: oxxxxx#24 nsp=1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=520: ixxxxx#25 nsp=1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=520: ixxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=520: ixxxxx#25 nsp=1 mass=400 + -1.414213562373095e+01, 0.000000000000000e+00, // itest=520: ixxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=520: ixxxxx#25 nsp=1 mass=400 + -2.828427124746190e+01, 0.000000000000000e+00 } ); // itest=520: ixxxxx#25 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=521: ixxxxx#25 nsp=1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=521: ixxxxx#25 nsp=1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=521: ixxxxx#25 nsp=1 mass=-400 + 1.414213562373095e+01, -0.000000000000000e+00, // itest=521: ixxxxx#25 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=521: ixxxxx#25 nsp=1 mass=-400 + -2.828427124746190e+01, 0.000000000000000e+00 } ); // itest=521: ixxxxx#25 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=522: vxxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=522: vxxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=522: vxxxxx#25 nsp=1 mass=400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=522: vxxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=522: vxxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=522: vxxxxx#25 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=523: vxxxxx#25 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=523: vxxxxx#25 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=523: vxxxxx#25 nsp=1 mass=-400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=523: vxxxxx#25 nsp=1 mass=-400 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=523: vxxxxx#25 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=523: vxxxxx#25 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=524: sxxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=524: sxxxxx#25 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=524: sxxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=524: sxxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=524: sxxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=524: sxxxxx#25 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=525: sxxxxx#25 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=525: sxxxxx#25 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=525: sxxxxx#25 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=525: sxxxxx#25 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=525: sxxxxx#25 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=525: sxxxxx#25 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=526: oxxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=526: oxxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=526: oxxxxx#25 nsp=1 mass=400 + -2.828427124746190e+01, 0.000000000000000e+00, // itest=526: oxxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=526: oxxxxx#25 nsp=1 mass=400 + -1.414213562373095e+01, 0.000000000000000e+00 } ); // itest=526: oxxxxx#25 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=527: oxxxxx#25 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=527: oxxxxx#25 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=527: oxxxxx#25 nsp=1 mass=-400 + -2.828427124746190e+01, 0.000000000000000e+00, // itest=527: oxxxxx#25 nsp=1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=527: oxxxxx#25 nsp=1 mass=-400 + 1.414213562373095e+01, -0.000000000000000e+00 } ); // itest=527: oxxxxx#25 nsp=1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=528: ixxxxx#26 nsp=1 mass=400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=528: ixxxxx#26 nsp=1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=528: ixxxxx#26 nsp=1 mass=400 + 5.999999999999999e+00, 7.999999999999999e+00, // itest=528: ixxxxx#26 nsp=1 mass=400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=528: ixxxxx#26 nsp=1 mass=400 + 1.200000000000000e+01, 1.600000000000000e+01 } ); // itest=528: ixxxxx#26 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=529: ixxxxx#26 nsp=1 mass=-400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=529: ixxxxx#26 nsp=1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00, // itest=529: ixxxxx#26 nsp=1 mass=-400 + -5.999999999999999e+00, -7.999999999999999e+00, // itest=529: ixxxxx#26 nsp=1 mass=-400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=529: ixxxxx#26 nsp=1 mass=-400 + 1.200000000000000e+01, 1.600000000000000e+01 } ); // itest=529: ixxxxx#26 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=530: vxxxxx#26 nsp=1 mass=400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=530: vxxxxx#26 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=530: vxxxxx#26 nsp=1 mass=400 + 0.000000000000000e+00, -5.656854249492381e-01, // itest=530: vxxxxx#26 nsp=1 mass=400 + 0.000000000000000e+00, 4.242640687119285e-01, // itest=530: vxxxxx#26 nsp=1 mass=400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=530: vxxxxx#26 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=531: vxxxxx#26 nsp=1 mass=-400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=531: vxxxxx#26 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=531: vxxxxx#26 nsp=1 mass=-400 + -0.000000000000000e+00, -5.656854249492381e-01, // itest=531: vxxxxx#26 nsp=1 mass=-400 + -0.000000000000000e+00, 4.242640687119285e-01, // itest=531: vxxxxx#26 nsp=1 mass=-400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=531: vxxxxx#26 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=532: sxxxxx#26 nsp=1 mass=400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=532: sxxxxx#26 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=532: sxxxxx#26 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=532: sxxxxx#26 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=532: sxxxxx#26 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=532: sxxxxx#26 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=533: sxxxxx#26 nsp=1 mass=-400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=533: sxxxxx#26 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=533: sxxxxx#26 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=533: sxxxxx#26 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=533: sxxxxx#26 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=533: sxxxxx#26 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=534: oxxxxx#26 nsp=1 mass=400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=534: oxxxxx#26 nsp=1 mass=400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=534: oxxxxx#26 nsp=1 mass=400 + 1.200000000000000e+01, -1.600000000000000e+01, // itest=534: oxxxxx#26 nsp=1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=534: oxxxxx#26 nsp=1 mass=400 + 5.999999999999999e+00, -7.999999999999999e+00 } ); // itest=534: oxxxxx#26 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=535: oxxxxx#26 nsp=1 mass=-400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=535: oxxxxx#26 nsp=1 mass=-400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=535: oxxxxx#26 nsp=1 mass=-400 + 1.200000000000000e+01, -1.600000000000000e+01, // itest=535: oxxxxx#26 nsp=1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00, // itest=535: oxxxxx#26 nsp=1 mass=-400 + -5.999999999999999e+00, 7.999999999999999e+00 } ); // itest=535: oxxxxx#26 nsp=1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=536: ixxxxx#27 nsp=1 mass=400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=536: ixxxxx#27 nsp=1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=536: ixxxxx#27 nsp=1 mass=400 + -7.999999999999999e+00, -5.999999999999999e+00, // itest=536: ixxxxx#27 nsp=1 mass=400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=536: ixxxxx#27 nsp=1 mass=400 + -1.600000000000000e+01, -1.200000000000000e+01 } ); // itest=536: ixxxxx#27 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=537: ixxxxx#27 nsp=1 mass=-400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=537: ixxxxx#27 nsp=1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00, // itest=537: ixxxxx#27 nsp=1 mass=-400 + 7.999999999999999e+00, 5.999999999999999e+00, // itest=537: ixxxxx#27 nsp=1 mass=-400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=537: ixxxxx#27 nsp=1 mass=-400 + -1.600000000000000e+01, -1.200000000000000e+01 } ); // itest=537: ixxxxx#27 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=538: vxxxxx#27 nsp=1 mass=400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=538: vxxxxx#27 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=538: vxxxxx#27 nsp=1 mass=400 + 0.000000000000000e+00, 4.242640687119285e-01, // itest=538: vxxxxx#27 nsp=1 mass=400 + 0.000000000000000e+00, -5.656854249492381e-01, // itest=538: vxxxxx#27 nsp=1 mass=400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=538: vxxxxx#27 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=539: vxxxxx#27 nsp=1 mass=-400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=539: vxxxxx#27 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=539: vxxxxx#27 nsp=1 mass=-400 + 0.000000000000000e+00, 4.242640687119285e-01, // itest=539: vxxxxx#27 nsp=1 mass=-400 + 0.000000000000000e+00, -5.656854249492381e-01, // itest=539: vxxxxx#27 nsp=1 mass=-400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=539: vxxxxx#27 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=540: sxxxxx#27 nsp=1 mass=400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=540: sxxxxx#27 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=540: sxxxxx#27 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=540: sxxxxx#27 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=540: sxxxxx#27 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=540: sxxxxx#27 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=541: sxxxxx#27 nsp=1 mass=-400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=541: sxxxxx#27 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=541: sxxxxx#27 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=541: sxxxxx#27 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=541: sxxxxx#27 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=541: sxxxxx#27 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=542: oxxxxx#27 nsp=1 mass=400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=542: oxxxxx#27 nsp=1 mass=400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=542: oxxxxx#27 nsp=1 mass=400 + -1.600000000000000e+01, 1.200000000000000e+01, // itest=542: oxxxxx#27 nsp=1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=542: oxxxxx#27 nsp=1 mass=400 + -7.999999999999999e+00, 5.999999999999999e+00 } ); // itest=542: oxxxxx#27 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=543: oxxxxx#27 nsp=1 mass=-400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=543: oxxxxx#27 nsp=1 mass=-400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=543: oxxxxx#27 nsp=1 mass=-400 + -1.600000000000000e+01, 1.200000000000000e+01, // itest=543: oxxxxx#27 nsp=1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00, // itest=543: oxxxxx#27 nsp=1 mass=-400 + 7.999999999999999e+00, -5.999999999999999e+00 } ); // itest=543: oxxxxx#27 nsp=1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=544: ixxxxx#28 nsp=1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=544: ixxxxx#28 nsp=1 mass=400 + 1.216552506059644e+01, 0.000000000000000e+00, // itest=544: ixxxxx#28 nsp=1 mass=400 + 4.931969619160719e+00, 5.260767593771432e+00, // itest=544: ixxxxx#28 nsp=1 mass=400 + 2.433105012119288e+01, 0.000000000000000e+00, // itest=544: ixxxxx#28 nsp=1 mass=400 + 9.863939238321439e+00, 1.052153518754287e+01 } ); // itest=544: ixxxxx#28 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=545: ixxxxx#28 nsp=1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=545: ixxxxx#28 nsp=1 mass=-400 + -1.216552506059644e+01, -0.000000000000000e+00, // itest=545: ixxxxx#28 nsp=1 mass=-400 + -4.931969619160719e+00, -5.260767593771432e+00, // itest=545: ixxxxx#28 nsp=1 mass=-400 + 2.433105012119288e+01, 0.000000000000000e+00, // itest=545: ixxxxx#28 nsp=1 mass=-400 + 9.863939238321439e+00, 1.052153518754287e+01 } ); // itest=545: ixxxxx#28 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=546: vxxxxx#28 nsp=1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=546: vxxxxx#28 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=546: vxxxxx#28 nsp=1 mass=400 + -2.321373168788980e-01, -5.158607041753289e-01, // itest=546: vxxxxx#28 nsp=1 mass=400 + -2.476131380041579e-01, 4.836194101643708e-01, // itest=546: vxxxxx#28 nsp=1 mass=400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=546: vxxxxx#28 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=547: vxxxxx#28 nsp=1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=547: vxxxxx#28 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=547: vxxxxx#28 nsp=1 mass=-400 + -2.321373168788980e-01, -5.158607041753289e-01, // itest=547: vxxxxx#28 nsp=1 mass=-400 + -2.476131380041579e-01, 4.836194101643708e-01, // itest=547: vxxxxx#28 nsp=1 mass=-400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=547: vxxxxx#28 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=548: sxxxxx#28 nsp=1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=548: sxxxxx#28 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=548: sxxxxx#28 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=548: sxxxxx#28 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=548: sxxxxx#28 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=548: sxxxxx#28 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=549: sxxxxx#28 nsp=1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=549: sxxxxx#28 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=549: sxxxxx#28 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=549: sxxxxx#28 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=549: sxxxxx#28 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=549: sxxxxx#28 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=550: oxxxxx#28 nsp=1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=550: oxxxxx#28 nsp=1 mass=400 + 2.433105012119288e+01, 0.000000000000000e+00, // itest=550: oxxxxx#28 nsp=1 mass=400 + 9.863939238321439e+00, -1.052153518754287e+01, // itest=550: oxxxxx#28 nsp=1 mass=400 + 1.216552506059644e+01, 0.000000000000000e+00, // itest=550: oxxxxx#28 nsp=1 mass=400 + 4.931969619160719e+00, -5.260767593771432e+00 } ); // itest=550: oxxxxx#28 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=551: oxxxxx#28 nsp=1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=551: oxxxxx#28 nsp=1 mass=-400 + 2.433105012119288e+01, 0.000000000000000e+00, // itest=551: oxxxxx#28 nsp=1 mass=-400 + 9.863939238321439e+00, -1.052153518754287e+01, // itest=551: oxxxxx#28 nsp=1 mass=-400 + -1.216552506059644e+01, -0.000000000000000e+00, // itest=551: oxxxxx#28 nsp=1 mass=-400 + -4.931969619160719e+00, 5.260767593771432e+00 } ); // itest=551: oxxxxx#28 nsp=1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=552: ixxxxx#29 nsp=1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=552: ixxxxx#29 nsp=1 mass=400 + 7.211102550927978e+00, 0.000000000000000e+00, // itest=552: ixxxxx#29 nsp=1 mass=400 + 8.320502943378436e+00, 8.875203139603666e+00, // itest=552: ixxxxx#29 nsp=1 mass=400 + 1.442220510185596e+01, 0.000000000000000e+00, // itest=552: ixxxxx#29 nsp=1 mass=400 + 1.664100588675688e+01, 1.775040627920733e+01 } ); // itest=552: ixxxxx#29 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=553: ixxxxx#29 nsp=1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=553: ixxxxx#29 nsp=1 mass=-400 + -7.211102550927978e+00, -0.000000000000000e+00, // itest=553: ixxxxx#29 nsp=1 mass=-400 + -8.320502943378436e+00, -8.875203139603666e+00, // itest=553: ixxxxx#29 nsp=1 mass=-400 + 1.442220510185596e+01, 0.000000000000000e+00, // itest=553: ixxxxx#29 nsp=1 mass=-400 + 1.664100588675688e+01, 1.775040627920733e+01 } ); // itest=553: ixxxxx#29 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=554: vxxxxx#29 nsp=1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=554: vxxxxx#29 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=554: vxxxxx#29 nsp=1 mass=400 + 2.321373168788980e-01, -5.158607041753289e-01, // itest=554: vxxxxx#29 nsp=1 mass=400 + 2.476131380041579e-01, 4.836194101643708e-01, // itest=554: vxxxxx#29 nsp=1 mass=400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=554: vxxxxx#29 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=555: vxxxxx#29 nsp=1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=555: vxxxxx#29 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=555: vxxxxx#29 nsp=1 mass=-400 + 2.321373168788980e-01, -5.158607041753289e-01, // itest=555: vxxxxx#29 nsp=1 mass=-400 + 2.476131380041579e-01, 4.836194101643708e-01, // itest=555: vxxxxx#29 nsp=1 mass=-400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=555: vxxxxx#29 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=556: sxxxxx#29 nsp=1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=556: sxxxxx#29 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=556: sxxxxx#29 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=556: sxxxxx#29 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=556: sxxxxx#29 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=556: sxxxxx#29 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=557: sxxxxx#29 nsp=1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=557: sxxxxx#29 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=557: sxxxxx#29 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=557: sxxxxx#29 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=557: sxxxxx#29 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=557: sxxxxx#29 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=558: oxxxxx#29 nsp=1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=558: oxxxxx#29 nsp=1 mass=400 + 1.442220510185596e+01, 0.000000000000000e+00, // itest=558: oxxxxx#29 nsp=1 mass=400 + 1.664100588675688e+01, -1.775040627920733e+01, // itest=558: oxxxxx#29 nsp=1 mass=400 + 7.211102550927978e+00, 0.000000000000000e+00, // itest=558: oxxxxx#29 nsp=1 mass=400 + 8.320502943378436e+00, -8.875203139603666e+00 } ); // itest=558: oxxxxx#29 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=559: oxxxxx#29 nsp=1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=559: oxxxxx#29 nsp=1 mass=-400 + 1.442220510185596e+01, 0.000000000000000e+00, // itest=559: oxxxxx#29 nsp=1 mass=-400 + 1.664100588675688e+01, -1.775040627920733e+01, // itest=559: oxxxxx#29 nsp=1 mass=-400 + -7.211102550927978e+00, -0.000000000000000e+00, // itest=559: oxxxxx#29 nsp=1 mass=-400 + -8.320502943378436e+00, 8.875203139603666e+00 } ); // itest=559: oxxxxx#29 nsp=1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=560: ixxxxx#30 nsp=1 mass=500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=560: ixxxxx#30 nsp=1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=560: ixxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=560: ixxxxx#30 nsp=1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=560: ixxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=560: ixxxxx#30 nsp=1 mass=500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=561: ixxxxx#30 nsp=1 mass=-500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=561: ixxxxx#30 nsp=1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=561: ixxxxx#30 nsp=1 mass=-500 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=561: ixxxxx#30 nsp=1 mass=-500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=561: ixxxxx#30 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=561: ixxxxx#30 nsp=1 mass=-500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=562: vxxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=562: vxxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=562: vxxxxx#30 nsp=1 mass=500 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=562: vxxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=562: vxxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=562: vxxxxx#30 nsp=1 mass=500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=563: vxxxxx#30 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=563: vxxxxx#30 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=563: vxxxxx#30 nsp=1 mass=-500 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=563: vxxxxx#30 nsp=1 mass=-500 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=563: vxxxxx#30 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=563: vxxxxx#30 nsp=1 mass=-500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=564: sxxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=564: sxxxxx#30 nsp=1 mass=500 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=564: sxxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=564: sxxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=564: sxxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=564: sxxxxx#30 nsp=1 mass=500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=565: sxxxxx#30 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=565: sxxxxx#30 nsp=1 mass=-500 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=565: sxxxxx#30 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=565: sxxxxx#30 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=565: sxxxxx#30 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=565: sxxxxx#30 nsp=1 mass=-500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=566: oxxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=566: oxxxxx#30 nsp=1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=566: oxxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=566: oxxxxx#30 nsp=1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=566: oxxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=566: oxxxxx#30 nsp=1 mass=500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=567: oxxxxx#30 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=567: oxxxxx#30 nsp=1 mass=-500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=567: oxxxxx#30 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=567: oxxxxx#30 nsp=1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=567: oxxxxx#30 nsp=1 mass=-500 + -0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=567: oxxxxx#30 nsp=1 mass=-500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=568: ixxxxx#31 nsp=1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=568: ixxxxx#31 nsp=1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=568: ixxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=568: ixxxxx#31 nsp=1 mass=400 + 2.828427124746190e+01, 0.000000000000000e+00, // itest=568: ixxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=568: ixxxxx#31 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=569: ixxxxx#31 nsp=1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=569: ixxxxx#31 nsp=1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=569: ixxxxx#31 nsp=1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=569: ixxxxx#31 nsp=1 mass=-400 + 2.828427124746190e+01, 0.000000000000000e+00, // itest=569: ixxxxx#31 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=569: ixxxxx#31 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=570: vxxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=570: vxxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=570: vxxxxx#31 nsp=1 mass=400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=570: vxxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=570: vxxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=570: vxxxxx#31 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=571: vxxxxx#31 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=571: vxxxxx#31 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=571: vxxxxx#31 nsp=1 mass=-400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=571: vxxxxx#31 nsp=1 mass=-400 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=571: vxxxxx#31 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=571: vxxxxx#31 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=572: sxxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=572: sxxxxx#31 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=572: sxxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=572: sxxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=572: sxxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=572: sxxxxx#31 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=573: sxxxxx#31 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=573: sxxxxx#31 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=573: sxxxxx#31 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=573: sxxxxx#31 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=573: sxxxxx#31 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=573: sxxxxx#31 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=574: oxxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=574: oxxxxx#31 nsp=1 mass=400 + 2.828427124746190e+01, 0.000000000000000e+00, // itest=574: oxxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=574: oxxxxx#31 nsp=1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=574: oxxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=574: oxxxxx#31 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=575: oxxxxx#31 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=575: oxxxxx#31 nsp=1 mass=-400 + 2.828427124746190e+01, 0.000000000000000e+00, // itest=575: oxxxxx#31 nsp=1 mass=-400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=575: oxxxxx#31 nsp=1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=575: oxxxxx#31 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=575: oxxxxx#31 nsp=1 mass=-400 diff --git a/epochX/cudacpp/CODEGEN/PLUGIN/CUDACPP_SA_OUTPUT/model_handling.py b/epochX/cudacpp/CODEGEN/PLUGIN/CUDACPP_SA_OUTPUT/model_handling.py index 803fa5e258..957d7753b1 100644 --- a/epochX/cudacpp/CODEGEN/PLUGIN/CUDACPP_SA_OUTPUT/model_handling.py +++ b/epochX/cudacpp/CODEGEN/PLUGIN/CUDACPP_SA_OUTPUT/model_handling.py @@ -645,7 +645,7 @@ def read_aloha_template_files(self, ext): out = [] if ext == 'h': file = open(pjoin(path, self.helas_h)).read() else: file = open(pjoin(path, self.helas_cc)).read() - file = '\n'.join( file.split('\n')[8:] ) # skip first 8 lines in helas.h/cu (copyright) + file = '\n'.join( file.split('\n')[9:] ) # skip first 9 lines in helas.h/cu (copyright including ALOHA) out.append( file ) return out @@ -660,10 +660,10 @@ def read_template_file(cls, filename, classpath=False): def write_parameters(self, params): res = super().write_parameters(params) res = res.replace('std::complex<','cxsmpl<') # custom simplex complex class (with constexpr arithmetics) - res = res.replace('\n','\n ') + res = res.replace('\n','\n ') res = res.replace(',',', ') - if res == '' : res = ' // (none)' - else : res = ' ' + res # add leading ' ' after the '// Model' line + if res == '' : res = ' // (none)' + else : res = ' ' + res # add leading ' ' after the '// Model' line return res # AV - overload export_cpp.UFOModelConverterCPP method (improve formatting) @@ -686,6 +686,11 @@ def write_set_parameters(self, params): res = res.replace('\n','\n ') res = res.replace('( - ','( -') # post-fix for susy res = res.replace(', - ',', -') # post-fix for susy + res = res.replace('Re+mdl','Re + mdl') # post-fix for smeft + res = res.replace('Re+0','Re + 0') # post-fix for smeft + res = res.replace('He-2','He - 2') # post-fix for smeft + res = res.replace(', - ',', -') # post-fix for smeft + ###misc.sprint( "'"+res+"'" ) return res # AV - new method (merging write_parameters and write_set_parameters) @@ -737,17 +742,21 @@ def write_hardcoded_parameters(self, params): if parval.startswith('slha.get_block_entry'): parval = parval.split(',')[2].lstrip(' ').rstrip(');') + ';' parset_pars.append( par ) parset_lines[par] = parval # includes a trailing ';' - misc.sprint( 'parset_pars size =', len(parset_pars) ) - misc.sprint( 'parset_lines size =', len(parset_lines), ', keys size =', len(parset_lines.keys()) ) + ###misc.sprint( 'parset_pars size =', len(parset_pars) ) + ###misc.sprint( 'parset_lines size =', len(parset_lines), ', keys size =', len(parset_lines.keys()) ) ###print( parset_lines ) # for debugging ###for line in parset_lines: misc.sprint(line) # for debugging assert len(pardef_lines) == len(parset_lines), 'len(pardef_lines) != len(parset_lines)' # AV sanity check (same number of parameters) - res = ' '.join( pardef_lines[par] + ' = ' + parset_lines[par] + '\n' for par in parset_pars ) # no leading ' ' on first row + res = ' '.join( pardef_lines[par] + ' = ' + parset_lines[par] + '\n' for par in parset_pars ) # no leading ' ' on first row res = res.replace(' ;',';') res = res.replace('= - ','= -') # post-fix for susy res = res.replace('( - ','( -') # post-fix for susy res = res.replace(', - ',', -') # post-fix for SM no_b_mass + res = res.replace('Re+mdl','Re + mdl') # post-fix for smeft + res = res.replace('Re+0','Re + 0') # post-fix for smeft + res = res.replace('He-2','He - 2') # post-fix for smeft ###print(res); assert(False) + ###misc.sprint( "'"+res+"'" ) return res # AV - replace export_cpp.UFOModelConverterCPP method (split writing of parameters and fixes for Majorana particles #622) @@ -765,12 +774,14 @@ def super_write_set_parameters_onlyfixMajorana(self, hardcoded): # FIXME! split print( 'super_write_set_parameters_onlyfixMajorana (hardcoded=%s)'%hardcoded ) res_strings = [] # Correct width sign for Majorana particles (where the width and mass need to have the same sign) + prefix = " " if hardcoded else "" # hardcoded code goes into Parameters.h and needs two extra leading spaces due to a namespace... for particle in self.model.get('particles'): if particle.is_fermion() and particle.get('self_antipart') and \ particle.get('width').lower() != 'zero': - res_strings.append(" if( %s < 0 )" % particle.get('mass')) - res_strings.append(" %(width)s = -abs( %(width)s );" % {"width": particle.get('width')}) - return '\n' + '\n'.join(res_strings) if res_strings else '' + res_strings.append( prefix+" if( %s < 0 )" % particle.get('mass')) + res_strings.append( prefix+" %(width)s = -abs( %(width)s );" % {"width": particle.get('width')}) + if not hardcoded: return '\n' + '\n'.join(res_strings) if res_strings else '' + else: return '\n'.join(res_strings) # AV - replace export_cpp.UFOModelConverterCPP method (add hardcoded parameters and couplings) def super_generate_parameters_class_files(self): @@ -780,16 +791,17 @@ def super_generate_parameters_class_files(self): replace_dict['model_name'] = self.model_name params_indep = [ line.replace('aS, ','') for line in self.write_parameters(self.params_indep).split('\n') ] - replace_dict['independent_parameters'] = '// Model parameters independent of aS\n //double aS; // now retrieved event-by-event (as G) from Fortran (running alphas #373)\n' + '\n'.join( params_indep ) + replace_dict['independent_parameters'] = '// Model parameters independent of aS\n //double aS; // now retrieved event-by-event (as G) from Fortran (running alphas #373)\n' + '\n'.join( params_indep ) replace_dict['independent_couplings'] = '// Model couplings independent of aS\n' + self.write_parameters(self.coups_indep) - params_dep = [ ' //' + line[2:] + ' // now computed event-by-event (running alphas #373)' for line in self.write_parameters(self.params_dep).split('\n') ] + params_dep = [ ' //' + line[4:] + ' // now computed event-by-event (running alphas #373)' for line in self.write_parameters(self.params_dep).split('\n') ] replace_dict['dependent_parameters'] = '// Model parameters dependent on aS\n' + '\n'.join( params_dep ) - coups_dep = [ ' //' + line[2:] + ' // now computed event-by-event (running alphas #373)' for line in self.write_parameters(list(self.coups_dep.values())).split('\n') ] + coups_dep = [ ' //' + line[4:] + ' // now computed event-by-event (running alphas #373)' for line in self.write_parameters(list(self.coups_dep.values())).split('\n') ] replace_dict['dependent_couplings'] = '// Model couplings dependent on aS\n' + '\n'.join( coups_dep ) set_params_indep = [ line.replace('aS','//aS') + ' // now retrieved event-by-event (as G) from Fortran (running alphas #373)' if line.startswith( ' aS =' ) else line for line in self.write_set_parameters(self.params_indep).split('\n') ] replace_dict['set_independent_parameters'] = '\n'.join( set_params_indep ) + replace_dict['set_independent_parameters'] += self.super_write_set_parameters_onlyfixMajorana( hardcoded=False ) # add fixes for Majorana particles only in the aS-indep parameters #622 replace_dict['set_independent_couplings'] = self.write_set_parameters(self.coups_indep) replace_dict['set_dependent_parameters'] = self.write_set_parameters(self.params_dep) replace_dict['set_dependent_couplings'] = self.write_set_parameters(list(self.coups_dep.values())) @@ -797,7 +809,6 @@ def super_generate_parameters_class_files(self): if '"aS =' in line else line for line in self.write_print_parameters(self.params_indep).split('\n') ] replace_dict['print_independent_parameters'] = '\n'.join( print_params_indep ) - replace_dict['print_independent_parameters'] += self.super_write_set_parameters_onlyfixMajorana( hardcoded=False ) # add fixes for Majorana particles only in the aS-indep parameters #622 replace_dict['print_independent_couplings'] = self.write_print_parameters(self.coups_indep) replace_dict['print_dependent_parameters'] = self.write_print_parameters(self.params_dep) replace_dict['print_dependent_couplings'] = self.write_print_parameters(list(self.coups_dep.values())) @@ -818,15 +829,15 @@ def super_generate_parameters_class_files(self): replace_dict['hardcoded_dependent_couplings'] = '\n'.join( hrd_coups_dep ) replace_dict['nicoup'] = len( self.coups_indep ) if len( self.coups_indep ) > 0 : - iicoup = [ ' //constexpr size_t ixcoup_%s = %d + Parameters_%s_dependentCouplings::ndcoup; // out of ndcoup+nicoup' % (par.name, id, self.model_name) for (id, par) in enumerate(self.coups_indep) ] + iicoup = [ ' //constexpr size_t ixcoup_%s = %d + Parameters_%s_dependentCouplings::ndcoup; // out of ndcoup+nicoup' % (par.name, id, self.model_name) for (id, par) in enumerate(self.coups_indep) ] replace_dict['iicoup'] = '\n'.join( iicoup ) else: - replace_dict['iicoup'] = ' // NB: there are no aS-independent couplings in this physics process' + replace_dict['iicoup'] = ' // NB: there are no aS-independent couplings in this physics process' replace_dict['ndcoup'] = len( self.coups_dep ) if len( self.coups_dep ) > 0 : - idcoup = [ ' constexpr size_t idcoup_%s = %d;' % (name, id) for (id, name) in enumerate(self.coups_dep) ] + idcoup = [ ' constexpr size_t idcoup_%s = %d;' % (name, id) for (id, name) in enumerate(self.coups_dep) ] replace_dict['idcoup'] = '\n'.join( idcoup ) - dcoupdecl = [ ' cxtype_sv %s;' % name for name in self.coups_dep ] + dcoupdecl = [ ' cxtype_sv %s;' % name for name in self.coups_dep ] replace_dict['dcoupdecl'] = '\n'.join( dcoupdecl ) dcoupsetdpar = [] foundG = False @@ -834,9 +845,9 @@ def super_generate_parameters_class_files(self): if line != '': dcoupsetdpar.append( ' ' + line.replace('constexpr double', 'const fptype_sv' if foundG else '//const fptype_sv' ) ) if 'constexpr double G =' in line: foundG = True - replace_dict['dcoupsetdpar'] = ' ' + '\n'.join( dcoupsetdpar ) + replace_dict['dcoupsetdpar'] = ' ' + '\n'.join( dcoupsetdpar ) dcoupsetdcoup = [ ' ' + line.replace('constexpr cxsmpl ','out.').replace('mdl_complexi', 'cI') for line in self.write_hardcoded_parameters(list(self.coups_dep.values())).split('\n') if line != '' ] - replace_dict['dcoupsetdcoup'] = ' ' + '\n'.join( dcoupsetdcoup ) + replace_dict['dcoupsetdcoup'] = ' ' + '\n'.join( dcoupsetdcoup ) dcoupaccessbuffer = [ ' fptype* %ss = C_ACCESS::idcoupAccessBuffer( couplings, idcoup_%s );'%( name, name ) for name in self.coups_dep ] replace_dict['dcoupaccessbuffer'] = '\n'.join( dcoupaccessbuffer ) + '\n' dcoupkernelaccess = [ ' cxtype_sv_ref %ss_sv = C_ACCESS::kernelAccess( %ss );'%( name, name ) for name in self.coups_dep ] @@ -844,19 +855,19 @@ def super_generate_parameters_class_files(self): dcoupcompute = [ ' %ss_sv = couplings_sv.%s;'%( name, name ) for name in self.coups_dep ] replace_dict['dcoupcompute'] = '\n'.join( dcoupcompute ) # Special handling in EFT for fptype=float using SIMD - dcoupoutfptypev2 = [ ' fptype_v %sr_v;\n fptype_v %si_v;'%(name,name) for name in self.coups_dep ] + dcoupoutfptypev2 = [ ' fptype_v %sr_v;\n fptype_v %si_v;'%(name,name) for name in self.coups_dep ] replace_dict['dcoupoutfptypev2'] = '\n' + '\n'.join( dcoupoutfptypev2 ) replace_dict['dcoupsetdpar2'] = replace_dict['dcoupsetdpar'].replace('fptype_sv','fptype') dcoupsetdcoup2 = [ ' ' + line.replace('constexpr cxsmpl ','const cxtype ').replace('mdl_complexi', 'cI') for line in self.write_hardcoded_parameters(list(self.coups_dep.values())).split('\n') if line != '' ] - dcoupsetdcoup2 += [ ' %sr_v[i] = cxreal( %s );\n %si_v[i] = cximag( %s );'%(name,name,name,name) for name in self.coups_dep ] + dcoupsetdcoup2 += [ ' %sr_v[i] = cxreal( %s );\n %si_v[i] = cximag( %s );'%(name,name,name,name) for name in self.coups_dep ] replace_dict['dcoupsetdcoup2'] = ' ' + '\n'.join( dcoupsetdcoup2 ) - dcoupoutdcoup2 = [ ' out.%s = cxtype_v( %sr_v, %si_v );'%(name,name,name) for name in self.coups_dep ] + dcoupoutdcoup2 = [ ' out.%s = cxtype_v( %sr_v, %si_v );'%(name,name,name) for name in self.coups_dep ] replace_dict['dcoupoutdcoup2'] = '\n' + '\n'.join( dcoupoutdcoup2 ) else: - replace_dict['idcoup'] = ' // NB: there are no aS-dependent couplings in this physics process' - replace_dict['dcoupdecl'] = ' // (none)' - replace_dict['dcoupsetdpar'] = ' // (none)' - replace_dict['dcoupsetdcoup'] = ' // (none)' + replace_dict['idcoup'] = ' // NB: there are no aS-dependent couplings in this physics process' + replace_dict['dcoupdecl'] = ' // (none)' + replace_dict['dcoupsetdpar'] = ' // (none)' + replace_dict['dcoupsetdcoup'] = ' // (none)' replace_dict['dcoupaccessbuffer'] = '' replace_dict['dcoupkernelaccess'] = '' replace_dict['dcoupcompute'] = ' // NB: there are no aS-dependent couplings in this physics process' @@ -868,26 +879,26 @@ def super_generate_parameters_class_files(self): # Require HRDCOD=1 in EFT and special handling in EFT for fptype=float using SIMD if self.model_name == 'sm' : replace_dict['efterror'] = '' - replace_dict['eftspecial1'] = ' // Begin SM implementation - no special handling of vectors of floats as in EFT (#439)' - replace_dict['eftspecial2'] = ' // End SM implementation - no special handling of vectors of floats as in EFT (#439)' + replace_dict['eftspecial1'] = ' // Begin SM implementation - no special handling of vectors of floats as in EFT (#439)' + replace_dict['eftspecial2'] = ' // End SM implementation - no special handling of vectors of floats as in EFT (#439)' else: replace_dict['efterror'] = '\n#error This non-SM physics process only supports MGONGPU_HARDCODE_PARAM builds (#439): please run "make HRDCOD=1"' - replace_dict['eftspecial1'] = ' // Begin non-SM (e.g. EFT) implementation - special handling of vectors of floats (#439)' + replace_dict['eftspecial1'] = ' // Begin non-SM (e.g. EFT) implementation - special handling of vectors of floats (#439)' replace_dict['eftspecial1'] += '\n#if not( defined MGONGPU_CPPSIMD && defined MGONGPU_FPTYPE_FLOAT )' replace_dict['eftspecial2'] = """#else - // ** NB #439: special handling is necessary ONLY FOR VECTORS OF FLOATS (variable Gs are vector floats, fixed parameters are scalar doubles) - // Use an explicit loop to avoid <> - // Problems may come e.g. in EFTs from multiplying a vector float (related to aS-dependent G) by a scalar double (aS-independent parameters)%(dcoupoutfptypev2)s - for( int i = 0; i < neppV; i++ ) - { - const fptype& G = G_sv[i]; - // Model parameters dependent on aS + // ** NB #439: special handling is necessary ONLY FOR VECTORS OF FLOATS (variable Gs are vector floats, fixed parameters are scalar doubles) + // Use an explicit loop to avoid <> + // Problems may come e.g. in EFTs from multiplying a vector float (related to aS-dependent G) by a scalar double (aS-independent parameters)%(dcoupoutfptypev2)s + for( int i = 0; i < neppV; i++ ) + { + const fptype& G = G_sv[i]; + // Model parameters dependent on aS %(dcoupsetdpar2)s - // Model couplings dependent on aS -%(dcoupsetdcoup2)s - }%(dcoupoutdcoup2)s + // Model couplings dependent on aS + %(dcoupsetdcoup2)s + }%(dcoupoutdcoup2)s #endif""" % replace_dict - replace_dict['eftspecial2'] += '\n // End non-SM (e.g. EFT) implementation - special handling of vectors of floats (#439)' + replace_dict['eftspecial2'] += '\n // End non-SM (e.g. EFT) implementation - special handling of vectors of floats (#439)' file_h = self.read_template_file(self.param_template_h) % replace_dict file_cc = self.read_template_file(self.param_template_cc) % replace_dict return file_h, file_cc @@ -962,7 +973,7 @@ def write_aloha_routines(self): replace_dict['function_definitions'] = '\n'.join(template_cc_files) file_h = self.read_template_file(self.aloha_template_h) % replace_dict file_cc = self.read_template_file(self.aloha_template_cc) % replace_dict - file_cc = '\n'.join( file_cc.split('\n')[8:] ) # skip first 8 lines in cpp_hel_amps_cc.inc (copyright) + file_cc = '\n'.join( file_cc.split('\n')[9:] ) # skip first 9 lines in cpp_hel_amps_cc.inc (copyright including ALOHA) # Write the HelAmps_sm.h and HelAmps_sm.cc files ###PLUGIN_writers.CPPWriter(model_h_file).writelines(file_h) ###PLUGIN_writers.CPPWriter(model_cc_file).writelines(file_cc) diff --git a/epochX/cudacpp/ee_mumu.mad/CODEGEN_mad_ee_mumu_log.txt b/epochX/cudacpp/ee_mumu.mad/CODEGEN_mad_ee_mumu_log.txt index 528176e84e..d838ca8455 100644 --- a/epochX/cudacpp/ee_mumu.mad/CODEGEN_mad_ee_mumu_log.txt +++ b/epochX/cudacpp/ee_mumu.mad/CODEGEN_mad_ee_mumu_log.txt @@ -62,7 +62,7 @@ generate e+ e- > mu+ mu- No model currently active, so we import the Standard Model INFO: load particles INFO: load vertices -DEBUG: model prefixing takes 0.004788637161254883  +DEBUG: model prefixing takes 0.004617929458618164  INFO: Restrict model sm with file models/sm/restrict_default.dat . DEBUG: Simplifying conditional expressions  DEBUG: remove interactions: u s w+ at order: QED=1  @@ -173,35 +173,35 @@ INFO: Organizing processes into subprocess groups INFO: Generating Helas calls for process: e+ e- > mu+ mu- WEIGHTED<=4 @1 INFO: Processing color information for process: e+ e- > mu+ mu- @1 INFO: Creating files in directory P1_epem_mupmum -DEBUG: Entering PLUGIN_OneProcessExporter.__init__ [model_handling.py at line 1028]  -DEBUG: kwargs[prefix] = 0 [model_handling.py at line 1029]  -DEBUG: proc_id =  1 [model_handling.py at line 1034]  -DEBUG: process_exporter_cpp =  [export_v4.py at line 6174]  +DEBUG: Entering PLUGIN_OneProcessExporter.__init__ [model_handling.py at line 1039]  +DEBUG: kwargs[prefix] = 0 [model_handling.py at line 1040]  +DEBUG: proc_id =  1 [model_handling.py at line 1045]  +DEBUG: process_exporter_cpp =  [export_v4.py at line 6174]  INFO: Creating files in directory . -DEBUG: Entering PLUGIN_OneProcessExporter.generate_process_files [model_handling.py at line 1286]  -DEBUG: self.include_multi_channel is already defined: this is madevent+second_exporter mode [model_handling.py at line 1288]  +DEBUG: Entering PLUGIN_OneProcessExporter.generate_process_files [model_handling.py at line 1297]  +DEBUG: self.include_multi_channel is already defined: this is madevent+second_exporter mode [model_handling.py at line 1299]  FileWriter for ././CPPProcess.h -DEBUG: Entering PLUGIN_OneProcessExporter.write_process_h_file [model_handling.py at line 1442]  +DEBUG: Entering PLUGIN_OneProcessExporter.write_process_h_file [model_handling.py at line 1453]  FileWriter for ././CPPProcess.cc -DEBUG: Entering PLUGIN_OneProcessExporter.write_process_cc_file [model_handling.py at line 1464]  -DEBUG: Entering PLUGIN_OneProcessExporter.get_sigmaKin_lines [model_handling.py at line 1132]  -DEBUG: self.include_multi_channel =  [1, 2] [model_handling.py at line 1133]  -DEBUG: self.support_multichannel =  True [model_handling.py at line 1134]  -DEBUG: type(self.helas_call_writer) =  [model_handling.py at line 1151]  -DEBUG: self.support_multichannel, self.include_multi_channel =  True [1, 2] [model_handling.py at line 1152]  -DEBUG: multi_channel =  {1: [0], 2: [1]} [model_handling.py at line 1158]  -DEBUG: multi_channel_map =  {1: [0], 2: [1]} [model_handling.py at line 1643]  -DEBUG: diag_to_config =  {1: 1, 2: 2} [model_handling.py at line 1698]  +DEBUG: Entering PLUGIN_OneProcessExporter.write_process_cc_file [model_handling.py at line 1475]  +DEBUG: Entering PLUGIN_OneProcessExporter.get_sigmaKin_lines [model_handling.py at line 1143]  +DEBUG: self.include_multi_channel =  [1, 2] [model_handling.py at line 1144]  +DEBUG: self.support_multichannel =  True [model_handling.py at line 1145]  +DEBUG: type(self.helas_call_writer) =  [model_handling.py at line 1162]  +DEBUG: self.support_multichannel, self.include_multi_channel =  True [1, 2] [model_handling.py at line 1163]  +DEBUG: multi_channel =  {1: [0], 2: [1]} [model_handling.py at line 1169]  +DEBUG: multi_channel_map =  {1: [0], 2: [1]} [model_handling.py at line 1654]  +DEBUG: diag_to_config =  {1: 1, 2: 2} [model_handling.py at line 1709]  INFO: Created files CPPProcess.h and CPPProcess.cc in directory ./. -DEBUG: Entering PLUGIN_OneProcessExporter.edit_CMakeLists [model_handling.py at line 1332]  -DEBUG: Entering PLUGIN_OneProcessExporter.edit_check_sa [model_handling.py at line 1341]  -DEBUG: Entering PLUGIN_OneProcessExporter.edit_mgonGPU [model_handling.py at line 1358]  -DEBUG: Entering PLUGIN_OneProcessExporter.edit_processidfile [model_handling.py at line 1378]  -DEBUG: Entering PLUGIN_OneProcessExporter.edit_coloramps [model_handling.py at line 1390]  -DEBUG: Entering PLUGIN_OneProcessExporter.edit_testxxx [model_handling.py at line 1408]  -DEBUG: Entering PLUGIN_OneProcessExporter.edit_memorybuffers [model_handling.py at line 1419]  -DEBUG: Entering PLUGIN_OneProcessExporter.edit_memoryaccesscouplings [model_handling.py at line 1430]  -DEBUG: 'Copying test reference file: ', template_ref =  Copying test reference file: /data/avalassi/GPU2023/MG5aMC/ghav-mg5amcnlo/PLUGIN/CUDACPP_SA_OUTPUT/madgraph/iolibs/template_files/../../../test/ref/dump_CPUTest.Sigma_sm_epem_mupmum.txt [model_handling.py at line 1324]  +DEBUG: Entering PLUGIN_OneProcessExporter.edit_CMakeLists [model_handling.py at line 1343]  +DEBUG: Entering PLUGIN_OneProcessExporter.edit_check_sa [model_handling.py at line 1352]  +DEBUG: Entering PLUGIN_OneProcessExporter.edit_mgonGPU [model_handling.py at line 1369]  +DEBUG: Entering PLUGIN_OneProcessExporter.edit_processidfile [model_handling.py at line 1389]  +DEBUG: Entering PLUGIN_OneProcessExporter.edit_coloramps [model_handling.py at line 1401]  +DEBUG: Entering PLUGIN_OneProcessExporter.edit_testxxx [model_handling.py at line 1419]  +DEBUG: Entering PLUGIN_OneProcessExporter.edit_memorybuffers [model_handling.py at line 1430]  +DEBUG: Entering PLUGIN_OneProcessExporter.edit_memoryaccesscouplings [model_handling.py at line 1441]  +DEBUG: 'Copying test reference file: ', template_ref =  Copying test reference file: /data/avalassi/GPU2023/MG5aMC/ghav-mg5amcnlo/PLUGIN/CUDACPP_SA_OUTPUT/madgraph/iolibs/template_files/../../../test/ref/dump_CPUTest.Sigma_sm_epem_mupmum.txt [model_handling.py at line 1335]  DEBUG: proc_id =  1 [export_cpp.py at line 710]  DEBUG: config_map =  [1, 2] [export_cpp.py at line 711]  DEBUG: subproc_number =  0 [export_cpp.py at line 712]  @@ -210,19 +210,19 @@ INFO: Created files CPPProcess.h and CPPProcess.cc in directory ./. INFO: Generating Feynman diagrams for Process: e+ e- > mu+ mu- WEIGHTED<=4 @1 INFO: Finding symmetric diagrams for subprocess group epem_mupmum Generated helas calls for 1 subprocesses (2 diagrams) in 0.004 s -Wrote files for 8 helas calls in 0.094 s +Wrote files for 8 helas calls in 0.093 s ALOHA: aloha starts to compute helicity amplitudes ALOHA: aloha creates FFV1 routines ALOHA: aloha creates FFV2 routines ALOHA: aloha creates FFV4 routines -ALOHA: aloha creates 3 routines in 0.260 s +ALOHA: aloha creates 3 routines in 0.175 s DEBUG: Entering PLUGIN_ProcessExporter.convert_model (create the model) [output.py at line 194]  ALOHA: aloha starts to compute helicity amplitudes ALOHA: aloha creates FFV1 routines ALOHA: aloha creates FFV2 routines ALOHA: aloha creates FFV4 routines ALOHA: aloha creates FFV2_4 routines -ALOHA: aloha creates 7 routines in 0.239 s +ALOHA: aloha creates 7 routines in 0.217 s FFV1 FFV1 FFV2 @@ -234,16 +234,10 @@ ALOHA: aloha creates 7 routines in 0.239 s FileWriter for /data/avalassi/GPU2023/MG5aMC/ghav-mg5amcnlo/CODEGEN_mad_ee_mumu/src/./HelAmps_sm.h INFO: Created file HelAmps_sm.h in directory /data/avalassi/GPU2023/MG5aMC/ghav-mg5amcnlo/CODEGEN_mad_ee_mumu/src/. super_write_set_parameters_onlyfixMajorana (hardcoded=False) -DEBUG: 'pardef_lines size =', len(pardef_lines), ', keys size =', len(pardef_lines.keys()) =  pardef_lines size = 48 , keys size = 48 [model_handling.py at line 724]  -DEBUG: 'parset_pars size =', len(parset_pars) =  parset_pars size = 48 [model_handling.py at line 740]  -DEBUG: 'parset_lines size =', len(parset_lines), ', keys size =', len(parset_lines.keys()) =  parset_lines size = 48 , keys size = 48 [model_handling.py at line 741]  +DEBUG: 'pardef_lines size =', len(pardef_lines), ', keys size =', len(pardef_lines.keys()) =  pardef_lines size = 48 , keys size = 48 [model_handling.py at line 729]  super_write_set_parameters_onlyfixMajorana (hardcoded=True) -DEBUG: 'pardef_lines size =', len(pardef_lines), ', keys size =', len(pardef_lines.keys()) =  pardef_lines size = 3 , keys size = 3 [model_handling.py at line 724]  -DEBUG: 'parset_pars size =', len(parset_pars) =  parset_pars size = 3 [model_handling.py at line 740]  -DEBUG: 'parset_lines size =', len(parset_lines), ', keys size =', len(parset_lines.keys()) =  parset_lines size = 3 , keys size = 3 [model_handling.py at line 741]  -DEBUG: 'pardef_lines size =', len(pardef_lines), ', keys size =', len(pardef_lines.keys()) =  pardef_lines size = 3 , keys size = 3 [model_handling.py at line 724]  -DEBUG: 'parset_pars size =', len(parset_pars) =  parset_pars size = 3 [model_handling.py at line 740]  -DEBUG: 'parset_lines size =', len(parset_lines), ', keys size =', len(parset_lines.keys()) =  parset_lines size = 3 , keys size = 3 [model_handling.py at line 741]  +DEBUG: 'pardef_lines size =', len(pardef_lines), ', keys size =', len(pardef_lines.keys()) =  pardef_lines size = 3 , keys size = 3 [model_handling.py at line 729]  +DEBUG: 'pardef_lines size =', len(pardef_lines), ', keys size =', len(pardef_lines.keys()) =  pardef_lines size = 3 , keys size = 3 [model_handling.py at line 729]  FileWriter for /data/avalassi/GPU2023/MG5aMC/ghav-mg5amcnlo/CODEGEN_mad_ee_mumu/src/./Parameters_sm.h FileWriter for /data/avalassi/GPU2023/MG5aMC/ghav-mg5amcnlo/CODEGEN_mad_ee_mumu/src/./Parameters_sm.cc INFO: Created files Parameters_sm.h and Parameters_sm.cc in directory @@ -260,6 +254,6 @@ Type "launch" to generate events from this process, or see Run "open index.html" to see more information about this process. quit -real 0m1.855s -user 0m1.538s -sys 0m0.189s +real 0m1.749s +user 0m1.524s +sys 0m0.212s diff --git a/epochX/cudacpp/ee_mumu.mad/SubProcesses/Bridge.h b/epochX/cudacpp/ee_mumu.mad/SubProcesses/Bridge.h index 4cafe0c997..d7e629cacd 100644 --- a/epochX/cudacpp/ee_mumu.mad/SubProcesses/Bridge.h +++ b/epochX/cudacpp/ee_mumu.mad/SubProcesses/Bridge.h @@ -152,32 +152,32 @@ namespace mg5amcCpu #ifdef __CUDACC__ int m_gputhreads; // number of gpu threads (default set from number of events, can be modified) int m_gpublocks; // number of gpu blocks (default set from number of events, can be modified) - mg5amcGpu::DeviceBuffer m_devMomentaF; - mg5amcGpu::DeviceBufferMomenta m_devMomentaC; - mg5amcGpu::DeviceBufferGs m_devGs; - mg5amcGpu::DeviceBufferRndNumHelicity m_devRndHel; - mg5amcGpu::DeviceBufferRndNumColor m_devRndCol; - mg5amcGpu::DeviceBufferMatrixElements m_devMEs; - mg5amcGpu::DeviceBufferSelectedHelicity m_devSelHel; - mg5amcGpu::DeviceBufferSelectedColor m_devSelCol; - mg5amcGpu::PinnedHostBufferGs m_hstGs; - mg5amcGpu::PinnedHostBufferRndNumHelicity m_hstRndHel; - mg5amcGpu::PinnedHostBufferRndNumColor m_hstRndCol; - mg5amcGpu::PinnedHostBufferMatrixElements m_hstMEs; - mg5amcGpu::PinnedHostBufferSelectedHelicity m_hstSelHel; - mg5amcGpu::PinnedHostBufferSelectedColor m_hstSelCol; - std::unique_ptr m_pmek; + DeviceBuffer m_devMomentaF; + DeviceBufferMomenta m_devMomentaC; + DeviceBufferGs m_devGs; + DeviceBufferRndNumHelicity m_devRndHel; + DeviceBufferRndNumColor m_devRndCol; + DeviceBufferMatrixElements m_devMEs; + DeviceBufferSelectedHelicity m_devSelHel; + DeviceBufferSelectedColor m_devSelCol; + PinnedHostBufferGs m_hstGs; + PinnedHostBufferRndNumHelicity m_hstRndHel; + PinnedHostBufferRndNumColor m_hstRndCol; + PinnedHostBufferMatrixElements m_hstMEs; + PinnedHostBufferSelectedHelicity m_hstSelHel; + PinnedHostBufferSelectedColor m_hstSelCol; + std::unique_ptr m_pmek; //static constexpr int s_gputhreadsmin = 16; // minimum number of gpu threads (TEST VALUE FOR MADEVENT) static constexpr int s_gputhreadsmin = 32; // minimum number of gpu threads (DEFAULT) #else - mg5amcCpu::HostBufferMomenta m_hstMomentaC; - mg5amcCpu::HostBufferGs m_hstGs; - mg5amcCpu::HostBufferRndNumHelicity m_hstRndHel; - mg5amcCpu::HostBufferRndNumColor m_hstRndCol; - mg5amcCpu::HostBufferMatrixElements m_hstMEs; - mg5amcCpu::HostBufferSelectedHelicity m_hstSelHel; - mg5amcCpu::HostBufferSelectedColor m_hstSelCol; - std::unique_ptr m_pmek; + HostBufferMomenta m_hstMomentaC; + HostBufferGs m_hstGs; + HostBufferRndNumHelicity m_hstRndHel; + HostBufferRndNumColor m_hstRndCol; + HostBufferMatrixElements m_hstMEs; + HostBufferSelectedHelicity m_hstSelHel; + HostBufferSelectedColor m_hstSelCol; + std::unique_ptr m_pmek; #endif }; @@ -244,12 +244,12 @@ namespace mg5amcCpu } std::cout << "WARNING! Instantiate device Bridge (nevt=" << m_nevt << ", gpublocks=" << m_gpublocks << ", gputhreads=" << m_gputhreads << ", gpublocks*gputhreads=" << m_gpublocks * m_gputhreads << ")" << std::endl; - mg5amcGpu::CPPProcess process( /*verbose=*/false ); - m_pmek.reset( new mg5amcGpu::MatrixElementKernelDevice( m_devMomentaC, m_devGs, m_devRndHel, m_devRndCol, m_devMEs, m_devSelHel, m_devSelCol, m_gpublocks, m_gputhreads ) ); + CPPProcess process( /*verbose=*/false ); + m_pmek.reset( new MatrixElementKernelDevice( m_devMomentaC, m_devGs, m_devRndHel, m_devRndCol, m_devMEs, m_devSelHel, m_devSelCol, m_gpublocks, m_gputhreads ) ); #else std::cout << "WARNING! Instantiate host Bridge (nevt=" << m_nevt << ")" << std::endl; - mg5amcCpu::CPPProcess process( /*verbose=*/false ); - m_pmek.reset( new mg5amcCpu::MatrixElementKernelHost( m_hstMomentaC, m_hstGs, m_hstRndHel, m_hstRndCol, m_hstMEs, m_hstSelHel, m_hstSelCol, m_nevt ) ); + CPPProcess process( /*verbose=*/false ); + m_pmek.reset( new MatrixElementKernelHost( m_hstMomentaC, m_hstGs, m_hstRndHel, m_hstRndCol, m_hstMEs, m_hstSelHel, m_hstSelCol, m_nevt ) ); #endif // __CUDACC__ process.initProc( "../../Cards/param_card.dat" ); } diff --git a/epochX/cudacpp/ee_mumu.mad/SubProcesses/BridgeKernels.cc b/epochX/cudacpp/ee_mumu.mad/SubProcesses/BridgeKernels.cc index cef4cb3c71..d58066c9c1 100644 --- a/epochX/cudacpp/ee_mumu.mad/SubProcesses/BridgeKernels.cc +++ b/epochX/cudacpp/ee_mumu.mad/SubProcesses/BridgeKernels.cc @@ -9,9 +9,6 @@ #include -constexpr int np4 = CPPProcess::np4; // dimensions of 4-momenta (E,px,py,pz) -constexpr int npar = CPPProcess::npar; // #particles in total (external = initial + final): e.g. 4 for e+ e- -> mu+ mu- - //============================================================================ #ifdef __CUDACC__ @@ -20,6 +17,9 @@ namespace mg5amcGpu namespace mg5amcCpu #endif { + constexpr int np4 = CPPProcess::np4; // dimensions of 4-momenta (E,px,py,pz) + constexpr int npar = CPPProcess::npar; // #particles in total (external = initial + final): e.g. 4 for e+ e- -> mu+ mu- + //-------------------------------------------------------------------------- BridgeKernelBase::BridgeKernelBase( const BufferMomenta& momenta, // input: momenta diff --git a/epochX/cudacpp/ee_mumu.mad/SubProcesses/MemoryAccessAmplitudes.h b/epochX/cudacpp/ee_mumu.mad/SubProcesses/MemoryAccessAmplitudes.h index 68f6838b5c..573b3bbbc9 100644 --- a/epochX/cudacpp/ee_mumu.mad/SubProcesses/MemoryAccessAmplitudes.h +++ b/epochX/cudacpp/ee_mumu.mad/SubProcesses/MemoryAccessAmplitudes.h @@ -14,142 +14,151 @@ #define MGONGPU_TRIVIAL_AMPLITUDES 1 -//---------------------------------------------------------------------------- - -#ifndef MGONGPU_TRIVIAL_AMPLITUDES - -// A class describing the internal layout of memory buffers for amplitudes -// This implementation uses an AOSOA[npagA][nx2][neppA] where nevt=npagA*neppA -// [If many implementations are used, a suffix _AOSOAv1 should be appended to the class name] -class MemoryAccessAmplitudesBase //_AOSOAv1 +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { -public: - - // Number of Events Per Page in the amplitude AOSOA memory buffer layout - static constexpr int neppA = 1; // AOS (just a test...) + //---------------------------------------------------------------------------- -private: - - friend class MemoryAccessHelper; - friend class KernelAccessHelper; - friend class KernelAccessHelper; - - // The number of floating point components of a complex number - static constexpr int nx2 = mgOnGpu::nx2; - - //-------------------------------------------------------------------------- - // NB all KernelLaunchers assume that memory access can be decomposed as "accessField = decodeRecord( accessRecord )" - // (in other words: first locate the event record for a given event, then locate an element in that record) - //-------------------------------------------------------------------------- +#ifndef MGONGPU_TRIVIAL_AMPLITUDES - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] - static __host__ __device__ inline fptype* - ieventAccessRecord( fptype* buffer, - const int ievt ) + // A class describing the internal layout of memory buffers for amplitudes + // This implementation uses an AOSOA[npagA][nx2][neppA] where nevt=npagA*neppA + // [If many implementations are used, a suffix _AOSOAv1 should be appended to the class name] + class MemoryAccessAmplitudesBase //_AOSOAv1 { - const int ipagA = ievt / neppA; // #event "A-page" - const int ieppA = ievt % neppA; // #event in the current event A-page - constexpr int ix2 = 0; - return &( buffer[ipagA * nx2 * neppA + ix2 * neppA + ieppA] ); // AOSOA[ipagA][ix2][ieppA] - } - - //-------------------------------------------------------------------------- - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, Ts... args ) <===] - // [NB: expand variadic template "Ts... args" to "const int ix2" and rename "Field" as "Ix2"] - static __host__ __device__ inline fptype& - decodeRecord( fptype* buffer, - const int ix2 ) + public: + + // Number of Events Per Page in the amplitude AOSOA memory buffer layout + static constexpr int neppA = 1; // AOS (just a test...) + + private: + + friend class MemoryAccessHelper; + friend class KernelAccessHelper; + friend class KernelAccessHelper; + + // The number of floating point components of a complex number + static constexpr int nx2 = mgOnGpu::nx2; + + //-------------------------------------------------------------------------- + // NB all KernelLaunchers assume that memory access can be decomposed as "accessField = decodeRecord( accessRecord )" + // (in other words: first locate the event record for a given event, then locate an element in that record) + //-------------------------------------------------------------------------- + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] + static __host__ __device__ inline fptype* + ieventAccessRecord( fptype* buffer, + const int ievt ) + { + const int ipagA = ievt / neppA; // #event "A-page" + const int ieppA = ievt % neppA; // #event in the current event A-page + constexpr int ix2 = 0; + return &( buffer[ipagA * nx2 * neppA + ix2 * neppA + ieppA] ); // AOSOA[ipagA][ix2][ieppA] + } + + //-------------------------------------------------------------------------- + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, Ts... args ) <===] + // [NB: expand variadic template "Ts... args" to "const int ix2" and rename "Field" as "Ix2"] + static __host__ __device__ inline fptype& + decodeRecord( fptype* buffer, + const int ix2 ) + { + constexpr int ipagA = 0; + constexpr int ieppA = 0; + return buffer[ipagA * nx2 * neppA + ix2 * neppA + ieppA]; // AOSOA[ipagA][ix2][ieppA] + } + }; + + //---------------------------------------------------------------------------- + + // A class providing access to memory buffers for a given event, based on explicit event numbers + // Its methods use the MemoryAccessHelper templates - note the use of the template keyword in template function instantiations + class MemoryAccessAmplitudes : public MemoryAccessAmplitudesBase { - constexpr int ipagA = 0; - constexpr int ieppA = 0; - return buffer[ipagA * nx2 * neppA + ix2 * neppA + ieppA]; // AOSOA[ipagA][ix2][ieppA] - } -}; + public: -//---------------------------------------------------------------------------- + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] + static constexpr auto ieventAccessRecord = MemoryAccessHelper::ieventAccessRecord; -// A class providing access to memory buffers for a given event, based on explicit event numbers -// Its methods use the MemoryAccessHelper templates - note the use of the template keyword in template function instantiations -class MemoryAccessAmplitudes : public MemoryAccessAmplitudesBase -{ -public: - - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] - static constexpr auto ieventAccessRecord = MemoryAccessHelper::ieventAccessRecord; + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (const) ===> const fptype* ieventAccessRecordConst( const fptype* buffer, const int ievt ) <===] + static constexpr auto ieventAccessRecordConst = MemoryAccessHelper::ieventAccessRecordConst; - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (const) ===> const fptype* ieventAccessRecordConst( const fptype* buffer, const int ievt ) <===] - static constexpr auto ieventAccessRecordConst = MemoryAccessHelper::ieventAccessRecordConst; + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, const int ix2 ) <===] + static constexpr auto decodeRecordIx2 = MemoryAccessHelper::decodeRecord; - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, const int ix2 ) <===] - static constexpr auto decodeRecordIx2 = MemoryAccessHelper::decodeRecord; + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (const) ===> const fptype& decodeRecordConst( const fptype* buffer, const int ix2 ) <===] + static constexpr auto decodeRecordIx2Const = + MemoryAccessHelper::template decodeRecordConst; - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (const) ===> const fptype& decodeRecordConst( const fptype* buffer, const int ix2 ) <===] - static constexpr auto decodeRecordIx2Const = - MemoryAccessHelper::template decodeRecordConst; + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (non-const) ===> fptype& ieventAccessIx2( fptype* buffer, const ievt, const int ix2 ) <===] + static constexpr auto ieventAccessIx2 = + MemoryAccessHelper::template ieventAccessField; - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (non-const) ===> fptype& ieventAccessIx2( fptype* buffer, const ievt, const int ix2 ) <===] - static constexpr auto ieventAccessIx2 = - MemoryAccessHelper::template ieventAccessField; - - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (const) ===> const fptype& ieventAccessIx2Const( const fptype* buffer, const ievt, const int ix2 ) <===] - static constexpr auto ieventAccessIx2Const = - MemoryAccessHelper::template ieventAccessFieldConst; -}; + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (const) ===> const fptype& ieventAccessIx2Const( const fptype* buffer, const ievt, const int ix2 ) <===] + static constexpr auto ieventAccessIx2Const = + MemoryAccessHelper::template ieventAccessFieldConst; + }; #endif // #ifndef MGONGPU_TRIVIAL_AMPLITUDES -//---------------------------------------------------------------------------- + //---------------------------------------------------------------------------- -// A class providing access to memory buffers for a given event, based on implicit kernel rules -// Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations -template -class KernelAccessAmplitudes -{ -public: + // A class providing access to memory buffers for a given event, based on implicit kernel rules + // Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations + template + class KernelAccessAmplitudes + { + public: #ifndef MGONGPU_TRIVIAL_AMPLITUDES - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (non-const) ===> fptype& kernelAccessIx2( fptype* buffer, const int ix2 ) <===] - static constexpr auto kernelAccessIx2 = - KernelAccessHelper::template kernelAccessField; + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (non-const) ===> fptype& kernelAccessIx2( fptype* buffer, const int ix2 ) <===] + static constexpr auto kernelAccessIx2 = + KernelAccessHelper::template kernelAccessField; - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (const) ===> const fptype& kernelAccessIx2Const( const fptype* buffer, const int ix2 ) <===] - static constexpr auto kernelAccessIx2Const = - KernelAccessHelper::template kernelAccessFieldConst; + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (const) ===> const fptype& kernelAccessIx2Const( const fptype* buffer, const int ix2 ) <===] + static constexpr auto kernelAccessIx2Const = + KernelAccessHelper::template kernelAccessFieldConst; #else - static __host__ __device__ inline cxtype_sv* - kernelAccess( fptype* buffer ) - { - return reinterpret_cast( buffer ); - } + static __host__ __device__ inline cxtype_sv* + kernelAccess( fptype* buffer ) + { + return reinterpret_cast( buffer ); + } - static __host__ __device__ inline const cxtype_sv* - kernelAccessConst( const fptype* buffer ) - { - return reinterpret_cast( buffer ); - } + static __host__ __device__ inline const cxtype_sv* + kernelAccessConst( const fptype* buffer ) + { + return reinterpret_cast( buffer ); + } #endif // #ifndef MGONGPU_TRIVIAL_AMPLITUDES -}; + }; + + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- + typedef KernelAccessAmplitudes HostAccessAmplitudes; + typedef KernelAccessAmplitudes DeviceAccessAmplitudes; -typedef KernelAccessAmplitudes HostAccessAmplitudes; -typedef KernelAccessAmplitudes DeviceAccessAmplitudes; + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- +} // end namespace mg5amcGpu/mg5amcCpu #endif // MemoryAccessAmplitudes_H diff --git a/epochX/cudacpp/ee_mumu.mad/SubProcesses/MemoryAccessCouplings.h b/epochX/cudacpp/ee_mumu.mad/SubProcesses/MemoryAccessCouplings.h index 15793bbec3..35a3af42e0 100644 --- a/epochX/cudacpp/ee_mumu.mad/SubProcesses/MemoryAccessCouplings.h +++ b/epochX/cudacpp/ee_mumu.mad/SubProcesses/MemoryAccessCouplings.h @@ -14,248 +14,257 @@ #include "MemoryAccessMomenta.h" // for MemoryAccessMomentaBase::neppM #include "MemoryBuffers.h" // for HostBufferCouplings::isaligned -//---------------------------------------------------------------------------- - -// A class describing the internal layout of memory buffers for couplings -// This implementation uses an AOSOA[npagC][ndcoup][nx2][neppC] "super-buffer" where nevt=npagC*neppC -// From the "super-buffer" for ndcoup different couplings, use idcoupAccessBuffer to access the buffer for one specific coupling -// [If many implementations are used, a suffix _AOSOAv1 should be appended to the class name] -class MemoryAccessCouplingsBase //_AOSOAv1 +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { -public: - - // Number of Events Per Page in the coupling AOSOA memory buffer layout - static constexpr int neppC = MemoryAccessMomentaBase::neppM; // use the same AOSOA striding as for momenta - - // SANITY CHECK: check that neppC is a power of two - static_assert( ispoweroftwo( neppC ), "neppC is not a power of 2" ); - - //-------------------------------------------------------------------------- - // ** NB! A single super-buffer AOSOA[npagC][ndcoup][nx2][neppC] includes data for ndcoup different couplings ** - // ** NB! The ieventAccessRecord and kernelAccess functions refer to the buffer for one individual coupling ** - // ** NB! Use idcoupAccessBuffer to add a fixed offset and locate the buffer for one given individual coupling ** - //-------------------------------------------------------------------------- - - // Locate the buffer for a single coupling (output) in a memory super-buffer (input) from the given coupling index (input) - // [Signature (non-const) ===> fptype* idcoupAccessBuffer( fptype* buffer, const int idcoup ) <===] - // NB: keep this in public even if exposed through KernelAccessCouplings: nvcc says it is inaccesible otherwise? - static __host__ __device__ inline fptype* - idcoupAccessBuffer( fptype* buffer, // input "super-buffer" - const int idcoup ) - { - constexpr int ipagC = 0; - constexpr int ieppC = 0; - constexpr int ix2 = 0; - // NB! this effectively adds an offset "idcoup * nx2 * neppC" - return &( buffer[ipagC * ndcoup * nx2 * neppC + idcoup * nx2 * neppC + ix2 * neppC + ieppC] ); // AOSOA[ipagC][idcoup][ix2][ieppC] - } - - // Locate the buffer for a single coupling (output) in a memory super-buffer (input) from the given coupling index (input) - // [Signature (const) ===> const fptype* idcoupAccessBufferConst( const fptype* buffer, const int idcoup ) <===] - // NB: keep this in public even if exposed through KernelAccessCouplings: nvcc says it is inaccesible otherwise? - static __host__ __device__ inline const fptype* - idcoupAccessBufferConst( const fptype* buffer, // input "super-buffer" - const int idcoup ) - { - return idcoupAccessBuffer( const_cast( buffer ), idcoup ); - } - -private: + //---------------------------------------------------------------------------- - friend class MemoryAccessHelper; - friend class KernelAccessHelper; - friend class KernelAccessHelper; - - // The number of couplings that dependent on the running alphas QCD in this specific process - static constexpr size_t ndcoup = Parameters_sm_dependentCouplings::ndcoup; - - // The number of floating point components of a complex number - static constexpr int nx2 = mgOnGpu::nx2; - - //-------------------------------------------------------------------------- - // NB all KernelLaunchers assume that memory access can be decomposed as "accessField = decodeRecord( accessRecord )" - // (in other words: first locate the event record for a given event, then locate an element in that record) - //-------------------------------------------------------------------------- - - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] - static __host__ __device__ inline fptype* - ieventAccessRecord( fptype* buffer, - const int ievt ) + // A class describing the internal layout of memory buffers for couplings + // This implementation uses an AOSOA[npagC][ndcoup][nx2][neppC] "super-buffer" where nevt=npagC*neppC + // From the "super-buffer" for ndcoup different couplings, use idcoupAccessBuffer to access the buffer for one specific coupling + // [If many implementations are used, a suffix _AOSOAv1 should be appended to the class name] + class MemoryAccessCouplingsBase //_AOSOAv1 { - const int ipagC = ievt / neppC; // #event "C-page" - const int ieppC = ievt % neppC; // #event in the current event C-page - constexpr int idcoup = 0; - constexpr int ix2 = 0; - return &( buffer[ipagC * ndcoup * nx2 * neppC + idcoup * nx2 * neppC + ix2 * neppC + ieppC] ); // AOSOA[ipagC][idcoup][ix2][ieppC] - } - - //-------------------------------------------------------------------------- - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, Ts... args ) <===] - // [NB: expand variadic template "Ts... args" to "const int ix2" and rename "Field" as "Ix2"] - static __host__ __device__ inline fptype& - decodeRecord( fptype* buffer, - const int ix2 ) + public: + + // Number of Events Per Page in the coupling AOSOA memory buffer layout + static constexpr int neppC = MemoryAccessMomentaBase::neppM; // use the same AOSOA striding as for momenta + + // SANITY CHECK: check that neppC is a power of two + static_assert( ispoweroftwo( neppC ), "neppC is not a power of 2" ); + + //-------------------------------------------------------------------------- + // ** NB! A single super-buffer AOSOA[npagC][ndcoup][nx2][neppC] includes data for ndcoup different couplings ** + // ** NB! The ieventAccessRecord and kernelAccess functions refer to the buffer for one individual coupling ** + // ** NB! Use idcoupAccessBuffer to add a fixed offset and locate the buffer for one given individual coupling ** + //-------------------------------------------------------------------------- + + // Locate the buffer for a single coupling (output) in a memory super-buffer (input) from the given coupling index (input) + // [Signature (non-const) ===> fptype* idcoupAccessBuffer( fptype* buffer, const int idcoup ) <===] + // NB: keep this in public even if exposed through KernelAccessCouplings: nvcc says it is inaccesible otherwise? + static __host__ __device__ inline fptype* + idcoupAccessBuffer( fptype* buffer, // input "super-buffer" + const int idcoup ) + { + constexpr int ipagC = 0; + constexpr int ieppC = 0; + constexpr int ix2 = 0; + // NB! this effectively adds an offset "idcoup * nx2 * neppC" + return &( buffer[ipagC * ndcoup * nx2 * neppC + idcoup * nx2 * neppC + ix2 * neppC + ieppC] ); // AOSOA[ipagC][idcoup][ix2][ieppC] + } + + // Locate the buffer for a single coupling (output) in a memory super-buffer (input) from the given coupling index (input) + // [Signature (const) ===> const fptype* idcoupAccessBufferConst( const fptype* buffer, const int idcoup ) <===] + // NB: keep this in public even if exposed through KernelAccessCouplings: nvcc says it is inaccesible otherwise? + static __host__ __device__ inline const fptype* + idcoupAccessBufferConst( const fptype* buffer, // input "super-buffer" + const int idcoup ) + { + return idcoupAccessBuffer( const_cast( buffer ), idcoup ); + } + + private: + + friend class MemoryAccessHelper; + friend class KernelAccessHelper; + friend class KernelAccessHelper; + + // The number of couplings that dependent on the running alphas QCD in this specific process + static constexpr size_t ndcoup = Parameters_sm_dependentCouplings::ndcoup; + + // The number of floating point components of a complex number + static constexpr int nx2 = mgOnGpu::nx2; + + //-------------------------------------------------------------------------- + // NB all KernelLaunchers assume that memory access can be decomposed as "accessField = decodeRecord( accessRecord )" + // (in other words: first locate the event record for a given event, then locate an element in that record) + //-------------------------------------------------------------------------- + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] + static __host__ __device__ inline fptype* + ieventAccessRecord( fptype* buffer, + const int ievt ) + { + const int ipagC = ievt / neppC; // #event "C-page" + const int ieppC = ievt % neppC; // #event in the current event C-page + constexpr int idcoup = 0; + constexpr int ix2 = 0; + return &( buffer[ipagC * ndcoup * nx2 * neppC + idcoup * nx2 * neppC + ix2 * neppC + ieppC] ); // AOSOA[ipagC][idcoup][ix2][ieppC] + } + + //-------------------------------------------------------------------------- + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, Ts... args ) <===] + // [NB: expand variadic template "Ts... args" to "const int ix2" and rename "Field" as "Ix2"] + static __host__ __device__ inline fptype& + decodeRecord( fptype* buffer, + const int ix2 ) + { + constexpr int ipagC = 0; + constexpr int ieppC = 0; + // NB! the offset "idcoup * nx2 * neppC" has been added in idcoupAccessBuffer + constexpr int idcoup = 0; + return buffer[ipagC * ndcoup * nx2 * neppC + idcoup * nx2 * neppC + ix2 * neppC + ieppC]; // AOSOA[ipagC][idcoup][ix2][ieppC] + } + }; + + //---------------------------------------------------------------------------- + + // A class providing access to memory buffers for a given event, based on explicit event numbers + // Its methods use the MemoryAccessHelper templates - note the use of the template keyword in template function instantiations + class MemoryAccessCouplings : public MemoryAccessCouplingsBase { - constexpr int ipagC = 0; - constexpr int ieppC = 0; - // NB! the offset "idcoup * nx2 * neppC" has been added in idcoupAccessBuffer - constexpr int idcoup = 0; - return buffer[ipagC * ndcoup * nx2 * neppC + idcoup * nx2 * neppC + ix2 * neppC + ieppC]; // AOSOA[ipagC][idcoup][ix2][ieppC] - } -}; - -//---------------------------------------------------------------------------- - -// A class providing access to memory buffers for a given event, based on explicit event numbers -// Its methods use the MemoryAccessHelper templates - note the use of the template keyword in template function instantiations -class MemoryAccessCouplings : public MemoryAccessCouplingsBase -{ -public: - - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] - static constexpr auto ieventAccessRecord = MemoryAccessHelper::ieventAccessRecord; - - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (const) ===> const fptype* ieventAccessRecordConst( const fptype* buffer, const int ievt ) <===] - static constexpr auto ieventAccessRecordConst = MemoryAccessHelper::ieventAccessRecordConst; - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, const int ix2 ) <===] - static constexpr auto decodeRecordIx2 = MemoryAccessHelper::decodeRecord; - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (const) ===> const fptype& decodeRecordConst( const fptype* buffer, const int ix2 ) <===] - static constexpr auto decodeRecordIx2Const = - MemoryAccessHelper::template decodeRecordConst; - - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (non-const) ===> fptype& ieventAccessIx2( fptype* buffer, const ievt, const int ix2 ) <===] - static constexpr auto ieventAccessIx2 = - MemoryAccessHelper::template ieventAccessField; - - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (const) ===> const fptype& ieventAccessIx2Const( const fptype* buffer, const ievt, const int ix2 ) <===] - static constexpr auto ieventAccessIx2Const = - MemoryAccessHelper::template ieventAccessFieldConst; -}; - -//---------------------------------------------------------------------------- - -// A class providing access to memory buffers for a given event, based on implicit kernel rules -// Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations -template -class KernelAccessCouplings -{ -public: - - // Expose selected functions from MemoryAccessCouplingsBase - static constexpr auto idcoupAccessBuffer = MemoryAccessCouplingsBase::idcoupAccessBuffer; - static constexpr auto idcoupAccessBufferConst = MemoryAccessCouplingsBase::idcoupAccessBufferConst; - - // Expose selected functions from MemoryAccessCouplings - static constexpr auto ieventAccessRecordConst = MemoryAccessCouplings::ieventAccessRecordConst; - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (non-const, SCALAR) ===> fptype& kernelAccessIx2( fptype* buffer, const int ix2 ) <===] - static constexpr auto kernelAccessIx2_s = - KernelAccessHelper::template kernelAccessField; - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (const, SCALAR) ===> const fptype& kernelAccessIx2Const( const fptype* buffer, const int ix2 ) <===] - static constexpr auto kernelAccessIx2Const_s = - KernelAccessHelper::template kernelAccessFieldConst; - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (non const, SCALAR OR VECTOR) ===> fptype_sv& kernelAccessIx2( fptype* buffer, const int ix2 ) <===] - static __host__ __device__ inline fptype_sv& - kernelAccessIx2( fptype* buffer, - const int ix2 ) + public: + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] + static constexpr auto ieventAccessRecord = MemoryAccessHelper::ieventAccessRecord; + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (const) ===> const fptype* ieventAccessRecordConst( const fptype* buffer, const int ievt ) <===] + static constexpr auto ieventAccessRecordConst = MemoryAccessHelper::ieventAccessRecordConst; + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, const int ix2 ) <===] + static constexpr auto decodeRecordIx2 = MemoryAccessHelper::decodeRecord; + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (const) ===> const fptype& decodeRecordConst( const fptype* buffer, const int ix2 ) <===] + static constexpr auto decodeRecordIx2Const = + MemoryAccessHelper::template decodeRecordConst; + + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (non-const) ===> fptype& ieventAccessIx2( fptype* buffer, const ievt, const int ix2 ) <===] + static constexpr auto ieventAccessIx2 = + MemoryAccessHelper::template ieventAccessField; + + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (const) ===> const fptype& ieventAccessIx2Const( const fptype* buffer, const ievt, const int ix2 ) <===] + static constexpr auto ieventAccessIx2Const = + MemoryAccessHelper::template ieventAccessFieldConst; + }; + + //---------------------------------------------------------------------------- + + // A class providing access to memory buffers for a given event, based on implicit kernel rules + // Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations + template + class KernelAccessCouplings { - fptype& out = kernelAccessIx2_s( buffer, ix2 ); + public: + + // Expose selected functions from MemoryAccessCouplingsBase + static constexpr auto idcoupAccessBuffer = MemoryAccessCouplingsBase::idcoupAccessBuffer; + static constexpr auto idcoupAccessBufferConst = MemoryAccessCouplingsBase::idcoupAccessBufferConst; + + // Expose selected functions from MemoryAccessCouplings + static constexpr auto ieventAccessRecordConst = MemoryAccessCouplings::ieventAccessRecordConst; + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (non-const, SCALAR) ===> fptype& kernelAccessIx2( fptype* buffer, const int ix2 ) <===] + static constexpr auto kernelAccessIx2_s = + KernelAccessHelper::template kernelAccessField; + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (const, SCALAR) ===> const fptype& kernelAccessIx2Const( const fptype* buffer, const int ix2 ) <===] + static constexpr auto kernelAccessIx2Const_s = + KernelAccessHelper::template kernelAccessFieldConst; + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (non const, SCALAR OR VECTOR) ===> fptype_sv& kernelAccessIx2( fptype* buffer, const int ix2 ) <===] + static __host__ __device__ inline fptype_sv& + kernelAccessIx2( fptype* buffer, + const int ix2 ) + { + fptype& out = kernelAccessIx2_s( buffer, ix2 ); #ifndef MGONGPU_CPPSIMD - return out; + return out; #else - // NB: derived from MemoryAccessMomenta, restricting the implementation to contiguous aligned arrays - constexpr int neppC = MemoryAccessCouplingsBase::neppC; - static_assert( neppC >= neppV ); // ASSUME CONTIGUOUS ARRAYS - static_assert( neppC % neppV == 0 ); // ASSUME CONTIGUOUS ARRAYS - static_assert( mg5amcCpu::HostBufferCouplings::isaligned() ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) - //assert( (size_t)( buffer ) % mgOnGpu::cppAlign == 0 ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) - return mg5amcCpu::fptypevFromAlignedArray( out ); // SIMD bulk load of neppV, use reinterpret_cast + // NB: derived from MemoryAccessMomenta, restricting the implementation to contiguous aligned arrays + constexpr int neppC = MemoryAccessCouplingsBase::neppC; + static_assert( neppC >= neppV ); // ASSUME CONTIGUOUS ARRAYS + static_assert( neppC % neppV == 0 ); // ASSUME CONTIGUOUS ARRAYS + static_assert( mg5amcCpu::HostBufferCouplings::isaligned() ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) + //assert( (size_t)( buffer ) % mgOnGpu::cppAlign == 0 ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) + return mg5amcCpu::fptypevFromAlignedArray( out ); // SIMD bulk load of neppV, use reinterpret_cast #endif - } + } - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (const, SCALAR OR VECTOR) ===> const fptype_sv& kernelAccessIx2Const( const fptype* buffer, const int ix2 ) <===] - static __host__ __device__ inline const fptype_sv& - kernelAccessIx2Const( const fptype* buffer, - const int ix2 ) - { - return kernelAccessIx2( const_cast( buffer ), ix2 ); - } - - /* - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (const, SCALAR OR VECTOR) ===> const fptype_sv& kernelAccessIx2Const( const fptype* buffer, const int ix2 ) <===] - static __host__ __device__ inline const fptype_sv& - kernelAccessIx2Const( const fptype* buffer, - const int ix2 ) - { - const fptype& out = kernelAccessIx2Const_s( buffer, ix2 ); + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (const, SCALAR OR VECTOR) ===> const fptype_sv& kernelAccessIx2Const( const fptype* buffer, const int ix2 ) <===] + static __host__ __device__ inline const fptype_sv& + kernelAccessIx2Const( const fptype* buffer, + const int ix2 ) + { + return kernelAccessIx2( const_cast( buffer ), ix2 ); + } + + /* + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (const, SCALAR OR VECTOR) ===> const fptype_sv& kernelAccessIx2Const( const fptype* buffer, const int ix2 ) <===] + static __host__ __device__ inline const fptype_sv& + kernelAccessIx2Const( const fptype* buffer, + const int ix2 ) + { + const fptype& out = kernelAccessIx2Const_s( buffer, ix2 ); #ifndef MGONGPU_CPPSIMD - return out; + return out; #else - // NB: derived from MemoryAccessMomenta, restricting the implementation to contiguous aligned arrays - constexpr int neppC = MemoryAccessCouplingsBase::neppC; - static_assert( neppC >= neppV ); // ASSUME CONTIGUOUS ARRAYS - static_assert( neppC % neppV == 0 ); // ASSUME CONTIGUOUS ARRAYS - static_assert( mg5amcCpu::HostBufferCouplings::isaligned() ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) - //assert( (size_t)( buffer ) % mgOnGpu::cppAlign == 0 ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) - return mg5amcCpu::fptypevFromAlignedArray( out ); // SIMD bulk load of neppV, use reinterpret_cast + // NB: derived from MemoryAccessMomenta, restricting the implementation to contiguous aligned arrays + constexpr int neppC = MemoryAccessCouplingsBase::neppC; + static_assert( neppC >= neppV ); // ASSUME CONTIGUOUS ARRAYS + static_assert( neppC % neppV == 0 ); // ASSUME CONTIGUOUS ARRAYS + static_assert( mg5amcCpu::HostBufferCouplings::isaligned() ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) + //assert( (size_t)( buffer ) % mgOnGpu::cppAlign == 0 ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) + return mg5amcCpu::fptypevFromAlignedArray( out ); // SIMD bulk load of neppV, use reinterpret_cast #endif - } - */ - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (non const, SCALAR OR VECTOR) ===> cxtype_sv_ref kernelAccess( fptype* buffer ) <===] - static __host__ __device__ inline cxtype_sv_ref - kernelAccess( fptype* buffer ) - { - /* - fptype_sv& real = kernelAccessIx2( buffer, 0 ); - fptype_sv& imag = kernelAccessIx2( buffer, 1 ); - printf( "C_ACCESS::kernelAccess: pbuffer=%p pr=%p pi=%p\n", buffer, &real, &imag ); - return cxtype_sv_ref( real, imag ); - */ - return cxtype_sv_ref( kernelAccessIx2( buffer, 0 ), - kernelAccessIx2( buffer, 1 ) ); - } - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (const, SCALAR OR VECTOR) ===> cxtype_sv kernelAccessConst( const fptype* buffer ) <===] - static __host__ __device__ inline cxtype_sv - kernelAccessConst( const fptype* buffer ) - { - /* - const fptype_sv& real = kernelAccessIx2Const( buffer, 0 ); - const fptype_sv& imag = kernelAccessIx2Const( buffer, 1 ); - printf( "C_ACCESS::kernelAccessConst: pbuffer=%p pr=%p pi=%p\n", buffer, &real, &imag ); - return cxtype_sv( real, imag ); + } */ - return cxtype_sv( kernelAccessIx2Const( buffer, 0 ), - kernelAccessIx2Const( buffer, 1 ) ); - } -}; - -//---------------------------------------------------------------------------- - -typedef KernelAccessCouplings HostAccessCouplings; -typedef KernelAccessCouplings DeviceAccessCouplings; -//---------------------------------------------------------------------------- + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (non const, SCALAR OR VECTOR) ===> cxtype_sv_ref kernelAccess( fptype* buffer ) <===] + static __host__ __device__ inline cxtype_sv_ref + kernelAccess( fptype* buffer ) + { + /* + fptype_sv& real = kernelAccessIx2( buffer, 0 ); + fptype_sv& imag = kernelAccessIx2( buffer, 1 ); + printf( "C_ACCESS::kernelAccess: pbuffer=%p pr=%p pi=%p\n", buffer, &real, &imag ); + return cxtype_sv_ref( real, imag ); + */ + return cxtype_sv_ref( kernelAccessIx2( buffer, 0 ), + kernelAccessIx2( buffer, 1 ) ); + } + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (const, SCALAR OR VECTOR) ===> cxtype_sv kernelAccessConst( const fptype* buffer ) <===] + static __host__ __device__ inline cxtype_sv + kernelAccessConst( const fptype* buffer ) + { + /* + const fptype_sv& real = kernelAccessIx2Const( buffer, 0 ); + const fptype_sv& imag = kernelAccessIx2Const( buffer, 1 ); + printf( "C_ACCESS::kernelAccessConst: pbuffer=%p pr=%p pi=%p\n", buffer, &real, &imag ); + return cxtype_sv( real, imag ); + */ + return cxtype_sv( kernelAccessIx2Const( buffer, 0 ), + kernelAccessIx2Const( buffer, 1 ) ); + } + }; + + //---------------------------------------------------------------------------- + + typedef KernelAccessCouplings HostAccessCouplings; + typedef KernelAccessCouplings DeviceAccessCouplings; + + //---------------------------------------------------------------------------- + +} // end namespace mg5amcGpu/mg5amcCpu #endif // MemoryAccessCouplings_H diff --git a/epochX/cudacpp/ee_mumu.mad/SubProcesses/MemoryAccessCouplingsFixed.h b/epochX/cudacpp/ee_mumu.mad/SubProcesses/MemoryAccessCouplingsFixed.h index 81193ab261..dc0d93afff 100644 --- a/epochX/cudacpp/ee_mumu.mad/SubProcesses/MemoryAccessCouplingsFixed.h +++ b/epochX/cudacpp/ee_mumu.mad/SubProcesses/MemoryAccessCouplingsFixed.h @@ -13,63 +13,72 @@ //#include "MemoryAccessHelpers.h" -//---------------------------------------------------------------------------- - -// A class describing the internal layout of memory buffers for fixed couplings -// This implementation uses a STRUCT[ndcoup][nx2] "super-buffer" layout: in practice, the cIPC global array -// From the "super-buffer" for ndcoup different couplings, use idcoupAccessBuffer to access the buffer for one specific coupling -// [If many implementations are used, a suffix _Sv1 should be appended to the class name] -class MemoryAccessCouplingsFixedBase //_Sv1 +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { -public: + //---------------------------------------------------------------------------- - // Locate the buffer for a single coupling (output) in a memory super-buffer (input) from the given coupling index (input) - // [Signature (const) ===> const fptype* iicoupAccessBufferConst( const fptype* buffer, const int iicoup ) <===] - static __host__ __device__ inline const fptype* - iicoupAccessBufferConst( const fptype* buffer, // input "super-buffer": in practice, the cIPC global array - const int iicoup ) + // A class describing the internal layout of memory buffers for fixed couplings + // This implementation uses a STRUCT[ndcoup][nx2] "super-buffer" layout: in practice, the cIPC global array + // From the "super-buffer" for ndcoup different couplings, use idcoupAccessBuffer to access the buffer for one specific coupling + // [If many implementations are used, a suffix _Sv1 should be appended to the class name] + class MemoryAccessCouplingsFixedBase //_Sv1 { - constexpr int ix2 = 0; - // NB! this effectively adds an offset "iicoup * nx2" - return &( buffer[iicoup * nx2 + ix2] ); // STRUCT[idcoup][ix2] - } - -private: - - // The number of floating point components of a complex number - static constexpr int nx2 = mgOnGpu::nx2; -}; - -//---------------------------------------------------------------------------- + public: + + // Locate the buffer for a single coupling (output) in a memory super-buffer (input) from the given coupling index (input) + // [Signature (const) ===> const fptype* iicoupAccessBufferConst( const fptype* buffer, const int iicoup ) <===] + static __host__ __device__ inline const fptype* + iicoupAccessBufferConst( const fptype* buffer, // input "super-buffer": in practice, the cIPC global array + const int iicoup ) + { + constexpr int ix2 = 0; + // NB! this effectively adds an offset "iicoup * nx2" + return &( buffer[iicoup * nx2 + ix2] ); // STRUCT[idcoup][ix2] + } + + private: + + // The number of floating point components of a complex number + static constexpr int nx2 = mgOnGpu::nx2; + }; + + //---------------------------------------------------------------------------- + + // A class providing access to memory buffers for a given event, based on implicit kernel rules + // Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations + template + class KernelAccessCouplingsFixed + { + public: -// A class providing access to memory buffers for a given event, based on implicit kernel rules -// Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations -template -class KernelAccessCouplingsFixed -{ -public: + // Expose selected functions from MemoryAccessCouplingsFixedBase + static constexpr auto iicoupAccessBufferConst = MemoryAccessCouplingsFixedBase::iicoupAccessBufferConst; - // Expose selected functions from MemoryAccessCouplingsFixedBase - static constexpr auto iicoupAccessBufferConst = MemoryAccessCouplingsFixedBase::iicoupAccessBufferConst; + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (const, SCALAR OR VECTOR) ===> cxtype_sv kernelAccessConst( const fptype* buffer ) <===] + static __host__ __device__ inline const cxtype_sv + kernelAccessConst( const fptype* buffer ) + { + // TRIVIAL ACCESS to fixed-couplings buffers! + //return cxmake( fptype_sv{ buffer[0] }, fptype_sv{ buffer[1] } ); // NO! BUG #339! + const fptype_sv r_sv = fptype_sv{ 0 } + buffer[0]; + const fptype_sv i_sv = fptype_sv{ 0 } + buffer[1]; + return cxmake( r_sv, i_sv ); // ugly but effective + } + }; - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (const, SCALAR OR VECTOR) ===> cxtype_sv kernelAccessConst( const fptype* buffer ) <===] - static __host__ __device__ inline const cxtype_sv - kernelAccessConst( const fptype* buffer ) - { - // TRIVIAL ACCESS to fixed-couplings buffers! - //return cxmake( fptype_sv{ buffer[0] }, fptype_sv{ buffer[1] } ); // NO! BUG #339! - const fptype_sv r_sv = fptype_sv{ 0 } + buffer[0]; - const fptype_sv i_sv = fptype_sv{ 0 } + buffer[1]; - return cxmake( r_sv, i_sv ); // ugly but effective - } -}; + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- + typedef KernelAccessCouplingsFixed HostAccessCouplingsFixed; + typedef KernelAccessCouplingsFixed DeviceAccessCouplingsFixed; -typedef KernelAccessCouplingsFixed HostAccessCouplingsFixed; -typedef KernelAccessCouplingsFixed DeviceAccessCouplingsFixed; + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- +} // end namespace mg5amcGpu/mg5amcCpu #endif // MemoryAccessCouplingsFixed_H diff --git a/epochX/cudacpp/ee_mumu.mad/SubProcesses/MemoryAccessDenominators.h b/epochX/cudacpp/ee_mumu.mad/SubProcesses/MemoryAccessDenominators.h index e76ae65ff9..3bce635718 100644 --- a/epochX/cudacpp/ee_mumu.mad/SubProcesses/MemoryAccessDenominators.h +++ b/epochX/cudacpp/ee_mumu.mad/SubProcesses/MemoryAccessDenominators.h @@ -9,15 +9,24 @@ #include "MemoryAccessGs.h" -//---------------------------------------------------------------------------- +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif +{ + //---------------------------------------------------------------------------- + + // A class describing the internal layout of memory buffers for denominators + // This implementation reuses the plain ARRAY[nevt] implementation of MemoryAccessGs -// A class describing the internal layout of memory buffers for denominators -// This implementation reuses the plain ARRAY[nevt] implementation of MemoryAccessGs + typedef KernelAccessGs HostAccessDenominators; + typedef KernelAccessGs DeviceAccessDenominators; -typedef KernelAccessGs HostAccessDenominators; -typedef KernelAccessGs DeviceAccessDenominators; + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- +} // end namespace mg5amcGpu/mg5amcCpu #endif #endif // MemoryAccessDenominators_H diff --git a/epochX/cudacpp/ee_mumu.mad/SubProcesses/MemoryAccessGs.h b/epochX/cudacpp/ee_mumu.mad/SubProcesses/MemoryAccessGs.h index 8996c0554c..31311aa375 100644 --- a/epochX/cudacpp/ee_mumu.mad/SubProcesses/MemoryAccessGs.h +++ b/epochX/cudacpp/ee_mumu.mad/SubProcesses/MemoryAccessGs.h @@ -12,142 +12,151 @@ #include "MemoryAccessVectors.h" #include "MemoryBuffers.h" // for HostBufferMatrixElements::isaligned -//---------------------------------------------------------------------------- - -// A class describing the internal layout of memory buffers for Gs -// This implementation uses a plain ARRAY[nevt] -// [If many implementations are used, a suffix _ARRAYv1 should be appended to the class name] -class MemoryAccessGsBase //_ARRAYv1 +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { -private: - - friend class MemoryAccessHelper; - friend class KernelAccessHelper; - friend class KernelAccessHelper; - - //-------------------------------------------------------------------------- - // NB all KernelLaunchers assume that memory access can be decomposed as "accessField = decodeRecord( accessRecord )" - // (in other words: first locate the event record for a given event, then locate an element in that record) - //-------------------------------------------------------------------------- - - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] - static __host__ __device__ inline fptype* - ieventAccessRecord( fptype* buffer, - const int ievt ) - { - return &( buffer[ievt] ); // ARRAY[nevt] - } - - //-------------------------------------------------------------------------- + //---------------------------------------------------------------------------- - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, Ts... args ) <===] - // [NB: expand variadic template "Ts... args" to empty and rename "Field" as empty] - static __host__ __device__ inline fptype& - decodeRecord( fptype* buffer ) + // A class describing the internal layout of memory buffers for Gs + // This implementation uses a plain ARRAY[nevt] + // [If many implementations are used, a suffix _ARRAYv1 should be appended to the class name] + class MemoryAccessGsBase //_ARRAYv1 { - constexpr int ievt = 0; - return buffer[ievt]; // ARRAY[nevt] - } -}; - -//---------------------------------------------------------------------------- - -// A class providing access to memory buffers for a given event, based on explicit event numbers -// Its methods use the MemoryAccessHelper templates - note the use of the template keyword in template function instantiations -class MemoryAccessGs : public MemoryAccessGsBase -{ -public: - - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] - static constexpr auto ieventAccessRecord = MemoryAccessHelper::ieventAccessRecord; - - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (const) ===> const fptype* ieventAccessRecordConst( const fptype* buffer, const int ievt ) <===] - static constexpr auto ieventAccessRecordConst = MemoryAccessHelper::ieventAccessRecordConst; - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer ) <===] - static constexpr auto decodeRecord = MemoryAccessHelper::decodeRecord; - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (const) ===> const fptype& decodeRecordConst( const fptype* buffer ) <===] - static constexpr auto decodeRecordConst = - MemoryAccessHelper::template decodeRecordConst<>; - - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (non-const) ===> fptype& ieventAccess( fptype* buffer, const ievt ) <===] - static constexpr auto ieventAccess = - MemoryAccessHelper::template ieventAccessField<>; - - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (const) ===> const fptype& ieventAccessConst( const fptype* buffer, const ievt ) <===] - static constexpr auto ieventAccessConst = - MemoryAccessHelper::template ieventAccessFieldConst<>; -}; - -//---------------------------------------------------------------------------- - -// A class providing access to memory buffers for a given event, based on implicit kernel rules -// Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations -template -class KernelAccessGs -{ -public: - - // Expose selected functions from MemoryAccessGs - static constexpr auto ieventAccessRecord = MemoryAccessGs::ieventAccessRecord; - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (non-const, SCALAR) ===> fptype& kernelAccess( fptype* buffer ) <===] - static constexpr auto kernelAccess_s = - KernelAccessHelper::template kernelAccessField<>; // requires cuda 11.4 - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) - // [Signature (non-const, SCALAR OR VECTOR) ===> fptype_sv& kernelAccess( fptype* buffer ) <===] - static __host__ __device__ inline fptype_sv& - kernelAccess( fptype* buffer ) + private: + + friend class MemoryAccessHelper; + friend class KernelAccessHelper; + friend class KernelAccessHelper; + + //-------------------------------------------------------------------------- + // NB all KernelLaunchers assume that memory access can be decomposed as "accessField = decodeRecord( accessRecord )" + // (in other words: first locate the event record for a given event, then locate an element in that record) + //-------------------------------------------------------------------------- + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] + static __host__ __device__ inline fptype* + ieventAccessRecord( fptype* buffer, + const int ievt ) + { + return &( buffer[ievt] ); // ARRAY[nevt] + } + + //-------------------------------------------------------------------------- + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, Ts... args ) <===] + // [NB: expand variadic template "Ts... args" to empty and rename "Field" as empty] + static __host__ __device__ inline fptype& + decodeRecord( fptype* buffer ) + { + constexpr int ievt = 0; + return buffer[ievt]; // ARRAY[nevt] + } + }; + + //---------------------------------------------------------------------------- + + // A class providing access to memory buffers for a given event, based on explicit event numbers + // Its methods use the MemoryAccessHelper templates - note the use of the template keyword in template function instantiations + class MemoryAccessGs : public MemoryAccessGsBase + { + public: + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] + static constexpr auto ieventAccessRecord = MemoryAccessHelper::ieventAccessRecord; + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (const) ===> const fptype* ieventAccessRecordConst( const fptype* buffer, const int ievt ) <===] + static constexpr auto ieventAccessRecordConst = MemoryAccessHelper::ieventAccessRecordConst; + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer ) <===] + static constexpr auto decodeRecord = MemoryAccessHelper::decodeRecord; + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (const) ===> const fptype& decodeRecordConst( const fptype* buffer ) <===] + static constexpr auto decodeRecordConst = + MemoryAccessHelper::template decodeRecordConst<>; + + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (non-const) ===> fptype& ieventAccess( fptype* buffer, const ievt ) <===] + static constexpr auto ieventAccess = + MemoryAccessHelper::template ieventAccessField<>; + + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (const) ===> const fptype& ieventAccessConst( const fptype* buffer, const ievt ) <===] + static constexpr auto ieventAccessConst = + MemoryAccessHelper::template ieventAccessFieldConst<>; + }; + + //---------------------------------------------------------------------------- + + // A class providing access to memory buffers for a given event, based on implicit kernel rules + // Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations + template + class KernelAccessGs { - fptype& out = kernelAccess_s( buffer ); + public: + + // Expose selected functions from MemoryAccessGs + static constexpr auto ieventAccessRecord = MemoryAccessGs::ieventAccessRecord; + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (non-const, SCALAR) ===> fptype& kernelAccess( fptype* buffer ) <===] + static constexpr auto kernelAccess_s = + KernelAccessHelper::template kernelAccessField<>; // requires cuda 11.4 + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) + // [Signature (non-const, SCALAR OR VECTOR) ===> fptype_sv& kernelAccess( fptype* buffer ) <===] + static __host__ __device__ inline fptype_sv& + kernelAccess( fptype* buffer ) + { + fptype& out = kernelAccess_s( buffer ); #ifndef MGONGPU_CPPSIMD - return out; + return out; #else - // NB: derived from MemoryAccessMomenta, restricting the implementation to contiguous aligned arrays (#435) - static_assert( mg5amcCpu::HostBufferGs::isaligned() ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) - //assert( (size_t)( buffer ) % mgOnGpu::cppAlign == 0 ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) - return mg5amcCpu::fptypevFromAlignedArray( out ); // SIMD bulk load of neppV, use reinterpret_cast + // NB: derived from MemoryAccessMomenta, restricting the implementation to contiguous aligned arrays (#435) + static_assert( mg5amcCpu::HostBufferGs::isaligned() ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) + //assert( (size_t)( buffer ) % mgOnGpu::cppAlign == 0 ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) + return mg5amcCpu::fptypevFromAlignedArray( out ); // SIMD bulk load of neppV, use reinterpret_cast #endif - } - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (const, SCALAR) ===> const fptype& kernelAccessConst( const fptype* buffer ) <===] - static constexpr auto kernelAccessConst_s = - KernelAccessHelper::template kernelAccessFieldConst<>; // requires cuda 11.4 - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) - // [Signature (const, SCALAR OR VECTOR) ===> const fptype_sv& kernelAccess( const fptype* buffer ) <===] - static __host__ __device__ inline const fptype_sv& - kernelAccessConst( const fptype* buffer ) - { - const fptype& out = kernelAccessConst_s( buffer ); + } + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (const, SCALAR) ===> const fptype& kernelAccessConst( const fptype* buffer ) <===] + static constexpr auto kernelAccessConst_s = + KernelAccessHelper::template kernelAccessFieldConst<>; // requires cuda 11.4 + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) + // [Signature (const, SCALAR OR VECTOR) ===> const fptype_sv& kernelAccess( const fptype* buffer ) <===] + static __host__ __device__ inline const fptype_sv& + kernelAccessConst( const fptype* buffer ) + { + const fptype& out = kernelAccessConst_s( buffer ); #ifndef MGONGPU_CPPSIMD - return out; + return out; #else - // NB: derived from MemoryAccessMomenta, restricting the implementation to contiguous aligned arrays (#435) - static_assert( mg5amcCpu::HostBufferGs::isaligned() ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) - //assert( (size_t)( buffer ) % mgOnGpu::cppAlign == 0 ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) - return mg5amcCpu::fptypevFromAlignedArray( out ); // SIMD bulk load of neppV, use reinterpret_cast + // NB: derived from MemoryAccessMomenta, restricting the implementation to contiguous aligned arrays (#435) + static_assert( mg5amcCpu::HostBufferGs::isaligned() ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) + //assert( (size_t)( buffer ) % mgOnGpu::cppAlign == 0 ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) + return mg5amcCpu::fptypevFromAlignedArray( out ); // SIMD bulk load of neppV, use reinterpret_cast #endif - } -}; + } + }; + + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- + typedef KernelAccessGs HostAccessGs; + typedef KernelAccessGs DeviceAccessGs; -typedef KernelAccessGs HostAccessGs; -typedef KernelAccessGs DeviceAccessGs; + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- +} // end namespace mg5amcGpu/mg5amcCpu #endif // MemoryAccessGs_H diff --git a/epochX/cudacpp/ee_mumu.mad/SubProcesses/MemoryAccessMatrixElements.h b/epochX/cudacpp/ee_mumu.mad/SubProcesses/MemoryAccessMatrixElements.h index b2a82d9acf..f32e6fea5b 100644 --- a/epochX/cudacpp/ee_mumu.mad/SubProcesses/MemoryAccessMatrixElements.h +++ b/epochX/cudacpp/ee_mumu.mad/SubProcesses/MemoryAccessMatrixElements.h @@ -12,126 +12,135 @@ #include "MemoryAccessVectors.h" #include "MemoryBuffers.h" // for HostBufferMatrixElements::isaligned -//---------------------------------------------------------------------------- - -// A class describing the internal layout of memory buffers for matrix elements -// This implementation uses a plain ARRAY[nevt] -// [If many implementations are used, a suffix _ARRAYv1 should be appended to the class name] -class MemoryAccessMatrixElementsBase //_ARRAYv1 +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { -private: - - friend class MemoryAccessHelper; - friend class KernelAccessHelper; - friend class KernelAccessHelper; - - //-------------------------------------------------------------------------- - // NB all KernelLaunchers assume that memory access can be decomposed as "accessField = decodeRecord( accessRecord )" - // (in other words: first locate the event record for a given event, then locate an element in that record) - //-------------------------------------------------------------------------- - - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] - static __host__ __device__ inline fptype* - ieventAccessRecord( fptype* buffer, - const int ievt ) - { - return &( buffer[ievt] ); // ARRAY[nevt] - } + //---------------------------------------------------------------------------- - //-------------------------------------------------------------------------- - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, Ts... args ) <===] - // [NB: expand variadic template "Ts... args" to empty and rename "Field" as empty] - static __host__ __device__ inline fptype& - decodeRecord( fptype* buffer ) + // A class describing the internal layout of memory buffers for matrix elements + // This implementation uses a plain ARRAY[nevt] + // [If many implementations are used, a suffix _ARRAYv1 should be appended to the class name] + class MemoryAccessMatrixElementsBase //_ARRAYv1 { - constexpr int ievt = 0; - return buffer[ievt]; // ARRAY[nevt] - } -}; - -//---------------------------------------------------------------------------- - -// A class providing access to memory buffers for a given event, based on explicit event numbers -// Its methods use the MemoryAccessHelper templates - note the use of the template keyword in template function instantiations -class MemoryAccessMatrixElements : public MemoryAccessMatrixElementsBase -{ -public: - - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] - static constexpr auto ieventAccessRecord = MemoryAccessHelper::ieventAccessRecord; - - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (const) ===> const fptype* ieventAccessRecordConst( const fptype* buffer, const int ievt ) <===] - static constexpr auto ieventAccessRecordConst = MemoryAccessHelper::ieventAccessRecordConst; - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer ) <===] - static constexpr auto decodeRecord = MemoryAccessHelper::decodeRecord; - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (const) ===> const fptype& decodeRecordConst( const fptype* buffer ) <===] - static constexpr auto decodeRecordConst = - MemoryAccessHelper::template decodeRecordConst<>; - - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (non-const) ===> fptype& ieventAccess( fptype* buffer, const ievt ) <===] - static constexpr auto ieventAccess = - MemoryAccessHelper::template ieventAccessField<>; - - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (const) ===> const fptype& ieventAccessConst( const fptype* buffer, const ievt ) <===] - static constexpr auto ieventAccessConst = - MemoryAccessHelper::template ieventAccessFieldConst<>; -}; - -//---------------------------------------------------------------------------- - -// A class providing access to memory buffers for a given event, based on implicit kernel rules -// Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations -template -class KernelAccessMatrixElements -{ -public: - - // Expose selected functions from MemoryAccessMatrixElements - static constexpr auto ieventAccessRecord = MemoryAccessMatrixElements::ieventAccessRecord; - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (non-const, SCALAR) ===> fptype& kernelAccess_s( fptype* buffer ) <===] - static constexpr auto kernelAccess_s = - KernelAccessHelper::template kernelAccessField<>; // requires cuda 11.4 - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) - // [Signature (non const, SCALAR OR VECTOR) ===> fptype_sv& kernelAccess( const fptype* buffer ) <===] - static __host__ __device__ inline fptype_sv& - kernelAccess( fptype* buffer ) + private: + + friend class MemoryAccessHelper; + friend class KernelAccessHelper; + friend class KernelAccessHelper; + + //-------------------------------------------------------------------------- + // NB all KernelLaunchers assume that memory access can be decomposed as "accessField = decodeRecord( accessRecord )" + // (in other words: first locate the event record for a given event, then locate an element in that record) + //-------------------------------------------------------------------------- + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] + static __host__ __device__ inline fptype* + ieventAccessRecord( fptype* buffer, + const int ievt ) + { + return &( buffer[ievt] ); // ARRAY[nevt] + } + + //-------------------------------------------------------------------------- + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, Ts... args ) <===] + // [NB: expand variadic template "Ts... args" to empty and rename "Field" as empty] + static __host__ __device__ inline fptype& + decodeRecord( fptype* buffer ) + { + constexpr int ievt = 0; + return buffer[ievt]; // ARRAY[nevt] + } + }; + + //---------------------------------------------------------------------------- + + // A class providing access to memory buffers for a given event, based on explicit event numbers + // Its methods use the MemoryAccessHelper templates - note the use of the template keyword in template function instantiations + class MemoryAccessMatrixElements : public MemoryAccessMatrixElementsBase + { + public: + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] + static constexpr auto ieventAccessRecord = MemoryAccessHelper::ieventAccessRecord; + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (const) ===> const fptype* ieventAccessRecordConst( const fptype* buffer, const int ievt ) <===] + static constexpr auto ieventAccessRecordConst = MemoryAccessHelper::ieventAccessRecordConst; + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer ) <===] + static constexpr auto decodeRecord = MemoryAccessHelper::decodeRecord; + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (const) ===> const fptype& decodeRecordConst( const fptype* buffer ) <===] + static constexpr auto decodeRecordConst = + MemoryAccessHelper::template decodeRecordConst<>; + + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (non-const) ===> fptype& ieventAccess( fptype* buffer, const ievt ) <===] + static constexpr auto ieventAccess = + MemoryAccessHelper::template ieventAccessField<>; + + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (const) ===> const fptype& ieventAccessConst( const fptype* buffer, const ievt ) <===] + static constexpr auto ieventAccessConst = + MemoryAccessHelper::template ieventAccessFieldConst<>; + }; + + //---------------------------------------------------------------------------- + + // A class providing access to memory buffers for a given event, based on implicit kernel rules + // Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations + template + class KernelAccessMatrixElements { - fptype& out = kernelAccess_s( buffer ); + public: + + // Expose selected functions from MemoryAccessMatrixElements + static constexpr auto ieventAccessRecord = MemoryAccessMatrixElements::ieventAccessRecord; + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (non-const, SCALAR) ===> fptype& kernelAccess_s( fptype* buffer ) <===] + static constexpr auto kernelAccess_s = + KernelAccessHelper::template kernelAccessField<>; // requires cuda 11.4 + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) + // [Signature (non const, SCALAR OR VECTOR) ===> fptype_sv& kernelAccess( const fptype* buffer ) <===] + static __host__ __device__ inline fptype_sv& + kernelAccess( fptype* buffer ) + { + fptype& out = kernelAccess_s( buffer ); #ifndef MGONGPU_CPPSIMD - return out; + return out; #else - // NB: derived from MemoryAccessMomenta, restricting the implementation to contiguous aligned arrays (#435) - static_assert( mg5amcCpu::HostBufferMatrixElements::isaligned() ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) - //assert( (size_t)( buffer ) % mgOnGpu::cppAlign == 0 ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) - return mg5amcCpu::fptypevFromAlignedArray( out ); // SIMD bulk load of neppV, use reinterpret_cast + // NB: derived from MemoryAccessMomenta, restricting the implementation to contiguous aligned arrays (#435) + static_assert( mg5amcCpu::HostBufferMatrixElements::isaligned() ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) + //assert( (size_t)( buffer ) % mgOnGpu::cppAlign == 0 ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) + return mg5amcCpu::fptypevFromAlignedArray( out ); // SIMD bulk load of neppV, use reinterpret_cast #endif - } + } + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (const) ===> const fptype& kernelAccessConst( const fptype* buffer ) <===] + static constexpr auto kernelAccessConst = + KernelAccessHelper::template kernelAccessFieldConst<>; // requires cuda 11.4 + }; - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (const) ===> const fptype& kernelAccessConst( const fptype* buffer ) <===] - static constexpr auto kernelAccessConst = - KernelAccessHelper::template kernelAccessFieldConst<>; // requires cuda 11.4 -}; + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- + typedef KernelAccessMatrixElements HostAccessMatrixElements; + typedef KernelAccessMatrixElements DeviceAccessMatrixElements; -typedef KernelAccessMatrixElements HostAccessMatrixElements; -typedef KernelAccessMatrixElements DeviceAccessMatrixElements; + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- +} // end namespace mg5amcGpu/mg5amcCpu #endif // MemoryAccessMatrixElements_H diff --git a/epochX/cudacpp/ee_mumu.mad/SubProcesses/MemoryAccessMomenta.h b/epochX/cudacpp/ee_mumu.mad/SubProcesses/MemoryAccessMomenta.h index 0ac4faa3c7..29266de32c 100644 --- a/epochX/cudacpp/ee_mumu.mad/SubProcesses/MemoryAccessMomenta.h +++ b/epochX/cudacpp/ee_mumu.mad/SubProcesses/MemoryAccessMomenta.h @@ -12,261 +12,264 @@ #include "MemoryAccessHelpers.h" #include "MemoryAccessVectors.h" +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) #ifdef __CUDACC__ -using mg5amcGpu::CPPProcess; +namespace mg5amcGpu #else -using mg5amcCpu::CPPProcess; +namespace mg5amcCpu #endif - -//---------------------------------------------------------------------------- - -// A class describing the internal layout of memory buffers for momenta -// This implementation uses an AOSOA[npagM][npar][np4][neppM] where nevt=npagM*neppM -// [If many implementations are used, a suffix _AOSOAv1 should be appended to the class name] -class MemoryAccessMomentaBase //_AOSOAv1 { -public: + //---------------------------------------------------------------------------- + + // A class describing the internal layout of memory buffers for momenta + // This implementation uses an AOSOA[npagM][npar][np4][neppM] where nevt=npagM*neppM + // [If many implementations are used, a suffix _AOSOAv1 should be appended to the class name] + class MemoryAccessMomentaBase //_AOSOAv1 + { + public: - // Number of Events Per Page in the momenta AOSOA memory buffer layout - // (these are all best kept as a compile-time constants: see issue #23) + // Number of Events Per Page in the momenta AOSOA memory buffer layout + // (these are all best kept as a compile-time constants: see issue #23) #ifdef __CUDACC__ /* clang-format off */ - // ----------------------------------------------------------------------------------------------- - // --- GPUs: neppM is best set to a power of 2 times the number of fptype's in a 32-byte cacheline - // --- This is relevant to ensure coalesced access to momenta in global memory - // --- Note that neppR is hardcoded and may differ from neppM and neppV on some platforms - // ----------------------------------------------------------------------------------------------- - //static constexpr int neppM = 64/sizeof(fptype); // 2x 32-byte GPU cache lines (512 bits): 8 (DOUBLE) or 16 (FLOAT) - static constexpr int neppM = 32/sizeof(fptype); // (DEFAULT) 32-byte GPU cache line (256 bits): 4 (DOUBLE) or 8 (FLOAT) - //static constexpr int neppM = 1; // *** NB: this is equivalent to AOS *** (slower: 1.03E9 instead of 1.11E9 in eemumu) + // ----------------------------------------------------------------------------------------------- + // --- GPUs: neppM is best set to a power of 2 times the number of fptype's in a 32-byte cacheline + // --- This is relevant to ensure coalesced access to momenta in global memory + // --- Note that neppR is hardcoded and may differ from neppM and neppV on some platforms + // ----------------------------------------------------------------------------------------------- + //static constexpr int neppM = 64/sizeof(fptype); // 2x 32-byte GPU cache lines (512 bits): 8 (DOUBLE) or 16 (FLOAT) + static constexpr int neppM = 32/sizeof(fptype); // (DEFAULT) 32-byte GPU cache line (256 bits): 4 (DOUBLE) or 8 (FLOAT) + //static constexpr int neppM = 1; // *** NB: this is equivalent to AOS *** (slower: 1.03E9 instead of 1.11E9 in eemumu) #else - // ----------------------------------------------------------------------------------------------- - // --- CPUs: neppM is best set equal to the number of fptype's (neppV) in a vector register - // --- This is relevant to ensure faster access to momenta from C++ memory cache lines - // --- However, neppM is now decoupled from neppV (issue #176) and can be separately hardcoded - // --- In practice, neppR, neppM and neppV could now (in principle) all be different - // ----------------------------------------------------------------------------------------------- + // ----------------------------------------------------------------------------------------------- + // --- CPUs: neppM is best set equal to the number of fptype's (neppV) in a vector register + // --- This is relevant to ensure faster access to momenta from C++ memory cache lines + // --- However, neppM is now decoupled from neppV (issue #176) and can be separately hardcoded + // --- In practice, neppR, neppM and neppV could now (in principle) all be different + // ----------------------------------------------------------------------------------------------- #ifdef MGONGPU_CPPSIMD - static constexpr int neppM = MGONGPU_CPPSIMD; // (DEFAULT) neppM=neppV for optimal performance - //static constexpr int neppM = 64/sizeof(fptype); // maximum CPU vector width (512 bits): 8 (DOUBLE) or 16 (FLOAT) - //static constexpr int neppM = 32/sizeof(fptype); // lower CPU vector width (256 bits): 4 (DOUBLE) or 8 (FLOAT) - //static constexpr int neppM = 1; // *** NB: this is equivalent to AOS *** (slower: 4.66E6 instead of 5.09E9 in eemumu) - //static constexpr int neppM = MGONGPU_CPPSIMD*2; // FOR TESTS + static constexpr int neppM = MGONGPU_CPPSIMD; // (DEFAULT) neppM=neppV for optimal performance + //static constexpr int neppM = 64/sizeof(fptype); // maximum CPU vector width (512 bits): 8 (DOUBLE) or 16 (FLOAT) + //static constexpr int neppM = 32/sizeof(fptype); // lower CPU vector width (256 bits): 4 (DOUBLE) or 8 (FLOAT) + //static constexpr int neppM = 1; // *** NB: this is equivalent to AOS *** (slower: 4.66E6 instead of 5.09E9 in eemumu) + //static constexpr int neppM = MGONGPU_CPPSIMD*2; // FOR TESTS #else - static constexpr int neppM = 1; // (DEFAULT) neppM=neppV for optimal performance (NB: this is equivalent to AOS) + static constexpr int neppM = 1; // (DEFAULT) neppM=neppV for optimal performance (NB: this is equivalent to AOS) #endif #endif /* clang-format on */ - // SANITY CHECK: check that neppM is a power of two - static_assert( ispoweroftwo( neppM ), "neppM is not a power of 2" ); + // SANITY CHECK: check that neppM is a power of two + static_assert( ispoweroftwo( neppM ), "neppM is not a power of 2" ); -private: + private: - friend class MemoryAccessHelper; - friend class KernelAccessHelper; - friend class KernelAccessHelper; + friend class MemoryAccessHelper; + friend class KernelAccessHelper; + friend class KernelAccessHelper; - // The number of components of a 4-momentum - static constexpr int np4 = CPPProcess::np4; + // The number of components of a 4-momentum + static constexpr int np4 = CPPProcess::np4; - // The number of particles in this physics process - static constexpr int npar = CPPProcess::npar; + // The number of particles in this physics process + static constexpr int npar = CPPProcess::npar; - //-------------------------------------------------------------------------- - // NB all KernelLaunchers assume that memory access can be decomposed as "accessField = decodeRecord( accessRecord )" - // (in other words: first locate the event record for a given event, then locate an element in that record) - //-------------------------------------------------------------------------- + //-------------------------------------------------------------------------- + // NB all KernelLaunchers assume that memory access can be decomposed as "accessField = decodeRecord( accessRecord )" + // (in other words: first locate the event record for a given event, then locate an element in that record) + //-------------------------------------------------------------------------- - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] - static __host__ __device__ inline fptype* - ieventAccessRecord( fptype* buffer, - const int ievt ) - { - const int ipagM = ievt / neppM; // #event "M-page" - const int ieppM = ievt % neppM; // #event in the current event M-page - constexpr int ip4 = 0; - constexpr int ipar = 0; - return &( buffer[ipagM * npar * np4 * neppM + ipar * np4 * neppM + ip4 * neppM + ieppM] ); // AOSOA[ipagM][ipar][ip4][ieppM] - } - - //-------------------------------------------------------------------------- - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, Ts... args ) <===] - // [NB: expand variadic template "Ts... args" to "const int ip4, const int ipar" and rename "Field" as "Ip4Ipar"] - static __host__ __device__ inline fptype& - decodeRecord( fptype* buffer, - const int ip4, - const int ipar ) + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] + static __host__ __device__ inline fptype* + ieventAccessRecord( fptype* buffer, + const int ievt ) + { + const int ipagM = ievt / neppM; // #event "M-page" + const int ieppM = ievt % neppM; // #event in the current event M-page + constexpr int ip4 = 0; + constexpr int ipar = 0; + return &( buffer[ipagM * npar * np4 * neppM + ipar * np4 * neppM + ip4 * neppM + ieppM] ); // AOSOA[ipagM][ipar][ip4][ieppM] + } + + //-------------------------------------------------------------------------- + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, Ts... args ) <===] + // [NB: expand variadic template "Ts... args" to "const int ip4, const int ipar" and rename "Field" as "Ip4Ipar"] + static __host__ __device__ inline fptype& + decodeRecord( fptype* buffer, + const int ip4, + const int ipar ) + { + constexpr int ipagM = 0; + constexpr int ieppM = 0; + return buffer[ipagM * npar * np4 * neppM + ipar * np4 * neppM + ip4 * neppM + ieppM]; // AOSOA[ipagM][ipar][ip4][ieppM] + } + }; + + //---------------------------------------------------------------------------- + + // A class providing access to memory buffers for a given event, based on explicit event numbers + // Its methods use the MemoryAccessHelper templates - note the use of the template keyword in template function instantiations + class MemoryAccessMomenta : public MemoryAccessMomentaBase { - constexpr int ipagM = 0; - constexpr int ieppM = 0; - return buffer[ipagM * npar * np4 * neppM + ipar * np4 * neppM + ip4 * neppM + ieppM]; // AOSOA[ipagM][ipar][ip4][ieppM] - } -}; + public: + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] + static constexpr auto ieventAccessRecord = MemoryAccessHelper::ieventAccessRecord; + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (const) ===> const fptype* ieventAccessRecordConst( const fptype* buffer, const int ievt ) <===] + static constexpr auto ieventAccessRecordConst = MemoryAccessHelper::ieventAccessRecordConst; + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, const int ipar, const int ipar ) <===] + static constexpr auto decodeRecordIp4Ipar = MemoryAccessHelper::decodeRecord; + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (const) ===> const fptype& decodeRecordConst( const fptype* buffer, const int ipar, const int ipar ) <===] + static constexpr auto decodeRecordIp4IparConst = + MemoryAccessHelper::template decodeRecordConst; + + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (non-const) ===> fptype& ieventAccessIp4Ipar( fptype* buffer, const ievt, const int ipar, const int ipar ) <===] + static constexpr auto ieventAccessIp4Ipar = + MemoryAccessHelper::template ieventAccessField; + + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (const) ===> const fptype& ieventAccessIp4IparConst( const fptype* buffer, const ievt, const int ipar, const int ipar ) <===] + // DEFAULT VERSION + static constexpr auto ieventAccessIp4IparConst = + MemoryAccessHelper::template ieventAccessFieldConst; + + /* + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (const) ===> const fptype& ieventAccessIp4IparConst( const fptype* buffer, const ievt, const int ipar, const int ipar ) <===] + // DEBUG VERSION WITH PRINTOUTS + static __host__ __device__ inline const fptype& + ieventAccessIp4IparConst( const fptype* buffer, + const int ievt, + const int ip4, + const int ipar ) + { + const fptype& out = MemoryAccessHelper::template ieventAccessFieldConst( buffer, ievt, ip4, ipar ); + printf( "ipar=%2d ip4=%2d ievt=%8d out=%8.3f\n", ipar, ip4, ievt, out ); + return out; + } + */ + }; -//---------------------------------------------------------------------------- + //---------------------------------------------------------------------------- -// A class providing access to memory buffers for a given event, based on explicit event numbers -// Its methods use the MemoryAccessHelper templates - note the use of the template keyword in template function instantiations -class MemoryAccessMomenta : public MemoryAccessMomentaBase -{ -public: - - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] - static constexpr auto ieventAccessRecord = MemoryAccessHelper::ieventAccessRecord; - - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (const) ===> const fptype* ieventAccessRecordConst( const fptype* buffer, const int ievt ) <===] - static constexpr auto ieventAccessRecordConst = MemoryAccessHelper::ieventAccessRecordConst; - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, const int ipar, const int ipar ) <===] - static constexpr auto decodeRecordIp4Ipar = MemoryAccessHelper::decodeRecord; - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (const) ===> const fptype& decodeRecordConst( const fptype* buffer, const int ipar, const int ipar ) <===] - static constexpr auto decodeRecordIp4IparConst = - MemoryAccessHelper::template decodeRecordConst; - - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (non-const) ===> fptype& ieventAccessIp4Ipar( fptype* buffer, const ievt, const int ipar, const int ipar ) <===] - static constexpr auto ieventAccessIp4Ipar = - MemoryAccessHelper::template ieventAccessField; - - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (const) ===> const fptype& ieventAccessIp4IparConst( const fptype* buffer, const ievt, const int ipar, const int ipar ) <===] - // DEFAULT VERSION - static constexpr auto ieventAccessIp4IparConst = - MemoryAccessHelper::template ieventAccessFieldConst; - - /* - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (const) ===> const fptype& ieventAccessIp4IparConst( const fptype* buffer, const ievt, const int ipar, const int ipar ) <===] - // DEBUG VERSION WITH PRINTOUTS - static __host__ __device__ inline const fptype& - ieventAccessIp4IparConst( const fptype* buffer, - const int ievt, - const int ip4, - const int ipar ) + // A class providing access to memory buffers for a given event, based on implicit kernel rules + // Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations + template + class KernelAccessMomenta { - const fptype& out = MemoryAccessHelper::template ieventAccessFieldConst( buffer, ievt, ip4, ipar ); - printf( "ipar=%2d ip4=%2d ievt=%8d out=%8.3f\n", ipar, ip4, ievt, out ); - return out; - } - */ -}; - -//---------------------------------------------------------------------------- - -// A class providing access to memory buffers for a given event, based on implicit kernel rules -// Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations -template -class KernelAccessMomenta -{ -public: - - // Expose selected functions from MemoryAccessMomenta - static constexpr auto ieventAccessRecordConst = MemoryAccessMomenta::ieventAccessRecordConst; - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (non-const, SCALAR) ===> fptype& kernelAccessIp4Ipar( fptype* buffer, const int ipar, const int ipar ) <===] - static constexpr auto kernelAccessIp4Ipar = - KernelAccessHelper::template kernelAccessField; - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (const, SCALAR) ===> const fptype& kernelAccessIp4IparConst( const fptype* buffer, const int ipar, const int ipar ) <===] - // DEFAULT VERSION - static constexpr auto kernelAccessIp4IparConst_s = - KernelAccessHelper::template kernelAccessFieldConst; - - /* - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (const, SCALAR) ===> const fptype& kernelAccessIp4IparConst( const fptype* buffer, const int ipar, const int ipar ) <===] - // DEBUG VERSION WITH PRINTOUTS - static __host__ __device__ inline const fptype& - kernelAccessIp4IparConst_s( const fptype* buffer, + public: + + // Expose selected functions from MemoryAccessMomenta + static constexpr auto ieventAccessRecordConst = MemoryAccessMomenta::ieventAccessRecordConst; + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (non-const, SCALAR) ===> fptype& kernelAccessIp4Ipar( fptype* buffer, const int ipar, const int ipar ) <===] + static constexpr auto kernelAccessIp4Ipar = + KernelAccessHelper::template kernelAccessField; + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (const, SCALAR) ===> const fptype& kernelAccessIp4IparConst( const fptype* buffer, const int ipar, const int ipar ) <===] + // DEFAULT VERSION + static constexpr auto kernelAccessIp4IparConst_s = + KernelAccessHelper::template kernelAccessFieldConst; + + /* + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (const, SCALAR) ===> const fptype& kernelAccessIp4IparConst( const fptype* buffer, const int ipar, const int ipar ) <===] + // DEBUG VERSION WITH PRINTOUTS + static __host__ __device__ inline const fptype& + kernelAccessIp4IparConst_s( const fptype* buffer, + const int ip4, + const int ipar ) + { + const fptype& out = KernelAccessHelper::template kernelAccessFieldConst( buffer, ip4, ipar ); + printf( "ipar=%2d ip4=%2d ievt='kernel' out=%8.3f\n", ipar, ip4, out ); + return out; + } + */ + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (const, SCALAR OR VECTOR) ===> fptype_sv kernelAccessIp4IparConst( const fptype* buffer, const int ipar, const int ipar ) <===] + // FIXME? Eventually return by const reference and support aligned arrays only? + // FIXME? Currently return by value to support also unaligned and arbitrary arrays + static __host__ __device__ inline fptype_sv + kernelAccessIp4IparConst( const fptype* buffer, const int ip4, const int ipar ) - { - const fptype& out = KernelAccessHelper::template kernelAccessFieldConst( buffer, ip4, ipar ); - printf( "ipar=%2d ip4=%2d ievt='kernel' out=%8.3f\n", ipar, ip4, out ); - return out; - } - */ - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (const, SCALAR OR VECTOR) ===> fptype_sv kernelAccessIp4IparConst( const fptype* buffer, const int ipar, const int ipar ) <===] - // FIXME? Eventually return by const reference and support aligned arrays only? - // FIXME? Currently return by value to support also unaligned and arbitrary arrays - static __host__ __device__ inline fptype_sv - kernelAccessIp4IparConst( const fptype* buffer, - const int ip4, - const int ipar ) - { - const fptype& out = kernelAccessIp4IparConst_s( buffer, ip4, ipar ); + { + const fptype& out = kernelAccessIp4IparConst_s( buffer, ip4, ipar ); #ifndef MGONGPU_CPPSIMD - return out; + return out; #else - constexpr int neppM = MemoryAccessMomentaBase::neppM; - constexpr bool useContiguousEventsIfPossible = true; // DEFAULT - //constexpr bool useContiguousEventsIfPossible = false; // FOR PERFORMANCE TESTS (treat as arbitrary array even if it is an AOSOA) - // Use c++17 "if constexpr": compile-time branching - if constexpr( useContiguousEventsIfPossible && ( neppM >= neppV ) && ( neppM % neppV == 0 ) ) - { - //constexpr bool skipAlignmentCheck = true; // FASTEST (SEGFAULTS IF MISALIGNED ACCESS, NEEDS A SANITY CHECK ELSEWHERE!) - constexpr bool skipAlignmentCheck = false; // DEFAULT: A BIT SLOWER BUT SAFER [ALLOWS MISALIGNED ACCESS] - if constexpr( skipAlignmentCheck ) - { - //static bool first=true; if( first ){ std::cout << "WARNING! assume aligned AOSOA, skip check" << std::endl; first=false; } // SLOWER (5.06E6) - // FASTEST? (5.09E6 in eemumu 512y) - // This assumes alignment for momenta1d without checking - causes segmentation fault in reinterpret_cast if not aligned! - return mg5amcCpu::fptypevFromAlignedArray( out ); // use reinterpret_cast - } - else if( (size_t)( buffer ) % mgOnGpu::cppAlign == 0 ) + constexpr int neppM = MemoryAccessMomentaBase::neppM; + constexpr bool useContiguousEventsIfPossible = true; // DEFAULT + //constexpr bool useContiguousEventsIfPossible = false; // FOR PERFORMANCE TESTS (treat as arbitrary array even if it is an AOSOA) + // Use c++17 "if constexpr": compile-time branching + if constexpr( useContiguousEventsIfPossible && ( neppM >= neppV ) && ( neppM % neppV == 0 ) ) { - //static bool first=true; if( first ){ std::cout << "WARNING! aligned AOSOA, reinterpret cast" << std::endl; first=false; } // SLOWER (5.00E6) - // DEFAULT! A tiny bit (<1%) slower because of the alignment check (5.07E6 in eemumu 512y) - // This explicitly checks buffer alignment to avoid segmentation faults in reinterpret_cast - return mg5amcCpu::fptypevFromAlignedArray( out ); // SIMD bulk load of neppV, use reinterpret_cast + //constexpr bool skipAlignmentCheck = true; // FASTEST (SEGFAULTS IF MISALIGNED ACCESS, NEEDS A SANITY CHECK ELSEWHERE!) + constexpr bool skipAlignmentCheck = false; // DEFAULT: A BIT SLOWER BUT SAFER [ALLOWS MISALIGNED ACCESS] + if constexpr( skipAlignmentCheck ) + { + //static bool first=true; if( first ){ std::cout << "WARNING! assume aligned AOSOA, skip check" << std::endl; first=false; } // SLOWER (5.06E6) + // FASTEST? (5.09E6 in eemumu 512y) + // This assumes alignment for momenta1d without checking - causes segmentation fault in reinterpret_cast if not aligned! + return mg5amcCpu::fptypevFromAlignedArray( out ); // use reinterpret_cast + } + else if( (size_t)( buffer ) % mgOnGpu::cppAlign == 0 ) + { + //static bool first=true; if( first ){ std::cout << "WARNING! aligned AOSOA, reinterpret cast" << std::endl; first=false; } // SLOWER (5.00E6) + // DEFAULT! A tiny bit (<1%) slower because of the alignment check (5.07E6 in eemumu 512y) + // This explicitly checks buffer alignment to avoid segmentation faults in reinterpret_cast + return mg5amcCpu::fptypevFromAlignedArray( out ); // SIMD bulk load of neppV, use reinterpret_cast + } + else + { + //static bool first=true; if( first ){ std::cout << "WARNING! AOSOA but no reinterpret cast" << std::endl; first=false; } // SLOWER (4.93E6) + // A bit (1%) slower (5.05E6 in eemumu 512y) + // This does not require buffer alignment, but it requires AOSOA with neppM>=neppV and neppM%neppV==0 + return mg5amcCpu::fptypevFromUnalignedArray( out ); // SIMD bulk load of neppV, do not use reinterpret_cast (fewer SIMD operations) + } } else { - //static bool first=true; if( first ){ std::cout << "WARNING! AOSOA but no reinterpret cast" << std::endl; first=false; } // SLOWER (4.93E6) - // A bit (1%) slower (5.05E6 in eemumu 512y) - // This does not require buffer alignment, but it requires AOSOA with neppM>=neppV and neppM%neppV==0 - return mg5amcCpu::fptypevFromUnalignedArray( out ); // SIMD bulk load of neppV, do not use reinterpret_cast (fewer SIMD operations) + //static bool first=true; if( first ){ std::cout << "WARNING! arbitrary array" << std::endl; first=false; } // SLOWER (5.08E6) + // ?!Used to be much slower, now a tiny bit faster for AOSOA?! (5.11E6 for AOSOA, 4.64E6 for AOS in eemumu 512y) + // This does not even require AOSOA with neppM>=neppV and neppM%neppV==0 (e.g. can be used with AOS neppM==1) + constexpr int ievt0 = 0; // just make it explicit in the code that buffer refers to a given ievt0 and decoderIeppV fetches event ievt0+ieppV + auto decoderIeppv = [buffer, ip4, ipar]( int ieppV ) + -> const fptype& + { return MemoryAccessMomenta::ieventAccessIp4IparConst( buffer, ievt0 + ieppV, ip4, ipar ); }; + return mg5amcCpu::fptypevFromArbitraryArray( decoderIeppv ); // iterate over ieppV in neppV (no SIMD) } +#endif } - else + + // Is this a HostAccess or DeviceAccess class? + // [this is only needed for a warning printout in rambo.h for nparf==1 #358] + static __host__ __device__ inline constexpr bool + isOnDevice() { - //static bool first=true; if( first ){ std::cout << "WARNING! arbitrary array" << std::endl; first=false; } // SLOWER (5.08E6) - // ?!Used to be much slower, now a tiny bit faster for AOSOA?! (5.11E6 for AOSOA, 4.64E6 for AOS in eemumu 512y) - // This does not even require AOSOA with neppM>=neppV and neppM%neppV==0 (e.g. can be used with AOS neppM==1) - constexpr int ievt0 = 0; // just make it explicit in the code that buffer refers to a given ievt0 and decoderIeppV fetches event ievt0+ieppV - auto decoderIeppv = [buffer, ip4, ipar]( int ieppV ) - -> const fptype& - { return MemoryAccessMomenta::ieventAccessIp4IparConst( buffer, ievt0 + ieppV, ip4, ipar ); }; - return mg5amcCpu::fptypevFromArbitraryArray( decoderIeppv ); // iterate over ieppV in neppV (no SIMD) + return onDevice; } -#endif - } + }; - // Is this a HostAccess or DeviceAccess class? - // [this is only needed for a warning printout in rambo.h for nparf==1 #358] - static __host__ __device__ inline constexpr bool - isOnDevice() - { - return onDevice; - } -}; + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- + typedef KernelAccessMomenta HostAccessMomenta; + typedef KernelAccessMomenta DeviceAccessMomenta; -typedef KernelAccessMomenta HostAccessMomenta; -typedef KernelAccessMomenta DeviceAccessMomenta; + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- +} // end namespace mg5amcGpu/mg5amcCpu #endif // MemoryAccessMomenta_H diff --git a/epochX/cudacpp/ee_mumu.mad/SubProcesses/MemoryAccessNumerators.h b/epochX/cudacpp/ee_mumu.mad/SubProcesses/MemoryAccessNumerators.h index b373fd6048..b152183b28 100644 --- a/epochX/cudacpp/ee_mumu.mad/SubProcesses/MemoryAccessNumerators.h +++ b/epochX/cudacpp/ee_mumu.mad/SubProcesses/MemoryAccessNumerators.h @@ -9,15 +9,24 @@ #include "MemoryAccessGs.h" -//---------------------------------------------------------------------------- +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif +{ + //---------------------------------------------------------------------------- + + // A class describing the internal layout of memory buffers for numerators + // This implementation reuses the plain ARRAY[nevt] implementation of MemoryAccessGs -// A class describing the internal layout of memory buffers for numerators -// This implementation reuses the plain ARRAY[nevt] implementation of MemoryAccessGs + typedef KernelAccessGs HostAccessNumerators; + typedef KernelAccessGs DeviceAccessNumerators; -typedef KernelAccessGs HostAccessNumerators; -typedef KernelAccessGs DeviceAccessNumerators; + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- +} // end namespace mg5amcGpu/mg5amcCpu #endif #endif // MemoryAccessNumerators_H diff --git a/epochX/cudacpp/ee_mumu.mad/SubProcesses/MemoryAccessWavefunctions.h b/epochX/cudacpp/ee_mumu.mad/SubProcesses/MemoryAccessWavefunctions.h index f42f0d34ed..5428aaf933 100644 --- a/epochX/cudacpp/ee_mumu.mad/SubProcesses/MemoryAccessWavefunctions.h +++ b/epochX/cudacpp/ee_mumu.mad/SubProcesses/MemoryAccessWavefunctions.h @@ -14,147 +14,156 @@ #define MGONGPU_TRIVIAL_WAVEFUNCTIONS 1 -//---------------------------------------------------------------------------- - -#ifndef MGONGPU_TRIVIAL_WAVEFUNCTIONS - -// A class describing the internal layout of memory buffers for wavefunctions -// This implementation uses an AOSOA[npagW][nw6][nx2][neppW] where nevt=npagW*neppW -// [If many implementations are used, a suffix _AOSOAv1 should be appended to the class name] -class MemoryAccessWavefunctionsBase //_AOSOAv1 +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { -public: - - // Number of Events Per Page in the wavefunction AOSOA memory buffer layout - static constexpr int neppW = 1; // AOS (just a test...) - -private: - - friend class MemoryAccessHelper; - friend class KernelAccessHelper; - friend class KernelAccessHelper; - - // The number of components of a (fermion or vector) wavefunction - static constexpr int nw6 = mgOnGpu::nw6; - - // The number of floating point components of a complex number - static constexpr int nx2 = mgOnGpu::nx2; + //---------------------------------------------------------------------------- - //-------------------------------------------------------------------------- - // NB all KernelLaunchers assume that memory access can be decomposed as "accessField = decodeRecord( accessRecord )" - // (in other words: first locate the event record for a given event, then locate an element in that record) - //-------------------------------------------------------------------------- +#ifndef MGONGPU_TRIVIAL_WAVEFUNCTIONS - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] - static __host__ __device__ inline fptype* - ieventAccessRecord( fptype* buffer, - const int ievt ) + // A class describing the internal layout of memory buffers for wavefunctions + // This implementation uses an AOSOA[npagW][nw6][nx2][neppW] where nevt=npagW*neppW + // [If many implementations are used, a suffix _AOSOAv1 should be appended to the class name] + class MemoryAccessWavefunctionsBase //_AOSOAv1 { - const int ipagW = ievt / neppW; // #event "W-page" - const int ieppW = ievt % neppW; // #event in the current event W-page - constexpr int iw6 = 0; - constexpr int ix2 = 0; - return &( buffer[ipagW * nw6 * nx2 * neppW + iw6 * nx2 * neppW + ix2 * neppW + ieppW] ); // AOSOA[ipagW][iw6][ix2][ieppW] - } - - //-------------------------------------------------------------------------- - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, Ts... args ) <===] - // [NB: expand variadic template "Ts... args" to "const int iw6, const int ix2" and rename "Field" as "Iw6Ix2"] - static __host__ __device__ inline fptype& - decodeRecord( fptype* buffer, - const int iw6, - const int ix2 ) + public: + + // Number of Events Per Page in the wavefunction AOSOA memory buffer layout + static constexpr int neppW = 1; // AOS (just a test...) + + private: + + friend class MemoryAccessHelper; + friend class KernelAccessHelper; + friend class KernelAccessHelper; + + // The number of components of a (fermion or vector) wavefunction + static constexpr int nw6 = mgOnGpu::nw6; + + // The number of floating point components of a complex number + static constexpr int nx2 = mgOnGpu::nx2; + + //-------------------------------------------------------------------------- + // NB all KernelLaunchers assume that memory access can be decomposed as "accessField = decodeRecord( accessRecord )" + // (in other words: first locate the event record for a given event, then locate an element in that record) + //-------------------------------------------------------------------------- + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] + static __host__ __device__ inline fptype* + ieventAccessRecord( fptype* buffer, + const int ievt ) + { + const int ipagW = ievt / neppW; // #event "W-page" + const int ieppW = ievt % neppW; // #event in the current event W-page + constexpr int iw6 = 0; + constexpr int ix2 = 0; + return &( buffer[ipagW * nw6 * nx2 * neppW + iw6 * nx2 * neppW + ix2 * neppW + ieppW] ); // AOSOA[ipagW][iw6][ix2][ieppW] + } + + //-------------------------------------------------------------------------- + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, Ts... args ) <===] + // [NB: expand variadic template "Ts... args" to "const int iw6, const int ix2" and rename "Field" as "Iw6Ix2"] + static __host__ __device__ inline fptype& + decodeRecord( fptype* buffer, + const int iw6, + const int ix2 ) + { + constexpr int ipagW = 0; + constexpr int ieppW = 0; + return buffer[ipagW * nw6 * nx2 * neppW + iw6 * nx2 * neppW + ix2 * neppW + ieppW]; // AOSOA[ipagW][iw6][ix2][ieppW] + } + }; + + //---------------------------------------------------------------------------- + + // A class providing access to memory buffers for a given event, based on explicit event numbers + // Its methods use the MemoryAccessHelper templates - note the use of the template keyword in template function instantiations + class MemoryAccessWavefunctions : public MemoryAccessWavefunctionsBase { - constexpr int ipagW = 0; - constexpr int ieppW = 0; - return buffer[ipagW * nw6 * nx2 * neppW + iw6 * nx2 * neppW + ix2 * neppW + ieppW]; // AOSOA[ipagW][iw6][ix2][ieppW] - } -}; - -//---------------------------------------------------------------------------- + public: -// A class providing access to memory buffers for a given event, based on explicit event numbers -// Its methods use the MemoryAccessHelper templates - note the use of the template keyword in template function instantiations -class MemoryAccessWavefunctions : public MemoryAccessWavefunctionsBase -{ -public: + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] + static constexpr auto ieventAccessRecord = MemoryAccessHelper::ieventAccessRecord; - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] - static constexpr auto ieventAccessRecord = MemoryAccessHelper::ieventAccessRecord; + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (const) ===> const fptype* ieventAccessRecordConst( const fptype* buffer, const int ievt ) <===] + static constexpr auto ieventAccessRecordConst = MemoryAccessHelper::ieventAccessRecordConst; - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (const) ===> const fptype* ieventAccessRecordConst( const fptype* buffer, const int ievt ) <===] - static constexpr auto ieventAccessRecordConst = MemoryAccessHelper::ieventAccessRecordConst; + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, const int iw6, const int ix2 ) <===] + static constexpr auto decodeRecordIw6Ix2 = MemoryAccessHelper::decodeRecord; - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, const int iw6, const int ix2 ) <===] - static constexpr auto decodeRecordIw6Ix2 = MemoryAccessHelper::decodeRecord; + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (const) ===> const fptype& decodeRecordConst( const fptype* buffer, const int iw6, const int ix2 ) <===] + static constexpr auto decodeRecordIw6Ix2Const = + MemoryAccessHelper::template decodeRecordConst; - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (const) ===> const fptype& decodeRecordConst( const fptype* buffer, const int iw6, const int ix2 ) <===] - static constexpr auto decodeRecordIw6Ix2Const = - MemoryAccessHelper::template decodeRecordConst; + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (non-const) ===> fptype& ieventAccessIw6Ix2( fptype* buffer, const ievt, const int iw6, const int ix2 ) <===] + static constexpr auto ieventAccessIw6Ix2 = + MemoryAccessHelper::template ieventAccessField; - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (non-const) ===> fptype& ieventAccessIw6Ix2( fptype* buffer, const ievt, const int iw6, const int ix2 ) <===] - static constexpr auto ieventAccessIw6Ix2 = - MemoryAccessHelper::template ieventAccessField; - - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (const) ===> const fptype& ieventAccessIw6Ix2Const( const fptype* buffer, const ievt, const int iw6, const int ix2 ) <===] - static constexpr auto ieventAccessIw6Ix2Const = - MemoryAccessHelper::template ieventAccessFieldConst; -}; + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (const) ===> const fptype& ieventAccessIw6Ix2Const( const fptype* buffer, const ievt, const int iw6, const int ix2 ) <===] + static constexpr auto ieventAccessIw6Ix2Const = + MemoryAccessHelper::template ieventAccessFieldConst; + }; #endif // #ifndef MGONGPU_TRIVIAL_WAVEFUNCTIONS -//---------------------------------------------------------------------------- + //---------------------------------------------------------------------------- -// A class providing access to memory buffers for a given event, based on implicit kernel rules -// Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations -template -class KernelAccessWavefunctions -{ -public: + // A class providing access to memory buffers for a given event, based on implicit kernel rules + // Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations + template + class KernelAccessWavefunctions + { + public: #ifndef MGONGPU_TRIVIAL_WAVEFUNCTIONS - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (non-const) ===> fptype& kernelAccessIw6Ix2( fptype* buffer, const int iw6, const int ix2 ) <===] - static constexpr auto kernelAccessIw6Ix2 = - KernelAccessHelper::template kernelAccessField; + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (non-const) ===> fptype& kernelAccessIw6Ix2( fptype* buffer, const int iw6, const int ix2 ) <===] + static constexpr auto kernelAccessIw6Ix2 = + KernelAccessHelper::template kernelAccessField; - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (const) ===> const fptype& kernelAccessIw6Ix2Const( const fptype* buffer, const int iw6, const int ix2 ) <===] - static constexpr auto kernelAccessIw6Ix2Const = - KernelAccessHelper::template kernelAccessFieldConst; + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (const) ===> const fptype& kernelAccessIw6Ix2Const( const fptype* buffer, const int iw6, const int ix2 ) <===] + static constexpr auto kernelAccessIw6Ix2Const = + KernelAccessHelper::template kernelAccessFieldConst; #else - static __host__ __device__ inline cxtype_sv* - kernelAccess( fptype* buffer ) - { - return reinterpret_cast( buffer ); - } + static __host__ __device__ inline cxtype_sv* + kernelAccess( fptype* buffer ) + { + return reinterpret_cast( buffer ); + } - static __host__ __device__ inline const cxtype_sv* - kernelAccessConst( const fptype* buffer ) - { - return reinterpret_cast( buffer ); - } + static __host__ __device__ inline const cxtype_sv* + kernelAccessConst( const fptype* buffer ) + { + return reinterpret_cast( buffer ); + } #endif // #ifndef MGONGPU_TRIVIAL_WAVEFUNCTIONS -}; + }; + + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- + typedef KernelAccessWavefunctions HostAccessWavefunctions; + typedef KernelAccessWavefunctions DeviceAccessWavefunctions; -typedef KernelAccessWavefunctions HostAccessWavefunctions; -typedef KernelAccessWavefunctions DeviceAccessWavefunctions; + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- +} // end namespace mg5amcGpu/mg5amcCpu #endif // MemoryAccessWavefunctions_H diff --git a/epochX/cudacpp/ee_mumu.mad/SubProcesses/cudacpp.mk b/epochX/cudacpp/ee_mumu.mad/SubProcesses/cudacpp.mk index a0397e9ecc..c2f7b8e0f6 100644 --- a/epochX/cudacpp/ee_mumu.mad/SubProcesses/cudacpp.mk +++ b/epochX/cudacpp/ee_mumu.mad/SubProcesses/cudacpp.mk @@ -76,7 +76,7 @@ endif CXXFLAGS = $(OPTFLAGS) -std=c++17 $(INCFLAGS) -Wall -Wshadow -Wextra ifeq ($(shell $(CXX) --version | grep ^nvc++),) -CXXFLAGS+= -ffast-math # see issue #117 +CXXFLAGS += -ffast-math # see issue #117 endif ###CXXFLAGS+= -Ofast # performance is not different from --fast-math ###CXXFLAGS+= -g # FOR DEBUGGING ONLY @@ -122,7 +122,7 @@ ifneq ($(wildcard $(CUDA_HOME)/bin/nvcc),) CUINC = -I$(CUDA_HOME)/include/ CURANDLIBFLAGS = -L$(CUDA_HOME)/lib64/ -lcurand # NB: -lcuda is not needed here! CUOPTFLAGS = -lineinfo - CUFLAGS = $(OPTFLAGS) $(CUOPTFLAGS) $(INCFLAGS) $(CUINC) $(USE_NVTX) $(CUARCHFLAGS) -use_fast_math + CUFLAGS = $(foreach opt, $(OPTFLAGS), -Xcompiler $(opt)) $(CUOPTFLAGS) $(INCFLAGS) $(CUINC) $(USE_NVTX) $(CUARCHFLAGS) -use_fast_math ###CUFLAGS += -Xcompiler -Wall -Xcompiler -Wextra -Xcompiler -Wshadow ###NVCC_VERSION = $(shell $(NVCC) --version | grep 'Cuda compilation tools' | cut -d' ' -f5 | cut -d, -f1) CUFLAGS += -std=c++17 # need CUDA >= 11.2 (see #333): this is enforced in mgOnGpuConfig.h @@ -142,6 +142,8 @@ else override CUINC= override CURANDLIBFLAGS= endif +export NVCC +export CUFLAGS # Set the host C++ compiler for nvcc via "-ccbin " # (NB issue #505: this must be a single word, "clang++ --gcc-toolchain..." is not supported) @@ -439,7 +441,7 @@ endif # Target (and build options): debug MAKEDEBUG= -debug: OPTFLAGS = -g -O0 -DDEBUG2 +debug: OPTFLAGS = -g -O0 debug: CUOPTFLAGS = -G debug: MAKEDEBUG := debug debug: all.$(TAG) @@ -468,9 +470,9 @@ $(BUILDDIR)/%.o : %.cc *.h ../../src/*.h $(BUILDDIR)/.build.$(TAG) @if [ ! -d $(BUILDDIR) ]; then echo "mkdir -p $(BUILDDIR)"; mkdir -p $(BUILDDIR); fi $(CXX) $(CPPFLAGS) $(CXXFLAGS) -fPIC -c $< -o $@ -# Apply special build flags only to CrossSectionKernel.cc and gCrossSectionKernel.cu (no fast math, see #117) +# Apply special build flags only to CrossSectionKernel.cc and gCrossSectionKernel.cu (no fast math, see #117 and #516) ifeq ($(shell $(CXX) --version | grep ^nvc++),) -$(BUILDDIR)/CrossSectionKernels.o: CXXFLAGS += -fno-fast-math +$(BUILDDIR)/CrossSectionKernels.o: CXXFLAGS := $(filter-out -ffast-math,$(CXXFLAGS)) $(BUILDDIR)/CrossSectionKernels.o: CXXFLAGS += -fno-fast-math ifneq ($(NVCC),) $(BUILDDIR)/gCrossSectionKernels.o: CUFLAGS += -Xcompiler -fno-fast-math diff --git a/epochX/cudacpp/ee_mumu.mad/SubProcesses/runTest.cc b/epochX/cudacpp/ee_mumu.mad/SubProcesses/runTest.cc index 572e28aaea..df7488178e 100644 --- a/epochX/cudacpp/ee_mumu.mad/SubProcesses/runTest.cc +++ b/epochX/cudacpp/ee_mumu.mad/SubProcesses/runTest.cc @@ -2,6 +2,9 @@ // Licensed under the GNU Lesser General Public License (version 3 or later). // Created by: S. Hageboeck (Nov 2020) for the MG5aMC CUDACPP plugin. // Further modified by: S. Hageboeck, O. Mattelaer, S. Roiser, A. Valassi (2020-2023) for the MG5aMC CUDACPP plugin. +//---------------------------------------------------------------------------- +// Use ./runTest.exe --gtest_filter=*xxx to run only testxxx.cc tests +//---------------------------------------------------------------------------- #include "mgOnGpuConfig.h" diff --git a/epochX/cudacpp/ee_mumu.mad/SubProcesses/testmisc.cc b/epochX/cudacpp/ee_mumu.mad/SubProcesses/testmisc.cc index 989aba1fdc..895d6eeb56 100644 --- a/epochX/cudacpp/ee_mumu.mad/SubProcesses/testmisc.cc +++ b/epochX/cudacpp/ee_mumu.mad/SubProcesses/testmisc.cc @@ -3,7 +3,7 @@ // Created by: A. Valassi (Jan 2022) for the MG5aMC CUDACPP plugin. // Further modified by: A. Valassi (2022-2023) for the MG5aMC CUDACPP plugin. //---------------------------------------------------------------------------- -// Use ./runTest.exe --gtest_filter=*misc to run only this test +// Use ./runTest.exe --gtest_filter=*misc to run only testmisc.cc tests //---------------------------------------------------------------------------- #include "mgOnGpuConfig.h" @@ -25,33 +25,48 @@ #define XTESTID( s ) TESTID( s ) +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif +{ #ifdef MGONGPU_CPPSIMD /* clang-format off */ -bool maskand( const bool_v& mask ){ bool out = true; for ( int i=0; i #include +#include // debug #701 (see https://stackoverflow.com/a/17473528) #include #include #include @@ -28,16 +32,47 @@ #define XTESTID( s ) TESTID( s ) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif +{ + std::string FPEhandlerMessage = "unknown"; + int FPEhandlerIevt = -1; + inline void FPEhandler( int sig ) + { +#ifdef __CUDACC__ + std::cerr << "Floating Point Exception (GPU): '" << FPEhandlerMessage << "' ievt=" << FPEhandlerIevt << std::endl; +#else + std::cerr << "Floating Point Exception (CPU neppV=" << neppV << "): '" << FPEhandlerMessage << "' ievt=" << FPEhandlerIevt << std::endl; +#endif + exit( 0 ); + } +} + TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) { +#ifdef __CUDACC__ + using namespace mg5amcGpu; +#else + using namespace mg5amcCpu; +#endif +#ifndef __APPLE__ // test #701 (except on MacOS where feenableexcept is not defined #730) + const bool enableFPE = !getenv( "CUDACPP_RUNTIME_DISABLEFPE" ); + if( enableFPE ) + { + feenableexcept( FE_INVALID | FE_DIVBYZERO | FE_OVERFLOW | FE_UNDERFLOW ); // debug #701 + signal( SIGFPE, FPEhandler ); + } +#endif constexpr bool dumpEvents = false; // dump the expected output of the test? constexpr bool testEvents = !dumpEvents; // run the test? constexpr fptype toleranceXXXs = std::is_same::value ? 1.E-15 : 1.E-5; // Constant parameters constexpr int neppM = MemoryAccessMomenta::neppM; // AOSOA layout - using mgOnGpu::neppV; constexpr int np4 = CPPProcess::np4; - const int nevt = 16; // 12 independent tests plus 4 duplicates (need a multiple of 8 for floats or for '512z') + const int nevt = 32; // 12 independent tests plus 20 duplicates (need a multiple of 16 for floats '512z') assert( nevt % neppM == 0 ); // nevt must be a multiple of neppM assert( nevt % neppV == 0 ); // nevt must be a multiple of neppV // Fill in the input momenta @@ -46,24 +81,41 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) #else mg5amcCpu::HostBufferMomenta hstMomenta( nevt ); // AOSOA[npagM][npar=4][np4=4][neppM] #endif /* clang-format off */ + // NB NEW TESTS FOR DEBUGGING #701: KEEP TWO SEPARATE SETS (16-SIMD-VECTORS!) OF TESTS FOR M==0 AND M!=0! const fptype par0[np4 * nevt] = // AOS[nevt][np4] { - 500, 0, 0, 500, // #0 (m=0 pT=0 E=pz>0) - 500, 0, 0, -500, // #1 (m=0 pT=0 -E=pz<0) - 500, 300, 400, 0, // #2 (m=0 pT>0 pz=0) - 500, 180, 240, 400, // #3 (m=0 pT>0 pz>0) - 500, 180, 240, -400, // #4 (m=0 pT>0 pz<0) - 500, 0, 0, 0, // #5 (m=50>0 pT=0 pz=0) - 500, 0, 0, 300, // #6 (m=40>0 pT=0 pz>0) - 500, 0, 0, -300, // #7 (m=40>0 pT=0 pz<0) - 500, 180, 240, 0, // #8 (m=40>0 pT>0 pz=0) - 500, -240, -180, 0, // #9 (m=40>0 pT>0 pz=0) - 500, 180, 192, 144, // #10 (m=40>0 pT>0 pz>0) - 500, 180, 192, -144, // #11 (m=40>0 pT>0 pz<0) - 500, 0, 0, 500, // DUPLICATE #12 == #0 (m=0 pT=0 E=pz>0) - 500, 0, 0, -500, // DUPLICATE #13 == #1 (m=0 pT=0 -E=pz<0) - 500, 300, 400, 0, // DUPLICATE #14 == #2 (m=0 pT>0 pz=0) - 500, 180, 240, 400 // DUPLICATE #15 == #3 (m=0 pT>0 pz>0) + 500, 0, 0, 500, // #0 (m=0 pT=0 E=pz>0) + 500, 0, 0, -500, // #1 (m=0 pT=0 -E=pz<0) + 500, 300, 400, 0, // #2 (m=0 pT>0 pz=0) + 500, 180, 240, 400, // #3 (m=0 pT>0 pz>0) + 500, 180, 240, -400, // #4 (m=0 pT>0 pz<0) + 500, 0, 0, 500, // #5 DUPLICATE == #0 (m=0 pT=0 E=pz>0) + 500, 0, 0, -500, // #6 DUPLICATE == #1 (m=0 pT=0 -E=pz<0) + 500, 300, 400, 0, // #7 DUPLICATE == #2 (m=0 pT>0 pz=0) + 500, 180, 240, 400, // #8 DUPLICATE == #3 (m=0 pT>0 pz>0) + 500, 180, 240, -400, // #9 DUPLICATE == #4 (m=0 pT>0 pz<0) + 500, 0, 0, 500, // #10 DUPLICATE == #0 (m=0 pT=0 E=pz>0) + 500, 0, 0, -500, // #11 DUPLICATE == #1 (m=0 pT=0 -E=pz<0) + 500, 300, 400, 0, // #12 DUPLICATE == #2 (m=0 pT>0 pz=0) + 500, 180, 240, 400, // #13 DUPLICATE == #3 (m=0 pT>0 pz>0) + 500, 180, 240, -400, // #14 DUPLICATE == #4 (m=0 pT>0 pz<0) + 500, 0, 0, 500, // #15 DUPLICATE == #0 (m=0 pT=0 E=pz>0) + 500, 0, 0, 0, // #16 (m=50>0 pT=0 pz=0) + 500, 0, 0, 300, // #17 (m=40>0 pT=0 pz>0) + 500, 0, 0, -300, // #18 (m=40>0 pT=0 pz<0) + 500, 180, 240, 0, // #19 (m=40>0 pT>0 pz=0) + 500, -240, -180, 0, // #20 (m=40>0 pT>0 pz=0) + 500, 180, 192, 144, // #21 (m=40>0 pT>0 pz>0) + 500, 180, 192, -144, // #22 (m=40>0 pT>0 pz<0) + 500, 0, 0, 0, // #23 DUPLICATE == #16 (m=50>0 pT=0 pz=0) + 500, 0, 0, 300, // #24 DUPLICATE == #17 (m=40>0 pT=0 pz>0) + 500, 0, 0, -300, // #25 DUPLICATE == #18 (m=40>0 pT=0 pz<0) + 500, 180, 240, 0, // #26 DUPLICATE == #19 (m=40>0 pT>0 pz=0) + 500, -240, -180, 0, // #27 DUPLICATE == #20 (m=40>0 pT>0 pz=0) + 500, 180, 192, 144, // #28 DUPLICATE == #21 (m=40>0 pT>0 pz>0) + 500, 180, 192, -144, // #29 DUPLICATE == #22 (m=40>0 pT>0 pz<0) + 500, 0, 0, 0, // #30 DUPLICATE == #16 (m=50>0 pT=0 pz=0) + 500, 0, 0, 300 // #31 DUPLICATE == #17 (m=40>0 pT=0 pz>0) }; /* clang-format on */ // Array initialization: zero-out as "{0}" (C and C++) or as "{}" (C++ only) // See https://en.cppreference.com/w/c/language/array_initialization#Notes @@ -99,7 +151,15 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) constexpr int nw6 = CPPProcess::nw6; // dimensions of each wavefunction (HELAS KEK 91-11): e.g. 6 for e+ e- -> mu+ mu- (fermions and vectors) int itest = 0; // index on the expected output vector std::ofstream dumpFile; - if( dumpEvents ) dumpFile.open( dumpFileName, std::ios::trunc ); + if( dumpEvents ) + { + dumpFile.open( dumpFileName, std::ios::trunc ); + dumpFile << " // Copyright (C) 2020-2023 CERN and UCLouvain." << std::endl + << " // Licensed under the GNU Lesser General Public License (version 3 or later)." << std::endl + << " // Created by: A. Valassi (Apr 2021) for the MG5aMC CUDACPP plugin." << std::endl + << " // Further modified by: A. Valassi (2021-2023) for the MG5aMC CUDACPP plugin." << std::endl; + } + // Lambda function for dumping wavefunctions auto dumpwf6 = [&]( std::ostream& out, const cxtype_sv wf[6], const char* xxx, int ievt, int nsp, fptype mass ) { out << std::setprecision( 15 ) << std::scientific; @@ -129,6 +189,7 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) } out << std::defaultfloat; }; + // Lambda function for testing wavefunctions (1) auto testwf6 = [&]( const cxtype_sv wf[6], const char* xxx, int ievt, int nsp, fptype mass ) { if( dumpEvents ) dumpwf6( dumpFile, wf, xxx, ievt, nsp, mass ); @@ -170,6 +231,7 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) } itest++; }; + // Lambda function for testing wavefunctions (2) auto testwf6two = [&]( const cxtype_sv wf[6], const cxtype_sv expwf[6], const char* xxx, int ievt ) { if( testEvents ) @@ -213,6 +275,32 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) } } }; + // Lambda function for resetting hstMomenta to the values of par0 + // This is needed in each test because hstMomenta may have been modified to ensure a function like ipzxxx can be used (#701) + auto resetHstMomentaToPar0 = [&]() + { + for( int ievt = 0; ievt < nevt; ievt++ ) + for( int ip4 = 0; ip4 < np4; ip4++ ) + MemoryAccessMomenta::ieventAccessIp4Ipar( hstMomenta.data(), ievt, ip4, ipar0 ) = par0[ievt * np4 + ip4]; // AOS to AOSOA + }; + // Lambda function for preparing the test of one specific function + const bool debug = false; + auto prepareTest = [&]( const char* xxx, int ievt ) + { + if( debug ) std::cout << "Prepare test " << xxx << " ievt=" << ievt << std::endl; + resetHstMomentaToPar0(); + FPEhandlerMessage = xxx; + FPEhandlerIevt = ievt; + if( std::string( xxx ) == "ipzxxx" || std::string( xxx ) == "opzxxx" || std::string( xxx ) == "imzxxx" || std::string( xxx ) == "omzxxx" || std::string( xxx ) == "ixzxxx" || std::string( xxx ) == "oxzxxx" ) + { + // Modify hstMomenta so that ALL events have the momenta of a single ievt + // This ensures that a function like ipzxxx (which assumes pZ>0) can be used without triggering FPEs (#701) + // This is done by filling the full SIMD vector with the value of ievt, which was already tested to respect the relevant assumptions + for( int jevt = 0; jevt < nevt; jevt++ ) + for( int ip4 = 0; ip4 < np4; ip4++ ) + MemoryAccessMomenta::ieventAccessIp4Ipar( hstMomenta.data(), jevt, ip4, ipar0 ) = par0[ievt * np4 + ip4]; // AOS to AOSOA + } + }; // Array initialization: zero-out as "{0}" (C and C++) or as "{}" (C++ only) // See https://en.cppreference.com/w/c/language/array_initialization#Notes cxtype_sv outwfI[6] = {}; // last result of ixxxxx (mass==0) @@ -224,6 +312,7 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) fptype* fp_outwf = reinterpret_cast( outwf ); // proof of concept for using fptype* in the interface fptype* fp_outwf3 = reinterpret_cast( outwf3 ); // proof of concept for using fptype* in the interface const int nhel = 1; + // *** START OF TESTING LOOP for( auto nsp: { -1, +1 } ) // antifermion/fermion (or initial/final for scalar and vector) { for( int ievt = 0; ievt < nevt; ievt++ ) @@ -233,9 +322,10 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) #else using namespace mg5amcCpu; #endif - if( false ) + if( debug ) { std::cout << std::endl; + std::cout << "nsp=" << nsp << " ievt=" << ievt << ": "; for( int ip4 = 0; ip4 < np4; ip4++ ) std::cout << par0[ievt * np4 + ip4] << ", "; std::cout << std::endl; } @@ -243,6 +333,7 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) const fptype* ievt0Momenta = MemoryAccessMomenta::ieventAccessRecordConst( hstMomenta.data(), ipagV * neppV ); // Test ixxxxx - NO ASSUMPTIONS { + prepareTest( "ixxxxx", ievt ); const fptype fmass = mass0[ievt]; ixxxxx( ievt0Momenta, fmass, nhel, nsp, fp_outwfI, ipar0 ); testwf6( outwfI, "ixxxxx", ievt, nsp, fmass ); @@ -252,6 +343,7 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) // Test ipzxxx - ASSUMPTIONS: (FMASS == 0) and (PX == PY == 0 and E == +PZ > 0) if( mass0[ievt] == 0 && !isptgt0[ievt] && ispzgt0[ievt] ) { + prepareTest( "ipzxxx", ievt ); ipzxxx( ievt0Momenta, nhel, nsp, fp_outwf, ipar0 ); testwf6two( outwf, outwfI, "ipzxxx", ievt ); testwf6( outwf, "ipzxxx", ievt, nsp, 0 ); @@ -259,6 +351,7 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) // Test imzxxx - ASSUMPTIONS: (FMASS == 0) and (PX == PY == 0 and E == -PZ > 0) if( mass0[ievt] == 0 && !isptgt0[ievt] && ispzlt0[ievt] ) { + prepareTest( "imzxxx", ievt ); imzxxx( ievt0Momenta, nhel, nsp, fp_outwf, ipar0 ); testwf6two( outwf, outwfI, "imzxxx", ievt ); testwf6( outwf, "imzxxx", ievt, nsp, 0 ); @@ -266,12 +359,14 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) // Test ixzxxx - ASSUMPTIONS: (FMASS == 0) and (PT > 0) if( mass0[ievt] == 0 && isptgt0[ievt] ) { + prepareTest( "ixzxxx", ievt ); ixzxxx( ievt0Momenta, nhel, nsp, fp_outwf, ipar0 ); testwf6two( outwf, outwfI, "ixzxxx", ievt ); testwf6( outwf, "ixzxxx", ievt, nsp, 0 ); } // Test vxxxxx - NO ASSUMPTIONS { + prepareTest( "vxxxxx", ievt ); const fptype vmass = mass0[ievt]; vxxxxx( ievt0Momenta, vmass, nhel, nsp, fp_outwf, ipar0 ); testwf6( outwf, "vxxxxx", ievt, nsp, vmass ); @@ -280,6 +375,7 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) } // Test sxxxxx - NO ASSUMPTIONS { + prepareTest( "sxxxxx", ievt ); const fptype smass = mass0[ievt]; sxxxxx( ievt0Momenta, nsp, fp_outwf3, ipar0 ); // no mass, no helicity (was "smass>0") testwf6( outwf3, "sxxxxx", ievt, nsp, smass ); @@ -288,6 +384,7 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) } // Test oxxxxx - NO ASSUMPTIONS { + prepareTest( "oxxxxx", ievt ); const fptype fmass = mass0[ievt]; oxxxxx( ievt0Momenta, fmass, nhel, nsp, fp_outwfO, ipar0 ); testwf6( outwfO, "oxxxxx", ievt, nsp, fmass ); @@ -297,6 +394,7 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) // Test opzxxx - ASSUMPTIONS: (FMASS == 0) and (PX == PY == 0 and E == +PZ > 0) if( mass0[ievt] == 0 && !isptgt0[ievt] && ispzgt0[ievt] ) { + prepareTest( "opzxxx", ievt ); opzxxx( ievt0Momenta, nhel, nsp, fp_outwf, ipar0 ); testwf6two( outwf, outwfO, "opzxxx", ievt ); testwf6( outwf, "opzxxx", ievt, nsp, 0 ); @@ -304,6 +402,7 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) // Test omzxxx - ASSUMPTIONS: (FMASS == 0) and (PX == PY == 0 and E == -PZ > 0) if( mass0[ievt] == 0 && !isptgt0[ievt] && ispzlt0[ievt] ) { + prepareTest( "omzxxx", ievt ); omzxxx( ievt0Momenta, nhel, nsp, fp_outwf, ipar0 ); testwf6two( outwf, outwfO, "omzxxx", ievt ); testwf6( outwf, "omzxxx", ievt, nsp, 0 ); @@ -311,17 +410,25 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) // Test oxzxxx - ASSUMPTIONS: (FMASS == 0) and (PT > 0) if( mass0[ievt] == 0 && isptgt0[ievt] ) { - oxzxxx( ievt0Momenta, nhel, nsp, reinterpret_cast( outwf ), ipar0 ); + prepareTest( "oxzxxx", ievt ); + oxzxxx( ievt0Momenta, nhel, nsp, fp_outwf, ipar0 ); testwf6two( outwf, outwfO, "oxzxxx", ievt ); testwf6( outwf, "oxzxxx", ievt, nsp, 0 ); } } } + // *** END OF TESTING LOOP if( dumpEvents ) { dumpFile.close(); std::cout << "INFO: New reference data dumped to file '" << dumpFileName << "'" << std::endl; } +#ifndef __APPLE__ // test #701 (except on MacOS where fedisableexcept is not defined #730) + if( enableFPE ) + { + fedisableexcept( FE_INVALID | FE_DIVBYZERO | FE_OVERFLOW | FE_UNDERFLOW ); // debug #701 + } +#endif } //========================================================================== diff --git a/epochX/cudacpp/ee_mumu.mad/SubProcesses/testxxx_cc_ref.txt b/epochX/cudacpp/ee_mumu.mad/SubProcesses/testxxx_cc_ref.txt index acb9bde918..637530d1f5 100644 --- a/epochX/cudacpp/ee_mumu.mad/SubProcesses/testxxx_cc_ref.txt +++ b/epochX/cudacpp/ee_mumu.mad/SubProcesses/testxxx_cc_ref.txt @@ -5,14 +5,14 @@ expwfs.push_back( { // --------- 5.000000000000000e+02, 5.000000000000000e+02, // itest=0: ixxxxx#0 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=0: ixxxxx#0 nsp=-1 mass=0 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=0: ixxxxx#0 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=0: ixxxxx#0 nsp=-1 mass=0 -3.162277660168379e+01, 0.000000000000000e+00, // itest=0: ixxxxx#0 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=0: ixxxxx#0 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=0: ixxxxx#0 nsp=-1 mass=0 expwfs.push_back( { // --------- 5.000000000000000e+02, 5.000000000000000e+02, // itest=1: ixxxxx#0 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=1: ixxxxx#0 nsp=-1 mass=0 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=1: ixxxxx#0 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=1: ixxxxx#0 nsp=-1 mass=0 -3.162277660168379e+01, 0.000000000000000e+00, // itest=1: ixxxxx#0 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=1: ixxxxx#0 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=1: ixxxxx#0 nsp=-1 mass=0 @@ -82,8 +82,8 @@ expwfs.push_back( { // --------- 5.000000000000000e+02, -5.000000000000000e+02, // itest=11: ixxxxx#1 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=11: ixxxxx#1 nsp=-1 mass=0 - -3.162277660168379e+01, -0.000000000000000e+00, // itest=11: ixxxxx#1 nsp=-1 mass=0 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=11: ixxxxx#1 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=11: ixxxxx#1 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=11: ixxxxx#1 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=11: ixxxxx#1 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=11: ixxxxx#1 nsp=-1 mass=0 expwfs.push_back( { // --------- @@ -133,8 +133,8 @@ -0.000000000000000e+00, -0.000000000000000e+00, // itest=18: oxxxxx#1 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=18: oxxxxx#1 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=18: oxxxxx#1 nsp=-1 mass=0 - -3.162277660168379e+01, -0.000000000000000e+00, // itest=18: oxxxxx#1 nsp=-1 mass=0 - -0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=18: oxxxxx#1 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=18: oxxxxx#1 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=18: oxxxxx#1 nsp=-1 mass=0 expwfs.push_back( { // --------- -5.000000000000000e+02, 5.000000000000000e+02, // itest=19: omzxxx#1 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=19: omzxxx#1 nsp=-1 mass=0 @@ -145,14 +145,14 @@ expwfs.push_back( { // --------- 5.000000000000000e+02, 0.000000000000000e+00, // itest=20: ixxxxx#2 nsp=-1 mass=0 3.000000000000000e+02, 4.000000000000000e+02, // itest=20: ixxxxx#2 nsp=-1 mass=0 - 1.341640786499874e+01, -1.788854381999832e+01, // itest=20: ixxxxx#2 nsp=-1 mass=0 + 1.341640786499874e+01, -1.788854381999831e+01, // itest=20: ixxxxx#2 nsp=-1 mass=0 -2.236067977499790e+01, 0.000000000000000e+00, // itest=20: ixxxxx#2 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=20: ixxxxx#2 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=20: ixxxxx#2 nsp=-1 mass=0 expwfs.push_back( { // --------- 5.000000000000000e+02, 0.000000000000000e+00, // itest=21: ixxxxx#2 nsp=-1 mass=0 3.000000000000000e+02, 4.000000000000000e+02, // itest=21: ixxxxx#2 nsp=-1 mass=0 - 1.341640786499874e+01, -1.788854381999832e+01, // itest=21: ixxxxx#2 nsp=-1 mass=0 + 1.341640786499874e+01, -1.788854381999831e+01, // itest=21: ixxxxx#2 nsp=-1 mass=0 -2.236067977499790e+01, 0.000000000000000e+00, // itest=21: ixxxxx#2 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=21: ixxxxx#2 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=21: ixxxxx#2 nsp=-1 mass=0 @@ -196,14 +196,14 @@ -3.000000000000000e+02, -4.000000000000000e+02, // itest=27: oxxxxx#2 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=27: oxxxxx#2 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=27: oxxxxx#2 nsp=-1 mass=0 - 1.341640786499874e+01, 1.788854381999832e+01, // itest=27: oxxxxx#2 nsp=-1 mass=0 + 1.341640786499874e+01, 1.788854381999831e+01, // itest=27: oxxxxx#2 nsp=-1 mass=0 -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=27: oxxxxx#2 nsp=-1 mass=0 expwfs.push_back( { // --------- -5.000000000000000e+02, -0.000000000000000e+00, // itest=28: oxxxxx#2 nsp=-1 mass=0 -3.000000000000000e+02, -4.000000000000000e+02, // itest=28: oxxxxx#2 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=28: oxxxxx#2 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=28: oxxxxx#2 nsp=-1 mass=0 - 1.341640786499874e+01, 1.788854381999832e+01, // itest=28: oxxxxx#2 nsp=-1 mass=0 + 1.341640786499874e+01, 1.788854381999831e+01, // itest=28: oxxxxx#2 nsp=-1 mass=0 -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=28: oxxxxx#2 nsp=-1 mass=0 expwfs.push_back( { // --------- -5.000000000000000e+02, -0.000000000000000e+00, // itest=29: oxzxxx#2 nsp=-1 mass=0 @@ -353,1696 +353,3684 @@ 1.800000000000000e+01, 2.400000000000000e+01, // itest=49: oxzxxx#4 nsp=-1 mass=0 -1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=49: oxzxxx#4 nsp=-1 mass=0 expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=50: ixxxxx#5 nsp=-1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=50: ixxxxx#5 nsp=-1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=50: ixxxxx#5 nsp=-1 mass=500 - -2.236067977499790e+01, 0.000000000000000e+00, // itest=50: ixxxxx#5 nsp=-1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=50: ixxxxx#5 nsp=-1 mass=500 - 2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=50: ixxxxx#5 nsp=-1 mass=500 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=51: ixxxxx#5 nsp=-1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=51: ixxxxx#5 nsp=-1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=51: ixxxxx#5 nsp=-1 mass=-500 - -2.236067977499790e+01, 0.000000000000000e+00, // itest=51: ixxxxx#5 nsp=-1 mass=-500 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=51: ixxxxx#5 nsp=-1 mass=-500 - -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=51: ixxxxx#5 nsp=-1 mass=-500 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=52: vxxxxx#5 nsp=-1 mass=500 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=52: vxxxxx#5 nsp=-1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=52: vxxxxx#5 nsp=-1 mass=500 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=52: vxxxxx#5 nsp=-1 mass=500 - 0.000000000000000e+00, -7.071067811865476e-01, // itest=52: vxxxxx#5 nsp=-1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=52: vxxxxx#5 nsp=-1 mass=500 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=53: vxxxxx#5 nsp=-1 mass=-500 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=53: vxxxxx#5 nsp=-1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=53: vxxxxx#5 nsp=-1 mass=-500 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=53: vxxxxx#5 nsp=-1 mass=-500 - 0.000000000000000e+00, -7.071067811865476e-01, // itest=53: vxxxxx#5 nsp=-1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=53: vxxxxx#5 nsp=-1 mass=-500 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=54: sxxxxx#5 nsp=-1 mass=500 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=54: sxxxxx#5 nsp=-1 mass=500 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=54: sxxxxx#5 nsp=-1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=54: sxxxxx#5 nsp=-1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=54: sxxxxx#5 nsp=-1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=54: sxxxxx#5 nsp=-1 mass=500 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=55: sxxxxx#5 nsp=-1 mass=-500 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=55: sxxxxx#5 nsp=-1 mass=-500 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=55: sxxxxx#5 nsp=-1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=55: sxxxxx#5 nsp=-1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=55: sxxxxx#5 nsp=-1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=55: sxxxxx#5 nsp=-1 mass=-500 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=56: oxxxxx#5 nsp=-1 mass=500 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=56: oxxxxx#5 nsp=-1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=56: oxxxxx#5 nsp=-1 mass=500 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=56: oxxxxx#5 nsp=-1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=56: oxxxxx#5 nsp=-1 mass=500 - -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=56: oxxxxx#5 nsp=-1 mass=500 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=57: oxxxxx#5 nsp=-1 mass=-500 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=57: oxxxxx#5 nsp=-1 mass=-500 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=57: oxxxxx#5 nsp=-1 mass=-500 - -2.236067977499790e+01, 0.000000000000000e+00, // itest=57: oxxxxx#5 nsp=-1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=57: oxxxxx#5 nsp=-1 mass=-500 - -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=57: oxxxxx#5 nsp=-1 mass=-500 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 3.000000000000000e+02, // itest=58: ixxxxx#6 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=58: ixxxxx#6 nsp=-1 mass=400 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=58: ixxxxx#6 nsp=-1 mass=400 - -2.828427124746190e+01, -0.000000000000000e+00, // itest=58: ixxxxx#6 nsp=-1 mass=400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=58: ixxxxx#6 nsp=-1 mass=400 - 1.414213562373095e+01, 0.000000000000000e+00 } ); // itest=58: ixxxxx#6 nsp=-1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 3.000000000000000e+02, // itest=59: ixxxxx#6 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=59: ixxxxx#6 nsp=-1 mass=-400 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=59: ixxxxx#6 nsp=-1 mass=-400 - -2.828427124746190e+01, -0.000000000000000e+00, // itest=59: ixxxxx#6 nsp=-1 mass=-400 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=59: ixxxxx#6 nsp=-1 mass=-400 - -1.414213562373095e+01, -0.000000000000000e+00 } ); // itest=59: ixxxxx#6 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -3.000000000000000e+02, // itest=60: vxxxxx#6 nsp=-1 mass=400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=60: vxxxxx#6 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=60: vxxxxx#6 nsp=-1 mass=400 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=60: vxxxxx#6 nsp=-1 mass=400 - 0.000000000000000e+00, -7.071067811865476e-01, // itest=60: vxxxxx#6 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=60: vxxxxx#6 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -3.000000000000000e+02, // itest=61: vxxxxx#6 nsp=-1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=61: vxxxxx#6 nsp=-1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=61: vxxxxx#6 nsp=-1 mass=-400 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=61: vxxxxx#6 nsp=-1 mass=-400 - 0.000000000000000e+00, -7.071067811865476e-01, // itest=61: vxxxxx#6 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=61: vxxxxx#6 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -3.000000000000000e+02, // itest=62: sxxxxx#6 nsp=-1 mass=400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=62: sxxxxx#6 nsp=-1 mass=400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=62: sxxxxx#6 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=62: sxxxxx#6 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=62: sxxxxx#6 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=62: sxxxxx#6 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -3.000000000000000e+02, // itest=63: sxxxxx#6 nsp=-1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=63: sxxxxx#6 nsp=-1 mass=-400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=63: sxxxxx#6 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=63: sxxxxx#6 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=63: sxxxxx#6 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=63: sxxxxx#6 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -3.000000000000000e+02, // itest=64: oxxxxx#6 nsp=-1 mass=400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=64: oxxxxx#6 nsp=-1 mass=400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=64: oxxxxx#6 nsp=-1 mass=400 - 1.414213562373095e+01, 0.000000000000000e+00, // itest=64: oxxxxx#6 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=64: oxxxxx#6 nsp=-1 mass=400 - -2.828427124746190e+01, -0.000000000000000e+00 } ); // itest=64: oxxxxx#6 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -3.000000000000000e+02, // itest=65: oxxxxx#6 nsp=-1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=65: oxxxxx#6 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=65: oxxxxx#6 nsp=-1 mass=-400 - -1.414213562373095e+01, -0.000000000000000e+00, // itest=65: oxxxxx#6 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=65: oxxxxx#6 nsp=-1 mass=-400 - -2.828427124746190e+01, -0.000000000000000e+00 } ); // itest=65: oxxxxx#6 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -3.000000000000000e+02, // itest=66: ixxxxx#7 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=66: ixxxxx#7 nsp=-1 mass=400 - -2.828427124746190e+01, -0.000000000000000e+00, // itest=66: ixxxxx#7 nsp=-1 mass=400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=66: ixxxxx#7 nsp=-1 mass=400 - 1.414213562373095e+01, 0.000000000000000e+00, // itest=66: ixxxxx#7 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=66: ixxxxx#7 nsp=-1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -3.000000000000000e+02, // itest=67: ixxxxx#7 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=67: ixxxxx#7 nsp=-1 mass=-400 - -2.828427124746190e+01, -0.000000000000000e+00, // itest=67: ixxxxx#7 nsp=-1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=67: ixxxxx#7 nsp=-1 mass=-400 - -1.414213562373095e+01, -0.000000000000000e+00, // itest=67: ixxxxx#7 nsp=-1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=67: ixxxxx#7 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 3.000000000000000e+02, // itest=68: vxxxxx#7 nsp=-1 mass=400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=68: vxxxxx#7 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=68: vxxxxx#7 nsp=-1 mass=400 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=68: vxxxxx#7 nsp=-1 mass=400 - 0.000000000000000e+00, 7.071067811865476e-01, // itest=68: vxxxxx#7 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=68: vxxxxx#7 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 3.000000000000000e+02, // itest=69: vxxxxx#7 nsp=-1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=69: vxxxxx#7 nsp=-1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=69: vxxxxx#7 nsp=-1 mass=-400 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=69: vxxxxx#7 nsp=-1 mass=-400 - 0.000000000000000e+00, 7.071067811865476e-01, // itest=69: vxxxxx#7 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=69: vxxxxx#7 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 3.000000000000000e+02, // itest=70: sxxxxx#7 nsp=-1 mass=400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=70: sxxxxx#7 nsp=-1 mass=400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=70: sxxxxx#7 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=70: sxxxxx#7 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=70: sxxxxx#7 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=70: sxxxxx#7 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 3.000000000000000e+02, // itest=71: sxxxxx#7 nsp=-1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=71: sxxxxx#7 nsp=-1 mass=-400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=71: sxxxxx#7 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=71: sxxxxx#7 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=71: sxxxxx#7 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=71: sxxxxx#7 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 3.000000000000000e+02, // itest=72: oxxxxx#7 nsp=-1 mass=400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=72: oxxxxx#7 nsp=-1 mass=400 - 1.414213562373095e+01, 0.000000000000000e+00, // itest=72: oxxxxx#7 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=72: oxxxxx#7 nsp=-1 mass=400 - -2.828427124746190e+01, -0.000000000000000e+00, // itest=72: oxxxxx#7 nsp=-1 mass=400 - -0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=72: oxxxxx#7 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 3.000000000000000e+02, // itest=73: oxxxxx#7 nsp=-1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=73: oxxxxx#7 nsp=-1 mass=-400 - -1.414213562373095e+01, -0.000000000000000e+00, // itest=73: oxxxxx#7 nsp=-1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=73: oxxxxx#7 nsp=-1 mass=-400 - -2.828427124746190e+01, -0.000000000000000e+00, // itest=73: oxxxxx#7 nsp=-1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=73: oxxxxx#7 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=74: ixxxxx#8 nsp=-1 mass=400 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=74: ixxxxx#8 nsp=-1 mass=400 - 1.200000000000000e+01, -1.600000000000000e+01, // itest=74: ixxxxx#8 nsp=-1 mass=400 - -2.000000000000000e+01, -0.000000000000000e+00, // itest=74: ixxxxx#8 nsp=-1 mass=400 - -5.999999999999999e+00, 7.999999999999999e+00, // itest=74: ixxxxx#8 nsp=-1 mass=400 - 1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=74: ixxxxx#8 nsp=-1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=75: ixxxxx#8 nsp=-1 mass=-400 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=75: ixxxxx#8 nsp=-1 mass=-400 - 1.200000000000000e+01, -1.600000000000000e+01, // itest=75: ixxxxx#8 nsp=-1 mass=-400 - -2.000000000000000e+01, -0.000000000000000e+00, // itest=75: ixxxxx#8 nsp=-1 mass=-400 - 5.999999999999999e+00, -7.999999999999999e+00, // itest=75: ixxxxx#8 nsp=-1 mass=-400 - -1.000000000000000e+01, -0.000000000000000e+00 } ); // itest=75: ixxxxx#8 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=76: vxxxxx#8 nsp=-1 mass=400 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=76: vxxxxx#8 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=76: vxxxxx#8 nsp=-1 mass=400 - 0.000000000000000e+00, 5.656854249492381e-01, // itest=76: vxxxxx#8 nsp=-1 mass=400 - 0.000000000000000e+00, -4.242640687119285e-01, // itest=76: vxxxxx#8 nsp=-1 mass=400 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=76: vxxxxx#8 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=77: vxxxxx#8 nsp=-1 mass=-400 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=77: vxxxxx#8 nsp=-1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=77: vxxxxx#8 nsp=-1 mass=-400 - -0.000000000000000e+00, 5.656854249492381e-01, // itest=77: vxxxxx#8 nsp=-1 mass=-400 - -0.000000000000000e+00, -4.242640687119285e-01, // itest=77: vxxxxx#8 nsp=-1 mass=-400 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=77: vxxxxx#8 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=78: sxxxxx#8 nsp=-1 mass=400 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=78: sxxxxx#8 nsp=-1 mass=400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=78: sxxxxx#8 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=78: sxxxxx#8 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=78: sxxxxx#8 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=78: sxxxxx#8 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=79: sxxxxx#8 nsp=-1 mass=-400 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=79: sxxxxx#8 nsp=-1 mass=-400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=79: sxxxxx#8 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=79: sxxxxx#8 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=79: sxxxxx#8 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=79: sxxxxx#8 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=80: oxxxxx#8 nsp=-1 mass=400 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=80: oxxxxx#8 nsp=-1 mass=400 - -5.999999999999999e+00, -7.999999999999999e+00, // itest=80: oxxxxx#8 nsp=-1 mass=400 - 1.000000000000000e+01, 0.000000000000000e+00, // itest=80: oxxxxx#8 nsp=-1 mass=400 - 1.200000000000000e+01, 1.600000000000000e+01, // itest=80: oxxxxx#8 nsp=-1 mass=400 - -2.000000000000000e+01, -0.000000000000000e+00 } ); // itest=80: oxxxxx#8 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=81: oxxxxx#8 nsp=-1 mass=-400 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=81: oxxxxx#8 nsp=-1 mass=-400 - 5.999999999999999e+00, 7.999999999999999e+00, // itest=81: oxxxxx#8 nsp=-1 mass=-400 - -1.000000000000000e+01, -0.000000000000000e+00, // itest=81: oxxxxx#8 nsp=-1 mass=-400 - 1.200000000000000e+01, 1.600000000000000e+01, // itest=81: oxxxxx#8 nsp=-1 mass=-400 - -2.000000000000000e+01, -0.000000000000000e+00 } ); // itest=81: oxxxxx#8 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=82: ixxxxx#9 nsp=-1 mass=400 - -2.400000000000000e+02, -1.800000000000000e+02, // itest=82: ixxxxx#9 nsp=-1 mass=400 - -1.600000000000000e+01, 1.200000000000000e+01, // itest=82: ixxxxx#9 nsp=-1 mass=400 - -2.000000000000000e+01, -0.000000000000000e+00, // itest=82: ixxxxx#9 nsp=-1 mass=400 - 7.999999999999999e+00, -5.999999999999999e+00, // itest=82: ixxxxx#9 nsp=-1 mass=400 - 1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=82: ixxxxx#9 nsp=-1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=83: ixxxxx#9 nsp=-1 mass=-400 - -2.400000000000000e+02, -1.800000000000000e+02, // itest=83: ixxxxx#9 nsp=-1 mass=-400 - -1.600000000000000e+01, 1.200000000000000e+01, // itest=83: ixxxxx#9 nsp=-1 mass=-400 - -2.000000000000000e+01, -0.000000000000000e+00, // itest=83: ixxxxx#9 nsp=-1 mass=-400 - -7.999999999999999e+00, 5.999999999999999e+00, // itest=83: ixxxxx#9 nsp=-1 mass=-400 - -1.000000000000000e+01, -0.000000000000000e+00 } ); // itest=83: ixxxxx#9 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=84: vxxxxx#9 nsp=-1 mass=400 - 2.400000000000000e+02, 1.800000000000000e+02, // itest=84: vxxxxx#9 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=84: vxxxxx#9 nsp=-1 mass=400 - 0.000000000000000e+00, -4.242640687119285e-01, // itest=84: vxxxxx#9 nsp=-1 mass=400 - 0.000000000000000e+00, 5.656854249492381e-01, // itest=84: vxxxxx#9 nsp=-1 mass=400 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=84: vxxxxx#9 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=85: vxxxxx#9 nsp=-1 mass=-400 - 2.400000000000000e+02, 1.800000000000000e+02, // itest=85: vxxxxx#9 nsp=-1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=85: vxxxxx#9 nsp=-1 mass=-400 - 0.000000000000000e+00, -4.242640687119285e-01, // itest=85: vxxxxx#9 nsp=-1 mass=-400 - 0.000000000000000e+00, 5.656854249492381e-01, // itest=85: vxxxxx#9 nsp=-1 mass=-400 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=85: vxxxxx#9 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=86: sxxxxx#9 nsp=-1 mass=400 - 2.400000000000000e+02, 1.800000000000000e+02, // itest=86: sxxxxx#9 nsp=-1 mass=400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=86: sxxxxx#9 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=86: sxxxxx#9 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=86: sxxxxx#9 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=86: sxxxxx#9 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=87: sxxxxx#9 nsp=-1 mass=-400 - 2.400000000000000e+02, 1.800000000000000e+02, // itest=87: sxxxxx#9 nsp=-1 mass=-400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=87: sxxxxx#9 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=87: sxxxxx#9 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=87: sxxxxx#9 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=87: sxxxxx#9 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=88: oxxxxx#9 nsp=-1 mass=400 - 2.400000000000000e+02, 1.800000000000000e+02, // itest=88: oxxxxx#9 nsp=-1 mass=400 - 7.999999999999999e+00, 5.999999999999999e+00, // itest=88: oxxxxx#9 nsp=-1 mass=400 - 1.000000000000000e+01, 0.000000000000000e+00, // itest=88: oxxxxx#9 nsp=-1 mass=400 - -1.600000000000000e+01, -1.200000000000000e+01, // itest=88: oxxxxx#9 nsp=-1 mass=400 - -2.000000000000000e+01, -0.000000000000000e+00 } ); // itest=88: oxxxxx#9 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=89: oxxxxx#9 nsp=-1 mass=-400 - 2.400000000000000e+02, 1.800000000000000e+02, // itest=89: oxxxxx#9 nsp=-1 mass=-400 - -7.999999999999999e+00, -5.999999999999999e+00, // itest=89: oxxxxx#9 nsp=-1 mass=-400 - -1.000000000000000e+01, -0.000000000000000e+00, // itest=89: oxxxxx#9 nsp=-1 mass=-400 - -1.600000000000000e+01, -1.200000000000000e+01, // itest=89: oxxxxx#9 nsp=-1 mass=-400 - -2.000000000000000e+01, -0.000000000000000e+00 } ); // itest=89: oxxxxx#9 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 1.440000000000000e+02, // itest=90: ixxxxx#10 nsp=-1 mass=400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=90: ixxxxx#10 nsp=-1 mass=400 - 9.863939238321439e+00, -1.052153518754287e+01, // itest=90: ixxxxx#10 nsp=-1 mass=400 - -2.433105012119288e+01, -0.000000000000000e+00, // itest=90: ixxxxx#10 nsp=-1 mass=400 - -4.931969619160719e+00, 5.260767593771432e+00, // itest=90: ixxxxx#10 nsp=-1 mass=400 - 1.216552506059644e+01, 0.000000000000000e+00 } ); // itest=90: ixxxxx#10 nsp=-1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 1.440000000000000e+02, // itest=91: ixxxxx#10 nsp=-1 mass=-400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=91: ixxxxx#10 nsp=-1 mass=-400 - 9.863939238321439e+00, -1.052153518754287e+01, // itest=91: ixxxxx#10 nsp=-1 mass=-400 - -2.433105012119288e+01, -0.000000000000000e+00, // itest=91: ixxxxx#10 nsp=-1 mass=-400 - 4.931969619160719e+00, -5.260767593771432e+00, // itest=91: ixxxxx#10 nsp=-1 mass=-400 - -1.216552506059644e+01, -0.000000000000000e+00 } ); // itest=91: ixxxxx#10 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -1.440000000000000e+02, // itest=92: vxxxxx#10 nsp=-1 mass=400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=92: vxxxxx#10 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=92: vxxxxx#10 nsp=-1 mass=400 - -2.321373168788980e-01, 5.158607041753289e-01, // itest=92: vxxxxx#10 nsp=-1 mass=400 - -2.476131380041579e-01, -4.836194101643708e-01, // itest=92: vxxxxx#10 nsp=-1 mass=400 - 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=92: vxxxxx#10 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -1.440000000000000e+02, // itest=93: vxxxxx#10 nsp=-1 mass=-400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=93: vxxxxx#10 nsp=-1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=93: vxxxxx#10 nsp=-1 mass=-400 - -2.321373168788980e-01, 5.158607041753289e-01, // itest=93: vxxxxx#10 nsp=-1 mass=-400 - -2.476131380041579e-01, -4.836194101643708e-01, // itest=93: vxxxxx#10 nsp=-1 mass=-400 - 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=93: vxxxxx#10 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -1.440000000000000e+02, // itest=94: sxxxxx#10 nsp=-1 mass=400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=94: sxxxxx#10 nsp=-1 mass=400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=94: sxxxxx#10 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=94: sxxxxx#10 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=94: sxxxxx#10 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=94: sxxxxx#10 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -1.440000000000000e+02, // itest=95: sxxxxx#10 nsp=-1 mass=-400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=95: sxxxxx#10 nsp=-1 mass=-400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=95: sxxxxx#10 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=95: sxxxxx#10 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=95: sxxxxx#10 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=95: sxxxxx#10 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -1.440000000000000e+02, // itest=96: oxxxxx#10 nsp=-1 mass=400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=96: oxxxxx#10 nsp=-1 mass=400 - -4.931969619160719e+00, -5.260767593771432e+00, // itest=96: oxxxxx#10 nsp=-1 mass=400 - 1.216552506059644e+01, 0.000000000000000e+00, // itest=96: oxxxxx#10 nsp=-1 mass=400 - 9.863939238321439e+00, 1.052153518754287e+01, // itest=96: oxxxxx#10 nsp=-1 mass=400 - -2.433105012119288e+01, -0.000000000000000e+00 } ); // itest=96: oxxxxx#10 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -1.440000000000000e+02, // itest=97: oxxxxx#10 nsp=-1 mass=-400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=97: oxxxxx#10 nsp=-1 mass=-400 - 4.931969619160719e+00, 5.260767593771432e+00, // itest=97: oxxxxx#10 nsp=-1 mass=-400 - -1.216552506059644e+01, -0.000000000000000e+00, // itest=97: oxxxxx#10 nsp=-1 mass=-400 - 9.863939238321439e+00, 1.052153518754287e+01, // itest=97: oxxxxx#10 nsp=-1 mass=-400 - -2.433105012119288e+01, -0.000000000000000e+00 } ); // itest=97: oxxxxx#10 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -1.440000000000000e+02, // itest=98: ixxxxx#11 nsp=-1 mass=400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=98: ixxxxx#11 nsp=-1 mass=400 - 1.664100588675688e+01, -1.775040627920733e+01, // itest=98: ixxxxx#11 nsp=-1 mass=400 - -1.442220510185596e+01, -0.000000000000000e+00, // itest=98: ixxxxx#11 nsp=-1 mass=400 - -8.320502943378436e+00, 8.875203139603666e+00, // itest=98: ixxxxx#11 nsp=-1 mass=400 - 7.211102550927978e+00, 0.000000000000000e+00 } ); // itest=98: ixxxxx#11 nsp=-1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -1.440000000000000e+02, // itest=99: ixxxxx#11 nsp=-1 mass=-400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=99: ixxxxx#11 nsp=-1 mass=-400 - 1.664100588675688e+01, -1.775040627920733e+01, // itest=99: ixxxxx#11 nsp=-1 mass=-400 - -1.442220510185596e+01, -0.000000000000000e+00, // itest=99: ixxxxx#11 nsp=-1 mass=-400 - 8.320502943378436e+00, -8.875203139603666e+00, // itest=99: ixxxxx#11 nsp=-1 mass=-400 - -7.211102550927978e+00, -0.000000000000000e+00 } ); // itest=99: ixxxxx#11 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 1.440000000000000e+02, // itest=100: vxxxxx#11 nsp=-1 mass=400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=100: vxxxxx#11 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=100: vxxxxx#11 nsp=-1 mass=400 - 2.321373168788980e-01, 5.158607041753289e-01, // itest=100: vxxxxx#11 nsp=-1 mass=400 - 2.476131380041579e-01, -4.836194101643708e-01, // itest=100: vxxxxx#11 nsp=-1 mass=400 - 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=100: vxxxxx#11 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 1.440000000000000e+02, // itest=101: vxxxxx#11 nsp=-1 mass=-400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=101: vxxxxx#11 nsp=-1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=101: vxxxxx#11 nsp=-1 mass=-400 - 2.321373168788980e-01, 5.158607041753289e-01, // itest=101: vxxxxx#11 nsp=-1 mass=-400 - 2.476131380041579e-01, -4.836194101643708e-01, // itest=101: vxxxxx#11 nsp=-1 mass=-400 - 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=101: vxxxxx#11 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 1.440000000000000e+02, // itest=102: sxxxxx#11 nsp=-1 mass=400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=102: sxxxxx#11 nsp=-1 mass=400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=102: sxxxxx#11 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=102: sxxxxx#11 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=102: sxxxxx#11 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=102: sxxxxx#11 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 1.440000000000000e+02, // itest=103: sxxxxx#11 nsp=-1 mass=-400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=103: sxxxxx#11 nsp=-1 mass=-400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=103: sxxxxx#11 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=103: sxxxxx#11 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=103: sxxxxx#11 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=103: sxxxxx#11 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 1.440000000000000e+02, // itest=104: oxxxxx#11 nsp=-1 mass=400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=104: oxxxxx#11 nsp=-1 mass=400 - -8.320502943378436e+00, -8.875203139603666e+00, // itest=104: oxxxxx#11 nsp=-1 mass=400 - 7.211102550927978e+00, 0.000000000000000e+00, // itest=104: oxxxxx#11 nsp=-1 mass=400 - 1.664100588675688e+01, 1.775040627920733e+01, // itest=104: oxxxxx#11 nsp=-1 mass=400 - -1.442220510185596e+01, -0.000000000000000e+00 } ); // itest=104: oxxxxx#11 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 1.440000000000000e+02, // itest=105: oxxxxx#11 nsp=-1 mass=-400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=105: oxxxxx#11 nsp=-1 mass=-400 - 8.320502943378436e+00, 8.875203139603666e+00, // itest=105: oxxxxx#11 nsp=-1 mass=-400 - -7.211102550927978e+00, -0.000000000000000e+00, // itest=105: oxxxxx#11 nsp=-1 mass=-400 - 1.664100588675688e+01, 1.775040627920733e+01, // itest=105: oxxxxx#11 nsp=-1 mass=-400 - -1.442220510185596e+01, -0.000000000000000e+00 } ); // itest=105: oxxxxx#11 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=106: ixxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=106: ixxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=106: ixxxxx#12 nsp=-1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00, // itest=106: ixxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=106: ixxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=106: ixxxxx#12 nsp=-1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=107: ixxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=107: ixxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=107: ixxxxx#12 nsp=-1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00, // itest=107: ixxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=107: ixxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=107: ixxxxx#12 nsp=-1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=108: ipzxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=108: ipzxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=108: ipzxxx#12 nsp=-1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00, // itest=108: ipzxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=108: ipzxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=108: ipzxxx#12 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=109: vxxxxx#12 nsp=-1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=109: vxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=109: vxxxxx#12 nsp=-1 mass=0 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=109: vxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, -7.071067811865476e-01, // itest=109: vxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=109: vxxxxx#12 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=110: vxxxxx#12 nsp=-1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=110: vxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=110: vxxxxx#12 nsp=-1 mass=0 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=110: vxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, -7.071067811865476e-01, // itest=110: vxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=110: vxxxxx#12 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=111: sxxxxx#12 nsp=-1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=111: sxxxxx#12 nsp=-1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=111: sxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=111: sxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=111: sxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=111: sxxxxx#12 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=112: sxxxxx#12 nsp=-1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=112: sxxxxx#12 nsp=-1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=112: sxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=112: sxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=112: sxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=112: sxxxxx#12 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=113: oxxxxx#12 nsp=-1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=113: oxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=113: oxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=113: oxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=113: oxxxxx#12 nsp=-1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=113: oxxxxx#12 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=114: oxxxxx#12 nsp=-1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=114: oxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=114: oxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=114: oxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=114: oxxxxx#12 nsp=-1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=114: oxxxxx#12 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=115: opzxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=115: opzxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=115: opzxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=115: opzxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=115: opzxxx#12 nsp=-1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=115: opzxxx#12 nsp=-1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=116: ixxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=116: ixxxxx#13 nsp=-1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00, // itest=116: ixxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=116: ixxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=116: ixxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=116: ixxxxx#13 nsp=-1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=117: ixxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=117: ixxxxx#13 nsp=-1 mass=0 - -3.162277660168379e+01, -0.000000000000000e+00, // itest=117: ixxxxx#13 nsp=-1 mass=0 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=117: ixxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=117: ixxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=117: ixxxxx#13 nsp=-1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=118: imzxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=118: imzxxx#13 nsp=-1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00, // itest=118: imzxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=118: imzxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=118: imzxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=118: imzxxx#13 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=119: vxxxxx#13 nsp=-1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=119: vxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=119: vxxxxx#13 nsp=-1 mass=0 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=119: vxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 7.071067811865476e-01, // itest=119: vxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=119: vxxxxx#13 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=120: vxxxxx#13 nsp=-1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=120: vxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=120: vxxxxx#13 nsp=-1 mass=0 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=120: vxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 7.071067811865476e-01, // itest=120: vxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=120: vxxxxx#13 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=121: sxxxxx#13 nsp=-1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=121: sxxxxx#13 nsp=-1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=121: sxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=121: sxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=121: sxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=121: sxxxxx#13 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=122: sxxxxx#13 nsp=-1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=122: sxxxxx#13 nsp=-1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=122: sxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=122: sxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=122: sxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=122: sxxxxx#13 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=123: oxxxxx#13 nsp=-1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=123: oxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=123: oxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=123: oxxxxx#13 nsp=-1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00, // itest=123: oxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=123: oxxxxx#13 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=124: oxxxxx#13 nsp=-1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=124: oxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=124: oxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=124: oxxxxx#13 nsp=-1 mass=0 - -3.162277660168379e+01, -0.000000000000000e+00, // itest=124: oxxxxx#13 nsp=-1 mass=0 - -0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=124: oxxxxx#13 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=125: omzxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=125: omzxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=125: omzxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=125: omzxxx#13 nsp=-1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00, // itest=125: omzxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=125: omzxxx#13 nsp=-1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=126: ixxxxx#14 nsp=-1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=126: ixxxxx#14 nsp=-1 mass=0 - 1.341640786499874e+01, -1.788854381999832e+01, // itest=126: ixxxxx#14 nsp=-1 mass=0 - -2.236067977499790e+01, 0.000000000000000e+00, // itest=126: ixxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=126: ixxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=126: ixxxxx#14 nsp=-1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=127: ixxxxx#14 nsp=-1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=127: ixxxxx#14 nsp=-1 mass=0 - 1.341640786499874e+01, -1.788854381999832e+01, // itest=127: ixxxxx#14 nsp=-1 mass=0 - -2.236067977499790e+01, 0.000000000000000e+00, // itest=127: ixxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=127: ixxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=127: ixxxxx#14 nsp=-1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=128: ixzxxx#14 nsp=-1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=128: ixzxxx#14 nsp=-1 mass=0 - 1.341640786499874e+01, -1.788854381999832e+01, // itest=128: ixzxxx#14 nsp=-1 mass=0 - -2.236067977499790e+01, 0.000000000000000e+00, // itest=128: ixzxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=128: ixzxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=128: ixzxxx#14 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=129: vxxxxx#14 nsp=-1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=129: vxxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=129: vxxxxx#14 nsp=-1 mass=0 - -0.000000000000000e+00, 5.656854249492381e-01, // itest=129: vxxxxx#14 nsp=-1 mass=0 - -0.000000000000000e+00, -4.242640687119285e-01, // itest=129: vxxxxx#14 nsp=-1 mass=0 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=129: vxxxxx#14 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=130: vxxxxx#14 nsp=-1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=130: vxxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=130: vxxxxx#14 nsp=-1 mass=0 - -0.000000000000000e+00, 5.656854249492381e-01, // itest=130: vxxxxx#14 nsp=-1 mass=0 - -0.000000000000000e+00, -4.242640687119285e-01, // itest=130: vxxxxx#14 nsp=-1 mass=0 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=130: vxxxxx#14 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=131: sxxxxx#14 nsp=-1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=131: sxxxxx#14 nsp=-1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=131: sxxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=131: sxxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=131: sxxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=131: sxxxxx#14 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=132: sxxxxx#14 nsp=-1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=132: sxxxxx#14 nsp=-1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=132: sxxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=132: sxxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=132: sxxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=132: sxxxxx#14 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=133: oxxxxx#14 nsp=-1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=133: oxxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=133: oxxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=133: oxxxxx#14 nsp=-1 mass=0 - 1.341640786499874e+01, 1.788854381999832e+01, // itest=133: oxxxxx#14 nsp=-1 mass=0 - -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=133: oxxxxx#14 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=134: oxxxxx#14 nsp=-1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=134: oxxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=134: oxxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=134: oxxxxx#14 nsp=-1 mass=0 - 1.341640786499874e+01, 1.788854381999832e+01, // itest=134: oxxxxx#14 nsp=-1 mass=0 - -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=134: oxxxxx#14 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=135: oxzxxx#14 nsp=-1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=135: oxzxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=135: oxzxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=135: oxzxxx#14 nsp=-1 mass=0 - 1.341640786499874e+01, 1.788854381999832e+01, // itest=135: oxzxxx#14 nsp=-1 mass=0 - -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=135: oxzxxx#14 nsp=-1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=136: ixxxxx#15 nsp=-1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=136: ixxxxx#15 nsp=-1 mass=0 - 6.000000000000000e+00, -8.000000000000000e+00, // itest=136: ixxxxx#15 nsp=-1 mass=0 - -3.000000000000000e+01, 0.000000000000000e+00, // itest=136: ixxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=136: ixxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=136: ixxxxx#15 nsp=-1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=137: ixxxxx#15 nsp=-1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=137: ixxxxx#15 nsp=-1 mass=0 - 6.000000000000000e+00, -8.000000000000000e+00, // itest=137: ixxxxx#15 nsp=-1 mass=0 - -3.000000000000000e+01, 0.000000000000000e+00, // itest=137: ixxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=137: ixxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=137: ixxxxx#15 nsp=-1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=138: ixzxxx#15 nsp=-1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=138: ixzxxx#15 nsp=-1 mass=0 - 6.000000000000000e+00, -8.000000000000000e+00, // itest=138: ixzxxx#15 nsp=-1 mass=0 - -3.000000000000000e+01, 0.000000000000000e+00, // itest=138: ixzxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=138: ixzxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=138: ixzxxx#15 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=139: vxxxxx#15 nsp=-1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=139: vxxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=139: vxxxxx#15 nsp=-1 mass=0 - -3.394112549695428e-01, 5.656854249492381e-01, // itest=139: vxxxxx#15 nsp=-1 mass=0 - -4.525483399593904e-01, -4.242640687119285e-01, // itest=139: vxxxxx#15 nsp=-1 mass=0 - 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=139: vxxxxx#15 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=140: vxxxxx#15 nsp=-1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=140: vxxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=140: vxxxxx#15 nsp=-1 mass=0 - -3.394112549695428e-01, 5.656854249492381e-01, // itest=140: vxxxxx#15 nsp=-1 mass=0 - -4.525483399593904e-01, -4.242640687119285e-01, // itest=140: vxxxxx#15 nsp=-1 mass=0 - 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=140: vxxxxx#15 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=141: sxxxxx#15 nsp=-1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=141: sxxxxx#15 nsp=-1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=141: sxxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=141: sxxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=141: sxxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=141: sxxxxx#15 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=142: sxxxxx#15 nsp=-1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=142: sxxxxx#15 nsp=-1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=142: sxxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=142: sxxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=142: sxxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=142: sxxxxx#15 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=143: oxxxxx#15 nsp=-1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=143: oxxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=143: oxxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=143: oxxxxx#15 nsp=-1 mass=0 - 6.000000000000000e+00, 8.000000000000000e+00, // itest=143: oxxxxx#15 nsp=-1 mass=0 - -3.000000000000000e+01, 0.000000000000000e+00 } ); // itest=143: oxxxxx#15 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=144: oxxxxx#15 nsp=-1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=144: oxxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=144: oxxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=144: oxxxxx#15 nsp=-1 mass=0 - 6.000000000000000e+00, 8.000000000000000e+00, // itest=144: oxxxxx#15 nsp=-1 mass=0 - -3.000000000000000e+01, 0.000000000000000e+00 } ); // itest=144: oxxxxx#15 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=145: oxzxxx#15 nsp=-1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=145: oxzxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=145: oxzxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=145: oxzxxx#15 nsp=-1 mass=0 - 6.000000000000000e+00, 8.000000000000000e+00, // itest=145: oxzxxx#15 nsp=-1 mass=0 - -3.000000000000000e+01, 0.000000000000000e+00 } ); // itest=145: oxzxxx#15 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=146: ixxxxx#0 nsp=1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=146: ixxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=146: ixxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=146: ixxxxx#0 nsp=1 mass=0 - 3.162277660168379e+01, 0.000000000000000e+00, // itest=146: ixxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=146: ixxxxx#0 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=147: ixxxxx#0 nsp=1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=147: ixxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=147: ixxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=147: ixxxxx#0 nsp=1 mass=0 - 3.162277660168379e+01, 0.000000000000000e+00, // itest=147: ixxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=147: ixxxxx#0 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=148: ipzxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=148: ipzxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=148: ipzxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=148: ipzxxx#0 nsp=1 mass=0 - 3.162277660168379e+01, 0.000000000000000e+00, // itest=148: ipzxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=148: ipzxxx#0 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=149: vxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=149: vxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=149: vxxxxx#0 nsp=1 mass=0 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=149: vxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 7.071067811865476e-01, // itest=149: vxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=149: vxxxxx#0 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=150: vxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=150: vxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=150: vxxxxx#0 nsp=1 mass=0 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=150: vxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 7.071067811865476e-01, // itest=150: vxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=150: vxxxxx#0 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=151: sxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=151: sxxxxx#0 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=151: sxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=151: sxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=151: sxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=151: sxxxxx#0 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=152: sxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=152: sxxxxx#0 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=152: sxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=152: sxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=152: sxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=152: sxxxxx#0 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=153: oxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=153: oxxxxx#0 nsp=1 mass=0 - 3.162277660168379e+01, 0.000000000000000e+00, // itest=153: oxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=153: oxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=153: oxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=153: oxxxxx#0 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=154: oxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=154: oxxxxx#0 nsp=1 mass=0 - 3.162277660168379e+01, 0.000000000000000e+00, // itest=154: oxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=154: oxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=154: oxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=154: oxxxxx#0 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=155: opzxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=155: opzxxx#0 nsp=1 mass=0 - 3.162277660168379e+01, 0.000000000000000e+00, // itest=155: opzxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=155: opzxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=155: opzxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=155: opzxxx#0 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=156: ixxxxx#1 nsp=1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=156: ixxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=156: ixxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=156: ixxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=156: ixxxxx#1 nsp=1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=156: ixxxxx#1 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=157: ixxxxx#1 nsp=1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=157: ixxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=157: ixxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=157: ixxxxx#1 nsp=1 mass=0 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=157: ixxxxx#1 nsp=1 mass=0 - -3.162277660168379e+01, -0.000000000000000e+00 } ); // itest=157: ixxxxx#1 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=158: imzxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=158: imzxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=158: imzxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=158: imzxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=158: imzxxx#1 nsp=1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=158: imzxxx#1 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=159: vxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=159: vxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=159: vxxxxx#1 nsp=1 mass=0 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=159: vxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, -7.071067811865476e-01, // itest=159: vxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=159: vxxxxx#1 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=160: vxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=160: vxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=160: vxxxxx#1 nsp=1 mass=0 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=160: vxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, -7.071067811865476e-01, // itest=160: vxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=160: vxxxxx#1 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=161: sxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=161: sxxxxx#1 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=161: sxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=161: sxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=161: sxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=161: sxxxxx#1 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=162: sxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=162: sxxxxx#1 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=162: sxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=162: sxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=162: sxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=162: sxxxxx#1 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=163: oxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=163: oxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=163: oxxxxx#1 nsp=1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00, // itest=163: oxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=163: oxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=163: oxxxxx#1 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=164: oxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=164: oxxxxx#1 nsp=1 mass=0 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=164: oxxxxx#1 nsp=1 mass=0 - -3.162277660168379e+01, -0.000000000000000e+00, // itest=164: oxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=164: oxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=164: oxxxxx#1 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=165: omzxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=165: omzxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=165: omzxxx#1 nsp=1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00, // itest=165: omzxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=165: omzxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=165: omzxxx#1 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=166: ixxxxx#2 nsp=1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=166: ixxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=166: ixxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=166: ixxxxx#2 nsp=1 mass=0 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=166: ixxxxx#2 nsp=1 mass=0 - 1.341640786499874e+01, 1.788854381999832e+01 } ); // itest=166: ixxxxx#2 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=167: ixxxxx#2 nsp=1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=167: ixxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=167: ixxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=167: ixxxxx#2 nsp=1 mass=0 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=167: ixxxxx#2 nsp=1 mass=0 - 1.341640786499874e+01, 1.788854381999832e+01 } ); // itest=167: ixxxxx#2 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=168: ixzxxx#2 nsp=1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=168: ixzxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=168: ixzxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=168: ixzxxx#2 nsp=1 mass=0 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=168: ixzxxx#2 nsp=1 mass=0 - 1.341640786499874e+01, 1.788854381999832e+01 } ); // itest=168: ixzxxx#2 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=169: vxxxxx#2 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=169: vxxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=169: vxxxxx#2 nsp=1 mass=0 - -0.000000000000000e+00, -5.656854249492381e-01, // itest=169: vxxxxx#2 nsp=1 mass=0 - -0.000000000000000e+00, 4.242640687119285e-01, // itest=169: vxxxxx#2 nsp=1 mass=0 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=169: vxxxxx#2 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=170: vxxxxx#2 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=170: vxxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=170: vxxxxx#2 nsp=1 mass=0 - -0.000000000000000e+00, -5.656854249492381e-01, // itest=170: vxxxxx#2 nsp=1 mass=0 - -0.000000000000000e+00, 4.242640687119285e-01, // itest=170: vxxxxx#2 nsp=1 mass=0 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=170: vxxxxx#2 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=171: sxxxxx#2 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=171: sxxxxx#2 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=171: sxxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=171: sxxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=171: sxxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=171: sxxxxx#2 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=172: sxxxxx#2 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=172: sxxxxx#2 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=172: sxxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=172: sxxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=172: sxxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=172: sxxxxx#2 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=173: oxxxxx#2 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=173: oxxxxx#2 nsp=1 mass=0 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=173: oxxxxx#2 nsp=1 mass=0 - 1.341640786499874e+01, -1.788854381999832e+01, // itest=173: oxxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=173: oxxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=173: oxxxxx#2 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=174: oxxxxx#2 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=174: oxxxxx#2 nsp=1 mass=0 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=174: oxxxxx#2 nsp=1 mass=0 - 1.341640786499874e+01, -1.788854381999832e+01, // itest=174: oxxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=174: oxxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=174: oxxxxx#2 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=175: oxzxxx#2 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=175: oxzxxx#2 nsp=1 mass=0 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=175: oxzxxx#2 nsp=1 mass=0 - 1.341640786499874e+01, -1.788854381999832e+01, // itest=175: oxzxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=175: oxzxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=175: oxzxxx#2 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=176: ixxxxx#3 nsp=1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=176: ixxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=176: ixxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=176: ixxxxx#3 nsp=1 mass=0 - 3.000000000000000e+01, 0.000000000000000e+00, // itest=176: ixxxxx#3 nsp=1 mass=0 - 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=176: ixxxxx#3 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=177: ixxxxx#3 nsp=1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=177: ixxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=177: ixxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=177: ixxxxx#3 nsp=1 mass=0 - 3.000000000000000e+01, 0.000000000000000e+00, // itest=177: ixxxxx#3 nsp=1 mass=0 - 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=177: ixxxxx#3 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=178: ixzxxx#3 nsp=1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=178: ixzxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=178: ixzxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=178: ixzxxx#3 nsp=1 mass=0 - 3.000000000000000e+01, 0.000000000000000e+00, // itest=178: ixzxxx#3 nsp=1 mass=0 - 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=178: ixzxxx#3 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=179: vxxxxx#3 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=179: vxxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=179: vxxxxx#3 nsp=1 mass=0 - -3.394112549695428e-01, -5.656854249492381e-01, // itest=179: vxxxxx#3 nsp=1 mass=0 - -4.525483399593904e-01, 4.242640687119285e-01, // itest=179: vxxxxx#3 nsp=1 mass=0 - 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=179: vxxxxx#3 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=180: vxxxxx#3 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=180: vxxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=180: vxxxxx#3 nsp=1 mass=0 - -3.394112549695428e-01, -5.656854249492381e-01, // itest=180: vxxxxx#3 nsp=1 mass=0 - -4.525483399593904e-01, 4.242640687119285e-01, // itest=180: vxxxxx#3 nsp=1 mass=0 - 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=180: vxxxxx#3 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=181: sxxxxx#3 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=181: sxxxxx#3 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=181: sxxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=181: sxxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=181: sxxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=181: sxxxxx#3 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=182: sxxxxx#3 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=182: sxxxxx#3 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=182: sxxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=182: sxxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=182: sxxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=182: sxxxxx#3 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=183: oxxxxx#3 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=183: oxxxxx#3 nsp=1 mass=0 - 3.000000000000000e+01, 0.000000000000000e+00, // itest=183: oxxxxx#3 nsp=1 mass=0 - 6.000000000000000e+00, -8.000000000000000e+00, // itest=183: oxxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=183: oxxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=183: oxxxxx#3 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=184: oxxxxx#3 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=184: oxxxxx#3 nsp=1 mass=0 - 3.000000000000000e+01, 0.000000000000000e+00, // itest=184: oxxxxx#3 nsp=1 mass=0 - 6.000000000000000e+00, -8.000000000000000e+00, // itest=184: oxxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=184: oxxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=184: oxxxxx#3 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=185: oxzxxx#3 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=185: oxzxxx#3 nsp=1 mass=0 - 3.000000000000000e+01, 0.000000000000000e+00, // itest=185: oxzxxx#3 nsp=1 mass=0 - 6.000000000000000e+00, -8.000000000000000e+00, // itest=185: oxzxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=185: oxzxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=185: oxzxxx#3 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 4.000000000000000e+02, // itest=186: ixxxxx#4 nsp=1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=186: ixxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=186: ixxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=186: ixxxxx#4 nsp=1 mass=0 - 1.000000000000000e+01, 0.000000000000000e+00, // itest=186: ixxxxx#4 nsp=1 mass=0 - 1.800000000000000e+01, 2.400000000000000e+01 } ); // itest=186: ixxxxx#4 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 4.000000000000000e+02, // itest=187: ixxxxx#4 nsp=1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=187: ixxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=187: ixxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=187: ixxxxx#4 nsp=1 mass=0 - 1.000000000000000e+01, 0.000000000000000e+00, // itest=187: ixxxxx#4 nsp=1 mass=0 - 1.800000000000000e+01, 2.400000000000000e+01 } ); // itest=187: ixxxxx#4 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 4.000000000000000e+02, // itest=188: ixzxxx#4 nsp=1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=188: ixzxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=188: ixzxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=188: ixzxxx#4 nsp=1 mass=0 - 1.000000000000000e+01, 0.000000000000000e+00, // itest=188: ixzxxx#4 nsp=1 mass=0 - 1.800000000000000e+01, 2.400000000000000e+01 } ); // itest=188: ixzxxx#4 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -4.000000000000000e+02, // itest=189: vxxxxx#4 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=189: vxxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=189: vxxxxx#4 nsp=1 mass=0 - 3.394112549695428e-01, -5.656854249492381e-01, // itest=189: vxxxxx#4 nsp=1 mass=0 - 4.525483399593904e-01, 4.242640687119285e-01, // itest=189: vxxxxx#4 nsp=1 mass=0 - 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=189: vxxxxx#4 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -4.000000000000000e+02, // itest=190: vxxxxx#4 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=190: vxxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=190: vxxxxx#4 nsp=1 mass=0 - 3.394112549695428e-01, -5.656854249492381e-01, // itest=190: vxxxxx#4 nsp=1 mass=0 - 4.525483399593904e-01, 4.242640687119285e-01, // itest=190: vxxxxx#4 nsp=1 mass=0 - 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=190: vxxxxx#4 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -4.000000000000000e+02, // itest=191: sxxxxx#4 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=191: sxxxxx#4 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=191: sxxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=191: sxxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=191: sxxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=191: sxxxxx#4 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -4.000000000000000e+02, // itest=192: sxxxxx#4 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=192: sxxxxx#4 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=192: sxxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=192: sxxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=192: sxxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=192: sxxxxx#4 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -4.000000000000000e+02, // itest=193: oxxxxx#4 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=193: oxxxxx#4 nsp=1 mass=0 - 1.000000000000000e+01, 0.000000000000000e+00, // itest=193: oxxxxx#4 nsp=1 mass=0 - 1.800000000000000e+01, -2.400000000000000e+01, // itest=193: oxxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=193: oxxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=193: oxxxxx#4 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -4.000000000000000e+02, // itest=194: oxxxxx#4 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=194: oxxxxx#4 nsp=1 mass=0 - 1.000000000000000e+01, 0.000000000000000e+00, // itest=194: oxxxxx#4 nsp=1 mass=0 - 1.800000000000000e+01, -2.400000000000000e+01, // itest=194: oxxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=194: oxxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=194: oxxxxx#4 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -4.000000000000000e+02, // itest=195: oxzxxx#4 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=195: oxzxxx#4 nsp=1 mass=0 - 1.000000000000000e+01, 0.000000000000000e+00, // itest=195: oxzxxx#4 nsp=1 mass=0 - 1.800000000000000e+01, -2.400000000000000e+01, // itest=195: oxzxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=195: oxzxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=195: oxzxxx#4 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=196: ixxxxx#5 nsp=1 mass=500 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=196: ixxxxx#5 nsp=1 mass=500 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=196: ixxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=196: ixxxxx#5 nsp=1 mass=500 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=196: ixxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=196: ixxxxx#5 nsp=1 mass=500 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=197: ixxxxx#5 nsp=1 mass=-500 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=197: ixxxxx#5 nsp=1 mass=-500 - -2.236067977499790e+01, 0.000000000000000e+00, // itest=197: ixxxxx#5 nsp=1 mass=-500 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=197: ixxxxx#5 nsp=1 mass=-500 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=197: ixxxxx#5 nsp=1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=197: ixxxxx#5 nsp=1 mass=-500 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=198: vxxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=198: vxxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=198: vxxxxx#5 nsp=1 mass=500 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=198: vxxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 7.071067811865476e-01, // itest=198: vxxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=198: vxxxxx#5 nsp=1 mass=500 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=199: vxxxxx#5 nsp=1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=199: vxxxxx#5 nsp=1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=199: vxxxxx#5 nsp=1 mass=-500 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=199: vxxxxx#5 nsp=1 mass=-500 - 0.000000000000000e+00, 7.071067811865476e-01, // itest=199: vxxxxx#5 nsp=1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=199: vxxxxx#5 nsp=1 mass=-500 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=200: sxxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=200: sxxxxx#5 nsp=1 mass=500 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=200: sxxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=200: sxxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=200: sxxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=200: sxxxxx#5 nsp=1 mass=500 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=201: sxxxxx#5 nsp=1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=201: sxxxxx#5 nsp=1 mass=-500 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=201: sxxxxx#5 nsp=1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=201: sxxxxx#5 nsp=1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=201: sxxxxx#5 nsp=1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=201: sxxxxx#5 nsp=1 mass=-500 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=202: oxxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=202: oxxxxx#5 nsp=1 mass=500 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=202: oxxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=202: oxxxxx#5 nsp=1 mass=500 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=202: oxxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=202: oxxxxx#5 nsp=1 mass=500 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=203: oxxxxx#5 nsp=1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=203: oxxxxx#5 nsp=1 mass=-500 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=203: oxxxxx#5 nsp=1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=203: oxxxxx#5 nsp=1 mass=-500 - -2.236067977499790e+01, 0.000000000000000e+00, // itest=203: oxxxxx#5 nsp=1 mass=-500 - -0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=203: oxxxxx#5 nsp=1 mass=-500 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -3.000000000000000e+02, // itest=204: ixxxxx#6 nsp=1 mass=400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=204: ixxxxx#6 nsp=1 mass=400 - 1.414213562373095e+01, 0.000000000000000e+00, // itest=204: ixxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=204: ixxxxx#6 nsp=1 mass=400 - 2.828427124746190e+01, 0.000000000000000e+00, // itest=204: ixxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=204: ixxxxx#6 nsp=1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -3.000000000000000e+02, // itest=205: ixxxxx#6 nsp=1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=205: ixxxxx#6 nsp=1 mass=-400 - -1.414213562373095e+01, -0.000000000000000e+00, // itest=205: ixxxxx#6 nsp=1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=205: ixxxxx#6 nsp=1 mass=-400 - 2.828427124746190e+01, 0.000000000000000e+00, // itest=205: ixxxxx#6 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=205: ixxxxx#6 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 3.000000000000000e+02, // itest=206: vxxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=206: vxxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=206: vxxxxx#6 nsp=1 mass=400 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=206: vxxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, 7.071067811865476e-01, // itest=206: vxxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=206: vxxxxx#6 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 3.000000000000000e+02, // itest=207: vxxxxx#6 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=207: vxxxxx#6 nsp=1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=207: vxxxxx#6 nsp=1 mass=-400 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=207: vxxxxx#6 nsp=1 mass=-400 - 0.000000000000000e+00, 7.071067811865476e-01, // itest=207: vxxxxx#6 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=207: vxxxxx#6 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 3.000000000000000e+02, // itest=208: sxxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=208: sxxxxx#6 nsp=1 mass=400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=208: sxxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=208: sxxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=208: sxxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=208: sxxxxx#6 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 3.000000000000000e+02, // itest=209: sxxxxx#6 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=209: sxxxxx#6 nsp=1 mass=-400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=209: sxxxxx#6 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=209: sxxxxx#6 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=209: sxxxxx#6 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=209: sxxxxx#6 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 3.000000000000000e+02, // itest=210: oxxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=210: oxxxxx#6 nsp=1 mass=400 - 2.828427124746190e+01, 0.000000000000000e+00, // itest=210: oxxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=210: oxxxxx#6 nsp=1 mass=400 - 1.414213562373095e+01, 0.000000000000000e+00, // itest=210: oxxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=210: oxxxxx#6 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 3.000000000000000e+02, // itest=211: oxxxxx#6 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=211: oxxxxx#6 nsp=1 mass=-400 - 2.828427124746190e+01, 0.000000000000000e+00, // itest=211: oxxxxx#6 nsp=1 mass=-400 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=211: oxxxxx#6 nsp=1 mass=-400 - -1.414213562373095e+01, -0.000000000000000e+00, // itest=211: oxxxxx#6 nsp=1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=211: oxxxxx#6 nsp=1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 3.000000000000000e+02, // itest=212: ixxxxx#7 nsp=1 mass=400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=212: ixxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=212: ixxxxx#7 nsp=1 mass=400 - -1.414213562373095e+01, 0.000000000000000e+00, // itest=212: ixxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=212: ixxxxx#7 nsp=1 mass=400 - -2.828427124746190e+01, 0.000000000000000e+00 } ); // itest=212: ixxxxx#7 nsp=1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 3.000000000000000e+02, // itest=213: ixxxxx#7 nsp=1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=213: ixxxxx#7 nsp=1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=213: ixxxxx#7 nsp=1 mass=-400 - 1.414213562373095e+01, -0.000000000000000e+00, // itest=213: ixxxxx#7 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=213: ixxxxx#7 nsp=1 mass=-400 - -2.828427124746190e+01, 0.000000000000000e+00 } ); // itest=213: ixxxxx#7 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -3.000000000000000e+02, // itest=214: vxxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=214: vxxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=214: vxxxxx#7 nsp=1 mass=400 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=214: vxxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, -7.071067811865476e-01, // itest=214: vxxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=214: vxxxxx#7 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -3.000000000000000e+02, // itest=215: vxxxxx#7 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=215: vxxxxx#7 nsp=1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=215: vxxxxx#7 nsp=1 mass=-400 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=215: vxxxxx#7 nsp=1 mass=-400 - 0.000000000000000e+00, -7.071067811865476e-01, // itest=215: vxxxxx#7 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=215: vxxxxx#7 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -3.000000000000000e+02, // itest=216: sxxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=216: sxxxxx#7 nsp=1 mass=400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=216: sxxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=216: sxxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=216: sxxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=216: sxxxxx#7 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -3.000000000000000e+02, // itest=217: sxxxxx#7 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=217: sxxxxx#7 nsp=1 mass=-400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=217: sxxxxx#7 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=217: sxxxxx#7 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=217: sxxxxx#7 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=217: sxxxxx#7 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -3.000000000000000e+02, // itest=218: oxxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=218: oxxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=218: oxxxxx#7 nsp=1 mass=400 - -2.828427124746190e+01, 0.000000000000000e+00, // itest=218: oxxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=218: oxxxxx#7 nsp=1 mass=400 - -1.414213562373095e+01, 0.000000000000000e+00 } ); // itest=218: oxxxxx#7 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -3.000000000000000e+02, // itest=219: oxxxxx#7 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=219: oxxxxx#7 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=219: oxxxxx#7 nsp=1 mass=-400 - -2.828427124746190e+01, 0.000000000000000e+00, // itest=219: oxxxxx#7 nsp=1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=219: oxxxxx#7 nsp=1 mass=-400 - 1.414213562373095e+01, -0.000000000000000e+00 } ); // itest=219: oxxxxx#7 nsp=1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=220: ixxxxx#8 nsp=1 mass=400 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=220: ixxxxx#8 nsp=1 mass=400 - 1.000000000000000e+01, 0.000000000000000e+00, // itest=220: ixxxxx#8 nsp=1 mass=400 - 5.999999999999999e+00, 7.999999999999999e+00, // itest=220: ixxxxx#8 nsp=1 mass=400 - 2.000000000000000e+01, 0.000000000000000e+00, // itest=220: ixxxxx#8 nsp=1 mass=400 - 1.200000000000000e+01, 1.600000000000000e+01 } ); // itest=220: ixxxxx#8 nsp=1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=221: ixxxxx#8 nsp=1 mass=-400 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=221: ixxxxx#8 nsp=1 mass=-400 - -1.000000000000000e+01, -0.000000000000000e+00, // itest=221: ixxxxx#8 nsp=1 mass=-400 - -5.999999999999999e+00, -7.999999999999999e+00, // itest=221: ixxxxx#8 nsp=1 mass=-400 - 2.000000000000000e+01, 0.000000000000000e+00, // itest=221: ixxxxx#8 nsp=1 mass=-400 - 1.200000000000000e+01, 1.600000000000000e+01 } ); // itest=221: ixxxxx#8 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=222: vxxxxx#8 nsp=1 mass=400 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=222: vxxxxx#8 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=222: vxxxxx#8 nsp=1 mass=400 - 0.000000000000000e+00, -5.656854249492381e-01, // itest=222: vxxxxx#8 nsp=1 mass=400 - 0.000000000000000e+00, 4.242640687119285e-01, // itest=222: vxxxxx#8 nsp=1 mass=400 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=222: vxxxxx#8 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=223: vxxxxx#8 nsp=1 mass=-400 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=223: vxxxxx#8 nsp=1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=223: vxxxxx#8 nsp=1 mass=-400 - -0.000000000000000e+00, -5.656854249492381e-01, // itest=223: vxxxxx#8 nsp=1 mass=-400 - -0.000000000000000e+00, 4.242640687119285e-01, // itest=223: vxxxxx#8 nsp=1 mass=-400 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=223: vxxxxx#8 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=224: sxxxxx#8 nsp=1 mass=400 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=224: sxxxxx#8 nsp=1 mass=400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=224: sxxxxx#8 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=224: sxxxxx#8 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=224: sxxxxx#8 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=224: sxxxxx#8 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=225: sxxxxx#8 nsp=1 mass=-400 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=225: sxxxxx#8 nsp=1 mass=-400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=225: sxxxxx#8 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=225: sxxxxx#8 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=225: sxxxxx#8 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=225: sxxxxx#8 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=226: oxxxxx#8 nsp=1 mass=400 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=226: oxxxxx#8 nsp=1 mass=400 - 2.000000000000000e+01, 0.000000000000000e+00, // itest=226: oxxxxx#8 nsp=1 mass=400 - 1.200000000000000e+01, -1.600000000000000e+01, // itest=226: oxxxxx#8 nsp=1 mass=400 - 1.000000000000000e+01, 0.000000000000000e+00, // itest=226: oxxxxx#8 nsp=1 mass=400 - 5.999999999999999e+00, -7.999999999999999e+00 } ); // itest=226: oxxxxx#8 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=227: oxxxxx#8 nsp=1 mass=-400 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=227: oxxxxx#8 nsp=1 mass=-400 - 2.000000000000000e+01, 0.000000000000000e+00, // itest=227: oxxxxx#8 nsp=1 mass=-400 - 1.200000000000000e+01, -1.600000000000000e+01, // itest=227: oxxxxx#8 nsp=1 mass=-400 - -1.000000000000000e+01, -0.000000000000000e+00, // itest=227: oxxxxx#8 nsp=1 mass=-400 - -5.999999999999999e+00, 7.999999999999999e+00 } ); // itest=227: oxxxxx#8 nsp=1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=228: ixxxxx#9 nsp=1 mass=400 - 2.400000000000000e+02, 1.800000000000000e+02, // itest=228: ixxxxx#9 nsp=1 mass=400 - 1.000000000000000e+01, 0.000000000000000e+00, // itest=228: ixxxxx#9 nsp=1 mass=400 - -7.999999999999999e+00, -5.999999999999999e+00, // itest=228: ixxxxx#9 nsp=1 mass=400 - 2.000000000000000e+01, 0.000000000000000e+00, // itest=228: ixxxxx#9 nsp=1 mass=400 - -1.600000000000000e+01, -1.200000000000000e+01 } ); // itest=228: ixxxxx#9 nsp=1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=229: ixxxxx#9 nsp=1 mass=-400 - 2.400000000000000e+02, 1.800000000000000e+02, // itest=229: ixxxxx#9 nsp=1 mass=-400 - -1.000000000000000e+01, -0.000000000000000e+00, // itest=229: ixxxxx#9 nsp=1 mass=-400 - 7.999999999999999e+00, 5.999999999999999e+00, // itest=229: ixxxxx#9 nsp=1 mass=-400 - 2.000000000000000e+01, 0.000000000000000e+00, // itest=229: ixxxxx#9 nsp=1 mass=-400 - -1.600000000000000e+01, -1.200000000000000e+01 } ); // itest=229: ixxxxx#9 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=230: vxxxxx#9 nsp=1 mass=400 - -2.400000000000000e+02, -1.800000000000000e+02, // itest=230: vxxxxx#9 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=230: vxxxxx#9 nsp=1 mass=400 - 0.000000000000000e+00, 4.242640687119285e-01, // itest=230: vxxxxx#9 nsp=1 mass=400 - 0.000000000000000e+00, -5.656854249492381e-01, // itest=230: vxxxxx#9 nsp=1 mass=400 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=230: vxxxxx#9 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=231: vxxxxx#9 nsp=1 mass=-400 - -2.400000000000000e+02, -1.800000000000000e+02, // itest=231: vxxxxx#9 nsp=1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=231: vxxxxx#9 nsp=1 mass=-400 - 0.000000000000000e+00, 4.242640687119285e-01, // itest=231: vxxxxx#9 nsp=1 mass=-400 - 0.000000000000000e+00, -5.656854249492381e-01, // itest=231: vxxxxx#9 nsp=1 mass=-400 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=231: vxxxxx#9 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=232: sxxxxx#9 nsp=1 mass=400 - -2.400000000000000e+02, -1.800000000000000e+02, // itest=232: sxxxxx#9 nsp=1 mass=400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=232: sxxxxx#9 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=232: sxxxxx#9 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=232: sxxxxx#9 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=232: sxxxxx#9 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=233: sxxxxx#9 nsp=1 mass=-400 - -2.400000000000000e+02, -1.800000000000000e+02, // itest=233: sxxxxx#9 nsp=1 mass=-400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=233: sxxxxx#9 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=233: sxxxxx#9 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=233: sxxxxx#9 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=233: sxxxxx#9 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=234: oxxxxx#9 nsp=1 mass=400 - -2.400000000000000e+02, -1.800000000000000e+02, // itest=234: oxxxxx#9 nsp=1 mass=400 - 2.000000000000000e+01, 0.000000000000000e+00, // itest=234: oxxxxx#9 nsp=1 mass=400 - -1.600000000000000e+01, 1.200000000000000e+01, // itest=234: oxxxxx#9 nsp=1 mass=400 - 1.000000000000000e+01, 0.000000000000000e+00, // itest=234: oxxxxx#9 nsp=1 mass=400 - -7.999999999999999e+00, 5.999999999999999e+00 } ); // itest=234: oxxxxx#9 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=235: oxxxxx#9 nsp=1 mass=-400 - -2.400000000000000e+02, -1.800000000000000e+02, // itest=235: oxxxxx#9 nsp=1 mass=-400 - 2.000000000000000e+01, 0.000000000000000e+00, // itest=235: oxxxxx#9 nsp=1 mass=-400 - -1.600000000000000e+01, 1.200000000000000e+01, // itest=235: oxxxxx#9 nsp=1 mass=-400 - -1.000000000000000e+01, -0.000000000000000e+00, // itest=235: oxxxxx#9 nsp=1 mass=-400 - 7.999999999999999e+00, -5.999999999999999e+00 } ); // itest=235: oxxxxx#9 nsp=1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -1.440000000000000e+02, // itest=236: ixxxxx#10 nsp=1 mass=400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=236: ixxxxx#10 nsp=1 mass=400 - 1.216552506059644e+01, 0.000000000000000e+00, // itest=236: ixxxxx#10 nsp=1 mass=400 - 4.931969619160719e+00, 5.260767593771432e+00, // itest=236: ixxxxx#10 nsp=1 mass=400 - 2.433105012119288e+01, 0.000000000000000e+00, // itest=236: ixxxxx#10 nsp=1 mass=400 - 9.863939238321439e+00, 1.052153518754287e+01 } ); // itest=236: ixxxxx#10 nsp=1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -1.440000000000000e+02, // itest=237: ixxxxx#10 nsp=1 mass=-400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=237: ixxxxx#10 nsp=1 mass=-400 - -1.216552506059644e+01, -0.000000000000000e+00, // itest=237: ixxxxx#10 nsp=1 mass=-400 - -4.931969619160719e+00, -5.260767593771432e+00, // itest=237: ixxxxx#10 nsp=1 mass=-400 - 2.433105012119288e+01, 0.000000000000000e+00, // itest=237: ixxxxx#10 nsp=1 mass=-400 - 9.863939238321439e+00, 1.052153518754287e+01 } ); // itest=237: ixxxxx#10 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 1.440000000000000e+02, // itest=238: vxxxxx#10 nsp=1 mass=400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=238: vxxxxx#10 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=238: vxxxxx#10 nsp=1 mass=400 - -2.321373168788980e-01, -5.158607041753289e-01, // itest=238: vxxxxx#10 nsp=1 mass=400 - -2.476131380041579e-01, 4.836194101643708e-01, // itest=238: vxxxxx#10 nsp=1 mass=400 - 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=238: vxxxxx#10 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 1.440000000000000e+02, // itest=239: vxxxxx#10 nsp=1 mass=-400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=239: vxxxxx#10 nsp=1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=239: vxxxxx#10 nsp=1 mass=-400 - -2.321373168788980e-01, -5.158607041753289e-01, // itest=239: vxxxxx#10 nsp=1 mass=-400 - -2.476131380041579e-01, 4.836194101643708e-01, // itest=239: vxxxxx#10 nsp=1 mass=-400 - 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=239: vxxxxx#10 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 1.440000000000000e+02, // itest=240: sxxxxx#10 nsp=1 mass=400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=240: sxxxxx#10 nsp=1 mass=400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=240: sxxxxx#10 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=240: sxxxxx#10 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=240: sxxxxx#10 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=240: sxxxxx#10 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 1.440000000000000e+02, // itest=241: sxxxxx#10 nsp=1 mass=-400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=241: sxxxxx#10 nsp=1 mass=-400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=241: sxxxxx#10 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=241: sxxxxx#10 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=241: sxxxxx#10 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=241: sxxxxx#10 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 1.440000000000000e+02, // itest=242: oxxxxx#10 nsp=1 mass=400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=242: oxxxxx#10 nsp=1 mass=400 - 2.433105012119288e+01, 0.000000000000000e+00, // itest=242: oxxxxx#10 nsp=1 mass=400 - 9.863939238321439e+00, -1.052153518754287e+01, // itest=242: oxxxxx#10 nsp=1 mass=400 - 1.216552506059644e+01, 0.000000000000000e+00, // itest=242: oxxxxx#10 nsp=1 mass=400 - 4.931969619160719e+00, -5.260767593771432e+00 } ); // itest=242: oxxxxx#10 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 1.440000000000000e+02, // itest=243: oxxxxx#10 nsp=1 mass=-400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=243: oxxxxx#10 nsp=1 mass=-400 - 2.433105012119288e+01, 0.000000000000000e+00, // itest=243: oxxxxx#10 nsp=1 mass=-400 - 9.863939238321439e+00, -1.052153518754287e+01, // itest=243: oxxxxx#10 nsp=1 mass=-400 - -1.216552506059644e+01, -0.000000000000000e+00, // itest=243: oxxxxx#10 nsp=1 mass=-400 - -4.931969619160719e+00, 5.260767593771432e+00 } ); // itest=243: oxxxxx#10 nsp=1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 1.440000000000000e+02, // itest=244: ixxxxx#11 nsp=1 mass=400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=244: ixxxxx#11 nsp=1 mass=400 - 7.211102550927978e+00, 0.000000000000000e+00, // itest=244: ixxxxx#11 nsp=1 mass=400 - 8.320502943378436e+00, 8.875203139603666e+00, // itest=244: ixxxxx#11 nsp=1 mass=400 - 1.442220510185596e+01, 0.000000000000000e+00, // itest=244: ixxxxx#11 nsp=1 mass=400 - 1.664100588675688e+01, 1.775040627920733e+01 } ); // itest=244: ixxxxx#11 nsp=1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 1.440000000000000e+02, // itest=245: ixxxxx#11 nsp=1 mass=-400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=245: ixxxxx#11 nsp=1 mass=-400 - -7.211102550927978e+00, -0.000000000000000e+00, // itest=245: ixxxxx#11 nsp=1 mass=-400 - -8.320502943378436e+00, -8.875203139603666e+00, // itest=245: ixxxxx#11 nsp=1 mass=-400 - 1.442220510185596e+01, 0.000000000000000e+00, // itest=245: ixxxxx#11 nsp=1 mass=-400 - 1.664100588675688e+01, 1.775040627920733e+01 } ); // itest=245: ixxxxx#11 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -1.440000000000000e+02, // itest=246: vxxxxx#11 nsp=1 mass=400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=246: vxxxxx#11 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=246: vxxxxx#11 nsp=1 mass=400 - 2.321373168788980e-01, -5.158607041753289e-01, // itest=246: vxxxxx#11 nsp=1 mass=400 - 2.476131380041579e-01, 4.836194101643708e-01, // itest=246: vxxxxx#11 nsp=1 mass=400 - 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=246: vxxxxx#11 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -1.440000000000000e+02, // itest=247: vxxxxx#11 nsp=1 mass=-400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=247: vxxxxx#11 nsp=1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=247: vxxxxx#11 nsp=1 mass=-400 - 2.321373168788980e-01, -5.158607041753289e-01, // itest=247: vxxxxx#11 nsp=1 mass=-400 - 2.476131380041579e-01, 4.836194101643708e-01, // itest=247: vxxxxx#11 nsp=1 mass=-400 - 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=247: vxxxxx#11 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -1.440000000000000e+02, // itest=248: sxxxxx#11 nsp=1 mass=400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=248: sxxxxx#11 nsp=1 mass=400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=248: sxxxxx#11 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=248: sxxxxx#11 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=248: sxxxxx#11 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=248: sxxxxx#11 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -1.440000000000000e+02, // itest=249: sxxxxx#11 nsp=1 mass=-400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=249: sxxxxx#11 nsp=1 mass=-400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=249: sxxxxx#11 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=249: sxxxxx#11 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=249: sxxxxx#11 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=249: sxxxxx#11 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -1.440000000000000e+02, // itest=250: oxxxxx#11 nsp=1 mass=400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=250: oxxxxx#11 nsp=1 mass=400 - 1.442220510185596e+01, 0.000000000000000e+00, // itest=250: oxxxxx#11 nsp=1 mass=400 - 1.664100588675688e+01, -1.775040627920733e+01, // itest=250: oxxxxx#11 nsp=1 mass=400 - 7.211102550927978e+00, 0.000000000000000e+00, // itest=250: oxxxxx#11 nsp=1 mass=400 - 8.320502943378436e+00, -8.875203139603666e+00 } ); // itest=250: oxxxxx#11 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -1.440000000000000e+02, // itest=251: oxxxxx#11 nsp=1 mass=-400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=251: oxxxxx#11 nsp=1 mass=-400 - 1.442220510185596e+01, 0.000000000000000e+00, // itest=251: oxxxxx#11 nsp=1 mass=-400 - 1.664100588675688e+01, -1.775040627920733e+01, // itest=251: oxxxxx#11 nsp=1 mass=-400 - -7.211102550927978e+00, -0.000000000000000e+00, // itest=251: oxxxxx#11 nsp=1 mass=-400 - -8.320502943378436e+00, 8.875203139603666e+00 } ); // itest=251: oxxxxx#11 nsp=1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=252: ixxxxx#12 nsp=1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=252: ixxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=252: ixxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=252: ixxxxx#12 nsp=1 mass=0 - 3.162277660168379e+01, 0.000000000000000e+00, // itest=252: ixxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=252: ixxxxx#12 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=253: ixxxxx#12 nsp=1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=253: ixxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=253: ixxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=253: ixxxxx#12 nsp=1 mass=0 - 3.162277660168379e+01, 0.000000000000000e+00, // itest=253: ixxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=253: ixxxxx#12 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=254: ipzxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=254: ipzxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=254: ipzxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=254: ipzxxx#12 nsp=1 mass=0 - 3.162277660168379e+01, 0.000000000000000e+00, // itest=254: ipzxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=254: ipzxxx#12 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=255: vxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=255: vxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=255: vxxxxx#12 nsp=1 mass=0 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=255: vxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 7.071067811865476e-01, // itest=255: vxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=255: vxxxxx#12 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=256: vxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=256: vxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=256: vxxxxx#12 nsp=1 mass=0 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=256: vxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 7.071067811865476e-01, // itest=256: vxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=256: vxxxxx#12 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=257: sxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=257: sxxxxx#12 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=257: sxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=257: sxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=257: sxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=257: sxxxxx#12 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=258: sxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=258: sxxxxx#12 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=258: sxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=258: sxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=258: sxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=258: sxxxxx#12 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=259: oxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=259: oxxxxx#12 nsp=1 mass=0 - 3.162277660168379e+01, 0.000000000000000e+00, // itest=259: oxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=259: oxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=259: oxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=259: oxxxxx#12 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=260: oxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=260: oxxxxx#12 nsp=1 mass=0 - 3.162277660168379e+01, 0.000000000000000e+00, // itest=260: oxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=260: oxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=260: oxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=260: oxxxxx#12 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=261: opzxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=261: opzxxx#12 nsp=1 mass=0 - 3.162277660168379e+01, 0.000000000000000e+00, // itest=261: opzxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=261: opzxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=261: opzxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=261: opzxxx#12 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=262: ixxxxx#13 nsp=1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=262: ixxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=262: ixxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=262: ixxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=262: ixxxxx#13 nsp=1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=262: ixxxxx#13 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=263: ixxxxx#13 nsp=1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=263: ixxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=263: ixxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=263: ixxxxx#13 nsp=1 mass=0 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=263: ixxxxx#13 nsp=1 mass=0 - -3.162277660168379e+01, -0.000000000000000e+00 } ); // itest=263: ixxxxx#13 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=264: imzxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=264: imzxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=264: imzxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=264: imzxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=264: imzxxx#13 nsp=1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=264: imzxxx#13 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=265: vxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=265: vxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=265: vxxxxx#13 nsp=1 mass=0 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=265: vxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, -7.071067811865476e-01, // itest=265: vxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=265: vxxxxx#13 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=266: vxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=266: vxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=266: vxxxxx#13 nsp=1 mass=0 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=266: vxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, -7.071067811865476e-01, // itest=266: vxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=266: vxxxxx#13 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=267: sxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=267: sxxxxx#13 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=267: sxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=267: sxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=267: sxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=267: sxxxxx#13 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=268: sxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=268: sxxxxx#13 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=268: sxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=268: sxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=268: sxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=268: sxxxxx#13 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=269: oxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=269: oxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=269: oxxxxx#13 nsp=1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00, // itest=269: oxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=269: oxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=269: oxxxxx#13 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=270: oxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=270: oxxxxx#13 nsp=1 mass=0 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=270: oxxxxx#13 nsp=1 mass=0 - -3.162277660168379e+01, -0.000000000000000e+00, // itest=270: oxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=270: oxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=270: oxxxxx#13 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=271: omzxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=271: omzxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=271: omzxxx#13 nsp=1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00, // itest=271: omzxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=271: omzxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=271: omzxxx#13 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=272: ixxxxx#14 nsp=1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=272: ixxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=272: ixxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=272: ixxxxx#14 nsp=1 mass=0 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=272: ixxxxx#14 nsp=1 mass=0 - 1.341640786499874e+01, 1.788854381999832e+01 } ); // itest=272: ixxxxx#14 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=273: ixxxxx#14 nsp=1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=273: ixxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=273: ixxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=273: ixxxxx#14 nsp=1 mass=0 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=273: ixxxxx#14 nsp=1 mass=0 - 1.341640786499874e+01, 1.788854381999832e+01 } ); // itest=273: ixxxxx#14 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=274: ixzxxx#14 nsp=1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=274: ixzxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=274: ixzxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=274: ixzxxx#14 nsp=1 mass=0 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=274: ixzxxx#14 nsp=1 mass=0 - 1.341640786499874e+01, 1.788854381999832e+01 } ); // itest=274: ixzxxx#14 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=275: vxxxxx#14 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=275: vxxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=275: vxxxxx#14 nsp=1 mass=0 - -0.000000000000000e+00, -5.656854249492381e-01, // itest=275: vxxxxx#14 nsp=1 mass=0 - -0.000000000000000e+00, 4.242640687119285e-01, // itest=275: vxxxxx#14 nsp=1 mass=0 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=275: vxxxxx#14 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=276: vxxxxx#14 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=276: vxxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=276: vxxxxx#14 nsp=1 mass=0 - -0.000000000000000e+00, -5.656854249492381e-01, // itest=276: vxxxxx#14 nsp=1 mass=0 - -0.000000000000000e+00, 4.242640687119285e-01, // itest=276: vxxxxx#14 nsp=1 mass=0 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=276: vxxxxx#14 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=277: sxxxxx#14 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=277: sxxxxx#14 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=277: sxxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=277: sxxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=277: sxxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=277: sxxxxx#14 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=278: sxxxxx#14 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=278: sxxxxx#14 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=278: sxxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=278: sxxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=278: sxxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=278: sxxxxx#14 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=279: oxxxxx#14 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=279: oxxxxx#14 nsp=1 mass=0 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=279: oxxxxx#14 nsp=1 mass=0 - 1.341640786499874e+01, -1.788854381999832e+01, // itest=279: oxxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=279: oxxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=279: oxxxxx#14 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=280: oxxxxx#14 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=280: oxxxxx#14 nsp=1 mass=0 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=280: oxxxxx#14 nsp=1 mass=0 - 1.341640786499874e+01, -1.788854381999832e+01, // itest=280: oxxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=280: oxxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=280: oxxxxx#14 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=281: oxzxxx#14 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=281: oxzxxx#14 nsp=1 mass=0 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=281: oxzxxx#14 nsp=1 mass=0 - 1.341640786499874e+01, -1.788854381999832e+01, // itest=281: oxzxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=281: oxzxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=281: oxzxxx#14 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=282: ixxxxx#15 nsp=1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=282: ixxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=282: ixxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=282: ixxxxx#15 nsp=1 mass=0 - 3.000000000000000e+01, 0.000000000000000e+00, // itest=282: ixxxxx#15 nsp=1 mass=0 - 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=282: ixxxxx#15 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=283: ixxxxx#15 nsp=1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=283: ixxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=283: ixxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=283: ixxxxx#15 nsp=1 mass=0 - 3.000000000000000e+01, 0.000000000000000e+00, // itest=283: ixxxxx#15 nsp=1 mass=0 - 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=283: ixxxxx#15 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=284: ixzxxx#15 nsp=1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=284: ixzxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=284: ixzxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=284: ixzxxx#15 nsp=1 mass=0 - 3.000000000000000e+01, 0.000000000000000e+00, // itest=284: ixzxxx#15 nsp=1 mass=0 - 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=284: ixzxxx#15 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=285: vxxxxx#15 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=285: vxxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=285: vxxxxx#15 nsp=1 mass=0 - -3.394112549695428e-01, -5.656854249492381e-01, // itest=285: vxxxxx#15 nsp=1 mass=0 - -4.525483399593904e-01, 4.242640687119285e-01, // itest=285: vxxxxx#15 nsp=1 mass=0 - 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=285: vxxxxx#15 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=286: vxxxxx#15 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=286: vxxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=286: vxxxxx#15 nsp=1 mass=0 - -3.394112549695428e-01, -5.656854249492381e-01, // itest=286: vxxxxx#15 nsp=1 mass=0 - -4.525483399593904e-01, 4.242640687119285e-01, // itest=286: vxxxxx#15 nsp=1 mass=0 - 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=286: vxxxxx#15 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=287: sxxxxx#15 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=287: sxxxxx#15 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=287: sxxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=287: sxxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=287: sxxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=287: sxxxxx#15 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=288: sxxxxx#15 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=288: sxxxxx#15 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=288: sxxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=288: sxxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=288: sxxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=288: sxxxxx#15 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=289: oxxxxx#15 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=289: oxxxxx#15 nsp=1 mass=0 - 3.000000000000000e+01, 0.000000000000000e+00, // itest=289: oxxxxx#15 nsp=1 mass=0 - 6.000000000000000e+00, -8.000000000000000e+00, // itest=289: oxxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=289: oxxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=289: oxxxxx#15 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=290: oxxxxx#15 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=290: oxxxxx#15 nsp=1 mass=0 - 3.000000000000000e+01, 0.000000000000000e+00, // itest=290: oxxxxx#15 nsp=1 mass=0 - 6.000000000000000e+00, -8.000000000000000e+00, // itest=290: oxxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=290: oxxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=290: oxxxxx#15 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=291: oxzxxx#15 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=291: oxzxxx#15 nsp=1 mass=0 - 3.000000000000000e+01, 0.000000000000000e+00, // itest=291: oxzxxx#15 nsp=1 mass=0 - 6.000000000000000e+00, -8.000000000000000e+00, // itest=291: oxzxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=291: oxzxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=291: oxzxxx#15 nsp=1 mass=0 + 5.000000000000000e+02, 5.000000000000000e+02, // itest=50: ixxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=50: ixxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=50: ixxxxx#5 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=50: ixxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=50: ixxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=50: ixxxxx#5 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=51: ixxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=51: ixxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=51: ixxxxx#5 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=51: ixxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=51: ixxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=51: ixxxxx#5 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=52: ipzxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=52: ipzxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=52: ipzxxx#5 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=52: ipzxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=52: ipzxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=52: ipzxxx#5 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=53: vxxxxx#5 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=53: vxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=53: vxxxxx#5 nsp=-1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=53: vxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=53: vxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=53: vxxxxx#5 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=54: vxxxxx#5 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=54: vxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=54: vxxxxx#5 nsp=-1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=54: vxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=54: vxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=54: vxxxxx#5 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=55: sxxxxx#5 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=55: sxxxxx#5 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=55: sxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=55: sxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=55: sxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=55: sxxxxx#5 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=56: sxxxxx#5 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=56: sxxxxx#5 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=56: sxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=56: sxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=56: sxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=56: sxxxxx#5 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=57: oxxxxx#5 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=57: oxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=57: oxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=57: oxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=57: oxxxxx#5 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=57: oxxxxx#5 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=58: oxxxxx#5 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=58: oxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=58: oxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=58: oxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=58: oxxxxx#5 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=58: oxxxxx#5 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=59: opzxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=59: opzxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=59: opzxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=59: opzxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=59: opzxxx#5 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=59: opzxxx#5 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=60: ixxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=60: ixxxxx#6 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=60: ixxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=60: ixxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=60: ixxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=60: ixxxxx#6 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=61: ixxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=61: ixxxxx#6 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=61: ixxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=61: ixxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=61: ixxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=61: ixxxxx#6 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=62: imzxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=62: imzxxx#6 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=62: imzxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=62: imzxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=62: imzxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=62: imzxxx#6 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=63: vxxxxx#6 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=63: vxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=63: vxxxxx#6 nsp=-1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=63: vxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=63: vxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=63: vxxxxx#6 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=64: vxxxxx#6 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=64: vxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=64: vxxxxx#6 nsp=-1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=64: vxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=64: vxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=64: vxxxxx#6 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=65: sxxxxx#6 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=65: sxxxxx#6 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=65: sxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=65: sxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=65: sxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=65: sxxxxx#6 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=66: sxxxxx#6 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=66: sxxxxx#6 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=66: sxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=66: sxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=66: sxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=66: sxxxxx#6 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=67: oxxxxx#6 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=67: oxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=67: oxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=67: oxxxxx#6 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=67: oxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=67: oxxxxx#6 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=68: oxxxxx#6 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=68: oxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=68: oxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=68: oxxxxx#6 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=68: oxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=68: oxxxxx#6 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=69: omzxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=69: omzxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=69: omzxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=69: omzxxx#6 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=69: omzxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=69: omzxxx#6 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=70: ixxxxx#7 nsp=-1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=70: ixxxxx#7 nsp=-1 mass=0 + 1.341640786499874e+01, -1.788854381999831e+01, // itest=70: ixxxxx#7 nsp=-1 mass=0 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=70: ixxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=70: ixxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=70: ixxxxx#7 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=71: ixxxxx#7 nsp=-1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=71: ixxxxx#7 nsp=-1 mass=0 + 1.341640786499874e+01, -1.788854381999831e+01, // itest=71: ixxxxx#7 nsp=-1 mass=0 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=71: ixxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=71: ixxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=71: ixxxxx#7 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=72: ixzxxx#7 nsp=-1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=72: ixzxxx#7 nsp=-1 mass=0 + 1.341640786499874e+01, -1.788854381999832e+01, // itest=72: ixzxxx#7 nsp=-1 mass=0 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=72: ixzxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=72: ixzxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=72: ixzxxx#7 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=73: vxxxxx#7 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=73: vxxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=73: vxxxxx#7 nsp=-1 mass=0 + -0.000000000000000e+00, 5.656854249492381e-01, // itest=73: vxxxxx#7 nsp=-1 mass=0 + -0.000000000000000e+00, -4.242640687119285e-01, // itest=73: vxxxxx#7 nsp=-1 mass=0 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=73: vxxxxx#7 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=74: vxxxxx#7 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=74: vxxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=74: vxxxxx#7 nsp=-1 mass=0 + -0.000000000000000e+00, 5.656854249492381e-01, // itest=74: vxxxxx#7 nsp=-1 mass=0 + -0.000000000000000e+00, -4.242640687119285e-01, // itest=74: vxxxxx#7 nsp=-1 mass=0 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=74: vxxxxx#7 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=75: sxxxxx#7 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=75: sxxxxx#7 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=75: sxxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=75: sxxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=75: sxxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=75: sxxxxx#7 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=76: sxxxxx#7 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=76: sxxxxx#7 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=76: sxxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=76: sxxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=76: sxxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=76: sxxxxx#7 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=77: oxxxxx#7 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=77: oxxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=77: oxxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=77: oxxxxx#7 nsp=-1 mass=0 + 1.341640786499874e+01, 1.788854381999831e+01, // itest=77: oxxxxx#7 nsp=-1 mass=0 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=77: oxxxxx#7 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=78: oxxxxx#7 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=78: oxxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=78: oxxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=78: oxxxxx#7 nsp=-1 mass=0 + 1.341640786499874e+01, 1.788854381999831e+01, // itest=78: oxxxxx#7 nsp=-1 mass=0 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=78: oxxxxx#7 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=79: oxzxxx#7 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=79: oxzxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=79: oxzxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=79: oxzxxx#7 nsp=-1 mass=0 + 1.341640786499874e+01, 1.788854381999832e+01, // itest=79: oxzxxx#7 nsp=-1 mass=0 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=79: oxzxxx#7 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=80: ixxxxx#8 nsp=-1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=80: ixxxxx#8 nsp=-1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=80: ixxxxx#8 nsp=-1 mass=0 + -3.000000000000000e+01, 0.000000000000000e+00, // itest=80: ixxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=80: ixxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=80: ixxxxx#8 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=81: ixxxxx#8 nsp=-1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=81: ixxxxx#8 nsp=-1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=81: ixxxxx#8 nsp=-1 mass=0 + -3.000000000000000e+01, 0.000000000000000e+00, // itest=81: ixxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=81: ixxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=81: ixxxxx#8 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=82: ixzxxx#8 nsp=-1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=82: ixzxxx#8 nsp=-1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=82: ixzxxx#8 nsp=-1 mass=0 + -3.000000000000000e+01, 0.000000000000000e+00, // itest=82: ixzxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=82: ixzxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=82: ixzxxx#8 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=83: vxxxxx#8 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=83: vxxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=83: vxxxxx#8 nsp=-1 mass=0 + -3.394112549695428e-01, 5.656854249492381e-01, // itest=83: vxxxxx#8 nsp=-1 mass=0 + -4.525483399593904e-01, -4.242640687119285e-01, // itest=83: vxxxxx#8 nsp=-1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=83: vxxxxx#8 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=84: vxxxxx#8 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=84: vxxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=84: vxxxxx#8 nsp=-1 mass=0 + -3.394112549695428e-01, 5.656854249492381e-01, // itest=84: vxxxxx#8 nsp=-1 mass=0 + -4.525483399593904e-01, -4.242640687119285e-01, // itest=84: vxxxxx#8 nsp=-1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=84: vxxxxx#8 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=85: sxxxxx#8 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=85: sxxxxx#8 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=85: sxxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=85: sxxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=85: sxxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=85: sxxxxx#8 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=86: sxxxxx#8 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=86: sxxxxx#8 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=86: sxxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=86: sxxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=86: sxxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=86: sxxxxx#8 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=87: oxxxxx#8 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=87: oxxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=87: oxxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=87: oxxxxx#8 nsp=-1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00, // itest=87: oxxxxx#8 nsp=-1 mass=0 + -3.000000000000000e+01, 0.000000000000000e+00 } ); // itest=87: oxxxxx#8 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=88: oxxxxx#8 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=88: oxxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=88: oxxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=88: oxxxxx#8 nsp=-1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00, // itest=88: oxxxxx#8 nsp=-1 mass=0 + -3.000000000000000e+01, 0.000000000000000e+00 } ); // itest=88: oxxxxx#8 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=89: oxzxxx#8 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=89: oxzxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=89: oxzxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=89: oxzxxx#8 nsp=-1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00, // itest=89: oxzxxx#8 nsp=-1 mass=0 + -3.000000000000000e+01, 0.000000000000000e+00 } ); // itest=89: oxzxxx#8 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=90: ixxxxx#9 nsp=-1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=90: ixxxxx#9 nsp=-1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=90: ixxxxx#9 nsp=-1 mass=0 + -1.000000000000000e+01, 0.000000000000000e+00, // itest=90: ixxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=90: ixxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=90: ixxxxx#9 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=91: ixxxxx#9 nsp=-1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=91: ixxxxx#9 nsp=-1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=91: ixxxxx#9 nsp=-1 mass=0 + -1.000000000000000e+01, 0.000000000000000e+00, // itest=91: ixxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=91: ixxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=91: ixxxxx#9 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=92: ixzxxx#9 nsp=-1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=92: ixzxxx#9 nsp=-1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=92: ixzxxx#9 nsp=-1 mass=0 + -1.000000000000000e+01, 0.000000000000000e+00, // itest=92: ixzxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=92: ixzxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=92: ixzxxx#9 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=93: vxxxxx#9 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=93: vxxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=93: vxxxxx#9 nsp=-1 mass=0 + 3.394112549695428e-01, 5.656854249492381e-01, // itest=93: vxxxxx#9 nsp=-1 mass=0 + 4.525483399593904e-01, -4.242640687119285e-01, // itest=93: vxxxxx#9 nsp=-1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=93: vxxxxx#9 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=94: vxxxxx#9 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=94: vxxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=94: vxxxxx#9 nsp=-1 mass=0 + 3.394112549695428e-01, 5.656854249492381e-01, // itest=94: vxxxxx#9 nsp=-1 mass=0 + 4.525483399593904e-01, -4.242640687119285e-01, // itest=94: vxxxxx#9 nsp=-1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=94: vxxxxx#9 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=95: sxxxxx#9 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=95: sxxxxx#9 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=95: sxxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=95: sxxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=95: sxxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=95: sxxxxx#9 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=96: sxxxxx#9 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=96: sxxxxx#9 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=96: sxxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=96: sxxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=96: sxxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=96: sxxxxx#9 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=97: oxxxxx#9 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=97: oxxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=97: oxxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=97: oxxxxx#9 nsp=-1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01, // itest=97: oxxxxx#9 nsp=-1 mass=0 + -1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=97: oxxxxx#9 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=98: oxxxxx#9 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=98: oxxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=98: oxxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=98: oxxxxx#9 nsp=-1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01, // itest=98: oxxxxx#9 nsp=-1 mass=0 + -1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=98: oxxxxx#9 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=99: oxzxxx#9 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=99: oxzxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=99: oxzxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=99: oxzxxx#9 nsp=-1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01, // itest=99: oxzxxx#9 nsp=-1 mass=0 + -1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=99: oxzxxx#9 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=100: ixxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=100: ixxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=100: ixxxxx#10 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=100: ixxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=100: ixxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=100: ixxxxx#10 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=101: ixxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=101: ixxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=101: ixxxxx#10 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=101: ixxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=101: ixxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=101: ixxxxx#10 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=102: ipzxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=102: ipzxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=102: ipzxxx#10 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=102: ipzxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=102: ipzxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=102: ipzxxx#10 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=103: vxxxxx#10 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=103: vxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=103: vxxxxx#10 nsp=-1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=103: vxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=103: vxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=103: vxxxxx#10 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=104: vxxxxx#10 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=104: vxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=104: vxxxxx#10 nsp=-1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=104: vxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=104: vxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=104: vxxxxx#10 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=105: sxxxxx#10 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=105: sxxxxx#10 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=105: sxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=105: sxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=105: sxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=105: sxxxxx#10 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=106: sxxxxx#10 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=106: sxxxxx#10 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=106: sxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=106: sxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=106: sxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=106: sxxxxx#10 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=107: oxxxxx#10 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=107: oxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=107: oxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=107: oxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=107: oxxxxx#10 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=107: oxxxxx#10 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=108: oxxxxx#10 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=108: oxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=108: oxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=108: oxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=108: oxxxxx#10 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=108: oxxxxx#10 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=109: opzxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=109: opzxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=109: opzxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=109: opzxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=109: opzxxx#10 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=109: opzxxx#10 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=110: ixxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=110: ixxxxx#11 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=110: ixxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=110: ixxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=110: ixxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=110: ixxxxx#11 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=111: ixxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=111: ixxxxx#11 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=111: ixxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=111: ixxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=111: ixxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=111: ixxxxx#11 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=112: imzxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=112: imzxxx#11 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=112: imzxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=112: imzxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=112: imzxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=112: imzxxx#11 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=113: vxxxxx#11 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=113: vxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=113: vxxxxx#11 nsp=-1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=113: vxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=113: vxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=113: vxxxxx#11 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=114: vxxxxx#11 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=114: vxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=114: vxxxxx#11 nsp=-1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=114: vxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=114: vxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=114: vxxxxx#11 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=115: sxxxxx#11 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=115: sxxxxx#11 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=115: sxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=115: sxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=115: sxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=115: sxxxxx#11 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=116: sxxxxx#11 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=116: sxxxxx#11 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=116: sxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=116: sxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=116: sxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=116: sxxxxx#11 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=117: oxxxxx#11 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=117: oxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=117: oxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=117: oxxxxx#11 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=117: oxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=117: oxxxxx#11 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=118: oxxxxx#11 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=118: oxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=118: oxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=118: oxxxxx#11 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=118: oxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=118: oxxxxx#11 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=119: omzxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=119: omzxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=119: omzxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=119: omzxxx#11 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=119: omzxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=119: omzxxx#11 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=120: ixxxxx#12 nsp=-1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=120: ixxxxx#12 nsp=-1 mass=0 + 1.341640786499874e+01, -1.788854381999831e+01, // itest=120: ixxxxx#12 nsp=-1 mass=0 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=120: ixxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=120: ixxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=120: ixxxxx#12 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=121: ixxxxx#12 nsp=-1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=121: ixxxxx#12 nsp=-1 mass=0 + 1.341640786499874e+01, -1.788854381999831e+01, // itest=121: ixxxxx#12 nsp=-1 mass=0 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=121: ixxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=121: ixxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=121: ixxxxx#12 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=122: ixzxxx#12 nsp=-1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=122: ixzxxx#12 nsp=-1 mass=0 + 1.341640786499874e+01, -1.788854381999832e+01, // itest=122: ixzxxx#12 nsp=-1 mass=0 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=122: ixzxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=122: ixzxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=122: ixzxxx#12 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=123: vxxxxx#12 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=123: vxxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=123: vxxxxx#12 nsp=-1 mass=0 + -0.000000000000000e+00, 5.656854249492381e-01, // itest=123: vxxxxx#12 nsp=-1 mass=0 + -0.000000000000000e+00, -4.242640687119285e-01, // itest=123: vxxxxx#12 nsp=-1 mass=0 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=123: vxxxxx#12 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=124: vxxxxx#12 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=124: vxxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=124: vxxxxx#12 nsp=-1 mass=0 + -0.000000000000000e+00, 5.656854249492381e-01, // itest=124: vxxxxx#12 nsp=-1 mass=0 + -0.000000000000000e+00, -4.242640687119285e-01, // itest=124: vxxxxx#12 nsp=-1 mass=0 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=124: vxxxxx#12 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=125: sxxxxx#12 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=125: sxxxxx#12 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=125: sxxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=125: sxxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=125: sxxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=125: sxxxxx#12 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=126: sxxxxx#12 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=126: sxxxxx#12 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=126: sxxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=126: sxxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=126: sxxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=126: sxxxxx#12 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=127: oxxxxx#12 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=127: oxxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=127: oxxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=127: oxxxxx#12 nsp=-1 mass=0 + 1.341640786499874e+01, 1.788854381999831e+01, // itest=127: oxxxxx#12 nsp=-1 mass=0 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=127: oxxxxx#12 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=128: oxxxxx#12 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=128: oxxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=128: oxxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=128: oxxxxx#12 nsp=-1 mass=0 + 1.341640786499874e+01, 1.788854381999831e+01, // itest=128: oxxxxx#12 nsp=-1 mass=0 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=128: oxxxxx#12 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=129: oxzxxx#12 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=129: oxzxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=129: oxzxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=129: oxzxxx#12 nsp=-1 mass=0 + 1.341640786499874e+01, 1.788854381999832e+01, // itest=129: oxzxxx#12 nsp=-1 mass=0 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=129: oxzxxx#12 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=130: ixxxxx#13 nsp=-1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=130: ixxxxx#13 nsp=-1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=130: ixxxxx#13 nsp=-1 mass=0 + -3.000000000000000e+01, 0.000000000000000e+00, // itest=130: ixxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=130: ixxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=130: ixxxxx#13 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=131: ixxxxx#13 nsp=-1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=131: ixxxxx#13 nsp=-1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=131: ixxxxx#13 nsp=-1 mass=0 + -3.000000000000000e+01, 0.000000000000000e+00, // itest=131: ixxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=131: ixxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=131: ixxxxx#13 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=132: ixzxxx#13 nsp=-1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=132: ixzxxx#13 nsp=-1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=132: ixzxxx#13 nsp=-1 mass=0 + -3.000000000000000e+01, 0.000000000000000e+00, // itest=132: ixzxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=132: ixzxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=132: ixzxxx#13 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=133: vxxxxx#13 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=133: vxxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=133: vxxxxx#13 nsp=-1 mass=0 + -3.394112549695428e-01, 5.656854249492381e-01, // itest=133: vxxxxx#13 nsp=-1 mass=0 + -4.525483399593904e-01, -4.242640687119285e-01, // itest=133: vxxxxx#13 nsp=-1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=133: vxxxxx#13 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=134: vxxxxx#13 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=134: vxxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=134: vxxxxx#13 nsp=-1 mass=0 + -3.394112549695428e-01, 5.656854249492381e-01, // itest=134: vxxxxx#13 nsp=-1 mass=0 + -4.525483399593904e-01, -4.242640687119285e-01, // itest=134: vxxxxx#13 nsp=-1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=134: vxxxxx#13 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=135: sxxxxx#13 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=135: sxxxxx#13 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=135: sxxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=135: sxxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=135: sxxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=135: sxxxxx#13 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=136: sxxxxx#13 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=136: sxxxxx#13 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=136: sxxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=136: sxxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=136: sxxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=136: sxxxxx#13 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=137: oxxxxx#13 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=137: oxxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=137: oxxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=137: oxxxxx#13 nsp=-1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00, // itest=137: oxxxxx#13 nsp=-1 mass=0 + -3.000000000000000e+01, 0.000000000000000e+00 } ); // itest=137: oxxxxx#13 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=138: oxxxxx#13 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=138: oxxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=138: oxxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=138: oxxxxx#13 nsp=-1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00, // itest=138: oxxxxx#13 nsp=-1 mass=0 + -3.000000000000000e+01, 0.000000000000000e+00 } ); // itest=138: oxxxxx#13 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=139: oxzxxx#13 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=139: oxzxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=139: oxzxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=139: oxzxxx#13 nsp=-1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00, // itest=139: oxzxxx#13 nsp=-1 mass=0 + -3.000000000000000e+01, 0.000000000000000e+00 } ); // itest=139: oxzxxx#13 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=140: ixxxxx#14 nsp=-1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=140: ixxxxx#14 nsp=-1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=140: ixxxxx#14 nsp=-1 mass=0 + -1.000000000000000e+01, 0.000000000000000e+00, // itest=140: ixxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=140: ixxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=140: ixxxxx#14 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=141: ixxxxx#14 nsp=-1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=141: ixxxxx#14 nsp=-1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=141: ixxxxx#14 nsp=-1 mass=0 + -1.000000000000000e+01, 0.000000000000000e+00, // itest=141: ixxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=141: ixxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=141: ixxxxx#14 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=142: ixzxxx#14 nsp=-1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=142: ixzxxx#14 nsp=-1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=142: ixzxxx#14 nsp=-1 mass=0 + -1.000000000000000e+01, 0.000000000000000e+00, // itest=142: ixzxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=142: ixzxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=142: ixzxxx#14 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=143: vxxxxx#14 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=143: vxxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=143: vxxxxx#14 nsp=-1 mass=0 + 3.394112549695428e-01, 5.656854249492381e-01, // itest=143: vxxxxx#14 nsp=-1 mass=0 + 4.525483399593904e-01, -4.242640687119285e-01, // itest=143: vxxxxx#14 nsp=-1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=143: vxxxxx#14 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=144: vxxxxx#14 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=144: vxxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=144: vxxxxx#14 nsp=-1 mass=0 + 3.394112549695428e-01, 5.656854249492381e-01, // itest=144: vxxxxx#14 nsp=-1 mass=0 + 4.525483399593904e-01, -4.242640687119285e-01, // itest=144: vxxxxx#14 nsp=-1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=144: vxxxxx#14 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=145: sxxxxx#14 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=145: sxxxxx#14 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=145: sxxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=145: sxxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=145: sxxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=145: sxxxxx#14 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=146: sxxxxx#14 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=146: sxxxxx#14 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=146: sxxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=146: sxxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=146: sxxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=146: sxxxxx#14 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=147: oxxxxx#14 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=147: oxxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=147: oxxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=147: oxxxxx#14 nsp=-1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01, // itest=147: oxxxxx#14 nsp=-1 mass=0 + -1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=147: oxxxxx#14 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=148: oxxxxx#14 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=148: oxxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=148: oxxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=148: oxxxxx#14 nsp=-1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01, // itest=148: oxxxxx#14 nsp=-1 mass=0 + -1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=148: oxxxxx#14 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=149: oxzxxx#14 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=149: oxzxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=149: oxzxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=149: oxzxxx#14 nsp=-1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01, // itest=149: oxzxxx#14 nsp=-1 mass=0 + -1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=149: oxzxxx#14 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=150: ixxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=150: ixxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=150: ixxxxx#15 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=150: ixxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=150: ixxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=150: ixxxxx#15 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=151: ixxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=151: ixxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=151: ixxxxx#15 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=151: ixxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=151: ixxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=151: ixxxxx#15 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=152: ipzxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=152: ipzxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=152: ipzxxx#15 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=152: ipzxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=152: ipzxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=152: ipzxxx#15 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=153: vxxxxx#15 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=153: vxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=153: vxxxxx#15 nsp=-1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=153: vxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=153: vxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=153: vxxxxx#15 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=154: vxxxxx#15 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=154: vxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=154: vxxxxx#15 nsp=-1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=154: vxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=154: vxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=154: vxxxxx#15 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=155: sxxxxx#15 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=155: sxxxxx#15 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=155: sxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=155: sxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=155: sxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=155: sxxxxx#15 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=156: sxxxxx#15 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=156: sxxxxx#15 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=156: sxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=156: sxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=156: sxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=156: sxxxxx#15 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=157: oxxxxx#15 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=157: oxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=157: oxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=157: oxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=157: oxxxxx#15 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=157: oxxxxx#15 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=158: oxxxxx#15 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=158: oxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=158: oxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=158: oxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=158: oxxxxx#15 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=158: oxxxxx#15 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=159: opzxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=159: opzxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=159: opzxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=159: opzxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=159: opzxxx#15 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=159: opzxxx#15 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=160: ixxxxx#16 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=160: ixxxxx#16 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=160: ixxxxx#16 nsp=-1 mass=500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=160: ixxxxx#16 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=160: ixxxxx#16 nsp=-1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=160: ixxxxx#16 nsp=-1 mass=500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=161: ixxxxx#16 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=161: ixxxxx#16 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=161: ixxxxx#16 nsp=-1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=161: ixxxxx#16 nsp=-1 mass=-500 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=161: ixxxxx#16 nsp=-1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=161: ixxxxx#16 nsp=-1 mass=-500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=162: vxxxxx#16 nsp=-1 mass=500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=162: vxxxxx#16 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=162: vxxxxx#16 nsp=-1 mass=500 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=162: vxxxxx#16 nsp=-1 mass=500 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=162: vxxxxx#16 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=162: vxxxxx#16 nsp=-1 mass=500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=163: vxxxxx#16 nsp=-1 mass=-500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=163: vxxxxx#16 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=163: vxxxxx#16 nsp=-1 mass=-500 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=163: vxxxxx#16 nsp=-1 mass=-500 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=163: vxxxxx#16 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=163: vxxxxx#16 nsp=-1 mass=-500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=164: sxxxxx#16 nsp=-1 mass=500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=164: sxxxxx#16 nsp=-1 mass=500 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=164: sxxxxx#16 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=164: sxxxxx#16 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=164: sxxxxx#16 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=164: sxxxxx#16 nsp=-1 mass=500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=165: sxxxxx#16 nsp=-1 mass=-500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=165: sxxxxx#16 nsp=-1 mass=-500 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=165: sxxxxx#16 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=165: sxxxxx#16 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=165: sxxxxx#16 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=165: sxxxxx#16 nsp=-1 mass=-500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=166: oxxxxx#16 nsp=-1 mass=500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=166: oxxxxx#16 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=166: oxxxxx#16 nsp=-1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=166: oxxxxx#16 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=166: oxxxxx#16 nsp=-1 mass=500 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=166: oxxxxx#16 nsp=-1 mass=500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=167: oxxxxx#16 nsp=-1 mass=-500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=167: oxxxxx#16 nsp=-1 mass=-500 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=167: oxxxxx#16 nsp=-1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=167: oxxxxx#16 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=167: oxxxxx#16 nsp=-1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=167: oxxxxx#16 nsp=-1 mass=-500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=168: ixxxxx#17 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=168: ixxxxx#17 nsp=-1 mass=400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=168: ixxxxx#17 nsp=-1 mass=400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=168: ixxxxx#17 nsp=-1 mass=400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=168: ixxxxx#17 nsp=-1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00 } ); // itest=168: ixxxxx#17 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=169: ixxxxx#17 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=169: ixxxxx#17 nsp=-1 mass=-400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=169: ixxxxx#17 nsp=-1 mass=-400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=169: ixxxxx#17 nsp=-1 mass=-400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=169: ixxxxx#17 nsp=-1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00 } ); // itest=169: ixxxxx#17 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=170: vxxxxx#17 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=170: vxxxxx#17 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=170: vxxxxx#17 nsp=-1 mass=400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=170: vxxxxx#17 nsp=-1 mass=400 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=170: vxxxxx#17 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=170: vxxxxx#17 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=171: vxxxxx#17 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=171: vxxxxx#17 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=171: vxxxxx#17 nsp=-1 mass=-400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=171: vxxxxx#17 nsp=-1 mass=-400 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=171: vxxxxx#17 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=171: vxxxxx#17 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=172: sxxxxx#17 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=172: sxxxxx#17 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=172: sxxxxx#17 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=172: sxxxxx#17 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=172: sxxxxx#17 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=172: sxxxxx#17 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=173: sxxxxx#17 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=173: sxxxxx#17 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=173: sxxxxx#17 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=173: sxxxxx#17 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=173: sxxxxx#17 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=173: sxxxxx#17 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=174: oxxxxx#17 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=174: oxxxxx#17 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=174: oxxxxx#17 nsp=-1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=174: oxxxxx#17 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=174: oxxxxx#17 nsp=-1 mass=400 + -2.828427124746190e+01, -0.000000000000000e+00 } ); // itest=174: oxxxxx#17 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=175: oxxxxx#17 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=175: oxxxxx#17 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=175: oxxxxx#17 nsp=-1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=175: oxxxxx#17 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=175: oxxxxx#17 nsp=-1 mass=-400 + -2.828427124746190e+01, -0.000000000000000e+00 } ); // itest=175: oxxxxx#17 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=176: ixxxxx#18 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=176: ixxxxx#18 nsp=-1 mass=400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=176: ixxxxx#18 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=176: ixxxxx#18 nsp=-1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=176: ixxxxx#18 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=176: ixxxxx#18 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=177: ixxxxx#18 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=177: ixxxxx#18 nsp=-1 mass=-400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=177: ixxxxx#18 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=177: ixxxxx#18 nsp=-1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=177: ixxxxx#18 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=177: ixxxxx#18 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=178: vxxxxx#18 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=178: vxxxxx#18 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=178: vxxxxx#18 nsp=-1 mass=400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=178: vxxxxx#18 nsp=-1 mass=400 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=178: vxxxxx#18 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=178: vxxxxx#18 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=179: vxxxxx#18 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=179: vxxxxx#18 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=179: vxxxxx#18 nsp=-1 mass=-400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=179: vxxxxx#18 nsp=-1 mass=-400 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=179: vxxxxx#18 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=179: vxxxxx#18 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=180: sxxxxx#18 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=180: sxxxxx#18 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=180: sxxxxx#18 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=180: sxxxxx#18 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=180: sxxxxx#18 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=180: sxxxxx#18 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=181: sxxxxx#18 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=181: sxxxxx#18 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=181: sxxxxx#18 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=181: sxxxxx#18 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=181: sxxxxx#18 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=181: sxxxxx#18 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=182: oxxxxx#18 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=182: oxxxxx#18 nsp=-1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=182: oxxxxx#18 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=182: oxxxxx#18 nsp=-1 mass=400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=182: oxxxxx#18 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=182: oxxxxx#18 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=183: oxxxxx#18 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=183: oxxxxx#18 nsp=-1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=183: oxxxxx#18 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=183: oxxxxx#18 nsp=-1 mass=-400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=183: oxxxxx#18 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=183: oxxxxx#18 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=184: ixxxxx#19 nsp=-1 mass=400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=184: ixxxxx#19 nsp=-1 mass=400 + 1.200000000000000e+01, -1.600000000000000e+01, // itest=184: ixxxxx#19 nsp=-1 mass=400 + -2.000000000000000e+01, -0.000000000000000e+00, // itest=184: ixxxxx#19 nsp=-1 mass=400 + -5.999999999999999e+00, 7.999999999999999e+00, // itest=184: ixxxxx#19 nsp=-1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=184: ixxxxx#19 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=185: ixxxxx#19 nsp=-1 mass=-400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=185: ixxxxx#19 nsp=-1 mass=-400 + 1.200000000000000e+01, -1.600000000000000e+01, // itest=185: ixxxxx#19 nsp=-1 mass=-400 + -2.000000000000000e+01, -0.000000000000000e+00, // itest=185: ixxxxx#19 nsp=-1 mass=-400 + 5.999999999999999e+00, -7.999999999999999e+00, // itest=185: ixxxxx#19 nsp=-1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00 } ); // itest=185: ixxxxx#19 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=186: vxxxxx#19 nsp=-1 mass=400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=186: vxxxxx#19 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=186: vxxxxx#19 nsp=-1 mass=400 + 0.000000000000000e+00, 5.656854249492381e-01, // itest=186: vxxxxx#19 nsp=-1 mass=400 + 0.000000000000000e+00, -4.242640687119285e-01, // itest=186: vxxxxx#19 nsp=-1 mass=400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=186: vxxxxx#19 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=187: vxxxxx#19 nsp=-1 mass=-400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=187: vxxxxx#19 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=187: vxxxxx#19 nsp=-1 mass=-400 + -0.000000000000000e+00, 5.656854249492381e-01, // itest=187: vxxxxx#19 nsp=-1 mass=-400 + -0.000000000000000e+00, -4.242640687119285e-01, // itest=187: vxxxxx#19 nsp=-1 mass=-400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=187: vxxxxx#19 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=188: sxxxxx#19 nsp=-1 mass=400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=188: sxxxxx#19 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=188: sxxxxx#19 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=188: sxxxxx#19 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=188: sxxxxx#19 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=188: sxxxxx#19 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=189: sxxxxx#19 nsp=-1 mass=-400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=189: sxxxxx#19 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=189: sxxxxx#19 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=189: sxxxxx#19 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=189: sxxxxx#19 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=189: sxxxxx#19 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=190: oxxxxx#19 nsp=-1 mass=400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=190: oxxxxx#19 nsp=-1 mass=400 + -5.999999999999999e+00, -7.999999999999999e+00, // itest=190: oxxxxx#19 nsp=-1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=190: oxxxxx#19 nsp=-1 mass=400 + 1.200000000000000e+01, 1.600000000000000e+01, // itest=190: oxxxxx#19 nsp=-1 mass=400 + -2.000000000000000e+01, -0.000000000000000e+00 } ); // itest=190: oxxxxx#19 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=191: oxxxxx#19 nsp=-1 mass=-400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=191: oxxxxx#19 nsp=-1 mass=-400 + 5.999999999999999e+00, 7.999999999999999e+00, // itest=191: oxxxxx#19 nsp=-1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00, // itest=191: oxxxxx#19 nsp=-1 mass=-400 + 1.200000000000000e+01, 1.600000000000000e+01, // itest=191: oxxxxx#19 nsp=-1 mass=-400 + -2.000000000000000e+01, -0.000000000000000e+00 } ); // itest=191: oxxxxx#19 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=192: ixxxxx#20 nsp=-1 mass=400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=192: ixxxxx#20 nsp=-1 mass=400 + -1.600000000000000e+01, 1.200000000000000e+01, // itest=192: ixxxxx#20 nsp=-1 mass=400 + -2.000000000000000e+01, -0.000000000000000e+00, // itest=192: ixxxxx#20 nsp=-1 mass=400 + 7.999999999999999e+00, -5.999999999999999e+00, // itest=192: ixxxxx#20 nsp=-1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=192: ixxxxx#20 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=193: ixxxxx#20 nsp=-1 mass=-400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=193: ixxxxx#20 nsp=-1 mass=-400 + -1.600000000000000e+01, 1.200000000000000e+01, // itest=193: ixxxxx#20 nsp=-1 mass=-400 + -2.000000000000000e+01, -0.000000000000000e+00, // itest=193: ixxxxx#20 nsp=-1 mass=-400 + -7.999999999999999e+00, 5.999999999999999e+00, // itest=193: ixxxxx#20 nsp=-1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00 } ); // itest=193: ixxxxx#20 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=194: vxxxxx#20 nsp=-1 mass=400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=194: vxxxxx#20 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=194: vxxxxx#20 nsp=-1 mass=400 + 0.000000000000000e+00, -4.242640687119285e-01, // itest=194: vxxxxx#20 nsp=-1 mass=400 + 0.000000000000000e+00, 5.656854249492381e-01, // itest=194: vxxxxx#20 nsp=-1 mass=400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=194: vxxxxx#20 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=195: vxxxxx#20 nsp=-1 mass=-400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=195: vxxxxx#20 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=195: vxxxxx#20 nsp=-1 mass=-400 + 0.000000000000000e+00, -4.242640687119285e-01, // itest=195: vxxxxx#20 nsp=-1 mass=-400 + 0.000000000000000e+00, 5.656854249492381e-01, // itest=195: vxxxxx#20 nsp=-1 mass=-400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=195: vxxxxx#20 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=196: sxxxxx#20 nsp=-1 mass=400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=196: sxxxxx#20 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=196: sxxxxx#20 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=196: sxxxxx#20 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=196: sxxxxx#20 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=196: sxxxxx#20 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=197: sxxxxx#20 nsp=-1 mass=-400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=197: sxxxxx#20 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=197: sxxxxx#20 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=197: sxxxxx#20 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=197: sxxxxx#20 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=197: sxxxxx#20 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=198: oxxxxx#20 nsp=-1 mass=400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=198: oxxxxx#20 nsp=-1 mass=400 + 7.999999999999999e+00, 5.999999999999999e+00, // itest=198: oxxxxx#20 nsp=-1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=198: oxxxxx#20 nsp=-1 mass=400 + -1.600000000000000e+01, -1.200000000000000e+01, // itest=198: oxxxxx#20 nsp=-1 mass=400 + -2.000000000000000e+01, -0.000000000000000e+00 } ); // itest=198: oxxxxx#20 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=199: oxxxxx#20 nsp=-1 mass=-400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=199: oxxxxx#20 nsp=-1 mass=-400 + -7.999999999999999e+00, -5.999999999999999e+00, // itest=199: oxxxxx#20 nsp=-1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00, // itest=199: oxxxxx#20 nsp=-1 mass=-400 + -1.600000000000000e+01, -1.200000000000000e+01, // itest=199: oxxxxx#20 nsp=-1 mass=-400 + -2.000000000000000e+01, -0.000000000000000e+00 } ); // itest=199: oxxxxx#20 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=200: ixxxxx#21 nsp=-1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=200: ixxxxx#21 nsp=-1 mass=400 + 9.863939238321439e+00, -1.052153518754287e+01, // itest=200: ixxxxx#21 nsp=-1 mass=400 + -2.433105012119288e+01, -0.000000000000000e+00, // itest=200: ixxxxx#21 nsp=-1 mass=400 + -4.931969619160719e+00, 5.260767593771432e+00, // itest=200: ixxxxx#21 nsp=-1 mass=400 + 1.216552506059644e+01, 0.000000000000000e+00 } ); // itest=200: ixxxxx#21 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=201: ixxxxx#21 nsp=-1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=201: ixxxxx#21 nsp=-1 mass=-400 + 9.863939238321439e+00, -1.052153518754287e+01, // itest=201: ixxxxx#21 nsp=-1 mass=-400 + -2.433105012119288e+01, -0.000000000000000e+00, // itest=201: ixxxxx#21 nsp=-1 mass=-400 + 4.931969619160719e+00, -5.260767593771432e+00, // itest=201: ixxxxx#21 nsp=-1 mass=-400 + -1.216552506059644e+01, -0.000000000000000e+00 } ); // itest=201: ixxxxx#21 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=202: vxxxxx#21 nsp=-1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=202: vxxxxx#21 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=202: vxxxxx#21 nsp=-1 mass=400 + -2.321373168788980e-01, 5.158607041753289e-01, // itest=202: vxxxxx#21 nsp=-1 mass=400 + -2.476131380041579e-01, -4.836194101643708e-01, // itest=202: vxxxxx#21 nsp=-1 mass=400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=202: vxxxxx#21 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=203: vxxxxx#21 nsp=-1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=203: vxxxxx#21 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=203: vxxxxx#21 nsp=-1 mass=-400 + -2.321373168788980e-01, 5.158607041753289e-01, // itest=203: vxxxxx#21 nsp=-1 mass=-400 + -2.476131380041579e-01, -4.836194101643708e-01, // itest=203: vxxxxx#21 nsp=-1 mass=-400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=203: vxxxxx#21 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=204: sxxxxx#21 nsp=-1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=204: sxxxxx#21 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=204: sxxxxx#21 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=204: sxxxxx#21 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=204: sxxxxx#21 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=204: sxxxxx#21 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=205: sxxxxx#21 nsp=-1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=205: sxxxxx#21 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=205: sxxxxx#21 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=205: sxxxxx#21 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=205: sxxxxx#21 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=205: sxxxxx#21 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=206: oxxxxx#21 nsp=-1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=206: oxxxxx#21 nsp=-1 mass=400 + -4.931969619160719e+00, -5.260767593771432e+00, // itest=206: oxxxxx#21 nsp=-1 mass=400 + 1.216552506059644e+01, 0.000000000000000e+00, // itest=206: oxxxxx#21 nsp=-1 mass=400 + 9.863939238321439e+00, 1.052153518754287e+01, // itest=206: oxxxxx#21 nsp=-1 mass=400 + -2.433105012119288e+01, -0.000000000000000e+00 } ); // itest=206: oxxxxx#21 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=207: oxxxxx#21 nsp=-1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=207: oxxxxx#21 nsp=-1 mass=-400 + 4.931969619160719e+00, 5.260767593771432e+00, // itest=207: oxxxxx#21 nsp=-1 mass=-400 + -1.216552506059644e+01, -0.000000000000000e+00, // itest=207: oxxxxx#21 nsp=-1 mass=-400 + 9.863939238321439e+00, 1.052153518754287e+01, // itest=207: oxxxxx#21 nsp=-1 mass=-400 + -2.433105012119288e+01, -0.000000000000000e+00 } ); // itest=207: oxxxxx#21 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=208: ixxxxx#22 nsp=-1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=208: ixxxxx#22 nsp=-1 mass=400 + 1.664100588675688e+01, -1.775040627920733e+01, // itest=208: ixxxxx#22 nsp=-1 mass=400 + -1.442220510185596e+01, -0.000000000000000e+00, // itest=208: ixxxxx#22 nsp=-1 mass=400 + -8.320502943378436e+00, 8.875203139603666e+00, // itest=208: ixxxxx#22 nsp=-1 mass=400 + 7.211102550927978e+00, 0.000000000000000e+00 } ); // itest=208: ixxxxx#22 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=209: ixxxxx#22 nsp=-1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=209: ixxxxx#22 nsp=-1 mass=-400 + 1.664100588675688e+01, -1.775040627920733e+01, // itest=209: ixxxxx#22 nsp=-1 mass=-400 + -1.442220510185596e+01, -0.000000000000000e+00, // itest=209: ixxxxx#22 nsp=-1 mass=-400 + 8.320502943378436e+00, -8.875203139603666e+00, // itest=209: ixxxxx#22 nsp=-1 mass=-400 + -7.211102550927978e+00, -0.000000000000000e+00 } ); // itest=209: ixxxxx#22 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=210: vxxxxx#22 nsp=-1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=210: vxxxxx#22 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=210: vxxxxx#22 nsp=-1 mass=400 + 2.321373168788980e-01, 5.158607041753289e-01, // itest=210: vxxxxx#22 nsp=-1 mass=400 + 2.476131380041579e-01, -4.836194101643708e-01, // itest=210: vxxxxx#22 nsp=-1 mass=400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=210: vxxxxx#22 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=211: vxxxxx#22 nsp=-1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=211: vxxxxx#22 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=211: vxxxxx#22 nsp=-1 mass=-400 + 2.321373168788980e-01, 5.158607041753289e-01, // itest=211: vxxxxx#22 nsp=-1 mass=-400 + 2.476131380041579e-01, -4.836194101643708e-01, // itest=211: vxxxxx#22 nsp=-1 mass=-400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=211: vxxxxx#22 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=212: sxxxxx#22 nsp=-1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=212: sxxxxx#22 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=212: sxxxxx#22 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=212: sxxxxx#22 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=212: sxxxxx#22 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=212: sxxxxx#22 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=213: sxxxxx#22 nsp=-1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=213: sxxxxx#22 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=213: sxxxxx#22 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=213: sxxxxx#22 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=213: sxxxxx#22 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=213: sxxxxx#22 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=214: oxxxxx#22 nsp=-1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=214: oxxxxx#22 nsp=-1 mass=400 + -8.320502943378436e+00, -8.875203139603666e+00, // itest=214: oxxxxx#22 nsp=-1 mass=400 + 7.211102550927978e+00, 0.000000000000000e+00, // itest=214: oxxxxx#22 nsp=-1 mass=400 + 1.664100588675688e+01, 1.775040627920733e+01, // itest=214: oxxxxx#22 nsp=-1 mass=400 + -1.442220510185596e+01, -0.000000000000000e+00 } ); // itest=214: oxxxxx#22 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=215: oxxxxx#22 nsp=-1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=215: oxxxxx#22 nsp=-1 mass=-400 + 8.320502943378436e+00, 8.875203139603666e+00, // itest=215: oxxxxx#22 nsp=-1 mass=-400 + -7.211102550927978e+00, -0.000000000000000e+00, // itest=215: oxxxxx#22 nsp=-1 mass=-400 + 1.664100588675688e+01, 1.775040627920733e+01, // itest=215: oxxxxx#22 nsp=-1 mass=-400 + -1.442220510185596e+01, -0.000000000000000e+00 } ); // itest=215: oxxxxx#22 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=216: ixxxxx#23 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=216: ixxxxx#23 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=216: ixxxxx#23 nsp=-1 mass=500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=216: ixxxxx#23 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=216: ixxxxx#23 nsp=-1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=216: ixxxxx#23 nsp=-1 mass=500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=217: ixxxxx#23 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=217: ixxxxx#23 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=217: ixxxxx#23 nsp=-1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=217: ixxxxx#23 nsp=-1 mass=-500 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=217: ixxxxx#23 nsp=-1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=217: ixxxxx#23 nsp=-1 mass=-500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=218: vxxxxx#23 nsp=-1 mass=500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=218: vxxxxx#23 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=218: vxxxxx#23 nsp=-1 mass=500 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=218: vxxxxx#23 nsp=-1 mass=500 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=218: vxxxxx#23 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=218: vxxxxx#23 nsp=-1 mass=500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=219: vxxxxx#23 nsp=-1 mass=-500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=219: vxxxxx#23 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=219: vxxxxx#23 nsp=-1 mass=-500 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=219: vxxxxx#23 nsp=-1 mass=-500 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=219: vxxxxx#23 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=219: vxxxxx#23 nsp=-1 mass=-500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=220: sxxxxx#23 nsp=-1 mass=500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=220: sxxxxx#23 nsp=-1 mass=500 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=220: sxxxxx#23 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=220: sxxxxx#23 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=220: sxxxxx#23 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=220: sxxxxx#23 nsp=-1 mass=500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=221: sxxxxx#23 nsp=-1 mass=-500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=221: sxxxxx#23 nsp=-1 mass=-500 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=221: sxxxxx#23 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=221: sxxxxx#23 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=221: sxxxxx#23 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=221: sxxxxx#23 nsp=-1 mass=-500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=222: oxxxxx#23 nsp=-1 mass=500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=222: oxxxxx#23 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=222: oxxxxx#23 nsp=-1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=222: oxxxxx#23 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=222: oxxxxx#23 nsp=-1 mass=500 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=222: oxxxxx#23 nsp=-1 mass=500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=223: oxxxxx#23 nsp=-1 mass=-500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=223: oxxxxx#23 nsp=-1 mass=-500 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=223: oxxxxx#23 nsp=-1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=223: oxxxxx#23 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=223: oxxxxx#23 nsp=-1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=223: oxxxxx#23 nsp=-1 mass=-500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=224: ixxxxx#24 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=224: ixxxxx#24 nsp=-1 mass=400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=224: ixxxxx#24 nsp=-1 mass=400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=224: ixxxxx#24 nsp=-1 mass=400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=224: ixxxxx#24 nsp=-1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00 } ); // itest=224: ixxxxx#24 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=225: ixxxxx#24 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=225: ixxxxx#24 nsp=-1 mass=-400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=225: ixxxxx#24 nsp=-1 mass=-400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=225: ixxxxx#24 nsp=-1 mass=-400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=225: ixxxxx#24 nsp=-1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00 } ); // itest=225: ixxxxx#24 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=226: vxxxxx#24 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=226: vxxxxx#24 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=226: vxxxxx#24 nsp=-1 mass=400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=226: vxxxxx#24 nsp=-1 mass=400 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=226: vxxxxx#24 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=226: vxxxxx#24 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=227: vxxxxx#24 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=227: vxxxxx#24 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=227: vxxxxx#24 nsp=-1 mass=-400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=227: vxxxxx#24 nsp=-1 mass=-400 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=227: vxxxxx#24 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=227: vxxxxx#24 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=228: sxxxxx#24 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=228: sxxxxx#24 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=228: sxxxxx#24 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=228: sxxxxx#24 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=228: sxxxxx#24 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=228: sxxxxx#24 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=229: sxxxxx#24 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=229: sxxxxx#24 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=229: sxxxxx#24 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=229: sxxxxx#24 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=229: sxxxxx#24 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=229: sxxxxx#24 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=230: oxxxxx#24 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=230: oxxxxx#24 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=230: oxxxxx#24 nsp=-1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=230: oxxxxx#24 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=230: oxxxxx#24 nsp=-1 mass=400 + -2.828427124746190e+01, -0.000000000000000e+00 } ); // itest=230: oxxxxx#24 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=231: oxxxxx#24 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=231: oxxxxx#24 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=231: oxxxxx#24 nsp=-1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=231: oxxxxx#24 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=231: oxxxxx#24 nsp=-1 mass=-400 + -2.828427124746190e+01, -0.000000000000000e+00 } ); // itest=231: oxxxxx#24 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=232: ixxxxx#25 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=232: ixxxxx#25 nsp=-1 mass=400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=232: ixxxxx#25 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=232: ixxxxx#25 nsp=-1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=232: ixxxxx#25 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=232: ixxxxx#25 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=233: ixxxxx#25 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=233: ixxxxx#25 nsp=-1 mass=-400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=233: ixxxxx#25 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=233: ixxxxx#25 nsp=-1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=233: ixxxxx#25 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=233: ixxxxx#25 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=234: vxxxxx#25 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=234: vxxxxx#25 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=234: vxxxxx#25 nsp=-1 mass=400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=234: vxxxxx#25 nsp=-1 mass=400 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=234: vxxxxx#25 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=234: vxxxxx#25 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=235: vxxxxx#25 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=235: vxxxxx#25 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=235: vxxxxx#25 nsp=-1 mass=-400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=235: vxxxxx#25 nsp=-1 mass=-400 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=235: vxxxxx#25 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=235: vxxxxx#25 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=236: sxxxxx#25 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=236: sxxxxx#25 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=236: sxxxxx#25 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=236: sxxxxx#25 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=236: sxxxxx#25 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=236: sxxxxx#25 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=237: sxxxxx#25 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=237: sxxxxx#25 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=237: sxxxxx#25 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=237: sxxxxx#25 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=237: sxxxxx#25 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=237: sxxxxx#25 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=238: oxxxxx#25 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=238: oxxxxx#25 nsp=-1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=238: oxxxxx#25 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=238: oxxxxx#25 nsp=-1 mass=400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=238: oxxxxx#25 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=238: oxxxxx#25 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=239: oxxxxx#25 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=239: oxxxxx#25 nsp=-1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=239: oxxxxx#25 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=239: oxxxxx#25 nsp=-1 mass=-400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=239: oxxxxx#25 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=239: oxxxxx#25 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=240: ixxxxx#26 nsp=-1 mass=400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=240: ixxxxx#26 nsp=-1 mass=400 + 1.200000000000000e+01, -1.600000000000000e+01, // itest=240: ixxxxx#26 nsp=-1 mass=400 + -2.000000000000000e+01, -0.000000000000000e+00, // itest=240: ixxxxx#26 nsp=-1 mass=400 + -5.999999999999999e+00, 7.999999999999999e+00, // itest=240: ixxxxx#26 nsp=-1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=240: ixxxxx#26 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=241: ixxxxx#26 nsp=-1 mass=-400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=241: ixxxxx#26 nsp=-1 mass=-400 + 1.200000000000000e+01, -1.600000000000000e+01, // itest=241: ixxxxx#26 nsp=-1 mass=-400 + -2.000000000000000e+01, -0.000000000000000e+00, // itest=241: ixxxxx#26 nsp=-1 mass=-400 + 5.999999999999999e+00, -7.999999999999999e+00, // itest=241: ixxxxx#26 nsp=-1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00 } ); // itest=241: ixxxxx#26 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=242: vxxxxx#26 nsp=-1 mass=400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=242: vxxxxx#26 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=242: vxxxxx#26 nsp=-1 mass=400 + 0.000000000000000e+00, 5.656854249492381e-01, // itest=242: vxxxxx#26 nsp=-1 mass=400 + 0.000000000000000e+00, -4.242640687119285e-01, // itest=242: vxxxxx#26 nsp=-1 mass=400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=242: vxxxxx#26 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=243: vxxxxx#26 nsp=-1 mass=-400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=243: vxxxxx#26 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=243: vxxxxx#26 nsp=-1 mass=-400 + -0.000000000000000e+00, 5.656854249492381e-01, // itest=243: vxxxxx#26 nsp=-1 mass=-400 + -0.000000000000000e+00, -4.242640687119285e-01, // itest=243: vxxxxx#26 nsp=-1 mass=-400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=243: vxxxxx#26 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=244: sxxxxx#26 nsp=-1 mass=400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=244: sxxxxx#26 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=244: sxxxxx#26 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=244: sxxxxx#26 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=244: sxxxxx#26 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=244: sxxxxx#26 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=245: sxxxxx#26 nsp=-1 mass=-400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=245: sxxxxx#26 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=245: sxxxxx#26 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=245: sxxxxx#26 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=245: sxxxxx#26 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=245: sxxxxx#26 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=246: oxxxxx#26 nsp=-1 mass=400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=246: oxxxxx#26 nsp=-1 mass=400 + -5.999999999999999e+00, -7.999999999999999e+00, // itest=246: oxxxxx#26 nsp=-1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=246: oxxxxx#26 nsp=-1 mass=400 + 1.200000000000000e+01, 1.600000000000000e+01, // itest=246: oxxxxx#26 nsp=-1 mass=400 + -2.000000000000000e+01, -0.000000000000000e+00 } ); // itest=246: oxxxxx#26 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=247: oxxxxx#26 nsp=-1 mass=-400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=247: oxxxxx#26 nsp=-1 mass=-400 + 5.999999999999999e+00, 7.999999999999999e+00, // itest=247: oxxxxx#26 nsp=-1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00, // itest=247: oxxxxx#26 nsp=-1 mass=-400 + 1.200000000000000e+01, 1.600000000000000e+01, // itest=247: oxxxxx#26 nsp=-1 mass=-400 + -2.000000000000000e+01, -0.000000000000000e+00 } ); // itest=247: oxxxxx#26 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=248: ixxxxx#27 nsp=-1 mass=400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=248: ixxxxx#27 nsp=-1 mass=400 + -1.600000000000000e+01, 1.200000000000000e+01, // itest=248: ixxxxx#27 nsp=-1 mass=400 + -2.000000000000000e+01, -0.000000000000000e+00, // itest=248: ixxxxx#27 nsp=-1 mass=400 + 7.999999999999999e+00, -5.999999999999999e+00, // itest=248: ixxxxx#27 nsp=-1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=248: ixxxxx#27 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=249: ixxxxx#27 nsp=-1 mass=-400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=249: ixxxxx#27 nsp=-1 mass=-400 + -1.600000000000000e+01, 1.200000000000000e+01, // itest=249: ixxxxx#27 nsp=-1 mass=-400 + -2.000000000000000e+01, -0.000000000000000e+00, // itest=249: ixxxxx#27 nsp=-1 mass=-400 + -7.999999999999999e+00, 5.999999999999999e+00, // itest=249: ixxxxx#27 nsp=-1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00 } ); // itest=249: ixxxxx#27 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=250: vxxxxx#27 nsp=-1 mass=400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=250: vxxxxx#27 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=250: vxxxxx#27 nsp=-1 mass=400 + 0.000000000000000e+00, -4.242640687119285e-01, // itest=250: vxxxxx#27 nsp=-1 mass=400 + 0.000000000000000e+00, 5.656854249492381e-01, // itest=250: vxxxxx#27 nsp=-1 mass=400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=250: vxxxxx#27 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=251: vxxxxx#27 nsp=-1 mass=-400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=251: vxxxxx#27 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=251: vxxxxx#27 nsp=-1 mass=-400 + 0.000000000000000e+00, -4.242640687119285e-01, // itest=251: vxxxxx#27 nsp=-1 mass=-400 + 0.000000000000000e+00, 5.656854249492381e-01, // itest=251: vxxxxx#27 nsp=-1 mass=-400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=251: vxxxxx#27 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=252: sxxxxx#27 nsp=-1 mass=400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=252: sxxxxx#27 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=252: sxxxxx#27 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=252: sxxxxx#27 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=252: sxxxxx#27 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=252: sxxxxx#27 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=253: sxxxxx#27 nsp=-1 mass=-400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=253: sxxxxx#27 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=253: sxxxxx#27 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=253: sxxxxx#27 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=253: sxxxxx#27 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=253: sxxxxx#27 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=254: oxxxxx#27 nsp=-1 mass=400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=254: oxxxxx#27 nsp=-1 mass=400 + 7.999999999999999e+00, 5.999999999999999e+00, // itest=254: oxxxxx#27 nsp=-1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=254: oxxxxx#27 nsp=-1 mass=400 + -1.600000000000000e+01, -1.200000000000000e+01, // itest=254: oxxxxx#27 nsp=-1 mass=400 + -2.000000000000000e+01, -0.000000000000000e+00 } ); // itest=254: oxxxxx#27 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=255: oxxxxx#27 nsp=-1 mass=-400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=255: oxxxxx#27 nsp=-1 mass=-400 + -7.999999999999999e+00, -5.999999999999999e+00, // itest=255: oxxxxx#27 nsp=-1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00, // itest=255: oxxxxx#27 nsp=-1 mass=-400 + -1.600000000000000e+01, -1.200000000000000e+01, // itest=255: oxxxxx#27 nsp=-1 mass=-400 + -2.000000000000000e+01, -0.000000000000000e+00 } ); // itest=255: oxxxxx#27 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=256: ixxxxx#28 nsp=-1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=256: ixxxxx#28 nsp=-1 mass=400 + 9.863939238321439e+00, -1.052153518754287e+01, // itest=256: ixxxxx#28 nsp=-1 mass=400 + -2.433105012119288e+01, -0.000000000000000e+00, // itest=256: ixxxxx#28 nsp=-1 mass=400 + -4.931969619160719e+00, 5.260767593771432e+00, // itest=256: ixxxxx#28 nsp=-1 mass=400 + 1.216552506059644e+01, 0.000000000000000e+00 } ); // itest=256: ixxxxx#28 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=257: ixxxxx#28 nsp=-1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=257: ixxxxx#28 nsp=-1 mass=-400 + 9.863939238321439e+00, -1.052153518754287e+01, // itest=257: ixxxxx#28 nsp=-1 mass=-400 + -2.433105012119288e+01, -0.000000000000000e+00, // itest=257: ixxxxx#28 nsp=-1 mass=-400 + 4.931969619160719e+00, -5.260767593771432e+00, // itest=257: ixxxxx#28 nsp=-1 mass=-400 + -1.216552506059644e+01, -0.000000000000000e+00 } ); // itest=257: ixxxxx#28 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=258: vxxxxx#28 nsp=-1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=258: vxxxxx#28 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=258: vxxxxx#28 nsp=-1 mass=400 + -2.321373168788980e-01, 5.158607041753289e-01, // itest=258: vxxxxx#28 nsp=-1 mass=400 + -2.476131380041579e-01, -4.836194101643708e-01, // itest=258: vxxxxx#28 nsp=-1 mass=400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=258: vxxxxx#28 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=259: vxxxxx#28 nsp=-1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=259: vxxxxx#28 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=259: vxxxxx#28 nsp=-1 mass=-400 + -2.321373168788980e-01, 5.158607041753289e-01, // itest=259: vxxxxx#28 nsp=-1 mass=-400 + -2.476131380041579e-01, -4.836194101643708e-01, // itest=259: vxxxxx#28 nsp=-1 mass=-400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=259: vxxxxx#28 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=260: sxxxxx#28 nsp=-1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=260: sxxxxx#28 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=260: sxxxxx#28 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=260: sxxxxx#28 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=260: sxxxxx#28 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=260: sxxxxx#28 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=261: sxxxxx#28 nsp=-1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=261: sxxxxx#28 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=261: sxxxxx#28 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=261: sxxxxx#28 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=261: sxxxxx#28 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=261: sxxxxx#28 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=262: oxxxxx#28 nsp=-1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=262: oxxxxx#28 nsp=-1 mass=400 + -4.931969619160719e+00, -5.260767593771432e+00, // itest=262: oxxxxx#28 nsp=-1 mass=400 + 1.216552506059644e+01, 0.000000000000000e+00, // itest=262: oxxxxx#28 nsp=-1 mass=400 + 9.863939238321439e+00, 1.052153518754287e+01, // itest=262: oxxxxx#28 nsp=-1 mass=400 + -2.433105012119288e+01, -0.000000000000000e+00 } ); // itest=262: oxxxxx#28 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=263: oxxxxx#28 nsp=-1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=263: oxxxxx#28 nsp=-1 mass=-400 + 4.931969619160719e+00, 5.260767593771432e+00, // itest=263: oxxxxx#28 nsp=-1 mass=-400 + -1.216552506059644e+01, -0.000000000000000e+00, // itest=263: oxxxxx#28 nsp=-1 mass=-400 + 9.863939238321439e+00, 1.052153518754287e+01, // itest=263: oxxxxx#28 nsp=-1 mass=-400 + -2.433105012119288e+01, -0.000000000000000e+00 } ); // itest=263: oxxxxx#28 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=264: ixxxxx#29 nsp=-1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=264: ixxxxx#29 nsp=-1 mass=400 + 1.664100588675688e+01, -1.775040627920733e+01, // itest=264: ixxxxx#29 nsp=-1 mass=400 + -1.442220510185596e+01, -0.000000000000000e+00, // itest=264: ixxxxx#29 nsp=-1 mass=400 + -8.320502943378436e+00, 8.875203139603666e+00, // itest=264: ixxxxx#29 nsp=-1 mass=400 + 7.211102550927978e+00, 0.000000000000000e+00 } ); // itest=264: ixxxxx#29 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=265: ixxxxx#29 nsp=-1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=265: ixxxxx#29 nsp=-1 mass=-400 + 1.664100588675688e+01, -1.775040627920733e+01, // itest=265: ixxxxx#29 nsp=-1 mass=-400 + -1.442220510185596e+01, -0.000000000000000e+00, // itest=265: ixxxxx#29 nsp=-1 mass=-400 + 8.320502943378436e+00, -8.875203139603666e+00, // itest=265: ixxxxx#29 nsp=-1 mass=-400 + -7.211102550927978e+00, -0.000000000000000e+00 } ); // itest=265: ixxxxx#29 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=266: vxxxxx#29 nsp=-1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=266: vxxxxx#29 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=266: vxxxxx#29 nsp=-1 mass=400 + 2.321373168788980e-01, 5.158607041753289e-01, // itest=266: vxxxxx#29 nsp=-1 mass=400 + 2.476131380041579e-01, -4.836194101643708e-01, // itest=266: vxxxxx#29 nsp=-1 mass=400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=266: vxxxxx#29 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=267: vxxxxx#29 nsp=-1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=267: vxxxxx#29 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=267: vxxxxx#29 nsp=-1 mass=-400 + 2.321373168788980e-01, 5.158607041753289e-01, // itest=267: vxxxxx#29 nsp=-1 mass=-400 + 2.476131380041579e-01, -4.836194101643708e-01, // itest=267: vxxxxx#29 nsp=-1 mass=-400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=267: vxxxxx#29 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=268: sxxxxx#29 nsp=-1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=268: sxxxxx#29 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=268: sxxxxx#29 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=268: sxxxxx#29 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=268: sxxxxx#29 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=268: sxxxxx#29 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=269: sxxxxx#29 nsp=-1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=269: sxxxxx#29 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=269: sxxxxx#29 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=269: sxxxxx#29 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=269: sxxxxx#29 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=269: sxxxxx#29 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=270: oxxxxx#29 nsp=-1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=270: oxxxxx#29 nsp=-1 mass=400 + -8.320502943378436e+00, -8.875203139603666e+00, // itest=270: oxxxxx#29 nsp=-1 mass=400 + 7.211102550927978e+00, 0.000000000000000e+00, // itest=270: oxxxxx#29 nsp=-1 mass=400 + 1.664100588675688e+01, 1.775040627920733e+01, // itest=270: oxxxxx#29 nsp=-1 mass=400 + -1.442220510185596e+01, -0.000000000000000e+00 } ); // itest=270: oxxxxx#29 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=271: oxxxxx#29 nsp=-1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=271: oxxxxx#29 nsp=-1 mass=-400 + 8.320502943378436e+00, 8.875203139603666e+00, // itest=271: oxxxxx#29 nsp=-1 mass=-400 + -7.211102550927978e+00, -0.000000000000000e+00, // itest=271: oxxxxx#29 nsp=-1 mass=-400 + 1.664100588675688e+01, 1.775040627920733e+01, // itest=271: oxxxxx#29 nsp=-1 mass=-400 + -1.442220510185596e+01, -0.000000000000000e+00 } ); // itest=271: oxxxxx#29 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=272: ixxxxx#30 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=272: ixxxxx#30 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=272: ixxxxx#30 nsp=-1 mass=500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=272: ixxxxx#30 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=272: ixxxxx#30 nsp=-1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=272: ixxxxx#30 nsp=-1 mass=500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=273: ixxxxx#30 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=273: ixxxxx#30 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=273: ixxxxx#30 nsp=-1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=273: ixxxxx#30 nsp=-1 mass=-500 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=273: ixxxxx#30 nsp=-1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=273: ixxxxx#30 nsp=-1 mass=-500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=274: vxxxxx#30 nsp=-1 mass=500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=274: vxxxxx#30 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=274: vxxxxx#30 nsp=-1 mass=500 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=274: vxxxxx#30 nsp=-1 mass=500 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=274: vxxxxx#30 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=274: vxxxxx#30 nsp=-1 mass=500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=275: vxxxxx#30 nsp=-1 mass=-500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=275: vxxxxx#30 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=275: vxxxxx#30 nsp=-1 mass=-500 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=275: vxxxxx#30 nsp=-1 mass=-500 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=275: vxxxxx#30 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=275: vxxxxx#30 nsp=-1 mass=-500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=276: sxxxxx#30 nsp=-1 mass=500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=276: sxxxxx#30 nsp=-1 mass=500 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=276: sxxxxx#30 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=276: sxxxxx#30 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=276: sxxxxx#30 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=276: sxxxxx#30 nsp=-1 mass=500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=277: sxxxxx#30 nsp=-1 mass=-500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=277: sxxxxx#30 nsp=-1 mass=-500 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=277: sxxxxx#30 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=277: sxxxxx#30 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=277: sxxxxx#30 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=277: sxxxxx#30 nsp=-1 mass=-500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=278: oxxxxx#30 nsp=-1 mass=500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=278: oxxxxx#30 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=278: oxxxxx#30 nsp=-1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=278: oxxxxx#30 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=278: oxxxxx#30 nsp=-1 mass=500 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=278: oxxxxx#30 nsp=-1 mass=500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=279: oxxxxx#30 nsp=-1 mass=-500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=279: oxxxxx#30 nsp=-1 mass=-500 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=279: oxxxxx#30 nsp=-1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=279: oxxxxx#30 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=279: oxxxxx#30 nsp=-1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=279: oxxxxx#30 nsp=-1 mass=-500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=280: ixxxxx#31 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=280: ixxxxx#31 nsp=-1 mass=400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=280: ixxxxx#31 nsp=-1 mass=400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=280: ixxxxx#31 nsp=-1 mass=400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=280: ixxxxx#31 nsp=-1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00 } ); // itest=280: ixxxxx#31 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=281: ixxxxx#31 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=281: ixxxxx#31 nsp=-1 mass=-400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=281: ixxxxx#31 nsp=-1 mass=-400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=281: ixxxxx#31 nsp=-1 mass=-400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=281: ixxxxx#31 nsp=-1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00 } ); // itest=281: ixxxxx#31 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=282: vxxxxx#31 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=282: vxxxxx#31 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=282: vxxxxx#31 nsp=-1 mass=400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=282: vxxxxx#31 nsp=-1 mass=400 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=282: vxxxxx#31 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=282: vxxxxx#31 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=283: vxxxxx#31 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=283: vxxxxx#31 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=283: vxxxxx#31 nsp=-1 mass=-400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=283: vxxxxx#31 nsp=-1 mass=-400 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=283: vxxxxx#31 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=283: vxxxxx#31 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=284: sxxxxx#31 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=284: sxxxxx#31 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=284: sxxxxx#31 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=284: sxxxxx#31 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=284: sxxxxx#31 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=284: sxxxxx#31 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=285: sxxxxx#31 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=285: sxxxxx#31 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=285: sxxxxx#31 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=285: sxxxxx#31 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=285: sxxxxx#31 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=285: sxxxxx#31 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=286: oxxxxx#31 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=286: oxxxxx#31 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=286: oxxxxx#31 nsp=-1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=286: oxxxxx#31 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=286: oxxxxx#31 nsp=-1 mass=400 + -2.828427124746190e+01, -0.000000000000000e+00 } ); // itest=286: oxxxxx#31 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=287: oxxxxx#31 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=287: oxxxxx#31 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=287: oxxxxx#31 nsp=-1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=287: oxxxxx#31 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=287: oxxxxx#31 nsp=-1 mass=-400 + -2.828427124746190e+01, -0.000000000000000e+00 } ); // itest=287: oxxxxx#31 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=288: ixxxxx#0 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=288: ixxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=288: ixxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=288: ixxxxx#0 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=288: ixxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=288: ixxxxx#0 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=289: ixxxxx#0 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=289: ixxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=289: ixxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=289: ixxxxx#0 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=289: ixxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=289: ixxxxx#0 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=290: ipzxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=290: ipzxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=290: ipzxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=290: ipzxxx#0 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=290: ipzxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=290: ipzxxx#0 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=291: vxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=291: vxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=291: vxxxxx#0 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=291: vxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=291: vxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=291: vxxxxx#0 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=292: vxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=292: vxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=292: vxxxxx#0 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=292: vxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=292: vxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=292: vxxxxx#0 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=293: sxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=293: sxxxxx#0 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=293: sxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=293: sxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=293: sxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=293: sxxxxx#0 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=294: sxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=294: sxxxxx#0 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=294: sxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=294: sxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=294: sxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=294: sxxxxx#0 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=295: oxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=295: oxxxxx#0 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=295: oxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=295: oxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=295: oxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=295: oxxxxx#0 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=296: oxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=296: oxxxxx#0 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=296: oxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=296: oxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=296: oxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=296: oxxxxx#0 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=297: opzxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=297: opzxxx#0 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=297: opzxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=297: opzxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=297: opzxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=297: opzxxx#0 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=298: ixxxxx#1 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=298: ixxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=298: ixxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=298: ixxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=298: ixxxxx#1 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=298: ixxxxx#1 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=299: ixxxxx#1 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=299: ixxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=299: ixxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=299: ixxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=299: ixxxxx#1 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=299: ixxxxx#1 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=300: imzxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=300: imzxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=300: imzxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=300: imzxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=300: imzxxx#1 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=300: imzxxx#1 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=301: vxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=301: vxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=301: vxxxxx#1 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=301: vxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=301: vxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=301: vxxxxx#1 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=302: vxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=302: vxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=302: vxxxxx#1 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=302: vxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=302: vxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=302: vxxxxx#1 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=303: sxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=303: sxxxxx#1 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=303: sxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=303: sxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=303: sxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=303: sxxxxx#1 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=304: sxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=304: sxxxxx#1 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=304: sxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=304: sxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=304: sxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=304: sxxxxx#1 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=305: oxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=305: oxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=305: oxxxxx#1 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=305: oxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=305: oxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=305: oxxxxx#1 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=306: oxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=306: oxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=306: oxxxxx#1 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=306: oxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=306: oxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=306: oxxxxx#1 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=307: omzxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=307: omzxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=307: omzxxx#1 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=307: omzxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=307: omzxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=307: omzxxx#1 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=308: ixxxxx#2 nsp=1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=308: ixxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=308: ixxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=308: ixxxxx#2 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=308: ixxxxx#2 nsp=1 mass=0 + 1.341640786499874e+01, 1.788854381999831e+01 } ); // itest=308: ixxxxx#2 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=309: ixxxxx#2 nsp=1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=309: ixxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=309: ixxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=309: ixxxxx#2 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=309: ixxxxx#2 nsp=1 mass=0 + 1.341640786499874e+01, 1.788854381999831e+01 } ); // itest=309: ixxxxx#2 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=310: ixzxxx#2 nsp=1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=310: ixzxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=310: ixzxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=310: ixzxxx#2 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=310: ixzxxx#2 nsp=1 mass=0 + 1.341640786499874e+01, 1.788854381999832e+01 } ); // itest=310: ixzxxx#2 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=311: vxxxxx#2 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=311: vxxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=311: vxxxxx#2 nsp=1 mass=0 + -0.000000000000000e+00, -5.656854249492381e-01, // itest=311: vxxxxx#2 nsp=1 mass=0 + -0.000000000000000e+00, 4.242640687119285e-01, // itest=311: vxxxxx#2 nsp=1 mass=0 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=311: vxxxxx#2 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=312: vxxxxx#2 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=312: vxxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=312: vxxxxx#2 nsp=1 mass=0 + -0.000000000000000e+00, -5.656854249492381e-01, // itest=312: vxxxxx#2 nsp=1 mass=0 + -0.000000000000000e+00, 4.242640687119285e-01, // itest=312: vxxxxx#2 nsp=1 mass=0 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=312: vxxxxx#2 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=313: sxxxxx#2 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=313: sxxxxx#2 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=313: sxxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=313: sxxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=313: sxxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=313: sxxxxx#2 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=314: sxxxxx#2 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=314: sxxxxx#2 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=314: sxxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=314: sxxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=314: sxxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=314: sxxxxx#2 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=315: oxxxxx#2 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=315: oxxxxx#2 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=315: oxxxxx#2 nsp=1 mass=0 + 1.341640786499874e+01, -1.788854381999831e+01, // itest=315: oxxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=315: oxxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=315: oxxxxx#2 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=316: oxxxxx#2 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=316: oxxxxx#2 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=316: oxxxxx#2 nsp=1 mass=0 + 1.341640786499874e+01, -1.788854381999831e+01, // itest=316: oxxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=316: oxxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=316: oxxxxx#2 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=317: oxzxxx#2 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=317: oxzxxx#2 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=317: oxzxxx#2 nsp=1 mass=0 + 1.341640786499874e+01, -1.788854381999832e+01, // itest=317: oxzxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=317: oxzxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=317: oxzxxx#2 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=318: ixxxxx#3 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=318: ixxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=318: ixxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=318: ixxxxx#3 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=318: ixxxxx#3 nsp=1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=318: ixxxxx#3 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=319: ixxxxx#3 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=319: ixxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=319: ixxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=319: ixxxxx#3 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=319: ixxxxx#3 nsp=1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=319: ixxxxx#3 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=320: ixzxxx#3 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=320: ixzxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=320: ixzxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=320: ixzxxx#3 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=320: ixzxxx#3 nsp=1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=320: ixzxxx#3 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=321: vxxxxx#3 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=321: vxxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=321: vxxxxx#3 nsp=1 mass=0 + -3.394112549695428e-01, -5.656854249492381e-01, // itest=321: vxxxxx#3 nsp=1 mass=0 + -4.525483399593904e-01, 4.242640687119285e-01, // itest=321: vxxxxx#3 nsp=1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=321: vxxxxx#3 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=322: vxxxxx#3 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=322: vxxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=322: vxxxxx#3 nsp=1 mass=0 + -3.394112549695428e-01, -5.656854249492381e-01, // itest=322: vxxxxx#3 nsp=1 mass=0 + -4.525483399593904e-01, 4.242640687119285e-01, // itest=322: vxxxxx#3 nsp=1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=322: vxxxxx#3 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=323: sxxxxx#3 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=323: sxxxxx#3 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=323: sxxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=323: sxxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=323: sxxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=323: sxxxxx#3 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=324: sxxxxx#3 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=324: sxxxxx#3 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=324: sxxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=324: sxxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=324: sxxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=324: sxxxxx#3 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=325: oxxxxx#3 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=325: oxxxxx#3 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=325: oxxxxx#3 nsp=1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=325: oxxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=325: oxxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=325: oxxxxx#3 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=326: oxxxxx#3 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=326: oxxxxx#3 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=326: oxxxxx#3 nsp=1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=326: oxxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=326: oxxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=326: oxxxxx#3 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=327: oxzxxx#3 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=327: oxzxxx#3 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=327: oxzxxx#3 nsp=1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=327: oxzxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=327: oxzxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=327: oxzxxx#3 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=328: ixxxxx#4 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=328: ixxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=328: ixxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=328: ixxxxx#4 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=328: ixxxxx#4 nsp=1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01 } ); // itest=328: ixxxxx#4 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=329: ixxxxx#4 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=329: ixxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=329: ixxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=329: ixxxxx#4 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=329: ixxxxx#4 nsp=1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01 } ); // itest=329: ixxxxx#4 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=330: ixzxxx#4 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=330: ixzxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=330: ixzxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=330: ixzxxx#4 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=330: ixzxxx#4 nsp=1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01 } ); // itest=330: ixzxxx#4 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=331: vxxxxx#4 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=331: vxxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=331: vxxxxx#4 nsp=1 mass=0 + 3.394112549695428e-01, -5.656854249492381e-01, // itest=331: vxxxxx#4 nsp=1 mass=0 + 4.525483399593904e-01, 4.242640687119285e-01, // itest=331: vxxxxx#4 nsp=1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=331: vxxxxx#4 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=332: vxxxxx#4 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=332: vxxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=332: vxxxxx#4 nsp=1 mass=0 + 3.394112549695428e-01, -5.656854249492381e-01, // itest=332: vxxxxx#4 nsp=1 mass=0 + 4.525483399593904e-01, 4.242640687119285e-01, // itest=332: vxxxxx#4 nsp=1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=332: vxxxxx#4 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=333: sxxxxx#4 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=333: sxxxxx#4 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=333: sxxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=333: sxxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=333: sxxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=333: sxxxxx#4 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=334: sxxxxx#4 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=334: sxxxxx#4 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=334: sxxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=334: sxxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=334: sxxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=334: sxxxxx#4 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=335: oxxxxx#4 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=335: oxxxxx#4 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=335: oxxxxx#4 nsp=1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=335: oxxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=335: oxxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=335: oxxxxx#4 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=336: oxxxxx#4 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=336: oxxxxx#4 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=336: oxxxxx#4 nsp=1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=336: oxxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=336: oxxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=336: oxxxxx#4 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=337: oxzxxx#4 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=337: oxzxxx#4 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=337: oxzxxx#4 nsp=1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=337: oxzxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=337: oxzxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=337: oxzxxx#4 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=338: ixxxxx#5 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=338: ixxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=338: ixxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=338: ixxxxx#5 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=338: ixxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=338: ixxxxx#5 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=339: ixxxxx#5 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=339: ixxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=339: ixxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=339: ixxxxx#5 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=339: ixxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=339: ixxxxx#5 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=340: ipzxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=340: ipzxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=340: ipzxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=340: ipzxxx#5 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=340: ipzxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=340: ipzxxx#5 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=341: vxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=341: vxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=341: vxxxxx#5 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=341: vxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=341: vxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=341: vxxxxx#5 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=342: vxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=342: vxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=342: vxxxxx#5 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=342: vxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=342: vxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=342: vxxxxx#5 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=343: sxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=343: sxxxxx#5 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=343: sxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=343: sxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=343: sxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=343: sxxxxx#5 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=344: sxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=344: sxxxxx#5 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=344: sxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=344: sxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=344: sxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=344: sxxxxx#5 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=345: oxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=345: oxxxxx#5 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=345: oxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=345: oxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=345: oxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=345: oxxxxx#5 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=346: oxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=346: oxxxxx#5 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=346: oxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=346: oxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=346: oxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=346: oxxxxx#5 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=347: opzxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=347: opzxxx#5 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=347: opzxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=347: opzxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=347: opzxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=347: opzxxx#5 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=348: ixxxxx#6 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=348: ixxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=348: ixxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=348: ixxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=348: ixxxxx#6 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=348: ixxxxx#6 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=349: ixxxxx#6 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=349: ixxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=349: ixxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=349: ixxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=349: ixxxxx#6 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=349: ixxxxx#6 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=350: imzxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=350: imzxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=350: imzxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=350: imzxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=350: imzxxx#6 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=350: imzxxx#6 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=351: vxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=351: vxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=351: vxxxxx#6 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=351: vxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=351: vxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=351: vxxxxx#6 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=352: vxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=352: vxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=352: vxxxxx#6 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=352: vxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=352: vxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=352: vxxxxx#6 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=353: sxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=353: sxxxxx#6 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=353: sxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=353: sxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=353: sxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=353: sxxxxx#6 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=354: sxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=354: sxxxxx#6 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=354: sxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=354: sxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=354: sxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=354: sxxxxx#6 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=355: oxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=355: oxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=355: oxxxxx#6 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=355: oxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=355: oxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=355: oxxxxx#6 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=356: oxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=356: oxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=356: oxxxxx#6 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=356: oxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=356: oxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=356: oxxxxx#6 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=357: omzxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=357: omzxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=357: omzxxx#6 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=357: omzxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=357: omzxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=357: omzxxx#6 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=358: ixxxxx#7 nsp=1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=358: ixxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=358: ixxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=358: ixxxxx#7 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=358: ixxxxx#7 nsp=1 mass=0 + 1.341640786499874e+01, 1.788854381999831e+01 } ); // itest=358: ixxxxx#7 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=359: ixxxxx#7 nsp=1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=359: ixxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=359: ixxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=359: ixxxxx#7 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=359: ixxxxx#7 nsp=1 mass=0 + 1.341640786499874e+01, 1.788854381999831e+01 } ); // itest=359: ixxxxx#7 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=360: ixzxxx#7 nsp=1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=360: ixzxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=360: ixzxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=360: ixzxxx#7 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=360: ixzxxx#7 nsp=1 mass=0 + 1.341640786499874e+01, 1.788854381999832e+01 } ); // itest=360: ixzxxx#7 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=361: vxxxxx#7 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=361: vxxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=361: vxxxxx#7 nsp=1 mass=0 + -0.000000000000000e+00, -5.656854249492381e-01, // itest=361: vxxxxx#7 nsp=1 mass=0 + -0.000000000000000e+00, 4.242640687119285e-01, // itest=361: vxxxxx#7 nsp=1 mass=0 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=361: vxxxxx#7 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=362: vxxxxx#7 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=362: vxxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=362: vxxxxx#7 nsp=1 mass=0 + -0.000000000000000e+00, -5.656854249492381e-01, // itest=362: vxxxxx#7 nsp=1 mass=0 + -0.000000000000000e+00, 4.242640687119285e-01, // itest=362: vxxxxx#7 nsp=1 mass=0 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=362: vxxxxx#7 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=363: sxxxxx#7 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=363: sxxxxx#7 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=363: sxxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=363: sxxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=363: sxxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=363: sxxxxx#7 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=364: sxxxxx#7 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=364: sxxxxx#7 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=364: sxxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=364: sxxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=364: sxxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=364: sxxxxx#7 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=365: oxxxxx#7 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=365: oxxxxx#7 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=365: oxxxxx#7 nsp=1 mass=0 + 1.341640786499874e+01, -1.788854381999831e+01, // itest=365: oxxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=365: oxxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=365: oxxxxx#7 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=366: oxxxxx#7 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=366: oxxxxx#7 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=366: oxxxxx#7 nsp=1 mass=0 + 1.341640786499874e+01, -1.788854381999831e+01, // itest=366: oxxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=366: oxxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=366: oxxxxx#7 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=367: oxzxxx#7 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=367: oxzxxx#7 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=367: oxzxxx#7 nsp=1 mass=0 + 1.341640786499874e+01, -1.788854381999832e+01, // itest=367: oxzxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=367: oxzxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=367: oxzxxx#7 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=368: ixxxxx#8 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=368: ixxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=368: ixxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=368: ixxxxx#8 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=368: ixxxxx#8 nsp=1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=368: ixxxxx#8 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=369: ixxxxx#8 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=369: ixxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=369: ixxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=369: ixxxxx#8 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=369: ixxxxx#8 nsp=1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=369: ixxxxx#8 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=370: ixzxxx#8 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=370: ixzxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=370: ixzxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=370: ixzxxx#8 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=370: ixzxxx#8 nsp=1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=370: ixzxxx#8 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=371: vxxxxx#8 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=371: vxxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=371: vxxxxx#8 nsp=1 mass=0 + -3.394112549695428e-01, -5.656854249492381e-01, // itest=371: vxxxxx#8 nsp=1 mass=0 + -4.525483399593904e-01, 4.242640687119285e-01, // itest=371: vxxxxx#8 nsp=1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=371: vxxxxx#8 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=372: vxxxxx#8 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=372: vxxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=372: vxxxxx#8 nsp=1 mass=0 + -3.394112549695428e-01, -5.656854249492381e-01, // itest=372: vxxxxx#8 nsp=1 mass=0 + -4.525483399593904e-01, 4.242640687119285e-01, // itest=372: vxxxxx#8 nsp=1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=372: vxxxxx#8 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=373: sxxxxx#8 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=373: sxxxxx#8 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=373: sxxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=373: sxxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=373: sxxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=373: sxxxxx#8 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=374: sxxxxx#8 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=374: sxxxxx#8 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=374: sxxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=374: sxxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=374: sxxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=374: sxxxxx#8 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=375: oxxxxx#8 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=375: oxxxxx#8 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=375: oxxxxx#8 nsp=1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=375: oxxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=375: oxxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=375: oxxxxx#8 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=376: oxxxxx#8 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=376: oxxxxx#8 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=376: oxxxxx#8 nsp=1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=376: oxxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=376: oxxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=376: oxxxxx#8 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=377: oxzxxx#8 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=377: oxzxxx#8 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=377: oxzxxx#8 nsp=1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=377: oxzxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=377: oxzxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=377: oxzxxx#8 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=378: ixxxxx#9 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=378: ixxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=378: ixxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=378: ixxxxx#9 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=378: ixxxxx#9 nsp=1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01 } ); // itest=378: ixxxxx#9 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=379: ixxxxx#9 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=379: ixxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=379: ixxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=379: ixxxxx#9 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=379: ixxxxx#9 nsp=1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01 } ); // itest=379: ixxxxx#9 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=380: ixzxxx#9 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=380: ixzxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=380: ixzxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=380: ixzxxx#9 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=380: ixzxxx#9 nsp=1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01 } ); // itest=380: ixzxxx#9 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=381: vxxxxx#9 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=381: vxxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=381: vxxxxx#9 nsp=1 mass=0 + 3.394112549695428e-01, -5.656854249492381e-01, // itest=381: vxxxxx#9 nsp=1 mass=0 + 4.525483399593904e-01, 4.242640687119285e-01, // itest=381: vxxxxx#9 nsp=1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=381: vxxxxx#9 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=382: vxxxxx#9 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=382: vxxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=382: vxxxxx#9 nsp=1 mass=0 + 3.394112549695428e-01, -5.656854249492381e-01, // itest=382: vxxxxx#9 nsp=1 mass=0 + 4.525483399593904e-01, 4.242640687119285e-01, // itest=382: vxxxxx#9 nsp=1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=382: vxxxxx#9 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=383: sxxxxx#9 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=383: sxxxxx#9 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=383: sxxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=383: sxxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=383: sxxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=383: sxxxxx#9 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=384: sxxxxx#9 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=384: sxxxxx#9 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=384: sxxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=384: sxxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=384: sxxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=384: sxxxxx#9 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=385: oxxxxx#9 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=385: oxxxxx#9 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=385: oxxxxx#9 nsp=1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=385: oxxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=385: oxxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=385: oxxxxx#9 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=386: oxxxxx#9 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=386: oxxxxx#9 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=386: oxxxxx#9 nsp=1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=386: oxxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=386: oxxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=386: oxxxxx#9 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=387: oxzxxx#9 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=387: oxzxxx#9 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=387: oxzxxx#9 nsp=1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=387: oxzxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=387: oxzxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=387: oxzxxx#9 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=388: ixxxxx#10 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=388: ixxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=388: ixxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=388: ixxxxx#10 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=388: ixxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=388: ixxxxx#10 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=389: ixxxxx#10 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=389: ixxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=389: ixxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=389: ixxxxx#10 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=389: ixxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=389: ixxxxx#10 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=390: ipzxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=390: ipzxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=390: ipzxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=390: ipzxxx#10 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=390: ipzxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=390: ipzxxx#10 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=391: vxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=391: vxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=391: vxxxxx#10 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=391: vxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=391: vxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=391: vxxxxx#10 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=392: vxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=392: vxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=392: vxxxxx#10 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=392: vxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=392: vxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=392: vxxxxx#10 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=393: sxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=393: sxxxxx#10 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=393: sxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=393: sxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=393: sxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=393: sxxxxx#10 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=394: sxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=394: sxxxxx#10 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=394: sxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=394: sxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=394: sxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=394: sxxxxx#10 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=395: oxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=395: oxxxxx#10 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=395: oxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=395: oxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=395: oxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=395: oxxxxx#10 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=396: oxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=396: oxxxxx#10 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=396: oxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=396: oxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=396: oxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=396: oxxxxx#10 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=397: opzxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=397: opzxxx#10 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=397: opzxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=397: opzxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=397: opzxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=397: opzxxx#10 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=398: ixxxxx#11 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=398: ixxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=398: ixxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=398: ixxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=398: ixxxxx#11 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=398: ixxxxx#11 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=399: ixxxxx#11 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=399: ixxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=399: ixxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=399: ixxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=399: ixxxxx#11 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=399: ixxxxx#11 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=400: imzxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=400: imzxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=400: imzxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=400: imzxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=400: imzxxx#11 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=400: imzxxx#11 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=401: vxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=401: vxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=401: vxxxxx#11 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=401: vxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=401: vxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=401: vxxxxx#11 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=402: vxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=402: vxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=402: vxxxxx#11 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=402: vxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=402: vxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=402: vxxxxx#11 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=403: sxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=403: sxxxxx#11 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=403: sxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=403: sxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=403: sxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=403: sxxxxx#11 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=404: sxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=404: sxxxxx#11 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=404: sxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=404: sxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=404: sxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=404: sxxxxx#11 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=405: oxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=405: oxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=405: oxxxxx#11 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=405: oxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=405: oxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=405: oxxxxx#11 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=406: oxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=406: oxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=406: oxxxxx#11 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=406: oxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=406: oxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=406: oxxxxx#11 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=407: omzxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=407: omzxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=407: omzxxx#11 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=407: omzxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=407: omzxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=407: omzxxx#11 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=408: ixxxxx#12 nsp=1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=408: ixxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=408: ixxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=408: ixxxxx#12 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=408: ixxxxx#12 nsp=1 mass=0 + 1.341640786499874e+01, 1.788854381999831e+01 } ); // itest=408: ixxxxx#12 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=409: ixxxxx#12 nsp=1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=409: ixxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=409: ixxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=409: ixxxxx#12 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=409: ixxxxx#12 nsp=1 mass=0 + 1.341640786499874e+01, 1.788854381999831e+01 } ); // itest=409: ixxxxx#12 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=410: ixzxxx#12 nsp=1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=410: ixzxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=410: ixzxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=410: ixzxxx#12 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=410: ixzxxx#12 nsp=1 mass=0 + 1.341640786499874e+01, 1.788854381999832e+01 } ); // itest=410: ixzxxx#12 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=411: vxxxxx#12 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=411: vxxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=411: vxxxxx#12 nsp=1 mass=0 + -0.000000000000000e+00, -5.656854249492381e-01, // itest=411: vxxxxx#12 nsp=1 mass=0 + -0.000000000000000e+00, 4.242640687119285e-01, // itest=411: vxxxxx#12 nsp=1 mass=0 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=411: vxxxxx#12 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=412: vxxxxx#12 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=412: vxxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=412: vxxxxx#12 nsp=1 mass=0 + -0.000000000000000e+00, -5.656854249492381e-01, // itest=412: vxxxxx#12 nsp=1 mass=0 + -0.000000000000000e+00, 4.242640687119285e-01, // itest=412: vxxxxx#12 nsp=1 mass=0 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=412: vxxxxx#12 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=413: sxxxxx#12 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=413: sxxxxx#12 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=413: sxxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=413: sxxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=413: sxxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=413: sxxxxx#12 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=414: sxxxxx#12 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=414: sxxxxx#12 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=414: sxxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=414: sxxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=414: sxxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=414: sxxxxx#12 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=415: oxxxxx#12 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=415: oxxxxx#12 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=415: oxxxxx#12 nsp=1 mass=0 + 1.341640786499874e+01, -1.788854381999831e+01, // itest=415: oxxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=415: oxxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=415: oxxxxx#12 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=416: oxxxxx#12 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=416: oxxxxx#12 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=416: oxxxxx#12 nsp=1 mass=0 + 1.341640786499874e+01, -1.788854381999831e+01, // itest=416: oxxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=416: oxxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=416: oxxxxx#12 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=417: oxzxxx#12 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=417: oxzxxx#12 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=417: oxzxxx#12 nsp=1 mass=0 + 1.341640786499874e+01, -1.788854381999832e+01, // itest=417: oxzxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=417: oxzxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=417: oxzxxx#12 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=418: ixxxxx#13 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=418: ixxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=418: ixxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=418: ixxxxx#13 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=418: ixxxxx#13 nsp=1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=418: ixxxxx#13 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=419: ixxxxx#13 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=419: ixxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=419: ixxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=419: ixxxxx#13 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=419: ixxxxx#13 nsp=1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=419: ixxxxx#13 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=420: ixzxxx#13 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=420: ixzxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=420: ixzxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=420: ixzxxx#13 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=420: ixzxxx#13 nsp=1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=420: ixzxxx#13 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=421: vxxxxx#13 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=421: vxxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=421: vxxxxx#13 nsp=1 mass=0 + -3.394112549695428e-01, -5.656854249492381e-01, // itest=421: vxxxxx#13 nsp=1 mass=0 + -4.525483399593904e-01, 4.242640687119285e-01, // itest=421: vxxxxx#13 nsp=1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=421: vxxxxx#13 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=422: vxxxxx#13 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=422: vxxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=422: vxxxxx#13 nsp=1 mass=0 + -3.394112549695428e-01, -5.656854249492381e-01, // itest=422: vxxxxx#13 nsp=1 mass=0 + -4.525483399593904e-01, 4.242640687119285e-01, // itest=422: vxxxxx#13 nsp=1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=422: vxxxxx#13 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=423: sxxxxx#13 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=423: sxxxxx#13 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=423: sxxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=423: sxxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=423: sxxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=423: sxxxxx#13 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=424: sxxxxx#13 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=424: sxxxxx#13 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=424: sxxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=424: sxxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=424: sxxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=424: sxxxxx#13 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=425: oxxxxx#13 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=425: oxxxxx#13 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=425: oxxxxx#13 nsp=1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=425: oxxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=425: oxxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=425: oxxxxx#13 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=426: oxxxxx#13 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=426: oxxxxx#13 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=426: oxxxxx#13 nsp=1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=426: oxxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=426: oxxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=426: oxxxxx#13 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=427: oxzxxx#13 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=427: oxzxxx#13 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=427: oxzxxx#13 nsp=1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=427: oxzxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=427: oxzxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=427: oxzxxx#13 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=428: ixxxxx#14 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=428: ixxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=428: ixxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=428: ixxxxx#14 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=428: ixxxxx#14 nsp=1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01 } ); // itest=428: ixxxxx#14 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=429: ixxxxx#14 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=429: ixxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=429: ixxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=429: ixxxxx#14 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=429: ixxxxx#14 nsp=1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01 } ); // itest=429: ixxxxx#14 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=430: ixzxxx#14 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=430: ixzxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=430: ixzxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=430: ixzxxx#14 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=430: ixzxxx#14 nsp=1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01 } ); // itest=430: ixzxxx#14 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=431: vxxxxx#14 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=431: vxxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=431: vxxxxx#14 nsp=1 mass=0 + 3.394112549695428e-01, -5.656854249492381e-01, // itest=431: vxxxxx#14 nsp=1 mass=0 + 4.525483399593904e-01, 4.242640687119285e-01, // itest=431: vxxxxx#14 nsp=1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=431: vxxxxx#14 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=432: vxxxxx#14 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=432: vxxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=432: vxxxxx#14 nsp=1 mass=0 + 3.394112549695428e-01, -5.656854249492381e-01, // itest=432: vxxxxx#14 nsp=1 mass=0 + 4.525483399593904e-01, 4.242640687119285e-01, // itest=432: vxxxxx#14 nsp=1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=432: vxxxxx#14 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=433: sxxxxx#14 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=433: sxxxxx#14 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=433: sxxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=433: sxxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=433: sxxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=433: sxxxxx#14 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=434: sxxxxx#14 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=434: sxxxxx#14 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=434: sxxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=434: sxxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=434: sxxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=434: sxxxxx#14 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=435: oxxxxx#14 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=435: oxxxxx#14 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=435: oxxxxx#14 nsp=1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=435: oxxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=435: oxxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=435: oxxxxx#14 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=436: oxxxxx#14 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=436: oxxxxx#14 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=436: oxxxxx#14 nsp=1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=436: oxxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=436: oxxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=436: oxxxxx#14 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=437: oxzxxx#14 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=437: oxzxxx#14 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=437: oxzxxx#14 nsp=1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=437: oxzxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=437: oxzxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=437: oxzxxx#14 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=438: ixxxxx#15 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=438: ixxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=438: ixxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=438: ixxxxx#15 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=438: ixxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=438: ixxxxx#15 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=439: ixxxxx#15 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=439: ixxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=439: ixxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=439: ixxxxx#15 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=439: ixxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=439: ixxxxx#15 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=440: ipzxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=440: ipzxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=440: ipzxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=440: ipzxxx#15 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=440: ipzxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=440: ipzxxx#15 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=441: vxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=441: vxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=441: vxxxxx#15 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=441: vxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=441: vxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=441: vxxxxx#15 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=442: vxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=442: vxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=442: vxxxxx#15 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=442: vxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=442: vxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=442: vxxxxx#15 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=443: sxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=443: sxxxxx#15 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=443: sxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=443: sxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=443: sxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=443: sxxxxx#15 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=444: sxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=444: sxxxxx#15 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=444: sxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=444: sxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=444: sxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=444: sxxxxx#15 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=445: oxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=445: oxxxxx#15 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=445: oxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=445: oxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=445: oxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=445: oxxxxx#15 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=446: oxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=446: oxxxxx#15 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=446: oxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=446: oxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=446: oxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=446: oxxxxx#15 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=447: opzxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=447: opzxxx#15 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=447: opzxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=447: opzxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=447: opzxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=447: opzxxx#15 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=448: ixxxxx#16 nsp=1 mass=500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=448: ixxxxx#16 nsp=1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=448: ixxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=448: ixxxxx#16 nsp=1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=448: ixxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=448: ixxxxx#16 nsp=1 mass=500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=449: ixxxxx#16 nsp=1 mass=-500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=449: ixxxxx#16 nsp=1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=449: ixxxxx#16 nsp=1 mass=-500 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=449: ixxxxx#16 nsp=1 mass=-500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=449: ixxxxx#16 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=449: ixxxxx#16 nsp=1 mass=-500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=450: vxxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=450: vxxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=450: vxxxxx#16 nsp=1 mass=500 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=450: vxxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=450: vxxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=450: vxxxxx#16 nsp=1 mass=500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=451: vxxxxx#16 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=451: vxxxxx#16 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=451: vxxxxx#16 nsp=1 mass=-500 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=451: vxxxxx#16 nsp=1 mass=-500 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=451: vxxxxx#16 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=451: vxxxxx#16 nsp=1 mass=-500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=452: sxxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=452: sxxxxx#16 nsp=1 mass=500 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=452: sxxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=452: sxxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=452: sxxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=452: sxxxxx#16 nsp=1 mass=500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=453: sxxxxx#16 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=453: sxxxxx#16 nsp=1 mass=-500 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=453: sxxxxx#16 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=453: sxxxxx#16 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=453: sxxxxx#16 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=453: sxxxxx#16 nsp=1 mass=-500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=454: oxxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=454: oxxxxx#16 nsp=1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=454: oxxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=454: oxxxxx#16 nsp=1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=454: oxxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=454: oxxxxx#16 nsp=1 mass=500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=455: oxxxxx#16 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=455: oxxxxx#16 nsp=1 mass=-500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=455: oxxxxx#16 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=455: oxxxxx#16 nsp=1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=455: oxxxxx#16 nsp=1 mass=-500 + -0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=455: oxxxxx#16 nsp=1 mass=-500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=456: ixxxxx#17 nsp=1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=456: ixxxxx#17 nsp=1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=456: ixxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=456: ixxxxx#17 nsp=1 mass=400 + 2.828427124746190e+01, 0.000000000000000e+00, // itest=456: ixxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=456: ixxxxx#17 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=457: ixxxxx#17 nsp=1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=457: ixxxxx#17 nsp=1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=457: ixxxxx#17 nsp=1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=457: ixxxxx#17 nsp=1 mass=-400 + 2.828427124746190e+01, 0.000000000000000e+00, // itest=457: ixxxxx#17 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=457: ixxxxx#17 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=458: vxxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=458: vxxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=458: vxxxxx#17 nsp=1 mass=400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=458: vxxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=458: vxxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=458: vxxxxx#17 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=459: vxxxxx#17 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=459: vxxxxx#17 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=459: vxxxxx#17 nsp=1 mass=-400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=459: vxxxxx#17 nsp=1 mass=-400 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=459: vxxxxx#17 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=459: vxxxxx#17 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=460: sxxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=460: sxxxxx#17 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=460: sxxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=460: sxxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=460: sxxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=460: sxxxxx#17 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=461: sxxxxx#17 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=461: sxxxxx#17 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=461: sxxxxx#17 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=461: sxxxxx#17 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=461: sxxxxx#17 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=461: sxxxxx#17 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=462: oxxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=462: oxxxxx#17 nsp=1 mass=400 + 2.828427124746190e+01, 0.000000000000000e+00, // itest=462: oxxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=462: oxxxxx#17 nsp=1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=462: oxxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=462: oxxxxx#17 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=463: oxxxxx#17 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=463: oxxxxx#17 nsp=1 mass=-400 + 2.828427124746190e+01, 0.000000000000000e+00, // itest=463: oxxxxx#17 nsp=1 mass=-400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=463: oxxxxx#17 nsp=1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=463: oxxxxx#17 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=463: oxxxxx#17 nsp=1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=464: ixxxxx#18 nsp=1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=464: ixxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=464: ixxxxx#18 nsp=1 mass=400 + -1.414213562373095e+01, 0.000000000000000e+00, // itest=464: ixxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=464: ixxxxx#18 nsp=1 mass=400 + -2.828427124746190e+01, 0.000000000000000e+00 } ); // itest=464: ixxxxx#18 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=465: ixxxxx#18 nsp=1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=465: ixxxxx#18 nsp=1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=465: ixxxxx#18 nsp=1 mass=-400 + 1.414213562373095e+01, -0.000000000000000e+00, // itest=465: ixxxxx#18 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=465: ixxxxx#18 nsp=1 mass=-400 + -2.828427124746190e+01, 0.000000000000000e+00 } ); // itest=465: ixxxxx#18 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=466: vxxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=466: vxxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=466: vxxxxx#18 nsp=1 mass=400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=466: vxxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=466: vxxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=466: vxxxxx#18 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=467: vxxxxx#18 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=467: vxxxxx#18 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=467: vxxxxx#18 nsp=1 mass=-400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=467: vxxxxx#18 nsp=1 mass=-400 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=467: vxxxxx#18 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=467: vxxxxx#18 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=468: sxxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=468: sxxxxx#18 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=468: sxxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=468: sxxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=468: sxxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=468: sxxxxx#18 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=469: sxxxxx#18 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=469: sxxxxx#18 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=469: sxxxxx#18 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=469: sxxxxx#18 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=469: sxxxxx#18 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=469: sxxxxx#18 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=470: oxxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=470: oxxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=470: oxxxxx#18 nsp=1 mass=400 + -2.828427124746190e+01, 0.000000000000000e+00, // itest=470: oxxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=470: oxxxxx#18 nsp=1 mass=400 + -1.414213562373095e+01, 0.000000000000000e+00 } ); // itest=470: oxxxxx#18 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=471: oxxxxx#18 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=471: oxxxxx#18 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=471: oxxxxx#18 nsp=1 mass=-400 + -2.828427124746190e+01, 0.000000000000000e+00, // itest=471: oxxxxx#18 nsp=1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=471: oxxxxx#18 nsp=1 mass=-400 + 1.414213562373095e+01, -0.000000000000000e+00 } ); // itest=471: oxxxxx#18 nsp=1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=472: ixxxxx#19 nsp=1 mass=400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=472: ixxxxx#19 nsp=1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=472: ixxxxx#19 nsp=1 mass=400 + 5.999999999999999e+00, 7.999999999999999e+00, // itest=472: ixxxxx#19 nsp=1 mass=400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=472: ixxxxx#19 nsp=1 mass=400 + 1.200000000000000e+01, 1.600000000000000e+01 } ); // itest=472: ixxxxx#19 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=473: ixxxxx#19 nsp=1 mass=-400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=473: ixxxxx#19 nsp=1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00, // itest=473: ixxxxx#19 nsp=1 mass=-400 + -5.999999999999999e+00, -7.999999999999999e+00, // itest=473: ixxxxx#19 nsp=1 mass=-400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=473: ixxxxx#19 nsp=1 mass=-400 + 1.200000000000000e+01, 1.600000000000000e+01 } ); // itest=473: ixxxxx#19 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=474: vxxxxx#19 nsp=1 mass=400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=474: vxxxxx#19 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=474: vxxxxx#19 nsp=1 mass=400 + 0.000000000000000e+00, -5.656854249492381e-01, // itest=474: vxxxxx#19 nsp=1 mass=400 + 0.000000000000000e+00, 4.242640687119285e-01, // itest=474: vxxxxx#19 nsp=1 mass=400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=474: vxxxxx#19 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=475: vxxxxx#19 nsp=1 mass=-400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=475: vxxxxx#19 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=475: vxxxxx#19 nsp=1 mass=-400 + -0.000000000000000e+00, -5.656854249492381e-01, // itest=475: vxxxxx#19 nsp=1 mass=-400 + -0.000000000000000e+00, 4.242640687119285e-01, // itest=475: vxxxxx#19 nsp=1 mass=-400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=475: vxxxxx#19 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=476: sxxxxx#19 nsp=1 mass=400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=476: sxxxxx#19 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=476: sxxxxx#19 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=476: sxxxxx#19 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=476: sxxxxx#19 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=476: sxxxxx#19 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=477: sxxxxx#19 nsp=1 mass=-400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=477: sxxxxx#19 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=477: sxxxxx#19 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=477: sxxxxx#19 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=477: sxxxxx#19 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=477: sxxxxx#19 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=478: oxxxxx#19 nsp=1 mass=400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=478: oxxxxx#19 nsp=1 mass=400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=478: oxxxxx#19 nsp=1 mass=400 + 1.200000000000000e+01, -1.600000000000000e+01, // itest=478: oxxxxx#19 nsp=1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=478: oxxxxx#19 nsp=1 mass=400 + 5.999999999999999e+00, -7.999999999999999e+00 } ); // itest=478: oxxxxx#19 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=479: oxxxxx#19 nsp=1 mass=-400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=479: oxxxxx#19 nsp=1 mass=-400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=479: oxxxxx#19 nsp=1 mass=-400 + 1.200000000000000e+01, -1.600000000000000e+01, // itest=479: oxxxxx#19 nsp=1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00, // itest=479: oxxxxx#19 nsp=1 mass=-400 + -5.999999999999999e+00, 7.999999999999999e+00 } ); // itest=479: oxxxxx#19 nsp=1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=480: ixxxxx#20 nsp=1 mass=400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=480: ixxxxx#20 nsp=1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=480: ixxxxx#20 nsp=1 mass=400 + -7.999999999999999e+00, -5.999999999999999e+00, // itest=480: ixxxxx#20 nsp=1 mass=400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=480: ixxxxx#20 nsp=1 mass=400 + -1.600000000000000e+01, -1.200000000000000e+01 } ); // itest=480: ixxxxx#20 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=481: ixxxxx#20 nsp=1 mass=-400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=481: ixxxxx#20 nsp=1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00, // itest=481: ixxxxx#20 nsp=1 mass=-400 + 7.999999999999999e+00, 5.999999999999999e+00, // itest=481: ixxxxx#20 nsp=1 mass=-400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=481: ixxxxx#20 nsp=1 mass=-400 + -1.600000000000000e+01, -1.200000000000000e+01 } ); // itest=481: ixxxxx#20 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=482: vxxxxx#20 nsp=1 mass=400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=482: vxxxxx#20 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=482: vxxxxx#20 nsp=1 mass=400 + 0.000000000000000e+00, 4.242640687119285e-01, // itest=482: vxxxxx#20 nsp=1 mass=400 + 0.000000000000000e+00, -5.656854249492381e-01, // itest=482: vxxxxx#20 nsp=1 mass=400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=482: vxxxxx#20 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=483: vxxxxx#20 nsp=1 mass=-400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=483: vxxxxx#20 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=483: vxxxxx#20 nsp=1 mass=-400 + 0.000000000000000e+00, 4.242640687119285e-01, // itest=483: vxxxxx#20 nsp=1 mass=-400 + 0.000000000000000e+00, -5.656854249492381e-01, // itest=483: vxxxxx#20 nsp=1 mass=-400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=483: vxxxxx#20 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=484: sxxxxx#20 nsp=1 mass=400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=484: sxxxxx#20 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=484: sxxxxx#20 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=484: sxxxxx#20 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=484: sxxxxx#20 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=484: sxxxxx#20 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=485: sxxxxx#20 nsp=1 mass=-400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=485: sxxxxx#20 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=485: sxxxxx#20 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=485: sxxxxx#20 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=485: sxxxxx#20 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=485: sxxxxx#20 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=486: oxxxxx#20 nsp=1 mass=400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=486: oxxxxx#20 nsp=1 mass=400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=486: oxxxxx#20 nsp=1 mass=400 + -1.600000000000000e+01, 1.200000000000000e+01, // itest=486: oxxxxx#20 nsp=1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=486: oxxxxx#20 nsp=1 mass=400 + -7.999999999999999e+00, 5.999999999999999e+00 } ); // itest=486: oxxxxx#20 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=487: oxxxxx#20 nsp=1 mass=-400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=487: oxxxxx#20 nsp=1 mass=-400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=487: oxxxxx#20 nsp=1 mass=-400 + -1.600000000000000e+01, 1.200000000000000e+01, // itest=487: oxxxxx#20 nsp=1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00, // itest=487: oxxxxx#20 nsp=1 mass=-400 + 7.999999999999999e+00, -5.999999999999999e+00 } ); // itest=487: oxxxxx#20 nsp=1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=488: ixxxxx#21 nsp=1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=488: ixxxxx#21 nsp=1 mass=400 + 1.216552506059644e+01, 0.000000000000000e+00, // itest=488: ixxxxx#21 nsp=1 mass=400 + 4.931969619160719e+00, 5.260767593771432e+00, // itest=488: ixxxxx#21 nsp=1 mass=400 + 2.433105012119288e+01, 0.000000000000000e+00, // itest=488: ixxxxx#21 nsp=1 mass=400 + 9.863939238321439e+00, 1.052153518754287e+01 } ); // itest=488: ixxxxx#21 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=489: ixxxxx#21 nsp=1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=489: ixxxxx#21 nsp=1 mass=-400 + -1.216552506059644e+01, -0.000000000000000e+00, // itest=489: ixxxxx#21 nsp=1 mass=-400 + -4.931969619160719e+00, -5.260767593771432e+00, // itest=489: ixxxxx#21 nsp=1 mass=-400 + 2.433105012119288e+01, 0.000000000000000e+00, // itest=489: ixxxxx#21 nsp=1 mass=-400 + 9.863939238321439e+00, 1.052153518754287e+01 } ); // itest=489: ixxxxx#21 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=490: vxxxxx#21 nsp=1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=490: vxxxxx#21 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=490: vxxxxx#21 nsp=1 mass=400 + -2.321373168788980e-01, -5.158607041753289e-01, // itest=490: vxxxxx#21 nsp=1 mass=400 + -2.476131380041579e-01, 4.836194101643708e-01, // itest=490: vxxxxx#21 nsp=1 mass=400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=490: vxxxxx#21 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=491: vxxxxx#21 nsp=1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=491: vxxxxx#21 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=491: vxxxxx#21 nsp=1 mass=-400 + -2.321373168788980e-01, -5.158607041753289e-01, // itest=491: vxxxxx#21 nsp=1 mass=-400 + -2.476131380041579e-01, 4.836194101643708e-01, // itest=491: vxxxxx#21 nsp=1 mass=-400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=491: vxxxxx#21 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=492: sxxxxx#21 nsp=1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=492: sxxxxx#21 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=492: sxxxxx#21 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=492: sxxxxx#21 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=492: sxxxxx#21 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=492: sxxxxx#21 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=493: sxxxxx#21 nsp=1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=493: sxxxxx#21 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=493: sxxxxx#21 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=493: sxxxxx#21 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=493: sxxxxx#21 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=493: sxxxxx#21 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=494: oxxxxx#21 nsp=1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=494: oxxxxx#21 nsp=1 mass=400 + 2.433105012119288e+01, 0.000000000000000e+00, // itest=494: oxxxxx#21 nsp=1 mass=400 + 9.863939238321439e+00, -1.052153518754287e+01, // itest=494: oxxxxx#21 nsp=1 mass=400 + 1.216552506059644e+01, 0.000000000000000e+00, // itest=494: oxxxxx#21 nsp=1 mass=400 + 4.931969619160719e+00, -5.260767593771432e+00 } ); // itest=494: oxxxxx#21 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=495: oxxxxx#21 nsp=1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=495: oxxxxx#21 nsp=1 mass=-400 + 2.433105012119288e+01, 0.000000000000000e+00, // itest=495: oxxxxx#21 nsp=1 mass=-400 + 9.863939238321439e+00, -1.052153518754287e+01, // itest=495: oxxxxx#21 nsp=1 mass=-400 + -1.216552506059644e+01, -0.000000000000000e+00, // itest=495: oxxxxx#21 nsp=1 mass=-400 + -4.931969619160719e+00, 5.260767593771432e+00 } ); // itest=495: oxxxxx#21 nsp=1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=496: ixxxxx#22 nsp=1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=496: ixxxxx#22 nsp=1 mass=400 + 7.211102550927978e+00, 0.000000000000000e+00, // itest=496: ixxxxx#22 nsp=1 mass=400 + 8.320502943378436e+00, 8.875203139603666e+00, // itest=496: ixxxxx#22 nsp=1 mass=400 + 1.442220510185596e+01, 0.000000000000000e+00, // itest=496: ixxxxx#22 nsp=1 mass=400 + 1.664100588675688e+01, 1.775040627920733e+01 } ); // itest=496: ixxxxx#22 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=497: ixxxxx#22 nsp=1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=497: ixxxxx#22 nsp=1 mass=-400 + -7.211102550927978e+00, -0.000000000000000e+00, // itest=497: ixxxxx#22 nsp=1 mass=-400 + -8.320502943378436e+00, -8.875203139603666e+00, // itest=497: ixxxxx#22 nsp=1 mass=-400 + 1.442220510185596e+01, 0.000000000000000e+00, // itest=497: ixxxxx#22 nsp=1 mass=-400 + 1.664100588675688e+01, 1.775040627920733e+01 } ); // itest=497: ixxxxx#22 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=498: vxxxxx#22 nsp=1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=498: vxxxxx#22 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=498: vxxxxx#22 nsp=1 mass=400 + 2.321373168788980e-01, -5.158607041753289e-01, // itest=498: vxxxxx#22 nsp=1 mass=400 + 2.476131380041579e-01, 4.836194101643708e-01, // itest=498: vxxxxx#22 nsp=1 mass=400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=498: vxxxxx#22 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=499: vxxxxx#22 nsp=1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=499: vxxxxx#22 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=499: vxxxxx#22 nsp=1 mass=-400 + 2.321373168788980e-01, -5.158607041753289e-01, // itest=499: vxxxxx#22 nsp=1 mass=-400 + 2.476131380041579e-01, 4.836194101643708e-01, // itest=499: vxxxxx#22 nsp=1 mass=-400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=499: vxxxxx#22 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=500: sxxxxx#22 nsp=1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=500: sxxxxx#22 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=500: sxxxxx#22 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=500: sxxxxx#22 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=500: sxxxxx#22 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=500: sxxxxx#22 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=501: sxxxxx#22 nsp=1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=501: sxxxxx#22 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=501: sxxxxx#22 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=501: sxxxxx#22 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=501: sxxxxx#22 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=501: sxxxxx#22 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=502: oxxxxx#22 nsp=1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=502: oxxxxx#22 nsp=1 mass=400 + 1.442220510185596e+01, 0.000000000000000e+00, // itest=502: oxxxxx#22 nsp=1 mass=400 + 1.664100588675688e+01, -1.775040627920733e+01, // itest=502: oxxxxx#22 nsp=1 mass=400 + 7.211102550927978e+00, 0.000000000000000e+00, // itest=502: oxxxxx#22 nsp=1 mass=400 + 8.320502943378436e+00, -8.875203139603666e+00 } ); // itest=502: oxxxxx#22 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=503: oxxxxx#22 nsp=1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=503: oxxxxx#22 nsp=1 mass=-400 + 1.442220510185596e+01, 0.000000000000000e+00, // itest=503: oxxxxx#22 nsp=1 mass=-400 + 1.664100588675688e+01, -1.775040627920733e+01, // itest=503: oxxxxx#22 nsp=1 mass=-400 + -7.211102550927978e+00, -0.000000000000000e+00, // itest=503: oxxxxx#22 nsp=1 mass=-400 + -8.320502943378436e+00, 8.875203139603666e+00 } ); // itest=503: oxxxxx#22 nsp=1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=504: ixxxxx#23 nsp=1 mass=500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=504: ixxxxx#23 nsp=1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=504: ixxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=504: ixxxxx#23 nsp=1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=504: ixxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=504: ixxxxx#23 nsp=1 mass=500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=505: ixxxxx#23 nsp=1 mass=-500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=505: ixxxxx#23 nsp=1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=505: ixxxxx#23 nsp=1 mass=-500 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=505: ixxxxx#23 nsp=1 mass=-500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=505: ixxxxx#23 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=505: ixxxxx#23 nsp=1 mass=-500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=506: vxxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=506: vxxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=506: vxxxxx#23 nsp=1 mass=500 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=506: vxxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=506: vxxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=506: vxxxxx#23 nsp=1 mass=500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=507: vxxxxx#23 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=507: vxxxxx#23 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=507: vxxxxx#23 nsp=1 mass=-500 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=507: vxxxxx#23 nsp=1 mass=-500 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=507: vxxxxx#23 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=507: vxxxxx#23 nsp=1 mass=-500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=508: sxxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=508: sxxxxx#23 nsp=1 mass=500 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=508: sxxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=508: sxxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=508: sxxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=508: sxxxxx#23 nsp=1 mass=500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=509: sxxxxx#23 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=509: sxxxxx#23 nsp=1 mass=-500 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=509: sxxxxx#23 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=509: sxxxxx#23 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=509: sxxxxx#23 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=509: sxxxxx#23 nsp=1 mass=-500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=510: oxxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=510: oxxxxx#23 nsp=1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=510: oxxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=510: oxxxxx#23 nsp=1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=510: oxxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=510: oxxxxx#23 nsp=1 mass=500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=511: oxxxxx#23 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=511: oxxxxx#23 nsp=1 mass=-500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=511: oxxxxx#23 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=511: oxxxxx#23 nsp=1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=511: oxxxxx#23 nsp=1 mass=-500 + -0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=511: oxxxxx#23 nsp=1 mass=-500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=512: ixxxxx#24 nsp=1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=512: ixxxxx#24 nsp=1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=512: ixxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=512: ixxxxx#24 nsp=1 mass=400 + 2.828427124746190e+01, 0.000000000000000e+00, // itest=512: ixxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=512: ixxxxx#24 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=513: ixxxxx#24 nsp=1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=513: ixxxxx#24 nsp=1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=513: ixxxxx#24 nsp=1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=513: ixxxxx#24 nsp=1 mass=-400 + 2.828427124746190e+01, 0.000000000000000e+00, // itest=513: ixxxxx#24 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=513: ixxxxx#24 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=514: vxxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=514: vxxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=514: vxxxxx#24 nsp=1 mass=400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=514: vxxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=514: vxxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=514: vxxxxx#24 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=515: vxxxxx#24 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=515: vxxxxx#24 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=515: vxxxxx#24 nsp=1 mass=-400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=515: vxxxxx#24 nsp=1 mass=-400 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=515: vxxxxx#24 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=515: vxxxxx#24 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=516: sxxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=516: sxxxxx#24 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=516: sxxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=516: sxxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=516: sxxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=516: sxxxxx#24 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=517: sxxxxx#24 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=517: sxxxxx#24 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=517: sxxxxx#24 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=517: sxxxxx#24 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=517: sxxxxx#24 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=517: sxxxxx#24 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=518: oxxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=518: oxxxxx#24 nsp=1 mass=400 + 2.828427124746190e+01, 0.000000000000000e+00, // itest=518: oxxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=518: oxxxxx#24 nsp=1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=518: oxxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=518: oxxxxx#24 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=519: oxxxxx#24 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=519: oxxxxx#24 nsp=1 mass=-400 + 2.828427124746190e+01, 0.000000000000000e+00, // itest=519: oxxxxx#24 nsp=1 mass=-400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=519: oxxxxx#24 nsp=1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=519: oxxxxx#24 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=519: oxxxxx#24 nsp=1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=520: ixxxxx#25 nsp=1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=520: ixxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=520: ixxxxx#25 nsp=1 mass=400 + -1.414213562373095e+01, 0.000000000000000e+00, // itest=520: ixxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=520: ixxxxx#25 nsp=1 mass=400 + -2.828427124746190e+01, 0.000000000000000e+00 } ); // itest=520: ixxxxx#25 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=521: ixxxxx#25 nsp=1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=521: ixxxxx#25 nsp=1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=521: ixxxxx#25 nsp=1 mass=-400 + 1.414213562373095e+01, -0.000000000000000e+00, // itest=521: ixxxxx#25 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=521: ixxxxx#25 nsp=1 mass=-400 + -2.828427124746190e+01, 0.000000000000000e+00 } ); // itest=521: ixxxxx#25 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=522: vxxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=522: vxxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=522: vxxxxx#25 nsp=1 mass=400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=522: vxxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=522: vxxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=522: vxxxxx#25 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=523: vxxxxx#25 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=523: vxxxxx#25 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=523: vxxxxx#25 nsp=1 mass=-400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=523: vxxxxx#25 nsp=1 mass=-400 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=523: vxxxxx#25 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=523: vxxxxx#25 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=524: sxxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=524: sxxxxx#25 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=524: sxxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=524: sxxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=524: sxxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=524: sxxxxx#25 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=525: sxxxxx#25 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=525: sxxxxx#25 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=525: sxxxxx#25 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=525: sxxxxx#25 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=525: sxxxxx#25 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=525: sxxxxx#25 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=526: oxxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=526: oxxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=526: oxxxxx#25 nsp=1 mass=400 + -2.828427124746190e+01, 0.000000000000000e+00, // itest=526: oxxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=526: oxxxxx#25 nsp=1 mass=400 + -1.414213562373095e+01, 0.000000000000000e+00 } ); // itest=526: oxxxxx#25 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=527: oxxxxx#25 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=527: oxxxxx#25 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=527: oxxxxx#25 nsp=1 mass=-400 + -2.828427124746190e+01, 0.000000000000000e+00, // itest=527: oxxxxx#25 nsp=1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=527: oxxxxx#25 nsp=1 mass=-400 + 1.414213562373095e+01, -0.000000000000000e+00 } ); // itest=527: oxxxxx#25 nsp=1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=528: ixxxxx#26 nsp=1 mass=400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=528: ixxxxx#26 nsp=1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=528: ixxxxx#26 nsp=1 mass=400 + 5.999999999999999e+00, 7.999999999999999e+00, // itest=528: ixxxxx#26 nsp=1 mass=400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=528: ixxxxx#26 nsp=1 mass=400 + 1.200000000000000e+01, 1.600000000000000e+01 } ); // itest=528: ixxxxx#26 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=529: ixxxxx#26 nsp=1 mass=-400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=529: ixxxxx#26 nsp=1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00, // itest=529: ixxxxx#26 nsp=1 mass=-400 + -5.999999999999999e+00, -7.999999999999999e+00, // itest=529: ixxxxx#26 nsp=1 mass=-400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=529: ixxxxx#26 nsp=1 mass=-400 + 1.200000000000000e+01, 1.600000000000000e+01 } ); // itest=529: ixxxxx#26 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=530: vxxxxx#26 nsp=1 mass=400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=530: vxxxxx#26 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=530: vxxxxx#26 nsp=1 mass=400 + 0.000000000000000e+00, -5.656854249492381e-01, // itest=530: vxxxxx#26 nsp=1 mass=400 + 0.000000000000000e+00, 4.242640687119285e-01, // itest=530: vxxxxx#26 nsp=1 mass=400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=530: vxxxxx#26 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=531: vxxxxx#26 nsp=1 mass=-400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=531: vxxxxx#26 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=531: vxxxxx#26 nsp=1 mass=-400 + -0.000000000000000e+00, -5.656854249492381e-01, // itest=531: vxxxxx#26 nsp=1 mass=-400 + -0.000000000000000e+00, 4.242640687119285e-01, // itest=531: vxxxxx#26 nsp=1 mass=-400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=531: vxxxxx#26 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=532: sxxxxx#26 nsp=1 mass=400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=532: sxxxxx#26 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=532: sxxxxx#26 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=532: sxxxxx#26 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=532: sxxxxx#26 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=532: sxxxxx#26 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=533: sxxxxx#26 nsp=1 mass=-400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=533: sxxxxx#26 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=533: sxxxxx#26 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=533: sxxxxx#26 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=533: sxxxxx#26 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=533: sxxxxx#26 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=534: oxxxxx#26 nsp=1 mass=400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=534: oxxxxx#26 nsp=1 mass=400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=534: oxxxxx#26 nsp=1 mass=400 + 1.200000000000000e+01, -1.600000000000000e+01, // itest=534: oxxxxx#26 nsp=1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=534: oxxxxx#26 nsp=1 mass=400 + 5.999999999999999e+00, -7.999999999999999e+00 } ); // itest=534: oxxxxx#26 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=535: oxxxxx#26 nsp=1 mass=-400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=535: oxxxxx#26 nsp=1 mass=-400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=535: oxxxxx#26 nsp=1 mass=-400 + 1.200000000000000e+01, -1.600000000000000e+01, // itest=535: oxxxxx#26 nsp=1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00, // itest=535: oxxxxx#26 nsp=1 mass=-400 + -5.999999999999999e+00, 7.999999999999999e+00 } ); // itest=535: oxxxxx#26 nsp=1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=536: ixxxxx#27 nsp=1 mass=400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=536: ixxxxx#27 nsp=1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=536: ixxxxx#27 nsp=1 mass=400 + -7.999999999999999e+00, -5.999999999999999e+00, // itest=536: ixxxxx#27 nsp=1 mass=400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=536: ixxxxx#27 nsp=1 mass=400 + -1.600000000000000e+01, -1.200000000000000e+01 } ); // itest=536: ixxxxx#27 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=537: ixxxxx#27 nsp=1 mass=-400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=537: ixxxxx#27 nsp=1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00, // itest=537: ixxxxx#27 nsp=1 mass=-400 + 7.999999999999999e+00, 5.999999999999999e+00, // itest=537: ixxxxx#27 nsp=1 mass=-400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=537: ixxxxx#27 nsp=1 mass=-400 + -1.600000000000000e+01, -1.200000000000000e+01 } ); // itest=537: ixxxxx#27 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=538: vxxxxx#27 nsp=1 mass=400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=538: vxxxxx#27 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=538: vxxxxx#27 nsp=1 mass=400 + 0.000000000000000e+00, 4.242640687119285e-01, // itest=538: vxxxxx#27 nsp=1 mass=400 + 0.000000000000000e+00, -5.656854249492381e-01, // itest=538: vxxxxx#27 nsp=1 mass=400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=538: vxxxxx#27 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=539: vxxxxx#27 nsp=1 mass=-400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=539: vxxxxx#27 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=539: vxxxxx#27 nsp=1 mass=-400 + 0.000000000000000e+00, 4.242640687119285e-01, // itest=539: vxxxxx#27 nsp=1 mass=-400 + 0.000000000000000e+00, -5.656854249492381e-01, // itest=539: vxxxxx#27 nsp=1 mass=-400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=539: vxxxxx#27 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=540: sxxxxx#27 nsp=1 mass=400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=540: sxxxxx#27 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=540: sxxxxx#27 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=540: sxxxxx#27 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=540: sxxxxx#27 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=540: sxxxxx#27 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=541: sxxxxx#27 nsp=1 mass=-400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=541: sxxxxx#27 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=541: sxxxxx#27 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=541: sxxxxx#27 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=541: sxxxxx#27 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=541: sxxxxx#27 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=542: oxxxxx#27 nsp=1 mass=400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=542: oxxxxx#27 nsp=1 mass=400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=542: oxxxxx#27 nsp=1 mass=400 + -1.600000000000000e+01, 1.200000000000000e+01, // itest=542: oxxxxx#27 nsp=1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=542: oxxxxx#27 nsp=1 mass=400 + -7.999999999999999e+00, 5.999999999999999e+00 } ); // itest=542: oxxxxx#27 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=543: oxxxxx#27 nsp=1 mass=-400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=543: oxxxxx#27 nsp=1 mass=-400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=543: oxxxxx#27 nsp=1 mass=-400 + -1.600000000000000e+01, 1.200000000000000e+01, // itest=543: oxxxxx#27 nsp=1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00, // itest=543: oxxxxx#27 nsp=1 mass=-400 + 7.999999999999999e+00, -5.999999999999999e+00 } ); // itest=543: oxxxxx#27 nsp=1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=544: ixxxxx#28 nsp=1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=544: ixxxxx#28 nsp=1 mass=400 + 1.216552506059644e+01, 0.000000000000000e+00, // itest=544: ixxxxx#28 nsp=1 mass=400 + 4.931969619160719e+00, 5.260767593771432e+00, // itest=544: ixxxxx#28 nsp=1 mass=400 + 2.433105012119288e+01, 0.000000000000000e+00, // itest=544: ixxxxx#28 nsp=1 mass=400 + 9.863939238321439e+00, 1.052153518754287e+01 } ); // itest=544: ixxxxx#28 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=545: ixxxxx#28 nsp=1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=545: ixxxxx#28 nsp=1 mass=-400 + -1.216552506059644e+01, -0.000000000000000e+00, // itest=545: ixxxxx#28 nsp=1 mass=-400 + -4.931969619160719e+00, -5.260767593771432e+00, // itest=545: ixxxxx#28 nsp=1 mass=-400 + 2.433105012119288e+01, 0.000000000000000e+00, // itest=545: ixxxxx#28 nsp=1 mass=-400 + 9.863939238321439e+00, 1.052153518754287e+01 } ); // itest=545: ixxxxx#28 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=546: vxxxxx#28 nsp=1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=546: vxxxxx#28 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=546: vxxxxx#28 nsp=1 mass=400 + -2.321373168788980e-01, -5.158607041753289e-01, // itest=546: vxxxxx#28 nsp=1 mass=400 + -2.476131380041579e-01, 4.836194101643708e-01, // itest=546: vxxxxx#28 nsp=1 mass=400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=546: vxxxxx#28 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=547: vxxxxx#28 nsp=1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=547: vxxxxx#28 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=547: vxxxxx#28 nsp=1 mass=-400 + -2.321373168788980e-01, -5.158607041753289e-01, // itest=547: vxxxxx#28 nsp=1 mass=-400 + -2.476131380041579e-01, 4.836194101643708e-01, // itest=547: vxxxxx#28 nsp=1 mass=-400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=547: vxxxxx#28 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=548: sxxxxx#28 nsp=1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=548: sxxxxx#28 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=548: sxxxxx#28 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=548: sxxxxx#28 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=548: sxxxxx#28 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=548: sxxxxx#28 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=549: sxxxxx#28 nsp=1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=549: sxxxxx#28 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=549: sxxxxx#28 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=549: sxxxxx#28 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=549: sxxxxx#28 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=549: sxxxxx#28 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=550: oxxxxx#28 nsp=1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=550: oxxxxx#28 nsp=1 mass=400 + 2.433105012119288e+01, 0.000000000000000e+00, // itest=550: oxxxxx#28 nsp=1 mass=400 + 9.863939238321439e+00, -1.052153518754287e+01, // itest=550: oxxxxx#28 nsp=1 mass=400 + 1.216552506059644e+01, 0.000000000000000e+00, // itest=550: oxxxxx#28 nsp=1 mass=400 + 4.931969619160719e+00, -5.260767593771432e+00 } ); // itest=550: oxxxxx#28 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=551: oxxxxx#28 nsp=1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=551: oxxxxx#28 nsp=1 mass=-400 + 2.433105012119288e+01, 0.000000000000000e+00, // itest=551: oxxxxx#28 nsp=1 mass=-400 + 9.863939238321439e+00, -1.052153518754287e+01, // itest=551: oxxxxx#28 nsp=1 mass=-400 + -1.216552506059644e+01, -0.000000000000000e+00, // itest=551: oxxxxx#28 nsp=1 mass=-400 + -4.931969619160719e+00, 5.260767593771432e+00 } ); // itest=551: oxxxxx#28 nsp=1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=552: ixxxxx#29 nsp=1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=552: ixxxxx#29 nsp=1 mass=400 + 7.211102550927978e+00, 0.000000000000000e+00, // itest=552: ixxxxx#29 nsp=1 mass=400 + 8.320502943378436e+00, 8.875203139603666e+00, // itest=552: ixxxxx#29 nsp=1 mass=400 + 1.442220510185596e+01, 0.000000000000000e+00, // itest=552: ixxxxx#29 nsp=1 mass=400 + 1.664100588675688e+01, 1.775040627920733e+01 } ); // itest=552: ixxxxx#29 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=553: ixxxxx#29 nsp=1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=553: ixxxxx#29 nsp=1 mass=-400 + -7.211102550927978e+00, -0.000000000000000e+00, // itest=553: ixxxxx#29 nsp=1 mass=-400 + -8.320502943378436e+00, -8.875203139603666e+00, // itest=553: ixxxxx#29 nsp=1 mass=-400 + 1.442220510185596e+01, 0.000000000000000e+00, // itest=553: ixxxxx#29 nsp=1 mass=-400 + 1.664100588675688e+01, 1.775040627920733e+01 } ); // itest=553: ixxxxx#29 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=554: vxxxxx#29 nsp=1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=554: vxxxxx#29 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=554: vxxxxx#29 nsp=1 mass=400 + 2.321373168788980e-01, -5.158607041753289e-01, // itest=554: vxxxxx#29 nsp=1 mass=400 + 2.476131380041579e-01, 4.836194101643708e-01, // itest=554: vxxxxx#29 nsp=1 mass=400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=554: vxxxxx#29 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=555: vxxxxx#29 nsp=1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=555: vxxxxx#29 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=555: vxxxxx#29 nsp=1 mass=-400 + 2.321373168788980e-01, -5.158607041753289e-01, // itest=555: vxxxxx#29 nsp=1 mass=-400 + 2.476131380041579e-01, 4.836194101643708e-01, // itest=555: vxxxxx#29 nsp=1 mass=-400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=555: vxxxxx#29 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=556: sxxxxx#29 nsp=1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=556: sxxxxx#29 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=556: sxxxxx#29 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=556: sxxxxx#29 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=556: sxxxxx#29 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=556: sxxxxx#29 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=557: sxxxxx#29 nsp=1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=557: sxxxxx#29 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=557: sxxxxx#29 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=557: sxxxxx#29 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=557: sxxxxx#29 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=557: sxxxxx#29 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=558: oxxxxx#29 nsp=1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=558: oxxxxx#29 nsp=1 mass=400 + 1.442220510185596e+01, 0.000000000000000e+00, // itest=558: oxxxxx#29 nsp=1 mass=400 + 1.664100588675688e+01, -1.775040627920733e+01, // itest=558: oxxxxx#29 nsp=1 mass=400 + 7.211102550927978e+00, 0.000000000000000e+00, // itest=558: oxxxxx#29 nsp=1 mass=400 + 8.320502943378436e+00, -8.875203139603666e+00 } ); // itest=558: oxxxxx#29 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=559: oxxxxx#29 nsp=1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=559: oxxxxx#29 nsp=1 mass=-400 + 1.442220510185596e+01, 0.000000000000000e+00, // itest=559: oxxxxx#29 nsp=1 mass=-400 + 1.664100588675688e+01, -1.775040627920733e+01, // itest=559: oxxxxx#29 nsp=1 mass=-400 + -7.211102550927978e+00, -0.000000000000000e+00, // itest=559: oxxxxx#29 nsp=1 mass=-400 + -8.320502943378436e+00, 8.875203139603666e+00 } ); // itest=559: oxxxxx#29 nsp=1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=560: ixxxxx#30 nsp=1 mass=500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=560: ixxxxx#30 nsp=1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=560: ixxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=560: ixxxxx#30 nsp=1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=560: ixxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=560: ixxxxx#30 nsp=1 mass=500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=561: ixxxxx#30 nsp=1 mass=-500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=561: ixxxxx#30 nsp=1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=561: ixxxxx#30 nsp=1 mass=-500 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=561: ixxxxx#30 nsp=1 mass=-500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=561: ixxxxx#30 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=561: ixxxxx#30 nsp=1 mass=-500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=562: vxxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=562: vxxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=562: vxxxxx#30 nsp=1 mass=500 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=562: vxxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=562: vxxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=562: vxxxxx#30 nsp=1 mass=500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=563: vxxxxx#30 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=563: vxxxxx#30 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=563: vxxxxx#30 nsp=1 mass=-500 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=563: vxxxxx#30 nsp=1 mass=-500 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=563: vxxxxx#30 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=563: vxxxxx#30 nsp=1 mass=-500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=564: sxxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=564: sxxxxx#30 nsp=1 mass=500 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=564: sxxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=564: sxxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=564: sxxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=564: sxxxxx#30 nsp=1 mass=500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=565: sxxxxx#30 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=565: sxxxxx#30 nsp=1 mass=-500 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=565: sxxxxx#30 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=565: sxxxxx#30 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=565: sxxxxx#30 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=565: sxxxxx#30 nsp=1 mass=-500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=566: oxxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=566: oxxxxx#30 nsp=1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=566: oxxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=566: oxxxxx#30 nsp=1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=566: oxxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=566: oxxxxx#30 nsp=1 mass=500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=567: oxxxxx#30 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=567: oxxxxx#30 nsp=1 mass=-500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=567: oxxxxx#30 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=567: oxxxxx#30 nsp=1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=567: oxxxxx#30 nsp=1 mass=-500 + -0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=567: oxxxxx#30 nsp=1 mass=-500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=568: ixxxxx#31 nsp=1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=568: ixxxxx#31 nsp=1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=568: ixxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=568: ixxxxx#31 nsp=1 mass=400 + 2.828427124746190e+01, 0.000000000000000e+00, // itest=568: ixxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=568: ixxxxx#31 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=569: ixxxxx#31 nsp=1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=569: ixxxxx#31 nsp=1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=569: ixxxxx#31 nsp=1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=569: ixxxxx#31 nsp=1 mass=-400 + 2.828427124746190e+01, 0.000000000000000e+00, // itest=569: ixxxxx#31 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=569: ixxxxx#31 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=570: vxxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=570: vxxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=570: vxxxxx#31 nsp=1 mass=400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=570: vxxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=570: vxxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=570: vxxxxx#31 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=571: vxxxxx#31 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=571: vxxxxx#31 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=571: vxxxxx#31 nsp=1 mass=-400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=571: vxxxxx#31 nsp=1 mass=-400 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=571: vxxxxx#31 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=571: vxxxxx#31 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=572: sxxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=572: sxxxxx#31 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=572: sxxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=572: sxxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=572: sxxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=572: sxxxxx#31 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=573: sxxxxx#31 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=573: sxxxxx#31 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=573: sxxxxx#31 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=573: sxxxxx#31 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=573: sxxxxx#31 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=573: sxxxxx#31 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=574: oxxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=574: oxxxxx#31 nsp=1 mass=400 + 2.828427124746190e+01, 0.000000000000000e+00, // itest=574: oxxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=574: oxxxxx#31 nsp=1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=574: oxxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=574: oxxxxx#31 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=575: oxxxxx#31 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=575: oxxxxx#31 nsp=1 mass=-400 + 2.828427124746190e+01, 0.000000000000000e+00, // itest=575: oxxxxx#31 nsp=1 mass=-400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=575: oxxxxx#31 nsp=1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=575: oxxxxx#31 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=575: oxxxxx#31 nsp=1 mass=-400 diff --git a/epochX/cudacpp/ee_mumu.mad/src/HelAmps_sm.h b/epochX/cudacpp/ee_mumu.mad/src/HelAmps_sm.h index fe9cb24d88..72bdda81f8 100644 --- a/epochX/cudacpp/ee_mumu.mad/src/HelAmps_sm.h +++ b/epochX/cudacpp/ee_mumu.mad/src/HelAmps_sm.h @@ -1,3 +1,4 @@ +// Copyright (C) 2010 The ALOHA Development team and Contributors. // Copyright (C) 2010 The MadGraph5_aMC@NLO development team and contributors. // Created by: J. Alwall (Sep 2010) for the MG5aMC backend. //========================================================================== @@ -21,6 +22,7 @@ #include "Parameters_sm.h" +#include //#include //#include //#include @@ -190,6 +192,9 @@ namespace mg5amcCpu const int ipar ) // input: particle# out of npar { mgDebug( 0, __FUNCTION__ ); + // NEW IMPLEMENTATION FIXING FLOATING POINT EXCEPTIONS IN SIMD CODE (#701) + // Variables xxxDENOM are a hack to avoid division-by-0 FPE while preserving speed (#701 and #727) + // Variables xxxDENOM are declared as 'volatile' to make sure they are not optimized away on clang! (#724) const fptype_sv& pvec0 = M_ACCESS::kernelAccessIp4IparConst( momenta, 0, ipar ); const fptype_sv& pvec1 = M_ACCESS::kernelAccessIp4IparConst( momenta, 1, ipar ); const fptype_sv& pvec2 = M_ACCESS::kernelAccessIp4IparConst( momenta, 2, ipar ); @@ -201,6 +206,11 @@ namespace mg5amcCpu if( fmass != 0. ) { const fptype_sv pp = fpmin( pvec0, fpsqrt( pvec1 * pvec1 + pvec2 * pvec2 + pvec3 * pvec3 ) ); + // In C++ ixxxxx, use a single ip/im numbering that is valid both for pp==0 and pp>0, which have two numbering schemes in Fortran ixxxxx: + // for pp==0, Fortran sqm(0:1) has indexes 0,1 as in C++; but for Fortran pp>0, omega(2) has indexes 1,2 and not 0,1 + // NB: this is only possible in ixxxx, but in oxxxxx two different numbering schemes must be used + const int ip = ( 1 + nh ) / 2; // NB: same as in Fortran pp==0, differs from Fortran pp>0, which is (3+nh)/2 because omega(2) has indexes 1,2 + const int im = ( 1 - nh ) / 2; // NB: same as in Fortran pp==0, differs from Fortran pp>0, which is (3-nh)/2 because omega(2) has indexes 1,2 #ifndef MGONGPU_CPPSIMD if( pp == 0. ) { @@ -208,8 +218,6 @@ namespace mg5amcCpu fptype sqm[2] = { fpsqrt( std::abs( fmass ) ), 0. }; // possibility of negative fermion masses //sqm[1] = ( fmass < 0. ? -abs( sqm[0] ) : abs( sqm[0] ) ); // AV: why abs here? sqm[1] = ( fmass < 0. ? -sqm[0] : sqm[0] ); // AV: removed an abs here - const int ip = ( 1 + nh ) / 2; // NB: Fortran sqm(0:1) also has indexes 0,1 as in C++ - const int im = ( 1 - nh ) / 2; // NB: Fortran sqm(0:1) also has indexes 0,1 as in C++ fi[2] = cxmake( ip * sqm[ip], 0 ); fi[3] = cxmake( im * nsf * sqm[ip], 0 ); fi[4] = cxmake( ip * nsf * sqm[im], 0 ); @@ -221,8 +229,6 @@ namespace mg5amcCpu fptype( 1 + nsf - ( 1 - nsf ) * nh ) * (fptype)0.5 }; fptype omega[2] = { fpsqrt( pvec0 + pp ), 0. }; omega[1] = fmass / omega[0]; - const int ip = ( 1 + nh ) / 2; // NB: Fortran is (3+nh)/2 because omega(2) has indexes 1,2 and not 0,1 - const int im = ( 1 - nh ) / 2; // NB: Fortran is (3-nh)/2 because omega(2) has indexes 1,2 and not 0,1 const fptype sfomega[2] = { sf[0] * omega[ip], sf[1] * omega[im] }; const fptype pp3 = fpmax( pp + pvec3, 0. ); const cxtype chi[2] = { cxmake( fpsqrt( pp3 * (fptype)0.5 / pp ), 0. ), @@ -233,8 +239,6 @@ namespace mg5amcCpu fi[5] = sfomega[1] * chi[ip]; } #else - const int ip = ( 1 + nh ) / 2; - const int im = ( 1 - nh ) / 2; // Branch A: pp == 0. // NB: Do not use "abs" for floats! It returns an integer with no build warning! Use std::abs! fptype sqm[2] = { fpsqrt( std::abs( fmass ) ), 0 }; // possibility of negative fermion masses (NB: SCALAR!) @@ -250,10 +254,12 @@ namespace mg5amcCpu omega[1] = fmass / omega[0]; const fptype_v sfomega[2] = { sf[0] * omega[ip], sf[1] * omega[im] }; const fptype_v pp3 = fpmax( pp + pvec3, 0 ); - const cxtype_v chi[2] = { cxmake( fpsqrt( pp3 * 0.5 / pp ), 0 ), + volatile fptype_v ppDENOM = fpternary( pp != 0, pp, 1. ); // hack: ppDENOM[ieppV]=1 if pp[ieppV]==0 + volatile fptype_v pp3DENOM = fpternary( pp3 != 0, pp3, 1. ); // hack: pp3DENOM[ieppV]=1 if pp3[ieppV]==0 + const cxtype_v chi[2] = { cxmake( fpsqrt( pp3 * 0.5 / ppDENOM ), 0 ), // hack: dummy[ieppV] is not used if pp[ieppV]==0 cxternary( ( pp3 == 0. ), cxmake( -nh, 0 ), - cxmake( (fptype)nh * pvec1, pvec2 ) / fpsqrt( 2. * pp * pp3 ) ) }; + cxmake( (fptype)nh * pvec1, pvec2 ) / fpsqrt( 2. * ppDENOM * pp3DENOM ) ) }; // hack: dummy[ieppV] is not used if pp[ieppV]==0 const cxtype_v fiB_2 = sfomega[0] * chi[im]; const cxtype_v fiB_3 = sfomega[0] * chi[ip]; const cxtype_v fiB_4 = sfomega[1] * chi[im]; @@ -271,7 +277,16 @@ namespace mg5amcCpu const fptype_sv sqp0p3 = fpternary( ( pvec1 == 0. and pvec2 == 0. and pvec3 < 0. ), fptype_sv{ 0 }, fpsqrt( fpmax( pvec0 + pvec3, 0. ) ) * (fptype)nsf ); - const cxtype_sv chi[2] = { cxmake( sqp0p3, 0. ), cxternary( ( sqp0p3 == 0. ), cxmake( -(fptype)nhel * fpsqrt( 2. * pvec0 ), 0. ), cxmake( (fptype)nh * pvec1, pvec2 ) / sqp0p3 ) }; +#ifdef MGONGPU_CPPSIMD + volatile fptype_v sqp0p3DENOM = fpternary( sqp0p3 != 0, sqp0p3, 1. ); // hack: dummy sqp0p3DENOM[ieppV]=1 if sqp0p3[ieppV]==0 + cxtype_sv chi[2] = { cxmake( sqp0p3, 0. ), + cxternary( sqp0p3 == 0, + cxmake( -(fptype)nhel * fpsqrt( 2. * pvec0 ), 0. ), + cxmake( (fptype)nh * pvec1, pvec2 ) / (const fptype_v)sqp0p3DENOM ) }; // hack: dummy[ieppV] is not used if sqp0p3[ieppV]==0 +#else + const cxtype_sv chi[2] = { cxmake( sqp0p3, 0. ), + ( sqp0p3 == 0. ? cxmake( -(fptype)nhel * fpsqrt( 2. * pvec0 ), 0. ) : cxmake( (fptype)nh * pvec1, pvec2 ) / sqp0p3 ) }; +#endif if( nh == 1 ) { fi[2] = cxzero_sv(); @@ -422,6 +437,9 @@ namespace mg5amcCpu const int ipar ) // input: particle# out of npar { mgDebug( 0, __FUNCTION__ ); + // NEW IMPLEMENTATION FIXING FLOATING POINT EXCEPTIONS IN SIMD CODE (#701) + // Variables xxxDENOM are a hack to avoid division-by-0 FPE while preserving speed (#701 and #727) + // Variables xxxDENOM are declared as 'volatile' to make sure they are not optimized away on clang! (#724) const fptype_sv& pvec0 = M_ACCESS::kernelAccessIp4IparConst( momenta, 0, ipar ); const fptype_sv& pvec1 = M_ACCESS::kernelAccessIp4IparConst( momenta, 1, ipar ); const fptype_sv& pvec2 = M_ACCESS::kernelAccessIp4IparConst( momenta, 2, ipar ); @@ -472,13 +490,15 @@ namespace mg5amcCpu const cxtype vcA_4 = cxmake( 0, nsvahl * sqh ); const cxtype vcA_5 = cxmake( hel0, 0 ); // Branch B: pp != 0. - const fptype_v emp = pvec0 / ( vmass * pp ); + volatile fptype_v ppDENOM = fpternary( pp != 0, pp, 1. ); // hack: ppDENOM[ieppV]=1 if pp[ieppV]==0 + const fptype_v emp = pvec0 / ( vmass * ppDENOM ); // hack: dummy[ieppV] is not used if pp[ieppV]==0 const cxtype_v vcB_2 = cxmake( hel0 * pp / vmass, 0 ); - const cxtype_v vcB_5 = cxmake( hel0 * pvec3 * emp + hel * pt / pp * sqh, 0 ); + const cxtype_v vcB_5 = cxmake( hel0 * pvec3 * emp + hel * pt / ppDENOM * sqh, 0 ); // hack: dummy[ieppV] is not used if pp[ieppV]==0 // Branch B1: pp != 0. and pt != 0. - const fptype_v pzpt = pvec3 / ( pp * pt ) * sqh * hel; - const cxtype_v vcB1_3 = cxmake( hel0 * pvec1 * emp - pvec1 * pzpt, -(fptype)nsvahl * pvec2 / pt * sqh ); - const cxtype_v vcB1_4 = cxmake( hel0 * pvec2 * emp - pvec2 * pzpt, (fptype)nsvahl * pvec1 / pt * sqh ); + volatile fptype_v ptDENOM = fpternary( pt != 0, pt, 1. ); // hack: ptDENOM[ieppV]=1 if pt[ieppV]==0 + const fptype_v pzpt = pvec3 / ( ppDENOM * ptDENOM ) * sqh * hel; // hack: dummy[ieppV] is not used if pp[ieppV]==0 + const cxtype_v vcB1_3 = cxmake( hel0 * pvec1 * emp - pvec1 * pzpt, -(fptype)nsvahl * pvec2 / ptDENOM * sqh ); // hack: dummy[ieppV] is not used if pt[ieppV]==0 + const cxtype_v vcB1_4 = cxmake( hel0 * pvec2 * emp - pvec2 * pzpt, (fptype)nsvahl * pvec1 / ptDENOM * sqh ); // hack: dummy[ieppV] is not used if pt[ieppV]==0 // Branch B2: pp != 0. and pt == 0. const cxtype vcB2_3 = cxmake( -hel * sqh, 0. ); const cxtype_v vcB2_4 = cxmake( 0., (fptype)nsvahl * fpternary( ( pvec3 < 0 ), -sqh, sqh ) ); // AV: removed an abs here @@ -513,9 +533,10 @@ namespace mg5amcCpu } #else // Branch A: pt != 0. - const fptype_v pzpt = pvec3 / ( pp * pt ) * sqh * hel; - const cxtype_v vcA_3 = cxmake( -pvec1 * pzpt, -(fptype)nsv * pvec2 / pt * sqh ); - const cxtype_v vcA_4 = cxmake( -pvec2 * pzpt, (fptype)nsv * pvec1 / pt * sqh ); + volatile fptype_v ptDENOM = fpternary( pt != 0, pt, 1. ); // hack: ptDENOM[ieppV]=1 if pt[ieppV]==0 + const fptype_v pzpt = pvec3 / ( pp * ptDENOM ) * sqh * hel; // hack: dummy[ieppV] is not used if pt[ieppV]==0 + const cxtype_v vcA_3 = cxmake( -pvec1 * pzpt, -(fptype)nsv * pvec2 / ptDENOM * sqh ); // hack: dummy[ieppV] is not used if pt[ieppV]==0 + const cxtype_v vcA_4 = cxmake( -pvec2 * pzpt, (fptype)nsv * pvec1 / ptDENOM * sqh ); // hack: dummy[ieppV] is not used if pt[ieppV]==0 // Branch B: pt == 0. const cxtype vcB_3 = cxmake( -(fptype)hel * sqh, 0 ); const cxtype_v vcB_4 = cxmake( 0, (fptype)nsv * fpternary( ( pvec3 < 0 ), -sqh, sqh ) ); // AV: removed an abs here @@ -567,6 +588,9 @@ namespace mg5amcCpu const int ipar ) // input: particle# out of npar { mgDebug( 0, __FUNCTION__ ); + // NEW IMPLEMENTATION FIXING FLOATING POINT EXCEPTIONS IN SIMD CODE (#701) + // Variables xxxDENOM are a hack to avoid division-by-0 FPE while preserving speed (#701 and #727) + // Variables xxxDENOM are declared as 'volatile' to make sure they are not optimized away on clang! (#724) const fptype_sv& pvec0 = M_ACCESS::kernelAccessIp4IparConst( momenta, 0, ipar ); const fptype_sv& pvec1 = M_ACCESS::kernelAccessIp4IparConst( momenta, 1, ipar ); const fptype_sv& pvec2 = M_ACCESS::kernelAccessIp4IparConst( momenta, 2, ipar ); @@ -630,10 +654,12 @@ namespace mg5amcCpu const int imB = ( 1 - nh ) / 2; const fptype_v sfomeg[2] = { sf[0] * omega[ipB], sf[1] * omega[imB] }; const fptype_v pp3 = fpmax( pp + pvec3, 0. ); - const cxtype_v chi[2] = { cxmake( fpsqrt( pp3 * 0.5 / pp ), 0. ), + volatile fptype_v ppDENOM = fpternary( pp != 0, pp, 1. ); // hack: ppDENOM[ieppV]=1 if pp[ieppV]==0 + volatile fptype_v pp3DENOM = fpternary( pp3 != 0, pp3, 1. ); // hack: pp3DENOM[ieppV]=1 if pp3[ieppV]==0 + const cxtype_v chi[2] = { cxmake( fpsqrt( pp3 * 0.5 / ppDENOM ), 0. ), // hack: dummy[ieppV] is not used if pp[ieppV]==0 ( cxternary( ( pp3 == 0. ), cxmake( -nh, 0. ), - cxmake( (fptype)nh * pvec1, -pvec2 ) / fpsqrt( 2. * pp * pp3 ) ) ) }; + cxmake( (fptype)nh * pvec1, -pvec2 ) / fpsqrt( 2. * ppDENOM * pp3DENOM ) ) ) }; // hack: dummy[ieppV] is not used if pp[ieppV]==0 const cxtype_v foB_2 = sfomeg[1] * chi[imB]; const cxtype_v foB_3 = sfomeg[1] * chi[ipB]; const cxtype_v foB_4 = sfomeg[0] * chi[imB]; @@ -651,10 +677,16 @@ namespace mg5amcCpu const fptype_sv sqp0p3 = fpternary( ( pvec1 == 0. ) and ( pvec2 == 0. ) and ( pvec3 < 0. ), 0, fpsqrt( fpmax( pvec0 + pvec3, 0. ) ) * (fptype)nsf ); +#ifdef MGONGPU_CPPSIMD + volatile fptype_v sqp0p3DENOM = fpternary( sqp0p3 != 0, sqp0p3, 1. ); // hack: sqp0p3DENOM[ieppV]=1 if sqp0p3[ieppV]==0 + const cxtype_v chi[2] = { cxmake( sqp0p3, 0. ), + cxternary( ( sqp0p3 == 0. ), + cxmake( -nhel, 0. ) * fpsqrt( 2. * pvec0 ), + cxmake( (fptype)nh * pvec1, -pvec2 ) / (const fptype_sv)sqp0p3DENOM ) }; // hack: dummy[ieppV] is not used if sqp0p3[ieppV]==0 +#else const cxtype_sv chi[2] = { cxmake( sqp0p3, 0. ), - cxternary( ( sqp0p3 == 0. ), - cxmake( -nhel, 0. ) * fpsqrt( 2. * pvec0 ), - cxmake( (fptype)nh * pvec1, -pvec2 ) / sqp0p3 ) }; + ( sqp0p3 == 0. ? cxmake( -nhel, 0. ) * fpsqrt( 2. * pvec0 ) : cxmake( (fptype)nh * pvec1, -pvec2 ) / sqp0p3 ) }; +#endif if( nh == 1 ) { fo[2] = chi[0]; diff --git a/epochX/cudacpp/ee_mumu.mad/src/Parameters_sm.cc b/epochX/cudacpp/ee_mumu.mad/src/Parameters_sm.cc index daed91bb80..bb5bb59266 100644 --- a/epochX/cudacpp/ee_mumu.mad/src/Parameters_sm.cc +++ b/epochX/cudacpp/ee_mumu.mad/src/Parameters_sm.cc @@ -17,6 +17,12 @@ #include #include +#ifdef __CUDACC__ +using namespace mg5amcGpu; +#else +using namespace mg5amcCpu; +#endif + #ifndef MGONGPU_HARDCODE_PARAM // Initialize static instance diff --git a/epochX/cudacpp/ee_mumu.mad/src/Parameters_sm.h b/epochX/cudacpp/ee_mumu.mad/src/Parameters_sm.h index 852861ced0..0a9d742cda 100644 --- a/epochX/cudacpp/ee_mumu.mad/src/Parameters_sm.h +++ b/epochX/cudacpp/ee_mumu.mad/src/Parameters_sm.h @@ -26,187 +26,212 @@ #include "read_slha.h" -class Parameters_sm +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { -public: + class Parameters_sm + { + public: + + static Parameters_sm* getInstance(); - static Parameters_sm* getInstance(); + // Define "zero" + double zero, ZERO; - // Define "zero" - double zero, ZERO; + // Model parameters independent of aS + //double aS; // now retrieved event-by-event (as G) from Fortran (running alphas #373) + double mdl_WH, mdl_WW, mdl_WZ, mdl_WT, mdl_ymtau, mdl_ymt, mdl_ymb, mdl_Gf, aEWM1, mdl_MH, mdl_MZ, mdl_MTA, mdl_MT, mdl_MB, mdl_conjg__CKM3x3, mdl_conjg__CKM1x1, mdl_CKM3x3, mdl_MZ__exp__2, mdl_MZ__exp__4, mdl_sqrt__2, mdl_MH__exp__2, mdl_aEW, mdl_MW, mdl_sqrt__aEW, mdl_ee, mdl_MW__exp__2, mdl_sw2, mdl_cw, mdl_sqrt__sw2, mdl_sw, mdl_g1, mdl_gw, mdl_vev, mdl_vev__exp__2, mdl_lam, mdl_yb, mdl_yt, mdl_ytau, mdl_muH, mdl_ee__exp__2, mdl_sw__exp__2, mdl_cw__exp__2; + cxsmpl mdl_complexi, mdl_I1x33, mdl_I2x33, mdl_I3x33, mdl_I4x33; - // Model parameters independent of aS - //double aS; // now retrieved event-by-event (as G) from Fortran (running alphas #373) - double mdl_WH, mdl_WW, mdl_WZ, mdl_WT, mdl_ymtau, mdl_ymt, mdl_ymb, mdl_Gf, aEWM1, mdl_MH, mdl_MZ, mdl_MTA, mdl_MT, mdl_MB, mdl_conjg__CKM3x3, mdl_conjg__CKM1x1, mdl_CKM3x3, mdl_MZ__exp__2, mdl_MZ__exp__4, mdl_sqrt__2, mdl_MH__exp__2, mdl_aEW, mdl_MW, mdl_sqrt__aEW, mdl_ee, mdl_MW__exp__2, mdl_sw2, mdl_cw, mdl_sqrt__sw2, mdl_sw, mdl_g1, mdl_gw, mdl_vev, mdl_vev__exp__2, mdl_lam, mdl_yb, mdl_yt, mdl_ytau, mdl_muH, mdl_ee__exp__2, mdl_sw__exp__2, mdl_cw__exp__2; - cxsmpl mdl_complexi, mdl_I1x33, mdl_I2x33, mdl_I3x33, mdl_I4x33; + // Model couplings independent of aS + cxsmpl GC_3, GC_50, GC_59; - // Model couplings independent of aS - cxsmpl GC_3, GC_50, GC_59; + // Model parameters dependent on aS + //double mdl_sqrt__aS, G, mdl_G__exp__2; // now computed event-by-event (running alphas #373) - // Model parameters dependent on aS - //double mdl_sqrt__aS, G, mdl_G__exp__2; // now computed event-by-event (running alphas #373) + // Model couplings dependent on aS + //// (none) // now computed event-by-event (running alphas #373) - // Model couplings dependent on aS - //// (none) // now computed event-by-event (running alphas #373) + // Set parameters that are unchanged during the run + void setIndependentParameters( SLHAReader& slha ); - // Set parameters that are unchanged during the run - void setIndependentParameters( SLHAReader& slha ); + // Set couplings that are unchanged during the run + void setIndependentCouplings(); - // Set couplings that are unchanged during the run - void setIndependentCouplings(); + // Set parameters that are changed event by event + //void setDependentParameters(); // now computed event-by-event (running alphas #373) - // Set parameters that are changed event by event - //void setDependentParameters(); // now computed event-by-event (running alphas #373) + // Set couplings that are changed event by event + //void setDependentCouplings(); // now computed event-by-event (running alphas #373) - // Set couplings that are changed event by event - //void setDependentCouplings(); // now computed event-by-event (running alphas #373) + // Print parameters that are unchanged during the run + void printIndependentParameters(); - // Print parameters that are unchanged during the run - void printIndependentParameters(); + // Print couplings that are unchanged during the run + void printIndependentCouplings(); - // Print couplings that are unchanged during the run - void printIndependentCouplings(); + // Print parameters that are changed event by event + //void printDependentParameters(); // now computed event-by-event (running alphas #373) - // Print parameters that are changed event by event - //void printDependentParameters(); // now computed event-by-event (running alphas #373) + // Print couplings that are changed event by event + //void printDependentCouplings(); // now computed event-by-event (running alphas #373) - // Print couplings that are changed event by event - //void printDependentCouplings(); // now computed event-by-event (running alphas #373) + private: -private: + static Parameters_sm* instance; + }; - static Parameters_sm* instance; -}; +} // end namespace mg5amcGpu/mg5amcCpu #else #include #include -// Hardcoded constexpr physics parameters -namespace Parameters_sm // keep the same name rather than HardcodedParameters_sm for simplicity +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { - // Constexpr implementation of sqrt (see https://stackoverflow.com/a/34134071) - double constexpr sqrtNewtonRaphson( double x, double curr, double prev ) - { - return curr == prev ? curr : sqrtNewtonRaphson( x, 0.5 * ( curr + x / curr ), curr ); - } - double constexpr constexpr_sqrt( double x ) + // Hardcoded constexpr physics parameters + namespace Parameters_sm // keep the same name rather than HardcodedParameters_sm for simplicity { - return x >= 0 // && x < std::numeric_limits::infinity() // avoid -Wtautological-constant-compare warning in fast math - ? sqrtNewtonRaphson( x, x, 0 ) - : std::numeric_limits::quiet_NaN(); - } + // Constexpr implementation of sqrt (see https://stackoverflow.com/a/34134071) + double constexpr sqrtNewtonRaphson( double x, double curr, double prev ) + { + return curr == prev ? curr : sqrtNewtonRaphson( x, 0.5 * ( curr + x / curr ), curr ); + } + double constexpr constexpr_sqrt( double x ) + { + return x >= 0 // && x < std::numeric_limits::infinity() // avoid -Wtautological-constant-compare warning in fast math + ? sqrtNewtonRaphson( x, x, 0 ) + : std::numeric_limits::quiet_NaN(); + } - // Constexpr implementation of floor (see https://stackoverflow.com/a/66146159) - constexpr int constexpr_floor( double d ) - { - const int i = static_cast( d ); - return d < i ? i - 1 : i; - } + // Constexpr implementation of floor (see https://stackoverflow.com/a/66146159) + constexpr int constexpr_floor( double d ) + { + const int i = static_cast( d ); + return d < i ? i - 1 : i; + } - // Constexpr implementation of pow - constexpr double constexpr_pow( double base, double exp ) - { - // NB(1): this implementation of constexpr_pow requires exponent >= 0 - assert( exp >= 0 ); // NB would fail at compile time with "error: call to non-‘constexpr’ function ‘void __assert_fail'" - // NB(2): this implementation of constexpr_pow requires an integer exponent - const int iexp = constexpr_floor( exp ); - assert( static_cast( iexp ) == exp ); // NB would fail at compile time with "error: call to non-‘constexpr’ function ‘void __assert_fail'" - // Iterative implementation of pow if exp is a non negative integer - return iexp == 0 ? 1 : base * constexpr_pow( base, iexp - 1 ); + // Constexpr implementation of pow + constexpr double constexpr_pow( double base, double exp ) + { + // NB(1): this implementation of constexpr_pow requires exponent >= 0 + assert( exp >= 0 ); // NB would fail at compile time with "error: call to non-‘constexpr’ function ‘void __assert_fail'" + // NB(2): this implementation of constexpr_pow requires an integer exponent + const int iexp = constexpr_floor( exp ); + assert( static_cast( iexp ) == exp ); // NB would fail at compile time with "error: call to non-‘constexpr’ function ‘void __assert_fail'" + // Iterative implementation of pow if exp is a non negative integer + return iexp == 0 ? 1 : base * constexpr_pow( base, iexp - 1 ); + } + + // Model parameters independent of aS + constexpr double zero = 0; + constexpr double ZERO = 0; + constexpr double mdl_WH = 6.382339e-03; + constexpr double mdl_WW = 2.047600e+00; + constexpr double mdl_WZ = 2.441404e+00; + constexpr double mdl_WT = 1.491500e+00; + constexpr double mdl_ymtau = 1.777000e+00; + constexpr double mdl_ymt = 1.730000e+02; + constexpr double mdl_ymb = 4.700000e+00; + //constexpr double aS = 1.180000e-01; // now retrieved event-by-event (as G) from Fortran (running alphas #373) + constexpr double mdl_Gf = 1.166390e-05; + constexpr double aEWM1 = 1.325070e+02; + constexpr double mdl_MH = 1.250000e+02; + constexpr double mdl_MZ = 9.118800e+01; + constexpr double mdl_MTA = 1.777000e+00; + constexpr double mdl_MT = 1.730000e+02; + constexpr double mdl_MB = 4.700000e+00; + constexpr double mdl_conjg__CKM3x3 = 1.; + constexpr double mdl_conjg__CKM1x1 = 1.; + constexpr double mdl_CKM3x3 = 1.; + constexpr cxsmpl mdl_complexi = cxsmpl( 0., 1. ); + constexpr double mdl_MZ__exp__2 = ( ( mdl_MZ ) * ( mdl_MZ ) ); + constexpr double mdl_MZ__exp__4 = ( ( mdl_MZ ) * ( mdl_MZ ) * ( mdl_MZ ) * ( mdl_MZ ) ); + constexpr double mdl_sqrt__2 = constexpr_sqrt( 2. ); + constexpr double mdl_MH__exp__2 = ( ( mdl_MH ) * ( mdl_MH ) ); + constexpr double mdl_aEW = 1. / aEWM1; + constexpr double mdl_MW = constexpr_sqrt( mdl_MZ__exp__2 / 2. + constexpr_sqrt( mdl_MZ__exp__4 / 4. - ( mdl_aEW * M_PI * mdl_MZ__exp__2 ) / ( mdl_Gf * mdl_sqrt__2 ) ) ); + constexpr double mdl_sqrt__aEW = constexpr_sqrt( mdl_aEW ); + constexpr double mdl_ee = 2. * mdl_sqrt__aEW * constexpr_sqrt( M_PI ); + constexpr double mdl_MW__exp__2 = ( ( mdl_MW ) * ( mdl_MW ) ); + constexpr double mdl_sw2 = 1. - mdl_MW__exp__2 / mdl_MZ__exp__2; + constexpr double mdl_cw = constexpr_sqrt( 1. - mdl_sw2 ); + constexpr double mdl_sqrt__sw2 = constexpr_sqrt( mdl_sw2 ); + constexpr double mdl_sw = mdl_sqrt__sw2; + constexpr double mdl_g1 = mdl_ee / mdl_cw; + constexpr double mdl_gw = mdl_ee / mdl_sw; + constexpr double mdl_vev = ( 2. * mdl_MW * mdl_sw ) / mdl_ee; + constexpr double mdl_vev__exp__2 = ( ( mdl_vev ) * ( mdl_vev ) ); + constexpr double mdl_lam = mdl_MH__exp__2 / ( 2. * mdl_vev__exp__2 ); + constexpr double mdl_yb = ( mdl_ymb * mdl_sqrt__2 ) / mdl_vev; + constexpr double mdl_yt = ( mdl_ymt * mdl_sqrt__2 ) / mdl_vev; + constexpr double mdl_ytau = ( mdl_ymtau * mdl_sqrt__2 ) / mdl_vev; + constexpr double mdl_muH = constexpr_sqrt( mdl_lam * mdl_vev__exp__2 ); + constexpr cxsmpl mdl_I1x33 = mdl_yb * mdl_conjg__CKM3x3; + constexpr cxsmpl mdl_I2x33 = mdl_yt * mdl_conjg__CKM3x3; + constexpr cxsmpl mdl_I3x33 = mdl_CKM3x3 * mdl_yt; + constexpr cxsmpl mdl_I4x33 = mdl_CKM3x3 * mdl_yb; + constexpr double mdl_ee__exp__2 = ( ( mdl_ee ) * ( mdl_ee ) ); + constexpr double mdl_sw__exp__2 = ( ( mdl_sw ) * ( mdl_sw ) ); + constexpr double mdl_cw__exp__2 = ( ( mdl_cw ) * ( mdl_cw ) ); + + // Model couplings independent of aS + constexpr cxsmpl GC_3 = -( mdl_ee * mdl_complexi ); + constexpr cxsmpl GC_50 = -( mdl_cw * mdl_ee * mdl_complexi ) / ( 2. * mdl_sw ); + constexpr cxsmpl GC_59 = ( mdl_ee * mdl_complexi * mdl_sw ) / ( 2. * mdl_cw ); + + // Model parameters dependent on aS + //constexpr double mdl_sqrt__aS = //constexpr_sqrt( aS ); // now computed event-by-event (running alphas #373) + //constexpr double G = 2. * mdl_sqrt__aS * //constexpr_sqrt( M_PI ); // now computed event-by-event (running alphas #373) + //constexpr double mdl_G__exp__2 = ( ( G ) * ( G ) ); // now computed event-by-event (running alphas #373) + + // Model couplings dependent on aS + // (none) // now computed event-by-event (running alphas #373) + + // Print parameters that are unchanged during the run + void printIndependentParameters(); + + // Print couplings that are unchanged during the run + void printIndependentCouplings(); + + // Print parameters that are changed event by event + //void printDependentParameters(); // now computed event-by-event (running alphas #373) + + // Print couplings that are changed event by event + //void printDependentCouplings(); // now computed event-by-event (running alphas #373) } - // Model parameters independent of aS - constexpr double zero = 0; - constexpr double ZERO = 0; - constexpr double mdl_WH = 6.382339e-03; - constexpr double mdl_WW = 2.047600e+00; - constexpr double mdl_WZ = 2.441404e+00; - constexpr double mdl_WT = 1.491500e+00; - constexpr double mdl_ymtau = 1.777000e+00; - constexpr double mdl_ymt = 1.730000e+02; - constexpr double mdl_ymb = 4.700000e+00; - //constexpr double aS = 1.180000e-01; // now retrieved event-by-event (as G) from Fortran (running alphas #373) - constexpr double mdl_Gf = 1.166390e-05; - constexpr double aEWM1 = 1.325070e+02; - constexpr double mdl_MH = 1.250000e+02; - constexpr double mdl_MZ = 9.118800e+01; - constexpr double mdl_MTA = 1.777000e+00; - constexpr double mdl_MT = 1.730000e+02; - constexpr double mdl_MB = 4.700000e+00; - constexpr double mdl_conjg__CKM3x3 = 1.; - constexpr double mdl_conjg__CKM1x1 = 1.; - constexpr double mdl_CKM3x3 = 1.; - constexpr cxsmpl mdl_complexi = cxsmpl( 0., 1. ); - constexpr double mdl_MZ__exp__2 = ( ( mdl_MZ ) * ( mdl_MZ ) ); - constexpr double mdl_MZ__exp__4 = ( ( mdl_MZ ) * ( mdl_MZ ) * ( mdl_MZ ) * ( mdl_MZ ) ); - constexpr double mdl_sqrt__2 = constexpr_sqrt( 2. ); - constexpr double mdl_MH__exp__2 = ( ( mdl_MH ) * ( mdl_MH ) ); - constexpr double mdl_aEW = 1. / aEWM1; - constexpr double mdl_MW = constexpr_sqrt( mdl_MZ__exp__2 / 2. + constexpr_sqrt( mdl_MZ__exp__4 / 4. - ( mdl_aEW * M_PI * mdl_MZ__exp__2 ) / ( mdl_Gf * mdl_sqrt__2 ) ) ); - constexpr double mdl_sqrt__aEW = constexpr_sqrt( mdl_aEW ); - constexpr double mdl_ee = 2. * mdl_sqrt__aEW * constexpr_sqrt( M_PI ); - constexpr double mdl_MW__exp__2 = ( ( mdl_MW ) * ( mdl_MW ) ); - constexpr double mdl_sw2 = 1. - mdl_MW__exp__2 / mdl_MZ__exp__2; - constexpr double mdl_cw = constexpr_sqrt( 1. - mdl_sw2 ); - constexpr double mdl_sqrt__sw2 = constexpr_sqrt( mdl_sw2 ); - constexpr double mdl_sw = mdl_sqrt__sw2; - constexpr double mdl_g1 = mdl_ee / mdl_cw; - constexpr double mdl_gw = mdl_ee / mdl_sw; - constexpr double mdl_vev = ( 2. * mdl_MW * mdl_sw ) / mdl_ee; - constexpr double mdl_vev__exp__2 = ( ( mdl_vev ) * ( mdl_vev ) ); - constexpr double mdl_lam = mdl_MH__exp__2 / ( 2. * mdl_vev__exp__2 ); - constexpr double mdl_yb = ( mdl_ymb * mdl_sqrt__2 ) / mdl_vev; - constexpr double mdl_yt = ( mdl_ymt * mdl_sqrt__2 ) / mdl_vev; - constexpr double mdl_ytau = ( mdl_ymtau * mdl_sqrt__2 ) / mdl_vev; - constexpr double mdl_muH = constexpr_sqrt( mdl_lam * mdl_vev__exp__2 ); - constexpr cxsmpl mdl_I1x33 = mdl_yb * mdl_conjg__CKM3x3; - constexpr cxsmpl mdl_I2x33 = mdl_yt * mdl_conjg__CKM3x3; - constexpr cxsmpl mdl_I3x33 = mdl_CKM3x3 * mdl_yt; - constexpr cxsmpl mdl_I4x33 = mdl_CKM3x3 * mdl_yb; - constexpr double mdl_ee__exp__2 = ( ( mdl_ee ) * ( mdl_ee ) ); - constexpr double mdl_sw__exp__2 = ( ( mdl_sw ) * ( mdl_sw ) ); - constexpr double mdl_cw__exp__2 = ( ( mdl_cw ) * ( mdl_cw ) ); - - // Model couplings independent of aS - constexpr cxsmpl GC_3 = -( mdl_ee * mdl_complexi ); - constexpr cxsmpl GC_50 = -( mdl_cw * mdl_ee * mdl_complexi ) / ( 2. * mdl_sw ); - constexpr cxsmpl GC_59 = ( mdl_ee * mdl_complexi * mdl_sw ) / ( 2. * mdl_cw ); - - // Model parameters dependent on aS - //constexpr double mdl_sqrt__aS = //constexpr_sqrt( aS ); // now computed event-by-event (running alphas #373) - //constexpr double G = 2. * mdl_sqrt__aS * //constexpr_sqrt( M_PI ); // now computed event-by-event (running alphas #373) - //constexpr double mdl_G__exp__2 = ( ( G ) * ( G ) ); // now computed event-by-event (running alphas #373) - - // Model couplings dependent on aS - // (none) // now computed event-by-event (running alphas #373) - - // Print parameters that are unchanged during the run - void printIndependentParameters(); - - // Print couplings that are unchanged during the run - void printIndependentCouplings(); - - // Print parameters that are changed event by event - //void printDependentParameters(); // now computed event-by-event (running alphas #373) - - // Print couplings that are changed event by event - //void printDependentCouplings(); // now computed event-by-event (running alphas #373) -} +} // end namespace mg5amcGpu/mg5amcCpu #endif //========================================================================== -namespace Parameters_sm_dependentCouplings +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { - constexpr size_t ndcoup = 0; // #couplings that vary event by event because they depend on the running alphas QCD - // NB: there are no aS-dependent couplings in this physics process - struct DependentCouplings_sv + namespace Parameters_sm_dependentCouplings { - // (none) - }; + constexpr size_t ndcoup = 0; // #couplings that vary event by event because they depend on the running alphas QCD + // NB: there are no aS-dependent couplings in this physics process + struct DependentCouplings_sv + { + // (none) + }; #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wunused-variable" // e.g. <> #pragma GCC diagnostic ignored "-Wunused-parameter" // e.g. <> @@ -214,50 +239,44 @@ namespace Parameters_sm_dependentCouplings #pragma nv_diagnostic push #pragma nv_diag_suppress 177 // e.g. <> #endif - __host__ __device__ inline const DependentCouplings_sv computeDependentCouplings_fromG( const fptype_sv& G_sv ) - { + __host__ __device__ inline const DependentCouplings_sv computeDependentCouplings_fromG( const fptype_sv& G_sv ) + { #ifdef MGONGPU_HARDCODE_PARAM - using namespace Parameters_sm; + using namespace Parameters_sm; #endif - // NB: hardcode cxtype cI(0,1) instead of cxtype (or hardcoded cxsmpl) mdl_complexi (which exists in Parameters_sm) because: - // (1) mdl_complexi is always (0,1); (2) mdl_complexi is undefined in device code; (3) need cxsmpl conversion to cxtype in code below - const cxtype cI( 0., 1. ); - DependentCouplings_sv out; - // Begin SM implementation - no special handling of vectors of floats as in EFT (#439) - { - const fptype_sv& G = G_sv; - // Model parameters dependent on aS - // (none) - // Model couplings dependent on aS - // (none) + // NB: hardcode cxtype cI(0,1) instead of cxtype (or hardcoded cxsmpl) mdl_complexi (which exists in Parameters_sm) because: + // (1) mdl_complexi is always (0,1); (2) mdl_complexi is undefined in device code; (3) need cxsmpl conversion to cxtype in code below + const cxtype cI( 0., 1. ); + DependentCouplings_sv out; + // Begin SM implementation - no special handling of vectors of floats as in EFT (#439) + { + const fptype_sv& G = G_sv; + // Model parameters dependent on aS + // (none) + // Model couplings dependent on aS + // (none) + } + // End SM implementation - no special handling of vectors of floats as in EFT (#439) + return out; } - // End SM implementation - no special handling of vectors of floats as in EFT (#439) - return out; - } #ifdef __CUDACC__ #pragma GCC diagnostic pop #pragma nv_diagnostic pop #endif -} + } -//========================================================================== + //========================================================================== -namespace Parameters_sm_independentCouplings -{ - constexpr size_t nicoup = 3; // #couplings that are fixed for all events because they do not depend on the running alphas QCD - //constexpr size_t ixcoup_GC_3 = 0 + Parameters_sm_dependentCouplings::ndcoup; // out of ndcoup+nicoup - //constexpr size_t ixcoup_GC_50 = 1 + Parameters_sm_dependentCouplings::ndcoup; // out of ndcoup+nicoup - //constexpr size_t ixcoup_GC_59 = 2 + Parameters_sm_dependentCouplings::ndcoup; // out of ndcoup+nicoup -} + namespace Parameters_sm_independentCouplings + { + constexpr size_t nicoup = 3; // #couplings that are fixed for all events because they do not depend on the running alphas QCD + //constexpr size_t ixcoup_GC_3 = 0 + Parameters_sm_dependentCouplings::ndcoup; // out of ndcoup+nicoup + //constexpr size_t ixcoup_GC_50 = 1 + Parameters_sm_dependentCouplings::ndcoup; // out of ndcoup+nicoup + //constexpr size_t ixcoup_GC_59 = 2 + Parameters_sm_dependentCouplings::ndcoup; // out of ndcoup+nicoup + } -//========================================================================== + //========================================================================== -#ifdef __CUDACC__ -namespace mg5amcGpu -#else -namespace mg5amcCpu -#endif -{ #pragma GCC diagnostic push #ifndef __clang__ #pragma GCC diagnostic ignored "-Wunused-but-set-variable" // e.g. <> @@ -277,7 +296,8 @@ namespace mg5amcCpu return; } #pragma GCC diagnostic pop -} + +} // end namespace mg5amcGpu/mg5amcCpu //========================================================================== diff --git a/epochX/cudacpp/ee_mumu.mad/src/cudacpp_src.mk b/epochX/cudacpp/ee_mumu.mad/src/cudacpp_src.mk index 21b6d924ff..554d7a704c 100644 --- a/epochX/cudacpp/ee_mumu.mad/src/cudacpp_src.mk +++ b/epochX/cudacpp/ee_mumu.mad/src/cudacpp_src.mk @@ -38,7 +38,13 @@ endif #------------------------------------------------------------------------------- -#=== Configure ccache for CUDA and C++ builds +#=== Configure the CUDA compiler (note: NVCC is already exported including ccache) + +###$(info NVCC=$(NVCC)) + +#------------------------------------------------------------------------------- + +#=== Configure ccache for C++ builds (note: NVCC is already exported including ccache) # Enable ccache if USECCACHE=1 ifeq ($(USECCACHE)$(shell echo $(CXX) | grep ccache),1) @@ -47,11 +53,6 @@ endif #ifeq ($(USECCACHE)$(shell echo $(AR) | grep ccache),1) # override AR:=ccache $(AR) #endif -#ifneq ($(NVCC),) -# ifeq ($(USECCACHE)$(shell echo $(NVCC) | grep ccache),1) -# override NVCC:=ccache $(NVCC) -# endif -#endif #------------------------------------------------------------------------------- @@ -115,7 +116,9 @@ else ifneq ($(shell $(CXX) --version | grep ^nvc++),) # support nvc++ #531 $(error Unknown AVX='$(AVX)': only 'none', 'sse4', 'avx2', '512y' and '512z' are supported) endif else - ifeq ($(AVX),sse4) + ifeq ($(AVX),none) + override AVXFLAGS = -march=x86-64 # no SIMD (see #588) + else ifeq ($(AVX),sse4) override AVXFLAGS = -march=nehalem # SSE4.2 with 128 width (xmm registers) else ifeq ($(AVX),avx2) override AVXFLAGS = -march=haswell # AVX2 with 256 width (ymm registers) [DEFAULT for clang] @@ -216,7 +219,7 @@ MG5AMC_COMMONLIB = mg5amc_common all.$(TAG): $(BUILDDIR)/.build.$(TAG) $(LIBDIR)/.build.$(TAG) $(LIBDIR)/lib$(MG5AMC_COMMONLIB).so # Target (and build options): debug -debug: OPTFLAGS = -g -O0 -DDEBUG2 +debug: OPTFLAGS = -g -O0 debug: all.$(TAG) # Target: tag-specific build lockfiles @@ -237,17 +240,31 @@ $(LIBDIR)/.build.$(TAG): # Generic target and build rules: objects from C++ compilation $(BUILDDIR)/%.o : %.cc *.h $(BUILDDIR)/.build.$(TAG) - @if [ ! -d $(BUILDDIR) ]; then mkdir -p $(BUILDDIR); fi - $(CXX) $(CPPFLAGS) $(CXXFLAGS) -c $< -o $@ + @if [ ! -d $(BUILDDIR) ]; then echo "mkdir -p $(BUILDDIR)"; mkdir -p $(BUILDDIR); fi + $(CXX) $(CPPFLAGS) $(CXXFLAGS) -fPIC -c $< -o $@ + +# Generic target and build rules: objects from CUDA compilation +$(BUILDDIR)/%_cu.o : %.cc *.h $(BUILDDIR)/.build.$(TAG) + @if [ ! -d $(BUILDDIR) ]; then echo "mkdir -p $(BUILDDIR)"; mkdir -p $(BUILDDIR); fi + $(NVCC) $(CPPFLAGS) $(CUFLAGS) -Xcompiler -fPIC -c -x cu $< -o $@ #------------------------------------------------------------------------------- cxx_objects=$(addprefix $(BUILDDIR)/, Parameters_sm.o read_slha.o) +ifneq ($(NVCC),) +cu_objects=$(addprefix $(BUILDDIR)/, Parameters_sm_cu.o) +endif # Target (and build rules): common (src) library +ifneq ($(NVCC),) +$(LIBDIR)/lib$(MG5AMC_COMMONLIB).so : $(cxx_objects) $(cu_objects) + @if [ ! -d $(LIBDIR) ]; then echo "mkdir -p $(LIBDIR)"; mkdir -p $(LIBDIR); fi + $(NVCC) -shared -o $@ $(cxx_objects) $(cu_objects) +else $(LIBDIR)/lib$(MG5AMC_COMMONLIB).so : $(cxx_objects) @if [ ! -d $(LIBDIR) ]; then echo "mkdir -p $(LIBDIR)"; mkdir -p $(LIBDIR); fi - $(CXX) -shared -o$@ $(cxx_objects) + $(CXX) -shared -o $@ $(cxx_objects) +endif #------------------------------------------------------------------------------- diff --git a/epochX/cudacpp/ee_mumu.mad/src/mgOnGpuConfig.h b/epochX/cudacpp/ee_mumu.mad/src/mgOnGpuConfig.h index 881353abac..cacab1031a 100644 --- a/epochX/cudacpp/ee_mumu.mad/src/mgOnGpuConfig.h +++ b/epochX/cudacpp/ee_mumu.mad/src/mgOnGpuConfig.h @@ -98,6 +98,7 @@ #endif #endif +// NB: namespace mgOnGpu includes types which are defined in exactly the same way for CPU and GPU builds (see #318 and #725) namespace mgOnGpu { diff --git a/epochX/cudacpp/ee_mumu.mad/src/mgOnGpuCxtypes.h b/epochX/cudacpp/ee_mumu.mad/src/mgOnGpuCxtypes.h index 0cb2f1db7e..b56348bc58 100644 --- a/epochX/cudacpp/ee_mumu.mad/src/mgOnGpuCxtypes.h +++ b/epochX/cudacpp/ee_mumu.mad/src/mgOnGpuCxtypes.h @@ -43,8 +43,12 @@ // COMPLEX TYPES: SIMPLE COMPLEX CLASS (cxsmpl) //========================================================================== +// NB: namespace mgOnGpu includes types which are defined in exactly the same way for CPU and GPU builds (see #318 and #725) namespace mgOnGpu /* clang-format off */ { + // The number of floating point types in a complex type (real, imaginary) + constexpr int nx2 = 2; + // --- Type definition (simple complex type derived from cxtype_v) template class cxsmpl @@ -78,128 +82,139 @@ namespace mgOnGpu /* clang-format off */ using mgOnGpu::cxsmpl; // Printout to stream for user defined types -template -inline __host__ __device__ std::ostream& -operator<<( std::ostream& out, const cxsmpl& c ) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { - out << std::complex( c.real(), c.imag() ); - return out; -} + template + inline __host__ std::ostream& + operator<<( std::ostream& out, const cxsmpl& c ) + { + out << std::complex( c.real(), c.imag() ); + return out; + } -// Operators for cxsmpl -template -inline __host__ __device__ constexpr cxsmpl -operator+( const cxsmpl a ) -{ - return a; -} + // Operators for cxsmpl + template + inline __host__ __device__ constexpr cxsmpl + operator+( const cxsmpl a ) + { + return a; + } -template -inline __host__ __device__ constexpr cxsmpl -operator-( const cxsmpl& a ) -{ - return cxsmpl( -a.real(), -a.imag() ); -} + template + inline __host__ __device__ constexpr cxsmpl + operator-( const cxsmpl& a ) + { + return cxsmpl( -a.real(), -a.imag() ); + } -template -inline __host__ __device__ constexpr cxsmpl -operator+( const cxsmpl& a, const cxsmpl& b ) -{ - return cxsmpl( a.real() + b.real(), a.imag() + b.imag() ); -} + template + inline __host__ __device__ constexpr cxsmpl + operator+( const cxsmpl& a, const cxsmpl& b ) + { + return cxsmpl( a.real() + b.real(), a.imag() + b.imag() ); + } -template -inline __host__ __device__ constexpr cxsmpl -operator+( const FP& a, const cxsmpl& b ) -{ - return cxsmpl( a, 0 ) + b; -} + template + inline __host__ __device__ constexpr cxsmpl + operator+( const FP& a, const cxsmpl& b ) + { + return cxsmpl( a, 0 ) + b; + } -template -inline __host__ __device__ constexpr cxsmpl -operator-( const cxsmpl& a, const cxsmpl& b ) -{ - return cxsmpl( a.real() - b.real(), a.imag() - b.imag() ); -} + template + inline __host__ __device__ constexpr cxsmpl + operator-( const cxsmpl& a, const cxsmpl& b ) + { + return cxsmpl( a.real() - b.real(), a.imag() - b.imag() ); + } -template -inline __host__ __device__ constexpr cxsmpl -operator-( const FP& a, const cxsmpl& b ) -{ - return cxsmpl( a, 0 ) - b; -} + template + inline __host__ __device__ constexpr cxsmpl + operator-( const FP& a, const cxsmpl& b ) + { + return cxsmpl( a, 0 ) - b; + } -template -inline __host__ __device__ constexpr cxsmpl -operator*( const cxsmpl& a, const cxsmpl& b ) -{ - return cxsmpl( a.real() * b.real() - a.imag() * b.imag(), a.imag() * b.real() + a.real() * b.imag() ); -} + template + inline __host__ __device__ constexpr cxsmpl + operator*( const cxsmpl& a, const cxsmpl& b ) + { + return cxsmpl( a.real() * b.real() - a.imag() * b.imag(), a.imag() * b.real() + a.real() * b.imag() ); + } -template -inline __host__ __device__ constexpr cxsmpl -operator*( const FP& a, const cxsmpl& b ) -{ - return cxsmpl( a, 0 ) * b; -} + template + inline __host__ __device__ constexpr cxsmpl + operator*( const FP& a, const cxsmpl& b ) + { + return cxsmpl( a, 0 ) * b; + } -inline __host__ __device__ constexpr cxsmpl -operator*( const double& a, const cxsmpl& b ) -{ - return cxsmpl( a, 0 ) * b; -} + inline __host__ __device__ constexpr cxsmpl + operator*( const double& a, const cxsmpl& b ) + { + return cxsmpl( a, 0 ) * b; + } -template -inline __host__ __device__ constexpr cxsmpl -operator/( const cxsmpl& a, const cxsmpl& b ) -{ - FP bnorm = b.real() * b.real() + b.imag() * b.imag(); - return cxsmpl( ( a.real() * b.real() + a.imag() * b.imag() ) / bnorm, - ( a.imag() * b.real() - a.real() * b.imag() ) / bnorm ); -} + template + inline __host__ __device__ constexpr cxsmpl + operator/( const cxsmpl& a, const cxsmpl& b ) + { + FP bnorm = b.real() * b.real() + b.imag() * b.imag(); + return cxsmpl( ( a.real() * b.real() + a.imag() * b.imag() ) / bnorm, + ( a.imag() * b.real() - a.real() * b.imag() ) / bnorm ); + } -template -inline __host__ __device__ constexpr cxsmpl -operator/( const FP& a, const cxsmpl& b ) -{ - return cxsmpl( a, 0 ) / b; -} + template + inline __host__ __device__ constexpr cxsmpl + operator/( const FP& a, const cxsmpl& b ) + { + return cxsmpl( a, 0 ) / b; + } -template -inline __host__ __device__ constexpr cxsmpl -operator+( const cxsmpl& a, const FP& b ) -{ - return a + cxsmpl( b, 0 ); -} + template + inline __host__ __device__ constexpr cxsmpl + operator+( const cxsmpl& a, const FP& b ) + { + return a + cxsmpl( b, 0 ); + } -template -inline __host__ __device__ constexpr cxsmpl -operator-( const cxsmpl& a, const FP& b ) -{ - return a - cxsmpl( b, 0 ); -} + template + inline __host__ __device__ constexpr cxsmpl + operator-( const cxsmpl& a, const FP& b ) + { + return a - cxsmpl( b, 0 ); + } -template -inline __host__ __device__ constexpr cxsmpl -operator*( const cxsmpl& a, const FP& b ) -{ - return a * cxsmpl( b, 0 ); -} + template + inline __host__ __device__ constexpr cxsmpl + operator*( const cxsmpl& a, const FP& b ) + { + return a * cxsmpl( b, 0 ); + } -template -inline __host__ __device__ constexpr cxsmpl -operator/( const cxsmpl& a, const FP& b ) -{ - return a / cxsmpl( b, 0 ); + template + inline __host__ __device__ constexpr cxsmpl + operator/( const cxsmpl& a, const FP& b ) + { + return a / cxsmpl( b, 0 ); + } } //========================================================================== // COMPLEX TYPES: (PLATFORM-SPECIFIC) TYPEDEFS //========================================================================== -namespace mgOnGpu +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { - // --- Type definitions (complex type: cxtype) #ifdef __CUDACC__ // cuda #if defined MGONGPU_CUCXTYPE_THRUST @@ -221,390 +236,402 @@ namespace mgOnGpu #endif #endif - // The number of floating point types in a complex type (real, imaginary) - constexpr int nx2 = 2; - // SANITY CHECK: memory access may be based on casts of fptype[2] to cxtype (e.g. for wavefunctions) - static_assert( sizeof( cxtype ) == nx2 * sizeof( fptype ), "sizeof(cxtype) is not 2*sizeof(fptype)" ); + static_assert( sizeof( cxtype ) == mgOnGpu::nx2 * sizeof( fptype ), "sizeof(cxtype) is not 2*sizeof(fptype)" ); } -// Expose typedefs and operators outside the namespace -using mgOnGpu::cxtype; +// DANGEROUS! this was mixing different cxtype definitions for CPU and GPU builds (see #318 and #725) +// DO NOT expose typedefs and operators outside the namespace +//using mgOnGpu::cxtype; //========================================================================== // COMPLEX TYPES: (PLATFORM-SPECIFIC) FUNCTIONS AND OPERATORS //========================================================================== +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif +{ #if defined MGONGPU_CUCXTYPE_CXSMPL or defined MGONGPU_CPPCXTYPE_CXSMPL -//------------------------------ -// CUDA or C++ - using cxsmpl -//------------------------------ + //------------------------------ + // CUDA or C++ - using cxsmpl + //------------------------------ -inline __host__ __device__ cxtype -cxmake( const fptype& r, const fptype& i ) -{ - return cxtype( r, i ); // cxsmpl constructor -} + inline __host__ __device__ cxtype + cxmake( const fptype& r, const fptype& i ) + { + return cxtype( r, i ); // cxsmpl constructor + } -inline __host__ __device__ fptype -cxreal( const cxtype& c ) -{ - return c.real(); // cxsmpl::real() -} + inline __host__ __device__ fptype + cxreal( const cxtype& c ) + { + return c.real(); // cxsmpl::real() + } -inline __host__ __device__ fptype -cximag( const cxtype& c ) -{ - return c.imag(); // cxsmpl::imag() -} + inline __host__ __device__ fptype + cximag( const cxtype& c ) + { + return c.imag(); // cxsmpl::imag() + } -inline __host__ __device__ cxtype -cxconj( const cxtype& c ) -{ - return conj( c ); // conj( cxsmpl ) -} + inline __host__ __device__ cxtype + cxconj( const cxtype& c ) + { + return conj( c ); // conj( cxsmpl ) + } -inline __host__ cxtype // NOT __device__ -cxmake( const std::complex& c ) // std::complex to cxsmpl (float-to-float or float-to-double) -{ - return cxmake( c.real(), c.imag() ); -} + inline __host__ cxtype // NOT __device__ + cxmake( const std::complex& c ) // std::complex to cxsmpl (float-to-float or float-to-double) + { + return cxmake( c.real(), c.imag() ); + } -inline __host__ cxtype // NOT __device__ -cxmake( const std::complex& c ) // std::complex to cxsmpl (double-to-float or double-to-double) -{ - return cxmake( c.real(), c.imag() ); -} + inline __host__ cxtype // NOT __device__ + cxmake( const std::complex& c ) // std::complex to cxsmpl (double-to-float or double-to-double) + { + return cxmake( c.real(), c.imag() ); + } #endif // #if defined MGONGPU_CUCXTYPE_CXSMPL or defined MGONGPU_CPPCXTYPE_CXSMPL -//========================================================================== + //========================================================================== #if defined __CUDACC__ and defined MGONGPU_CUCXTYPE_THRUST // cuda + thrust -//------------------------------ -// CUDA - using thrust::complex -//------------------------------ + //------------------------------ + // CUDA - using thrust::complex + //------------------------------ -inline __host__ __device__ cxtype -cxmake( const fptype& r, const fptype& i ) -{ - return cxtype( r, i ); // thrust::complex constructor -} + inline __host__ __device__ cxtype + cxmake( const fptype& r, const fptype& i ) + { + return cxtype( r, i ); // thrust::complex constructor + } -inline __host__ __device__ fptype -cxreal( const cxtype& c ) -{ - return c.real(); // thrust::complex::real() -} + inline __host__ __device__ fptype + cxreal( const cxtype& c ) + { + return c.real(); // thrust::complex::real() + } -inline __host__ __device__ fptype -cximag( const cxtype& c ) -{ - return c.imag(); // thrust::complex::imag() -} + inline __host__ __device__ fptype + cximag( const cxtype& c ) + { + return c.imag(); // thrust::complex::imag() + } -inline __host__ __device__ cxtype -cxconj( const cxtype& c ) -{ - return conj( c ); // conj( thrust::complex ) -} + inline __host__ __device__ cxtype + cxconj( const cxtype& c ) + { + return conj( c ); // conj( thrust::complex ) + } -inline __host__ __device__ const cxtype& -cxmake( const cxtype& c ) -{ - return c; -} + inline __host__ __device__ const cxtype& + cxmake( const cxtype& c ) + { + return c; + } #endif // #if defined __CUDACC__ and defined MGONGPU_CUCXTYPE_THRUST -//========================================================================== + //========================================================================== #if defined __CUDACC__ and defined MGONGPU_CUCXTYPE_CUCOMPLEX // cuda + cucomplex -//------------------------------ -// CUDA - using cuComplex -//------------------------------ + //------------------------------ + // CUDA - using cuComplex + //------------------------------ #if defined MGONGPU_FPTYPE_DOUBLE // cuda + cucomplex + double -//+++++++++++++++++++++++++ -// cuDoubleComplex ONLY -//+++++++++++++++++++++++++ + //+++++++++++++++++++++++++ + // cuDoubleComplex ONLY + //+++++++++++++++++++++++++ -inline __host__ __device__ cxtype -cxmake( const fptype& r, const fptype& i ) -{ - return make_cuDoubleComplex( r, i ); -} + inline __host__ __device__ cxtype + cxmake( const fptype& r, const fptype& i ) + { + return make_cuDoubleComplex( r, i ); + } -inline __host__ __device__ fptype -cxreal( const cxtype& c ) -{ - return cuCreal( c ); // returns by value -} + inline __host__ __device__ fptype + cxreal( const cxtype& c ) + { + return cuCreal( c ); // returns by value + } -inline __host__ __device__ fptype -cximag( const cxtype& c ) -{ - return cuCimag( c ); // returns by value -} + inline __host__ __device__ fptype + cximag( const cxtype& c ) + { + return cuCimag( c ); // returns by value + } -inline __host__ __device__ cxtype -operator+( const cxtype& a, const cxtype& b ) -{ - return cuCadd( a, b ); -} + inline __host__ __device__ cxtype + operator+( const cxtype& a, const cxtype& b ) + { + return cuCadd( a, b ); + } -inline __host__ __device__ cxtype& -operator+=( cxtype& a, const cxtype& b ) -{ - a = cuCadd( a, b ); - return a; -} + inline __host__ __device__ cxtype& + operator+=( cxtype& a, const cxtype& b ) + { + a = cuCadd( a, b ); + return a; + } -inline __host__ __device__ cxtype -operator-( const cxtype& a, const cxtype& b ) -{ - return cuCsub( a, b ); -} + inline __host__ __device__ cxtype + operator-( const cxtype& a, const cxtype& b ) + { + return cuCsub( a, b ); + } -inline __host__ __device__ cxtype& -operator-=( cxtype& a, const cxtype& b ) -{ - a = cuCsub( a, b ); - return a; -} + inline __host__ __device__ cxtype& + operator-=( cxtype& a, const cxtype& b ) + { + a = cuCsub( a, b ); + return a; + } -inline __host__ __device__ cxtype -operator*( const cxtype& a, const cxtype& b ) -{ - return cuCmul( a, b ); -} + inline __host__ __device__ cxtype + operator*( const cxtype& a, const cxtype& b ) + { + return cuCmul( a, b ); + } -inline __host__ __device__ cxtype -operator/( const cxtype& a, const cxtype& b ) -{ - return cuCdiv( a, b ); -} + inline __host__ __device__ cxtype + operator/( const cxtype& a, const cxtype& b ) + { + return cuCdiv( a, b ); + } #elif defined MGONGPU_FPTYPE_FLOAT // cuda + cucomplex + float -//+++++++++++++++++++++++++ -// cuFloatComplex ONLY -//+++++++++++++++++++++++++ + //+++++++++++++++++++++++++ + // cuFloatComplex ONLY + //+++++++++++++++++++++++++ -inline __host__ __device__ cxtype -cxmake( const fptype& r, const fptype& i ) -{ - return make_cuFloatComplex( r, i ); -} + inline __host__ __device__ cxtype + cxmake( const fptype& r, const fptype& i ) + { + return make_cuFloatComplex( r, i ); + } -inline __host__ __device__ fptype -cxreal( const cxtype& c ) -{ - return cuCrealf( c ); // returns by value -} + inline __host__ __device__ fptype + cxreal( const cxtype& c ) + { + return cuCrealf( c ); // returns by value + } -inline __host__ __device__ fptype -cximag( const cxtype& c ) -{ - return cuCimagf( c ); // returns by value -} + inline __host__ __device__ fptype + cximag( const cxtype& c ) + { + return cuCimagf( c ); // returns by value + } -inline __host__ __device__ cxtype -operator+( const cxtype& a, const cxtype& b ) -{ - return cuCaddf( a, b ); -} + inline __host__ __device__ cxtype + operator+( const cxtype& a, const cxtype& b ) + { + return cuCaddf( a, b ); + } -inline __host__ __device__ cxtype& -operator+=( cxtype& a, const cxtype& b ) -{ - a = cuCaddf( a, b ); - return a; -} + inline __host__ __device__ cxtype& + operator+=( cxtype& a, const cxtype& b ) + { + a = cuCaddf( a, b ); + return a; + } -inline __host__ __device__ cxtype -operator-( const cxtype& a, const cxtype& b ) -{ - return cuCsubf( a, b ); -} + inline __host__ __device__ cxtype + operator-( const cxtype& a, const cxtype& b ) + { + return cuCsubf( a, b ); + } -inline __host__ __device__ cxtype& -operator-=( cxtype& a, const cxtype& b ) -{ - a = cuCsubf( a, b ); - return a; -} + inline __host__ __device__ cxtype& + operator-=( cxtype& a, const cxtype& b ) + { + a = cuCsubf( a, b ); + return a; + } -inline __host__ __device__ cxtype -operator*( const cxtype& a, const cxtype& b ) -{ - return cuCmulf( a, b ); -} + inline __host__ __device__ cxtype + operator*( const cxtype& a, const cxtype& b ) + { + return cuCmulf( a, b ); + } -inline __host__ __device__ cxtype -operator/( const cxtype& a, const cxtype& b ) -{ - return cuCdivf( a, b ); -} + inline __host__ __device__ cxtype + operator/( const cxtype& a, const cxtype& b ) + { + return cuCdivf( a, b ); + } -inline __host__ cxtype // NOT __device__ -cxmake( const std::complex& c ) // std::complex to cucomplex (cast double-to-float) -{ - return cxmake( (fptype)c.real(), (fptype)c.imag() ); -} + inline __host__ cxtype // NOT __device__ + cxmake( const std::complex& c ) // std::complex to cucomplex (cast double-to-float) + { + return cxmake( (fptype)c.real(), (fptype)c.imag() ); + } #endif -//+++++++++++++++++++++++++ -// cuDoubleComplex OR -// cuFloatComplex -//+++++++++++++++++++++++++ + //+++++++++++++++++++++++++ + // cuDoubleComplex OR + // cuFloatComplex + //+++++++++++++++++++++++++ -inline __host__ __device__ cxtype -operator+( const cxtype a ) -{ - return a; -} + inline __host__ __device__ cxtype + operator+( const cxtype a ) + { + return a; + } -inline __host__ __device__ cxtype -operator-( const cxtype& a ) -{ - return cxmake( -cxreal( a ), -cximag( a ) ); -} + inline __host__ __device__ cxtype + operator-( const cxtype& a ) + { + return cxmake( -cxreal( a ), -cximag( a ) ); + } -inline __host__ __device__ cxtype -operator+( const fptype& a, const cxtype& b ) -{ - return cxmake( a, 0 ) + b; -} + inline __host__ __device__ cxtype + operator+( const fptype& a, const cxtype& b ) + { + return cxmake( a, 0 ) + b; + } -inline __host__ __device__ cxtype -operator-( const fptype& a, const cxtype& b ) -{ - return cxmake( a, 0 ) - b; -} + inline __host__ __device__ cxtype + operator-( const fptype& a, const cxtype& b ) + { + return cxmake( a, 0 ) - b; + } -inline __host__ __device__ cxtype -operator*( const fptype& a, const cxtype& b ) -{ - return cxmake( a, 0 ) * b; -} + inline __host__ __device__ cxtype + operator*( const fptype& a, const cxtype& b ) + { + return cxmake( a, 0 ) * b; + } -inline __host__ __device__ cxtype -operator/( const fptype& a, const cxtype& b ) -{ - return cxmake( a, 0 ) / b; -} + inline __host__ __device__ cxtype + operator/( const fptype& a, const cxtype& b ) + { + return cxmake( a, 0 ) / b; + } -inline __host__ __device__ cxtype -operator+( const cxtype& a, const fptype& b ) -{ - return a + cxmake( b, 0 ); -} + inline __host__ __device__ cxtype + operator+( const cxtype& a, const fptype& b ) + { + return a + cxmake( b, 0 ); + } -inline __host__ __device__ cxtype -operator-( const cxtype& a, const fptype& b ) -{ - return a - cxmake( b, 0 ); -} + inline __host__ __device__ cxtype + operator-( const cxtype& a, const fptype& b ) + { + return a - cxmake( b, 0 ); + } -inline __host__ __device__ cxtype -operator*( const cxtype& a, const fptype& b ) -{ - return a * cxmake( b, 0 ); -} + inline __host__ __device__ cxtype + operator*( const cxtype& a, const fptype& b ) + { + return a * cxmake( b, 0 ); + } -inline __host__ __device__ cxtype -operator/( const cxtype& a, const fptype& b ) -{ - return a / cxmake( b, 0 ); -} + inline __host__ __device__ cxtype + operator/( const cxtype& a, const fptype& b ) + { + return a / cxmake( b, 0 ); + } -inline __host__ __device__ cxtype -cxconj( const cxtype& c ) -{ - return cxmake( cxreal( c ), -cximag( c ) ); -} + inline __host__ __device__ cxtype + cxconj( const cxtype& c ) + { + return cxmake( cxreal( c ), -cximag( c ) ); + } -inline __host__ cxtype // NOT __device__ -cxmake( const std::complex& c ) // std::complex to cucomplex (float-to-float or double-to-double) -{ - return cxmake( c.real(), c.imag() ); -} + inline __host__ cxtype // NOT __device__ + cxmake( const std::complex& c ) // std::complex to cucomplex (float-to-float or double-to-double) + { + return cxmake( c.real(), c.imag() ); + } #endif // #if defined __CUDACC__ and defined MGONGPU_CUCXTYPE_CUCOMPLEX -//========================================================================== + //========================================================================== #if not defined __CUDACC__ and defined MGONGPU_CPPCXTYPE_STDCOMPLEX // c++ + stdcomplex -//------------------------------ -// C++ - using std::complex -//------------------------------ + //------------------------------ + // C++ - using std::complex + //------------------------------ -inline cxtype -cxmake( const fptype& r, const fptype& i ) -{ - return cxtype( r, i ); // std::complex constructor -} + inline cxtype + cxmake( const fptype& r, const fptype& i ) + { + return cxtype( r, i ); // std::complex constructor + } -inline fptype -cxreal( const cxtype& c ) -{ - return c.real(); // std::complex::real() -} + inline fptype + cxreal( const cxtype& c ) + { + return c.real(); // std::complex::real() + } -inline fptype -cximag( const cxtype& c ) -{ - return c.imag(); // std::complex::imag() -} + inline fptype + cximag( const cxtype& c ) + { + return c.imag(); // std::complex::imag() + } -inline cxtype -cxconj( const cxtype& c ) -{ - return conj( c ); // conj( std::complex ) -} + inline cxtype + cxconj( const cxtype& c ) + { + return conj( c ); // conj( std::complex ) + } -inline const cxtype& -cxmake( const cxtype& c ) // std::complex to std::complex (float-to-float or double-to-double) -{ - return c; -} + inline const cxtype& + cxmake( const cxtype& c ) // std::complex to std::complex (float-to-float or double-to-double) + { + return c; + } #if defined MGONGPU_FPTYPE_FLOAT -inline cxtype -cxmake( const std::complex& c ) // std::complex to std::complex (cast double-to-float) -{ - return cxmake( (fptype)c.real(), (fptype)c.imag() ); -} + inline cxtype + cxmake( const std::complex& c ) // std::complex to std::complex (cast double-to-float) + { + return cxmake( (fptype)c.real(), (fptype)c.imag() ); + } #endif #endif // #if not defined __CUDACC__ and defined MGONGPU_CPPCXTYPE_STDCOMPLEX -//========================================================================== + //========================================================================== -inline __host__ __device__ const cxtype -cxmake( const cxsmpl& c ) // cxsmpl to cxtype (float-to-float or float-to-double) -{ - return cxmake( c.real(), c.imag() ); -} + inline __host__ __device__ const cxtype + cxmake( const cxsmpl& c ) // cxsmpl to cxtype (float-to-float or float-to-double) + { + return cxmake( c.real(), c.imag() ); + } -inline __host__ __device__ const cxtype -cxmake( const cxsmpl& c ) // cxsmpl to cxtype (double-to-float or double-to-double) -{ - return cxmake( c.real(), c.imag() ); -} + inline __host__ __device__ const cxtype + cxmake( const cxsmpl& c ) // cxsmpl to cxtype (double-to-float or double-to-double) + { + return cxmake( c.real(), c.imag() ); + } + +} // end namespace mg5amcGpu/mg5amcCpu //========================================================================== // COMPLEX TYPES: WRAPPER OVER RI FLOATING POINT PAIR (cxtype_ref) //========================================================================== -namespace mgOnGpu /* clang-format off */ +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { // The cxtype_ref class (a non-const reference to two fp variables) was originally designed for cxtype_v::operator[] // It used to be included in the code only when MGONGPU_HAS_CPPCXTYPEV_BRK (originally MGONGPU_HAS_CPPCXTYPE_REF) is defined @@ -615,23 +642,30 @@ namespace mgOnGpu /* clang-format off */ cxtype_ref() = delete; cxtype_ref( const cxtype_ref& ) = delete; cxtype_ref( cxtype_ref&& ) = default; // copy refs - __host__ __device__ cxtype_ref( fptype& r, fptype& i ) : m_preal( &r ), m_pimag( &i ) {} // copy refs + __host__ __device__ cxtype_ref( fptype& r, fptype& i ) + : m_preal( &r ), m_pimag( &i ) {} // copy refs cxtype_ref& operator=( const cxtype_ref& ) = delete; //__host__ __device__ cxtype_ref& operator=( cxtype_ref&& c ) {...} // REMOVED! Should copy refs or copy values? No longer needed in cxternary - __host__ __device__ cxtype_ref& operator=( const cxtype& c ) { *m_preal = cxreal( c ); *m_pimag = cximag( c ); return *this; } // copy values + __host__ __device__ cxtype_ref& operator=( const cxtype& c ) + { + *m_preal = cxreal( c ); + *m_pimag = cximag( c ); + return *this; + } // copy values __host__ __device__ operator cxtype() const { return cxmake( *m_preal, *m_pimag ); } private: fptype *m_preal, *m_pimag; // RI }; -} /* clang-format on */ -// Printout to stream for user defined types -inline __host__ __device__ std::ostream& -operator<<( std::ostream& out, const mgOnGpu::cxtype_ref& c ) -{ - out << (cxtype)c; - return out; -} + // Printout to stream for user defined types + inline __host__ __device__ std::ostream& + operator<<( std::ostream& out, const cxtype_ref& c ) + { + out << (cxtype)c; + return out; + } + +} // end namespace mg5amcGpu/mg5amcCpu //========================================================================== diff --git a/epochX/cudacpp/ee_mumu.mad/src/mgOnGpuFptypes.h b/epochX/cudacpp/ee_mumu.mad/src/mgOnGpuFptypes.h index a1cde16a67..905c97d700 100644 --- a/epochX/cudacpp/ee_mumu.mad/src/mgOnGpuFptypes.h +++ b/epochX/cudacpp/ee_mumu.mad/src/mgOnGpuFptypes.h @@ -11,82 +11,91 @@ #include #include -//========================================================================== - -#ifdef __CUDACC__ // cuda - -//------------------------------ -// Floating point types - Cuda -//------------------------------ - -/* -inline __host__ __device__ fptype -fpmax( const fptype& a, const fptype& b ) -{ - return max( a, b ); -} - -inline __host__ __device__ fptype -fpmin( const fptype& a, const fptype& b ) -{ - return min( a, b ); -} -*/ - -inline __host__ __device__ const fptype& -fpmax( const fptype& a, const fptype& b ) +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { - return ( ( b < a ) ? a : b ); -} + //========================================================================== -inline __host__ __device__ const fptype& -fpmin( const fptype& a, const fptype& b ) -{ - return ( ( a < b ) ? a : b ); -} +#ifdef __CUDACC__ // cuda -inline __host__ __device__ fptype -fpsqrt( const fptype& f ) -{ + //------------------------------ + // Floating point types - Cuda + //------------------------------ + + /* + inline __host__ __device__ fptype + fpmax( const fptype& a, const fptype& b ) + { + return max( a, b ); + } + + inline __host__ __device__ fptype + fpmin( const fptype& a, const fptype& b ) + { + return min( a, b ); + } + */ + + inline __host__ __device__ const fptype& + fpmax( const fptype& a, const fptype& b ) + { + return ( ( b < a ) ? a : b ); + } + + inline __host__ __device__ const fptype& + fpmin( const fptype& a, const fptype& b ) + { + return ( ( a < b ) ? a : b ); + } + + inline __host__ __device__ fptype + fpsqrt( const fptype& f ) + { #if defined MGONGPU_FPTYPE_FLOAT - // See https://docs.nvidia.com/cuda/cuda-math-api/group__CUDA__MATH__SINGLE.html - return sqrtf( f ); + // See https://docs.nvidia.com/cuda/cuda-math-api/group__CUDA__MATH__SINGLE.html + return sqrtf( f ); #else - // See https://docs.nvidia.com/cuda/cuda-math-api/group__CUDA__MATH__DOUBLE.html - return sqrt( f ); + // See https://docs.nvidia.com/cuda/cuda-math-api/group__CUDA__MATH__DOUBLE.html + return sqrt( f ); #endif -} + } #endif // #ifdef __CUDACC__ -//========================================================================== + //========================================================================== #ifndef __CUDACC__ -//------------------------------ -// Floating point types - C++ -//------------------------------ + //------------------------------ + // Floating point types - C++ + //------------------------------ -inline const fptype& -fpmax( const fptype& a, const fptype& b ) -{ - return std::max( a, b ); -} + inline const fptype& + fpmax( const fptype& a, const fptype& b ) + { + return std::max( a, b ); + } -inline const fptype& -fpmin( const fptype& a, const fptype& b ) -{ - return std::min( a, b ); -} + inline const fptype& + fpmin( const fptype& a, const fptype& b ) + { + return std::min( a, b ); + } -inline fptype -fpsqrt( const fptype& f ) -{ - return std::sqrt( f ); -} + inline fptype + fpsqrt( const fptype& f ) + { + return std::sqrt( f ); + } #endif // #ifndef __CUDACC__ -//========================================================================== + //========================================================================== + +} // end namespace mg5amcGpu/mg5amcCpu #endif // MGONGPUFPTYPES_H diff --git a/epochX/cudacpp/ee_mumu.mad/src/mgOnGpuVectors.h b/epochX/cudacpp/ee_mumu.mad/src/mgOnGpuVectors.h index 9d3e82b1e3..0d3892d026 100644 --- a/epochX/cudacpp/ee_mumu.mad/src/mgOnGpuVectors.h +++ b/epochX/cudacpp/ee_mumu.mad/src/mgOnGpuVectors.h @@ -31,7 +31,12 @@ //#undef MGONGPU_HAS_CPPCXTYPEV_BRK // gcc test (very slightly slower? issue #172) #endif -namespace mgOnGpu /* clang-format off */ +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { #ifdef MGONGPU_CPPSIMD @@ -72,22 +77,40 @@ namespace mgOnGpu /* clang-format off */ public: // Array initialization: zero-out as "{0}" (C and C++) or as "{}" (C++ only) // See https://en.cppreference.com/w/c/language/array_initialization#Notes - cxtype_v() : m_real{ 0 }, m_imag{ 0 } {} // RRRR=0000 IIII=0000 + cxtype_v() + : m_real{ 0 }, m_imag{ 0 } {} // RRRR=0000 IIII=0000 cxtype_v( const cxtype_v& ) = default; cxtype_v( cxtype_v&& ) = default; - cxtype_v( const fptype_v& r, const fptype_v& i ) : m_real( r ), m_imag( i ) {} - cxtype_v( const fptype_v& r ) : m_real( r ), m_imag{ 0 } {} // IIII=0000 + cxtype_v( const fptype_v& r, const fptype_v& i ) + : m_real( r ), m_imag( i ) {} + cxtype_v( const fptype_v& r ) + : m_real( r ), m_imag{ 0 } {} // IIII=0000 + cxtype_v( const fptype& r ) + : m_real( fptype_v{} + r ), m_imag{ 0 } {} // IIII=0000 cxtype_v& operator=( const cxtype_v& ) = default; cxtype_v& operator=( cxtype_v&& ) = default; - cxtype_v& operator+=( const cxtype_v& c ) { m_real += c.real(); m_imag += c.imag(); return *this; } - cxtype_v& operator-=( const cxtype_v& c ) { m_real -= c.real(); m_imag -= c.imag(); return *this; } + cxtype_v& operator+=( const cxtype_v& c ) + { + m_real += c.real(); + m_imag += c.imag(); + return *this; + } + cxtype_v& operator-=( const cxtype_v& c ) + { + m_real -= c.real(); + m_imag -= c.imag(); + return *this; + } #ifdef MGONGPU_HAS_CPPCXTYPEV_BRK // NB: THIS IS THE FUNDAMENTAL DIFFERENCE BETWEEN MGONGPU_HAS_CPPCXTYPEV_BRK DEFINED AND NOT DEFINED // NB: the alternative "clang" implementation is simpler: it simply does not have any bracket operator[] // NB: ** do NOT implement operator[] to return a value: it does not fail the build (why?) and gives unexpected results! ** cxtype_ref operator[]( size_t i ) const { return cxtype_ref( m_real[i], m_imag[i] ); } #endif - const fptype_v& real() const { return m_real; } + const fptype_v& real() const + { + return m_real; + } const fptype_v& imag() const { return m_imag; } private: fptype_v m_real, m_imag; // RRRRIIII @@ -98,7 +121,7 @@ namespace mgOnGpu /* clang-format off */ #if defined MGONGPU_FPTYPE_DOUBLE typedef long int bool_v __attribute__( ( ext_vector_type( neppV ) ) ); // bbbb #elif defined MGONGPU_FPTYPE_FLOAT - typedef int bool_v __attribute__( ( ext_vector_type( neppV ) ) ); // bbbb + typedef int bool_v __attribute__( ( ext_vector_type( neppV ) ) ); // bbbb #endif #else // gcc #if defined MGONGPU_FPTYPE_DOUBLE @@ -113,532 +136,551 @@ namespace mgOnGpu /* clang-format off */ const int neppV = 1; #endif // #ifdef MGONGPU_CPPSIMD - -} /* clang-format on */ +} //-------------------------------------------------------------------------- -// Expose typedefs outside the namespace -using mgOnGpu::neppV; -#ifdef MGONGPU_CPPSIMD -using mgOnGpu::fptype_v; -using mgOnGpu::fptype2_v; -using mgOnGpu::cxtype_v; -using mgOnGpu::bool_v; -#endif +// DANGEROUS! this was mixing different cxtype definitions for CPU and GPU builds (see #318 and #725) +// DO NOT expose typedefs outside the namespace +//using mgOnGpu::neppV; +//#ifdef MGONGPU_CPPSIMD +//using mgOnGpu::fptype_v; +//using mgOnGpu::fptype2_v; +//using mgOnGpu::cxtype_v; +//using mgOnGpu::bool_v; +//#endif -//-------------------------------------------------------------------------- +//========================================================================== +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif +{ #ifndef __CUDACC__ -// Printout to stream for user defined types + // Printout to stream for user defined types #ifndef MGONGPU_CPPCXTYPE_CXSMPL // operator<< for cxsmpl has already been defined! -inline std::ostream& -operator<<( std::ostream& out, const cxtype& c ) -{ - out << "[" << cxreal( c ) << "," << cximag( c ) << "]"; - //out << cxreal(c) << "+i" << cximag(c); - return out; -} + inline std::ostream& + operator<<( std::ostream& out, const cxtype& c ) + { + out << "[" << cxreal( c ) << "," << cximag( c ) << "]"; + //out << cxreal(c) << "+i" << cximag(c); + return out; + } #endif -/* + /* #ifdef MGONGPU_CPPSIMD -inline std::ostream& -operator<<( std::ostream& out, const bool_v& v ) -{ - out << "{ " << v[0]; - for ( int i=1; i mu+ mu- No model currently active, so we import the Standard Model INFO: load particles INFO: load vertices -DEBUG: model prefixing takes 0.004713535308837891  +DEBUG: model prefixing takes 0.0048067569732666016  INFO: Restrict model sm with file models/sm/restrict_default.dat . DEBUG: Simplifying conditional expressions  DEBUG: remove interactions: u s w+ at order: QED=1  @@ -170,31 +170,31 @@ INFO: Processing color information for process: e+ e- > mu+ mu- @1 DEBUG: type(subproc_group)= [output.py at line 187]  DEBUG: type(fortran_model)= [output.py at line 188]  DEBUG: type(me)= me=0 [output.py at line 189]  -DEBUG: Entering PLUGIN_OneProcessExporter.__init__ [model_handling.py at line 1028]  -DEBUG: proc_id =  0 [model_handling.py at line 1034]  +DEBUG: Entering PLUGIN_OneProcessExporter.__init__ [model_handling.py at line 1039]  +DEBUG: proc_id =  0 [model_handling.py at line 1045]  INFO: Creating files in directory /data/avalassi/GPU2023/MG5aMC/ghav-mg5amcnlo/CODEGEN_cudacpp_ee_mumu/SubProcesses/P1_Sigma_sm_epem_mupmum -DEBUG: Entering PLUGIN_OneProcessExporter.generate_process_files [model_handling.py at line 1286]  -DEBUG: self.include_multi_channel is not yet defined: this is standalone_cudacpp mode [model_handling.py at line 1290]  +DEBUG: Entering PLUGIN_OneProcessExporter.generate_process_files [model_handling.py at line 1297]  +DEBUG: self.include_multi_channel is not yet defined: this is standalone_cudacpp mode [model_handling.py at line 1301]  FileWriter for /data/avalassi/GPU2023/MG5aMC/ghav-mg5amcnlo/CODEGEN_cudacpp_ee_mumu/SubProcesses/P1_Sigma_sm_epem_mupmum/./CPPProcess.h -DEBUG: Entering PLUGIN_OneProcessExporter.write_process_h_file [model_handling.py at line 1442]  +DEBUG: Entering PLUGIN_OneProcessExporter.write_process_h_file [model_handling.py at line 1453]  FileWriter for /data/avalassi/GPU2023/MG5aMC/ghav-mg5amcnlo/CODEGEN_cudacpp_ee_mumu/SubProcesses/P1_Sigma_sm_epem_mupmum/./CPPProcess.cc -DEBUG: Entering PLUGIN_OneProcessExporter.write_process_cc_file [model_handling.py at line 1464]  -DEBUG: Entering PLUGIN_OneProcessExporter.get_sigmaKin_lines [model_handling.py at line 1132]  -DEBUG: self.include_multi_channel =  False [model_handling.py at line 1133]  -DEBUG: self.support_multichannel =  True [model_handling.py at line 1134]  -DEBUG: type(self.helas_call_writer) =  [model_handling.py at line 1151]  -DEBUG: self.support_multichannel, self.include_multi_channel =  True False [model_handling.py at line 1152]  -DEBUG: multi_channel_map =  None [model_handling.py at line 1643]  -DEBUG: diag_to_config =  {} [model_handling.py at line 1698]  +DEBUG: Entering PLUGIN_OneProcessExporter.write_process_cc_file [model_handling.py at line 1475]  +DEBUG: Entering PLUGIN_OneProcessExporter.get_sigmaKin_lines [model_handling.py at line 1143]  +DEBUG: self.include_multi_channel =  False [model_handling.py at line 1144]  +DEBUG: self.support_multichannel =  True [model_handling.py at line 1145]  +DEBUG: type(self.helas_call_writer) =  [model_handling.py at line 1162]  +DEBUG: self.support_multichannel, self.include_multi_channel =  True False [model_handling.py at line 1163]  +DEBUG: multi_channel_map =  None [model_handling.py at line 1654]  +DEBUG: diag_to_config =  {} [model_handling.py at line 1709]  INFO: Created files CPPProcess.h and CPPProcess.cc in directory /data/avalassi/GPU2023/MG5aMC/ghav-mg5amcnlo/CODEGEN_cudacpp_ee_mumu/SubProcesses/P1_Sigma_sm_epem_mupmum/. -DEBUG: Entering PLUGIN_OneProcessExporter.edit_CMakeLists [model_handling.py at line 1332]  -DEBUG: Entering PLUGIN_OneProcessExporter.edit_check_sa [model_handling.py at line 1341]  -DEBUG: Entering PLUGIN_OneProcessExporter.edit_mgonGPU [model_handling.py at line 1358]  -DEBUG: Entering PLUGIN_OneProcessExporter.edit_processidfile [model_handling.py at line 1378]  -DEBUG: Entering PLUGIN_OneProcessExporter.edit_testxxx [model_handling.py at line 1408]  -DEBUG: Entering PLUGIN_OneProcessExporter.edit_memorybuffers [model_handling.py at line 1419]  -DEBUG: Entering PLUGIN_OneProcessExporter.edit_memoryaccesscouplings [model_handling.py at line 1430]  -DEBUG: 'Copying test reference file: ', template_ref =  Copying test reference file: /data/avalassi/GPU2023/MG5aMC/ghav-mg5amcnlo/PLUGIN/CUDACPP_SA_OUTPUT/madgraph/iolibs/template_files/../../../test/ref/dump_CPUTest.Sigma_sm_epem_mupmum.txt [model_handling.py at line 1324]  +DEBUG: Entering PLUGIN_OneProcessExporter.edit_CMakeLists [model_handling.py at line 1343]  +DEBUG: Entering PLUGIN_OneProcessExporter.edit_check_sa [model_handling.py at line 1352]  +DEBUG: Entering PLUGIN_OneProcessExporter.edit_mgonGPU [model_handling.py at line 1369]  +DEBUG: Entering PLUGIN_OneProcessExporter.edit_processidfile [model_handling.py at line 1389]  +DEBUG: Entering PLUGIN_OneProcessExporter.edit_testxxx [model_handling.py at line 1419]  +DEBUG: Entering PLUGIN_OneProcessExporter.edit_memorybuffers [model_handling.py at line 1430]  +DEBUG: Entering PLUGIN_OneProcessExporter.edit_memoryaccesscouplings [model_handling.py at line 1441]  +DEBUG: 'Copying test reference file: ', template_ref =  Copying test reference file: /data/avalassi/GPU2023/MG5aMC/ghav-mg5amcnlo/PLUGIN/CUDACPP_SA_OUTPUT/madgraph/iolibs/template_files/../../../test/ref/dump_CPUTest.Sigma_sm_epem_mupmum.txt [model_handling.py at line 1335]  Generated helas calls for 1 subprocesses (2 diagrams) in 0.003 s DEBUG: Entering PLUGIN_ProcessExporter.convert_model (create the model) [output.py at line 194]  ALOHA: aloha starts to compute helicity amplitudes @@ -202,7 +202,7 @@ ALOHA: aloha creates FFV1 routines ALOHA: aloha creates FFV2 routines ALOHA: aloha creates FFV4 routines ALOHA: aloha creates FFV2_4 routines -ALOHA: aloha creates 4 routines in 0.229 s +ALOHA: aloha creates 4 routines in 0.232 s FFV1 FFV1 FFV2 @@ -214,16 +214,10 @@ ALOHA: aloha creates 4 routines in 0.229 s FileWriter for /data/avalassi/GPU2023/MG5aMC/ghav-mg5amcnlo/CODEGEN_cudacpp_ee_mumu/src/./HelAmps_sm.h INFO: Created file HelAmps_sm.h in directory /data/avalassi/GPU2023/MG5aMC/ghav-mg5amcnlo/CODEGEN_cudacpp_ee_mumu/src/. super_write_set_parameters_onlyfixMajorana (hardcoded=False) -DEBUG: 'pardef_lines size =', len(pardef_lines), ', keys size =', len(pardef_lines.keys()) =  pardef_lines size = 48 , keys size = 48 [model_handling.py at line 724]  -DEBUG: 'parset_pars size =', len(parset_pars) =  parset_pars size = 48 [model_handling.py at line 740]  -DEBUG: 'parset_lines size =', len(parset_lines), ', keys size =', len(parset_lines.keys()) =  parset_lines size = 48 , keys size = 48 [model_handling.py at line 741]  +DEBUG: 'pardef_lines size =', len(pardef_lines), ', keys size =', len(pardef_lines.keys()) =  pardef_lines size = 48 , keys size = 48 [model_handling.py at line 729]  super_write_set_parameters_onlyfixMajorana (hardcoded=True) -DEBUG: 'pardef_lines size =', len(pardef_lines), ', keys size =', len(pardef_lines.keys()) =  pardef_lines size = 3 , keys size = 3 [model_handling.py at line 724]  -DEBUG: 'parset_pars size =', len(parset_pars) =  parset_pars size = 3 [model_handling.py at line 740]  -DEBUG: 'parset_lines size =', len(parset_lines), ', keys size =', len(parset_lines.keys()) =  parset_lines size = 3 , keys size = 3 [model_handling.py at line 741]  -DEBUG: 'pardef_lines size =', len(pardef_lines), ', keys size =', len(pardef_lines.keys()) =  pardef_lines size = 3 , keys size = 3 [model_handling.py at line 724]  -DEBUG: 'parset_pars size =', len(parset_pars) =  parset_pars size = 3 [model_handling.py at line 740]  -DEBUG: 'parset_lines size =', len(parset_lines), ', keys size =', len(parset_lines.keys()) =  parset_lines size = 3 , keys size = 3 [model_handling.py at line 741]  +DEBUG: 'pardef_lines size =', len(pardef_lines), ', keys size =', len(pardef_lines.keys()) =  pardef_lines size = 3 , keys size = 3 [model_handling.py at line 729]  +DEBUG: 'pardef_lines size =', len(pardef_lines), ', keys size =', len(pardef_lines.keys()) =  pardef_lines size = 3 , keys size = 3 [model_handling.py at line 729]  FileWriter for /data/avalassi/GPU2023/MG5aMC/ghav-mg5amcnlo/CODEGEN_cudacpp_ee_mumu/src/./Parameters_sm.h FileWriter for /data/avalassi/GPU2023/MG5aMC/ghav-mg5amcnlo/CODEGEN_cudacpp_ee_mumu/src/./Parameters_sm.cc INFO: Created files Parameters_sm.h and Parameters_sm.cc in directory @@ -231,6 +225,6 @@ INFO: /data/avalassi/GPU2023/MG5aMC/ghav-mg5amcnlo/CODEGEN_cudacpp_ee_mumu/src/. DEBUG: Entering PLUGIN_ProcessExporter.finalize [output.py at line 203]  quit -real 0m0.652s -user 0m0.574s -sys 0m0.066s +real 0m0.660s +user 0m0.584s +sys 0m0.063s diff --git a/epochX/cudacpp/ee_mumu.sa/SubProcesses/Bridge.h b/epochX/cudacpp/ee_mumu.sa/SubProcesses/Bridge.h index 4cafe0c997..d7e629cacd 100644 --- a/epochX/cudacpp/ee_mumu.sa/SubProcesses/Bridge.h +++ b/epochX/cudacpp/ee_mumu.sa/SubProcesses/Bridge.h @@ -152,32 +152,32 @@ namespace mg5amcCpu #ifdef __CUDACC__ int m_gputhreads; // number of gpu threads (default set from number of events, can be modified) int m_gpublocks; // number of gpu blocks (default set from number of events, can be modified) - mg5amcGpu::DeviceBuffer m_devMomentaF; - mg5amcGpu::DeviceBufferMomenta m_devMomentaC; - mg5amcGpu::DeviceBufferGs m_devGs; - mg5amcGpu::DeviceBufferRndNumHelicity m_devRndHel; - mg5amcGpu::DeviceBufferRndNumColor m_devRndCol; - mg5amcGpu::DeviceBufferMatrixElements m_devMEs; - mg5amcGpu::DeviceBufferSelectedHelicity m_devSelHel; - mg5amcGpu::DeviceBufferSelectedColor m_devSelCol; - mg5amcGpu::PinnedHostBufferGs m_hstGs; - mg5amcGpu::PinnedHostBufferRndNumHelicity m_hstRndHel; - mg5amcGpu::PinnedHostBufferRndNumColor m_hstRndCol; - mg5amcGpu::PinnedHostBufferMatrixElements m_hstMEs; - mg5amcGpu::PinnedHostBufferSelectedHelicity m_hstSelHel; - mg5amcGpu::PinnedHostBufferSelectedColor m_hstSelCol; - std::unique_ptr m_pmek; + DeviceBuffer m_devMomentaF; + DeviceBufferMomenta m_devMomentaC; + DeviceBufferGs m_devGs; + DeviceBufferRndNumHelicity m_devRndHel; + DeviceBufferRndNumColor m_devRndCol; + DeviceBufferMatrixElements m_devMEs; + DeviceBufferSelectedHelicity m_devSelHel; + DeviceBufferSelectedColor m_devSelCol; + PinnedHostBufferGs m_hstGs; + PinnedHostBufferRndNumHelicity m_hstRndHel; + PinnedHostBufferRndNumColor m_hstRndCol; + PinnedHostBufferMatrixElements m_hstMEs; + PinnedHostBufferSelectedHelicity m_hstSelHel; + PinnedHostBufferSelectedColor m_hstSelCol; + std::unique_ptr m_pmek; //static constexpr int s_gputhreadsmin = 16; // minimum number of gpu threads (TEST VALUE FOR MADEVENT) static constexpr int s_gputhreadsmin = 32; // minimum number of gpu threads (DEFAULT) #else - mg5amcCpu::HostBufferMomenta m_hstMomentaC; - mg5amcCpu::HostBufferGs m_hstGs; - mg5amcCpu::HostBufferRndNumHelicity m_hstRndHel; - mg5amcCpu::HostBufferRndNumColor m_hstRndCol; - mg5amcCpu::HostBufferMatrixElements m_hstMEs; - mg5amcCpu::HostBufferSelectedHelicity m_hstSelHel; - mg5amcCpu::HostBufferSelectedColor m_hstSelCol; - std::unique_ptr m_pmek; + HostBufferMomenta m_hstMomentaC; + HostBufferGs m_hstGs; + HostBufferRndNumHelicity m_hstRndHel; + HostBufferRndNumColor m_hstRndCol; + HostBufferMatrixElements m_hstMEs; + HostBufferSelectedHelicity m_hstSelHel; + HostBufferSelectedColor m_hstSelCol; + std::unique_ptr m_pmek; #endif }; @@ -244,12 +244,12 @@ namespace mg5amcCpu } std::cout << "WARNING! Instantiate device Bridge (nevt=" << m_nevt << ", gpublocks=" << m_gpublocks << ", gputhreads=" << m_gputhreads << ", gpublocks*gputhreads=" << m_gpublocks * m_gputhreads << ")" << std::endl; - mg5amcGpu::CPPProcess process( /*verbose=*/false ); - m_pmek.reset( new mg5amcGpu::MatrixElementKernelDevice( m_devMomentaC, m_devGs, m_devRndHel, m_devRndCol, m_devMEs, m_devSelHel, m_devSelCol, m_gpublocks, m_gputhreads ) ); + CPPProcess process( /*verbose=*/false ); + m_pmek.reset( new MatrixElementKernelDevice( m_devMomentaC, m_devGs, m_devRndHel, m_devRndCol, m_devMEs, m_devSelHel, m_devSelCol, m_gpublocks, m_gputhreads ) ); #else std::cout << "WARNING! Instantiate host Bridge (nevt=" << m_nevt << ")" << std::endl; - mg5amcCpu::CPPProcess process( /*verbose=*/false ); - m_pmek.reset( new mg5amcCpu::MatrixElementKernelHost( m_hstMomentaC, m_hstGs, m_hstRndHel, m_hstRndCol, m_hstMEs, m_hstSelHel, m_hstSelCol, m_nevt ) ); + CPPProcess process( /*verbose=*/false ); + m_pmek.reset( new MatrixElementKernelHost( m_hstMomentaC, m_hstGs, m_hstRndHel, m_hstRndCol, m_hstMEs, m_hstSelHel, m_hstSelCol, m_nevt ) ); #endif // __CUDACC__ process.initProc( "../../Cards/param_card.dat" ); } diff --git a/epochX/cudacpp/ee_mumu.sa/SubProcesses/BridgeKernels.cc b/epochX/cudacpp/ee_mumu.sa/SubProcesses/BridgeKernels.cc index cef4cb3c71..d58066c9c1 100644 --- a/epochX/cudacpp/ee_mumu.sa/SubProcesses/BridgeKernels.cc +++ b/epochX/cudacpp/ee_mumu.sa/SubProcesses/BridgeKernels.cc @@ -9,9 +9,6 @@ #include -constexpr int np4 = CPPProcess::np4; // dimensions of 4-momenta (E,px,py,pz) -constexpr int npar = CPPProcess::npar; // #particles in total (external = initial + final): e.g. 4 for e+ e- -> mu+ mu- - //============================================================================ #ifdef __CUDACC__ @@ -20,6 +17,9 @@ namespace mg5amcGpu namespace mg5amcCpu #endif { + constexpr int np4 = CPPProcess::np4; // dimensions of 4-momenta (E,px,py,pz) + constexpr int npar = CPPProcess::npar; // #particles in total (external = initial + final): e.g. 4 for e+ e- -> mu+ mu- + //-------------------------------------------------------------------------- BridgeKernelBase::BridgeKernelBase( const BufferMomenta& momenta, // input: momenta diff --git a/epochX/cudacpp/ee_mumu.sa/SubProcesses/MemoryAccessAmplitudes.h b/epochX/cudacpp/ee_mumu.sa/SubProcesses/MemoryAccessAmplitudes.h index 68f6838b5c..573b3bbbc9 100644 --- a/epochX/cudacpp/ee_mumu.sa/SubProcesses/MemoryAccessAmplitudes.h +++ b/epochX/cudacpp/ee_mumu.sa/SubProcesses/MemoryAccessAmplitudes.h @@ -14,142 +14,151 @@ #define MGONGPU_TRIVIAL_AMPLITUDES 1 -//---------------------------------------------------------------------------- - -#ifndef MGONGPU_TRIVIAL_AMPLITUDES - -// A class describing the internal layout of memory buffers for amplitudes -// This implementation uses an AOSOA[npagA][nx2][neppA] where nevt=npagA*neppA -// [If many implementations are used, a suffix _AOSOAv1 should be appended to the class name] -class MemoryAccessAmplitudesBase //_AOSOAv1 +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { -public: - - // Number of Events Per Page in the amplitude AOSOA memory buffer layout - static constexpr int neppA = 1; // AOS (just a test...) + //---------------------------------------------------------------------------- -private: - - friend class MemoryAccessHelper; - friend class KernelAccessHelper; - friend class KernelAccessHelper; - - // The number of floating point components of a complex number - static constexpr int nx2 = mgOnGpu::nx2; - - //-------------------------------------------------------------------------- - // NB all KernelLaunchers assume that memory access can be decomposed as "accessField = decodeRecord( accessRecord )" - // (in other words: first locate the event record for a given event, then locate an element in that record) - //-------------------------------------------------------------------------- +#ifndef MGONGPU_TRIVIAL_AMPLITUDES - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] - static __host__ __device__ inline fptype* - ieventAccessRecord( fptype* buffer, - const int ievt ) + // A class describing the internal layout of memory buffers for amplitudes + // This implementation uses an AOSOA[npagA][nx2][neppA] where nevt=npagA*neppA + // [If many implementations are used, a suffix _AOSOAv1 should be appended to the class name] + class MemoryAccessAmplitudesBase //_AOSOAv1 { - const int ipagA = ievt / neppA; // #event "A-page" - const int ieppA = ievt % neppA; // #event in the current event A-page - constexpr int ix2 = 0; - return &( buffer[ipagA * nx2 * neppA + ix2 * neppA + ieppA] ); // AOSOA[ipagA][ix2][ieppA] - } - - //-------------------------------------------------------------------------- - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, Ts... args ) <===] - // [NB: expand variadic template "Ts... args" to "const int ix2" and rename "Field" as "Ix2"] - static __host__ __device__ inline fptype& - decodeRecord( fptype* buffer, - const int ix2 ) + public: + + // Number of Events Per Page in the amplitude AOSOA memory buffer layout + static constexpr int neppA = 1; // AOS (just a test...) + + private: + + friend class MemoryAccessHelper; + friend class KernelAccessHelper; + friend class KernelAccessHelper; + + // The number of floating point components of a complex number + static constexpr int nx2 = mgOnGpu::nx2; + + //-------------------------------------------------------------------------- + // NB all KernelLaunchers assume that memory access can be decomposed as "accessField = decodeRecord( accessRecord )" + // (in other words: first locate the event record for a given event, then locate an element in that record) + //-------------------------------------------------------------------------- + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] + static __host__ __device__ inline fptype* + ieventAccessRecord( fptype* buffer, + const int ievt ) + { + const int ipagA = ievt / neppA; // #event "A-page" + const int ieppA = ievt % neppA; // #event in the current event A-page + constexpr int ix2 = 0; + return &( buffer[ipagA * nx2 * neppA + ix2 * neppA + ieppA] ); // AOSOA[ipagA][ix2][ieppA] + } + + //-------------------------------------------------------------------------- + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, Ts... args ) <===] + // [NB: expand variadic template "Ts... args" to "const int ix2" and rename "Field" as "Ix2"] + static __host__ __device__ inline fptype& + decodeRecord( fptype* buffer, + const int ix2 ) + { + constexpr int ipagA = 0; + constexpr int ieppA = 0; + return buffer[ipagA * nx2 * neppA + ix2 * neppA + ieppA]; // AOSOA[ipagA][ix2][ieppA] + } + }; + + //---------------------------------------------------------------------------- + + // A class providing access to memory buffers for a given event, based on explicit event numbers + // Its methods use the MemoryAccessHelper templates - note the use of the template keyword in template function instantiations + class MemoryAccessAmplitudes : public MemoryAccessAmplitudesBase { - constexpr int ipagA = 0; - constexpr int ieppA = 0; - return buffer[ipagA * nx2 * neppA + ix2 * neppA + ieppA]; // AOSOA[ipagA][ix2][ieppA] - } -}; + public: -//---------------------------------------------------------------------------- + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] + static constexpr auto ieventAccessRecord = MemoryAccessHelper::ieventAccessRecord; -// A class providing access to memory buffers for a given event, based on explicit event numbers -// Its methods use the MemoryAccessHelper templates - note the use of the template keyword in template function instantiations -class MemoryAccessAmplitudes : public MemoryAccessAmplitudesBase -{ -public: - - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] - static constexpr auto ieventAccessRecord = MemoryAccessHelper::ieventAccessRecord; + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (const) ===> const fptype* ieventAccessRecordConst( const fptype* buffer, const int ievt ) <===] + static constexpr auto ieventAccessRecordConst = MemoryAccessHelper::ieventAccessRecordConst; - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (const) ===> const fptype* ieventAccessRecordConst( const fptype* buffer, const int ievt ) <===] - static constexpr auto ieventAccessRecordConst = MemoryAccessHelper::ieventAccessRecordConst; + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, const int ix2 ) <===] + static constexpr auto decodeRecordIx2 = MemoryAccessHelper::decodeRecord; - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, const int ix2 ) <===] - static constexpr auto decodeRecordIx2 = MemoryAccessHelper::decodeRecord; + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (const) ===> const fptype& decodeRecordConst( const fptype* buffer, const int ix2 ) <===] + static constexpr auto decodeRecordIx2Const = + MemoryAccessHelper::template decodeRecordConst; - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (const) ===> const fptype& decodeRecordConst( const fptype* buffer, const int ix2 ) <===] - static constexpr auto decodeRecordIx2Const = - MemoryAccessHelper::template decodeRecordConst; + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (non-const) ===> fptype& ieventAccessIx2( fptype* buffer, const ievt, const int ix2 ) <===] + static constexpr auto ieventAccessIx2 = + MemoryAccessHelper::template ieventAccessField; - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (non-const) ===> fptype& ieventAccessIx2( fptype* buffer, const ievt, const int ix2 ) <===] - static constexpr auto ieventAccessIx2 = - MemoryAccessHelper::template ieventAccessField; - - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (const) ===> const fptype& ieventAccessIx2Const( const fptype* buffer, const ievt, const int ix2 ) <===] - static constexpr auto ieventAccessIx2Const = - MemoryAccessHelper::template ieventAccessFieldConst; -}; + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (const) ===> const fptype& ieventAccessIx2Const( const fptype* buffer, const ievt, const int ix2 ) <===] + static constexpr auto ieventAccessIx2Const = + MemoryAccessHelper::template ieventAccessFieldConst; + }; #endif // #ifndef MGONGPU_TRIVIAL_AMPLITUDES -//---------------------------------------------------------------------------- + //---------------------------------------------------------------------------- -// A class providing access to memory buffers for a given event, based on implicit kernel rules -// Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations -template -class KernelAccessAmplitudes -{ -public: + // A class providing access to memory buffers for a given event, based on implicit kernel rules + // Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations + template + class KernelAccessAmplitudes + { + public: #ifndef MGONGPU_TRIVIAL_AMPLITUDES - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (non-const) ===> fptype& kernelAccessIx2( fptype* buffer, const int ix2 ) <===] - static constexpr auto kernelAccessIx2 = - KernelAccessHelper::template kernelAccessField; + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (non-const) ===> fptype& kernelAccessIx2( fptype* buffer, const int ix2 ) <===] + static constexpr auto kernelAccessIx2 = + KernelAccessHelper::template kernelAccessField; - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (const) ===> const fptype& kernelAccessIx2Const( const fptype* buffer, const int ix2 ) <===] - static constexpr auto kernelAccessIx2Const = - KernelAccessHelper::template kernelAccessFieldConst; + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (const) ===> const fptype& kernelAccessIx2Const( const fptype* buffer, const int ix2 ) <===] + static constexpr auto kernelAccessIx2Const = + KernelAccessHelper::template kernelAccessFieldConst; #else - static __host__ __device__ inline cxtype_sv* - kernelAccess( fptype* buffer ) - { - return reinterpret_cast( buffer ); - } + static __host__ __device__ inline cxtype_sv* + kernelAccess( fptype* buffer ) + { + return reinterpret_cast( buffer ); + } - static __host__ __device__ inline const cxtype_sv* - kernelAccessConst( const fptype* buffer ) - { - return reinterpret_cast( buffer ); - } + static __host__ __device__ inline const cxtype_sv* + kernelAccessConst( const fptype* buffer ) + { + return reinterpret_cast( buffer ); + } #endif // #ifndef MGONGPU_TRIVIAL_AMPLITUDES -}; + }; + + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- + typedef KernelAccessAmplitudes HostAccessAmplitudes; + typedef KernelAccessAmplitudes DeviceAccessAmplitudes; -typedef KernelAccessAmplitudes HostAccessAmplitudes; -typedef KernelAccessAmplitudes DeviceAccessAmplitudes; + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- +} // end namespace mg5amcGpu/mg5amcCpu #endif // MemoryAccessAmplitudes_H diff --git a/epochX/cudacpp/ee_mumu.sa/SubProcesses/MemoryAccessCouplings.h b/epochX/cudacpp/ee_mumu.sa/SubProcesses/MemoryAccessCouplings.h index 15793bbec3..35a3af42e0 100644 --- a/epochX/cudacpp/ee_mumu.sa/SubProcesses/MemoryAccessCouplings.h +++ b/epochX/cudacpp/ee_mumu.sa/SubProcesses/MemoryAccessCouplings.h @@ -14,248 +14,257 @@ #include "MemoryAccessMomenta.h" // for MemoryAccessMomentaBase::neppM #include "MemoryBuffers.h" // for HostBufferCouplings::isaligned -//---------------------------------------------------------------------------- - -// A class describing the internal layout of memory buffers for couplings -// This implementation uses an AOSOA[npagC][ndcoup][nx2][neppC] "super-buffer" where nevt=npagC*neppC -// From the "super-buffer" for ndcoup different couplings, use idcoupAccessBuffer to access the buffer for one specific coupling -// [If many implementations are used, a suffix _AOSOAv1 should be appended to the class name] -class MemoryAccessCouplingsBase //_AOSOAv1 +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { -public: - - // Number of Events Per Page in the coupling AOSOA memory buffer layout - static constexpr int neppC = MemoryAccessMomentaBase::neppM; // use the same AOSOA striding as for momenta - - // SANITY CHECK: check that neppC is a power of two - static_assert( ispoweroftwo( neppC ), "neppC is not a power of 2" ); - - //-------------------------------------------------------------------------- - // ** NB! A single super-buffer AOSOA[npagC][ndcoup][nx2][neppC] includes data for ndcoup different couplings ** - // ** NB! The ieventAccessRecord and kernelAccess functions refer to the buffer for one individual coupling ** - // ** NB! Use idcoupAccessBuffer to add a fixed offset and locate the buffer for one given individual coupling ** - //-------------------------------------------------------------------------- - - // Locate the buffer for a single coupling (output) in a memory super-buffer (input) from the given coupling index (input) - // [Signature (non-const) ===> fptype* idcoupAccessBuffer( fptype* buffer, const int idcoup ) <===] - // NB: keep this in public even if exposed through KernelAccessCouplings: nvcc says it is inaccesible otherwise? - static __host__ __device__ inline fptype* - idcoupAccessBuffer( fptype* buffer, // input "super-buffer" - const int idcoup ) - { - constexpr int ipagC = 0; - constexpr int ieppC = 0; - constexpr int ix2 = 0; - // NB! this effectively adds an offset "idcoup * nx2 * neppC" - return &( buffer[ipagC * ndcoup * nx2 * neppC + idcoup * nx2 * neppC + ix2 * neppC + ieppC] ); // AOSOA[ipagC][idcoup][ix2][ieppC] - } - - // Locate the buffer for a single coupling (output) in a memory super-buffer (input) from the given coupling index (input) - // [Signature (const) ===> const fptype* idcoupAccessBufferConst( const fptype* buffer, const int idcoup ) <===] - // NB: keep this in public even if exposed through KernelAccessCouplings: nvcc says it is inaccesible otherwise? - static __host__ __device__ inline const fptype* - idcoupAccessBufferConst( const fptype* buffer, // input "super-buffer" - const int idcoup ) - { - return idcoupAccessBuffer( const_cast( buffer ), idcoup ); - } - -private: + //---------------------------------------------------------------------------- - friend class MemoryAccessHelper; - friend class KernelAccessHelper; - friend class KernelAccessHelper; - - // The number of couplings that dependent on the running alphas QCD in this specific process - static constexpr size_t ndcoup = Parameters_sm_dependentCouplings::ndcoup; - - // The number of floating point components of a complex number - static constexpr int nx2 = mgOnGpu::nx2; - - //-------------------------------------------------------------------------- - // NB all KernelLaunchers assume that memory access can be decomposed as "accessField = decodeRecord( accessRecord )" - // (in other words: first locate the event record for a given event, then locate an element in that record) - //-------------------------------------------------------------------------- - - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] - static __host__ __device__ inline fptype* - ieventAccessRecord( fptype* buffer, - const int ievt ) + // A class describing the internal layout of memory buffers for couplings + // This implementation uses an AOSOA[npagC][ndcoup][nx2][neppC] "super-buffer" where nevt=npagC*neppC + // From the "super-buffer" for ndcoup different couplings, use idcoupAccessBuffer to access the buffer for one specific coupling + // [If many implementations are used, a suffix _AOSOAv1 should be appended to the class name] + class MemoryAccessCouplingsBase //_AOSOAv1 { - const int ipagC = ievt / neppC; // #event "C-page" - const int ieppC = ievt % neppC; // #event in the current event C-page - constexpr int idcoup = 0; - constexpr int ix2 = 0; - return &( buffer[ipagC * ndcoup * nx2 * neppC + idcoup * nx2 * neppC + ix2 * neppC + ieppC] ); // AOSOA[ipagC][idcoup][ix2][ieppC] - } - - //-------------------------------------------------------------------------- - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, Ts... args ) <===] - // [NB: expand variadic template "Ts... args" to "const int ix2" and rename "Field" as "Ix2"] - static __host__ __device__ inline fptype& - decodeRecord( fptype* buffer, - const int ix2 ) + public: + + // Number of Events Per Page in the coupling AOSOA memory buffer layout + static constexpr int neppC = MemoryAccessMomentaBase::neppM; // use the same AOSOA striding as for momenta + + // SANITY CHECK: check that neppC is a power of two + static_assert( ispoweroftwo( neppC ), "neppC is not a power of 2" ); + + //-------------------------------------------------------------------------- + // ** NB! A single super-buffer AOSOA[npagC][ndcoup][nx2][neppC] includes data for ndcoup different couplings ** + // ** NB! The ieventAccessRecord and kernelAccess functions refer to the buffer for one individual coupling ** + // ** NB! Use idcoupAccessBuffer to add a fixed offset and locate the buffer for one given individual coupling ** + //-------------------------------------------------------------------------- + + // Locate the buffer for a single coupling (output) in a memory super-buffer (input) from the given coupling index (input) + // [Signature (non-const) ===> fptype* idcoupAccessBuffer( fptype* buffer, const int idcoup ) <===] + // NB: keep this in public even if exposed through KernelAccessCouplings: nvcc says it is inaccesible otherwise? + static __host__ __device__ inline fptype* + idcoupAccessBuffer( fptype* buffer, // input "super-buffer" + const int idcoup ) + { + constexpr int ipagC = 0; + constexpr int ieppC = 0; + constexpr int ix2 = 0; + // NB! this effectively adds an offset "idcoup * nx2 * neppC" + return &( buffer[ipagC * ndcoup * nx2 * neppC + idcoup * nx2 * neppC + ix2 * neppC + ieppC] ); // AOSOA[ipagC][idcoup][ix2][ieppC] + } + + // Locate the buffer for a single coupling (output) in a memory super-buffer (input) from the given coupling index (input) + // [Signature (const) ===> const fptype* idcoupAccessBufferConst( const fptype* buffer, const int idcoup ) <===] + // NB: keep this in public even if exposed through KernelAccessCouplings: nvcc says it is inaccesible otherwise? + static __host__ __device__ inline const fptype* + idcoupAccessBufferConst( const fptype* buffer, // input "super-buffer" + const int idcoup ) + { + return idcoupAccessBuffer( const_cast( buffer ), idcoup ); + } + + private: + + friend class MemoryAccessHelper; + friend class KernelAccessHelper; + friend class KernelAccessHelper; + + // The number of couplings that dependent on the running alphas QCD in this specific process + static constexpr size_t ndcoup = Parameters_sm_dependentCouplings::ndcoup; + + // The number of floating point components of a complex number + static constexpr int nx2 = mgOnGpu::nx2; + + //-------------------------------------------------------------------------- + // NB all KernelLaunchers assume that memory access can be decomposed as "accessField = decodeRecord( accessRecord )" + // (in other words: first locate the event record for a given event, then locate an element in that record) + //-------------------------------------------------------------------------- + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] + static __host__ __device__ inline fptype* + ieventAccessRecord( fptype* buffer, + const int ievt ) + { + const int ipagC = ievt / neppC; // #event "C-page" + const int ieppC = ievt % neppC; // #event in the current event C-page + constexpr int idcoup = 0; + constexpr int ix2 = 0; + return &( buffer[ipagC * ndcoup * nx2 * neppC + idcoup * nx2 * neppC + ix2 * neppC + ieppC] ); // AOSOA[ipagC][idcoup][ix2][ieppC] + } + + //-------------------------------------------------------------------------- + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, Ts... args ) <===] + // [NB: expand variadic template "Ts... args" to "const int ix2" and rename "Field" as "Ix2"] + static __host__ __device__ inline fptype& + decodeRecord( fptype* buffer, + const int ix2 ) + { + constexpr int ipagC = 0; + constexpr int ieppC = 0; + // NB! the offset "idcoup * nx2 * neppC" has been added in idcoupAccessBuffer + constexpr int idcoup = 0; + return buffer[ipagC * ndcoup * nx2 * neppC + idcoup * nx2 * neppC + ix2 * neppC + ieppC]; // AOSOA[ipagC][idcoup][ix2][ieppC] + } + }; + + //---------------------------------------------------------------------------- + + // A class providing access to memory buffers for a given event, based on explicit event numbers + // Its methods use the MemoryAccessHelper templates - note the use of the template keyword in template function instantiations + class MemoryAccessCouplings : public MemoryAccessCouplingsBase { - constexpr int ipagC = 0; - constexpr int ieppC = 0; - // NB! the offset "idcoup * nx2 * neppC" has been added in idcoupAccessBuffer - constexpr int idcoup = 0; - return buffer[ipagC * ndcoup * nx2 * neppC + idcoup * nx2 * neppC + ix2 * neppC + ieppC]; // AOSOA[ipagC][idcoup][ix2][ieppC] - } -}; - -//---------------------------------------------------------------------------- - -// A class providing access to memory buffers for a given event, based on explicit event numbers -// Its methods use the MemoryAccessHelper templates - note the use of the template keyword in template function instantiations -class MemoryAccessCouplings : public MemoryAccessCouplingsBase -{ -public: - - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] - static constexpr auto ieventAccessRecord = MemoryAccessHelper::ieventAccessRecord; - - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (const) ===> const fptype* ieventAccessRecordConst( const fptype* buffer, const int ievt ) <===] - static constexpr auto ieventAccessRecordConst = MemoryAccessHelper::ieventAccessRecordConst; - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, const int ix2 ) <===] - static constexpr auto decodeRecordIx2 = MemoryAccessHelper::decodeRecord; - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (const) ===> const fptype& decodeRecordConst( const fptype* buffer, const int ix2 ) <===] - static constexpr auto decodeRecordIx2Const = - MemoryAccessHelper::template decodeRecordConst; - - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (non-const) ===> fptype& ieventAccessIx2( fptype* buffer, const ievt, const int ix2 ) <===] - static constexpr auto ieventAccessIx2 = - MemoryAccessHelper::template ieventAccessField; - - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (const) ===> const fptype& ieventAccessIx2Const( const fptype* buffer, const ievt, const int ix2 ) <===] - static constexpr auto ieventAccessIx2Const = - MemoryAccessHelper::template ieventAccessFieldConst; -}; - -//---------------------------------------------------------------------------- - -// A class providing access to memory buffers for a given event, based on implicit kernel rules -// Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations -template -class KernelAccessCouplings -{ -public: - - // Expose selected functions from MemoryAccessCouplingsBase - static constexpr auto idcoupAccessBuffer = MemoryAccessCouplingsBase::idcoupAccessBuffer; - static constexpr auto idcoupAccessBufferConst = MemoryAccessCouplingsBase::idcoupAccessBufferConst; - - // Expose selected functions from MemoryAccessCouplings - static constexpr auto ieventAccessRecordConst = MemoryAccessCouplings::ieventAccessRecordConst; - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (non-const, SCALAR) ===> fptype& kernelAccessIx2( fptype* buffer, const int ix2 ) <===] - static constexpr auto kernelAccessIx2_s = - KernelAccessHelper::template kernelAccessField; - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (const, SCALAR) ===> const fptype& kernelAccessIx2Const( const fptype* buffer, const int ix2 ) <===] - static constexpr auto kernelAccessIx2Const_s = - KernelAccessHelper::template kernelAccessFieldConst; - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (non const, SCALAR OR VECTOR) ===> fptype_sv& kernelAccessIx2( fptype* buffer, const int ix2 ) <===] - static __host__ __device__ inline fptype_sv& - kernelAccessIx2( fptype* buffer, - const int ix2 ) + public: + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] + static constexpr auto ieventAccessRecord = MemoryAccessHelper::ieventAccessRecord; + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (const) ===> const fptype* ieventAccessRecordConst( const fptype* buffer, const int ievt ) <===] + static constexpr auto ieventAccessRecordConst = MemoryAccessHelper::ieventAccessRecordConst; + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, const int ix2 ) <===] + static constexpr auto decodeRecordIx2 = MemoryAccessHelper::decodeRecord; + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (const) ===> const fptype& decodeRecordConst( const fptype* buffer, const int ix2 ) <===] + static constexpr auto decodeRecordIx2Const = + MemoryAccessHelper::template decodeRecordConst; + + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (non-const) ===> fptype& ieventAccessIx2( fptype* buffer, const ievt, const int ix2 ) <===] + static constexpr auto ieventAccessIx2 = + MemoryAccessHelper::template ieventAccessField; + + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (const) ===> const fptype& ieventAccessIx2Const( const fptype* buffer, const ievt, const int ix2 ) <===] + static constexpr auto ieventAccessIx2Const = + MemoryAccessHelper::template ieventAccessFieldConst; + }; + + //---------------------------------------------------------------------------- + + // A class providing access to memory buffers for a given event, based on implicit kernel rules + // Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations + template + class KernelAccessCouplings { - fptype& out = kernelAccessIx2_s( buffer, ix2 ); + public: + + // Expose selected functions from MemoryAccessCouplingsBase + static constexpr auto idcoupAccessBuffer = MemoryAccessCouplingsBase::idcoupAccessBuffer; + static constexpr auto idcoupAccessBufferConst = MemoryAccessCouplingsBase::idcoupAccessBufferConst; + + // Expose selected functions from MemoryAccessCouplings + static constexpr auto ieventAccessRecordConst = MemoryAccessCouplings::ieventAccessRecordConst; + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (non-const, SCALAR) ===> fptype& kernelAccessIx2( fptype* buffer, const int ix2 ) <===] + static constexpr auto kernelAccessIx2_s = + KernelAccessHelper::template kernelAccessField; + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (const, SCALAR) ===> const fptype& kernelAccessIx2Const( const fptype* buffer, const int ix2 ) <===] + static constexpr auto kernelAccessIx2Const_s = + KernelAccessHelper::template kernelAccessFieldConst; + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (non const, SCALAR OR VECTOR) ===> fptype_sv& kernelAccessIx2( fptype* buffer, const int ix2 ) <===] + static __host__ __device__ inline fptype_sv& + kernelAccessIx2( fptype* buffer, + const int ix2 ) + { + fptype& out = kernelAccessIx2_s( buffer, ix2 ); #ifndef MGONGPU_CPPSIMD - return out; + return out; #else - // NB: derived from MemoryAccessMomenta, restricting the implementation to contiguous aligned arrays - constexpr int neppC = MemoryAccessCouplingsBase::neppC; - static_assert( neppC >= neppV ); // ASSUME CONTIGUOUS ARRAYS - static_assert( neppC % neppV == 0 ); // ASSUME CONTIGUOUS ARRAYS - static_assert( mg5amcCpu::HostBufferCouplings::isaligned() ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) - //assert( (size_t)( buffer ) % mgOnGpu::cppAlign == 0 ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) - return mg5amcCpu::fptypevFromAlignedArray( out ); // SIMD bulk load of neppV, use reinterpret_cast + // NB: derived from MemoryAccessMomenta, restricting the implementation to contiguous aligned arrays + constexpr int neppC = MemoryAccessCouplingsBase::neppC; + static_assert( neppC >= neppV ); // ASSUME CONTIGUOUS ARRAYS + static_assert( neppC % neppV == 0 ); // ASSUME CONTIGUOUS ARRAYS + static_assert( mg5amcCpu::HostBufferCouplings::isaligned() ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) + //assert( (size_t)( buffer ) % mgOnGpu::cppAlign == 0 ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) + return mg5amcCpu::fptypevFromAlignedArray( out ); // SIMD bulk load of neppV, use reinterpret_cast #endif - } + } - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (const, SCALAR OR VECTOR) ===> const fptype_sv& kernelAccessIx2Const( const fptype* buffer, const int ix2 ) <===] - static __host__ __device__ inline const fptype_sv& - kernelAccessIx2Const( const fptype* buffer, - const int ix2 ) - { - return kernelAccessIx2( const_cast( buffer ), ix2 ); - } - - /* - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (const, SCALAR OR VECTOR) ===> const fptype_sv& kernelAccessIx2Const( const fptype* buffer, const int ix2 ) <===] - static __host__ __device__ inline const fptype_sv& - kernelAccessIx2Const( const fptype* buffer, - const int ix2 ) - { - const fptype& out = kernelAccessIx2Const_s( buffer, ix2 ); + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (const, SCALAR OR VECTOR) ===> const fptype_sv& kernelAccessIx2Const( const fptype* buffer, const int ix2 ) <===] + static __host__ __device__ inline const fptype_sv& + kernelAccessIx2Const( const fptype* buffer, + const int ix2 ) + { + return kernelAccessIx2( const_cast( buffer ), ix2 ); + } + + /* + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (const, SCALAR OR VECTOR) ===> const fptype_sv& kernelAccessIx2Const( const fptype* buffer, const int ix2 ) <===] + static __host__ __device__ inline const fptype_sv& + kernelAccessIx2Const( const fptype* buffer, + const int ix2 ) + { + const fptype& out = kernelAccessIx2Const_s( buffer, ix2 ); #ifndef MGONGPU_CPPSIMD - return out; + return out; #else - // NB: derived from MemoryAccessMomenta, restricting the implementation to contiguous aligned arrays - constexpr int neppC = MemoryAccessCouplingsBase::neppC; - static_assert( neppC >= neppV ); // ASSUME CONTIGUOUS ARRAYS - static_assert( neppC % neppV == 0 ); // ASSUME CONTIGUOUS ARRAYS - static_assert( mg5amcCpu::HostBufferCouplings::isaligned() ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) - //assert( (size_t)( buffer ) % mgOnGpu::cppAlign == 0 ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) - return mg5amcCpu::fptypevFromAlignedArray( out ); // SIMD bulk load of neppV, use reinterpret_cast + // NB: derived from MemoryAccessMomenta, restricting the implementation to contiguous aligned arrays + constexpr int neppC = MemoryAccessCouplingsBase::neppC; + static_assert( neppC >= neppV ); // ASSUME CONTIGUOUS ARRAYS + static_assert( neppC % neppV == 0 ); // ASSUME CONTIGUOUS ARRAYS + static_assert( mg5amcCpu::HostBufferCouplings::isaligned() ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) + //assert( (size_t)( buffer ) % mgOnGpu::cppAlign == 0 ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) + return mg5amcCpu::fptypevFromAlignedArray( out ); // SIMD bulk load of neppV, use reinterpret_cast #endif - } - */ - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (non const, SCALAR OR VECTOR) ===> cxtype_sv_ref kernelAccess( fptype* buffer ) <===] - static __host__ __device__ inline cxtype_sv_ref - kernelAccess( fptype* buffer ) - { - /* - fptype_sv& real = kernelAccessIx2( buffer, 0 ); - fptype_sv& imag = kernelAccessIx2( buffer, 1 ); - printf( "C_ACCESS::kernelAccess: pbuffer=%p pr=%p pi=%p\n", buffer, &real, &imag ); - return cxtype_sv_ref( real, imag ); - */ - return cxtype_sv_ref( kernelAccessIx2( buffer, 0 ), - kernelAccessIx2( buffer, 1 ) ); - } - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (const, SCALAR OR VECTOR) ===> cxtype_sv kernelAccessConst( const fptype* buffer ) <===] - static __host__ __device__ inline cxtype_sv - kernelAccessConst( const fptype* buffer ) - { - /* - const fptype_sv& real = kernelAccessIx2Const( buffer, 0 ); - const fptype_sv& imag = kernelAccessIx2Const( buffer, 1 ); - printf( "C_ACCESS::kernelAccessConst: pbuffer=%p pr=%p pi=%p\n", buffer, &real, &imag ); - return cxtype_sv( real, imag ); + } */ - return cxtype_sv( kernelAccessIx2Const( buffer, 0 ), - kernelAccessIx2Const( buffer, 1 ) ); - } -}; - -//---------------------------------------------------------------------------- - -typedef KernelAccessCouplings HostAccessCouplings; -typedef KernelAccessCouplings DeviceAccessCouplings; -//---------------------------------------------------------------------------- + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (non const, SCALAR OR VECTOR) ===> cxtype_sv_ref kernelAccess( fptype* buffer ) <===] + static __host__ __device__ inline cxtype_sv_ref + kernelAccess( fptype* buffer ) + { + /* + fptype_sv& real = kernelAccessIx2( buffer, 0 ); + fptype_sv& imag = kernelAccessIx2( buffer, 1 ); + printf( "C_ACCESS::kernelAccess: pbuffer=%p pr=%p pi=%p\n", buffer, &real, &imag ); + return cxtype_sv_ref( real, imag ); + */ + return cxtype_sv_ref( kernelAccessIx2( buffer, 0 ), + kernelAccessIx2( buffer, 1 ) ); + } + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (const, SCALAR OR VECTOR) ===> cxtype_sv kernelAccessConst( const fptype* buffer ) <===] + static __host__ __device__ inline cxtype_sv + kernelAccessConst( const fptype* buffer ) + { + /* + const fptype_sv& real = kernelAccessIx2Const( buffer, 0 ); + const fptype_sv& imag = kernelAccessIx2Const( buffer, 1 ); + printf( "C_ACCESS::kernelAccessConst: pbuffer=%p pr=%p pi=%p\n", buffer, &real, &imag ); + return cxtype_sv( real, imag ); + */ + return cxtype_sv( kernelAccessIx2Const( buffer, 0 ), + kernelAccessIx2Const( buffer, 1 ) ); + } + }; + + //---------------------------------------------------------------------------- + + typedef KernelAccessCouplings HostAccessCouplings; + typedef KernelAccessCouplings DeviceAccessCouplings; + + //---------------------------------------------------------------------------- + +} // end namespace mg5amcGpu/mg5amcCpu #endif // MemoryAccessCouplings_H diff --git a/epochX/cudacpp/ee_mumu.sa/SubProcesses/MemoryAccessCouplingsFixed.h b/epochX/cudacpp/ee_mumu.sa/SubProcesses/MemoryAccessCouplingsFixed.h index 81193ab261..dc0d93afff 100644 --- a/epochX/cudacpp/ee_mumu.sa/SubProcesses/MemoryAccessCouplingsFixed.h +++ b/epochX/cudacpp/ee_mumu.sa/SubProcesses/MemoryAccessCouplingsFixed.h @@ -13,63 +13,72 @@ //#include "MemoryAccessHelpers.h" -//---------------------------------------------------------------------------- - -// A class describing the internal layout of memory buffers for fixed couplings -// This implementation uses a STRUCT[ndcoup][nx2] "super-buffer" layout: in practice, the cIPC global array -// From the "super-buffer" for ndcoup different couplings, use idcoupAccessBuffer to access the buffer for one specific coupling -// [If many implementations are used, a suffix _Sv1 should be appended to the class name] -class MemoryAccessCouplingsFixedBase //_Sv1 +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { -public: + //---------------------------------------------------------------------------- - // Locate the buffer for a single coupling (output) in a memory super-buffer (input) from the given coupling index (input) - // [Signature (const) ===> const fptype* iicoupAccessBufferConst( const fptype* buffer, const int iicoup ) <===] - static __host__ __device__ inline const fptype* - iicoupAccessBufferConst( const fptype* buffer, // input "super-buffer": in practice, the cIPC global array - const int iicoup ) + // A class describing the internal layout of memory buffers for fixed couplings + // This implementation uses a STRUCT[ndcoup][nx2] "super-buffer" layout: in practice, the cIPC global array + // From the "super-buffer" for ndcoup different couplings, use idcoupAccessBuffer to access the buffer for one specific coupling + // [If many implementations are used, a suffix _Sv1 should be appended to the class name] + class MemoryAccessCouplingsFixedBase //_Sv1 { - constexpr int ix2 = 0; - // NB! this effectively adds an offset "iicoup * nx2" - return &( buffer[iicoup * nx2 + ix2] ); // STRUCT[idcoup][ix2] - } - -private: - - // The number of floating point components of a complex number - static constexpr int nx2 = mgOnGpu::nx2; -}; - -//---------------------------------------------------------------------------- + public: + + // Locate the buffer for a single coupling (output) in a memory super-buffer (input) from the given coupling index (input) + // [Signature (const) ===> const fptype* iicoupAccessBufferConst( const fptype* buffer, const int iicoup ) <===] + static __host__ __device__ inline const fptype* + iicoupAccessBufferConst( const fptype* buffer, // input "super-buffer": in practice, the cIPC global array + const int iicoup ) + { + constexpr int ix2 = 0; + // NB! this effectively adds an offset "iicoup * nx2" + return &( buffer[iicoup * nx2 + ix2] ); // STRUCT[idcoup][ix2] + } + + private: + + // The number of floating point components of a complex number + static constexpr int nx2 = mgOnGpu::nx2; + }; + + //---------------------------------------------------------------------------- + + // A class providing access to memory buffers for a given event, based on implicit kernel rules + // Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations + template + class KernelAccessCouplingsFixed + { + public: -// A class providing access to memory buffers for a given event, based on implicit kernel rules -// Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations -template -class KernelAccessCouplingsFixed -{ -public: + // Expose selected functions from MemoryAccessCouplingsFixedBase + static constexpr auto iicoupAccessBufferConst = MemoryAccessCouplingsFixedBase::iicoupAccessBufferConst; - // Expose selected functions from MemoryAccessCouplingsFixedBase - static constexpr auto iicoupAccessBufferConst = MemoryAccessCouplingsFixedBase::iicoupAccessBufferConst; + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (const, SCALAR OR VECTOR) ===> cxtype_sv kernelAccessConst( const fptype* buffer ) <===] + static __host__ __device__ inline const cxtype_sv + kernelAccessConst( const fptype* buffer ) + { + // TRIVIAL ACCESS to fixed-couplings buffers! + //return cxmake( fptype_sv{ buffer[0] }, fptype_sv{ buffer[1] } ); // NO! BUG #339! + const fptype_sv r_sv = fptype_sv{ 0 } + buffer[0]; + const fptype_sv i_sv = fptype_sv{ 0 } + buffer[1]; + return cxmake( r_sv, i_sv ); // ugly but effective + } + }; - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (const, SCALAR OR VECTOR) ===> cxtype_sv kernelAccessConst( const fptype* buffer ) <===] - static __host__ __device__ inline const cxtype_sv - kernelAccessConst( const fptype* buffer ) - { - // TRIVIAL ACCESS to fixed-couplings buffers! - //return cxmake( fptype_sv{ buffer[0] }, fptype_sv{ buffer[1] } ); // NO! BUG #339! - const fptype_sv r_sv = fptype_sv{ 0 } + buffer[0]; - const fptype_sv i_sv = fptype_sv{ 0 } + buffer[1]; - return cxmake( r_sv, i_sv ); // ugly but effective - } -}; + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- + typedef KernelAccessCouplingsFixed HostAccessCouplingsFixed; + typedef KernelAccessCouplingsFixed DeviceAccessCouplingsFixed; -typedef KernelAccessCouplingsFixed HostAccessCouplingsFixed; -typedef KernelAccessCouplingsFixed DeviceAccessCouplingsFixed; + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- +} // end namespace mg5amcGpu/mg5amcCpu #endif // MemoryAccessCouplingsFixed_H diff --git a/epochX/cudacpp/ee_mumu.sa/SubProcesses/MemoryAccessDenominators.h b/epochX/cudacpp/ee_mumu.sa/SubProcesses/MemoryAccessDenominators.h index e76ae65ff9..3bce635718 100644 --- a/epochX/cudacpp/ee_mumu.sa/SubProcesses/MemoryAccessDenominators.h +++ b/epochX/cudacpp/ee_mumu.sa/SubProcesses/MemoryAccessDenominators.h @@ -9,15 +9,24 @@ #include "MemoryAccessGs.h" -//---------------------------------------------------------------------------- +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif +{ + //---------------------------------------------------------------------------- + + // A class describing the internal layout of memory buffers for denominators + // This implementation reuses the plain ARRAY[nevt] implementation of MemoryAccessGs -// A class describing the internal layout of memory buffers for denominators -// This implementation reuses the plain ARRAY[nevt] implementation of MemoryAccessGs + typedef KernelAccessGs HostAccessDenominators; + typedef KernelAccessGs DeviceAccessDenominators; -typedef KernelAccessGs HostAccessDenominators; -typedef KernelAccessGs DeviceAccessDenominators; + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- +} // end namespace mg5amcGpu/mg5amcCpu #endif #endif // MemoryAccessDenominators_H diff --git a/epochX/cudacpp/ee_mumu.sa/SubProcesses/MemoryAccessGs.h b/epochX/cudacpp/ee_mumu.sa/SubProcesses/MemoryAccessGs.h index 8996c0554c..31311aa375 100644 --- a/epochX/cudacpp/ee_mumu.sa/SubProcesses/MemoryAccessGs.h +++ b/epochX/cudacpp/ee_mumu.sa/SubProcesses/MemoryAccessGs.h @@ -12,142 +12,151 @@ #include "MemoryAccessVectors.h" #include "MemoryBuffers.h" // for HostBufferMatrixElements::isaligned -//---------------------------------------------------------------------------- - -// A class describing the internal layout of memory buffers for Gs -// This implementation uses a plain ARRAY[nevt] -// [If many implementations are used, a suffix _ARRAYv1 should be appended to the class name] -class MemoryAccessGsBase //_ARRAYv1 +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { -private: - - friend class MemoryAccessHelper; - friend class KernelAccessHelper; - friend class KernelAccessHelper; - - //-------------------------------------------------------------------------- - // NB all KernelLaunchers assume that memory access can be decomposed as "accessField = decodeRecord( accessRecord )" - // (in other words: first locate the event record for a given event, then locate an element in that record) - //-------------------------------------------------------------------------- - - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] - static __host__ __device__ inline fptype* - ieventAccessRecord( fptype* buffer, - const int ievt ) - { - return &( buffer[ievt] ); // ARRAY[nevt] - } - - //-------------------------------------------------------------------------- + //---------------------------------------------------------------------------- - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, Ts... args ) <===] - // [NB: expand variadic template "Ts... args" to empty and rename "Field" as empty] - static __host__ __device__ inline fptype& - decodeRecord( fptype* buffer ) + // A class describing the internal layout of memory buffers for Gs + // This implementation uses a plain ARRAY[nevt] + // [If many implementations are used, a suffix _ARRAYv1 should be appended to the class name] + class MemoryAccessGsBase //_ARRAYv1 { - constexpr int ievt = 0; - return buffer[ievt]; // ARRAY[nevt] - } -}; - -//---------------------------------------------------------------------------- - -// A class providing access to memory buffers for a given event, based on explicit event numbers -// Its methods use the MemoryAccessHelper templates - note the use of the template keyword in template function instantiations -class MemoryAccessGs : public MemoryAccessGsBase -{ -public: - - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] - static constexpr auto ieventAccessRecord = MemoryAccessHelper::ieventAccessRecord; - - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (const) ===> const fptype* ieventAccessRecordConst( const fptype* buffer, const int ievt ) <===] - static constexpr auto ieventAccessRecordConst = MemoryAccessHelper::ieventAccessRecordConst; - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer ) <===] - static constexpr auto decodeRecord = MemoryAccessHelper::decodeRecord; - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (const) ===> const fptype& decodeRecordConst( const fptype* buffer ) <===] - static constexpr auto decodeRecordConst = - MemoryAccessHelper::template decodeRecordConst<>; - - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (non-const) ===> fptype& ieventAccess( fptype* buffer, const ievt ) <===] - static constexpr auto ieventAccess = - MemoryAccessHelper::template ieventAccessField<>; - - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (const) ===> const fptype& ieventAccessConst( const fptype* buffer, const ievt ) <===] - static constexpr auto ieventAccessConst = - MemoryAccessHelper::template ieventAccessFieldConst<>; -}; - -//---------------------------------------------------------------------------- - -// A class providing access to memory buffers for a given event, based on implicit kernel rules -// Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations -template -class KernelAccessGs -{ -public: - - // Expose selected functions from MemoryAccessGs - static constexpr auto ieventAccessRecord = MemoryAccessGs::ieventAccessRecord; - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (non-const, SCALAR) ===> fptype& kernelAccess( fptype* buffer ) <===] - static constexpr auto kernelAccess_s = - KernelAccessHelper::template kernelAccessField<>; // requires cuda 11.4 - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) - // [Signature (non-const, SCALAR OR VECTOR) ===> fptype_sv& kernelAccess( fptype* buffer ) <===] - static __host__ __device__ inline fptype_sv& - kernelAccess( fptype* buffer ) + private: + + friend class MemoryAccessHelper; + friend class KernelAccessHelper; + friend class KernelAccessHelper; + + //-------------------------------------------------------------------------- + // NB all KernelLaunchers assume that memory access can be decomposed as "accessField = decodeRecord( accessRecord )" + // (in other words: first locate the event record for a given event, then locate an element in that record) + //-------------------------------------------------------------------------- + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] + static __host__ __device__ inline fptype* + ieventAccessRecord( fptype* buffer, + const int ievt ) + { + return &( buffer[ievt] ); // ARRAY[nevt] + } + + //-------------------------------------------------------------------------- + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, Ts... args ) <===] + // [NB: expand variadic template "Ts... args" to empty and rename "Field" as empty] + static __host__ __device__ inline fptype& + decodeRecord( fptype* buffer ) + { + constexpr int ievt = 0; + return buffer[ievt]; // ARRAY[nevt] + } + }; + + //---------------------------------------------------------------------------- + + // A class providing access to memory buffers for a given event, based on explicit event numbers + // Its methods use the MemoryAccessHelper templates - note the use of the template keyword in template function instantiations + class MemoryAccessGs : public MemoryAccessGsBase + { + public: + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] + static constexpr auto ieventAccessRecord = MemoryAccessHelper::ieventAccessRecord; + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (const) ===> const fptype* ieventAccessRecordConst( const fptype* buffer, const int ievt ) <===] + static constexpr auto ieventAccessRecordConst = MemoryAccessHelper::ieventAccessRecordConst; + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer ) <===] + static constexpr auto decodeRecord = MemoryAccessHelper::decodeRecord; + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (const) ===> const fptype& decodeRecordConst( const fptype* buffer ) <===] + static constexpr auto decodeRecordConst = + MemoryAccessHelper::template decodeRecordConst<>; + + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (non-const) ===> fptype& ieventAccess( fptype* buffer, const ievt ) <===] + static constexpr auto ieventAccess = + MemoryAccessHelper::template ieventAccessField<>; + + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (const) ===> const fptype& ieventAccessConst( const fptype* buffer, const ievt ) <===] + static constexpr auto ieventAccessConst = + MemoryAccessHelper::template ieventAccessFieldConst<>; + }; + + //---------------------------------------------------------------------------- + + // A class providing access to memory buffers for a given event, based on implicit kernel rules + // Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations + template + class KernelAccessGs { - fptype& out = kernelAccess_s( buffer ); + public: + + // Expose selected functions from MemoryAccessGs + static constexpr auto ieventAccessRecord = MemoryAccessGs::ieventAccessRecord; + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (non-const, SCALAR) ===> fptype& kernelAccess( fptype* buffer ) <===] + static constexpr auto kernelAccess_s = + KernelAccessHelper::template kernelAccessField<>; // requires cuda 11.4 + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) + // [Signature (non-const, SCALAR OR VECTOR) ===> fptype_sv& kernelAccess( fptype* buffer ) <===] + static __host__ __device__ inline fptype_sv& + kernelAccess( fptype* buffer ) + { + fptype& out = kernelAccess_s( buffer ); #ifndef MGONGPU_CPPSIMD - return out; + return out; #else - // NB: derived from MemoryAccessMomenta, restricting the implementation to contiguous aligned arrays (#435) - static_assert( mg5amcCpu::HostBufferGs::isaligned() ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) - //assert( (size_t)( buffer ) % mgOnGpu::cppAlign == 0 ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) - return mg5amcCpu::fptypevFromAlignedArray( out ); // SIMD bulk load of neppV, use reinterpret_cast + // NB: derived from MemoryAccessMomenta, restricting the implementation to contiguous aligned arrays (#435) + static_assert( mg5amcCpu::HostBufferGs::isaligned() ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) + //assert( (size_t)( buffer ) % mgOnGpu::cppAlign == 0 ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) + return mg5amcCpu::fptypevFromAlignedArray( out ); // SIMD bulk load of neppV, use reinterpret_cast #endif - } - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (const, SCALAR) ===> const fptype& kernelAccessConst( const fptype* buffer ) <===] - static constexpr auto kernelAccessConst_s = - KernelAccessHelper::template kernelAccessFieldConst<>; // requires cuda 11.4 - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) - // [Signature (const, SCALAR OR VECTOR) ===> const fptype_sv& kernelAccess( const fptype* buffer ) <===] - static __host__ __device__ inline const fptype_sv& - kernelAccessConst( const fptype* buffer ) - { - const fptype& out = kernelAccessConst_s( buffer ); + } + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (const, SCALAR) ===> const fptype& kernelAccessConst( const fptype* buffer ) <===] + static constexpr auto kernelAccessConst_s = + KernelAccessHelper::template kernelAccessFieldConst<>; // requires cuda 11.4 + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) + // [Signature (const, SCALAR OR VECTOR) ===> const fptype_sv& kernelAccess( const fptype* buffer ) <===] + static __host__ __device__ inline const fptype_sv& + kernelAccessConst( const fptype* buffer ) + { + const fptype& out = kernelAccessConst_s( buffer ); #ifndef MGONGPU_CPPSIMD - return out; + return out; #else - // NB: derived from MemoryAccessMomenta, restricting the implementation to contiguous aligned arrays (#435) - static_assert( mg5amcCpu::HostBufferGs::isaligned() ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) - //assert( (size_t)( buffer ) % mgOnGpu::cppAlign == 0 ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) - return mg5amcCpu::fptypevFromAlignedArray( out ); // SIMD bulk load of neppV, use reinterpret_cast + // NB: derived from MemoryAccessMomenta, restricting the implementation to contiguous aligned arrays (#435) + static_assert( mg5amcCpu::HostBufferGs::isaligned() ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) + //assert( (size_t)( buffer ) % mgOnGpu::cppAlign == 0 ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) + return mg5amcCpu::fptypevFromAlignedArray( out ); // SIMD bulk load of neppV, use reinterpret_cast #endif - } -}; + } + }; + + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- + typedef KernelAccessGs HostAccessGs; + typedef KernelAccessGs DeviceAccessGs; -typedef KernelAccessGs HostAccessGs; -typedef KernelAccessGs DeviceAccessGs; + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- +} // end namespace mg5amcGpu/mg5amcCpu #endif // MemoryAccessGs_H diff --git a/epochX/cudacpp/ee_mumu.sa/SubProcesses/MemoryAccessMatrixElements.h b/epochX/cudacpp/ee_mumu.sa/SubProcesses/MemoryAccessMatrixElements.h index b2a82d9acf..f32e6fea5b 100644 --- a/epochX/cudacpp/ee_mumu.sa/SubProcesses/MemoryAccessMatrixElements.h +++ b/epochX/cudacpp/ee_mumu.sa/SubProcesses/MemoryAccessMatrixElements.h @@ -12,126 +12,135 @@ #include "MemoryAccessVectors.h" #include "MemoryBuffers.h" // for HostBufferMatrixElements::isaligned -//---------------------------------------------------------------------------- - -// A class describing the internal layout of memory buffers for matrix elements -// This implementation uses a plain ARRAY[nevt] -// [If many implementations are used, a suffix _ARRAYv1 should be appended to the class name] -class MemoryAccessMatrixElementsBase //_ARRAYv1 +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { -private: - - friend class MemoryAccessHelper; - friend class KernelAccessHelper; - friend class KernelAccessHelper; - - //-------------------------------------------------------------------------- - // NB all KernelLaunchers assume that memory access can be decomposed as "accessField = decodeRecord( accessRecord )" - // (in other words: first locate the event record for a given event, then locate an element in that record) - //-------------------------------------------------------------------------- - - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] - static __host__ __device__ inline fptype* - ieventAccessRecord( fptype* buffer, - const int ievt ) - { - return &( buffer[ievt] ); // ARRAY[nevt] - } + //---------------------------------------------------------------------------- - //-------------------------------------------------------------------------- - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, Ts... args ) <===] - // [NB: expand variadic template "Ts... args" to empty and rename "Field" as empty] - static __host__ __device__ inline fptype& - decodeRecord( fptype* buffer ) + // A class describing the internal layout of memory buffers for matrix elements + // This implementation uses a plain ARRAY[nevt] + // [If many implementations are used, a suffix _ARRAYv1 should be appended to the class name] + class MemoryAccessMatrixElementsBase //_ARRAYv1 { - constexpr int ievt = 0; - return buffer[ievt]; // ARRAY[nevt] - } -}; - -//---------------------------------------------------------------------------- - -// A class providing access to memory buffers for a given event, based on explicit event numbers -// Its methods use the MemoryAccessHelper templates - note the use of the template keyword in template function instantiations -class MemoryAccessMatrixElements : public MemoryAccessMatrixElementsBase -{ -public: - - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] - static constexpr auto ieventAccessRecord = MemoryAccessHelper::ieventAccessRecord; - - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (const) ===> const fptype* ieventAccessRecordConst( const fptype* buffer, const int ievt ) <===] - static constexpr auto ieventAccessRecordConst = MemoryAccessHelper::ieventAccessRecordConst; - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer ) <===] - static constexpr auto decodeRecord = MemoryAccessHelper::decodeRecord; - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (const) ===> const fptype& decodeRecordConst( const fptype* buffer ) <===] - static constexpr auto decodeRecordConst = - MemoryAccessHelper::template decodeRecordConst<>; - - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (non-const) ===> fptype& ieventAccess( fptype* buffer, const ievt ) <===] - static constexpr auto ieventAccess = - MemoryAccessHelper::template ieventAccessField<>; - - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (const) ===> const fptype& ieventAccessConst( const fptype* buffer, const ievt ) <===] - static constexpr auto ieventAccessConst = - MemoryAccessHelper::template ieventAccessFieldConst<>; -}; - -//---------------------------------------------------------------------------- - -// A class providing access to memory buffers for a given event, based on implicit kernel rules -// Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations -template -class KernelAccessMatrixElements -{ -public: - - // Expose selected functions from MemoryAccessMatrixElements - static constexpr auto ieventAccessRecord = MemoryAccessMatrixElements::ieventAccessRecord; - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (non-const, SCALAR) ===> fptype& kernelAccess_s( fptype* buffer ) <===] - static constexpr auto kernelAccess_s = - KernelAccessHelper::template kernelAccessField<>; // requires cuda 11.4 - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) - // [Signature (non const, SCALAR OR VECTOR) ===> fptype_sv& kernelAccess( const fptype* buffer ) <===] - static __host__ __device__ inline fptype_sv& - kernelAccess( fptype* buffer ) + private: + + friend class MemoryAccessHelper; + friend class KernelAccessHelper; + friend class KernelAccessHelper; + + //-------------------------------------------------------------------------- + // NB all KernelLaunchers assume that memory access can be decomposed as "accessField = decodeRecord( accessRecord )" + // (in other words: first locate the event record for a given event, then locate an element in that record) + //-------------------------------------------------------------------------- + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] + static __host__ __device__ inline fptype* + ieventAccessRecord( fptype* buffer, + const int ievt ) + { + return &( buffer[ievt] ); // ARRAY[nevt] + } + + //-------------------------------------------------------------------------- + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, Ts... args ) <===] + // [NB: expand variadic template "Ts... args" to empty and rename "Field" as empty] + static __host__ __device__ inline fptype& + decodeRecord( fptype* buffer ) + { + constexpr int ievt = 0; + return buffer[ievt]; // ARRAY[nevt] + } + }; + + //---------------------------------------------------------------------------- + + // A class providing access to memory buffers for a given event, based on explicit event numbers + // Its methods use the MemoryAccessHelper templates - note the use of the template keyword in template function instantiations + class MemoryAccessMatrixElements : public MemoryAccessMatrixElementsBase + { + public: + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] + static constexpr auto ieventAccessRecord = MemoryAccessHelper::ieventAccessRecord; + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (const) ===> const fptype* ieventAccessRecordConst( const fptype* buffer, const int ievt ) <===] + static constexpr auto ieventAccessRecordConst = MemoryAccessHelper::ieventAccessRecordConst; + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer ) <===] + static constexpr auto decodeRecord = MemoryAccessHelper::decodeRecord; + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (const) ===> const fptype& decodeRecordConst( const fptype* buffer ) <===] + static constexpr auto decodeRecordConst = + MemoryAccessHelper::template decodeRecordConst<>; + + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (non-const) ===> fptype& ieventAccess( fptype* buffer, const ievt ) <===] + static constexpr auto ieventAccess = + MemoryAccessHelper::template ieventAccessField<>; + + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (const) ===> const fptype& ieventAccessConst( const fptype* buffer, const ievt ) <===] + static constexpr auto ieventAccessConst = + MemoryAccessHelper::template ieventAccessFieldConst<>; + }; + + //---------------------------------------------------------------------------- + + // A class providing access to memory buffers for a given event, based on implicit kernel rules + // Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations + template + class KernelAccessMatrixElements { - fptype& out = kernelAccess_s( buffer ); + public: + + // Expose selected functions from MemoryAccessMatrixElements + static constexpr auto ieventAccessRecord = MemoryAccessMatrixElements::ieventAccessRecord; + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (non-const, SCALAR) ===> fptype& kernelAccess_s( fptype* buffer ) <===] + static constexpr auto kernelAccess_s = + KernelAccessHelper::template kernelAccessField<>; // requires cuda 11.4 + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) + // [Signature (non const, SCALAR OR VECTOR) ===> fptype_sv& kernelAccess( const fptype* buffer ) <===] + static __host__ __device__ inline fptype_sv& + kernelAccess( fptype* buffer ) + { + fptype& out = kernelAccess_s( buffer ); #ifndef MGONGPU_CPPSIMD - return out; + return out; #else - // NB: derived from MemoryAccessMomenta, restricting the implementation to contiguous aligned arrays (#435) - static_assert( mg5amcCpu::HostBufferMatrixElements::isaligned() ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) - //assert( (size_t)( buffer ) % mgOnGpu::cppAlign == 0 ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) - return mg5amcCpu::fptypevFromAlignedArray( out ); // SIMD bulk load of neppV, use reinterpret_cast + // NB: derived from MemoryAccessMomenta, restricting the implementation to contiguous aligned arrays (#435) + static_assert( mg5amcCpu::HostBufferMatrixElements::isaligned() ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) + //assert( (size_t)( buffer ) % mgOnGpu::cppAlign == 0 ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) + return mg5amcCpu::fptypevFromAlignedArray( out ); // SIMD bulk load of neppV, use reinterpret_cast #endif - } + } + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (const) ===> const fptype& kernelAccessConst( const fptype* buffer ) <===] + static constexpr auto kernelAccessConst = + KernelAccessHelper::template kernelAccessFieldConst<>; // requires cuda 11.4 + }; - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (const) ===> const fptype& kernelAccessConst( const fptype* buffer ) <===] - static constexpr auto kernelAccessConst = - KernelAccessHelper::template kernelAccessFieldConst<>; // requires cuda 11.4 -}; + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- + typedef KernelAccessMatrixElements HostAccessMatrixElements; + typedef KernelAccessMatrixElements DeviceAccessMatrixElements; -typedef KernelAccessMatrixElements HostAccessMatrixElements; -typedef KernelAccessMatrixElements DeviceAccessMatrixElements; + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- +} // end namespace mg5amcGpu/mg5amcCpu #endif // MemoryAccessMatrixElements_H diff --git a/epochX/cudacpp/ee_mumu.sa/SubProcesses/MemoryAccessMomenta.h b/epochX/cudacpp/ee_mumu.sa/SubProcesses/MemoryAccessMomenta.h index 0ac4faa3c7..29266de32c 100644 --- a/epochX/cudacpp/ee_mumu.sa/SubProcesses/MemoryAccessMomenta.h +++ b/epochX/cudacpp/ee_mumu.sa/SubProcesses/MemoryAccessMomenta.h @@ -12,261 +12,264 @@ #include "MemoryAccessHelpers.h" #include "MemoryAccessVectors.h" +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) #ifdef __CUDACC__ -using mg5amcGpu::CPPProcess; +namespace mg5amcGpu #else -using mg5amcCpu::CPPProcess; +namespace mg5amcCpu #endif - -//---------------------------------------------------------------------------- - -// A class describing the internal layout of memory buffers for momenta -// This implementation uses an AOSOA[npagM][npar][np4][neppM] where nevt=npagM*neppM -// [If many implementations are used, a suffix _AOSOAv1 should be appended to the class name] -class MemoryAccessMomentaBase //_AOSOAv1 { -public: + //---------------------------------------------------------------------------- + + // A class describing the internal layout of memory buffers for momenta + // This implementation uses an AOSOA[npagM][npar][np4][neppM] where nevt=npagM*neppM + // [If many implementations are used, a suffix _AOSOAv1 should be appended to the class name] + class MemoryAccessMomentaBase //_AOSOAv1 + { + public: - // Number of Events Per Page in the momenta AOSOA memory buffer layout - // (these are all best kept as a compile-time constants: see issue #23) + // Number of Events Per Page in the momenta AOSOA memory buffer layout + // (these are all best kept as a compile-time constants: see issue #23) #ifdef __CUDACC__ /* clang-format off */ - // ----------------------------------------------------------------------------------------------- - // --- GPUs: neppM is best set to a power of 2 times the number of fptype's in a 32-byte cacheline - // --- This is relevant to ensure coalesced access to momenta in global memory - // --- Note that neppR is hardcoded and may differ from neppM and neppV on some platforms - // ----------------------------------------------------------------------------------------------- - //static constexpr int neppM = 64/sizeof(fptype); // 2x 32-byte GPU cache lines (512 bits): 8 (DOUBLE) or 16 (FLOAT) - static constexpr int neppM = 32/sizeof(fptype); // (DEFAULT) 32-byte GPU cache line (256 bits): 4 (DOUBLE) or 8 (FLOAT) - //static constexpr int neppM = 1; // *** NB: this is equivalent to AOS *** (slower: 1.03E9 instead of 1.11E9 in eemumu) + // ----------------------------------------------------------------------------------------------- + // --- GPUs: neppM is best set to a power of 2 times the number of fptype's in a 32-byte cacheline + // --- This is relevant to ensure coalesced access to momenta in global memory + // --- Note that neppR is hardcoded and may differ from neppM and neppV on some platforms + // ----------------------------------------------------------------------------------------------- + //static constexpr int neppM = 64/sizeof(fptype); // 2x 32-byte GPU cache lines (512 bits): 8 (DOUBLE) or 16 (FLOAT) + static constexpr int neppM = 32/sizeof(fptype); // (DEFAULT) 32-byte GPU cache line (256 bits): 4 (DOUBLE) or 8 (FLOAT) + //static constexpr int neppM = 1; // *** NB: this is equivalent to AOS *** (slower: 1.03E9 instead of 1.11E9 in eemumu) #else - // ----------------------------------------------------------------------------------------------- - // --- CPUs: neppM is best set equal to the number of fptype's (neppV) in a vector register - // --- This is relevant to ensure faster access to momenta from C++ memory cache lines - // --- However, neppM is now decoupled from neppV (issue #176) and can be separately hardcoded - // --- In practice, neppR, neppM and neppV could now (in principle) all be different - // ----------------------------------------------------------------------------------------------- + // ----------------------------------------------------------------------------------------------- + // --- CPUs: neppM is best set equal to the number of fptype's (neppV) in a vector register + // --- This is relevant to ensure faster access to momenta from C++ memory cache lines + // --- However, neppM is now decoupled from neppV (issue #176) and can be separately hardcoded + // --- In practice, neppR, neppM and neppV could now (in principle) all be different + // ----------------------------------------------------------------------------------------------- #ifdef MGONGPU_CPPSIMD - static constexpr int neppM = MGONGPU_CPPSIMD; // (DEFAULT) neppM=neppV for optimal performance - //static constexpr int neppM = 64/sizeof(fptype); // maximum CPU vector width (512 bits): 8 (DOUBLE) or 16 (FLOAT) - //static constexpr int neppM = 32/sizeof(fptype); // lower CPU vector width (256 bits): 4 (DOUBLE) or 8 (FLOAT) - //static constexpr int neppM = 1; // *** NB: this is equivalent to AOS *** (slower: 4.66E6 instead of 5.09E9 in eemumu) - //static constexpr int neppM = MGONGPU_CPPSIMD*2; // FOR TESTS + static constexpr int neppM = MGONGPU_CPPSIMD; // (DEFAULT) neppM=neppV for optimal performance + //static constexpr int neppM = 64/sizeof(fptype); // maximum CPU vector width (512 bits): 8 (DOUBLE) or 16 (FLOAT) + //static constexpr int neppM = 32/sizeof(fptype); // lower CPU vector width (256 bits): 4 (DOUBLE) or 8 (FLOAT) + //static constexpr int neppM = 1; // *** NB: this is equivalent to AOS *** (slower: 4.66E6 instead of 5.09E9 in eemumu) + //static constexpr int neppM = MGONGPU_CPPSIMD*2; // FOR TESTS #else - static constexpr int neppM = 1; // (DEFAULT) neppM=neppV for optimal performance (NB: this is equivalent to AOS) + static constexpr int neppM = 1; // (DEFAULT) neppM=neppV for optimal performance (NB: this is equivalent to AOS) #endif #endif /* clang-format on */ - // SANITY CHECK: check that neppM is a power of two - static_assert( ispoweroftwo( neppM ), "neppM is not a power of 2" ); + // SANITY CHECK: check that neppM is a power of two + static_assert( ispoweroftwo( neppM ), "neppM is not a power of 2" ); -private: + private: - friend class MemoryAccessHelper; - friend class KernelAccessHelper; - friend class KernelAccessHelper; + friend class MemoryAccessHelper; + friend class KernelAccessHelper; + friend class KernelAccessHelper; - // The number of components of a 4-momentum - static constexpr int np4 = CPPProcess::np4; + // The number of components of a 4-momentum + static constexpr int np4 = CPPProcess::np4; - // The number of particles in this physics process - static constexpr int npar = CPPProcess::npar; + // The number of particles in this physics process + static constexpr int npar = CPPProcess::npar; - //-------------------------------------------------------------------------- - // NB all KernelLaunchers assume that memory access can be decomposed as "accessField = decodeRecord( accessRecord )" - // (in other words: first locate the event record for a given event, then locate an element in that record) - //-------------------------------------------------------------------------- + //-------------------------------------------------------------------------- + // NB all KernelLaunchers assume that memory access can be decomposed as "accessField = decodeRecord( accessRecord )" + // (in other words: first locate the event record for a given event, then locate an element in that record) + //-------------------------------------------------------------------------- - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] - static __host__ __device__ inline fptype* - ieventAccessRecord( fptype* buffer, - const int ievt ) - { - const int ipagM = ievt / neppM; // #event "M-page" - const int ieppM = ievt % neppM; // #event in the current event M-page - constexpr int ip4 = 0; - constexpr int ipar = 0; - return &( buffer[ipagM * npar * np4 * neppM + ipar * np4 * neppM + ip4 * neppM + ieppM] ); // AOSOA[ipagM][ipar][ip4][ieppM] - } - - //-------------------------------------------------------------------------- - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, Ts... args ) <===] - // [NB: expand variadic template "Ts... args" to "const int ip4, const int ipar" and rename "Field" as "Ip4Ipar"] - static __host__ __device__ inline fptype& - decodeRecord( fptype* buffer, - const int ip4, - const int ipar ) + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] + static __host__ __device__ inline fptype* + ieventAccessRecord( fptype* buffer, + const int ievt ) + { + const int ipagM = ievt / neppM; // #event "M-page" + const int ieppM = ievt % neppM; // #event in the current event M-page + constexpr int ip4 = 0; + constexpr int ipar = 0; + return &( buffer[ipagM * npar * np4 * neppM + ipar * np4 * neppM + ip4 * neppM + ieppM] ); // AOSOA[ipagM][ipar][ip4][ieppM] + } + + //-------------------------------------------------------------------------- + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, Ts... args ) <===] + // [NB: expand variadic template "Ts... args" to "const int ip4, const int ipar" and rename "Field" as "Ip4Ipar"] + static __host__ __device__ inline fptype& + decodeRecord( fptype* buffer, + const int ip4, + const int ipar ) + { + constexpr int ipagM = 0; + constexpr int ieppM = 0; + return buffer[ipagM * npar * np4 * neppM + ipar * np4 * neppM + ip4 * neppM + ieppM]; // AOSOA[ipagM][ipar][ip4][ieppM] + } + }; + + //---------------------------------------------------------------------------- + + // A class providing access to memory buffers for a given event, based on explicit event numbers + // Its methods use the MemoryAccessHelper templates - note the use of the template keyword in template function instantiations + class MemoryAccessMomenta : public MemoryAccessMomentaBase { - constexpr int ipagM = 0; - constexpr int ieppM = 0; - return buffer[ipagM * npar * np4 * neppM + ipar * np4 * neppM + ip4 * neppM + ieppM]; // AOSOA[ipagM][ipar][ip4][ieppM] - } -}; + public: + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] + static constexpr auto ieventAccessRecord = MemoryAccessHelper::ieventAccessRecord; + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (const) ===> const fptype* ieventAccessRecordConst( const fptype* buffer, const int ievt ) <===] + static constexpr auto ieventAccessRecordConst = MemoryAccessHelper::ieventAccessRecordConst; + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, const int ipar, const int ipar ) <===] + static constexpr auto decodeRecordIp4Ipar = MemoryAccessHelper::decodeRecord; + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (const) ===> const fptype& decodeRecordConst( const fptype* buffer, const int ipar, const int ipar ) <===] + static constexpr auto decodeRecordIp4IparConst = + MemoryAccessHelper::template decodeRecordConst; + + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (non-const) ===> fptype& ieventAccessIp4Ipar( fptype* buffer, const ievt, const int ipar, const int ipar ) <===] + static constexpr auto ieventAccessIp4Ipar = + MemoryAccessHelper::template ieventAccessField; + + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (const) ===> const fptype& ieventAccessIp4IparConst( const fptype* buffer, const ievt, const int ipar, const int ipar ) <===] + // DEFAULT VERSION + static constexpr auto ieventAccessIp4IparConst = + MemoryAccessHelper::template ieventAccessFieldConst; + + /* + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (const) ===> const fptype& ieventAccessIp4IparConst( const fptype* buffer, const ievt, const int ipar, const int ipar ) <===] + // DEBUG VERSION WITH PRINTOUTS + static __host__ __device__ inline const fptype& + ieventAccessIp4IparConst( const fptype* buffer, + const int ievt, + const int ip4, + const int ipar ) + { + const fptype& out = MemoryAccessHelper::template ieventAccessFieldConst( buffer, ievt, ip4, ipar ); + printf( "ipar=%2d ip4=%2d ievt=%8d out=%8.3f\n", ipar, ip4, ievt, out ); + return out; + } + */ + }; -//---------------------------------------------------------------------------- + //---------------------------------------------------------------------------- -// A class providing access to memory buffers for a given event, based on explicit event numbers -// Its methods use the MemoryAccessHelper templates - note the use of the template keyword in template function instantiations -class MemoryAccessMomenta : public MemoryAccessMomentaBase -{ -public: - - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] - static constexpr auto ieventAccessRecord = MemoryAccessHelper::ieventAccessRecord; - - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (const) ===> const fptype* ieventAccessRecordConst( const fptype* buffer, const int ievt ) <===] - static constexpr auto ieventAccessRecordConst = MemoryAccessHelper::ieventAccessRecordConst; - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, const int ipar, const int ipar ) <===] - static constexpr auto decodeRecordIp4Ipar = MemoryAccessHelper::decodeRecord; - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (const) ===> const fptype& decodeRecordConst( const fptype* buffer, const int ipar, const int ipar ) <===] - static constexpr auto decodeRecordIp4IparConst = - MemoryAccessHelper::template decodeRecordConst; - - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (non-const) ===> fptype& ieventAccessIp4Ipar( fptype* buffer, const ievt, const int ipar, const int ipar ) <===] - static constexpr auto ieventAccessIp4Ipar = - MemoryAccessHelper::template ieventAccessField; - - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (const) ===> const fptype& ieventAccessIp4IparConst( const fptype* buffer, const ievt, const int ipar, const int ipar ) <===] - // DEFAULT VERSION - static constexpr auto ieventAccessIp4IparConst = - MemoryAccessHelper::template ieventAccessFieldConst; - - /* - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (const) ===> const fptype& ieventAccessIp4IparConst( const fptype* buffer, const ievt, const int ipar, const int ipar ) <===] - // DEBUG VERSION WITH PRINTOUTS - static __host__ __device__ inline const fptype& - ieventAccessIp4IparConst( const fptype* buffer, - const int ievt, - const int ip4, - const int ipar ) + // A class providing access to memory buffers for a given event, based on implicit kernel rules + // Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations + template + class KernelAccessMomenta { - const fptype& out = MemoryAccessHelper::template ieventAccessFieldConst( buffer, ievt, ip4, ipar ); - printf( "ipar=%2d ip4=%2d ievt=%8d out=%8.3f\n", ipar, ip4, ievt, out ); - return out; - } - */ -}; - -//---------------------------------------------------------------------------- - -// A class providing access to memory buffers for a given event, based on implicit kernel rules -// Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations -template -class KernelAccessMomenta -{ -public: - - // Expose selected functions from MemoryAccessMomenta - static constexpr auto ieventAccessRecordConst = MemoryAccessMomenta::ieventAccessRecordConst; - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (non-const, SCALAR) ===> fptype& kernelAccessIp4Ipar( fptype* buffer, const int ipar, const int ipar ) <===] - static constexpr auto kernelAccessIp4Ipar = - KernelAccessHelper::template kernelAccessField; - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (const, SCALAR) ===> const fptype& kernelAccessIp4IparConst( const fptype* buffer, const int ipar, const int ipar ) <===] - // DEFAULT VERSION - static constexpr auto kernelAccessIp4IparConst_s = - KernelAccessHelper::template kernelAccessFieldConst; - - /* - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (const, SCALAR) ===> const fptype& kernelAccessIp4IparConst( const fptype* buffer, const int ipar, const int ipar ) <===] - // DEBUG VERSION WITH PRINTOUTS - static __host__ __device__ inline const fptype& - kernelAccessIp4IparConst_s( const fptype* buffer, + public: + + // Expose selected functions from MemoryAccessMomenta + static constexpr auto ieventAccessRecordConst = MemoryAccessMomenta::ieventAccessRecordConst; + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (non-const, SCALAR) ===> fptype& kernelAccessIp4Ipar( fptype* buffer, const int ipar, const int ipar ) <===] + static constexpr auto kernelAccessIp4Ipar = + KernelAccessHelper::template kernelAccessField; + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (const, SCALAR) ===> const fptype& kernelAccessIp4IparConst( const fptype* buffer, const int ipar, const int ipar ) <===] + // DEFAULT VERSION + static constexpr auto kernelAccessIp4IparConst_s = + KernelAccessHelper::template kernelAccessFieldConst; + + /* + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (const, SCALAR) ===> const fptype& kernelAccessIp4IparConst( const fptype* buffer, const int ipar, const int ipar ) <===] + // DEBUG VERSION WITH PRINTOUTS + static __host__ __device__ inline const fptype& + kernelAccessIp4IparConst_s( const fptype* buffer, + const int ip4, + const int ipar ) + { + const fptype& out = KernelAccessHelper::template kernelAccessFieldConst( buffer, ip4, ipar ); + printf( "ipar=%2d ip4=%2d ievt='kernel' out=%8.3f\n", ipar, ip4, out ); + return out; + } + */ + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (const, SCALAR OR VECTOR) ===> fptype_sv kernelAccessIp4IparConst( const fptype* buffer, const int ipar, const int ipar ) <===] + // FIXME? Eventually return by const reference and support aligned arrays only? + // FIXME? Currently return by value to support also unaligned and arbitrary arrays + static __host__ __device__ inline fptype_sv + kernelAccessIp4IparConst( const fptype* buffer, const int ip4, const int ipar ) - { - const fptype& out = KernelAccessHelper::template kernelAccessFieldConst( buffer, ip4, ipar ); - printf( "ipar=%2d ip4=%2d ievt='kernel' out=%8.3f\n", ipar, ip4, out ); - return out; - } - */ - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (const, SCALAR OR VECTOR) ===> fptype_sv kernelAccessIp4IparConst( const fptype* buffer, const int ipar, const int ipar ) <===] - // FIXME? Eventually return by const reference and support aligned arrays only? - // FIXME? Currently return by value to support also unaligned and arbitrary arrays - static __host__ __device__ inline fptype_sv - kernelAccessIp4IparConst( const fptype* buffer, - const int ip4, - const int ipar ) - { - const fptype& out = kernelAccessIp4IparConst_s( buffer, ip4, ipar ); + { + const fptype& out = kernelAccessIp4IparConst_s( buffer, ip4, ipar ); #ifndef MGONGPU_CPPSIMD - return out; + return out; #else - constexpr int neppM = MemoryAccessMomentaBase::neppM; - constexpr bool useContiguousEventsIfPossible = true; // DEFAULT - //constexpr bool useContiguousEventsIfPossible = false; // FOR PERFORMANCE TESTS (treat as arbitrary array even if it is an AOSOA) - // Use c++17 "if constexpr": compile-time branching - if constexpr( useContiguousEventsIfPossible && ( neppM >= neppV ) && ( neppM % neppV == 0 ) ) - { - //constexpr bool skipAlignmentCheck = true; // FASTEST (SEGFAULTS IF MISALIGNED ACCESS, NEEDS A SANITY CHECK ELSEWHERE!) - constexpr bool skipAlignmentCheck = false; // DEFAULT: A BIT SLOWER BUT SAFER [ALLOWS MISALIGNED ACCESS] - if constexpr( skipAlignmentCheck ) - { - //static bool first=true; if( first ){ std::cout << "WARNING! assume aligned AOSOA, skip check" << std::endl; first=false; } // SLOWER (5.06E6) - // FASTEST? (5.09E6 in eemumu 512y) - // This assumes alignment for momenta1d without checking - causes segmentation fault in reinterpret_cast if not aligned! - return mg5amcCpu::fptypevFromAlignedArray( out ); // use reinterpret_cast - } - else if( (size_t)( buffer ) % mgOnGpu::cppAlign == 0 ) + constexpr int neppM = MemoryAccessMomentaBase::neppM; + constexpr bool useContiguousEventsIfPossible = true; // DEFAULT + //constexpr bool useContiguousEventsIfPossible = false; // FOR PERFORMANCE TESTS (treat as arbitrary array even if it is an AOSOA) + // Use c++17 "if constexpr": compile-time branching + if constexpr( useContiguousEventsIfPossible && ( neppM >= neppV ) && ( neppM % neppV == 0 ) ) { - //static bool first=true; if( first ){ std::cout << "WARNING! aligned AOSOA, reinterpret cast" << std::endl; first=false; } // SLOWER (5.00E6) - // DEFAULT! A tiny bit (<1%) slower because of the alignment check (5.07E6 in eemumu 512y) - // This explicitly checks buffer alignment to avoid segmentation faults in reinterpret_cast - return mg5amcCpu::fptypevFromAlignedArray( out ); // SIMD bulk load of neppV, use reinterpret_cast + //constexpr bool skipAlignmentCheck = true; // FASTEST (SEGFAULTS IF MISALIGNED ACCESS, NEEDS A SANITY CHECK ELSEWHERE!) + constexpr bool skipAlignmentCheck = false; // DEFAULT: A BIT SLOWER BUT SAFER [ALLOWS MISALIGNED ACCESS] + if constexpr( skipAlignmentCheck ) + { + //static bool first=true; if( first ){ std::cout << "WARNING! assume aligned AOSOA, skip check" << std::endl; first=false; } // SLOWER (5.06E6) + // FASTEST? (5.09E6 in eemumu 512y) + // This assumes alignment for momenta1d without checking - causes segmentation fault in reinterpret_cast if not aligned! + return mg5amcCpu::fptypevFromAlignedArray( out ); // use reinterpret_cast + } + else if( (size_t)( buffer ) % mgOnGpu::cppAlign == 0 ) + { + //static bool first=true; if( first ){ std::cout << "WARNING! aligned AOSOA, reinterpret cast" << std::endl; first=false; } // SLOWER (5.00E6) + // DEFAULT! A tiny bit (<1%) slower because of the alignment check (5.07E6 in eemumu 512y) + // This explicitly checks buffer alignment to avoid segmentation faults in reinterpret_cast + return mg5amcCpu::fptypevFromAlignedArray( out ); // SIMD bulk load of neppV, use reinterpret_cast + } + else + { + //static bool first=true; if( first ){ std::cout << "WARNING! AOSOA but no reinterpret cast" << std::endl; first=false; } // SLOWER (4.93E6) + // A bit (1%) slower (5.05E6 in eemumu 512y) + // This does not require buffer alignment, but it requires AOSOA with neppM>=neppV and neppM%neppV==0 + return mg5amcCpu::fptypevFromUnalignedArray( out ); // SIMD bulk load of neppV, do not use reinterpret_cast (fewer SIMD operations) + } } else { - //static bool first=true; if( first ){ std::cout << "WARNING! AOSOA but no reinterpret cast" << std::endl; first=false; } // SLOWER (4.93E6) - // A bit (1%) slower (5.05E6 in eemumu 512y) - // This does not require buffer alignment, but it requires AOSOA with neppM>=neppV and neppM%neppV==0 - return mg5amcCpu::fptypevFromUnalignedArray( out ); // SIMD bulk load of neppV, do not use reinterpret_cast (fewer SIMD operations) + //static bool first=true; if( first ){ std::cout << "WARNING! arbitrary array" << std::endl; first=false; } // SLOWER (5.08E6) + // ?!Used to be much slower, now a tiny bit faster for AOSOA?! (5.11E6 for AOSOA, 4.64E6 for AOS in eemumu 512y) + // This does not even require AOSOA with neppM>=neppV and neppM%neppV==0 (e.g. can be used with AOS neppM==1) + constexpr int ievt0 = 0; // just make it explicit in the code that buffer refers to a given ievt0 and decoderIeppV fetches event ievt0+ieppV + auto decoderIeppv = [buffer, ip4, ipar]( int ieppV ) + -> const fptype& + { return MemoryAccessMomenta::ieventAccessIp4IparConst( buffer, ievt0 + ieppV, ip4, ipar ); }; + return mg5amcCpu::fptypevFromArbitraryArray( decoderIeppv ); // iterate over ieppV in neppV (no SIMD) } +#endif } - else + + // Is this a HostAccess or DeviceAccess class? + // [this is only needed for a warning printout in rambo.h for nparf==1 #358] + static __host__ __device__ inline constexpr bool + isOnDevice() { - //static bool first=true; if( first ){ std::cout << "WARNING! arbitrary array" << std::endl; first=false; } // SLOWER (5.08E6) - // ?!Used to be much slower, now a tiny bit faster for AOSOA?! (5.11E6 for AOSOA, 4.64E6 for AOS in eemumu 512y) - // This does not even require AOSOA with neppM>=neppV and neppM%neppV==0 (e.g. can be used with AOS neppM==1) - constexpr int ievt0 = 0; // just make it explicit in the code that buffer refers to a given ievt0 and decoderIeppV fetches event ievt0+ieppV - auto decoderIeppv = [buffer, ip4, ipar]( int ieppV ) - -> const fptype& - { return MemoryAccessMomenta::ieventAccessIp4IparConst( buffer, ievt0 + ieppV, ip4, ipar ); }; - return mg5amcCpu::fptypevFromArbitraryArray( decoderIeppv ); // iterate over ieppV in neppV (no SIMD) + return onDevice; } -#endif - } + }; - // Is this a HostAccess or DeviceAccess class? - // [this is only needed for a warning printout in rambo.h for nparf==1 #358] - static __host__ __device__ inline constexpr bool - isOnDevice() - { - return onDevice; - } -}; + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- + typedef KernelAccessMomenta HostAccessMomenta; + typedef KernelAccessMomenta DeviceAccessMomenta; -typedef KernelAccessMomenta HostAccessMomenta; -typedef KernelAccessMomenta DeviceAccessMomenta; + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- +} // end namespace mg5amcGpu/mg5amcCpu #endif // MemoryAccessMomenta_H diff --git a/epochX/cudacpp/ee_mumu.sa/SubProcesses/MemoryAccessNumerators.h b/epochX/cudacpp/ee_mumu.sa/SubProcesses/MemoryAccessNumerators.h index b373fd6048..b152183b28 100644 --- a/epochX/cudacpp/ee_mumu.sa/SubProcesses/MemoryAccessNumerators.h +++ b/epochX/cudacpp/ee_mumu.sa/SubProcesses/MemoryAccessNumerators.h @@ -9,15 +9,24 @@ #include "MemoryAccessGs.h" -//---------------------------------------------------------------------------- +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif +{ + //---------------------------------------------------------------------------- + + // A class describing the internal layout of memory buffers for numerators + // This implementation reuses the plain ARRAY[nevt] implementation of MemoryAccessGs -// A class describing the internal layout of memory buffers for numerators -// This implementation reuses the plain ARRAY[nevt] implementation of MemoryAccessGs + typedef KernelAccessGs HostAccessNumerators; + typedef KernelAccessGs DeviceAccessNumerators; -typedef KernelAccessGs HostAccessNumerators; -typedef KernelAccessGs DeviceAccessNumerators; + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- +} // end namespace mg5amcGpu/mg5amcCpu #endif #endif // MemoryAccessNumerators_H diff --git a/epochX/cudacpp/ee_mumu.sa/SubProcesses/MemoryAccessWavefunctions.h b/epochX/cudacpp/ee_mumu.sa/SubProcesses/MemoryAccessWavefunctions.h index f42f0d34ed..5428aaf933 100644 --- a/epochX/cudacpp/ee_mumu.sa/SubProcesses/MemoryAccessWavefunctions.h +++ b/epochX/cudacpp/ee_mumu.sa/SubProcesses/MemoryAccessWavefunctions.h @@ -14,147 +14,156 @@ #define MGONGPU_TRIVIAL_WAVEFUNCTIONS 1 -//---------------------------------------------------------------------------- - -#ifndef MGONGPU_TRIVIAL_WAVEFUNCTIONS - -// A class describing the internal layout of memory buffers for wavefunctions -// This implementation uses an AOSOA[npagW][nw6][nx2][neppW] where nevt=npagW*neppW -// [If many implementations are used, a suffix _AOSOAv1 should be appended to the class name] -class MemoryAccessWavefunctionsBase //_AOSOAv1 +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { -public: - - // Number of Events Per Page in the wavefunction AOSOA memory buffer layout - static constexpr int neppW = 1; // AOS (just a test...) - -private: - - friend class MemoryAccessHelper; - friend class KernelAccessHelper; - friend class KernelAccessHelper; - - // The number of components of a (fermion or vector) wavefunction - static constexpr int nw6 = mgOnGpu::nw6; - - // The number of floating point components of a complex number - static constexpr int nx2 = mgOnGpu::nx2; + //---------------------------------------------------------------------------- - //-------------------------------------------------------------------------- - // NB all KernelLaunchers assume that memory access can be decomposed as "accessField = decodeRecord( accessRecord )" - // (in other words: first locate the event record for a given event, then locate an element in that record) - //-------------------------------------------------------------------------- +#ifndef MGONGPU_TRIVIAL_WAVEFUNCTIONS - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] - static __host__ __device__ inline fptype* - ieventAccessRecord( fptype* buffer, - const int ievt ) + // A class describing the internal layout of memory buffers for wavefunctions + // This implementation uses an AOSOA[npagW][nw6][nx2][neppW] where nevt=npagW*neppW + // [If many implementations are used, a suffix _AOSOAv1 should be appended to the class name] + class MemoryAccessWavefunctionsBase //_AOSOAv1 { - const int ipagW = ievt / neppW; // #event "W-page" - const int ieppW = ievt % neppW; // #event in the current event W-page - constexpr int iw6 = 0; - constexpr int ix2 = 0; - return &( buffer[ipagW * nw6 * nx2 * neppW + iw6 * nx2 * neppW + ix2 * neppW + ieppW] ); // AOSOA[ipagW][iw6][ix2][ieppW] - } - - //-------------------------------------------------------------------------- - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, Ts... args ) <===] - // [NB: expand variadic template "Ts... args" to "const int iw6, const int ix2" and rename "Field" as "Iw6Ix2"] - static __host__ __device__ inline fptype& - decodeRecord( fptype* buffer, - const int iw6, - const int ix2 ) + public: + + // Number of Events Per Page in the wavefunction AOSOA memory buffer layout + static constexpr int neppW = 1; // AOS (just a test...) + + private: + + friend class MemoryAccessHelper; + friend class KernelAccessHelper; + friend class KernelAccessHelper; + + // The number of components of a (fermion or vector) wavefunction + static constexpr int nw6 = mgOnGpu::nw6; + + // The number of floating point components of a complex number + static constexpr int nx2 = mgOnGpu::nx2; + + //-------------------------------------------------------------------------- + // NB all KernelLaunchers assume that memory access can be decomposed as "accessField = decodeRecord( accessRecord )" + // (in other words: first locate the event record for a given event, then locate an element in that record) + //-------------------------------------------------------------------------- + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] + static __host__ __device__ inline fptype* + ieventAccessRecord( fptype* buffer, + const int ievt ) + { + const int ipagW = ievt / neppW; // #event "W-page" + const int ieppW = ievt % neppW; // #event in the current event W-page + constexpr int iw6 = 0; + constexpr int ix2 = 0; + return &( buffer[ipagW * nw6 * nx2 * neppW + iw6 * nx2 * neppW + ix2 * neppW + ieppW] ); // AOSOA[ipagW][iw6][ix2][ieppW] + } + + //-------------------------------------------------------------------------- + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, Ts... args ) <===] + // [NB: expand variadic template "Ts... args" to "const int iw6, const int ix2" and rename "Field" as "Iw6Ix2"] + static __host__ __device__ inline fptype& + decodeRecord( fptype* buffer, + const int iw6, + const int ix2 ) + { + constexpr int ipagW = 0; + constexpr int ieppW = 0; + return buffer[ipagW * nw6 * nx2 * neppW + iw6 * nx2 * neppW + ix2 * neppW + ieppW]; // AOSOA[ipagW][iw6][ix2][ieppW] + } + }; + + //---------------------------------------------------------------------------- + + // A class providing access to memory buffers for a given event, based on explicit event numbers + // Its methods use the MemoryAccessHelper templates - note the use of the template keyword in template function instantiations + class MemoryAccessWavefunctions : public MemoryAccessWavefunctionsBase { - constexpr int ipagW = 0; - constexpr int ieppW = 0; - return buffer[ipagW * nw6 * nx2 * neppW + iw6 * nx2 * neppW + ix2 * neppW + ieppW]; // AOSOA[ipagW][iw6][ix2][ieppW] - } -}; - -//---------------------------------------------------------------------------- + public: -// A class providing access to memory buffers for a given event, based on explicit event numbers -// Its methods use the MemoryAccessHelper templates - note the use of the template keyword in template function instantiations -class MemoryAccessWavefunctions : public MemoryAccessWavefunctionsBase -{ -public: + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] + static constexpr auto ieventAccessRecord = MemoryAccessHelper::ieventAccessRecord; - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] - static constexpr auto ieventAccessRecord = MemoryAccessHelper::ieventAccessRecord; + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (const) ===> const fptype* ieventAccessRecordConst( const fptype* buffer, const int ievt ) <===] + static constexpr auto ieventAccessRecordConst = MemoryAccessHelper::ieventAccessRecordConst; - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (const) ===> const fptype* ieventAccessRecordConst( const fptype* buffer, const int ievt ) <===] - static constexpr auto ieventAccessRecordConst = MemoryAccessHelper::ieventAccessRecordConst; + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, const int iw6, const int ix2 ) <===] + static constexpr auto decodeRecordIw6Ix2 = MemoryAccessHelper::decodeRecord; - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, const int iw6, const int ix2 ) <===] - static constexpr auto decodeRecordIw6Ix2 = MemoryAccessHelper::decodeRecord; + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (const) ===> const fptype& decodeRecordConst( const fptype* buffer, const int iw6, const int ix2 ) <===] + static constexpr auto decodeRecordIw6Ix2Const = + MemoryAccessHelper::template decodeRecordConst; - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (const) ===> const fptype& decodeRecordConst( const fptype* buffer, const int iw6, const int ix2 ) <===] - static constexpr auto decodeRecordIw6Ix2Const = - MemoryAccessHelper::template decodeRecordConst; + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (non-const) ===> fptype& ieventAccessIw6Ix2( fptype* buffer, const ievt, const int iw6, const int ix2 ) <===] + static constexpr auto ieventAccessIw6Ix2 = + MemoryAccessHelper::template ieventAccessField; - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (non-const) ===> fptype& ieventAccessIw6Ix2( fptype* buffer, const ievt, const int iw6, const int ix2 ) <===] - static constexpr auto ieventAccessIw6Ix2 = - MemoryAccessHelper::template ieventAccessField; - - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (const) ===> const fptype& ieventAccessIw6Ix2Const( const fptype* buffer, const ievt, const int iw6, const int ix2 ) <===] - static constexpr auto ieventAccessIw6Ix2Const = - MemoryAccessHelper::template ieventAccessFieldConst; -}; + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (const) ===> const fptype& ieventAccessIw6Ix2Const( const fptype* buffer, const ievt, const int iw6, const int ix2 ) <===] + static constexpr auto ieventAccessIw6Ix2Const = + MemoryAccessHelper::template ieventAccessFieldConst; + }; #endif // #ifndef MGONGPU_TRIVIAL_WAVEFUNCTIONS -//---------------------------------------------------------------------------- + //---------------------------------------------------------------------------- -// A class providing access to memory buffers for a given event, based on implicit kernel rules -// Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations -template -class KernelAccessWavefunctions -{ -public: + // A class providing access to memory buffers for a given event, based on implicit kernel rules + // Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations + template + class KernelAccessWavefunctions + { + public: #ifndef MGONGPU_TRIVIAL_WAVEFUNCTIONS - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (non-const) ===> fptype& kernelAccessIw6Ix2( fptype* buffer, const int iw6, const int ix2 ) <===] - static constexpr auto kernelAccessIw6Ix2 = - KernelAccessHelper::template kernelAccessField; + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (non-const) ===> fptype& kernelAccessIw6Ix2( fptype* buffer, const int iw6, const int ix2 ) <===] + static constexpr auto kernelAccessIw6Ix2 = + KernelAccessHelper::template kernelAccessField; - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (const) ===> const fptype& kernelAccessIw6Ix2Const( const fptype* buffer, const int iw6, const int ix2 ) <===] - static constexpr auto kernelAccessIw6Ix2Const = - KernelAccessHelper::template kernelAccessFieldConst; + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (const) ===> const fptype& kernelAccessIw6Ix2Const( const fptype* buffer, const int iw6, const int ix2 ) <===] + static constexpr auto kernelAccessIw6Ix2Const = + KernelAccessHelper::template kernelAccessFieldConst; #else - static __host__ __device__ inline cxtype_sv* - kernelAccess( fptype* buffer ) - { - return reinterpret_cast( buffer ); - } + static __host__ __device__ inline cxtype_sv* + kernelAccess( fptype* buffer ) + { + return reinterpret_cast( buffer ); + } - static __host__ __device__ inline const cxtype_sv* - kernelAccessConst( const fptype* buffer ) - { - return reinterpret_cast( buffer ); - } + static __host__ __device__ inline const cxtype_sv* + kernelAccessConst( const fptype* buffer ) + { + return reinterpret_cast( buffer ); + } #endif // #ifndef MGONGPU_TRIVIAL_WAVEFUNCTIONS -}; + }; + + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- + typedef KernelAccessWavefunctions HostAccessWavefunctions; + typedef KernelAccessWavefunctions DeviceAccessWavefunctions; -typedef KernelAccessWavefunctions HostAccessWavefunctions; -typedef KernelAccessWavefunctions DeviceAccessWavefunctions; + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- +} // end namespace mg5amcGpu/mg5amcCpu #endif // MemoryAccessWavefunctions_H diff --git a/epochX/cudacpp/ee_mumu.sa/SubProcesses/cudacpp.mk b/epochX/cudacpp/ee_mumu.sa/SubProcesses/cudacpp.mk index a0397e9ecc..c2f7b8e0f6 100644 --- a/epochX/cudacpp/ee_mumu.sa/SubProcesses/cudacpp.mk +++ b/epochX/cudacpp/ee_mumu.sa/SubProcesses/cudacpp.mk @@ -76,7 +76,7 @@ endif CXXFLAGS = $(OPTFLAGS) -std=c++17 $(INCFLAGS) -Wall -Wshadow -Wextra ifeq ($(shell $(CXX) --version | grep ^nvc++),) -CXXFLAGS+= -ffast-math # see issue #117 +CXXFLAGS += -ffast-math # see issue #117 endif ###CXXFLAGS+= -Ofast # performance is not different from --fast-math ###CXXFLAGS+= -g # FOR DEBUGGING ONLY @@ -122,7 +122,7 @@ ifneq ($(wildcard $(CUDA_HOME)/bin/nvcc),) CUINC = -I$(CUDA_HOME)/include/ CURANDLIBFLAGS = -L$(CUDA_HOME)/lib64/ -lcurand # NB: -lcuda is not needed here! CUOPTFLAGS = -lineinfo - CUFLAGS = $(OPTFLAGS) $(CUOPTFLAGS) $(INCFLAGS) $(CUINC) $(USE_NVTX) $(CUARCHFLAGS) -use_fast_math + CUFLAGS = $(foreach opt, $(OPTFLAGS), -Xcompiler $(opt)) $(CUOPTFLAGS) $(INCFLAGS) $(CUINC) $(USE_NVTX) $(CUARCHFLAGS) -use_fast_math ###CUFLAGS += -Xcompiler -Wall -Xcompiler -Wextra -Xcompiler -Wshadow ###NVCC_VERSION = $(shell $(NVCC) --version | grep 'Cuda compilation tools' | cut -d' ' -f5 | cut -d, -f1) CUFLAGS += -std=c++17 # need CUDA >= 11.2 (see #333): this is enforced in mgOnGpuConfig.h @@ -142,6 +142,8 @@ else override CUINC= override CURANDLIBFLAGS= endif +export NVCC +export CUFLAGS # Set the host C++ compiler for nvcc via "-ccbin " # (NB issue #505: this must be a single word, "clang++ --gcc-toolchain..." is not supported) @@ -439,7 +441,7 @@ endif # Target (and build options): debug MAKEDEBUG= -debug: OPTFLAGS = -g -O0 -DDEBUG2 +debug: OPTFLAGS = -g -O0 debug: CUOPTFLAGS = -G debug: MAKEDEBUG := debug debug: all.$(TAG) @@ -468,9 +470,9 @@ $(BUILDDIR)/%.o : %.cc *.h ../../src/*.h $(BUILDDIR)/.build.$(TAG) @if [ ! -d $(BUILDDIR) ]; then echo "mkdir -p $(BUILDDIR)"; mkdir -p $(BUILDDIR); fi $(CXX) $(CPPFLAGS) $(CXXFLAGS) -fPIC -c $< -o $@ -# Apply special build flags only to CrossSectionKernel.cc and gCrossSectionKernel.cu (no fast math, see #117) +# Apply special build flags only to CrossSectionKernel.cc and gCrossSectionKernel.cu (no fast math, see #117 and #516) ifeq ($(shell $(CXX) --version | grep ^nvc++),) -$(BUILDDIR)/CrossSectionKernels.o: CXXFLAGS += -fno-fast-math +$(BUILDDIR)/CrossSectionKernels.o: CXXFLAGS := $(filter-out -ffast-math,$(CXXFLAGS)) $(BUILDDIR)/CrossSectionKernels.o: CXXFLAGS += -fno-fast-math ifneq ($(NVCC),) $(BUILDDIR)/gCrossSectionKernels.o: CUFLAGS += -Xcompiler -fno-fast-math diff --git a/epochX/cudacpp/ee_mumu.sa/SubProcesses/runTest.cc b/epochX/cudacpp/ee_mumu.sa/SubProcesses/runTest.cc index 572e28aaea..df7488178e 100644 --- a/epochX/cudacpp/ee_mumu.sa/SubProcesses/runTest.cc +++ b/epochX/cudacpp/ee_mumu.sa/SubProcesses/runTest.cc @@ -2,6 +2,9 @@ // Licensed under the GNU Lesser General Public License (version 3 or later). // Created by: S. Hageboeck (Nov 2020) for the MG5aMC CUDACPP plugin. // Further modified by: S. Hageboeck, O. Mattelaer, S. Roiser, A. Valassi (2020-2023) for the MG5aMC CUDACPP plugin. +//---------------------------------------------------------------------------- +// Use ./runTest.exe --gtest_filter=*xxx to run only testxxx.cc tests +//---------------------------------------------------------------------------- #include "mgOnGpuConfig.h" diff --git a/epochX/cudacpp/ee_mumu.sa/SubProcesses/testmisc.cc b/epochX/cudacpp/ee_mumu.sa/SubProcesses/testmisc.cc index 989aba1fdc..895d6eeb56 100644 --- a/epochX/cudacpp/ee_mumu.sa/SubProcesses/testmisc.cc +++ b/epochX/cudacpp/ee_mumu.sa/SubProcesses/testmisc.cc @@ -3,7 +3,7 @@ // Created by: A. Valassi (Jan 2022) for the MG5aMC CUDACPP plugin. // Further modified by: A. Valassi (2022-2023) for the MG5aMC CUDACPP plugin. //---------------------------------------------------------------------------- -// Use ./runTest.exe --gtest_filter=*misc to run only this test +// Use ./runTest.exe --gtest_filter=*misc to run only testmisc.cc tests //---------------------------------------------------------------------------- #include "mgOnGpuConfig.h" @@ -25,33 +25,48 @@ #define XTESTID( s ) TESTID( s ) +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif +{ #ifdef MGONGPU_CPPSIMD /* clang-format off */ -bool maskand( const bool_v& mask ){ bool out = true; for ( int i=0; i #include +#include // debug #701 (see https://stackoverflow.com/a/17473528) #include #include #include @@ -28,16 +32,47 @@ #define XTESTID( s ) TESTID( s ) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif +{ + std::string FPEhandlerMessage = "unknown"; + int FPEhandlerIevt = -1; + inline void FPEhandler( int sig ) + { +#ifdef __CUDACC__ + std::cerr << "Floating Point Exception (GPU): '" << FPEhandlerMessage << "' ievt=" << FPEhandlerIevt << std::endl; +#else + std::cerr << "Floating Point Exception (CPU neppV=" << neppV << "): '" << FPEhandlerMessage << "' ievt=" << FPEhandlerIevt << std::endl; +#endif + exit( 0 ); + } +} + TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) { +#ifdef __CUDACC__ + using namespace mg5amcGpu; +#else + using namespace mg5amcCpu; +#endif +#ifndef __APPLE__ // test #701 (except on MacOS where feenableexcept is not defined #730) + const bool enableFPE = !getenv( "CUDACPP_RUNTIME_DISABLEFPE" ); + if( enableFPE ) + { + feenableexcept( FE_INVALID | FE_DIVBYZERO | FE_OVERFLOW | FE_UNDERFLOW ); // debug #701 + signal( SIGFPE, FPEhandler ); + } +#endif constexpr bool dumpEvents = false; // dump the expected output of the test? constexpr bool testEvents = !dumpEvents; // run the test? constexpr fptype toleranceXXXs = std::is_same::value ? 1.E-15 : 1.E-5; // Constant parameters constexpr int neppM = MemoryAccessMomenta::neppM; // AOSOA layout - using mgOnGpu::neppV; constexpr int np4 = CPPProcess::np4; - const int nevt = 16; // 12 independent tests plus 4 duplicates (need a multiple of 8 for floats or for '512z') + const int nevt = 32; // 12 independent tests plus 20 duplicates (need a multiple of 16 for floats '512z') assert( nevt % neppM == 0 ); // nevt must be a multiple of neppM assert( nevt % neppV == 0 ); // nevt must be a multiple of neppV // Fill in the input momenta @@ -46,24 +81,41 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) #else mg5amcCpu::HostBufferMomenta hstMomenta( nevt ); // AOSOA[npagM][npar=4][np4=4][neppM] #endif /* clang-format off */ + // NB NEW TESTS FOR DEBUGGING #701: KEEP TWO SEPARATE SETS (16-SIMD-VECTORS!) OF TESTS FOR M==0 AND M!=0! const fptype par0[np4 * nevt] = // AOS[nevt][np4] { - 500, 0, 0, 500, // #0 (m=0 pT=0 E=pz>0) - 500, 0, 0, -500, // #1 (m=0 pT=0 -E=pz<0) - 500, 300, 400, 0, // #2 (m=0 pT>0 pz=0) - 500, 180, 240, 400, // #3 (m=0 pT>0 pz>0) - 500, 180, 240, -400, // #4 (m=0 pT>0 pz<0) - 500, 0, 0, 0, // #5 (m=50>0 pT=0 pz=0) - 500, 0, 0, 300, // #6 (m=40>0 pT=0 pz>0) - 500, 0, 0, -300, // #7 (m=40>0 pT=0 pz<0) - 500, 180, 240, 0, // #8 (m=40>0 pT>0 pz=0) - 500, -240, -180, 0, // #9 (m=40>0 pT>0 pz=0) - 500, 180, 192, 144, // #10 (m=40>0 pT>0 pz>0) - 500, 180, 192, -144, // #11 (m=40>0 pT>0 pz<0) - 500, 0, 0, 500, // DUPLICATE #12 == #0 (m=0 pT=0 E=pz>0) - 500, 0, 0, -500, // DUPLICATE #13 == #1 (m=0 pT=0 -E=pz<0) - 500, 300, 400, 0, // DUPLICATE #14 == #2 (m=0 pT>0 pz=0) - 500, 180, 240, 400 // DUPLICATE #15 == #3 (m=0 pT>0 pz>0) + 500, 0, 0, 500, // #0 (m=0 pT=0 E=pz>0) + 500, 0, 0, -500, // #1 (m=0 pT=0 -E=pz<0) + 500, 300, 400, 0, // #2 (m=0 pT>0 pz=0) + 500, 180, 240, 400, // #3 (m=0 pT>0 pz>0) + 500, 180, 240, -400, // #4 (m=0 pT>0 pz<0) + 500, 0, 0, 500, // #5 DUPLICATE == #0 (m=0 pT=0 E=pz>0) + 500, 0, 0, -500, // #6 DUPLICATE == #1 (m=0 pT=0 -E=pz<0) + 500, 300, 400, 0, // #7 DUPLICATE == #2 (m=0 pT>0 pz=0) + 500, 180, 240, 400, // #8 DUPLICATE == #3 (m=0 pT>0 pz>0) + 500, 180, 240, -400, // #9 DUPLICATE == #4 (m=0 pT>0 pz<0) + 500, 0, 0, 500, // #10 DUPLICATE == #0 (m=0 pT=0 E=pz>0) + 500, 0, 0, -500, // #11 DUPLICATE == #1 (m=0 pT=0 -E=pz<0) + 500, 300, 400, 0, // #12 DUPLICATE == #2 (m=0 pT>0 pz=0) + 500, 180, 240, 400, // #13 DUPLICATE == #3 (m=0 pT>0 pz>0) + 500, 180, 240, -400, // #14 DUPLICATE == #4 (m=0 pT>0 pz<0) + 500, 0, 0, 500, // #15 DUPLICATE == #0 (m=0 pT=0 E=pz>0) + 500, 0, 0, 0, // #16 (m=50>0 pT=0 pz=0) + 500, 0, 0, 300, // #17 (m=40>0 pT=0 pz>0) + 500, 0, 0, -300, // #18 (m=40>0 pT=0 pz<0) + 500, 180, 240, 0, // #19 (m=40>0 pT>0 pz=0) + 500, -240, -180, 0, // #20 (m=40>0 pT>0 pz=0) + 500, 180, 192, 144, // #21 (m=40>0 pT>0 pz>0) + 500, 180, 192, -144, // #22 (m=40>0 pT>0 pz<0) + 500, 0, 0, 0, // #23 DUPLICATE == #16 (m=50>0 pT=0 pz=0) + 500, 0, 0, 300, // #24 DUPLICATE == #17 (m=40>0 pT=0 pz>0) + 500, 0, 0, -300, // #25 DUPLICATE == #18 (m=40>0 pT=0 pz<0) + 500, 180, 240, 0, // #26 DUPLICATE == #19 (m=40>0 pT>0 pz=0) + 500, -240, -180, 0, // #27 DUPLICATE == #20 (m=40>0 pT>0 pz=0) + 500, 180, 192, 144, // #28 DUPLICATE == #21 (m=40>0 pT>0 pz>0) + 500, 180, 192, -144, // #29 DUPLICATE == #22 (m=40>0 pT>0 pz<0) + 500, 0, 0, 0, // #30 DUPLICATE == #16 (m=50>0 pT=0 pz=0) + 500, 0, 0, 300 // #31 DUPLICATE == #17 (m=40>0 pT=0 pz>0) }; /* clang-format on */ // Array initialization: zero-out as "{0}" (C and C++) or as "{}" (C++ only) // See https://en.cppreference.com/w/c/language/array_initialization#Notes @@ -99,7 +151,15 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) constexpr int nw6 = CPPProcess::nw6; // dimensions of each wavefunction (HELAS KEK 91-11): e.g. 6 for e+ e- -> mu+ mu- (fermions and vectors) int itest = 0; // index on the expected output vector std::ofstream dumpFile; - if( dumpEvents ) dumpFile.open( dumpFileName, std::ios::trunc ); + if( dumpEvents ) + { + dumpFile.open( dumpFileName, std::ios::trunc ); + dumpFile << " // Copyright (C) 2020-2023 CERN and UCLouvain." << std::endl + << " // Licensed under the GNU Lesser General Public License (version 3 or later)." << std::endl + << " // Created by: A. Valassi (Apr 2021) for the MG5aMC CUDACPP plugin." << std::endl + << " // Further modified by: A. Valassi (2021-2023) for the MG5aMC CUDACPP plugin." << std::endl; + } + // Lambda function for dumping wavefunctions auto dumpwf6 = [&]( std::ostream& out, const cxtype_sv wf[6], const char* xxx, int ievt, int nsp, fptype mass ) { out << std::setprecision( 15 ) << std::scientific; @@ -129,6 +189,7 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) } out << std::defaultfloat; }; + // Lambda function for testing wavefunctions (1) auto testwf6 = [&]( const cxtype_sv wf[6], const char* xxx, int ievt, int nsp, fptype mass ) { if( dumpEvents ) dumpwf6( dumpFile, wf, xxx, ievt, nsp, mass ); @@ -170,6 +231,7 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) } itest++; }; + // Lambda function for testing wavefunctions (2) auto testwf6two = [&]( const cxtype_sv wf[6], const cxtype_sv expwf[6], const char* xxx, int ievt ) { if( testEvents ) @@ -213,6 +275,32 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) } } }; + // Lambda function for resetting hstMomenta to the values of par0 + // This is needed in each test because hstMomenta may have been modified to ensure a function like ipzxxx can be used (#701) + auto resetHstMomentaToPar0 = [&]() + { + for( int ievt = 0; ievt < nevt; ievt++ ) + for( int ip4 = 0; ip4 < np4; ip4++ ) + MemoryAccessMomenta::ieventAccessIp4Ipar( hstMomenta.data(), ievt, ip4, ipar0 ) = par0[ievt * np4 + ip4]; // AOS to AOSOA + }; + // Lambda function for preparing the test of one specific function + const bool debug = false; + auto prepareTest = [&]( const char* xxx, int ievt ) + { + if( debug ) std::cout << "Prepare test " << xxx << " ievt=" << ievt << std::endl; + resetHstMomentaToPar0(); + FPEhandlerMessage = xxx; + FPEhandlerIevt = ievt; + if( std::string( xxx ) == "ipzxxx" || std::string( xxx ) == "opzxxx" || std::string( xxx ) == "imzxxx" || std::string( xxx ) == "omzxxx" || std::string( xxx ) == "ixzxxx" || std::string( xxx ) == "oxzxxx" ) + { + // Modify hstMomenta so that ALL events have the momenta of a single ievt + // This ensures that a function like ipzxxx (which assumes pZ>0) can be used without triggering FPEs (#701) + // This is done by filling the full SIMD vector with the value of ievt, which was already tested to respect the relevant assumptions + for( int jevt = 0; jevt < nevt; jevt++ ) + for( int ip4 = 0; ip4 < np4; ip4++ ) + MemoryAccessMomenta::ieventAccessIp4Ipar( hstMomenta.data(), jevt, ip4, ipar0 ) = par0[ievt * np4 + ip4]; // AOS to AOSOA + } + }; // Array initialization: zero-out as "{0}" (C and C++) or as "{}" (C++ only) // See https://en.cppreference.com/w/c/language/array_initialization#Notes cxtype_sv outwfI[6] = {}; // last result of ixxxxx (mass==0) @@ -224,6 +312,7 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) fptype* fp_outwf = reinterpret_cast( outwf ); // proof of concept for using fptype* in the interface fptype* fp_outwf3 = reinterpret_cast( outwf3 ); // proof of concept for using fptype* in the interface const int nhel = 1; + // *** START OF TESTING LOOP for( auto nsp: { -1, +1 } ) // antifermion/fermion (or initial/final for scalar and vector) { for( int ievt = 0; ievt < nevt; ievt++ ) @@ -233,9 +322,10 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) #else using namespace mg5amcCpu; #endif - if( false ) + if( debug ) { std::cout << std::endl; + std::cout << "nsp=" << nsp << " ievt=" << ievt << ": "; for( int ip4 = 0; ip4 < np4; ip4++ ) std::cout << par0[ievt * np4 + ip4] << ", "; std::cout << std::endl; } @@ -243,6 +333,7 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) const fptype* ievt0Momenta = MemoryAccessMomenta::ieventAccessRecordConst( hstMomenta.data(), ipagV * neppV ); // Test ixxxxx - NO ASSUMPTIONS { + prepareTest( "ixxxxx", ievt ); const fptype fmass = mass0[ievt]; ixxxxx( ievt0Momenta, fmass, nhel, nsp, fp_outwfI, ipar0 ); testwf6( outwfI, "ixxxxx", ievt, nsp, fmass ); @@ -252,6 +343,7 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) // Test ipzxxx - ASSUMPTIONS: (FMASS == 0) and (PX == PY == 0 and E == +PZ > 0) if( mass0[ievt] == 0 && !isptgt0[ievt] && ispzgt0[ievt] ) { + prepareTest( "ipzxxx", ievt ); ipzxxx( ievt0Momenta, nhel, nsp, fp_outwf, ipar0 ); testwf6two( outwf, outwfI, "ipzxxx", ievt ); testwf6( outwf, "ipzxxx", ievt, nsp, 0 ); @@ -259,6 +351,7 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) // Test imzxxx - ASSUMPTIONS: (FMASS == 0) and (PX == PY == 0 and E == -PZ > 0) if( mass0[ievt] == 0 && !isptgt0[ievt] && ispzlt0[ievt] ) { + prepareTest( "imzxxx", ievt ); imzxxx( ievt0Momenta, nhel, nsp, fp_outwf, ipar0 ); testwf6two( outwf, outwfI, "imzxxx", ievt ); testwf6( outwf, "imzxxx", ievt, nsp, 0 ); @@ -266,12 +359,14 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) // Test ixzxxx - ASSUMPTIONS: (FMASS == 0) and (PT > 0) if( mass0[ievt] == 0 && isptgt0[ievt] ) { + prepareTest( "ixzxxx", ievt ); ixzxxx( ievt0Momenta, nhel, nsp, fp_outwf, ipar0 ); testwf6two( outwf, outwfI, "ixzxxx", ievt ); testwf6( outwf, "ixzxxx", ievt, nsp, 0 ); } // Test vxxxxx - NO ASSUMPTIONS { + prepareTest( "vxxxxx", ievt ); const fptype vmass = mass0[ievt]; vxxxxx( ievt0Momenta, vmass, nhel, nsp, fp_outwf, ipar0 ); testwf6( outwf, "vxxxxx", ievt, nsp, vmass ); @@ -280,6 +375,7 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) } // Test sxxxxx - NO ASSUMPTIONS { + prepareTest( "sxxxxx", ievt ); const fptype smass = mass0[ievt]; sxxxxx( ievt0Momenta, nsp, fp_outwf3, ipar0 ); // no mass, no helicity (was "smass>0") testwf6( outwf3, "sxxxxx", ievt, nsp, smass ); @@ -288,6 +384,7 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) } // Test oxxxxx - NO ASSUMPTIONS { + prepareTest( "oxxxxx", ievt ); const fptype fmass = mass0[ievt]; oxxxxx( ievt0Momenta, fmass, nhel, nsp, fp_outwfO, ipar0 ); testwf6( outwfO, "oxxxxx", ievt, nsp, fmass ); @@ -297,6 +394,7 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) // Test opzxxx - ASSUMPTIONS: (FMASS == 0) and (PX == PY == 0 and E == +PZ > 0) if( mass0[ievt] == 0 && !isptgt0[ievt] && ispzgt0[ievt] ) { + prepareTest( "opzxxx", ievt ); opzxxx( ievt0Momenta, nhel, nsp, fp_outwf, ipar0 ); testwf6two( outwf, outwfO, "opzxxx", ievt ); testwf6( outwf, "opzxxx", ievt, nsp, 0 ); @@ -304,6 +402,7 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) // Test omzxxx - ASSUMPTIONS: (FMASS == 0) and (PX == PY == 0 and E == -PZ > 0) if( mass0[ievt] == 0 && !isptgt0[ievt] && ispzlt0[ievt] ) { + prepareTest( "omzxxx", ievt ); omzxxx( ievt0Momenta, nhel, nsp, fp_outwf, ipar0 ); testwf6two( outwf, outwfO, "omzxxx", ievt ); testwf6( outwf, "omzxxx", ievt, nsp, 0 ); @@ -311,17 +410,25 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) // Test oxzxxx - ASSUMPTIONS: (FMASS == 0) and (PT > 0) if( mass0[ievt] == 0 && isptgt0[ievt] ) { - oxzxxx( ievt0Momenta, nhel, nsp, reinterpret_cast( outwf ), ipar0 ); + prepareTest( "oxzxxx", ievt ); + oxzxxx( ievt0Momenta, nhel, nsp, fp_outwf, ipar0 ); testwf6two( outwf, outwfO, "oxzxxx", ievt ); testwf6( outwf, "oxzxxx", ievt, nsp, 0 ); } } } + // *** END OF TESTING LOOP if( dumpEvents ) { dumpFile.close(); std::cout << "INFO: New reference data dumped to file '" << dumpFileName << "'" << std::endl; } +#ifndef __APPLE__ // test #701 (except on MacOS where fedisableexcept is not defined #730) + if( enableFPE ) + { + fedisableexcept( FE_INVALID | FE_DIVBYZERO | FE_OVERFLOW | FE_UNDERFLOW ); // debug #701 + } +#endif } //========================================================================== diff --git a/epochX/cudacpp/ee_mumu.sa/SubProcesses/testxxx_cc_ref.txt b/epochX/cudacpp/ee_mumu.sa/SubProcesses/testxxx_cc_ref.txt index acb9bde918..637530d1f5 100644 --- a/epochX/cudacpp/ee_mumu.sa/SubProcesses/testxxx_cc_ref.txt +++ b/epochX/cudacpp/ee_mumu.sa/SubProcesses/testxxx_cc_ref.txt @@ -5,14 +5,14 @@ expwfs.push_back( { // --------- 5.000000000000000e+02, 5.000000000000000e+02, // itest=0: ixxxxx#0 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=0: ixxxxx#0 nsp=-1 mass=0 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=0: ixxxxx#0 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=0: ixxxxx#0 nsp=-1 mass=0 -3.162277660168379e+01, 0.000000000000000e+00, // itest=0: ixxxxx#0 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=0: ixxxxx#0 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=0: ixxxxx#0 nsp=-1 mass=0 expwfs.push_back( { // --------- 5.000000000000000e+02, 5.000000000000000e+02, // itest=1: ixxxxx#0 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=1: ixxxxx#0 nsp=-1 mass=0 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=1: ixxxxx#0 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=1: ixxxxx#0 nsp=-1 mass=0 -3.162277660168379e+01, 0.000000000000000e+00, // itest=1: ixxxxx#0 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=1: ixxxxx#0 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=1: ixxxxx#0 nsp=-1 mass=0 @@ -82,8 +82,8 @@ expwfs.push_back( { // --------- 5.000000000000000e+02, -5.000000000000000e+02, // itest=11: ixxxxx#1 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=11: ixxxxx#1 nsp=-1 mass=0 - -3.162277660168379e+01, -0.000000000000000e+00, // itest=11: ixxxxx#1 nsp=-1 mass=0 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=11: ixxxxx#1 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=11: ixxxxx#1 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=11: ixxxxx#1 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=11: ixxxxx#1 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=11: ixxxxx#1 nsp=-1 mass=0 expwfs.push_back( { // --------- @@ -133,8 +133,8 @@ -0.000000000000000e+00, -0.000000000000000e+00, // itest=18: oxxxxx#1 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=18: oxxxxx#1 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=18: oxxxxx#1 nsp=-1 mass=0 - -3.162277660168379e+01, -0.000000000000000e+00, // itest=18: oxxxxx#1 nsp=-1 mass=0 - -0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=18: oxxxxx#1 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=18: oxxxxx#1 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=18: oxxxxx#1 nsp=-1 mass=0 expwfs.push_back( { // --------- -5.000000000000000e+02, 5.000000000000000e+02, // itest=19: omzxxx#1 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=19: omzxxx#1 nsp=-1 mass=0 @@ -145,14 +145,14 @@ expwfs.push_back( { // --------- 5.000000000000000e+02, 0.000000000000000e+00, // itest=20: ixxxxx#2 nsp=-1 mass=0 3.000000000000000e+02, 4.000000000000000e+02, // itest=20: ixxxxx#2 nsp=-1 mass=0 - 1.341640786499874e+01, -1.788854381999832e+01, // itest=20: ixxxxx#2 nsp=-1 mass=0 + 1.341640786499874e+01, -1.788854381999831e+01, // itest=20: ixxxxx#2 nsp=-1 mass=0 -2.236067977499790e+01, 0.000000000000000e+00, // itest=20: ixxxxx#2 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=20: ixxxxx#2 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=20: ixxxxx#2 nsp=-1 mass=0 expwfs.push_back( { // --------- 5.000000000000000e+02, 0.000000000000000e+00, // itest=21: ixxxxx#2 nsp=-1 mass=0 3.000000000000000e+02, 4.000000000000000e+02, // itest=21: ixxxxx#2 nsp=-1 mass=0 - 1.341640786499874e+01, -1.788854381999832e+01, // itest=21: ixxxxx#2 nsp=-1 mass=0 + 1.341640786499874e+01, -1.788854381999831e+01, // itest=21: ixxxxx#2 nsp=-1 mass=0 -2.236067977499790e+01, 0.000000000000000e+00, // itest=21: ixxxxx#2 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=21: ixxxxx#2 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=21: ixxxxx#2 nsp=-1 mass=0 @@ -196,14 +196,14 @@ -3.000000000000000e+02, -4.000000000000000e+02, // itest=27: oxxxxx#2 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=27: oxxxxx#2 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=27: oxxxxx#2 nsp=-1 mass=0 - 1.341640786499874e+01, 1.788854381999832e+01, // itest=27: oxxxxx#2 nsp=-1 mass=0 + 1.341640786499874e+01, 1.788854381999831e+01, // itest=27: oxxxxx#2 nsp=-1 mass=0 -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=27: oxxxxx#2 nsp=-1 mass=0 expwfs.push_back( { // --------- -5.000000000000000e+02, -0.000000000000000e+00, // itest=28: oxxxxx#2 nsp=-1 mass=0 -3.000000000000000e+02, -4.000000000000000e+02, // itest=28: oxxxxx#2 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=28: oxxxxx#2 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=28: oxxxxx#2 nsp=-1 mass=0 - 1.341640786499874e+01, 1.788854381999832e+01, // itest=28: oxxxxx#2 nsp=-1 mass=0 + 1.341640786499874e+01, 1.788854381999831e+01, // itest=28: oxxxxx#2 nsp=-1 mass=0 -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=28: oxxxxx#2 nsp=-1 mass=0 expwfs.push_back( { // --------- -5.000000000000000e+02, -0.000000000000000e+00, // itest=29: oxzxxx#2 nsp=-1 mass=0 @@ -353,1696 +353,3684 @@ 1.800000000000000e+01, 2.400000000000000e+01, // itest=49: oxzxxx#4 nsp=-1 mass=0 -1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=49: oxzxxx#4 nsp=-1 mass=0 expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=50: ixxxxx#5 nsp=-1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=50: ixxxxx#5 nsp=-1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=50: ixxxxx#5 nsp=-1 mass=500 - -2.236067977499790e+01, 0.000000000000000e+00, // itest=50: ixxxxx#5 nsp=-1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=50: ixxxxx#5 nsp=-1 mass=500 - 2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=50: ixxxxx#5 nsp=-1 mass=500 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=51: ixxxxx#5 nsp=-1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=51: ixxxxx#5 nsp=-1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=51: ixxxxx#5 nsp=-1 mass=-500 - -2.236067977499790e+01, 0.000000000000000e+00, // itest=51: ixxxxx#5 nsp=-1 mass=-500 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=51: ixxxxx#5 nsp=-1 mass=-500 - -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=51: ixxxxx#5 nsp=-1 mass=-500 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=52: vxxxxx#5 nsp=-1 mass=500 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=52: vxxxxx#5 nsp=-1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=52: vxxxxx#5 nsp=-1 mass=500 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=52: vxxxxx#5 nsp=-1 mass=500 - 0.000000000000000e+00, -7.071067811865476e-01, // itest=52: vxxxxx#5 nsp=-1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=52: vxxxxx#5 nsp=-1 mass=500 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=53: vxxxxx#5 nsp=-1 mass=-500 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=53: vxxxxx#5 nsp=-1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=53: vxxxxx#5 nsp=-1 mass=-500 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=53: vxxxxx#5 nsp=-1 mass=-500 - 0.000000000000000e+00, -7.071067811865476e-01, // itest=53: vxxxxx#5 nsp=-1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=53: vxxxxx#5 nsp=-1 mass=-500 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=54: sxxxxx#5 nsp=-1 mass=500 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=54: sxxxxx#5 nsp=-1 mass=500 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=54: sxxxxx#5 nsp=-1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=54: sxxxxx#5 nsp=-1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=54: sxxxxx#5 nsp=-1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=54: sxxxxx#5 nsp=-1 mass=500 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=55: sxxxxx#5 nsp=-1 mass=-500 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=55: sxxxxx#5 nsp=-1 mass=-500 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=55: sxxxxx#5 nsp=-1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=55: sxxxxx#5 nsp=-1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=55: sxxxxx#5 nsp=-1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=55: sxxxxx#5 nsp=-1 mass=-500 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=56: oxxxxx#5 nsp=-1 mass=500 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=56: oxxxxx#5 nsp=-1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=56: oxxxxx#5 nsp=-1 mass=500 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=56: oxxxxx#5 nsp=-1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=56: oxxxxx#5 nsp=-1 mass=500 - -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=56: oxxxxx#5 nsp=-1 mass=500 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=57: oxxxxx#5 nsp=-1 mass=-500 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=57: oxxxxx#5 nsp=-1 mass=-500 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=57: oxxxxx#5 nsp=-1 mass=-500 - -2.236067977499790e+01, 0.000000000000000e+00, // itest=57: oxxxxx#5 nsp=-1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=57: oxxxxx#5 nsp=-1 mass=-500 - -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=57: oxxxxx#5 nsp=-1 mass=-500 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 3.000000000000000e+02, // itest=58: ixxxxx#6 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=58: ixxxxx#6 nsp=-1 mass=400 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=58: ixxxxx#6 nsp=-1 mass=400 - -2.828427124746190e+01, -0.000000000000000e+00, // itest=58: ixxxxx#6 nsp=-1 mass=400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=58: ixxxxx#6 nsp=-1 mass=400 - 1.414213562373095e+01, 0.000000000000000e+00 } ); // itest=58: ixxxxx#6 nsp=-1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 3.000000000000000e+02, // itest=59: ixxxxx#6 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=59: ixxxxx#6 nsp=-1 mass=-400 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=59: ixxxxx#6 nsp=-1 mass=-400 - -2.828427124746190e+01, -0.000000000000000e+00, // itest=59: ixxxxx#6 nsp=-1 mass=-400 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=59: ixxxxx#6 nsp=-1 mass=-400 - -1.414213562373095e+01, -0.000000000000000e+00 } ); // itest=59: ixxxxx#6 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -3.000000000000000e+02, // itest=60: vxxxxx#6 nsp=-1 mass=400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=60: vxxxxx#6 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=60: vxxxxx#6 nsp=-1 mass=400 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=60: vxxxxx#6 nsp=-1 mass=400 - 0.000000000000000e+00, -7.071067811865476e-01, // itest=60: vxxxxx#6 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=60: vxxxxx#6 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -3.000000000000000e+02, // itest=61: vxxxxx#6 nsp=-1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=61: vxxxxx#6 nsp=-1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=61: vxxxxx#6 nsp=-1 mass=-400 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=61: vxxxxx#6 nsp=-1 mass=-400 - 0.000000000000000e+00, -7.071067811865476e-01, // itest=61: vxxxxx#6 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=61: vxxxxx#6 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -3.000000000000000e+02, // itest=62: sxxxxx#6 nsp=-1 mass=400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=62: sxxxxx#6 nsp=-1 mass=400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=62: sxxxxx#6 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=62: sxxxxx#6 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=62: sxxxxx#6 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=62: sxxxxx#6 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -3.000000000000000e+02, // itest=63: sxxxxx#6 nsp=-1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=63: sxxxxx#6 nsp=-1 mass=-400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=63: sxxxxx#6 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=63: sxxxxx#6 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=63: sxxxxx#6 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=63: sxxxxx#6 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -3.000000000000000e+02, // itest=64: oxxxxx#6 nsp=-1 mass=400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=64: oxxxxx#6 nsp=-1 mass=400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=64: oxxxxx#6 nsp=-1 mass=400 - 1.414213562373095e+01, 0.000000000000000e+00, // itest=64: oxxxxx#6 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=64: oxxxxx#6 nsp=-1 mass=400 - -2.828427124746190e+01, -0.000000000000000e+00 } ); // itest=64: oxxxxx#6 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -3.000000000000000e+02, // itest=65: oxxxxx#6 nsp=-1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=65: oxxxxx#6 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=65: oxxxxx#6 nsp=-1 mass=-400 - -1.414213562373095e+01, -0.000000000000000e+00, // itest=65: oxxxxx#6 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=65: oxxxxx#6 nsp=-1 mass=-400 - -2.828427124746190e+01, -0.000000000000000e+00 } ); // itest=65: oxxxxx#6 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -3.000000000000000e+02, // itest=66: ixxxxx#7 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=66: ixxxxx#7 nsp=-1 mass=400 - -2.828427124746190e+01, -0.000000000000000e+00, // itest=66: ixxxxx#7 nsp=-1 mass=400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=66: ixxxxx#7 nsp=-1 mass=400 - 1.414213562373095e+01, 0.000000000000000e+00, // itest=66: ixxxxx#7 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=66: ixxxxx#7 nsp=-1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -3.000000000000000e+02, // itest=67: ixxxxx#7 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=67: ixxxxx#7 nsp=-1 mass=-400 - -2.828427124746190e+01, -0.000000000000000e+00, // itest=67: ixxxxx#7 nsp=-1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=67: ixxxxx#7 nsp=-1 mass=-400 - -1.414213562373095e+01, -0.000000000000000e+00, // itest=67: ixxxxx#7 nsp=-1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=67: ixxxxx#7 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 3.000000000000000e+02, // itest=68: vxxxxx#7 nsp=-1 mass=400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=68: vxxxxx#7 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=68: vxxxxx#7 nsp=-1 mass=400 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=68: vxxxxx#7 nsp=-1 mass=400 - 0.000000000000000e+00, 7.071067811865476e-01, // itest=68: vxxxxx#7 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=68: vxxxxx#7 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 3.000000000000000e+02, // itest=69: vxxxxx#7 nsp=-1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=69: vxxxxx#7 nsp=-1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=69: vxxxxx#7 nsp=-1 mass=-400 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=69: vxxxxx#7 nsp=-1 mass=-400 - 0.000000000000000e+00, 7.071067811865476e-01, // itest=69: vxxxxx#7 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=69: vxxxxx#7 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 3.000000000000000e+02, // itest=70: sxxxxx#7 nsp=-1 mass=400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=70: sxxxxx#7 nsp=-1 mass=400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=70: sxxxxx#7 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=70: sxxxxx#7 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=70: sxxxxx#7 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=70: sxxxxx#7 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 3.000000000000000e+02, // itest=71: sxxxxx#7 nsp=-1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=71: sxxxxx#7 nsp=-1 mass=-400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=71: sxxxxx#7 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=71: sxxxxx#7 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=71: sxxxxx#7 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=71: sxxxxx#7 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 3.000000000000000e+02, // itest=72: oxxxxx#7 nsp=-1 mass=400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=72: oxxxxx#7 nsp=-1 mass=400 - 1.414213562373095e+01, 0.000000000000000e+00, // itest=72: oxxxxx#7 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=72: oxxxxx#7 nsp=-1 mass=400 - -2.828427124746190e+01, -0.000000000000000e+00, // itest=72: oxxxxx#7 nsp=-1 mass=400 - -0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=72: oxxxxx#7 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 3.000000000000000e+02, // itest=73: oxxxxx#7 nsp=-1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=73: oxxxxx#7 nsp=-1 mass=-400 - -1.414213562373095e+01, -0.000000000000000e+00, // itest=73: oxxxxx#7 nsp=-1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=73: oxxxxx#7 nsp=-1 mass=-400 - -2.828427124746190e+01, -0.000000000000000e+00, // itest=73: oxxxxx#7 nsp=-1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=73: oxxxxx#7 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=74: ixxxxx#8 nsp=-1 mass=400 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=74: ixxxxx#8 nsp=-1 mass=400 - 1.200000000000000e+01, -1.600000000000000e+01, // itest=74: ixxxxx#8 nsp=-1 mass=400 - -2.000000000000000e+01, -0.000000000000000e+00, // itest=74: ixxxxx#8 nsp=-1 mass=400 - -5.999999999999999e+00, 7.999999999999999e+00, // itest=74: ixxxxx#8 nsp=-1 mass=400 - 1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=74: ixxxxx#8 nsp=-1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=75: ixxxxx#8 nsp=-1 mass=-400 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=75: ixxxxx#8 nsp=-1 mass=-400 - 1.200000000000000e+01, -1.600000000000000e+01, // itest=75: ixxxxx#8 nsp=-1 mass=-400 - -2.000000000000000e+01, -0.000000000000000e+00, // itest=75: ixxxxx#8 nsp=-1 mass=-400 - 5.999999999999999e+00, -7.999999999999999e+00, // itest=75: ixxxxx#8 nsp=-1 mass=-400 - -1.000000000000000e+01, -0.000000000000000e+00 } ); // itest=75: ixxxxx#8 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=76: vxxxxx#8 nsp=-1 mass=400 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=76: vxxxxx#8 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=76: vxxxxx#8 nsp=-1 mass=400 - 0.000000000000000e+00, 5.656854249492381e-01, // itest=76: vxxxxx#8 nsp=-1 mass=400 - 0.000000000000000e+00, -4.242640687119285e-01, // itest=76: vxxxxx#8 nsp=-1 mass=400 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=76: vxxxxx#8 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=77: vxxxxx#8 nsp=-1 mass=-400 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=77: vxxxxx#8 nsp=-1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=77: vxxxxx#8 nsp=-1 mass=-400 - -0.000000000000000e+00, 5.656854249492381e-01, // itest=77: vxxxxx#8 nsp=-1 mass=-400 - -0.000000000000000e+00, -4.242640687119285e-01, // itest=77: vxxxxx#8 nsp=-1 mass=-400 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=77: vxxxxx#8 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=78: sxxxxx#8 nsp=-1 mass=400 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=78: sxxxxx#8 nsp=-1 mass=400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=78: sxxxxx#8 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=78: sxxxxx#8 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=78: sxxxxx#8 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=78: sxxxxx#8 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=79: sxxxxx#8 nsp=-1 mass=-400 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=79: sxxxxx#8 nsp=-1 mass=-400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=79: sxxxxx#8 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=79: sxxxxx#8 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=79: sxxxxx#8 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=79: sxxxxx#8 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=80: oxxxxx#8 nsp=-1 mass=400 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=80: oxxxxx#8 nsp=-1 mass=400 - -5.999999999999999e+00, -7.999999999999999e+00, // itest=80: oxxxxx#8 nsp=-1 mass=400 - 1.000000000000000e+01, 0.000000000000000e+00, // itest=80: oxxxxx#8 nsp=-1 mass=400 - 1.200000000000000e+01, 1.600000000000000e+01, // itest=80: oxxxxx#8 nsp=-1 mass=400 - -2.000000000000000e+01, -0.000000000000000e+00 } ); // itest=80: oxxxxx#8 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=81: oxxxxx#8 nsp=-1 mass=-400 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=81: oxxxxx#8 nsp=-1 mass=-400 - 5.999999999999999e+00, 7.999999999999999e+00, // itest=81: oxxxxx#8 nsp=-1 mass=-400 - -1.000000000000000e+01, -0.000000000000000e+00, // itest=81: oxxxxx#8 nsp=-1 mass=-400 - 1.200000000000000e+01, 1.600000000000000e+01, // itest=81: oxxxxx#8 nsp=-1 mass=-400 - -2.000000000000000e+01, -0.000000000000000e+00 } ); // itest=81: oxxxxx#8 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=82: ixxxxx#9 nsp=-1 mass=400 - -2.400000000000000e+02, -1.800000000000000e+02, // itest=82: ixxxxx#9 nsp=-1 mass=400 - -1.600000000000000e+01, 1.200000000000000e+01, // itest=82: ixxxxx#9 nsp=-1 mass=400 - -2.000000000000000e+01, -0.000000000000000e+00, // itest=82: ixxxxx#9 nsp=-1 mass=400 - 7.999999999999999e+00, -5.999999999999999e+00, // itest=82: ixxxxx#9 nsp=-1 mass=400 - 1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=82: ixxxxx#9 nsp=-1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=83: ixxxxx#9 nsp=-1 mass=-400 - -2.400000000000000e+02, -1.800000000000000e+02, // itest=83: ixxxxx#9 nsp=-1 mass=-400 - -1.600000000000000e+01, 1.200000000000000e+01, // itest=83: ixxxxx#9 nsp=-1 mass=-400 - -2.000000000000000e+01, -0.000000000000000e+00, // itest=83: ixxxxx#9 nsp=-1 mass=-400 - -7.999999999999999e+00, 5.999999999999999e+00, // itest=83: ixxxxx#9 nsp=-1 mass=-400 - -1.000000000000000e+01, -0.000000000000000e+00 } ); // itest=83: ixxxxx#9 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=84: vxxxxx#9 nsp=-1 mass=400 - 2.400000000000000e+02, 1.800000000000000e+02, // itest=84: vxxxxx#9 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=84: vxxxxx#9 nsp=-1 mass=400 - 0.000000000000000e+00, -4.242640687119285e-01, // itest=84: vxxxxx#9 nsp=-1 mass=400 - 0.000000000000000e+00, 5.656854249492381e-01, // itest=84: vxxxxx#9 nsp=-1 mass=400 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=84: vxxxxx#9 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=85: vxxxxx#9 nsp=-1 mass=-400 - 2.400000000000000e+02, 1.800000000000000e+02, // itest=85: vxxxxx#9 nsp=-1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=85: vxxxxx#9 nsp=-1 mass=-400 - 0.000000000000000e+00, -4.242640687119285e-01, // itest=85: vxxxxx#9 nsp=-1 mass=-400 - 0.000000000000000e+00, 5.656854249492381e-01, // itest=85: vxxxxx#9 nsp=-1 mass=-400 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=85: vxxxxx#9 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=86: sxxxxx#9 nsp=-1 mass=400 - 2.400000000000000e+02, 1.800000000000000e+02, // itest=86: sxxxxx#9 nsp=-1 mass=400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=86: sxxxxx#9 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=86: sxxxxx#9 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=86: sxxxxx#9 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=86: sxxxxx#9 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=87: sxxxxx#9 nsp=-1 mass=-400 - 2.400000000000000e+02, 1.800000000000000e+02, // itest=87: sxxxxx#9 nsp=-1 mass=-400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=87: sxxxxx#9 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=87: sxxxxx#9 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=87: sxxxxx#9 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=87: sxxxxx#9 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=88: oxxxxx#9 nsp=-1 mass=400 - 2.400000000000000e+02, 1.800000000000000e+02, // itest=88: oxxxxx#9 nsp=-1 mass=400 - 7.999999999999999e+00, 5.999999999999999e+00, // itest=88: oxxxxx#9 nsp=-1 mass=400 - 1.000000000000000e+01, 0.000000000000000e+00, // itest=88: oxxxxx#9 nsp=-1 mass=400 - -1.600000000000000e+01, -1.200000000000000e+01, // itest=88: oxxxxx#9 nsp=-1 mass=400 - -2.000000000000000e+01, -0.000000000000000e+00 } ); // itest=88: oxxxxx#9 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=89: oxxxxx#9 nsp=-1 mass=-400 - 2.400000000000000e+02, 1.800000000000000e+02, // itest=89: oxxxxx#9 nsp=-1 mass=-400 - -7.999999999999999e+00, -5.999999999999999e+00, // itest=89: oxxxxx#9 nsp=-1 mass=-400 - -1.000000000000000e+01, -0.000000000000000e+00, // itest=89: oxxxxx#9 nsp=-1 mass=-400 - -1.600000000000000e+01, -1.200000000000000e+01, // itest=89: oxxxxx#9 nsp=-1 mass=-400 - -2.000000000000000e+01, -0.000000000000000e+00 } ); // itest=89: oxxxxx#9 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 1.440000000000000e+02, // itest=90: ixxxxx#10 nsp=-1 mass=400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=90: ixxxxx#10 nsp=-1 mass=400 - 9.863939238321439e+00, -1.052153518754287e+01, // itest=90: ixxxxx#10 nsp=-1 mass=400 - -2.433105012119288e+01, -0.000000000000000e+00, // itest=90: ixxxxx#10 nsp=-1 mass=400 - -4.931969619160719e+00, 5.260767593771432e+00, // itest=90: ixxxxx#10 nsp=-1 mass=400 - 1.216552506059644e+01, 0.000000000000000e+00 } ); // itest=90: ixxxxx#10 nsp=-1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 1.440000000000000e+02, // itest=91: ixxxxx#10 nsp=-1 mass=-400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=91: ixxxxx#10 nsp=-1 mass=-400 - 9.863939238321439e+00, -1.052153518754287e+01, // itest=91: ixxxxx#10 nsp=-1 mass=-400 - -2.433105012119288e+01, -0.000000000000000e+00, // itest=91: ixxxxx#10 nsp=-1 mass=-400 - 4.931969619160719e+00, -5.260767593771432e+00, // itest=91: ixxxxx#10 nsp=-1 mass=-400 - -1.216552506059644e+01, -0.000000000000000e+00 } ); // itest=91: ixxxxx#10 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -1.440000000000000e+02, // itest=92: vxxxxx#10 nsp=-1 mass=400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=92: vxxxxx#10 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=92: vxxxxx#10 nsp=-1 mass=400 - -2.321373168788980e-01, 5.158607041753289e-01, // itest=92: vxxxxx#10 nsp=-1 mass=400 - -2.476131380041579e-01, -4.836194101643708e-01, // itest=92: vxxxxx#10 nsp=-1 mass=400 - 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=92: vxxxxx#10 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -1.440000000000000e+02, // itest=93: vxxxxx#10 nsp=-1 mass=-400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=93: vxxxxx#10 nsp=-1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=93: vxxxxx#10 nsp=-1 mass=-400 - -2.321373168788980e-01, 5.158607041753289e-01, // itest=93: vxxxxx#10 nsp=-1 mass=-400 - -2.476131380041579e-01, -4.836194101643708e-01, // itest=93: vxxxxx#10 nsp=-1 mass=-400 - 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=93: vxxxxx#10 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -1.440000000000000e+02, // itest=94: sxxxxx#10 nsp=-1 mass=400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=94: sxxxxx#10 nsp=-1 mass=400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=94: sxxxxx#10 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=94: sxxxxx#10 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=94: sxxxxx#10 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=94: sxxxxx#10 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -1.440000000000000e+02, // itest=95: sxxxxx#10 nsp=-1 mass=-400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=95: sxxxxx#10 nsp=-1 mass=-400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=95: sxxxxx#10 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=95: sxxxxx#10 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=95: sxxxxx#10 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=95: sxxxxx#10 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -1.440000000000000e+02, // itest=96: oxxxxx#10 nsp=-1 mass=400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=96: oxxxxx#10 nsp=-1 mass=400 - -4.931969619160719e+00, -5.260767593771432e+00, // itest=96: oxxxxx#10 nsp=-1 mass=400 - 1.216552506059644e+01, 0.000000000000000e+00, // itest=96: oxxxxx#10 nsp=-1 mass=400 - 9.863939238321439e+00, 1.052153518754287e+01, // itest=96: oxxxxx#10 nsp=-1 mass=400 - -2.433105012119288e+01, -0.000000000000000e+00 } ); // itest=96: oxxxxx#10 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -1.440000000000000e+02, // itest=97: oxxxxx#10 nsp=-1 mass=-400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=97: oxxxxx#10 nsp=-1 mass=-400 - 4.931969619160719e+00, 5.260767593771432e+00, // itest=97: oxxxxx#10 nsp=-1 mass=-400 - -1.216552506059644e+01, -0.000000000000000e+00, // itest=97: oxxxxx#10 nsp=-1 mass=-400 - 9.863939238321439e+00, 1.052153518754287e+01, // itest=97: oxxxxx#10 nsp=-1 mass=-400 - -2.433105012119288e+01, -0.000000000000000e+00 } ); // itest=97: oxxxxx#10 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -1.440000000000000e+02, // itest=98: ixxxxx#11 nsp=-1 mass=400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=98: ixxxxx#11 nsp=-1 mass=400 - 1.664100588675688e+01, -1.775040627920733e+01, // itest=98: ixxxxx#11 nsp=-1 mass=400 - -1.442220510185596e+01, -0.000000000000000e+00, // itest=98: ixxxxx#11 nsp=-1 mass=400 - -8.320502943378436e+00, 8.875203139603666e+00, // itest=98: ixxxxx#11 nsp=-1 mass=400 - 7.211102550927978e+00, 0.000000000000000e+00 } ); // itest=98: ixxxxx#11 nsp=-1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -1.440000000000000e+02, // itest=99: ixxxxx#11 nsp=-1 mass=-400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=99: ixxxxx#11 nsp=-1 mass=-400 - 1.664100588675688e+01, -1.775040627920733e+01, // itest=99: ixxxxx#11 nsp=-1 mass=-400 - -1.442220510185596e+01, -0.000000000000000e+00, // itest=99: ixxxxx#11 nsp=-1 mass=-400 - 8.320502943378436e+00, -8.875203139603666e+00, // itest=99: ixxxxx#11 nsp=-1 mass=-400 - -7.211102550927978e+00, -0.000000000000000e+00 } ); // itest=99: ixxxxx#11 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 1.440000000000000e+02, // itest=100: vxxxxx#11 nsp=-1 mass=400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=100: vxxxxx#11 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=100: vxxxxx#11 nsp=-1 mass=400 - 2.321373168788980e-01, 5.158607041753289e-01, // itest=100: vxxxxx#11 nsp=-1 mass=400 - 2.476131380041579e-01, -4.836194101643708e-01, // itest=100: vxxxxx#11 nsp=-1 mass=400 - 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=100: vxxxxx#11 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 1.440000000000000e+02, // itest=101: vxxxxx#11 nsp=-1 mass=-400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=101: vxxxxx#11 nsp=-1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=101: vxxxxx#11 nsp=-1 mass=-400 - 2.321373168788980e-01, 5.158607041753289e-01, // itest=101: vxxxxx#11 nsp=-1 mass=-400 - 2.476131380041579e-01, -4.836194101643708e-01, // itest=101: vxxxxx#11 nsp=-1 mass=-400 - 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=101: vxxxxx#11 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 1.440000000000000e+02, // itest=102: sxxxxx#11 nsp=-1 mass=400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=102: sxxxxx#11 nsp=-1 mass=400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=102: sxxxxx#11 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=102: sxxxxx#11 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=102: sxxxxx#11 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=102: sxxxxx#11 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 1.440000000000000e+02, // itest=103: sxxxxx#11 nsp=-1 mass=-400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=103: sxxxxx#11 nsp=-1 mass=-400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=103: sxxxxx#11 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=103: sxxxxx#11 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=103: sxxxxx#11 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=103: sxxxxx#11 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 1.440000000000000e+02, // itest=104: oxxxxx#11 nsp=-1 mass=400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=104: oxxxxx#11 nsp=-1 mass=400 - -8.320502943378436e+00, -8.875203139603666e+00, // itest=104: oxxxxx#11 nsp=-1 mass=400 - 7.211102550927978e+00, 0.000000000000000e+00, // itest=104: oxxxxx#11 nsp=-1 mass=400 - 1.664100588675688e+01, 1.775040627920733e+01, // itest=104: oxxxxx#11 nsp=-1 mass=400 - -1.442220510185596e+01, -0.000000000000000e+00 } ); // itest=104: oxxxxx#11 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 1.440000000000000e+02, // itest=105: oxxxxx#11 nsp=-1 mass=-400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=105: oxxxxx#11 nsp=-1 mass=-400 - 8.320502943378436e+00, 8.875203139603666e+00, // itest=105: oxxxxx#11 nsp=-1 mass=-400 - -7.211102550927978e+00, -0.000000000000000e+00, // itest=105: oxxxxx#11 nsp=-1 mass=-400 - 1.664100588675688e+01, 1.775040627920733e+01, // itest=105: oxxxxx#11 nsp=-1 mass=-400 - -1.442220510185596e+01, -0.000000000000000e+00 } ); // itest=105: oxxxxx#11 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=106: ixxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=106: ixxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=106: ixxxxx#12 nsp=-1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00, // itest=106: ixxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=106: ixxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=106: ixxxxx#12 nsp=-1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=107: ixxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=107: ixxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=107: ixxxxx#12 nsp=-1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00, // itest=107: ixxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=107: ixxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=107: ixxxxx#12 nsp=-1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=108: ipzxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=108: ipzxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=108: ipzxxx#12 nsp=-1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00, // itest=108: ipzxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=108: ipzxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=108: ipzxxx#12 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=109: vxxxxx#12 nsp=-1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=109: vxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=109: vxxxxx#12 nsp=-1 mass=0 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=109: vxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, -7.071067811865476e-01, // itest=109: vxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=109: vxxxxx#12 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=110: vxxxxx#12 nsp=-1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=110: vxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=110: vxxxxx#12 nsp=-1 mass=0 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=110: vxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, -7.071067811865476e-01, // itest=110: vxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=110: vxxxxx#12 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=111: sxxxxx#12 nsp=-1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=111: sxxxxx#12 nsp=-1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=111: sxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=111: sxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=111: sxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=111: sxxxxx#12 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=112: sxxxxx#12 nsp=-1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=112: sxxxxx#12 nsp=-1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=112: sxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=112: sxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=112: sxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=112: sxxxxx#12 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=113: oxxxxx#12 nsp=-1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=113: oxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=113: oxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=113: oxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=113: oxxxxx#12 nsp=-1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=113: oxxxxx#12 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=114: oxxxxx#12 nsp=-1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=114: oxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=114: oxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=114: oxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=114: oxxxxx#12 nsp=-1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=114: oxxxxx#12 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=115: opzxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=115: opzxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=115: opzxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=115: opzxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=115: opzxxx#12 nsp=-1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=115: opzxxx#12 nsp=-1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=116: ixxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=116: ixxxxx#13 nsp=-1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00, // itest=116: ixxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=116: ixxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=116: ixxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=116: ixxxxx#13 nsp=-1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=117: ixxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=117: ixxxxx#13 nsp=-1 mass=0 - -3.162277660168379e+01, -0.000000000000000e+00, // itest=117: ixxxxx#13 nsp=-1 mass=0 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=117: ixxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=117: ixxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=117: ixxxxx#13 nsp=-1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=118: imzxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=118: imzxxx#13 nsp=-1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00, // itest=118: imzxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=118: imzxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=118: imzxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=118: imzxxx#13 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=119: vxxxxx#13 nsp=-1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=119: vxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=119: vxxxxx#13 nsp=-1 mass=0 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=119: vxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 7.071067811865476e-01, // itest=119: vxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=119: vxxxxx#13 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=120: vxxxxx#13 nsp=-1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=120: vxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=120: vxxxxx#13 nsp=-1 mass=0 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=120: vxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 7.071067811865476e-01, // itest=120: vxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=120: vxxxxx#13 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=121: sxxxxx#13 nsp=-1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=121: sxxxxx#13 nsp=-1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=121: sxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=121: sxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=121: sxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=121: sxxxxx#13 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=122: sxxxxx#13 nsp=-1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=122: sxxxxx#13 nsp=-1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=122: sxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=122: sxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=122: sxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=122: sxxxxx#13 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=123: oxxxxx#13 nsp=-1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=123: oxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=123: oxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=123: oxxxxx#13 nsp=-1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00, // itest=123: oxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=123: oxxxxx#13 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=124: oxxxxx#13 nsp=-1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=124: oxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=124: oxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=124: oxxxxx#13 nsp=-1 mass=0 - -3.162277660168379e+01, -0.000000000000000e+00, // itest=124: oxxxxx#13 nsp=-1 mass=0 - -0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=124: oxxxxx#13 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=125: omzxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=125: omzxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=125: omzxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=125: omzxxx#13 nsp=-1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00, // itest=125: omzxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=125: omzxxx#13 nsp=-1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=126: ixxxxx#14 nsp=-1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=126: ixxxxx#14 nsp=-1 mass=0 - 1.341640786499874e+01, -1.788854381999832e+01, // itest=126: ixxxxx#14 nsp=-1 mass=0 - -2.236067977499790e+01, 0.000000000000000e+00, // itest=126: ixxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=126: ixxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=126: ixxxxx#14 nsp=-1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=127: ixxxxx#14 nsp=-1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=127: ixxxxx#14 nsp=-1 mass=0 - 1.341640786499874e+01, -1.788854381999832e+01, // itest=127: ixxxxx#14 nsp=-1 mass=0 - -2.236067977499790e+01, 0.000000000000000e+00, // itest=127: ixxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=127: ixxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=127: ixxxxx#14 nsp=-1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=128: ixzxxx#14 nsp=-1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=128: ixzxxx#14 nsp=-1 mass=0 - 1.341640786499874e+01, -1.788854381999832e+01, // itest=128: ixzxxx#14 nsp=-1 mass=0 - -2.236067977499790e+01, 0.000000000000000e+00, // itest=128: ixzxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=128: ixzxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=128: ixzxxx#14 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=129: vxxxxx#14 nsp=-1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=129: vxxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=129: vxxxxx#14 nsp=-1 mass=0 - -0.000000000000000e+00, 5.656854249492381e-01, // itest=129: vxxxxx#14 nsp=-1 mass=0 - -0.000000000000000e+00, -4.242640687119285e-01, // itest=129: vxxxxx#14 nsp=-1 mass=0 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=129: vxxxxx#14 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=130: vxxxxx#14 nsp=-1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=130: vxxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=130: vxxxxx#14 nsp=-1 mass=0 - -0.000000000000000e+00, 5.656854249492381e-01, // itest=130: vxxxxx#14 nsp=-1 mass=0 - -0.000000000000000e+00, -4.242640687119285e-01, // itest=130: vxxxxx#14 nsp=-1 mass=0 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=130: vxxxxx#14 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=131: sxxxxx#14 nsp=-1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=131: sxxxxx#14 nsp=-1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=131: sxxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=131: sxxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=131: sxxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=131: sxxxxx#14 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=132: sxxxxx#14 nsp=-1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=132: sxxxxx#14 nsp=-1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=132: sxxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=132: sxxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=132: sxxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=132: sxxxxx#14 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=133: oxxxxx#14 nsp=-1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=133: oxxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=133: oxxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=133: oxxxxx#14 nsp=-1 mass=0 - 1.341640786499874e+01, 1.788854381999832e+01, // itest=133: oxxxxx#14 nsp=-1 mass=0 - -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=133: oxxxxx#14 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=134: oxxxxx#14 nsp=-1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=134: oxxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=134: oxxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=134: oxxxxx#14 nsp=-1 mass=0 - 1.341640786499874e+01, 1.788854381999832e+01, // itest=134: oxxxxx#14 nsp=-1 mass=0 - -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=134: oxxxxx#14 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=135: oxzxxx#14 nsp=-1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=135: oxzxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=135: oxzxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=135: oxzxxx#14 nsp=-1 mass=0 - 1.341640786499874e+01, 1.788854381999832e+01, // itest=135: oxzxxx#14 nsp=-1 mass=0 - -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=135: oxzxxx#14 nsp=-1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=136: ixxxxx#15 nsp=-1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=136: ixxxxx#15 nsp=-1 mass=0 - 6.000000000000000e+00, -8.000000000000000e+00, // itest=136: ixxxxx#15 nsp=-1 mass=0 - -3.000000000000000e+01, 0.000000000000000e+00, // itest=136: ixxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=136: ixxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=136: ixxxxx#15 nsp=-1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=137: ixxxxx#15 nsp=-1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=137: ixxxxx#15 nsp=-1 mass=0 - 6.000000000000000e+00, -8.000000000000000e+00, // itest=137: ixxxxx#15 nsp=-1 mass=0 - -3.000000000000000e+01, 0.000000000000000e+00, // itest=137: ixxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=137: ixxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=137: ixxxxx#15 nsp=-1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=138: ixzxxx#15 nsp=-1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=138: ixzxxx#15 nsp=-1 mass=0 - 6.000000000000000e+00, -8.000000000000000e+00, // itest=138: ixzxxx#15 nsp=-1 mass=0 - -3.000000000000000e+01, 0.000000000000000e+00, // itest=138: ixzxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=138: ixzxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=138: ixzxxx#15 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=139: vxxxxx#15 nsp=-1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=139: vxxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=139: vxxxxx#15 nsp=-1 mass=0 - -3.394112549695428e-01, 5.656854249492381e-01, // itest=139: vxxxxx#15 nsp=-1 mass=0 - -4.525483399593904e-01, -4.242640687119285e-01, // itest=139: vxxxxx#15 nsp=-1 mass=0 - 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=139: vxxxxx#15 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=140: vxxxxx#15 nsp=-1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=140: vxxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=140: vxxxxx#15 nsp=-1 mass=0 - -3.394112549695428e-01, 5.656854249492381e-01, // itest=140: vxxxxx#15 nsp=-1 mass=0 - -4.525483399593904e-01, -4.242640687119285e-01, // itest=140: vxxxxx#15 nsp=-1 mass=0 - 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=140: vxxxxx#15 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=141: sxxxxx#15 nsp=-1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=141: sxxxxx#15 nsp=-1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=141: sxxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=141: sxxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=141: sxxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=141: sxxxxx#15 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=142: sxxxxx#15 nsp=-1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=142: sxxxxx#15 nsp=-1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=142: sxxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=142: sxxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=142: sxxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=142: sxxxxx#15 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=143: oxxxxx#15 nsp=-1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=143: oxxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=143: oxxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=143: oxxxxx#15 nsp=-1 mass=0 - 6.000000000000000e+00, 8.000000000000000e+00, // itest=143: oxxxxx#15 nsp=-1 mass=0 - -3.000000000000000e+01, 0.000000000000000e+00 } ); // itest=143: oxxxxx#15 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=144: oxxxxx#15 nsp=-1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=144: oxxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=144: oxxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=144: oxxxxx#15 nsp=-1 mass=0 - 6.000000000000000e+00, 8.000000000000000e+00, // itest=144: oxxxxx#15 nsp=-1 mass=0 - -3.000000000000000e+01, 0.000000000000000e+00 } ); // itest=144: oxxxxx#15 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=145: oxzxxx#15 nsp=-1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=145: oxzxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=145: oxzxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=145: oxzxxx#15 nsp=-1 mass=0 - 6.000000000000000e+00, 8.000000000000000e+00, // itest=145: oxzxxx#15 nsp=-1 mass=0 - -3.000000000000000e+01, 0.000000000000000e+00 } ); // itest=145: oxzxxx#15 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=146: ixxxxx#0 nsp=1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=146: ixxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=146: ixxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=146: ixxxxx#0 nsp=1 mass=0 - 3.162277660168379e+01, 0.000000000000000e+00, // itest=146: ixxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=146: ixxxxx#0 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=147: ixxxxx#0 nsp=1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=147: ixxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=147: ixxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=147: ixxxxx#0 nsp=1 mass=0 - 3.162277660168379e+01, 0.000000000000000e+00, // itest=147: ixxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=147: ixxxxx#0 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=148: ipzxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=148: ipzxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=148: ipzxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=148: ipzxxx#0 nsp=1 mass=0 - 3.162277660168379e+01, 0.000000000000000e+00, // itest=148: ipzxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=148: ipzxxx#0 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=149: vxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=149: vxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=149: vxxxxx#0 nsp=1 mass=0 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=149: vxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 7.071067811865476e-01, // itest=149: vxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=149: vxxxxx#0 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=150: vxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=150: vxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=150: vxxxxx#0 nsp=1 mass=0 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=150: vxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 7.071067811865476e-01, // itest=150: vxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=150: vxxxxx#0 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=151: sxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=151: sxxxxx#0 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=151: sxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=151: sxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=151: sxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=151: sxxxxx#0 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=152: sxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=152: sxxxxx#0 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=152: sxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=152: sxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=152: sxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=152: sxxxxx#0 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=153: oxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=153: oxxxxx#0 nsp=1 mass=0 - 3.162277660168379e+01, 0.000000000000000e+00, // itest=153: oxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=153: oxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=153: oxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=153: oxxxxx#0 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=154: oxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=154: oxxxxx#0 nsp=1 mass=0 - 3.162277660168379e+01, 0.000000000000000e+00, // itest=154: oxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=154: oxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=154: oxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=154: oxxxxx#0 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=155: opzxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=155: opzxxx#0 nsp=1 mass=0 - 3.162277660168379e+01, 0.000000000000000e+00, // itest=155: opzxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=155: opzxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=155: opzxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=155: opzxxx#0 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=156: ixxxxx#1 nsp=1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=156: ixxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=156: ixxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=156: ixxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=156: ixxxxx#1 nsp=1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=156: ixxxxx#1 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=157: ixxxxx#1 nsp=1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=157: ixxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=157: ixxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=157: ixxxxx#1 nsp=1 mass=0 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=157: ixxxxx#1 nsp=1 mass=0 - -3.162277660168379e+01, -0.000000000000000e+00 } ); // itest=157: ixxxxx#1 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=158: imzxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=158: imzxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=158: imzxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=158: imzxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=158: imzxxx#1 nsp=1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=158: imzxxx#1 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=159: vxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=159: vxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=159: vxxxxx#1 nsp=1 mass=0 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=159: vxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, -7.071067811865476e-01, // itest=159: vxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=159: vxxxxx#1 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=160: vxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=160: vxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=160: vxxxxx#1 nsp=1 mass=0 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=160: vxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, -7.071067811865476e-01, // itest=160: vxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=160: vxxxxx#1 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=161: sxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=161: sxxxxx#1 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=161: sxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=161: sxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=161: sxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=161: sxxxxx#1 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=162: sxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=162: sxxxxx#1 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=162: sxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=162: sxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=162: sxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=162: sxxxxx#1 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=163: oxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=163: oxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=163: oxxxxx#1 nsp=1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00, // itest=163: oxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=163: oxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=163: oxxxxx#1 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=164: oxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=164: oxxxxx#1 nsp=1 mass=0 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=164: oxxxxx#1 nsp=1 mass=0 - -3.162277660168379e+01, -0.000000000000000e+00, // itest=164: oxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=164: oxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=164: oxxxxx#1 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=165: omzxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=165: omzxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=165: omzxxx#1 nsp=1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00, // itest=165: omzxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=165: omzxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=165: omzxxx#1 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=166: ixxxxx#2 nsp=1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=166: ixxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=166: ixxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=166: ixxxxx#2 nsp=1 mass=0 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=166: ixxxxx#2 nsp=1 mass=0 - 1.341640786499874e+01, 1.788854381999832e+01 } ); // itest=166: ixxxxx#2 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=167: ixxxxx#2 nsp=1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=167: ixxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=167: ixxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=167: ixxxxx#2 nsp=1 mass=0 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=167: ixxxxx#2 nsp=1 mass=0 - 1.341640786499874e+01, 1.788854381999832e+01 } ); // itest=167: ixxxxx#2 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=168: ixzxxx#2 nsp=1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=168: ixzxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=168: ixzxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=168: ixzxxx#2 nsp=1 mass=0 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=168: ixzxxx#2 nsp=1 mass=0 - 1.341640786499874e+01, 1.788854381999832e+01 } ); // itest=168: ixzxxx#2 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=169: vxxxxx#2 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=169: vxxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=169: vxxxxx#2 nsp=1 mass=0 - -0.000000000000000e+00, -5.656854249492381e-01, // itest=169: vxxxxx#2 nsp=1 mass=0 - -0.000000000000000e+00, 4.242640687119285e-01, // itest=169: vxxxxx#2 nsp=1 mass=0 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=169: vxxxxx#2 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=170: vxxxxx#2 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=170: vxxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=170: vxxxxx#2 nsp=1 mass=0 - -0.000000000000000e+00, -5.656854249492381e-01, // itest=170: vxxxxx#2 nsp=1 mass=0 - -0.000000000000000e+00, 4.242640687119285e-01, // itest=170: vxxxxx#2 nsp=1 mass=0 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=170: vxxxxx#2 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=171: sxxxxx#2 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=171: sxxxxx#2 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=171: sxxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=171: sxxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=171: sxxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=171: sxxxxx#2 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=172: sxxxxx#2 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=172: sxxxxx#2 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=172: sxxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=172: sxxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=172: sxxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=172: sxxxxx#2 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=173: oxxxxx#2 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=173: oxxxxx#2 nsp=1 mass=0 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=173: oxxxxx#2 nsp=1 mass=0 - 1.341640786499874e+01, -1.788854381999832e+01, // itest=173: oxxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=173: oxxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=173: oxxxxx#2 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=174: oxxxxx#2 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=174: oxxxxx#2 nsp=1 mass=0 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=174: oxxxxx#2 nsp=1 mass=0 - 1.341640786499874e+01, -1.788854381999832e+01, // itest=174: oxxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=174: oxxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=174: oxxxxx#2 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=175: oxzxxx#2 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=175: oxzxxx#2 nsp=1 mass=0 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=175: oxzxxx#2 nsp=1 mass=0 - 1.341640786499874e+01, -1.788854381999832e+01, // itest=175: oxzxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=175: oxzxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=175: oxzxxx#2 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=176: ixxxxx#3 nsp=1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=176: ixxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=176: ixxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=176: ixxxxx#3 nsp=1 mass=0 - 3.000000000000000e+01, 0.000000000000000e+00, // itest=176: ixxxxx#3 nsp=1 mass=0 - 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=176: ixxxxx#3 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=177: ixxxxx#3 nsp=1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=177: ixxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=177: ixxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=177: ixxxxx#3 nsp=1 mass=0 - 3.000000000000000e+01, 0.000000000000000e+00, // itest=177: ixxxxx#3 nsp=1 mass=0 - 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=177: ixxxxx#3 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=178: ixzxxx#3 nsp=1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=178: ixzxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=178: ixzxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=178: ixzxxx#3 nsp=1 mass=0 - 3.000000000000000e+01, 0.000000000000000e+00, // itest=178: ixzxxx#3 nsp=1 mass=0 - 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=178: ixzxxx#3 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=179: vxxxxx#3 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=179: vxxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=179: vxxxxx#3 nsp=1 mass=0 - -3.394112549695428e-01, -5.656854249492381e-01, // itest=179: vxxxxx#3 nsp=1 mass=0 - -4.525483399593904e-01, 4.242640687119285e-01, // itest=179: vxxxxx#3 nsp=1 mass=0 - 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=179: vxxxxx#3 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=180: vxxxxx#3 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=180: vxxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=180: vxxxxx#3 nsp=1 mass=0 - -3.394112549695428e-01, -5.656854249492381e-01, // itest=180: vxxxxx#3 nsp=1 mass=0 - -4.525483399593904e-01, 4.242640687119285e-01, // itest=180: vxxxxx#3 nsp=1 mass=0 - 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=180: vxxxxx#3 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=181: sxxxxx#3 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=181: sxxxxx#3 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=181: sxxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=181: sxxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=181: sxxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=181: sxxxxx#3 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=182: sxxxxx#3 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=182: sxxxxx#3 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=182: sxxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=182: sxxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=182: sxxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=182: sxxxxx#3 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=183: oxxxxx#3 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=183: oxxxxx#3 nsp=1 mass=0 - 3.000000000000000e+01, 0.000000000000000e+00, // itest=183: oxxxxx#3 nsp=1 mass=0 - 6.000000000000000e+00, -8.000000000000000e+00, // itest=183: oxxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=183: oxxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=183: oxxxxx#3 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=184: oxxxxx#3 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=184: oxxxxx#3 nsp=1 mass=0 - 3.000000000000000e+01, 0.000000000000000e+00, // itest=184: oxxxxx#3 nsp=1 mass=0 - 6.000000000000000e+00, -8.000000000000000e+00, // itest=184: oxxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=184: oxxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=184: oxxxxx#3 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=185: oxzxxx#3 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=185: oxzxxx#3 nsp=1 mass=0 - 3.000000000000000e+01, 0.000000000000000e+00, // itest=185: oxzxxx#3 nsp=1 mass=0 - 6.000000000000000e+00, -8.000000000000000e+00, // itest=185: oxzxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=185: oxzxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=185: oxzxxx#3 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 4.000000000000000e+02, // itest=186: ixxxxx#4 nsp=1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=186: ixxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=186: ixxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=186: ixxxxx#4 nsp=1 mass=0 - 1.000000000000000e+01, 0.000000000000000e+00, // itest=186: ixxxxx#4 nsp=1 mass=0 - 1.800000000000000e+01, 2.400000000000000e+01 } ); // itest=186: ixxxxx#4 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 4.000000000000000e+02, // itest=187: ixxxxx#4 nsp=1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=187: ixxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=187: ixxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=187: ixxxxx#4 nsp=1 mass=0 - 1.000000000000000e+01, 0.000000000000000e+00, // itest=187: ixxxxx#4 nsp=1 mass=0 - 1.800000000000000e+01, 2.400000000000000e+01 } ); // itest=187: ixxxxx#4 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 4.000000000000000e+02, // itest=188: ixzxxx#4 nsp=1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=188: ixzxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=188: ixzxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=188: ixzxxx#4 nsp=1 mass=0 - 1.000000000000000e+01, 0.000000000000000e+00, // itest=188: ixzxxx#4 nsp=1 mass=0 - 1.800000000000000e+01, 2.400000000000000e+01 } ); // itest=188: ixzxxx#4 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -4.000000000000000e+02, // itest=189: vxxxxx#4 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=189: vxxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=189: vxxxxx#4 nsp=1 mass=0 - 3.394112549695428e-01, -5.656854249492381e-01, // itest=189: vxxxxx#4 nsp=1 mass=0 - 4.525483399593904e-01, 4.242640687119285e-01, // itest=189: vxxxxx#4 nsp=1 mass=0 - 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=189: vxxxxx#4 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -4.000000000000000e+02, // itest=190: vxxxxx#4 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=190: vxxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=190: vxxxxx#4 nsp=1 mass=0 - 3.394112549695428e-01, -5.656854249492381e-01, // itest=190: vxxxxx#4 nsp=1 mass=0 - 4.525483399593904e-01, 4.242640687119285e-01, // itest=190: vxxxxx#4 nsp=1 mass=0 - 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=190: vxxxxx#4 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -4.000000000000000e+02, // itest=191: sxxxxx#4 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=191: sxxxxx#4 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=191: sxxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=191: sxxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=191: sxxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=191: sxxxxx#4 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -4.000000000000000e+02, // itest=192: sxxxxx#4 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=192: sxxxxx#4 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=192: sxxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=192: sxxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=192: sxxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=192: sxxxxx#4 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -4.000000000000000e+02, // itest=193: oxxxxx#4 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=193: oxxxxx#4 nsp=1 mass=0 - 1.000000000000000e+01, 0.000000000000000e+00, // itest=193: oxxxxx#4 nsp=1 mass=0 - 1.800000000000000e+01, -2.400000000000000e+01, // itest=193: oxxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=193: oxxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=193: oxxxxx#4 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -4.000000000000000e+02, // itest=194: oxxxxx#4 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=194: oxxxxx#4 nsp=1 mass=0 - 1.000000000000000e+01, 0.000000000000000e+00, // itest=194: oxxxxx#4 nsp=1 mass=0 - 1.800000000000000e+01, -2.400000000000000e+01, // itest=194: oxxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=194: oxxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=194: oxxxxx#4 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -4.000000000000000e+02, // itest=195: oxzxxx#4 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=195: oxzxxx#4 nsp=1 mass=0 - 1.000000000000000e+01, 0.000000000000000e+00, // itest=195: oxzxxx#4 nsp=1 mass=0 - 1.800000000000000e+01, -2.400000000000000e+01, // itest=195: oxzxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=195: oxzxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=195: oxzxxx#4 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=196: ixxxxx#5 nsp=1 mass=500 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=196: ixxxxx#5 nsp=1 mass=500 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=196: ixxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=196: ixxxxx#5 nsp=1 mass=500 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=196: ixxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=196: ixxxxx#5 nsp=1 mass=500 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=197: ixxxxx#5 nsp=1 mass=-500 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=197: ixxxxx#5 nsp=1 mass=-500 - -2.236067977499790e+01, 0.000000000000000e+00, // itest=197: ixxxxx#5 nsp=1 mass=-500 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=197: ixxxxx#5 nsp=1 mass=-500 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=197: ixxxxx#5 nsp=1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=197: ixxxxx#5 nsp=1 mass=-500 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=198: vxxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=198: vxxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=198: vxxxxx#5 nsp=1 mass=500 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=198: vxxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 7.071067811865476e-01, // itest=198: vxxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=198: vxxxxx#5 nsp=1 mass=500 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=199: vxxxxx#5 nsp=1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=199: vxxxxx#5 nsp=1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=199: vxxxxx#5 nsp=1 mass=-500 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=199: vxxxxx#5 nsp=1 mass=-500 - 0.000000000000000e+00, 7.071067811865476e-01, // itest=199: vxxxxx#5 nsp=1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=199: vxxxxx#5 nsp=1 mass=-500 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=200: sxxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=200: sxxxxx#5 nsp=1 mass=500 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=200: sxxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=200: sxxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=200: sxxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=200: sxxxxx#5 nsp=1 mass=500 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=201: sxxxxx#5 nsp=1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=201: sxxxxx#5 nsp=1 mass=-500 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=201: sxxxxx#5 nsp=1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=201: sxxxxx#5 nsp=1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=201: sxxxxx#5 nsp=1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=201: sxxxxx#5 nsp=1 mass=-500 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=202: oxxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=202: oxxxxx#5 nsp=1 mass=500 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=202: oxxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=202: oxxxxx#5 nsp=1 mass=500 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=202: oxxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=202: oxxxxx#5 nsp=1 mass=500 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=203: oxxxxx#5 nsp=1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=203: oxxxxx#5 nsp=1 mass=-500 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=203: oxxxxx#5 nsp=1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=203: oxxxxx#5 nsp=1 mass=-500 - -2.236067977499790e+01, 0.000000000000000e+00, // itest=203: oxxxxx#5 nsp=1 mass=-500 - -0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=203: oxxxxx#5 nsp=1 mass=-500 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -3.000000000000000e+02, // itest=204: ixxxxx#6 nsp=1 mass=400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=204: ixxxxx#6 nsp=1 mass=400 - 1.414213562373095e+01, 0.000000000000000e+00, // itest=204: ixxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=204: ixxxxx#6 nsp=1 mass=400 - 2.828427124746190e+01, 0.000000000000000e+00, // itest=204: ixxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=204: ixxxxx#6 nsp=1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -3.000000000000000e+02, // itest=205: ixxxxx#6 nsp=1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=205: ixxxxx#6 nsp=1 mass=-400 - -1.414213562373095e+01, -0.000000000000000e+00, // itest=205: ixxxxx#6 nsp=1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=205: ixxxxx#6 nsp=1 mass=-400 - 2.828427124746190e+01, 0.000000000000000e+00, // itest=205: ixxxxx#6 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=205: ixxxxx#6 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 3.000000000000000e+02, // itest=206: vxxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=206: vxxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=206: vxxxxx#6 nsp=1 mass=400 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=206: vxxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, 7.071067811865476e-01, // itest=206: vxxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=206: vxxxxx#6 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 3.000000000000000e+02, // itest=207: vxxxxx#6 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=207: vxxxxx#6 nsp=1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=207: vxxxxx#6 nsp=1 mass=-400 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=207: vxxxxx#6 nsp=1 mass=-400 - 0.000000000000000e+00, 7.071067811865476e-01, // itest=207: vxxxxx#6 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=207: vxxxxx#6 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 3.000000000000000e+02, // itest=208: sxxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=208: sxxxxx#6 nsp=1 mass=400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=208: sxxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=208: sxxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=208: sxxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=208: sxxxxx#6 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 3.000000000000000e+02, // itest=209: sxxxxx#6 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=209: sxxxxx#6 nsp=1 mass=-400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=209: sxxxxx#6 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=209: sxxxxx#6 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=209: sxxxxx#6 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=209: sxxxxx#6 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 3.000000000000000e+02, // itest=210: oxxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=210: oxxxxx#6 nsp=1 mass=400 - 2.828427124746190e+01, 0.000000000000000e+00, // itest=210: oxxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=210: oxxxxx#6 nsp=1 mass=400 - 1.414213562373095e+01, 0.000000000000000e+00, // itest=210: oxxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=210: oxxxxx#6 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 3.000000000000000e+02, // itest=211: oxxxxx#6 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=211: oxxxxx#6 nsp=1 mass=-400 - 2.828427124746190e+01, 0.000000000000000e+00, // itest=211: oxxxxx#6 nsp=1 mass=-400 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=211: oxxxxx#6 nsp=1 mass=-400 - -1.414213562373095e+01, -0.000000000000000e+00, // itest=211: oxxxxx#6 nsp=1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=211: oxxxxx#6 nsp=1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 3.000000000000000e+02, // itest=212: ixxxxx#7 nsp=1 mass=400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=212: ixxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=212: ixxxxx#7 nsp=1 mass=400 - -1.414213562373095e+01, 0.000000000000000e+00, // itest=212: ixxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=212: ixxxxx#7 nsp=1 mass=400 - -2.828427124746190e+01, 0.000000000000000e+00 } ); // itest=212: ixxxxx#7 nsp=1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 3.000000000000000e+02, // itest=213: ixxxxx#7 nsp=1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=213: ixxxxx#7 nsp=1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=213: ixxxxx#7 nsp=1 mass=-400 - 1.414213562373095e+01, -0.000000000000000e+00, // itest=213: ixxxxx#7 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=213: ixxxxx#7 nsp=1 mass=-400 - -2.828427124746190e+01, 0.000000000000000e+00 } ); // itest=213: ixxxxx#7 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -3.000000000000000e+02, // itest=214: vxxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=214: vxxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=214: vxxxxx#7 nsp=1 mass=400 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=214: vxxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, -7.071067811865476e-01, // itest=214: vxxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=214: vxxxxx#7 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -3.000000000000000e+02, // itest=215: vxxxxx#7 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=215: vxxxxx#7 nsp=1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=215: vxxxxx#7 nsp=1 mass=-400 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=215: vxxxxx#7 nsp=1 mass=-400 - 0.000000000000000e+00, -7.071067811865476e-01, // itest=215: vxxxxx#7 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=215: vxxxxx#7 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -3.000000000000000e+02, // itest=216: sxxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=216: sxxxxx#7 nsp=1 mass=400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=216: sxxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=216: sxxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=216: sxxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=216: sxxxxx#7 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -3.000000000000000e+02, // itest=217: sxxxxx#7 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=217: sxxxxx#7 nsp=1 mass=-400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=217: sxxxxx#7 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=217: sxxxxx#7 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=217: sxxxxx#7 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=217: sxxxxx#7 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -3.000000000000000e+02, // itest=218: oxxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=218: oxxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=218: oxxxxx#7 nsp=1 mass=400 - -2.828427124746190e+01, 0.000000000000000e+00, // itest=218: oxxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=218: oxxxxx#7 nsp=1 mass=400 - -1.414213562373095e+01, 0.000000000000000e+00 } ); // itest=218: oxxxxx#7 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -3.000000000000000e+02, // itest=219: oxxxxx#7 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=219: oxxxxx#7 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=219: oxxxxx#7 nsp=1 mass=-400 - -2.828427124746190e+01, 0.000000000000000e+00, // itest=219: oxxxxx#7 nsp=1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=219: oxxxxx#7 nsp=1 mass=-400 - 1.414213562373095e+01, -0.000000000000000e+00 } ); // itest=219: oxxxxx#7 nsp=1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=220: ixxxxx#8 nsp=1 mass=400 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=220: ixxxxx#8 nsp=1 mass=400 - 1.000000000000000e+01, 0.000000000000000e+00, // itest=220: ixxxxx#8 nsp=1 mass=400 - 5.999999999999999e+00, 7.999999999999999e+00, // itest=220: ixxxxx#8 nsp=1 mass=400 - 2.000000000000000e+01, 0.000000000000000e+00, // itest=220: ixxxxx#8 nsp=1 mass=400 - 1.200000000000000e+01, 1.600000000000000e+01 } ); // itest=220: ixxxxx#8 nsp=1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=221: ixxxxx#8 nsp=1 mass=-400 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=221: ixxxxx#8 nsp=1 mass=-400 - -1.000000000000000e+01, -0.000000000000000e+00, // itest=221: ixxxxx#8 nsp=1 mass=-400 - -5.999999999999999e+00, -7.999999999999999e+00, // itest=221: ixxxxx#8 nsp=1 mass=-400 - 2.000000000000000e+01, 0.000000000000000e+00, // itest=221: ixxxxx#8 nsp=1 mass=-400 - 1.200000000000000e+01, 1.600000000000000e+01 } ); // itest=221: ixxxxx#8 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=222: vxxxxx#8 nsp=1 mass=400 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=222: vxxxxx#8 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=222: vxxxxx#8 nsp=1 mass=400 - 0.000000000000000e+00, -5.656854249492381e-01, // itest=222: vxxxxx#8 nsp=1 mass=400 - 0.000000000000000e+00, 4.242640687119285e-01, // itest=222: vxxxxx#8 nsp=1 mass=400 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=222: vxxxxx#8 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=223: vxxxxx#8 nsp=1 mass=-400 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=223: vxxxxx#8 nsp=1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=223: vxxxxx#8 nsp=1 mass=-400 - -0.000000000000000e+00, -5.656854249492381e-01, // itest=223: vxxxxx#8 nsp=1 mass=-400 - -0.000000000000000e+00, 4.242640687119285e-01, // itest=223: vxxxxx#8 nsp=1 mass=-400 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=223: vxxxxx#8 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=224: sxxxxx#8 nsp=1 mass=400 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=224: sxxxxx#8 nsp=1 mass=400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=224: sxxxxx#8 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=224: sxxxxx#8 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=224: sxxxxx#8 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=224: sxxxxx#8 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=225: sxxxxx#8 nsp=1 mass=-400 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=225: sxxxxx#8 nsp=1 mass=-400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=225: sxxxxx#8 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=225: sxxxxx#8 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=225: sxxxxx#8 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=225: sxxxxx#8 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=226: oxxxxx#8 nsp=1 mass=400 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=226: oxxxxx#8 nsp=1 mass=400 - 2.000000000000000e+01, 0.000000000000000e+00, // itest=226: oxxxxx#8 nsp=1 mass=400 - 1.200000000000000e+01, -1.600000000000000e+01, // itest=226: oxxxxx#8 nsp=1 mass=400 - 1.000000000000000e+01, 0.000000000000000e+00, // itest=226: oxxxxx#8 nsp=1 mass=400 - 5.999999999999999e+00, -7.999999999999999e+00 } ); // itest=226: oxxxxx#8 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=227: oxxxxx#8 nsp=1 mass=-400 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=227: oxxxxx#8 nsp=1 mass=-400 - 2.000000000000000e+01, 0.000000000000000e+00, // itest=227: oxxxxx#8 nsp=1 mass=-400 - 1.200000000000000e+01, -1.600000000000000e+01, // itest=227: oxxxxx#8 nsp=1 mass=-400 - -1.000000000000000e+01, -0.000000000000000e+00, // itest=227: oxxxxx#8 nsp=1 mass=-400 - -5.999999999999999e+00, 7.999999999999999e+00 } ); // itest=227: oxxxxx#8 nsp=1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=228: ixxxxx#9 nsp=1 mass=400 - 2.400000000000000e+02, 1.800000000000000e+02, // itest=228: ixxxxx#9 nsp=1 mass=400 - 1.000000000000000e+01, 0.000000000000000e+00, // itest=228: ixxxxx#9 nsp=1 mass=400 - -7.999999999999999e+00, -5.999999999999999e+00, // itest=228: ixxxxx#9 nsp=1 mass=400 - 2.000000000000000e+01, 0.000000000000000e+00, // itest=228: ixxxxx#9 nsp=1 mass=400 - -1.600000000000000e+01, -1.200000000000000e+01 } ); // itest=228: ixxxxx#9 nsp=1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=229: ixxxxx#9 nsp=1 mass=-400 - 2.400000000000000e+02, 1.800000000000000e+02, // itest=229: ixxxxx#9 nsp=1 mass=-400 - -1.000000000000000e+01, -0.000000000000000e+00, // itest=229: ixxxxx#9 nsp=1 mass=-400 - 7.999999999999999e+00, 5.999999999999999e+00, // itest=229: ixxxxx#9 nsp=1 mass=-400 - 2.000000000000000e+01, 0.000000000000000e+00, // itest=229: ixxxxx#9 nsp=1 mass=-400 - -1.600000000000000e+01, -1.200000000000000e+01 } ); // itest=229: ixxxxx#9 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=230: vxxxxx#9 nsp=1 mass=400 - -2.400000000000000e+02, -1.800000000000000e+02, // itest=230: vxxxxx#9 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=230: vxxxxx#9 nsp=1 mass=400 - 0.000000000000000e+00, 4.242640687119285e-01, // itest=230: vxxxxx#9 nsp=1 mass=400 - 0.000000000000000e+00, -5.656854249492381e-01, // itest=230: vxxxxx#9 nsp=1 mass=400 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=230: vxxxxx#9 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=231: vxxxxx#9 nsp=1 mass=-400 - -2.400000000000000e+02, -1.800000000000000e+02, // itest=231: vxxxxx#9 nsp=1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=231: vxxxxx#9 nsp=1 mass=-400 - 0.000000000000000e+00, 4.242640687119285e-01, // itest=231: vxxxxx#9 nsp=1 mass=-400 - 0.000000000000000e+00, -5.656854249492381e-01, // itest=231: vxxxxx#9 nsp=1 mass=-400 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=231: vxxxxx#9 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=232: sxxxxx#9 nsp=1 mass=400 - -2.400000000000000e+02, -1.800000000000000e+02, // itest=232: sxxxxx#9 nsp=1 mass=400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=232: sxxxxx#9 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=232: sxxxxx#9 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=232: sxxxxx#9 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=232: sxxxxx#9 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=233: sxxxxx#9 nsp=1 mass=-400 - -2.400000000000000e+02, -1.800000000000000e+02, // itest=233: sxxxxx#9 nsp=1 mass=-400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=233: sxxxxx#9 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=233: sxxxxx#9 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=233: sxxxxx#9 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=233: sxxxxx#9 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=234: oxxxxx#9 nsp=1 mass=400 - -2.400000000000000e+02, -1.800000000000000e+02, // itest=234: oxxxxx#9 nsp=1 mass=400 - 2.000000000000000e+01, 0.000000000000000e+00, // itest=234: oxxxxx#9 nsp=1 mass=400 - -1.600000000000000e+01, 1.200000000000000e+01, // itest=234: oxxxxx#9 nsp=1 mass=400 - 1.000000000000000e+01, 0.000000000000000e+00, // itest=234: oxxxxx#9 nsp=1 mass=400 - -7.999999999999999e+00, 5.999999999999999e+00 } ); // itest=234: oxxxxx#9 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=235: oxxxxx#9 nsp=1 mass=-400 - -2.400000000000000e+02, -1.800000000000000e+02, // itest=235: oxxxxx#9 nsp=1 mass=-400 - 2.000000000000000e+01, 0.000000000000000e+00, // itest=235: oxxxxx#9 nsp=1 mass=-400 - -1.600000000000000e+01, 1.200000000000000e+01, // itest=235: oxxxxx#9 nsp=1 mass=-400 - -1.000000000000000e+01, -0.000000000000000e+00, // itest=235: oxxxxx#9 nsp=1 mass=-400 - 7.999999999999999e+00, -5.999999999999999e+00 } ); // itest=235: oxxxxx#9 nsp=1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -1.440000000000000e+02, // itest=236: ixxxxx#10 nsp=1 mass=400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=236: ixxxxx#10 nsp=1 mass=400 - 1.216552506059644e+01, 0.000000000000000e+00, // itest=236: ixxxxx#10 nsp=1 mass=400 - 4.931969619160719e+00, 5.260767593771432e+00, // itest=236: ixxxxx#10 nsp=1 mass=400 - 2.433105012119288e+01, 0.000000000000000e+00, // itest=236: ixxxxx#10 nsp=1 mass=400 - 9.863939238321439e+00, 1.052153518754287e+01 } ); // itest=236: ixxxxx#10 nsp=1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -1.440000000000000e+02, // itest=237: ixxxxx#10 nsp=1 mass=-400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=237: ixxxxx#10 nsp=1 mass=-400 - -1.216552506059644e+01, -0.000000000000000e+00, // itest=237: ixxxxx#10 nsp=1 mass=-400 - -4.931969619160719e+00, -5.260767593771432e+00, // itest=237: ixxxxx#10 nsp=1 mass=-400 - 2.433105012119288e+01, 0.000000000000000e+00, // itest=237: ixxxxx#10 nsp=1 mass=-400 - 9.863939238321439e+00, 1.052153518754287e+01 } ); // itest=237: ixxxxx#10 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 1.440000000000000e+02, // itest=238: vxxxxx#10 nsp=1 mass=400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=238: vxxxxx#10 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=238: vxxxxx#10 nsp=1 mass=400 - -2.321373168788980e-01, -5.158607041753289e-01, // itest=238: vxxxxx#10 nsp=1 mass=400 - -2.476131380041579e-01, 4.836194101643708e-01, // itest=238: vxxxxx#10 nsp=1 mass=400 - 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=238: vxxxxx#10 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 1.440000000000000e+02, // itest=239: vxxxxx#10 nsp=1 mass=-400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=239: vxxxxx#10 nsp=1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=239: vxxxxx#10 nsp=1 mass=-400 - -2.321373168788980e-01, -5.158607041753289e-01, // itest=239: vxxxxx#10 nsp=1 mass=-400 - -2.476131380041579e-01, 4.836194101643708e-01, // itest=239: vxxxxx#10 nsp=1 mass=-400 - 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=239: vxxxxx#10 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 1.440000000000000e+02, // itest=240: sxxxxx#10 nsp=1 mass=400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=240: sxxxxx#10 nsp=1 mass=400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=240: sxxxxx#10 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=240: sxxxxx#10 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=240: sxxxxx#10 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=240: sxxxxx#10 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 1.440000000000000e+02, // itest=241: sxxxxx#10 nsp=1 mass=-400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=241: sxxxxx#10 nsp=1 mass=-400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=241: sxxxxx#10 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=241: sxxxxx#10 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=241: sxxxxx#10 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=241: sxxxxx#10 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 1.440000000000000e+02, // itest=242: oxxxxx#10 nsp=1 mass=400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=242: oxxxxx#10 nsp=1 mass=400 - 2.433105012119288e+01, 0.000000000000000e+00, // itest=242: oxxxxx#10 nsp=1 mass=400 - 9.863939238321439e+00, -1.052153518754287e+01, // itest=242: oxxxxx#10 nsp=1 mass=400 - 1.216552506059644e+01, 0.000000000000000e+00, // itest=242: oxxxxx#10 nsp=1 mass=400 - 4.931969619160719e+00, -5.260767593771432e+00 } ); // itest=242: oxxxxx#10 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 1.440000000000000e+02, // itest=243: oxxxxx#10 nsp=1 mass=-400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=243: oxxxxx#10 nsp=1 mass=-400 - 2.433105012119288e+01, 0.000000000000000e+00, // itest=243: oxxxxx#10 nsp=1 mass=-400 - 9.863939238321439e+00, -1.052153518754287e+01, // itest=243: oxxxxx#10 nsp=1 mass=-400 - -1.216552506059644e+01, -0.000000000000000e+00, // itest=243: oxxxxx#10 nsp=1 mass=-400 - -4.931969619160719e+00, 5.260767593771432e+00 } ); // itest=243: oxxxxx#10 nsp=1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 1.440000000000000e+02, // itest=244: ixxxxx#11 nsp=1 mass=400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=244: ixxxxx#11 nsp=1 mass=400 - 7.211102550927978e+00, 0.000000000000000e+00, // itest=244: ixxxxx#11 nsp=1 mass=400 - 8.320502943378436e+00, 8.875203139603666e+00, // itest=244: ixxxxx#11 nsp=1 mass=400 - 1.442220510185596e+01, 0.000000000000000e+00, // itest=244: ixxxxx#11 nsp=1 mass=400 - 1.664100588675688e+01, 1.775040627920733e+01 } ); // itest=244: ixxxxx#11 nsp=1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 1.440000000000000e+02, // itest=245: ixxxxx#11 nsp=1 mass=-400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=245: ixxxxx#11 nsp=1 mass=-400 - -7.211102550927978e+00, -0.000000000000000e+00, // itest=245: ixxxxx#11 nsp=1 mass=-400 - -8.320502943378436e+00, -8.875203139603666e+00, // itest=245: ixxxxx#11 nsp=1 mass=-400 - 1.442220510185596e+01, 0.000000000000000e+00, // itest=245: ixxxxx#11 nsp=1 mass=-400 - 1.664100588675688e+01, 1.775040627920733e+01 } ); // itest=245: ixxxxx#11 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -1.440000000000000e+02, // itest=246: vxxxxx#11 nsp=1 mass=400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=246: vxxxxx#11 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=246: vxxxxx#11 nsp=1 mass=400 - 2.321373168788980e-01, -5.158607041753289e-01, // itest=246: vxxxxx#11 nsp=1 mass=400 - 2.476131380041579e-01, 4.836194101643708e-01, // itest=246: vxxxxx#11 nsp=1 mass=400 - 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=246: vxxxxx#11 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -1.440000000000000e+02, // itest=247: vxxxxx#11 nsp=1 mass=-400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=247: vxxxxx#11 nsp=1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=247: vxxxxx#11 nsp=1 mass=-400 - 2.321373168788980e-01, -5.158607041753289e-01, // itest=247: vxxxxx#11 nsp=1 mass=-400 - 2.476131380041579e-01, 4.836194101643708e-01, // itest=247: vxxxxx#11 nsp=1 mass=-400 - 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=247: vxxxxx#11 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -1.440000000000000e+02, // itest=248: sxxxxx#11 nsp=1 mass=400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=248: sxxxxx#11 nsp=1 mass=400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=248: sxxxxx#11 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=248: sxxxxx#11 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=248: sxxxxx#11 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=248: sxxxxx#11 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -1.440000000000000e+02, // itest=249: sxxxxx#11 nsp=1 mass=-400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=249: sxxxxx#11 nsp=1 mass=-400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=249: sxxxxx#11 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=249: sxxxxx#11 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=249: sxxxxx#11 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=249: sxxxxx#11 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -1.440000000000000e+02, // itest=250: oxxxxx#11 nsp=1 mass=400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=250: oxxxxx#11 nsp=1 mass=400 - 1.442220510185596e+01, 0.000000000000000e+00, // itest=250: oxxxxx#11 nsp=1 mass=400 - 1.664100588675688e+01, -1.775040627920733e+01, // itest=250: oxxxxx#11 nsp=1 mass=400 - 7.211102550927978e+00, 0.000000000000000e+00, // itest=250: oxxxxx#11 nsp=1 mass=400 - 8.320502943378436e+00, -8.875203139603666e+00 } ); // itest=250: oxxxxx#11 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -1.440000000000000e+02, // itest=251: oxxxxx#11 nsp=1 mass=-400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=251: oxxxxx#11 nsp=1 mass=-400 - 1.442220510185596e+01, 0.000000000000000e+00, // itest=251: oxxxxx#11 nsp=1 mass=-400 - 1.664100588675688e+01, -1.775040627920733e+01, // itest=251: oxxxxx#11 nsp=1 mass=-400 - -7.211102550927978e+00, -0.000000000000000e+00, // itest=251: oxxxxx#11 nsp=1 mass=-400 - -8.320502943378436e+00, 8.875203139603666e+00 } ); // itest=251: oxxxxx#11 nsp=1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=252: ixxxxx#12 nsp=1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=252: ixxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=252: ixxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=252: ixxxxx#12 nsp=1 mass=0 - 3.162277660168379e+01, 0.000000000000000e+00, // itest=252: ixxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=252: ixxxxx#12 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=253: ixxxxx#12 nsp=1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=253: ixxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=253: ixxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=253: ixxxxx#12 nsp=1 mass=0 - 3.162277660168379e+01, 0.000000000000000e+00, // itest=253: ixxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=253: ixxxxx#12 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=254: ipzxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=254: ipzxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=254: ipzxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=254: ipzxxx#12 nsp=1 mass=0 - 3.162277660168379e+01, 0.000000000000000e+00, // itest=254: ipzxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=254: ipzxxx#12 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=255: vxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=255: vxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=255: vxxxxx#12 nsp=1 mass=0 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=255: vxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 7.071067811865476e-01, // itest=255: vxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=255: vxxxxx#12 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=256: vxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=256: vxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=256: vxxxxx#12 nsp=1 mass=0 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=256: vxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 7.071067811865476e-01, // itest=256: vxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=256: vxxxxx#12 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=257: sxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=257: sxxxxx#12 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=257: sxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=257: sxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=257: sxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=257: sxxxxx#12 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=258: sxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=258: sxxxxx#12 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=258: sxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=258: sxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=258: sxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=258: sxxxxx#12 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=259: oxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=259: oxxxxx#12 nsp=1 mass=0 - 3.162277660168379e+01, 0.000000000000000e+00, // itest=259: oxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=259: oxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=259: oxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=259: oxxxxx#12 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=260: oxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=260: oxxxxx#12 nsp=1 mass=0 - 3.162277660168379e+01, 0.000000000000000e+00, // itest=260: oxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=260: oxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=260: oxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=260: oxxxxx#12 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=261: opzxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=261: opzxxx#12 nsp=1 mass=0 - 3.162277660168379e+01, 0.000000000000000e+00, // itest=261: opzxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=261: opzxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=261: opzxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=261: opzxxx#12 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=262: ixxxxx#13 nsp=1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=262: ixxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=262: ixxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=262: ixxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=262: ixxxxx#13 nsp=1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=262: ixxxxx#13 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=263: ixxxxx#13 nsp=1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=263: ixxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=263: ixxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=263: ixxxxx#13 nsp=1 mass=0 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=263: ixxxxx#13 nsp=1 mass=0 - -3.162277660168379e+01, -0.000000000000000e+00 } ); // itest=263: ixxxxx#13 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=264: imzxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=264: imzxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=264: imzxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=264: imzxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=264: imzxxx#13 nsp=1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=264: imzxxx#13 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=265: vxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=265: vxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=265: vxxxxx#13 nsp=1 mass=0 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=265: vxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, -7.071067811865476e-01, // itest=265: vxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=265: vxxxxx#13 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=266: vxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=266: vxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=266: vxxxxx#13 nsp=1 mass=0 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=266: vxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, -7.071067811865476e-01, // itest=266: vxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=266: vxxxxx#13 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=267: sxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=267: sxxxxx#13 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=267: sxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=267: sxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=267: sxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=267: sxxxxx#13 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=268: sxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=268: sxxxxx#13 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=268: sxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=268: sxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=268: sxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=268: sxxxxx#13 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=269: oxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=269: oxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=269: oxxxxx#13 nsp=1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00, // itest=269: oxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=269: oxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=269: oxxxxx#13 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=270: oxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=270: oxxxxx#13 nsp=1 mass=0 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=270: oxxxxx#13 nsp=1 mass=0 - -3.162277660168379e+01, -0.000000000000000e+00, // itest=270: oxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=270: oxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=270: oxxxxx#13 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=271: omzxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=271: omzxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=271: omzxxx#13 nsp=1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00, // itest=271: omzxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=271: omzxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=271: omzxxx#13 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=272: ixxxxx#14 nsp=1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=272: ixxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=272: ixxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=272: ixxxxx#14 nsp=1 mass=0 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=272: ixxxxx#14 nsp=1 mass=0 - 1.341640786499874e+01, 1.788854381999832e+01 } ); // itest=272: ixxxxx#14 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=273: ixxxxx#14 nsp=1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=273: ixxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=273: ixxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=273: ixxxxx#14 nsp=1 mass=0 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=273: ixxxxx#14 nsp=1 mass=0 - 1.341640786499874e+01, 1.788854381999832e+01 } ); // itest=273: ixxxxx#14 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=274: ixzxxx#14 nsp=1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=274: ixzxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=274: ixzxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=274: ixzxxx#14 nsp=1 mass=0 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=274: ixzxxx#14 nsp=1 mass=0 - 1.341640786499874e+01, 1.788854381999832e+01 } ); // itest=274: ixzxxx#14 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=275: vxxxxx#14 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=275: vxxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=275: vxxxxx#14 nsp=1 mass=0 - -0.000000000000000e+00, -5.656854249492381e-01, // itest=275: vxxxxx#14 nsp=1 mass=0 - -0.000000000000000e+00, 4.242640687119285e-01, // itest=275: vxxxxx#14 nsp=1 mass=0 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=275: vxxxxx#14 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=276: vxxxxx#14 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=276: vxxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=276: vxxxxx#14 nsp=1 mass=0 - -0.000000000000000e+00, -5.656854249492381e-01, // itest=276: vxxxxx#14 nsp=1 mass=0 - -0.000000000000000e+00, 4.242640687119285e-01, // itest=276: vxxxxx#14 nsp=1 mass=0 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=276: vxxxxx#14 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=277: sxxxxx#14 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=277: sxxxxx#14 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=277: sxxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=277: sxxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=277: sxxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=277: sxxxxx#14 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=278: sxxxxx#14 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=278: sxxxxx#14 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=278: sxxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=278: sxxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=278: sxxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=278: sxxxxx#14 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=279: oxxxxx#14 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=279: oxxxxx#14 nsp=1 mass=0 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=279: oxxxxx#14 nsp=1 mass=0 - 1.341640786499874e+01, -1.788854381999832e+01, // itest=279: oxxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=279: oxxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=279: oxxxxx#14 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=280: oxxxxx#14 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=280: oxxxxx#14 nsp=1 mass=0 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=280: oxxxxx#14 nsp=1 mass=0 - 1.341640786499874e+01, -1.788854381999832e+01, // itest=280: oxxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=280: oxxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=280: oxxxxx#14 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=281: oxzxxx#14 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=281: oxzxxx#14 nsp=1 mass=0 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=281: oxzxxx#14 nsp=1 mass=0 - 1.341640786499874e+01, -1.788854381999832e+01, // itest=281: oxzxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=281: oxzxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=281: oxzxxx#14 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=282: ixxxxx#15 nsp=1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=282: ixxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=282: ixxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=282: ixxxxx#15 nsp=1 mass=0 - 3.000000000000000e+01, 0.000000000000000e+00, // itest=282: ixxxxx#15 nsp=1 mass=0 - 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=282: ixxxxx#15 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=283: ixxxxx#15 nsp=1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=283: ixxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=283: ixxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=283: ixxxxx#15 nsp=1 mass=0 - 3.000000000000000e+01, 0.000000000000000e+00, // itest=283: ixxxxx#15 nsp=1 mass=0 - 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=283: ixxxxx#15 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=284: ixzxxx#15 nsp=1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=284: ixzxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=284: ixzxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=284: ixzxxx#15 nsp=1 mass=0 - 3.000000000000000e+01, 0.000000000000000e+00, // itest=284: ixzxxx#15 nsp=1 mass=0 - 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=284: ixzxxx#15 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=285: vxxxxx#15 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=285: vxxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=285: vxxxxx#15 nsp=1 mass=0 - -3.394112549695428e-01, -5.656854249492381e-01, // itest=285: vxxxxx#15 nsp=1 mass=0 - -4.525483399593904e-01, 4.242640687119285e-01, // itest=285: vxxxxx#15 nsp=1 mass=0 - 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=285: vxxxxx#15 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=286: vxxxxx#15 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=286: vxxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=286: vxxxxx#15 nsp=1 mass=0 - -3.394112549695428e-01, -5.656854249492381e-01, // itest=286: vxxxxx#15 nsp=1 mass=0 - -4.525483399593904e-01, 4.242640687119285e-01, // itest=286: vxxxxx#15 nsp=1 mass=0 - 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=286: vxxxxx#15 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=287: sxxxxx#15 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=287: sxxxxx#15 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=287: sxxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=287: sxxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=287: sxxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=287: sxxxxx#15 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=288: sxxxxx#15 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=288: sxxxxx#15 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=288: sxxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=288: sxxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=288: sxxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=288: sxxxxx#15 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=289: oxxxxx#15 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=289: oxxxxx#15 nsp=1 mass=0 - 3.000000000000000e+01, 0.000000000000000e+00, // itest=289: oxxxxx#15 nsp=1 mass=0 - 6.000000000000000e+00, -8.000000000000000e+00, // itest=289: oxxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=289: oxxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=289: oxxxxx#15 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=290: oxxxxx#15 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=290: oxxxxx#15 nsp=1 mass=0 - 3.000000000000000e+01, 0.000000000000000e+00, // itest=290: oxxxxx#15 nsp=1 mass=0 - 6.000000000000000e+00, -8.000000000000000e+00, // itest=290: oxxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=290: oxxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=290: oxxxxx#15 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=291: oxzxxx#15 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=291: oxzxxx#15 nsp=1 mass=0 - 3.000000000000000e+01, 0.000000000000000e+00, // itest=291: oxzxxx#15 nsp=1 mass=0 - 6.000000000000000e+00, -8.000000000000000e+00, // itest=291: oxzxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=291: oxzxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=291: oxzxxx#15 nsp=1 mass=0 + 5.000000000000000e+02, 5.000000000000000e+02, // itest=50: ixxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=50: ixxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=50: ixxxxx#5 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=50: ixxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=50: ixxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=50: ixxxxx#5 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=51: ixxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=51: ixxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=51: ixxxxx#5 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=51: ixxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=51: ixxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=51: ixxxxx#5 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=52: ipzxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=52: ipzxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=52: ipzxxx#5 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=52: ipzxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=52: ipzxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=52: ipzxxx#5 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=53: vxxxxx#5 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=53: vxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=53: vxxxxx#5 nsp=-1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=53: vxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=53: vxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=53: vxxxxx#5 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=54: vxxxxx#5 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=54: vxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=54: vxxxxx#5 nsp=-1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=54: vxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=54: vxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=54: vxxxxx#5 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=55: sxxxxx#5 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=55: sxxxxx#5 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=55: sxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=55: sxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=55: sxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=55: sxxxxx#5 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=56: sxxxxx#5 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=56: sxxxxx#5 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=56: sxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=56: sxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=56: sxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=56: sxxxxx#5 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=57: oxxxxx#5 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=57: oxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=57: oxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=57: oxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=57: oxxxxx#5 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=57: oxxxxx#5 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=58: oxxxxx#5 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=58: oxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=58: oxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=58: oxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=58: oxxxxx#5 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=58: oxxxxx#5 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=59: opzxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=59: opzxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=59: opzxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=59: opzxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=59: opzxxx#5 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=59: opzxxx#5 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=60: ixxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=60: ixxxxx#6 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=60: ixxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=60: ixxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=60: ixxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=60: ixxxxx#6 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=61: ixxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=61: ixxxxx#6 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=61: ixxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=61: ixxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=61: ixxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=61: ixxxxx#6 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=62: imzxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=62: imzxxx#6 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=62: imzxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=62: imzxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=62: imzxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=62: imzxxx#6 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=63: vxxxxx#6 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=63: vxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=63: vxxxxx#6 nsp=-1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=63: vxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=63: vxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=63: vxxxxx#6 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=64: vxxxxx#6 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=64: vxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=64: vxxxxx#6 nsp=-1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=64: vxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=64: vxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=64: vxxxxx#6 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=65: sxxxxx#6 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=65: sxxxxx#6 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=65: sxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=65: sxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=65: sxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=65: sxxxxx#6 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=66: sxxxxx#6 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=66: sxxxxx#6 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=66: sxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=66: sxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=66: sxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=66: sxxxxx#6 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=67: oxxxxx#6 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=67: oxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=67: oxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=67: oxxxxx#6 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=67: oxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=67: oxxxxx#6 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=68: oxxxxx#6 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=68: oxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=68: oxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=68: oxxxxx#6 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=68: oxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=68: oxxxxx#6 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=69: omzxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=69: omzxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=69: omzxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=69: omzxxx#6 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=69: omzxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=69: omzxxx#6 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=70: ixxxxx#7 nsp=-1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=70: ixxxxx#7 nsp=-1 mass=0 + 1.341640786499874e+01, -1.788854381999831e+01, // itest=70: ixxxxx#7 nsp=-1 mass=0 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=70: ixxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=70: ixxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=70: ixxxxx#7 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=71: ixxxxx#7 nsp=-1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=71: ixxxxx#7 nsp=-1 mass=0 + 1.341640786499874e+01, -1.788854381999831e+01, // itest=71: ixxxxx#7 nsp=-1 mass=0 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=71: ixxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=71: ixxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=71: ixxxxx#7 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=72: ixzxxx#7 nsp=-1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=72: ixzxxx#7 nsp=-1 mass=0 + 1.341640786499874e+01, -1.788854381999832e+01, // itest=72: ixzxxx#7 nsp=-1 mass=0 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=72: ixzxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=72: ixzxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=72: ixzxxx#7 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=73: vxxxxx#7 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=73: vxxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=73: vxxxxx#7 nsp=-1 mass=0 + -0.000000000000000e+00, 5.656854249492381e-01, // itest=73: vxxxxx#7 nsp=-1 mass=0 + -0.000000000000000e+00, -4.242640687119285e-01, // itest=73: vxxxxx#7 nsp=-1 mass=0 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=73: vxxxxx#7 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=74: vxxxxx#7 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=74: vxxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=74: vxxxxx#7 nsp=-1 mass=0 + -0.000000000000000e+00, 5.656854249492381e-01, // itest=74: vxxxxx#7 nsp=-1 mass=0 + -0.000000000000000e+00, -4.242640687119285e-01, // itest=74: vxxxxx#7 nsp=-1 mass=0 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=74: vxxxxx#7 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=75: sxxxxx#7 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=75: sxxxxx#7 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=75: sxxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=75: sxxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=75: sxxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=75: sxxxxx#7 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=76: sxxxxx#7 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=76: sxxxxx#7 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=76: sxxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=76: sxxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=76: sxxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=76: sxxxxx#7 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=77: oxxxxx#7 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=77: oxxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=77: oxxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=77: oxxxxx#7 nsp=-1 mass=0 + 1.341640786499874e+01, 1.788854381999831e+01, // itest=77: oxxxxx#7 nsp=-1 mass=0 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=77: oxxxxx#7 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=78: oxxxxx#7 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=78: oxxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=78: oxxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=78: oxxxxx#7 nsp=-1 mass=0 + 1.341640786499874e+01, 1.788854381999831e+01, // itest=78: oxxxxx#7 nsp=-1 mass=0 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=78: oxxxxx#7 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=79: oxzxxx#7 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=79: oxzxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=79: oxzxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=79: oxzxxx#7 nsp=-1 mass=0 + 1.341640786499874e+01, 1.788854381999832e+01, // itest=79: oxzxxx#7 nsp=-1 mass=0 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=79: oxzxxx#7 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=80: ixxxxx#8 nsp=-1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=80: ixxxxx#8 nsp=-1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=80: ixxxxx#8 nsp=-1 mass=0 + -3.000000000000000e+01, 0.000000000000000e+00, // itest=80: ixxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=80: ixxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=80: ixxxxx#8 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=81: ixxxxx#8 nsp=-1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=81: ixxxxx#8 nsp=-1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=81: ixxxxx#8 nsp=-1 mass=0 + -3.000000000000000e+01, 0.000000000000000e+00, // itest=81: ixxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=81: ixxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=81: ixxxxx#8 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=82: ixzxxx#8 nsp=-1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=82: ixzxxx#8 nsp=-1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=82: ixzxxx#8 nsp=-1 mass=0 + -3.000000000000000e+01, 0.000000000000000e+00, // itest=82: ixzxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=82: ixzxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=82: ixzxxx#8 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=83: vxxxxx#8 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=83: vxxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=83: vxxxxx#8 nsp=-1 mass=0 + -3.394112549695428e-01, 5.656854249492381e-01, // itest=83: vxxxxx#8 nsp=-1 mass=0 + -4.525483399593904e-01, -4.242640687119285e-01, // itest=83: vxxxxx#8 nsp=-1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=83: vxxxxx#8 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=84: vxxxxx#8 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=84: vxxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=84: vxxxxx#8 nsp=-1 mass=0 + -3.394112549695428e-01, 5.656854249492381e-01, // itest=84: vxxxxx#8 nsp=-1 mass=0 + -4.525483399593904e-01, -4.242640687119285e-01, // itest=84: vxxxxx#8 nsp=-1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=84: vxxxxx#8 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=85: sxxxxx#8 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=85: sxxxxx#8 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=85: sxxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=85: sxxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=85: sxxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=85: sxxxxx#8 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=86: sxxxxx#8 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=86: sxxxxx#8 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=86: sxxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=86: sxxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=86: sxxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=86: sxxxxx#8 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=87: oxxxxx#8 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=87: oxxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=87: oxxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=87: oxxxxx#8 nsp=-1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00, // itest=87: oxxxxx#8 nsp=-1 mass=0 + -3.000000000000000e+01, 0.000000000000000e+00 } ); // itest=87: oxxxxx#8 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=88: oxxxxx#8 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=88: oxxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=88: oxxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=88: oxxxxx#8 nsp=-1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00, // itest=88: oxxxxx#8 nsp=-1 mass=0 + -3.000000000000000e+01, 0.000000000000000e+00 } ); // itest=88: oxxxxx#8 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=89: oxzxxx#8 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=89: oxzxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=89: oxzxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=89: oxzxxx#8 nsp=-1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00, // itest=89: oxzxxx#8 nsp=-1 mass=0 + -3.000000000000000e+01, 0.000000000000000e+00 } ); // itest=89: oxzxxx#8 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=90: ixxxxx#9 nsp=-1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=90: ixxxxx#9 nsp=-1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=90: ixxxxx#9 nsp=-1 mass=0 + -1.000000000000000e+01, 0.000000000000000e+00, // itest=90: ixxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=90: ixxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=90: ixxxxx#9 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=91: ixxxxx#9 nsp=-1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=91: ixxxxx#9 nsp=-1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=91: ixxxxx#9 nsp=-1 mass=0 + -1.000000000000000e+01, 0.000000000000000e+00, // itest=91: ixxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=91: ixxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=91: ixxxxx#9 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=92: ixzxxx#9 nsp=-1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=92: ixzxxx#9 nsp=-1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=92: ixzxxx#9 nsp=-1 mass=0 + -1.000000000000000e+01, 0.000000000000000e+00, // itest=92: ixzxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=92: ixzxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=92: ixzxxx#9 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=93: vxxxxx#9 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=93: vxxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=93: vxxxxx#9 nsp=-1 mass=0 + 3.394112549695428e-01, 5.656854249492381e-01, // itest=93: vxxxxx#9 nsp=-1 mass=0 + 4.525483399593904e-01, -4.242640687119285e-01, // itest=93: vxxxxx#9 nsp=-1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=93: vxxxxx#9 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=94: vxxxxx#9 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=94: vxxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=94: vxxxxx#9 nsp=-1 mass=0 + 3.394112549695428e-01, 5.656854249492381e-01, // itest=94: vxxxxx#9 nsp=-1 mass=0 + 4.525483399593904e-01, -4.242640687119285e-01, // itest=94: vxxxxx#9 nsp=-1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=94: vxxxxx#9 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=95: sxxxxx#9 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=95: sxxxxx#9 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=95: sxxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=95: sxxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=95: sxxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=95: sxxxxx#9 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=96: sxxxxx#9 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=96: sxxxxx#9 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=96: sxxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=96: sxxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=96: sxxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=96: sxxxxx#9 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=97: oxxxxx#9 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=97: oxxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=97: oxxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=97: oxxxxx#9 nsp=-1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01, // itest=97: oxxxxx#9 nsp=-1 mass=0 + -1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=97: oxxxxx#9 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=98: oxxxxx#9 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=98: oxxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=98: oxxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=98: oxxxxx#9 nsp=-1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01, // itest=98: oxxxxx#9 nsp=-1 mass=0 + -1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=98: oxxxxx#9 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=99: oxzxxx#9 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=99: oxzxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=99: oxzxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=99: oxzxxx#9 nsp=-1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01, // itest=99: oxzxxx#9 nsp=-1 mass=0 + -1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=99: oxzxxx#9 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=100: ixxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=100: ixxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=100: ixxxxx#10 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=100: ixxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=100: ixxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=100: ixxxxx#10 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=101: ixxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=101: ixxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=101: ixxxxx#10 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=101: ixxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=101: ixxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=101: ixxxxx#10 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=102: ipzxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=102: ipzxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=102: ipzxxx#10 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=102: ipzxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=102: ipzxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=102: ipzxxx#10 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=103: vxxxxx#10 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=103: vxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=103: vxxxxx#10 nsp=-1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=103: vxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=103: vxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=103: vxxxxx#10 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=104: vxxxxx#10 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=104: vxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=104: vxxxxx#10 nsp=-1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=104: vxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=104: vxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=104: vxxxxx#10 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=105: sxxxxx#10 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=105: sxxxxx#10 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=105: sxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=105: sxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=105: sxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=105: sxxxxx#10 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=106: sxxxxx#10 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=106: sxxxxx#10 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=106: sxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=106: sxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=106: sxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=106: sxxxxx#10 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=107: oxxxxx#10 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=107: oxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=107: oxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=107: oxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=107: oxxxxx#10 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=107: oxxxxx#10 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=108: oxxxxx#10 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=108: oxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=108: oxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=108: oxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=108: oxxxxx#10 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=108: oxxxxx#10 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=109: opzxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=109: opzxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=109: opzxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=109: opzxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=109: opzxxx#10 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=109: opzxxx#10 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=110: ixxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=110: ixxxxx#11 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=110: ixxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=110: ixxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=110: ixxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=110: ixxxxx#11 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=111: ixxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=111: ixxxxx#11 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=111: ixxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=111: ixxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=111: ixxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=111: ixxxxx#11 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=112: imzxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=112: imzxxx#11 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=112: imzxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=112: imzxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=112: imzxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=112: imzxxx#11 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=113: vxxxxx#11 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=113: vxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=113: vxxxxx#11 nsp=-1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=113: vxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=113: vxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=113: vxxxxx#11 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=114: vxxxxx#11 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=114: vxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=114: vxxxxx#11 nsp=-1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=114: vxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=114: vxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=114: vxxxxx#11 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=115: sxxxxx#11 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=115: sxxxxx#11 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=115: sxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=115: sxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=115: sxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=115: sxxxxx#11 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=116: sxxxxx#11 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=116: sxxxxx#11 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=116: sxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=116: sxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=116: sxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=116: sxxxxx#11 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=117: oxxxxx#11 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=117: oxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=117: oxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=117: oxxxxx#11 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=117: oxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=117: oxxxxx#11 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=118: oxxxxx#11 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=118: oxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=118: oxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=118: oxxxxx#11 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=118: oxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=118: oxxxxx#11 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=119: omzxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=119: omzxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=119: omzxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=119: omzxxx#11 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=119: omzxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=119: omzxxx#11 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=120: ixxxxx#12 nsp=-1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=120: ixxxxx#12 nsp=-1 mass=0 + 1.341640786499874e+01, -1.788854381999831e+01, // itest=120: ixxxxx#12 nsp=-1 mass=0 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=120: ixxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=120: ixxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=120: ixxxxx#12 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=121: ixxxxx#12 nsp=-1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=121: ixxxxx#12 nsp=-1 mass=0 + 1.341640786499874e+01, -1.788854381999831e+01, // itest=121: ixxxxx#12 nsp=-1 mass=0 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=121: ixxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=121: ixxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=121: ixxxxx#12 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=122: ixzxxx#12 nsp=-1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=122: ixzxxx#12 nsp=-1 mass=0 + 1.341640786499874e+01, -1.788854381999832e+01, // itest=122: ixzxxx#12 nsp=-1 mass=0 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=122: ixzxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=122: ixzxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=122: ixzxxx#12 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=123: vxxxxx#12 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=123: vxxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=123: vxxxxx#12 nsp=-1 mass=0 + -0.000000000000000e+00, 5.656854249492381e-01, // itest=123: vxxxxx#12 nsp=-1 mass=0 + -0.000000000000000e+00, -4.242640687119285e-01, // itest=123: vxxxxx#12 nsp=-1 mass=0 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=123: vxxxxx#12 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=124: vxxxxx#12 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=124: vxxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=124: vxxxxx#12 nsp=-1 mass=0 + -0.000000000000000e+00, 5.656854249492381e-01, // itest=124: vxxxxx#12 nsp=-1 mass=0 + -0.000000000000000e+00, -4.242640687119285e-01, // itest=124: vxxxxx#12 nsp=-1 mass=0 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=124: vxxxxx#12 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=125: sxxxxx#12 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=125: sxxxxx#12 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=125: sxxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=125: sxxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=125: sxxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=125: sxxxxx#12 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=126: sxxxxx#12 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=126: sxxxxx#12 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=126: sxxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=126: sxxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=126: sxxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=126: sxxxxx#12 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=127: oxxxxx#12 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=127: oxxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=127: oxxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=127: oxxxxx#12 nsp=-1 mass=0 + 1.341640786499874e+01, 1.788854381999831e+01, // itest=127: oxxxxx#12 nsp=-1 mass=0 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=127: oxxxxx#12 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=128: oxxxxx#12 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=128: oxxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=128: oxxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=128: oxxxxx#12 nsp=-1 mass=0 + 1.341640786499874e+01, 1.788854381999831e+01, // itest=128: oxxxxx#12 nsp=-1 mass=0 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=128: oxxxxx#12 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=129: oxzxxx#12 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=129: oxzxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=129: oxzxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=129: oxzxxx#12 nsp=-1 mass=0 + 1.341640786499874e+01, 1.788854381999832e+01, // itest=129: oxzxxx#12 nsp=-1 mass=0 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=129: oxzxxx#12 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=130: ixxxxx#13 nsp=-1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=130: ixxxxx#13 nsp=-1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=130: ixxxxx#13 nsp=-1 mass=0 + -3.000000000000000e+01, 0.000000000000000e+00, // itest=130: ixxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=130: ixxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=130: ixxxxx#13 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=131: ixxxxx#13 nsp=-1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=131: ixxxxx#13 nsp=-1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=131: ixxxxx#13 nsp=-1 mass=0 + -3.000000000000000e+01, 0.000000000000000e+00, // itest=131: ixxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=131: ixxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=131: ixxxxx#13 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=132: ixzxxx#13 nsp=-1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=132: ixzxxx#13 nsp=-1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=132: ixzxxx#13 nsp=-1 mass=0 + -3.000000000000000e+01, 0.000000000000000e+00, // itest=132: ixzxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=132: ixzxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=132: ixzxxx#13 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=133: vxxxxx#13 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=133: vxxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=133: vxxxxx#13 nsp=-1 mass=0 + -3.394112549695428e-01, 5.656854249492381e-01, // itest=133: vxxxxx#13 nsp=-1 mass=0 + -4.525483399593904e-01, -4.242640687119285e-01, // itest=133: vxxxxx#13 nsp=-1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=133: vxxxxx#13 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=134: vxxxxx#13 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=134: vxxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=134: vxxxxx#13 nsp=-1 mass=0 + -3.394112549695428e-01, 5.656854249492381e-01, // itest=134: vxxxxx#13 nsp=-1 mass=0 + -4.525483399593904e-01, -4.242640687119285e-01, // itest=134: vxxxxx#13 nsp=-1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=134: vxxxxx#13 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=135: sxxxxx#13 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=135: sxxxxx#13 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=135: sxxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=135: sxxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=135: sxxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=135: sxxxxx#13 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=136: sxxxxx#13 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=136: sxxxxx#13 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=136: sxxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=136: sxxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=136: sxxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=136: sxxxxx#13 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=137: oxxxxx#13 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=137: oxxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=137: oxxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=137: oxxxxx#13 nsp=-1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00, // itest=137: oxxxxx#13 nsp=-1 mass=0 + -3.000000000000000e+01, 0.000000000000000e+00 } ); // itest=137: oxxxxx#13 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=138: oxxxxx#13 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=138: oxxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=138: oxxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=138: oxxxxx#13 nsp=-1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00, // itest=138: oxxxxx#13 nsp=-1 mass=0 + -3.000000000000000e+01, 0.000000000000000e+00 } ); // itest=138: oxxxxx#13 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=139: oxzxxx#13 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=139: oxzxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=139: oxzxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=139: oxzxxx#13 nsp=-1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00, // itest=139: oxzxxx#13 nsp=-1 mass=0 + -3.000000000000000e+01, 0.000000000000000e+00 } ); // itest=139: oxzxxx#13 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=140: ixxxxx#14 nsp=-1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=140: ixxxxx#14 nsp=-1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=140: ixxxxx#14 nsp=-1 mass=0 + -1.000000000000000e+01, 0.000000000000000e+00, // itest=140: ixxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=140: ixxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=140: ixxxxx#14 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=141: ixxxxx#14 nsp=-1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=141: ixxxxx#14 nsp=-1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=141: ixxxxx#14 nsp=-1 mass=0 + -1.000000000000000e+01, 0.000000000000000e+00, // itest=141: ixxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=141: ixxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=141: ixxxxx#14 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=142: ixzxxx#14 nsp=-1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=142: ixzxxx#14 nsp=-1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=142: ixzxxx#14 nsp=-1 mass=0 + -1.000000000000000e+01, 0.000000000000000e+00, // itest=142: ixzxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=142: ixzxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=142: ixzxxx#14 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=143: vxxxxx#14 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=143: vxxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=143: vxxxxx#14 nsp=-1 mass=0 + 3.394112549695428e-01, 5.656854249492381e-01, // itest=143: vxxxxx#14 nsp=-1 mass=0 + 4.525483399593904e-01, -4.242640687119285e-01, // itest=143: vxxxxx#14 nsp=-1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=143: vxxxxx#14 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=144: vxxxxx#14 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=144: vxxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=144: vxxxxx#14 nsp=-1 mass=0 + 3.394112549695428e-01, 5.656854249492381e-01, // itest=144: vxxxxx#14 nsp=-1 mass=0 + 4.525483399593904e-01, -4.242640687119285e-01, // itest=144: vxxxxx#14 nsp=-1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=144: vxxxxx#14 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=145: sxxxxx#14 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=145: sxxxxx#14 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=145: sxxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=145: sxxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=145: sxxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=145: sxxxxx#14 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=146: sxxxxx#14 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=146: sxxxxx#14 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=146: sxxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=146: sxxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=146: sxxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=146: sxxxxx#14 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=147: oxxxxx#14 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=147: oxxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=147: oxxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=147: oxxxxx#14 nsp=-1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01, // itest=147: oxxxxx#14 nsp=-1 mass=0 + -1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=147: oxxxxx#14 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=148: oxxxxx#14 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=148: oxxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=148: oxxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=148: oxxxxx#14 nsp=-1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01, // itest=148: oxxxxx#14 nsp=-1 mass=0 + -1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=148: oxxxxx#14 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=149: oxzxxx#14 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=149: oxzxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=149: oxzxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=149: oxzxxx#14 nsp=-1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01, // itest=149: oxzxxx#14 nsp=-1 mass=0 + -1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=149: oxzxxx#14 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=150: ixxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=150: ixxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=150: ixxxxx#15 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=150: ixxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=150: ixxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=150: ixxxxx#15 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=151: ixxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=151: ixxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=151: ixxxxx#15 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=151: ixxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=151: ixxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=151: ixxxxx#15 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=152: ipzxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=152: ipzxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=152: ipzxxx#15 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=152: ipzxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=152: ipzxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=152: ipzxxx#15 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=153: vxxxxx#15 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=153: vxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=153: vxxxxx#15 nsp=-1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=153: vxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=153: vxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=153: vxxxxx#15 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=154: vxxxxx#15 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=154: vxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=154: vxxxxx#15 nsp=-1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=154: vxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=154: vxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=154: vxxxxx#15 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=155: sxxxxx#15 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=155: sxxxxx#15 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=155: sxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=155: sxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=155: sxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=155: sxxxxx#15 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=156: sxxxxx#15 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=156: sxxxxx#15 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=156: sxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=156: sxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=156: sxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=156: sxxxxx#15 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=157: oxxxxx#15 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=157: oxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=157: oxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=157: oxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=157: oxxxxx#15 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=157: oxxxxx#15 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=158: oxxxxx#15 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=158: oxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=158: oxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=158: oxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=158: oxxxxx#15 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=158: oxxxxx#15 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=159: opzxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=159: opzxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=159: opzxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=159: opzxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=159: opzxxx#15 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=159: opzxxx#15 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=160: ixxxxx#16 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=160: ixxxxx#16 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=160: ixxxxx#16 nsp=-1 mass=500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=160: ixxxxx#16 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=160: ixxxxx#16 nsp=-1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=160: ixxxxx#16 nsp=-1 mass=500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=161: ixxxxx#16 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=161: ixxxxx#16 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=161: ixxxxx#16 nsp=-1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=161: ixxxxx#16 nsp=-1 mass=-500 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=161: ixxxxx#16 nsp=-1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=161: ixxxxx#16 nsp=-1 mass=-500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=162: vxxxxx#16 nsp=-1 mass=500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=162: vxxxxx#16 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=162: vxxxxx#16 nsp=-1 mass=500 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=162: vxxxxx#16 nsp=-1 mass=500 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=162: vxxxxx#16 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=162: vxxxxx#16 nsp=-1 mass=500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=163: vxxxxx#16 nsp=-1 mass=-500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=163: vxxxxx#16 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=163: vxxxxx#16 nsp=-1 mass=-500 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=163: vxxxxx#16 nsp=-1 mass=-500 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=163: vxxxxx#16 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=163: vxxxxx#16 nsp=-1 mass=-500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=164: sxxxxx#16 nsp=-1 mass=500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=164: sxxxxx#16 nsp=-1 mass=500 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=164: sxxxxx#16 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=164: sxxxxx#16 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=164: sxxxxx#16 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=164: sxxxxx#16 nsp=-1 mass=500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=165: sxxxxx#16 nsp=-1 mass=-500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=165: sxxxxx#16 nsp=-1 mass=-500 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=165: sxxxxx#16 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=165: sxxxxx#16 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=165: sxxxxx#16 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=165: sxxxxx#16 nsp=-1 mass=-500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=166: oxxxxx#16 nsp=-1 mass=500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=166: oxxxxx#16 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=166: oxxxxx#16 nsp=-1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=166: oxxxxx#16 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=166: oxxxxx#16 nsp=-1 mass=500 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=166: oxxxxx#16 nsp=-1 mass=500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=167: oxxxxx#16 nsp=-1 mass=-500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=167: oxxxxx#16 nsp=-1 mass=-500 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=167: oxxxxx#16 nsp=-1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=167: oxxxxx#16 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=167: oxxxxx#16 nsp=-1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=167: oxxxxx#16 nsp=-1 mass=-500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=168: ixxxxx#17 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=168: ixxxxx#17 nsp=-1 mass=400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=168: ixxxxx#17 nsp=-1 mass=400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=168: ixxxxx#17 nsp=-1 mass=400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=168: ixxxxx#17 nsp=-1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00 } ); // itest=168: ixxxxx#17 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=169: ixxxxx#17 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=169: ixxxxx#17 nsp=-1 mass=-400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=169: ixxxxx#17 nsp=-1 mass=-400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=169: ixxxxx#17 nsp=-1 mass=-400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=169: ixxxxx#17 nsp=-1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00 } ); // itest=169: ixxxxx#17 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=170: vxxxxx#17 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=170: vxxxxx#17 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=170: vxxxxx#17 nsp=-1 mass=400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=170: vxxxxx#17 nsp=-1 mass=400 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=170: vxxxxx#17 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=170: vxxxxx#17 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=171: vxxxxx#17 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=171: vxxxxx#17 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=171: vxxxxx#17 nsp=-1 mass=-400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=171: vxxxxx#17 nsp=-1 mass=-400 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=171: vxxxxx#17 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=171: vxxxxx#17 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=172: sxxxxx#17 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=172: sxxxxx#17 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=172: sxxxxx#17 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=172: sxxxxx#17 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=172: sxxxxx#17 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=172: sxxxxx#17 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=173: sxxxxx#17 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=173: sxxxxx#17 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=173: sxxxxx#17 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=173: sxxxxx#17 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=173: sxxxxx#17 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=173: sxxxxx#17 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=174: oxxxxx#17 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=174: oxxxxx#17 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=174: oxxxxx#17 nsp=-1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=174: oxxxxx#17 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=174: oxxxxx#17 nsp=-1 mass=400 + -2.828427124746190e+01, -0.000000000000000e+00 } ); // itest=174: oxxxxx#17 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=175: oxxxxx#17 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=175: oxxxxx#17 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=175: oxxxxx#17 nsp=-1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=175: oxxxxx#17 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=175: oxxxxx#17 nsp=-1 mass=-400 + -2.828427124746190e+01, -0.000000000000000e+00 } ); // itest=175: oxxxxx#17 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=176: ixxxxx#18 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=176: ixxxxx#18 nsp=-1 mass=400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=176: ixxxxx#18 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=176: ixxxxx#18 nsp=-1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=176: ixxxxx#18 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=176: ixxxxx#18 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=177: ixxxxx#18 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=177: ixxxxx#18 nsp=-1 mass=-400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=177: ixxxxx#18 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=177: ixxxxx#18 nsp=-1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=177: ixxxxx#18 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=177: ixxxxx#18 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=178: vxxxxx#18 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=178: vxxxxx#18 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=178: vxxxxx#18 nsp=-1 mass=400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=178: vxxxxx#18 nsp=-1 mass=400 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=178: vxxxxx#18 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=178: vxxxxx#18 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=179: vxxxxx#18 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=179: vxxxxx#18 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=179: vxxxxx#18 nsp=-1 mass=-400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=179: vxxxxx#18 nsp=-1 mass=-400 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=179: vxxxxx#18 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=179: vxxxxx#18 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=180: sxxxxx#18 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=180: sxxxxx#18 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=180: sxxxxx#18 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=180: sxxxxx#18 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=180: sxxxxx#18 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=180: sxxxxx#18 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=181: sxxxxx#18 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=181: sxxxxx#18 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=181: sxxxxx#18 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=181: sxxxxx#18 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=181: sxxxxx#18 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=181: sxxxxx#18 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=182: oxxxxx#18 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=182: oxxxxx#18 nsp=-1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=182: oxxxxx#18 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=182: oxxxxx#18 nsp=-1 mass=400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=182: oxxxxx#18 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=182: oxxxxx#18 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=183: oxxxxx#18 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=183: oxxxxx#18 nsp=-1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=183: oxxxxx#18 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=183: oxxxxx#18 nsp=-1 mass=-400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=183: oxxxxx#18 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=183: oxxxxx#18 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=184: ixxxxx#19 nsp=-1 mass=400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=184: ixxxxx#19 nsp=-1 mass=400 + 1.200000000000000e+01, -1.600000000000000e+01, // itest=184: ixxxxx#19 nsp=-1 mass=400 + -2.000000000000000e+01, -0.000000000000000e+00, // itest=184: ixxxxx#19 nsp=-1 mass=400 + -5.999999999999999e+00, 7.999999999999999e+00, // itest=184: ixxxxx#19 nsp=-1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=184: ixxxxx#19 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=185: ixxxxx#19 nsp=-1 mass=-400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=185: ixxxxx#19 nsp=-1 mass=-400 + 1.200000000000000e+01, -1.600000000000000e+01, // itest=185: ixxxxx#19 nsp=-1 mass=-400 + -2.000000000000000e+01, -0.000000000000000e+00, // itest=185: ixxxxx#19 nsp=-1 mass=-400 + 5.999999999999999e+00, -7.999999999999999e+00, // itest=185: ixxxxx#19 nsp=-1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00 } ); // itest=185: ixxxxx#19 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=186: vxxxxx#19 nsp=-1 mass=400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=186: vxxxxx#19 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=186: vxxxxx#19 nsp=-1 mass=400 + 0.000000000000000e+00, 5.656854249492381e-01, // itest=186: vxxxxx#19 nsp=-1 mass=400 + 0.000000000000000e+00, -4.242640687119285e-01, // itest=186: vxxxxx#19 nsp=-1 mass=400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=186: vxxxxx#19 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=187: vxxxxx#19 nsp=-1 mass=-400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=187: vxxxxx#19 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=187: vxxxxx#19 nsp=-1 mass=-400 + -0.000000000000000e+00, 5.656854249492381e-01, // itest=187: vxxxxx#19 nsp=-1 mass=-400 + -0.000000000000000e+00, -4.242640687119285e-01, // itest=187: vxxxxx#19 nsp=-1 mass=-400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=187: vxxxxx#19 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=188: sxxxxx#19 nsp=-1 mass=400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=188: sxxxxx#19 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=188: sxxxxx#19 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=188: sxxxxx#19 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=188: sxxxxx#19 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=188: sxxxxx#19 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=189: sxxxxx#19 nsp=-1 mass=-400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=189: sxxxxx#19 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=189: sxxxxx#19 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=189: sxxxxx#19 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=189: sxxxxx#19 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=189: sxxxxx#19 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=190: oxxxxx#19 nsp=-1 mass=400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=190: oxxxxx#19 nsp=-1 mass=400 + -5.999999999999999e+00, -7.999999999999999e+00, // itest=190: oxxxxx#19 nsp=-1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=190: oxxxxx#19 nsp=-1 mass=400 + 1.200000000000000e+01, 1.600000000000000e+01, // itest=190: oxxxxx#19 nsp=-1 mass=400 + -2.000000000000000e+01, -0.000000000000000e+00 } ); // itest=190: oxxxxx#19 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=191: oxxxxx#19 nsp=-1 mass=-400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=191: oxxxxx#19 nsp=-1 mass=-400 + 5.999999999999999e+00, 7.999999999999999e+00, // itest=191: oxxxxx#19 nsp=-1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00, // itest=191: oxxxxx#19 nsp=-1 mass=-400 + 1.200000000000000e+01, 1.600000000000000e+01, // itest=191: oxxxxx#19 nsp=-1 mass=-400 + -2.000000000000000e+01, -0.000000000000000e+00 } ); // itest=191: oxxxxx#19 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=192: ixxxxx#20 nsp=-1 mass=400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=192: ixxxxx#20 nsp=-1 mass=400 + -1.600000000000000e+01, 1.200000000000000e+01, // itest=192: ixxxxx#20 nsp=-1 mass=400 + -2.000000000000000e+01, -0.000000000000000e+00, // itest=192: ixxxxx#20 nsp=-1 mass=400 + 7.999999999999999e+00, -5.999999999999999e+00, // itest=192: ixxxxx#20 nsp=-1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=192: ixxxxx#20 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=193: ixxxxx#20 nsp=-1 mass=-400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=193: ixxxxx#20 nsp=-1 mass=-400 + -1.600000000000000e+01, 1.200000000000000e+01, // itest=193: ixxxxx#20 nsp=-1 mass=-400 + -2.000000000000000e+01, -0.000000000000000e+00, // itest=193: ixxxxx#20 nsp=-1 mass=-400 + -7.999999999999999e+00, 5.999999999999999e+00, // itest=193: ixxxxx#20 nsp=-1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00 } ); // itest=193: ixxxxx#20 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=194: vxxxxx#20 nsp=-1 mass=400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=194: vxxxxx#20 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=194: vxxxxx#20 nsp=-1 mass=400 + 0.000000000000000e+00, -4.242640687119285e-01, // itest=194: vxxxxx#20 nsp=-1 mass=400 + 0.000000000000000e+00, 5.656854249492381e-01, // itest=194: vxxxxx#20 nsp=-1 mass=400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=194: vxxxxx#20 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=195: vxxxxx#20 nsp=-1 mass=-400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=195: vxxxxx#20 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=195: vxxxxx#20 nsp=-1 mass=-400 + 0.000000000000000e+00, -4.242640687119285e-01, // itest=195: vxxxxx#20 nsp=-1 mass=-400 + 0.000000000000000e+00, 5.656854249492381e-01, // itest=195: vxxxxx#20 nsp=-1 mass=-400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=195: vxxxxx#20 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=196: sxxxxx#20 nsp=-1 mass=400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=196: sxxxxx#20 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=196: sxxxxx#20 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=196: sxxxxx#20 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=196: sxxxxx#20 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=196: sxxxxx#20 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=197: sxxxxx#20 nsp=-1 mass=-400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=197: sxxxxx#20 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=197: sxxxxx#20 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=197: sxxxxx#20 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=197: sxxxxx#20 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=197: sxxxxx#20 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=198: oxxxxx#20 nsp=-1 mass=400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=198: oxxxxx#20 nsp=-1 mass=400 + 7.999999999999999e+00, 5.999999999999999e+00, // itest=198: oxxxxx#20 nsp=-1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=198: oxxxxx#20 nsp=-1 mass=400 + -1.600000000000000e+01, -1.200000000000000e+01, // itest=198: oxxxxx#20 nsp=-1 mass=400 + -2.000000000000000e+01, -0.000000000000000e+00 } ); // itest=198: oxxxxx#20 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=199: oxxxxx#20 nsp=-1 mass=-400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=199: oxxxxx#20 nsp=-1 mass=-400 + -7.999999999999999e+00, -5.999999999999999e+00, // itest=199: oxxxxx#20 nsp=-1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00, // itest=199: oxxxxx#20 nsp=-1 mass=-400 + -1.600000000000000e+01, -1.200000000000000e+01, // itest=199: oxxxxx#20 nsp=-1 mass=-400 + -2.000000000000000e+01, -0.000000000000000e+00 } ); // itest=199: oxxxxx#20 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=200: ixxxxx#21 nsp=-1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=200: ixxxxx#21 nsp=-1 mass=400 + 9.863939238321439e+00, -1.052153518754287e+01, // itest=200: ixxxxx#21 nsp=-1 mass=400 + -2.433105012119288e+01, -0.000000000000000e+00, // itest=200: ixxxxx#21 nsp=-1 mass=400 + -4.931969619160719e+00, 5.260767593771432e+00, // itest=200: ixxxxx#21 nsp=-1 mass=400 + 1.216552506059644e+01, 0.000000000000000e+00 } ); // itest=200: ixxxxx#21 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=201: ixxxxx#21 nsp=-1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=201: ixxxxx#21 nsp=-1 mass=-400 + 9.863939238321439e+00, -1.052153518754287e+01, // itest=201: ixxxxx#21 nsp=-1 mass=-400 + -2.433105012119288e+01, -0.000000000000000e+00, // itest=201: ixxxxx#21 nsp=-1 mass=-400 + 4.931969619160719e+00, -5.260767593771432e+00, // itest=201: ixxxxx#21 nsp=-1 mass=-400 + -1.216552506059644e+01, -0.000000000000000e+00 } ); // itest=201: ixxxxx#21 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=202: vxxxxx#21 nsp=-1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=202: vxxxxx#21 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=202: vxxxxx#21 nsp=-1 mass=400 + -2.321373168788980e-01, 5.158607041753289e-01, // itest=202: vxxxxx#21 nsp=-1 mass=400 + -2.476131380041579e-01, -4.836194101643708e-01, // itest=202: vxxxxx#21 nsp=-1 mass=400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=202: vxxxxx#21 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=203: vxxxxx#21 nsp=-1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=203: vxxxxx#21 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=203: vxxxxx#21 nsp=-1 mass=-400 + -2.321373168788980e-01, 5.158607041753289e-01, // itest=203: vxxxxx#21 nsp=-1 mass=-400 + -2.476131380041579e-01, -4.836194101643708e-01, // itest=203: vxxxxx#21 nsp=-1 mass=-400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=203: vxxxxx#21 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=204: sxxxxx#21 nsp=-1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=204: sxxxxx#21 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=204: sxxxxx#21 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=204: sxxxxx#21 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=204: sxxxxx#21 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=204: sxxxxx#21 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=205: sxxxxx#21 nsp=-1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=205: sxxxxx#21 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=205: sxxxxx#21 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=205: sxxxxx#21 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=205: sxxxxx#21 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=205: sxxxxx#21 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=206: oxxxxx#21 nsp=-1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=206: oxxxxx#21 nsp=-1 mass=400 + -4.931969619160719e+00, -5.260767593771432e+00, // itest=206: oxxxxx#21 nsp=-1 mass=400 + 1.216552506059644e+01, 0.000000000000000e+00, // itest=206: oxxxxx#21 nsp=-1 mass=400 + 9.863939238321439e+00, 1.052153518754287e+01, // itest=206: oxxxxx#21 nsp=-1 mass=400 + -2.433105012119288e+01, -0.000000000000000e+00 } ); // itest=206: oxxxxx#21 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=207: oxxxxx#21 nsp=-1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=207: oxxxxx#21 nsp=-1 mass=-400 + 4.931969619160719e+00, 5.260767593771432e+00, // itest=207: oxxxxx#21 nsp=-1 mass=-400 + -1.216552506059644e+01, -0.000000000000000e+00, // itest=207: oxxxxx#21 nsp=-1 mass=-400 + 9.863939238321439e+00, 1.052153518754287e+01, // itest=207: oxxxxx#21 nsp=-1 mass=-400 + -2.433105012119288e+01, -0.000000000000000e+00 } ); // itest=207: oxxxxx#21 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=208: ixxxxx#22 nsp=-1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=208: ixxxxx#22 nsp=-1 mass=400 + 1.664100588675688e+01, -1.775040627920733e+01, // itest=208: ixxxxx#22 nsp=-1 mass=400 + -1.442220510185596e+01, -0.000000000000000e+00, // itest=208: ixxxxx#22 nsp=-1 mass=400 + -8.320502943378436e+00, 8.875203139603666e+00, // itest=208: ixxxxx#22 nsp=-1 mass=400 + 7.211102550927978e+00, 0.000000000000000e+00 } ); // itest=208: ixxxxx#22 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=209: ixxxxx#22 nsp=-1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=209: ixxxxx#22 nsp=-1 mass=-400 + 1.664100588675688e+01, -1.775040627920733e+01, // itest=209: ixxxxx#22 nsp=-1 mass=-400 + -1.442220510185596e+01, -0.000000000000000e+00, // itest=209: ixxxxx#22 nsp=-1 mass=-400 + 8.320502943378436e+00, -8.875203139603666e+00, // itest=209: ixxxxx#22 nsp=-1 mass=-400 + -7.211102550927978e+00, -0.000000000000000e+00 } ); // itest=209: ixxxxx#22 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=210: vxxxxx#22 nsp=-1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=210: vxxxxx#22 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=210: vxxxxx#22 nsp=-1 mass=400 + 2.321373168788980e-01, 5.158607041753289e-01, // itest=210: vxxxxx#22 nsp=-1 mass=400 + 2.476131380041579e-01, -4.836194101643708e-01, // itest=210: vxxxxx#22 nsp=-1 mass=400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=210: vxxxxx#22 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=211: vxxxxx#22 nsp=-1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=211: vxxxxx#22 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=211: vxxxxx#22 nsp=-1 mass=-400 + 2.321373168788980e-01, 5.158607041753289e-01, // itest=211: vxxxxx#22 nsp=-1 mass=-400 + 2.476131380041579e-01, -4.836194101643708e-01, // itest=211: vxxxxx#22 nsp=-1 mass=-400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=211: vxxxxx#22 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=212: sxxxxx#22 nsp=-1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=212: sxxxxx#22 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=212: sxxxxx#22 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=212: sxxxxx#22 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=212: sxxxxx#22 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=212: sxxxxx#22 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=213: sxxxxx#22 nsp=-1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=213: sxxxxx#22 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=213: sxxxxx#22 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=213: sxxxxx#22 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=213: sxxxxx#22 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=213: sxxxxx#22 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=214: oxxxxx#22 nsp=-1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=214: oxxxxx#22 nsp=-1 mass=400 + -8.320502943378436e+00, -8.875203139603666e+00, // itest=214: oxxxxx#22 nsp=-1 mass=400 + 7.211102550927978e+00, 0.000000000000000e+00, // itest=214: oxxxxx#22 nsp=-1 mass=400 + 1.664100588675688e+01, 1.775040627920733e+01, // itest=214: oxxxxx#22 nsp=-1 mass=400 + -1.442220510185596e+01, -0.000000000000000e+00 } ); // itest=214: oxxxxx#22 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=215: oxxxxx#22 nsp=-1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=215: oxxxxx#22 nsp=-1 mass=-400 + 8.320502943378436e+00, 8.875203139603666e+00, // itest=215: oxxxxx#22 nsp=-1 mass=-400 + -7.211102550927978e+00, -0.000000000000000e+00, // itest=215: oxxxxx#22 nsp=-1 mass=-400 + 1.664100588675688e+01, 1.775040627920733e+01, // itest=215: oxxxxx#22 nsp=-1 mass=-400 + -1.442220510185596e+01, -0.000000000000000e+00 } ); // itest=215: oxxxxx#22 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=216: ixxxxx#23 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=216: ixxxxx#23 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=216: ixxxxx#23 nsp=-1 mass=500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=216: ixxxxx#23 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=216: ixxxxx#23 nsp=-1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=216: ixxxxx#23 nsp=-1 mass=500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=217: ixxxxx#23 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=217: ixxxxx#23 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=217: ixxxxx#23 nsp=-1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=217: ixxxxx#23 nsp=-1 mass=-500 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=217: ixxxxx#23 nsp=-1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=217: ixxxxx#23 nsp=-1 mass=-500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=218: vxxxxx#23 nsp=-1 mass=500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=218: vxxxxx#23 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=218: vxxxxx#23 nsp=-1 mass=500 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=218: vxxxxx#23 nsp=-1 mass=500 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=218: vxxxxx#23 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=218: vxxxxx#23 nsp=-1 mass=500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=219: vxxxxx#23 nsp=-1 mass=-500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=219: vxxxxx#23 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=219: vxxxxx#23 nsp=-1 mass=-500 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=219: vxxxxx#23 nsp=-1 mass=-500 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=219: vxxxxx#23 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=219: vxxxxx#23 nsp=-1 mass=-500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=220: sxxxxx#23 nsp=-1 mass=500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=220: sxxxxx#23 nsp=-1 mass=500 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=220: sxxxxx#23 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=220: sxxxxx#23 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=220: sxxxxx#23 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=220: sxxxxx#23 nsp=-1 mass=500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=221: sxxxxx#23 nsp=-1 mass=-500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=221: sxxxxx#23 nsp=-1 mass=-500 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=221: sxxxxx#23 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=221: sxxxxx#23 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=221: sxxxxx#23 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=221: sxxxxx#23 nsp=-1 mass=-500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=222: oxxxxx#23 nsp=-1 mass=500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=222: oxxxxx#23 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=222: oxxxxx#23 nsp=-1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=222: oxxxxx#23 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=222: oxxxxx#23 nsp=-1 mass=500 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=222: oxxxxx#23 nsp=-1 mass=500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=223: oxxxxx#23 nsp=-1 mass=-500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=223: oxxxxx#23 nsp=-1 mass=-500 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=223: oxxxxx#23 nsp=-1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=223: oxxxxx#23 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=223: oxxxxx#23 nsp=-1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=223: oxxxxx#23 nsp=-1 mass=-500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=224: ixxxxx#24 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=224: ixxxxx#24 nsp=-1 mass=400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=224: ixxxxx#24 nsp=-1 mass=400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=224: ixxxxx#24 nsp=-1 mass=400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=224: ixxxxx#24 nsp=-1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00 } ); // itest=224: ixxxxx#24 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=225: ixxxxx#24 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=225: ixxxxx#24 nsp=-1 mass=-400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=225: ixxxxx#24 nsp=-1 mass=-400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=225: ixxxxx#24 nsp=-1 mass=-400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=225: ixxxxx#24 nsp=-1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00 } ); // itest=225: ixxxxx#24 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=226: vxxxxx#24 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=226: vxxxxx#24 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=226: vxxxxx#24 nsp=-1 mass=400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=226: vxxxxx#24 nsp=-1 mass=400 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=226: vxxxxx#24 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=226: vxxxxx#24 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=227: vxxxxx#24 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=227: vxxxxx#24 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=227: vxxxxx#24 nsp=-1 mass=-400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=227: vxxxxx#24 nsp=-1 mass=-400 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=227: vxxxxx#24 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=227: vxxxxx#24 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=228: sxxxxx#24 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=228: sxxxxx#24 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=228: sxxxxx#24 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=228: sxxxxx#24 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=228: sxxxxx#24 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=228: sxxxxx#24 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=229: sxxxxx#24 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=229: sxxxxx#24 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=229: sxxxxx#24 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=229: sxxxxx#24 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=229: sxxxxx#24 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=229: sxxxxx#24 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=230: oxxxxx#24 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=230: oxxxxx#24 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=230: oxxxxx#24 nsp=-1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=230: oxxxxx#24 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=230: oxxxxx#24 nsp=-1 mass=400 + -2.828427124746190e+01, -0.000000000000000e+00 } ); // itest=230: oxxxxx#24 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=231: oxxxxx#24 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=231: oxxxxx#24 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=231: oxxxxx#24 nsp=-1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=231: oxxxxx#24 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=231: oxxxxx#24 nsp=-1 mass=-400 + -2.828427124746190e+01, -0.000000000000000e+00 } ); // itest=231: oxxxxx#24 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=232: ixxxxx#25 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=232: ixxxxx#25 nsp=-1 mass=400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=232: ixxxxx#25 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=232: ixxxxx#25 nsp=-1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=232: ixxxxx#25 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=232: ixxxxx#25 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=233: ixxxxx#25 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=233: ixxxxx#25 nsp=-1 mass=-400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=233: ixxxxx#25 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=233: ixxxxx#25 nsp=-1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=233: ixxxxx#25 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=233: ixxxxx#25 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=234: vxxxxx#25 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=234: vxxxxx#25 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=234: vxxxxx#25 nsp=-1 mass=400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=234: vxxxxx#25 nsp=-1 mass=400 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=234: vxxxxx#25 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=234: vxxxxx#25 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=235: vxxxxx#25 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=235: vxxxxx#25 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=235: vxxxxx#25 nsp=-1 mass=-400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=235: vxxxxx#25 nsp=-1 mass=-400 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=235: vxxxxx#25 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=235: vxxxxx#25 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=236: sxxxxx#25 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=236: sxxxxx#25 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=236: sxxxxx#25 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=236: sxxxxx#25 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=236: sxxxxx#25 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=236: sxxxxx#25 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=237: sxxxxx#25 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=237: sxxxxx#25 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=237: sxxxxx#25 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=237: sxxxxx#25 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=237: sxxxxx#25 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=237: sxxxxx#25 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=238: oxxxxx#25 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=238: oxxxxx#25 nsp=-1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=238: oxxxxx#25 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=238: oxxxxx#25 nsp=-1 mass=400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=238: oxxxxx#25 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=238: oxxxxx#25 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=239: oxxxxx#25 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=239: oxxxxx#25 nsp=-1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=239: oxxxxx#25 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=239: oxxxxx#25 nsp=-1 mass=-400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=239: oxxxxx#25 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=239: oxxxxx#25 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=240: ixxxxx#26 nsp=-1 mass=400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=240: ixxxxx#26 nsp=-1 mass=400 + 1.200000000000000e+01, -1.600000000000000e+01, // itest=240: ixxxxx#26 nsp=-1 mass=400 + -2.000000000000000e+01, -0.000000000000000e+00, // itest=240: ixxxxx#26 nsp=-1 mass=400 + -5.999999999999999e+00, 7.999999999999999e+00, // itest=240: ixxxxx#26 nsp=-1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=240: ixxxxx#26 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=241: ixxxxx#26 nsp=-1 mass=-400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=241: ixxxxx#26 nsp=-1 mass=-400 + 1.200000000000000e+01, -1.600000000000000e+01, // itest=241: ixxxxx#26 nsp=-1 mass=-400 + -2.000000000000000e+01, -0.000000000000000e+00, // itest=241: ixxxxx#26 nsp=-1 mass=-400 + 5.999999999999999e+00, -7.999999999999999e+00, // itest=241: ixxxxx#26 nsp=-1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00 } ); // itest=241: ixxxxx#26 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=242: vxxxxx#26 nsp=-1 mass=400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=242: vxxxxx#26 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=242: vxxxxx#26 nsp=-1 mass=400 + 0.000000000000000e+00, 5.656854249492381e-01, // itest=242: vxxxxx#26 nsp=-1 mass=400 + 0.000000000000000e+00, -4.242640687119285e-01, // itest=242: vxxxxx#26 nsp=-1 mass=400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=242: vxxxxx#26 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=243: vxxxxx#26 nsp=-1 mass=-400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=243: vxxxxx#26 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=243: vxxxxx#26 nsp=-1 mass=-400 + -0.000000000000000e+00, 5.656854249492381e-01, // itest=243: vxxxxx#26 nsp=-1 mass=-400 + -0.000000000000000e+00, -4.242640687119285e-01, // itest=243: vxxxxx#26 nsp=-1 mass=-400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=243: vxxxxx#26 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=244: sxxxxx#26 nsp=-1 mass=400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=244: sxxxxx#26 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=244: sxxxxx#26 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=244: sxxxxx#26 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=244: sxxxxx#26 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=244: sxxxxx#26 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=245: sxxxxx#26 nsp=-1 mass=-400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=245: sxxxxx#26 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=245: sxxxxx#26 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=245: sxxxxx#26 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=245: sxxxxx#26 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=245: sxxxxx#26 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=246: oxxxxx#26 nsp=-1 mass=400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=246: oxxxxx#26 nsp=-1 mass=400 + -5.999999999999999e+00, -7.999999999999999e+00, // itest=246: oxxxxx#26 nsp=-1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=246: oxxxxx#26 nsp=-1 mass=400 + 1.200000000000000e+01, 1.600000000000000e+01, // itest=246: oxxxxx#26 nsp=-1 mass=400 + -2.000000000000000e+01, -0.000000000000000e+00 } ); // itest=246: oxxxxx#26 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=247: oxxxxx#26 nsp=-1 mass=-400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=247: oxxxxx#26 nsp=-1 mass=-400 + 5.999999999999999e+00, 7.999999999999999e+00, // itest=247: oxxxxx#26 nsp=-1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00, // itest=247: oxxxxx#26 nsp=-1 mass=-400 + 1.200000000000000e+01, 1.600000000000000e+01, // itest=247: oxxxxx#26 nsp=-1 mass=-400 + -2.000000000000000e+01, -0.000000000000000e+00 } ); // itest=247: oxxxxx#26 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=248: ixxxxx#27 nsp=-1 mass=400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=248: ixxxxx#27 nsp=-1 mass=400 + -1.600000000000000e+01, 1.200000000000000e+01, // itest=248: ixxxxx#27 nsp=-1 mass=400 + -2.000000000000000e+01, -0.000000000000000e+00, // itest=248: ixxxxx#27 nsp=-1 mass=400 + 7.999999999999999e+00, -5.999999999999999e+00, // itest=248: ixxxxx#27 nsp=-1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=248: ixxxxx#27 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=249: ixxxxx#27 nsp=-1 mass=-400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=249: ixxxxx#27 nsp=-1 mass=-400 + -1.600000000000000e+01, 1.200000000000000e+01, // itest=249: ixxxxx#27 nsp=-1 mass=-400 + -2.000000000000000e+01, -0.000000000000000e+00, // itest=249: ixxxxx#27 nsp=-1 mass=-400 + -7.999999999999999e+00, 5.999999999999999e+00, // itest=249: ixxxxx#27 nsp=-1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00 } ); // itest=249: ixxxxx#27 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=250: vxxxxx#27 nsp=-1 mass=400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=250: vxxxxx#27 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=250: vxxxxx#27 nsp=-1 mass=400 + 0.000000000000000e+00, -4.242640687119285e-01, // itest=250: vxxxxx#27 nsp=-1 mass=400 + 0.000000000000000e+00, 5.656854249492381e-01, // itest=250: vxxxxx#27 nsp=-1 mass=400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=250: vxxxxx#27 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=251: vxxxxx#27 nsp=-1 mass=-400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=251: vxxxxx#27 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=251: vxxxxx#27 nsp=-1 mass=-400 + 0.000000000000000e+00, -4.242640687119285e-01, // itest=251: vxxxxx#27 nsp=-1 mass=-400 + 0.000000000000000e+00, 5.656854249492381e-01, // itest=251: vxxxxx#27 nsp=-1 mass=-400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=251: vxxxxx#27 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=252: sxxxxx#27 nsp=-1 mass=400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=252: sxxxxx#27 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=252: sxxxxx#27 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=252: sxxxxx#27 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=252: sxxxxx#27 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=252: sxxxxx#27 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=253: sxxxxx#27 nsp=-1 mass=-400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=253: sxxxxx#27 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=253: sxxxxx#27 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=253: sxxxxx#27 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=253: sxxxxx#27 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=253: sxxxxx#27 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=254: oxxxxx#27 nsp=-1 mass=400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=254: oxxxxx#27 nsp=-1 mass=400 + 7.999999999999999e+00, 5.999999999999999e+00, // itest=254: oxxxxx#27 nsp=-1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=254: oxxxxx#27 nsp=-1 mass=400 + -1.600000000000000e+01, -1.200000000000000e+01, // itest=254: oxxxxx#27 nsp=-1 mass=400 + -2.000000000000000e+01, -0.000000000000000e+00 } ); // itest=254: oxxxxx#27 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=255: oxxxxx#27 nsp=-1 mass=-400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=255: oxxxxx#27 nsp=-1 mass=-400 + -7.999999999999999e+00, -5.999999999999999e+00, // itest=255: oxxxxx#27 nsp=-1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00, // itest=255: oxxxxx#27 nsp=-1 mass=-400 + -1.600000000000000e+01, -1.200000000000000e+01, // itest=255: oxxxxx#27 nsp=-1 mass=-400 + -2.000000000000000e+01, -0.000000000000000e+00 } ); // itest=255: oxxxxx#27 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=256: ixxxxx#28 nsp=-1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=256: ixxxxx#28 nsp=-1 mass=400 + 9.863939238321439e+00, -1.052153518754287e+01, // itest=256: ixxxxx#28 nsp=-1 mass=400 + -2.433105012119288e+01, -0.000000000000000e+00, // itest=256: ixxxxx#28 nsp=-1 mass=400 + -4.931969619160719e+00, 5.260767593771432e+00, // itest=256: ixxxxx#28 nsp=-1 mass=400 + 1.216552506059644e+01, 0.000000000000000e+00 } ); // itest=256: ixxxxx#28 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=257: ixxxxx#28 nsp=-1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=257: ixxxxx#28 nsp=-1 mass=-400 + 9.863939238321439e+00, -1.052153518754287e+01, // itest=257: ixxxxx#28 nsp=-1 mass=-400 + -2.433105012119288e+01, -0.000000000000000e+00, // itest=257: ixxxxx#28 nsp=-1 mass=-400 + 4.931969619160719e+00, -5.260767593771432e+00, // itest=257: ixxxxx#28 nsp=-1 mass=-400 + -1.216552506059644e+01, -0.000000000000000e+00 } ); // itest=257: ixxxxx#28 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=258: vxxxxx#28 nsp=-1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=258: vxxxxx#28 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=258: vxxxxx#28 nsp=-1 mass=400 + -2.321373168788980e-01, 5.158607041753289e-01, // itest=258: vxxxxx#28 nsp=-1 mass=400 + -2.476131380041579e-01, -4.836194101643708e-01, // itest=258: vxxxxx#28 nsp=-1 mass=400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=258: vxxxxx#28 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=259: vxxxxx#28 nsp=-1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=259: vxxxxx#28 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=259: vxxxxx#28 nsp=-1 mass=-400 + -2.321373168788980e-01, 5.158607041753289e-01, // itest=259: vxxxxx#28 nsp=-1 mass=-400 + -2.476131380041579e-01, -4.836194101643708e-01, // itest=259: vxxxxx#28 nsp=-1 mass=-400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=259: vxxxxx#28 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=260: sxxxxx#28 nsp=-1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=260: sxxxxx#28 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=260: sxxxxx#28 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=260: sxxxxx#28 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=260: sxxxxx#28 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=260: sxxxxx#28 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=261: sxxxxx#28 nsp=-1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=261: sxxxxx#28 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=261: sxxxxx#28 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=261: sxxxxx#28 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=261: sxxxxx#28 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=261: sxxxxx#28 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=262: oxxxxx#28 nsp=-1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=262: oxxxxx#28 nsp=-1 mass=400 + -4.931969619160719e+00, -5.260767593771432e+00, // itest=262: oxxxxx#28 nsp=-1 mass=400 + 1.216552506059644e+01, 0.000000000000000e+00, // itest=262: oxxxxx#28 nsp=-1 mass=400 + 9.863939238321439e+00, 1.052153518754287e+01, // itest=262: oxxxxx#28 nsp=-1 mass=400 + -2.433105012119288e+01, -0.000000000000000e+00 } ); // itest=262: oxxxxx#28 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=263: oxxxxx#28 nsp=-1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=263: oxxxxx#28 nsp=-1 mass=-400 + 4.931969619160719e+00, 5.260767593771432e+00, // itest=263: oxxxxx#28 nsp=-1 mass=-400 + -1.216552506059644e+01, -0.000000000000000e+00, // itest=263: oxxxxx#28 nsp=-1 mass=-400 + 9.863939238321439e+00, 1.052153518754287e+01, // itest=263: oxxxxx#28 nsp=-1 mass=-400 + -2.433105012119288e+01, -0.000000000000000e+00 } ); // itest=263: oxxxxx#28 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=264: ixxxxx#29 nsp=-1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=264: ixxxxx#29 nsp=-1 mass=400 + 1.664100588675688e+01, -1.775040627920733e+01, // itest=264: ixxxxx#29 nsp=-1 mass=400 + -1.442220510185596e+01, -0.000000000000000e+00, // itest=264: ixxxxx#29 nsp=-1 mass=400 + -8.320502943378436e+00, 8.875203139603666e+00, // itest=264: ixxxxx#29 nsp=-1 mass=400 + 7.211102550927978e+00, 0.000000000000000e+00 } ); // itest=264: ixxxxx#29 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=265: ixxxxx#29 nsp=-1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=265: ixxxxx#29 nsp=-1 mass=-400 + 1.664100588675688e+01, -1.775040627920733e+01, // itest=265: ixxxxx#29 nsp=-1 mass=-400 + -1.442220510185596e+01, -0.000000000000000e+00, // itest=265: ixxxxx#29 nsp=-1 mass=-400 + 8.320502943378436e+00, -8.875203139603666e+00, // itest=265: ixxxxx#29 nsp=-1 mass=-400 + -7.211102550927978e+00, -0.000000000000000e+00 } ); // itest=265: ixxxxx#29 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=266: vxxxxx#29 nsp=-1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=266: vxxxxx#29 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=266: vxxxxx#29 nsp=-1 mass=400 + 2.321373168788980e-01, 5.158607041753289e-01, // itest=266: vxxxxx#29 nsp=-1 mass=400 + 2.476131380041579e-01, -4.836194101643708e-01, // itest=266: vxxxxx#29 nsp=-1 mass=400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=266: vxxxxx#29 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=267: vxxxxx#29 nsp=-1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=267: vxxxxx#29 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=267: vxxxxx#29 nsp=-1 mass=-400 + 2.321373168788980e-01, 5.158607041753289e-01, // itest=267: vxxxxx#29 nsp=-1 mass=-400 + 2.476131380041579e-01, -4.836194101643708e-01, // itest=267: vxxxxx#29 nsp=-1 mass=-400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=267: vxxxxx#29 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=268: sxxxxx#29 nsp=-1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=268: sxxxxx#29 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=268: sxxxxx#29 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=268: sxxxxx#29 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=268: sxxxxx#29 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=268: sxxxxx#29 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=269: sxxxxx#29 nsp=-1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=269: sxxxxx#29 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=269: sxxxxx#29 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=269: sxxxxx#29 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=269: sxxxxx#29 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=269: sxxxxx#29 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=270: oxxxxx#29 nsp=-1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=270: oxxxxx#29 nsp=-1 mass=400 + -8.320502943378436e+00, -8.875203139603666e+00, // itest=270: oxxxxx#29 nsp=-1 mass=400 + 7.211102550927978e+00, 0.000000000000000e+00, // itest=270: oxxxxx#29 nsp=-1 mass=400 + 1.664100588675688e+01, 1.775040627920733e+01, // itest=270: oxxxxx#29 nsp=-1 mass=400 + -1.442220510185596e+01, -0.000000000000000e+00 } ); // itest=270: oxxxxx#29 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=271: oxxxxx#29 nsp=-1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=271: oxxxxx#29 nsp=-1 mass=-400 + 8.320502943378436e+00, 8.875203139603666e+00, // itest=271: oxxxxx#29 nsp=-1 mass=-400 + -7.211102550927978e+00, -0.000000000000000e+00, // itest=271: oxxxxx#29 nsp=-1 mass=-400 + 1.664100588675688e+01, 1.775040627920733e+01, // itest=271: oxxxxx#29 nsp=-1 mass=-400 + -1.442220510185596e+01, -0.000000000000000e+00 } ); // itest=271: oxxxxx#29 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=272: ixxxxx#30 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=272: ixxxxx#30 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=272: ixxxxx#30 nsp=-1 mass=500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=272: ixxxxx#30 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=272: ixxxxx#30 nsp=-1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=272: ixxxxx#30 nsp=-1 mass=500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=273: ixxxxx#30 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=273: ixxxxx#30 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=273: ixxxxx#30 nsp=-1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=273: ixxxxx#30 nsp=-1 mass=-500 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=273: ixxxxx#30 nsp=-1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=273: ixxxxx#30 nsp=-1 mass=-500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=274: vxxxxx#30 nsp=-1 mass=500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=274: vxxxxx#30 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=274: vxxxxx#30 nsp=-1 mass=500 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=274: vxxxxx#30 nsp=-1 mass=500 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=274: vxxxxx#30 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=274: vxxxxx#30 nsp=-1 mass=500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=275: vxxxxx#30 nsp=-1 mass=-500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=275: vxxxxx#30 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=275: vxxxxx#30 nsp=-1 mass=-500 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=275: vxxxxx#30 nsp=-1 mass=-500 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=275: vxxxxx#30 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=275: vxxxxx#30 nsp=-1 mass=-500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=276: sxxxxx#30 nsp=-1 mass=500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=276: sxxxxx#30 nsp=-1 mass=500 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=276: sxxxxx#30 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=276: sxxxxx#30 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=276: sxxxxx#30 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=276: sxxxxx#30 nsp=-1 mass=500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=277: sxxxxx#30 nsp=-1 mass=-500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=277: sxxxxx#30 nsp=-1 mass=-500 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=277: sxxxxx#30 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=277: sxxxxx#30 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=277: sxxxxx#30 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=277: sxxxxx#30 nsp=-1 mass=-500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=278: oxxxxx#30 nsp=-1 mass=500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=278: oxxxxx#30 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=278: oxxxxx#30 nsp=-1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=278: oxxxxx#30 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=278: oxxxxx#30 nsp=-1 mass=500 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=278: oxxxxx#30 nsp=-1 mass=500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=279: oxxxxx#30 nsp=-1 mass=-500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=279: oxxxxx#30 nsp=-1 mass=-500 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=279: oxxxxx#30 nsp=-1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=279: oxxxxx#30 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=279: oxxxxx#30 nsp=-1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=279: oxxxxx#30 nsp=-1 mass=-500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=280: ixxxxx#31 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=280: ixxxxx#31 nsp=-1 mass=400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=280: ixxxxx#31 nsp=-1 mass=400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=280: ixxxxx#31 nsp=-1 mass=400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=280: ixxxxx#31 nsp=-1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00 } ); // itest=280: ixxxxx#31 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=281: ixxxxx#31 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=281: ixxxxx#31 nsp=-1 mass=-400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=281: ixxxxx#31 nsp=-1 mass=-400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=281: ixxxxx#31 nsp=-1 mass=-400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=281: ixxxxx#31 nsp=-1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00 } ); // itest=281: ixxxxx#31 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=282: vxxxxx#31 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=282: vxxxxx#31 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=282: vxxxxx#31 nsp=-1 mass=400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=282: vxxxxx#31 nsp=-1 mass=400 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=282: vxxxxx#31 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=282: vxxxxx#31 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=283: vxxxxx#31 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=283: vxxxxx#31 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=283: vxxxxx#31 nsp=-1 mass=-400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=283: vxxxxx#31 nsp=-1 mass=-400 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=283: vxxxxx#31 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=283: vxxxxx#31 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=284: sxxxxx#31 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=284: sxxxxx#31 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=284: sxxxxx#31 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=284: sxxxxx#31 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=284: sxxxxx#31 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=284: sxxxxx#31 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=285: sxxxxx#31 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=285: sxxxxx#31 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=285: sxxxxx#31 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=285: sxxxxx#31 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=285: sxxxxx#31 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=285: sxxxxx#31 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=286: oxxxxx#31 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=286: oxxxxx#31 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=286: oxxxxx#31 nsp=-1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=286: oxxxxx#31 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=286: oxxxxx#31 nsp=-1 mass=400 + -2.828427124746190e+01, -0.000000000000000e+00 } ); // itest=286: oxxxxx#31 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=287: oxxxxx#31 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=287: oxxxxx#31 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=287: oxxxxx#31 nsp=-1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=287: oxxxxx#31 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=287: oxxxxx#31 nsp=-1 mass=-400 + -2.828427124746190e+01, -0.000000000000000e+00 } ); // itest=287: oxxxxx#31 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=288: ixxxxx#0 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=288: ixxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=288: ixxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=288: ixxxxx#0 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=288: ixxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=288: ixxxxx#0 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=289: ixxxxx#0 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=289: ixxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=289: ixxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=289: ixxxxx#0 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=289: ixxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=289: ixxxxx#0 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=290: ipzxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=290: ipzxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=290: ipzxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=290: ipzxxx#0 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=290: ipzxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=290: ipzxxx#0 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=291: vxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=291: vxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=291: vxxxxx#0 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=291: vxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=291: vxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=291: vxxxxx#0 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=292: vxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=292: vxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=292: vxxxxx#0 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=292: vxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=292: vxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=292: vxxxxx#0 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=293: sxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=293: sxxxxx#0 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=293: sxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=293: sxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=293: sxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=293: sxxxxx#0 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=294: sxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=294: sxxxxx#0 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=294: sxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=294: sxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=294: sxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=294: sxxxxx#0 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=295: oxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=295: oxxxxx#0 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=295: oxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=295: oxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=295: oxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=295: oxxxxx#0 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=296: oxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=296: oxxxxx#0 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=296: oxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=296: oxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=296: oxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=296: oxxxxx#0 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=297: opzxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=297: opzxxx#0 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=297: opzxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=297: opzxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=297: opzxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=297: opzxxx#0 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=298: ixxxxx#1 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=298: ixxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=298: ixxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=298: ixxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=298: ixxxxx#1 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=298: ixxxxx#1 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=299: ixxxxx#1 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=299: ixxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=299: ixxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=299: ixxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=299: ixxxxx#1 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=299: ixxxxx#1 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=300: imzxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=300: imzxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=300: imzxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=300: imzxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=300: imzxxx#1 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=300: imzxxx#1 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=301: vxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=301: vxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=301: vxxxxx#1 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=301: vxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=301: vxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=301: vxxxxx#1 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=302: vxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=302: vxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=302: vxxxxx#1 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=302: vxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=302: vxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=302: vxxxxx#1 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=303: sxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=303: sxxxxx#1 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=303: sxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=303: sxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=303: sxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=303: sxxxxx#1 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=304: sxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=304: sxxxxx#1 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=304: sxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=304: sxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=304: sxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=304: sxxxxx#1 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=305: oxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=305: oxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=305: oxxxxx#1 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=305: oxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=305: oxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=305: oxxxxx#1 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=306: oxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=306: oxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=306: oxxxxx#1 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=306: oxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=306: oxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=306: oxxxxx#1 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=307: omzxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=307: omzxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=307: omzxxx#1 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=307: omzxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=307: omzxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=307: omzxxx#1 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=308: ixxxxx#2 nsp=1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=308: ixxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=308: ixxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=308: ixxxxx#2 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=308: ixxxxx#2 nsp=1 mass=0 + 1.341640786499874e+01, 1.788854381999831e+01 } ); // itest=308: ixxxxx#2 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=309: ixxxxx#2 nsp=1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=309: ixxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=309: ixxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=309: ixxxxx#2 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=309: ixxxxx#2 nsp=1 mass=0 + 1.341640786499874e+01, 1.788854381999831e+01 } ); // itest=309: ixxxxx#2 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=310: ixzxxx#2 nsp=1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=310: ixzxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=310: ixzxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=310: ixzxxx#2 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=310: ixzxxx#2 nsp=1 mass=0 + 1.341640786499874e+01, 1.788854381999832e+01 } ); // itest=310: ixzxxx#2 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=311: vxxxxx#2 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=311: vxxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=311: vxxxxx#2 nsp=1 mass=0 + -0.000000000000000e+00, -5.656854249492381e-01, // itest=311: vxxxxx#2 nsp=1 mass=0 + -0.000000000000000e+00, 4.242640687119285e-01, // itest=311: vxxxxx#2 nsp=1 mass=0 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=311: vxxxxx#2 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=312: vxxxxx#2 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=312: vxxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=312: vxxxxx#2 nsp=1 mass=0 + -0.000000000000000e+00, -5.656854249492381e-01, // itest=312: vxxxxx#2 nsp=1 mass=0 + -0.000000000000000e+00, 4.242640687119285e-01, // itest=312: vxxxxx#2 nsp=1 mass=0 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=312: vxxxxx#2 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=313: sxxxxx#2 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=313: sxxxxx#2 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=313: sxxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=313: sxxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=313: sxxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=313: sxxxxx#2 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=314: sxxxxx#2 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=314: sxxxxx#2 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=314: sxxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=314: sxxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=314: sxxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=314: sxxxxx#2 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=315: oxxxxx#2 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=315: oxxxxx#2 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=315: oxxxxx#2 nsp=1 mass=0 + 1.341640786499874e+01, -1.788854381999831e+01, // itest=315: oxxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=315: oxxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=315: oxxxxx#2 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=316: oxxxxx#2 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=316: oxxxxx#2 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=316: oxxxxx#2 nsp=1 mass=0 + 1.341640786499874e+01, -1.788854381999831e+01, // itest=316: oxxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=316: oxxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=316: oxxxxx#2 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=317: oxzxxx#2 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=317: oxzxxx#2 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=317: oxzxxx#2 nsp=1 mass=0 + 1.341640786499874e+01, -1.788854381999832e+01, // itest=317: oxzxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=317: oxzxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=317: oxzxxx#2 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=318: ixxxxx#3 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=318: ixxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=318: ixxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=318: ixxxxx#3 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=318: ixxxxx#3 nsp=1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=318: ixxxxx#3 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=319: ixxxxx#3 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=319: ixxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=319: ixxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=319: ixxxxx#3 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=319: ixxxxx#3 nsp=1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=319: ixxxxx#3 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=320: ixzxxx#3 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=320: ixzxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=320: ixzxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=320: ixzxxx#3 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=320: ixzxxx#3 nsp=1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=320: ixzxxx#3 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=321: vxxxxx#3 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=321: vxxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=321: vxxxxx#3 nsp=1 mass=0 + -3.394112549695428e-01, -5.656854249492381e-01, // itest=321: vxxxxx#3 nsp=1 mass=0 + -4.525483399593904e-01, 4.242640687119285e-01, // itest=321: vxxxxx#3 nsp=1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=321: vxxxxx#3 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=322: vxxxxx#3 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=322: vxxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=322: vxxxxx#3 nsp=1 mass=0 + -3.394112549695428e-01, -5.656854249492381e-01, // itest=322: vxxxxx#3 nsp=1 mass=0 + -4.525483399593904e-01, 4.242640687119285e-01, // itest=322: vxxxxx#3 nsp=1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=322: vxxxxx#3 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=323: sxxxxx#3 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=323: sxxxxx#3 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=323: sxxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=323: sxxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=323: sxxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=323: sxxxxx#3 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=324: sxxxxx#3 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=324: sxxxxx#3 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=324: sxxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=324: sxxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=324: sxxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=324: sxxxxx#3 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=325: oxxxxx#3 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=325: oxxxxx#3 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=325: oxxxxx#3 nsp=1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=325: oxxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=325: oxxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=325: oxxxxx#3 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=326: oxxxxx#3 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=326: oxxxxx#3 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=326: oxxxxx#3 nsp=1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=326: oxxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=326: oxxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=326: oxxxxx#3 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=327: oxzxxx#3 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=327: oxzxxx#3 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=327: oxzxxx#3 nsp=1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=327: oxzxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=327: oxzxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=327: oxzxxx#3 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=328: ixxxxx#4 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=328: ixxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=328: ixxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=328: ixxxxx#4 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=328: ixxxxx#4 nsp=1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01 } ); // itest=328: ixxxxx#4 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=329: ixxxxx#4 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=329: ixxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=329: ixxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=329: ixxxxx#4 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=329: ixxxxx#4 nsp=1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01 } ); // itest=329: ixxxxx#4 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=330: ixzxxx#4 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=330: ixzxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=330: ixzxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=330: ixzxxx#4 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=330: ixzxxx#4 nsp=1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01 } ); // itest=330: ixzxxx#4 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=331: vxxxxx#4 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=331: vxxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=331: vxxxxx#4 nsp=1 mass=0 + 3.394112549695428e-01, -5.656854249492381e-01, // itest=331: vxxxxx#4 nsp=1 mass=0 + 4.525483399593904e-01, 4.242640687119285e-01, // itest=331: vxxxxx#4 nsp=1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=331: vxxxxx#4 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=332: vxxxxx#4 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=332: vxxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=332: vxxxxx#4 nsp=1 mass=0 + 3.394112549695428e-01, -5.656854249492381e-01, // itest=332: vxxxxx#4 nsp=1 mass=0 + 4.525483399593904e-01, 4.242640687119285e-01, // itest=332: vxxxxx#4 nsp=1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=332: vxxxxx#4 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=333: sxxxxx#4 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=333: sxxxxx#4 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=333: sxxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=333: sxxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=333: sxxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=333: sxxxxx#4 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=334: sxxxxx#4 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=334: sxxxxx#4 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=334: sxxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=334: sxxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=334: sxxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=334: sxxxxx#4 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=335: oxxxxx#4 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=335: oxxxxx#4 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=335: oxxxxx#4 nsp=1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=335: oxxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=335: oxxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=335: oxxxxx#4 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=336: oxxxxx#4 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=336: oxxxxx#4 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=336: oxxxxx#4 nsp=1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=336: oxxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=336: oxxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=336: oxxxxx#4 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=337: oxzxxx#4 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=337: oxzxxx#4 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=337: oxzxxx#4 nsp=1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=337: oxzxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=337: oxzxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=337: oxzxxx#4 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=338: ixxxxx#5 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=338: ixxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=338: ixxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=338: ixxxxx#5 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=338: ixxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=338: ixxxxx#5 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=339: ixxxxx#5 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=339: ixxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=339: ixxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=339: ixxxxx#5 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=339: ixxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=339: ixxxxx#5 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=340: ipzxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=340: ipzxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=340: ipzxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=340: ipzxxx#5 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=340: ipzxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=340: ipzxxx#5 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=341: vxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=341: vxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=341: vxxxxx#5 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=341: vxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=341: vxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=341: vxxxxx#5 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=342: vxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=342: vxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=342: vxxxxx#5 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=342: vxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=342: vxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=342: vxxxxx#5 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=343: sxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=343: sxxxxx#5 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=343: sxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=343: sxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=343: sxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=343: sxxxxx#5 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=344: sxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=344: sxxxxx#5 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=344: sxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=344: sxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=344: sxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=344: sxxxxx#5 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=345: oxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=345: oxxxxx#5 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=345: oxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=345: oxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=345: oxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=345: oxxxxx#5 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=346: oxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=346: oxxxxx#5 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=346: oxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=346: oxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=346: oxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=346: oxxxxx#5 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=347: opzxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=347: opzxxx#5 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=347: opzxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=347: opzxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=347: opzxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=347: opzxxx#5 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=348: ixxxxx#6 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=348: ixxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=348: ixxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=348: ixxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=348: ixxxxx#6 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=348: ixxxxx#6 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=349: ixxxxx#6 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=349: ixxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=349: ixxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=349: ixxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=349: ixxxxx#6 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=349: ixxxxx#6 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=350: imzxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=350: imzxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=350: imzxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=350: imzxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=350: imzxxx#6 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=350: imzxxx#6 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=351: vxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=351: vxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=351: vxxxxx#6 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=351: vxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=351: vxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=351: vxxxxx#6 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=352: vxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=352: vxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=352: vxxxxx#6 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=352: vxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=352: vxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=352: vxxxxx#6 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=353: sxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=353: sxxxxx#6 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=353: sxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=353: sxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=353: sxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=353: sxxxxx#6 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=354: sxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=354: sxxxxx#6 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=354: sxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=354: sxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=354: sxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=354: sxxxxx#6 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=355: oxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=355: oxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=355: oxxxxx#6 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=355: oxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=355: oxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=355: oxxxxx#6 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=356: oxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=356: oxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=356: oxxxxx#6 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=356: oxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=356: oxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=356: oxxxxx#6 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=357: omzxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=357: omzxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=357: omzxxx#6 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=357: omzxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=357: omzxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=357: omzxxx#6 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=358: ixxxxx#7 nsp=1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=358: ixxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=358: ixxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=358: ixxxxx#7 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=358: ixxxxx#7 nsp=1 mass=0 + 1.341640786499874e+01, 1.788854381999831e+01 } ); // itest=358: ixxxxx#7 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=359: ixxxxx#7 nsp=1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=359: ixxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=359: ixxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=359: ixxxxx#7 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=359: ixxxxx#7 nsp=1 mass=0 + 1.341640786499874e+01, 1.788854381999831e+01 } ); // itest=359: ixxxxx#7 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=360: ixzxxx#7 nsp=1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=360: ixzxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=360: ixzxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=360: ixzxxx#7 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=360: ixzxxx#7 nsp=1 mass=0 + 1.341640786499874e+01, 1.788854381999832e+01 } ); // itest=360: ixzxxx#7 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=361: vxxxxx#7 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=361: vxxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=361: vxxxxx#7 nsp=1 mass=0 + -0.000000000000000e+00, -5.656854249492381e-01, // itest=361: vxxxxx#7 nsp=1 mass=0 + -0.000000000000000e+00, 4.242640687119285e-01, // itest=361: vxxxxx#7 nsp=1 mass=0 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=361: vxxxxx#7 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=362: vxxxxx#7 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=362: vxxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=362: vxxxxx#7 nsp=1 mass=0 + -0.000000000000000e+00, -5.656854249492381e-01, // itest=362: vxxxxx#7 nsp=1 mass=0 + -0.000000000000000e+00, 4.242640687119285e-01, // itest=362: vxxxxx#7 nsp=1 mass=0 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=362: vxxxxx#7 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=363: sxxxxx#7 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=363: sxxxxx#7 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=363: sxxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=363: sxxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=363: sxxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=363: sxxxxx#7 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=364: sxxxxx#7 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=364: sxxxxx#7 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=364: sxxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=364: sxxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=364: sxxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=364: sxxxxx#7 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=365: oxxxxx#7 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=365: oxxxxx#7 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=365: oxxxxx#7 nsp=1 mass=0 + 1.341640786499874e+01, -1.788854381999831e+01, // itest=365: oxxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=365: oxxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=365: oxxxxx#7 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=366: oxxxxx#7 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=366: oxxxxx#7 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=366: oxxxxx#7 nsp=1 mass=0 + 1.341640786499874e+01, -1.788854381999831e+01, // itest=366: oxxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=366: oxxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=366: oxxxxx#7 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=367: oxzxxx#7 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=367: oxzxxx#7 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=367: oxzxxx#7 nsp=1 mass=0 + 1.341640786499874e+01, -1.788854381999832e+01, // itest=367: oxzxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=367: oxzxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=367: oxzxxx#7 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=368: ixxxxx#8 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=368: ixxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=368: ixxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=368: ixxxxx#8 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=368: ixxxxx#8 nsp=1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=368: ixxxxx#8 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=369: ixxxxx#8 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=369: ixxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=369: ixxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=369: ixxxxx#8 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=369: ixxxxx#8 nsp=1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=369: ixxxxx#8 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=370: ixzxxx#8 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=370: ixzxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=370: ixzxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=370: ixzxxx#8 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=370: ixzxxx#8 nsp=1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=370: ixzxxx#8 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=371: vxxxxx#8 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=371: vxxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=371: vxxxxx#8 nsp=1 mass=0 + -3.394112549695428e-01, -5.656854249492381e-01, // itest=371: vxxxxx#8 nsp=1 mass=0 + -4.525483399593904e-01, 4.242640687119285e-01, // itest=371: vxxxxx#8 nsp=1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=371: vxxxxx#8 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=372: vxxxxx#8 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=372: vxxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=372: vxxxxx#8 nsp=1 mass=0 + -3.394112549695428e-01, -5.656854249492381e-01, // itest=372: vxxxxx#8 nsp=1 mass=0 + -4.525483399593904e-01, 4.242640687119285e-01, // itest=372: vxxxxx#8 nsp=1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=372: vxxxxx#8 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=373: sxxxxx#8 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=373: sxxxxx#8 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=373: sxxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=373: sxxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=373: sxxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=373: sxxxxx#8 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=374: sxxxxx#8 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=374: sxxxxx#8 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=374: sxxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=374: sxxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=374: sxxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=374: sxxxxx#8 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=375: oxxxxx#8 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=375: oxxxxx#8 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=375: oxxxxx#8 nsp=1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=375: oxxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=375: oxxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=375: oxxxxx#8 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=376: oxxxxx#8 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=376: oxxxxx#8 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=376: oxxxxx#8 nsp=1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=376: oxxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=376: oxxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=376: oxxxxx#8 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=377: oxzxxx#8 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=377: oxzxxx#8 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=377: oxzxxx#8 nsp=1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=377: oxzxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=377: oxzxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=377: oxzxxx#8 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=378: ixxxxx#9 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=378: ixxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=378: ixxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=378: ixxxxx#9 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=378: ixxxxx#9 nsp=1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01 } ); // itest=378: ixxxxx#9 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=379: ixxxxx#9 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=379: ixxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=379: ixxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=379: ixxxxx#9 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=379: ixxxxx#9 nsp=1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01 } ); // itest=379: ixxxxx#9 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=380: ixzxxx#9 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=380: ixzxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=380: ixzxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=380: ixzxxx#9 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=380: ixzxxx#9 nsp=1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01 } ); // itest=380: ixzxxx#9 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=381: vxxxxx#9 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=381: vxxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=381: vxxxxx#9 nsp=1 mass=0 + 3.394112549695428e-01, -5.656854249492381e-01, // itest=381: vxxxxx#9 nsp=1 mass=0 + 4.525483399593904e-01, 4.242640687119285e-01, // itest=381: vxxxxx#9 nsp=1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=381: vxxxxx#9 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=382: vxxxxx#9 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=382: vxxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=382: vxxxxx#9 nsp=1 mass=0 + 3.394112549695428e-01, -5.656854249492381e-01, // itest=382: vxxxxx#9 nsp=1 mass=0 + 4.525483399593904e-01, 4.242640687119285e-01, // itest=382: vxxxxx#9 nsp=1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=382: vxxxxx#9 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=383: sxxxxx#9 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=383: sxxxxx#9 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=383: sxxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=383: sxxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=383: sxxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=383: sxxxxx#9 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=384: sxxxxx#9 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=384: sxxxxx#9 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=384: sxxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=384: sxxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=384: sxxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=384: sxxxxx#9 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=385: oxxxxx#9 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=385: oxxxxx#9 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=385: oxxxxx#9 nsp=1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=385: oxxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=385: oxxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=385: oxxxxx#9 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=386: oxxxxx#9 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=386: oxxxxx#9 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=386: oxxxxx#9 nsp=1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=386: oxxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=386: oxxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=386: oxxxxx#9 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=387: oxzxxx#9 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=387: oxzxxx#9 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=387: oxzxxx#9 nsp=1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=387: oxzxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=387: oxzxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=387: oxzxxx#9 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=388: ixxxxx#10 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=388: ixxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=388: ixxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=388: ixxxxx#10 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=388: ixxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=388: ixxxxx#10 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=389: ixxxxx#10 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=389: ixxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=389: ixxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=389: ixxxxx#10 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=389: ixxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=389: ixxxxx#10 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=390: ipzxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=390: ipzxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=390: ipzxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=390: ipzxxx#10 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=390: ipzxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=390: ipzxxx#10 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=391: vxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=391: vxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=391: vxxxxx#10 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=391: vxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=391: vxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=391: vxxxxx#10 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=392: vxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=392: vxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=392: vxxxxx#10 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=392: vxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=392: vxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=392: vxxxxx#10 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=393: sxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=393: sxxxxx#10 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=393: sxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=393: sxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=393: sxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=393: sxxxxx#10 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=394: sxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=394: sxxxxx#10 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=394: sxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=394: sxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=394: sxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=394: sxxxxx#10 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=395: oxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=395: oxxxxx#10 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=395: oxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=395: oxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=395: oxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=395: oxxxxx#10 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=396: oxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=396: oxxxxx#10 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=396: oxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=396: oxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=396: oxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=396: oxxxxx#10 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=397: opzxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=397: opzxxx#10 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=397: opzxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=397: opzxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=397: opzxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=397: opzxxx#10 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=398: ixxxxx#11 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=398: ixxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=398: ixxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=398: ixxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=398: ixxxxx#11 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=398: ixxxxx#11 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=399: ixxxxx#11 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=399: ixxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=399: ixxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=399: ixxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=399: ixxxxx#11 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=399: ixxxxx#11 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=400: imzxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=400: imzxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=400: imzxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=400: imzxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=400: imzxxx#11 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=400: imzxxx#11 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=401: vxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=401: vxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=401: vxxxxx#11 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=401: vxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=401: vxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=401: vxxxxx#11 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=402: vxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=402: vxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=402: vxxxxx#11 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=402: vxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=402: vxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=402: vxxxxx#11 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=403: sxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=403: sxxxxx#11 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=403: sxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=403: sxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=403: sxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=403: sxxxxx#11 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=404: sxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=404: sxxxxx#11 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=404: sxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=404: sxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=404: sxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=404: sxxxxx#11 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=405: oxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=405: oxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=405: oxxxxx#11 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=405: oxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=405: oxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=405: oxxxxx#11 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=406: oxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=406: oxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=406: oxxxxx#11 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=406: oxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=406: oxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=406: oxxxxx#11 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=407: omzxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=407: omzxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=407: omzxxx#11 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=407: omzxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=407: omzxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=407: omzxxx#11 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=408: ixxxxx#12 nsp=1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=408: ixxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=408: ixxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=408: ixxxxx#12 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=408: ixxxxx#12 nsp=1 mass=0 + 1.341640786499874e+01, 1.788854381999831e+01 } ); // itest=408: ixxxxx#12 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=409: ixxxxx#12 nsp=1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=409: ixxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=409: ixxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=409: ixxxxx#12 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=409: ixxxxx#12 nsp=1 mass=0 + 1.341640786499874e+01, 1.788854381999831e+01 } ); // itest=409: ixxxxx#12 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=410: ixzxxx#12 nsp=1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=410: ixzxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=410: ixzxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=410: ixzxxx#12 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=410: ixzxxx#12 nsp=1 mass=0 + 1.341640786499874e+01, 1.788854381999832e+01 } ); // itest=410: ixzxxx#12 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=411: vxxxxx#12 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=411: vxxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=411: vxxxxx#12 nsp=1 mass=0 + -0.000000000000000e+00, -5.656854249492381e-01, // itest=411: vxxxxx#12 nsp=1 mass=0 + -0.000000000000000e+00, 4.242640687119285e-01, // itest=411: vxxxxx#12 nsp=1 mass=0 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=411: vxxxxx#12 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=412: vxxxxx#12 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=412: vxxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=412: vxxxxx#12 nsp=1 mass=0 + -0.000000000000000e+00, -5.656854249492381e-01, // itest=412: vxxxxx#12 nsp=1 mass=0 + -0.000000000000000e+00, 4.242640687119285e-01, // itest=412: vxxxxx#12 nsp=1 mass=0 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=412: vxxxxx#12 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=413: sxxxxx#12 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=413: sxxxxx#12 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=413: sxxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=413: sxxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=413: sxxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=413: sxxxxx#12 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=414: sxxxxx#12 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=414: sxxxxx#12 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=414: sxxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=414: sxxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=414: sxxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=414: sxxxxx#12 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=415: oxxxxx#12 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=415: oxxxxx#12 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=415: oxxxxx#12 nsp=1 mass=0 + 1.341640786499874e+01, -1.788854381999831e+01, // itest=415: oxxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=415: oxxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=415: oxxxxx#12 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=416: oxxxxx#12 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=416: oxxxxx#12 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=416: oxxxxx#12 nsp=1 mass=0 + 1.341640786499874e+01, -1.788854381999831e+01, // itest=416: oxxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=416: oxxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=416: oxxxxx#12 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=417: oxzxxx#12 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=417: oxzxxx#12 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=417: oxzxxx#12 nsp=1 mass=0 + 1.341640786499874e+01, -1.788854381999832e+01, // itest=417: oxzxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=417: oxzxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=417: oxzxxx#12 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=418: ixxxxx#13 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=418: ixxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=418: ixxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=418: ixxxxx#13 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=418: ixxxxx#13 nsp=1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=418: ixxxxx#13 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=419: ixxxxx#13 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=419: ixxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=419: ixxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=419: ixxxxx#13 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=419: ixxxxx#13 nsp=1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=419: ixxxxx#13 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=420: ixzxxx#13 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=420: ixzxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=420: ixzxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=420: ixzxxx#13 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=420: ixzxxx#13 nsp=1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=420: ixzxxx#13 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=421: vxxxxx#13 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=421: vxxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=421: vxxxxx#13 nsp=1 mass=0 + -3.394112549695428e-01, -5.656854249492381e-01, // itest=421: vxxxxx#13 nsp=1 mass=0 + -4.525483399593904e-01, 4.242640687119285e-01, // itest=421: vxxxxx#13 nsp=1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=421: vxxxxx#13 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=422: vxxxxx#13 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=422: vxxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=422: vxxxxx#13 nsp=1 mass=0 + -3.394112549695428e-01, -5.656854249492381e-01, // itest=422: vxxxxx#13 nsp=1 mass=0 + -4.525483399593904e-01, 4.242640687119285e-01, // itest=422: vxxxxx#13 nsp=1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=422: vxxxxx#13 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=423: sxxxxx#13 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=423: sxxxxx#13 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=423: sxxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=423: sxxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=423: sxxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=423: sxxxxx#13 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=424: sxxxxx#13 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=424: sxxxxx#13 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=424: sxxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=424: sxxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=424: sxxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=424: sxxxxx#13 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=425: oxxxxx#13 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=425: oxxxxx#13 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=425: oxxxxx#13 nsp=1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=425: oxxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=425: oxxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=425: oxxxxx#13 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=426: oxxxxx#13 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=426: oxxxxx#13 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=426: oxxxxx#13 nsp=1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=426: oxxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=426: oxxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=426: oxxxxx#13 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=427: oxzxxx#13 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=427: oxzxxx#13 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=427: oxzxxx#13 nsp=1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=427: oxzxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=427: oxzxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=427: oxzxxx#13 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=428: ixxxxx#14 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=428: ixxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=428: ixxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=428: ixxxxx#14 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=428: ixxxxx#14 nsp=1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01 } ); // itest=428: ixxxxx#14 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=429: ixxxxx#14 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=429: ixxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=429: ixxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=429: ixxxxx#14 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=429: ixxxxx#14 nsp=1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01 } ); // itest=429: ixxxxx#14 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=430: ixzxxx#14 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=430: ixzxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=430: ixzxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=430: ixzxxx#14 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=430: ixzxxx#14 nsp=1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01 } ); // itest=430: ixzxxx#14 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=431: vxxxxx#14 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=431: vxxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=431: vxxxxx#14 nsp=1 mass=0 + 3.394112549695428e-01, -5.656854249492381e-01, // itest=431: vxxxxx#14 nsp=1 mass=0 + 4.525483399593904e-01, 4.242640687119285e-01, // itest=431: vxxxxx#14 nsp=1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=431: vxxxxx#14 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=432: vxxxxx#14 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=432: vxxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=432: vxxxxx#14 nsp=1 mass=0 + 3.394112549695428e-01, -5.656854249492381e-01, // itest=432: vxxxxx#14 nsp=1 mass=0 + 4.525483399593904e-01, 4.242640687119285e-01, // itest=432: vxxxxx#14 nsp=1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=432: vxxxxx#14 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=433: sxxxxx#14 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=433: sxxxxx#14 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=433: sxxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=433: sxxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=433: sxxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=433: sxxxxx#14 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=434: sxxxxx#14 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=434: sxxxxx#14 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=434: sxxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=434: sxxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=434: sxxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=434: sxxxxx#14 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=435: oxxxxx#14 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=435: oxxxxx#14 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=435: oxxxxx#14 nsp=1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=435: oxxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=435: oxxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=435: oxxxxx#14 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=436: oxxxxx#14 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=436: oxxxxx#14 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=436: oxxxxx#14 nsp=1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=436: oxxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=436: oxxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=436: oxxxxx#14 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=437: oxzxxx#14 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=437: oxzxxx#14 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=437: oxzxxx#14 nsp=1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=437: oxzxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=437: oxzxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=437: oxzxxx#14 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=438: ixxxxx#15 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=438: ixxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=438: ixxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=438: ixxxxx#15 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=438: ixxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=438: ixxxxx#15 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=439: ixxxxx#15 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=439: ixxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=439: ixxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=439: ixxxxx#15 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=439: ixxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=439: ixxxxx#15 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=440: ipzxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=440: ipzxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=440: ipzxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=440: ipzxxx#15 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=440: ipzxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=440: ipzxxx#15 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=441: vxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=441: vxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=441: vxxxxx#15 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=441: vxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=441: vxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=441: vxxxxx#15 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=442: vxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=442: vxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=442: vxxxxx#15 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=442: vxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=442: vxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=442: vxxxxx#15 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=443: sxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=443: sxxxxx#15 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=443: sxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=443: sxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=443: sxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=443: sxxxxx#15 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=444: sxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=444: sxxxxx#15 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=444: sxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=444: sxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=444: sxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=444: sxxxxx#15 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=445: oxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=445: oxxxxx#15 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=445: oxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=445: oxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=445: oxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=445: oxxxxx#15 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=446: oxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=446: oxxxxx#15 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=446: oxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=446: oxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=446: oxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=446: oxxxxx#15 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=447: opzxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=447: opzxxx#15 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=447: opzxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=447: opzxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=447: opzxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=447: opzxxx#15 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=448: ixxxxx#16 nsp=1 mass=500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=448: ixxxxx#16 nsp=1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=448: ixxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=448: ixxxxx#16 nsp=1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=448: ixxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=448: ixxxxx#16 nsp=1 mass=500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=449: ixxxxx#16 nsp=1 mass=-500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=449: ixxxxx#16 nsp=1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=449: ixxxxx#16 nsp=1 mass=-500 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=449: ixxxxx#16 nsp=1 mass=-500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=449: ixxxxx#16 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=449: ixxxxx#16 nsp=1 mass=-500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=450: vxxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=450: vxxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=450: vxxxxx#16 nsp=1 mass=500 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=450: vxxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=450: vxxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=450: vxxxxx#16 nsp=1 mass=500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=451: vxxxxx#16 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=451: vxxxxx#16 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=451: vxxxxx#16 nsp=1 mass=-500 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=451: vxxxxx#16 nsp=1 mass=-500 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=451: vxxxxx#16 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=451: vxxxxx#16 nsp=1 mass=-500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=452: sxxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=452: sxxxxx#16 nsp=1 mass=500 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=452: sxxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=452: sxxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=452: sxxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=452: sxxxxx#16 nsp=1 mass=500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=453: sxxxxx#16 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=453: sxxxxx#16 nsp=1 mass=-500 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=453: sxxxxx#16 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=453: sxxxxx#16 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=453: sxxxxx#16 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=453: sxxxxx#16 nsp=1 mass=-500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=454: oxxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=454: oxxxxx#16 nsp=1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=454: oxxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=454: oxxxxx#16 nsp=1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=454: oxxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=454: oxxxxx#16 nsp=1 mass=500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=455: oxxxxx#16 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=455: oxxxxx#16 nsp=1 mass=-500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=455: oxxxxx#16 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=455: oxxxxx#16 nsp=1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=455: oxxxxx#16 nsp=1 mass=-500 + -0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=455: oxxxxx#16 nsp=1 mass=-500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=456: ixxxxx#17 nsp=1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=456: ixxxxx#17 nsp=1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=456: ixxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=456: ixxxxx#17 nsp=1 mass=400 + 2.828427124746190e+01, 0.000000000000000e+00, // itest=456: ixxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=456: ixxxxx#17 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=457: ixxxxx#17 nsp=1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=457: ixxxxx#17 nsp=1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=457: ixxxxx#17 nsp=1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=457: ixxxxx#17 nsp=1 mass=-400 + 2.828427124746190e+01, 0.000000000000000e+00, // itest=457: ixxxxx#17 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=457: ixxxxx#17 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=458: vxxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=458: vxxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=458: vxxxxx#17 nsp=1 mass=400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=458: vxxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=458: vxxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=458: vxxxxx#17 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=459: vxxxxx#17 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=459: vxxxxx#17 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=459: vxxxxx#17 nsp=1 mass=-400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=459: vxxxxx#17 nsp=1 mass=-400 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=459: vxxxxx#17 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=459: vxxxxx#17 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=460: sxxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=460: sxxxxx#17 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=460: sxxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=460: sxxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=460: sxxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=460: sxxxxx#17 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=461: sxxxxx#17 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=461: sxxxxx#17 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=461: sxxxxx#17 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=461: sxxxxx#17 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=461: sxxxxx#17 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=461: sxxxxx#17 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=462: oxxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=462: oxxxxx#17 nsp=1 mass=400 + 2.828427124746190e+01, 0.000000000000000e+00, // itest=462: oxxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=462: oxxxxx#17 nsp=1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=462: oxxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=462: oxxxxx#17 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=463: oxxxxx#17 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=463: oxxxxx#17 nsp=1 mass=-400 + 2.828427124746190e+01, 0.000000000000000e+00, // itest=463: oxxxxx#17 nsp=1 mass=-400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=463: oxxxxx#17 nsp=1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=463: oxxxxx#17 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=463: oxxxxx#17 nsp=1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=464: ixxxxx#18 nsp=1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=464: ixxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=464: ixxxxx#18 nsp=1 mass=400 + -1.414213562373095e+01, 0.000000000000000e+00, // itest=464: ixxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=464: ixxxxx#18 nsp=1 mass=400 + -2.828427124746190e+01, 0.000000000000000e+00 } ); // itest=464: ixxxxx#18 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=465: ixxxxx#18 nsp=1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=465: ixxxxx#18 nsp=1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=465: ixxxxx#18 nsp=1 mass=-400 + 1.414213562373095e+01, -0.000000000000000e+00, // itest=465: ixxxxx#18 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=465: ixxxxx#18 nsp=1 mass=-400 + -2.828427124746190e+01, 0.000000000000000e+00 } ); // itest=465: ixxxxx#18 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=466: vxxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=466: vxxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=466: vxxxxx#18 nsp=1 mass=400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=466: vxxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=466: vxxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=466: vxxxxx#18 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=467: vxxxxx#18 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=467: vxxxxx#18 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=467: vxxxxx#18 nsp=1 mass=-400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=467: vxxxxx#18 nsp=1 mass=-400 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=467: vxxxxx#18 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=467: vxxxxx#18 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=468: sxxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=468: sxxxxx#18 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=468: sxxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=468: sxxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=468: sxxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=468: sxxxxx#18 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=469: sxxxxx#18 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=469: sxxxxx#18 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=469: sxxxxx#18 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=469: sxxxxx#18 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=469: sxxxxx#18 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=469: sxxxxx#18 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=470: oxxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=470: oxxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=470: oxxxxx#18 nsp=1 mass=400 + -2.828427124746190e+01, 0.000000000000000e+00, // itest=470: oxxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=470: oxxxxx#18 nsp=1 mass=400 + -1.414213562373095e+01, 0.000000000000000e+00 } ); // itest=470: oxxxxx#18 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=471: oxxxxx#18 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=471: oxxxxx#18 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=471: oxxxxx#18 nsp=1 mass=-400 + -2.828427124746190e+01, 0.000000000000000e+00, // itest=471: oxxxxx#18 nsp=1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=471: oxxxxx#18 nsp=1 mass=-400 + 1.414213562373095e+01, -0.000000000000000e+00 } ); // itest=471: oxxxxx#18 nsp=1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=472: ixxxxx#19 nsp=1 mass=400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=472: ixxxxx#19 nsp=1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=472: ixxxxx#19 nsp=1 mass=400 + 5.999999999999999e+00, 7.999999999999999e+00, // itest=472: ixxxxx#19 nsp=1 mass=400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=472: ixxxxx#19 nsp=1 mass=400 + 1.200000000000000e+01, 1.600000000000000e+01 } ); // itest=472: ixxxxx#19 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=473: ixxxxx#19 nsp=1 mass=-400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=473: ixxxxx#19 nsp=1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00, // itest=473: ixxxxx#19 nsp=1 mass=-400 + -5.999999999999999e+00, -7.999999999999999e+00, // itest=473: ixxxxx#19 nsp=1 mass=-400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=473: ixxxxx#19 nsp=1 mass=-400 + 1.200000000000000e+01, 1.600000000000000e+01 } ); // itest=473: ixxxxx#19 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=474: vxxxxx#19 nsp=1 mass=400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=474: vxxxxx#19 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=474: vxxxxx#19 nsp=1 mass=400 + 0.000000000000000e+00, -5.656854249492381e-01, // itest=474: vxxxxx#19 nsp=1 mass=400 + 0.000000000000000e+00, 4.242640687119285e-01, // itest=474: vxxxxx#19 nsp=1 mass=400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=474: vxxxxx#19 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=475: vxxxxx#19 nsp=1 mass=-400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=475: vxxxxx#19 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=475: vxxxxx#19 nsp=1 mass=-400 + -0.000000000000000e+00, -5.656854249492381e-01, // itest=475: vxxxxx#19 nsp=1 mass=-400 + -0.000000000000000e+00, 4.242640687119285e-01, // itest=475: vxxxxx#19 nsp=1 mass=-400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=475: vxxxxx#19 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=476: sxxxxx#19 nsp=1 mass=400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=476: sxxxxx#19 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=476: sxxxxx#19 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=476: sxxxxx#19 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=476: sxxxxx#19 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=476: sxxxxx#19 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=477: sxxxxx#19 nsp=1 mass=-400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=477: sxxxxx#19 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=477: sxxxxx#19 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=477: sxxxxx#19 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=477: sxxxxx#19 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=477: sxxxxx#19 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=478: oxxxxx#19 nsp=1 mass=400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=478: oxxxxx#19 nsp=1 mass=400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=478: oxxxxx#19 nsp=1 mass=400 + 1.200000000000000e+01, -1.600000000000000e+01, // itest=478: oxxxxx#19 nsp=1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=478: oxxxxx#19 nsp=1 mass=400 + 5.999999999999999e+00, -7.999999999999999e+00 } ); // itest=478: oxxxxx#19 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=479: oxxxxx#19 nsp=1 mass=-400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=479: oxxxxx#19 nsp=1 mass=-400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=479: oxxxxx#19 nsp=1 mass=-400 + 1.200000000000000e+01, -1.600000000000000e+01, // itest=479: oxxxxx#19 nsp=1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00, // itest=479: oxxxxx#19 nsp=1 mass=-400 + -5.999999999999999e+00, 7.999999999999999e+00 } ); // itest=479: oxxxxx#19 nsp=1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=480: ixxxxx#20 nsp=1 mass=400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=480: ixxxxx#20 nsp=1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=480: ixxxxx#20 nsp=1 mass=400 + -7.999999999999999e+00, -5.999999999999999e+00, // itest=480: ixxxxx#20 nsp=1 mass=400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=480: ixxxxx#20 nsp=1 mass=400 + -1.600000000000000e+01, -1.200000000000000e+01 } ); // itest=480: ixxxxx#20 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=481: ixxxxx#20 nsp=1 mass=-400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=481: ixxxxx#20 nsp=1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00, // itest=481: ixxxxx#20 nsp=1 mass=-400 + 7.999999999999999e+00, 5.999999999999999e+00, // itest=481: ixxxxx#20 nsp=1 mass=-400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=481: ixxxxx#20 nsp=1 mass=-400 + -1.600000000000000e+01, -1.200000000000000e+01 } ); // itest=481: ixxxxx#20 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=482: vxxxxx#20 nsp=1 mass=400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=482: vxxxxx#20 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=482: vxxxxx#20 nsp=1 mass=400 + 0.000000000000000e+00, 4.242640687119285e-01, // itest=482: vxxxxx#20 nsp=1 mass=400 + 0.000000000000000e+00, -5.656854249492381e-01, // itest=482: vxxxxx#20 nsp=1 mass=400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=482: vxxxxx#20 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=483: vxxxxx#20 nsp=1 mass=-400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=483: vxxxxx#20 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=483: vxxxxx#20 nsp=1 mass=-400 + 0.000000000000000e+00, 4.242640687119285e-01, // itest=483: vxxxxx#20 nsp=1 mass=-400 + 0.000000000000000e+00, -5.656854249492381e-01, // itest=483: vxxxxx#20 nsp=1 mass=-400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=483: vxxxxx#20 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=484: sxxxxx#20 nsp=1 mass=400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=484: sxxxxx#20 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=484: sxxxxx#20 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=484: sxxxxx#20 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=484: sxxxxx#20 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=484: sxxxxx#20 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=485: sxxxxx#20 nsp=1 mass=-400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=485: sxxxxx#20 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=485: sxxxxx#20 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=485: sxxxxx#20 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=485: sxxxxx#20 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=485: sxxxxx#20 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=486: oxxxxx#20 nsp=1 mass=400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=486: oxxxxx#20 nsp=1 mass=400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=486: oxxxxx#20 nsp=1 mass=400 + -1.600000000000000e+01, 1.200000000000000e+01, // itest=486: oxxxxx#20 nsp=1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=486: oxxxxx#20 nsp=1 mass=400 + -7.999999999999999e+00, 5.999999999999999e+00 } ); // itest=486: oxxxxx#20 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=487: oxxxxx#20 nsp=1 mass=-400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=487: oxxxxx#20 nsp=1 mass=-400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=487: oxxxxx#20 nsp=1 mass=-400 + -1.600000000000000e+01, 1.200000000000000e+01, // itest=487: oxxxxx#20 nsp=1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00, // itest=487: oxxxxx#20 nsp=1 mass=-400 + 7.999999999999999e+00, -5.999999999999999e+00 } ); // itest=487: oxxxxx#20 nsp=1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=488: ixxxxx#21 nsp=1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=488: ixxxxx#21 nsp=1 mass=400 + 1.216552506059644e+01, 0.000000000000000e+00, // itest=488: ixxxxx#21 nsp=1 mass=400 + 4.931969619160719e+00, 5.260767593771432e+00, // itest=488: ixxxxx#21 nsp=1 mass=400 + 2.433105012119288e+01, 0.000000000000000e+00, // itest=488: ixxxxx#21 nsp=1 mass=400 + 9.863939238321439e+00, 1.052153518754287e+01 } ); // itest=488: ixxxxx#21 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=489: ixxxxx#21 nsp=1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=489: ixxxxx#21 nsp=1 mass=-400 + -1.216552506059644e+01, -0.000000000000000e+00, // itest=489: ixxxxx#21 nsp=1 mass=-400 + -4.931969619160719e+00, -5.260767593771432e+00, // itest=489: ixxxxx#21 nsp=1 mass=-400 + 2.433105012119288e+01, 0.000000000000000e+00, // itest=489: ixxxxx#21 nsp=1 mass=-400 + 9.863939238321439e+00, 1.052153518754287e+01 } ); // itest=489: ixxxxx#21 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=490: vxxxxx#21 nsp=1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=490: vxxxxx#21 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=490: vxxxxx#21 nsp=1 mass=400 + -2.321373168788980e-01, -5.158607041753289e-01, // itest=490: vxxxxx#21 nsp=1 mass=400 + -2.476131380041579e-01, 4.836194101643708e-01, // itest=490: vxxxxx#21 nsp=1 mass=400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=490: vxxxxx#21 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=491: vxxxxx#21 nsp=1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=491: vxxxxx#21 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=491: vxxxxx#21 nsp=1 mass=-400 + -2.321373168788980e-01, -5.158607041753289e-01, // itest=491: vxxxxx#21 nsp=1 mass=-400 + -2.476131380041579e-01, 4.836194101643708e-01, // itest=491: vxxxxx#21 nsp=1 mass=-400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=491: vxxxxx#21 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=492: sxxxxx#21 nsp=1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=492: sxxxxx#21 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=492: sxxxxx#21 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=492: sxxxxx#21 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=492: sxxxxx#21 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=492: sxxxxx#21 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=493: sxxxxx#21 nsp=1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=493: sxxxxx#21 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=493: sxxxxx#21 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=493: sxxxxx#21 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=493: sxxxxx#21 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=493: sxxxxx#21 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=494: oxxxxx#21 nsp=1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=494: oxxxxx#21 nsp=1 mass=400 + 2.433105012119288e+01, 0.000000000000000e+00, // itest=494: oxxxxx#21 nsp=1 mass=400 + 9.863939238321439e+00, -1.052153518754287e+01, // itest=494: oxxxxx#21 nsp=1 mass=400 + 1.216552506059644e+01, 0.000000000000000e+00, // itest=494: oxxxxx#21 nsp=1 mass=400 + 4.931969619160719e+00, -5.260767593771432e+00 } ); // itest=494: oxxxxx#21 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=495: oxxxxx#21 nsp=1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=495: oxxxxx#21 nsp=1 mass=-400 + 2.433105012119288e+01, 0.000000000000000e+00, // itest=495: oxxxxx#21 nsp=1 mass=-400 + 9.863939238321439e+00, -1.052153518754287e+01, // itest=495: oxxxxx#21 nsp=1 mass=-400 + -1.216552506059644e+01, -0.000000000000000e+00, // itest=495: oxxxxx#21 nsp=1 mass=-400 + -4.931969619160719e+00, 5.260767593771432e+00 } ); // itest=495: oxxxxx#21 nsp=1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=496: ixxxxx#22 nsp=1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=496: ixxxxx#22 nsp=1 mass=400 + 7.211102550927978e+00, 0.000000000000000e+00, // itest=496: ixxxxx#22 nsp=1 mass=400 + 8.320502943378436e+00, 8.875203139603666e+00, // itest=496: ixxxxx#22 nsp=1 mass=400 + 1.442220510185596e+01, 0.000000000000000e+00, // itest=496: ixxxxx#22 nsp=1 mass=400 + 1.664100588675688e+01, 1.775040627920733e+01 } ); // itest=496: ixxxxx#22 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=497: ixxxxx#22 nsp=1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=497: ixxxxx#22 nsp=1 mass=-400 + -7.211102550927978e+00, -0.000000000000000e+00, // itest=497: ixxxxx#22 nsp=1 mass=-400 + -8.320502943378436e+00, -8.875203139603666e+00, // itest=497: ixxxxx#22 nsp=1 mass=-400 + 1.442220510185596e+01, 0.000000000000000e+00, // itest=497: ixxxxx#22 nsp=1 mass=-400 + 1.664100588675688e+01, 1.775040627920733e+01 } ); // itest=497: ixxxxx#22 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=498: vxxxxx#22 nsp=1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=498: vxxxxx#22 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=498: vxxxxx#22 nsp=1 mass=400 + 2.321373168788980e-01, -5.158607041753289e-01, // itest=498: vxxxxx#22 nsp=1 mass=400 + 2.476131380041579e-01, 4.836194101643708e-01, // itest=498: vxxxxx#22 nsp=1 mass=400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=498: vxxxxx#22 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=499: vxxxxx#22 nsp=1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=499: vxxxxx#22 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=499: vxxxxx#22 nsp=1 mass=-400 + 2.321373168788980e-01, -5.158607041753289e-01, // itest=499: vxxxxx#22 nsp=1 mass=-400 + 2.476131380041579e-01, 4.836194101643708e-01, // itest=499: vxxxxx#22 nsp=1 mass=-400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=499: vxxxxx#22 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=500: sxxxxx#22 nsp=1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=500: sxxxxx#22 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=500: sxxxxx#22 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=500: sxxxxx#22 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=500: sxxxxx#22 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=500: sxxxxx#22 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=501: sxxxxx#22 nsp=1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=501: sxxxxx#22 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=501: sxxxxx#22 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=501: sxxxxx#22 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=501: sxxxxx#22 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=501: sxxxxx#22 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=502: oxxxxx#22 nsp=1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=502: oxxxxx#22 nsp=1 mass=400 + 1.442220510185596e+01, 0.000000000000000e+00, // itest=502: oxxxxx#22 nsp=1 mass=400 + 1.664100588675688e+01, -1.775040627920733e+01, // itest=502: oxxxxx#22 nsp=1 mass=400 + 7.211102550927978e+00, 0.000000000000000e+00, // itest=502: oxxxxx#22 nsp=1 mass=400 + 8.320502943378436e+00, -8.875203139603666e+00 } ); // itest=502: oxxxxx#22 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=503: oxxxxx#22 nsp=1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=503: oxxxxx#22 nsp=1 mass=-400 + 1.442220510185596e+01, 0.000000000000000e+00, // itest=503: oxxxxx#22 nsp=1 mass=-400 + 1.664100588675688e+01, -1.775040627920733e+01, // itest=503: oxxxxx#22 nsp=1 mass=-400 + -7.211102550927978e+00, -0.000000000000000e+00, // itest=503: oxxxxx#22 nsp=1 mass=-400 + -8.320502943378436e+00, 8.875203139603666e+00 } ); // itest=503: oxxxxx#22 nsp=1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=504: ixxxxx#23 nsp=1 mass=500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=504: ixxxxx#23 nsp=1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=504: ixxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=504: ixxxxx#23 nsp=1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=504: ixxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=504: ixxxxx#23 nsp=1 mass=500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=505: ixxxxx#23 nsp=1 mass=-500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=505: ixxxxx#23 nsp=1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=505: ixxxxx#23 nsp=1 mass=-500 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=505: ixxxxx#23 nsp=1 mass=-500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=505: ixxxxx#23 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=505: ixxxxx#23 nsp=1 mass=-500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=506: vxxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=506: vxxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=506: vxxxxx#23 nsp=1 mass=500 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=506: vxxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=506: vxxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=506: vxxxxx#23 nsp=1 mass=500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=507: vxxxxx#23 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=507: vxxxxx#23 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=507: vxxxxx#23 nsp=1 mass=-500 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=507: vxxxxx#23 nsp=1 mass=-500 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=507: vxxxxx#23 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=507: vxxxxx#23 nsp=1 mass=-500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=508: sxxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=508: sxxxxx#23 nsp=1 mass=500 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=508: sxxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=508: sxxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=508: sxxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=508: sxxxxx#23 nsp=1 mass=500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=509: sxxxxx#23 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=509: sxxxxx#23 nsp=1 mass=-500 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=509: sxxxxx#23 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=509: sxxxxx#23 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=509: sxxxxx#23 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=509: sxxxxx#23 nsp=1 mass=-500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=510: oxxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=510: oxxxxx#23 nsp=1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=510: oxxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=510: oxxxxx#23 nsp=1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=510: oxxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=510: oxxxxx#23 nsp=1 mass=500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=511: oxxxxx#23 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=511: oxxxxx#23 nsp=1 mass=-500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=511: oxxxxx#23 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=511: oxxxxx#23 nsp=1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=511: oxxxxx#23 nsp=1 mass=-500 + -0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=511: oxxxxx#23 nsp=1 mass=-500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=512: ixxxxx#24 nsp=1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=512: ixxxxx#24 nsp=1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=512: ixxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=512: ixxxxx#24 nsp=1 mass=400 + 2.828427124746190e+01, 0.000000000000000e+00, // itest=512: ixxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=512: ixxxxx#24 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=513: ixxxxx#24 nsp=1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=513: ixxxxx#24 nsp=1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=513: ixxxxx#24 nsp=1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=513: ixxxxx#24 nsp=1 mass=-400 + 2.828427124746190e+01, 0.000000000000000e+00, // itest=513: ixxxxx#24 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=513: ixxxxx#24 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=514: vxxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=514: vxxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=514: vxxxxx#24 nsp=1 mass=400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=514: vxxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=514: vxxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=514: vxxxxx#24 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=515: vxxxxx#24 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=515: vxxxxx#24 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=515: vxxxxx#24 nsp=1 mass=-400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=515: vxxxxx#24 nsp=1 mass=-400 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=515: vxxxxx#24 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=515: vxxxxx#24 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=516: sxxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=516: sxxxxx#24 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=516: sxxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=516: sxxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=516: sxxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=516: sxxxxx#24 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=517: sxxxxx#24 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=517: sxxxxx#24 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=517: sxxxxx#24 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=517: sxxxxx#24 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=517: sxxxxx#24 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=517: sxxxxx#24 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=518: oxxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=518: oxxxxx#24 nsp=1 mass=400 + 2.828427124746190e+01, 0.000000000000000e+00, // itest=518: oxxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=518: oxxxxx#24 nsp=1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=518: oxxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=518: oxxxxx#24 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=519: oxxxxx#24 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=519: oxxxxx#24 nsp=1 mass=-400 + 2.828427124746190e+01, 0.000000000000000e+00, // itest=519: oxxxxx#24 nsp=1 mass=-400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=519: oxxxxx#24 nsp=1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=519: oxxxxx#24 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=519: oxxxxx#24 nsp=1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=520: ixxxxx#25 nsp=1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=520: ixxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=520: ixxxxx#25 nsp=1 mass=400 + -1.414213562373095e+01, 0.000000000000000e+00, // itest=520: ixxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=520: ixxxxx#25 nsp=1 mass=400 + -2.828427124746190e+01, 0.000000000000000e+00 } ); // itest=520: ixxxxx#25 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=521: ixxxxx#25 nsp=1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=521: ixxxxx#25 nsp=1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=521: ixxxxx#25 nsp=1 mass=-400 + 1.414213562373095e+01, -0.000000000000000e+00, // itest=521: ixxxxx#25 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=521: ixxxxx#25 nsp=1 mass=-400 + -2.828427124746190e+01, 0.000000000000000e+00 } ); // itest=521: ixxxxx#25 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=522: vxxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=522: vxxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=522: vxxxxx#25 nsp=1 mass=400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=522: vxxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=522: vxxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=522: vxxxxx#25 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=523: vxxxxx#25 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=523: vxxxxx#25 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=523: vxxxxx#25 nsp=1 mass=-400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=523: vxxxxx#25 nsp=1 mass=-400 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=523: vxxxxx#25 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=523: vxxxxx#25 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=524: sxxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=524: sxxxxx#25 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=524: sxxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=524: sxxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=524: sxxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=524: sxxxxx#25 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=525: sxxxxx#25 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=525: sxxxxx#25 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=525: sxxxxx#25 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=525: sxxxxx#25 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=525: sxxxxx#25 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=525: sxxxxx#25 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=526: oxxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=526: oxxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=526: oxxxxx#25 nsp=1 mass=400 + -2.828427124746190e+01, 0.000000000000000e+00, // itest=526: oxxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=526: oxxxxx#25 nsp=1 mass=400 + -1.414213562373095e+01, 0.000000000000000e+00 } ); // itest=526: oxxxxx#25 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=527: oxxxxx#25 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=527: oxxxxx#25 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=527: oxxxxx#25 nsp=1 mass=-400 + -2.828427124746190e+01, 0.000000000000000e+00, // itest=527: oxxxxx#25 nsp=1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=527: oxxxxx#25 nsp=1 mass=-400 + 1.414213562373095e+01, -0.000000000000000e+00 } ); // itest=527: oxxxxx#25 nsp=1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=528: ixxxxx#26 nsp=1 mass=400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=528: ixxxxx#26 nsp=1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=528: ixxxxx#26 nsp=1 mass=400 + 5.999999999999999e+00, 7.999999999999999e+00, // itest=528: ixxxxx#26 nsp=1 mass=400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=528: ixxxxx#26 nsp=1 mass=400 + 1.200000000000000e+01, 1.600000000000000e+01 } ); // itest=528: ixxxxx#26 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=529: ixxxxx#26 nsp=1 mass=-400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=529: ixxxxx#26 nsp=1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00, // itest=529: ixxxxx#26 nsp=1 mass=-400 + -5.999999999999999e+00, -7.999999999999999e+00, // itest=529: ixxxxx#26 nsp=1 mass=-400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=529: ixxxxx#26 nsp=1 mass=-400 + 1.200000000000000e+01, 1.600000000000000e+01 } ); // itest=529: ixxxxx#26 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=530: vxxxxx#26 nsp=1 mass=400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=530: vxxxxx#26 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=530: vxxxxx#26 nsp=1 mass=400 + 0.000000000000000e+00, -5.656854249492381e-01, // itest=530: vxxxxx#26 nsp=1 mass=400 + 0.000000000000000e+00, 4.242640687119285e-01, // itest=530: vxxxxx#26 nsp=1 mass=400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=530: vxxxxx#26 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=531: vxxxxx#26 nsp=1 mass=-400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=531: vxxxxx#26 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=531: vxxxxx#26 nsp=1 mass=-400 + -0.000000000000000e+00, -5.656854249492381e-01, // itest=531: vxxxxx#26 nsp=1 mass=-400 + -0.000000000000000e+00, 4.242640687119285e-01, // itest=531: vxxxxx#26 nsp=1 mass=-400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=531: vxxxxx#26 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=532: sxxxxx#26 nsp=1 mass=400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=532: sxxxxx#26 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=532: sxxxxx#26 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=532: sxxxxx#26 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=532: sxxxxx#26 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=532: sxxxxx#26 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=533: sxxxxx#26 nsp=1 mass=-400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=533: sxxxxx#26 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=533: sxxxxx#26 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=533: sxxxxx#26 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=533: sxxxxx#26 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=533: sxxxxx#26 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=534: oxxxxx#26 nsp=1 mass=400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=534: oxxxxx#26 nsp=1 mass=400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=534: oxxxxx#26 nsp=1 mass=400 + 1.200000000000000e+01, -1.600000000000000e+01, // itest=534: oxxxxx#26 nsp=1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=534: oxxxxx#26 nsp=1 mass=400 + 5.999999999999999e+00, -7.999999999999999e+00 } ); // itest=534: oxxxxx#26 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=535: oxxxxx#26 nsp=1 mass=-400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=535: oxxxxx#26 nsp=1 mass=-400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=535: oxxxxx#26 nsp=1 mass=-400 + 1.200000000000000e+01, -1.600000000000000e+01, // itest=535: oxxxxx#26 nsp=1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00, // itest=535: oxxxxx#26 nsp=1 mass=-400 + -5.999999999999999e+00, 7.999999999999999e+00 } ); // itest=535: oxxxxx#26 nsp=1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=536: ixxxxx#27 nsp=1 mass=400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=536: ixxxxx#27 nsp=1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=536: ixxxxx#27 nsp=1 mass=400 + -7.999999999999999e+00, -5.999999999999999e+00, // itest=536: ixxxxx#27 nsp=1 mass=400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=536: ixxxxx#27 nsp=1 mass=400 + -1.600000000000000e+01, -1.200000000000000e+01 } ); // itest=536: ixxxxx#27 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=537: ixxxxx#27 nsp=1 mass=-400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=537: ixxxxx#27 nsp=1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00, // itest=537: ixxxxx#27 nsp=1 mass=-400 + 7.999999999999999e+00, 5.999999999999999e+00, // itest=537: ixxxxx#27 nsp=1 mass=-400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=537: ixxxxx#27 nsp=1 mass=-400 + -1.600000000000000e+01, -1.200000000000000e+01 } ); // itest=537: ixxxxx#27 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=538: vxxxxx#27 nsp=1 mass=400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=538: vxxxxx#27 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=538: vxxxxx#27 nsp=1 mass=400 + 0.000000000000000e+00, 4.242640687119285e-01, // itest=538: vxxxxx#27 nsp=1 mass=400 + 0.000000000000000e+00, -5.656854249492381e-01, // itest=538: vxxxxx#27 nsp=1 mass=400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=538: vxxxxx#27 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=539: vxxxxx#27 nsp=1 mass=-400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=539: vxxxxx#27 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=539: vxxxxx#27 nsp=1 mass=-400 + 0.000000000000000e+00, 4.242640687119285e-01, // itest=539: vxxxxx#27 nsp=1 mass=-400 + 0.000000000000000e+00, -5.656854249492381e-01, // itest=539: vxxxxx#27 nsp=1 mass=-400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=539: vxxxxx#27 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=540: sxxxxx#27 nsp=1 mass=400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=540: sxxxxx#27 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=540: sxxxxx#27 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=540: sxxxxx#27 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=540: sxxxxx#27 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=540: sxxxxx#27 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=541: sxxxxx#27 nsp=1 mass=-400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=541: sxxxxx#27 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=541: sxxxxx#27 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=541: sxxxxx#27 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=541: sxxxxx#27 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=541: sxxxxx#27 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=542: oxxxxx#27 nsp=1 mass=400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=542: oxxxxx#27 nsp=1 mass=400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=542: oxxxxx#27 nsp=1 mass=400 + -1.600000000000000e+01, 1.200000000000000e+01, // itest=542: oxxxxx#27 nsp=1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=542: oxxxxx#27 nsp=1 mass=400 + -7.999999999999999e+00, 5.999999999999999e+00 } ); // itest=542: oxxxxx#27 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=543: oxxxxx#27 nsp=1 mass=-400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=543: oxxxxx#27 nsp=1 mass=-400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=543: oxxxxx#27 nsp=1 mass=-400 + -1.600000000000000e+01, 1.200000000000000e+01, // itest=543: oxxxxx#27 nsp=1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00, // itest=543: oxxxxx#27 nsp=1 mass=-400 + 7.999999999999999e+00, -5.999999999999999e+00 } ); // itest=543: oxxxxx#27 nsp=1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=544: ixxxxx#28 nsp=1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=544: ixxxxx#28 nsp=1 mass=400 + 1.216552506059644e+01, 0.000000000000000e+00, // itest=544: ixxxxx#28 nsp=1 mass=400 + 4.931969619160719e+00, 5.260767593771432e+00, // itest=544: ixxxxx#28 nsp=1 mass=400 + 2.433105012119288e+01, 0.000000000000000e+00, // itest=544: ixxxxx#28 nsp=1 mass=400 + 9.863939238321439e+00, 1.052153518754287e+01 } ); // itest=544: ixxxxx#28 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=545: ixxxxx#28 nsp=1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=545: ixxxxx#28 nsp=1 mass=-400 + -1.216552506059644e+01, -0.000000000000000e+00, // itest=545: ixxxxx#28 nsp=1 mass=-400 + -4.931969619160719e+00, -5.260767593771432e+00, // itest=545: ixxxxx#28 nsp=1 mass=-400 + 2.433105012119288e+01, 0.000000000000000e+00, // itest=545: ixxxxx#28 nsp=1 mass=-400 + 9.863939238321439e+00, 1.052153518754287e+01 } ); // itest=545: ixxxxx#28 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=546: vxxxxx#28 nsp=1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=546: vxxxxx#28 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=546: vxxxxx#28 nsp=1 mass=400 + -2.321373168788980e-01, -5.158607041753289e-01, // itest=546: vxxxxx#28 nsp=1 mass=400 + -2.476131380041579e-01, 4.836194101643708e-01, // itest=546: vxxxxx#28 nsp=1 mass=400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=546: vxxxxx#28 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=547: vxxxxx#28 nsp=1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=547: vxxxxx#28 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=547: vxxxxx#28 nsp=1 mass=-400 + -2.321373168788980e-01, -5.158607041753289e-01, // itest=547: vxxxxx#28 nsp=1 mass=-400 + -2.476131380041579e-01, 4.836194101643708e-01, // itest=547: vxxxxx#28 nsp=1 mass=-400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=547: vxxxxx#28 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=548: sxxxxx#28 nsp=1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=548: sxxxxx#28 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=548: sxxxxx#28 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=548: sxxxxx#28 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=548: sxxxxx#28 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=548: sxxxxx#28 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=549: sxxxxx#28 nsp=1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=549: sxxxxx#28 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=549: sxxxxx#28 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=549: sxxxxx#28 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=549: sxxxxx#28 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=549: sxxxxx#28 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=550: oxxxxx#28 nsp=1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=550: oxxxxx#28 nsp=1 mass=400 + 2.433105012119288e+01, 0.000000000000000e+00, // itest=550: oxxxxx#28 nsp=1 mass=400 + 9.863939238321439e+00, -1.052153518754287e+01, // itest=550: oxxxxx#28 nsp=1 mass=400 + 1.216552506059644e+01, 0.000000000000000e+00, // itest=550: oxxxxx#28 nsp=1 mass=400 + 4.931969619160719e+00, -5.260767593771432e+00 } ); // itest=550: oxxxxx#28 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=551: oxxxxx#28 nsp=1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=551: oxxxxx#28 nsp=1 mass=-400 + 2.433105012119288e+01, 0.000000000000000e+00, // itest=551: oxxxxx#28 nsp=1 mass=-400 + 9.863939238321439e+00, -1.052153518754287e+01, // itest=551: oxxxxx#28 nsp=1 mass=-400 + -1.216552506059644e+01, -0.000000000000000e+00, // itest=551: oxxxxx#28 nsp=1 mass=-400 + -4.931969619160719e+00, 5.260767593771432e+00 } ); // itest=551: oxxxxx#28 nsp=1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=552: ixxxxx#29 nsp=1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=552: ixxxxx#29 nsp=1 mass=400 + 7.211102550927978e+00, 0.000000000000000e+00, // itest=552: ixxxxx#29 nsp=1 mass=400 + 8.320502943378436e+00, 8.875203139603666e+00, // itest=552: ixxxxx#29 nsp=1 mass=400 + 1.442220510185596e+01, 0.000000000000000e+00, // itest=552: ixxxxx#29 nsp=1 mass=400 + 1.664100588675688e+01, 1.775040627920733e+01 } ); // itest=552: ixxxxx#29 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=553: ixxxxx#29 nsp=1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=553: ixxxxx#29 nsp=1 mass=-400 + -7.211102550927978e+00, -0.000000000000000e+00, // itest=553: ixxxxx#29 nsp=1 mass=-400 + -8.320502943378436e+00, -8.875203139603666e+00, // itest=553: ixxxxx#29 nsp=1 mass=-400 + 1.442220510185596e+01, 0.000000000000000e+00, // itest=553: ixxxxx#29 nsp=1 mass=-400 + 1.664100588675688e+01, 1.775040627920733e+01 } ); // itest=553: ixxxxx#29 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=554: vxxxxx#29 nsp=1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=554: vxxxxx#29 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=554: vxxxxx#29 nsp=1 mass=400 + 2.321373168788980e-01, -5.158607041753289e-01, // itest=554: vxxxxx#29 nsp=1 mass=400 + 2.476131380041579e-01, 4.836194101643708e-01, // itest=554: vxxxxx#29 nsp=1 mass=400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=554: vxxxxx#29 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=555: vxxxxx#29 nsp=1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=555: vxxxxx#29 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=555: vxxxxx#29 nsp=1 mass=-400 + 2.321373168788980e-01, -5.158607041753289e-01, // itest=555: vxxxxx#29 nsp=1 mass=-400 + 2.476131380041579e-01, 4.836194101643708e-01, // itest=555: vxxxxx#29 nsp=1 mass=-400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=555: vxxxxx#29 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=556: sxxxxx#29 nsp=1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=556: sxxxxx#29 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=556: sxxxxx#29 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=556: sxxxxx#29 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=556: sxxxxx#29 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=556: sxxxxx#29 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=557: sxxxxx#29 nsp=1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=557: sxxxxx#29 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=557: sxxxxx#29 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=557: sxxxxx#29 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=557: sxxxxx#29 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=557: sxxxxx#29 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=558: oxxxxx#29 nsp=1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=558: oxxxxx#29 nsp=1 mass=400 + 1.442220510185596e+01, 0.000000000000000e+00, // itest=558: oxxxxx#29 nsp=1 mass=400 + 1.664100588675688e+01, -1.775040627920733e+01, // itest=558: oxxxxx#29 nsp=1 mass=400 + 7.211102550927978e+00, 0.000000000000000e+00, // itest=558: oxxxxx#29 nsp=1 mass=400 + 8.320502943378436e+00, -8.875203139603666e+00 } ); // itest=558: oxxxxx#29 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=559: oxxxxx#29 nsp=1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=559: oxxxxx#29 nsp=1 mass=-400 + 1.442220510185596e+01, 0.000000000000000e+00, // itest=559: oxxxxx#29 nsp=1 mass=-400 + 1.664100588675688e+01, -1.775040627920733e+01, // itest=559: oxxxxx#29 nsp=1 mass=-400 + -7.211102550927978e+00, -0.000000000000000e+00, // itest=559: oxxxxx#29 nsp=1 mass=-400 + -8.320502943378436e+00, 8.875203139603666e+00 } ); // itest=559: oxxxxx#29 nsp=1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=560: ixxxxx#30 nsp=1 mass=500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=560: ixxxxx#30 nsp=1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=560: ixxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=560: ixxxxx#30 nsp=1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=560: ixxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=560: ixxxxx#30 nsp=1 mass=500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=561: ixxxxx#30 nsp=1 mass=-500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=561: ixxxxx#30 nsp=1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=561: ixxxxx#30 nsp=1 mass=-500 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=561: ixxxxx#30 nsp=1 mass=-500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=561: ixxxxx#30 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=561: ixxxxx#30 nsp=1 mass=-500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=562: vxxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=562: vxxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=562: vxxxxx#30 nsp=1 mass=500 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=562: vxxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=562: vxxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=562: vxxxxx#30 nsp=1 mass=500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=563: vxxxxx#30 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=563: vxxxxx#30 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=563: vxxxxx#30 nsp=1 mass=-500 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=563: vxxxxx#30 nsp=1 mass=-500 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=563: vxxxxx#30 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=563: vxxxxx#30 nsp=1 mass=-500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=564: sxxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=564: sxxxxx#30 nsp=1 mass=500 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=564: sxxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=564: sxxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=564: sxxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=564: sxxxxx#30 nsp=1 mass=500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=565: sxxxxx#30 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=565: sxxxxx#30 nsp=1 mass=-500 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=565: sxxxxx#30 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=565: sxxxxx#30 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=565: sxxxxx#30 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=565: sxxxxx#30 nsp=1 mass=-500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=566: oxxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=566: oxxxxx#30 nsp=1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=566: oxxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=566: oxxxxx#30 nsp=1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=566: oxxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=566: oxxxxx#30 nsp=1 mass=500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=567: oxxxxx#30 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=567: oxxxxx#30 nsp=1 mass=-500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=567: oxxxxx#30 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=567: oxxxxx#30 nsp=1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=567: oxxxxx#30 nsp=1 mass=-500 + -0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=567: oxxxxx#30 nsp=1 mass=-500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=568: ixxxxx#31 nsp=1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=568: ixxxxx#31 nsp=1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=568: ixxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=568: ixxxxx#31 nsp=1 mass=400 + 2.828427124746190e+01, 0.000000000000000e+00, // itest=568: ixxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=568: ixxxxx#31 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=569: ixxxxx#31 nsp=1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=569: ixxxxx#31 nsp=1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=569: ixxxxx#31 nsp=1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=569: ixxxxx#31 nsp=1 mass=-400 + 2.828427124746190e+01, 0.000000000000000e+00, // itest=569: ixxxxx#31 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=569: ixxxxx#31 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=570: vxxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=570: vxxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=570: vxxxxx#31 nsp=1 mass=400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=570: vxxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=570: vxxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=570: vxxxxx#31 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=571: vxxxxx#31 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=571: vxxxxx#31 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=571: vxxxxx#31 nsp=1 mass=-400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=571: vxxxxx#31 nsp=1 mass=-400 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=571: vxxxxx#31 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=571: vxxxxx#31 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=572: sxxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=572: sxxxxx#31 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=572: sxxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=572: sxxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=572: sxxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=572: sxxxxx#31 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=573: sxxxxx#31 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=573: sxxxxx#31 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=573: sxxxxx#31 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=573: sxxxxx#31 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=573: sxxxxx#31 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=573: sxxxxx#31 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=574: oxxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=574: oxxxxx#31 nsp=1 mass=400 + 2.828427124746190e+01, 0.000000000000000e+00, // itest=574: oxxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=574: oxxxxx#31 nsp=1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=574: oxxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=574: oxxxxx#31 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=575: oxxxxx#31 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=575: oxxxxx#31 nsp=1 mass=-400 + 2.828427124746190e+01, 0.000000000000000e+00, // itest=575: oxxxxx#31 nsp=1 mass=-400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=575: oxxxxx#31 nsp=1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=575: oxxxxx#31 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=575: oxxxxx#31 nsp=1 mass=-400 diff --git a/epochX/cudacpp/ee_mumu.sa/src/HelAmps_sm.h b/epochX/cudacpp/ee_mumu.sa/src/HelAmps_sm.h index fe9cb24d88..72bdda81f8 100644 --- a/epochX/cudacpp/ee_mumu.sa/src/HelAmps_sm.h +++ b/epochX/cudacpp/ee_mumu.sa/src/HelAmps_sm.h @@ -1,3 +1,4 @@ +// Copyright (C) 2010 The ALOHA Development team and Contributors. // Copyright (C) 2010 The MadGraph5_aMC@NLO development team and contributors. // Created by: J. Alwall (Sep 2010) for the MG5aMC backend. //========================================================================== @@ -21,6 +22,7 @@ #include "Parameters_sm.h" +#include //#include //#include //#include @@ -190,6 +192,9 @@ namespace mg5amcCpu const int ipar ) // input: particle# out of npar { mgDebug( 0, __FUNCTION__ ); + // NEW IMPLEMENTATION FIXING FLOATING POINT EXCEPTIONS IN SIMD CODE (#701) + // Variables xxxDENOM are a hack to avoid division-by-0 FPE while preserving speed (#701 and #727) + // Variables xxxDENOM are declared as 'volatile' to make sure they are not optimized away on clang! (#724) const fptype_sv& pvec0 = M_ACCESS::kernelAccessIp4IparConst( momenta, 0, ipar ); const fptype_sv& pvec1 = M_ACCESS::kernelAccessIp4IparConst( momenta, 1, ipar ); const fptype_sv& pvec2 = M_ACCESS::kernelAccessIp4IparConst( momenta, 2, ipar ); @@ -201,6 +206,11 @@ namespace mg5amcCpu if( fmass != 0. ) { const fptype_sv pp = fpmin( pvec0, fpsqrt( pvec1 * pvec1 + pvec2 * pvec2 + pvec3 * pvec3 ) ); + // In C++ ixxxxx, use a single ip/im numbering that is valid both for pp==0 and pp>0, which have two numbering schemes in Fortran ixxxxx: + // for pp==0, Fortran sqm(0:1) has indexes 0,1 as in C++; but for Fortran pp>0, omega(2) has indexes 1,2 and not 0,1 + // NB: this is only possible in ixxxx, but in oxxxxx two different numbering schemes must be used + const int ip = ( 1 + nh ) / 2; // NB: same as in Fortran pp==0, differs from Fortran pp>0, which is (3+nh)/2 because omega(2) has indexes 1,2 + const int im = ( 1 - nh ) / 2; // NB: same as in Fortran pp==0, differs from Fortran pp>0, which is (3-nh)/2 because omega(2) has indexes 1,2 #ifndef MGONGPU_CPPSIMD if( pp == 0. ) { @@ -208,8 +218,6 @@ namespace mg5amcCpu fptype sqm[2] = { fpsqrt( std::abs( fmass ) ), 0. }; // possibility of negative fermion masses //sqm[1] = ( fmass < 0. ? -abs( sqm[0] ) : abs( sqm[0] ) ); // AV: why abs here? sqm[1] = ( fmass < 0. ? -sqm[0] : sqm[0] ); // AV: removed an abs here - const int ip = ( 1 + nh ) / 2; // NB: Fortran sqm(0:1) also has indexes 0,1 as in C++ - const int im = ( 1 - nh ) / 2; // NB: Fortran sqm(0:1) also has indexes 0,1 as in C++ fi[2] = cxmake( ip * sqm[ip], 0 ); fi[3] = cxmake( im * nsf * sqm[ip], 0 ); fi[4] = cxmake( ip * nsf * sqm[im], 0 ); @@ -221,8 +229,6 @@ namespace mg5amcCpu fptype( 1 + nsf - ( 1 - nsf ) * nh ) * (fptype)0.5 }; fptype omega[2] = { fpsqrt( pvec0 + pp ), 0. }; omega[1] = fmass / omega[0]; - const int ip = ( 1 + nh ) / 2; // NB: Fortran is (3+nh)/2 because omega(2) has indexes 1,2 and not 0,1 - const int im = ( 1 - nh ) / 2; // NB: Fortran is (3-nh)/2 because omega(2) has indexes 1,2 and not 0,1 const fptype sfomega[2] = { sf[0] * omega[ip], sf[1] * omega[im] }; const fptype pp3 = fpmax( pp + pvec3, 0. ); const cxtype chi[2] = { cxmake( fpsqrt( pp3 * (fptype)0.5 / pp ), 0. ), @@ -233,8 +239,6 @@ namespace mg5amcCpu fi[5] = sfomega[1] * chi[ip]; } #else - const int ip = ( 1 + nh ) / 2; - const int im = ( 1 - nh ) / 2; // Branch A: pp == 0. // NB: Do not use "abs" for floats! It returns an integer with no build warning! Use std::abs! fptype sqm[2] = { fpsqrt( std::abs( fmass ) ), 0 }; // possibility of negative fermion masses (NB: SCALAR!) @@ -250,10 +254,12 @@ namespace mg5amcCpu omega[1] = fmass / omega[0]; const fptype_v sfomega[2] = { sf[0] * omega[ip], sf[1] * omega[im] }; const fptype_v pp3 = fpmax( pp + pvec3, 0 ); - const cxtype_v chi[2] = { cxmake( fpsqrt( pp3 * 0.5 / pp ), 0 ), + volatile fptype_v ppDENOM = fpternary( pp != 0, pp, 1. ); // hack: ppDENOM[ieppV]=1 if pp[ieppV]==0 + volatile fptype_v pp3DENOM = fpternary( pp3 != 0, pp3, 1. ); // hack: pp3DENOM[ieppV]=1 if pp3[ieppV]==0 + const cxtype_v chi[2] = { cxmake( fpsqrt( pp3 * 0.5 / ppDENOM ), 0 ), // hack: dummy[ieppV] is not used if pp[ieppV]==0 cxternary( ( pp3 == 0. ), cxmake( -nh, 0 ), - cxmake( (fptype)nh * pvec1, pvec2 ) / fpsqrt( 2. * pp * pp3 ) ) }; + cxmake( (fptype)nh * pvec1, pvec2 ) / fpsqrt( 2. * ppDENOM * pp3DENOM ) ) }; // hack: dummy[ieppV] is not used if pp[ieppV]==0 const cxtype_v fiB_2 = sfomega[0] * chi[im]; const cxtype_v fiB_3 = sfomega[0] * chi[ip]; const cxtype_v fiB_4 = sfomega[1] * chi[im]; @@ -271,7 +277,16 @@ namespace mg5amcCpu const fptype_sv sqp0p3 = fpternary( ( pvec1 == 0. and pvec2 == 0. and pvec3 < 0. ), fptype_sv{ 0 }, fpsqrt( fpmax( pvec0 + pvec3, 0. ) ) * (fptype)nsf ); - const cxtype_sv chi[2] = { cxmake( sqp0p3, 0. ), cxternary( ( sqp0p3 == 0. ), cxmake( -(fptype)nhel * fpsqrt( 2. * pvec0 ), 0. ), cxmake( (fptype)nh * pvec1, pvec2 ) / sqp0p3 ) }; +#ifdef MGONGPU_CPPSIMD + volatile fptype_v sqp0p3DENOM = fpternary( sqp0p3 != 0, sqp0p3, 1. ); // hack: dummy sqp0p3DENOM[ieppV]=1 if sqp0p3[ieppV]==0 + cxtype_sv chi[2] = { cxmake( sqp0p3, 0. ), + cxternary( sqp0p3 == 0, + cxmake( -(fptype)nhel * fpsqrt( 2. * pvec0 ), 0. ), + cxmake( (fptype)nh * pvec1, pvec2 ) / (const fptype_v)sqp0p3DENOM ) }; // hack: dummy[ieppV] is not used if sqp0p3[ieppV]==0 +#else + const cxtype_sv chi[2] = { cxmake( sqp0p3, 0. ), + ( sqp0p3 == 0. ? cxmake( -(fptype)nhel * fpsqrt( 2. * pvec0 ), 0. ) : cxmake( (fptype)nh * pvec1, pvec2 ) / sqp0p3 ) }; +#endif if( nh == 1 ) { fi[2] = cxzero_sv(); @@ -422,6 +437,9 @@ namespace mg5amcCpu const int ipar ) // input: particle# out of npar { mgDebug( 0, __FUNCTION__ ); + // NEW IMPLEMENTATION FIXING FLOATING POINT EXCEPTIONS IN SIMD CODE (#701) + // Variables xxxDENOM are a hack to avoid division-by-0 FPE while preserving speed (#701 and #727) + // Variables xxxDENOM are declared as 'volatile' to make sure they are not optimized away on clang! (#724) const fptype_sv& pvec0 = M_ACCESS::kernelAccessIp4IparConst( momenta, 0, ipar ); const fptype_sv& pvec1 = M_ACCESS::kernelAccessIp4IparConst( momenta, 1, ipar ); const fptype_sv& pvec2 = M_ACCESS::kernelAccessIp4IparConst( momenta, 2, ipar ); @@ -472,13 +490,15 @@ namespace mg5amcCpu const cxtype vcA_4 = cxmake( 0, nsvahl * sqh ); const cxtype vcA_5 = cxmake( hel0, 0 ); // Branch B: pp != 0. - const fptype_v emp = pvec0 / ( vmass * pp ); + volatile fptype_v ppDENOM = fpternary( pp != 0, pp, 1. ); // hack: ppDENOM[ieppV]=1 if pp[ieppV]==0 + const fptype_v emp = pvec0 / ( vmass * ppDENOM ); // hack: dummy[ieppV] is not used if pp[ieppV]==0 const cxtype_v vcB_2 = cxmake( hel0 * pp / vmass, 0 ); - const cxtype_v vcB_5 = cxmake( hel0 * pvec3 * emp + hel * pt / pp * sqh, 0 ); + const cxtype_v vcB_5 = cxmake( hel0 * pvec3 * emp + hel * pt / ppDENOM * sqh, 0 ); // hack: dummy[ieppV] is not used if pp[ieppV]==0 // Branch B1: pp != 0. and pt != 0. - const fptype_v pzpt = pvec3 / ( pp * pt ) * sqh * hel; - const cxtype_v vcB1_3 = cxmake( hel0 * pvec1 * emp - pvec1 * pzpt, -(fptype)nsvahl * pvec2 / pt * sqh ); - const cxtype_v vcB1_4 = cxmake( hel0 * pvec2 * emp - pvec2 * pzpt, (fptype)nsvahl * pvec1 / pt * sqh ); + volatile fptype_v ptDENOM = fpternary( pt != 0, pt, 1. ); // hack: ptDENOM[ieppV]=1 if pt[ieppV]==0 + const fptype_v pzpt = pvec3 / ( ppDENOM * ptDENOM ) * sqh * hel; // hack: dummy[ieppV] is not used if pp[ieppV]==0 + const cxtype_v vcB1_3 = cxmake( hel0 * pvec1 * emp - pvec1 * pzpt, -(fptype)nsvahl * pvec2 / ptDENOM * sqh ); // hack: dummy[ieppV] is not used if pt[ieppV]==0 + const cxtype_v vcB1_4 = cxmake( hel0 * pvec2 * emp - pvec2 * pzpt, (fptype)nsvahl * pvec1 / ptDENOM * sqh ); // hack: dummy[ieppV] is not used if pt[ieppV]==0 // Branch B2: pp != 0. and pt == 0. const cxtype vcB2_3 = cxmake( -hel * sqh, 0. ); const cxtype_v vcB2_4 = cxmake( 0., (fptype)nsvahl * fpternary( ( pvec3 < 0 ), -sqh, sqh ) ); // AV: removed an abs here @@ -513,9 +533,10 @@ namespace mg5amcCpu } #else // Branch A: pt != 0. - const fptype_v pzpt = pvec3 / ( pp * pt ) * sqh * hel; - const cxtype_v vcA_3 = cxmake( -pvec1 * pzpt, -(fptype)nsv * pvec2 / pt * sqh ); - const cxtype_v vcA_4 = cxmake( -pvec2 * pzpt, (fptype)nsv * pvec1 / pt * sqh ); + volatile fptype_v ptDENOM = fpternary( pt != 0, pt, 1. ); // hack: ptDENOM[ieppV]=1 if pt[ieppV]==0 + const fptype_v pzpt = pvec3 / ( pp * ptDENOM ) * sqh * hel; // hack: dummy[ieppV] is not used if pt[ieppV]==0 + const cxtype_v vcA_3 = cxmake( -pvec1 * pzpt, -(fptype)nsv * pvec2 / ptDENOM * sqh ); // hack: dummy[ieppV] is not used if pt[ieppV]==0 + const cxtype_v vcA_4 = cxmake( -pvec2 * pzpt, (fptype)nsv * pvec1 / ptDENOM * sqh ); // hack: dummy[ieppV] is not used if pt[ieppV]==0 // Branch B: pt == 0. const cxtype vcB_3 = cxmake( -(fptype)hel * sqh, 0 ); const cxtype_v vcB_4 = cxmake( 0, (fptype)nsv * fpternary( ( pvec3 < 0 ), -sqh, sqh ) ); // AV: removed an abs here @@ -567,6 +588,9 @@ namespace mg5amcCpu const int ipar ) // input: particle# out of npar { mgDebug( 0, __FUNCTION__ ); + // NEW IMPLEMENTATION FIXING FLOATING POINT EXCEPTIONS IN SIMD CODE (#701) + // Variables xxxDENOM are a hack to avoid division-by-0 FPE while preserving speed (#701 and #727) + // Variables xxxDENOM are declared as 'volatile' to make sure they are not optimized away on clang! (#724) const fptype_sv& pvec0 = M_ACCESS::kernelAccessIp4IparConst( momenta, 0, ipar ); const fptype_sv& pvec1 = M_ACCESS::kernelAccessIp4IparConst( momenta, 1, ipar ); const fptype_sv& pvec2 = M_ACCESS::kernelAccessIp4IparConst( momenta, 2, ipar ); @@ -630,10 +654,12 @@ namespace mg5amcCpu const int imB = ( 1 - nh ) / 2; const fptype_v sfomeg[2] = { sf[0] * omega[ipB], sf[1] * omega[imB] }; const fptype_v pp3 = fpmax( pp + pvec3, 0. ); - const cxtype_v chi[2] = { cxmake( fpsqrt( pp3 * 0.5 / pp ), 0. ), + volatile fptype_v ppDENOM = fpternary( pp != 0, pp, 1. ); // hack: ppDENOM[ieppV]=1 if pp[ieppV]==0 + volatile fptype_v pp3DENOM = fpternary( pp3 != 0, pp3, 1. ); // hack: pp3DENOM[ieppV]=1 if pp3[ieppV]==0 + const cxtype_v chi[2] = { cxmake( fpsqrt( pp3 * 0.5 / ppDENOM ), 0. ), // hack: dummy[ieppV] is not used if pp[ieppV]==0 ( cxternary( ( pp3 == 0. ), cxmake( -nh, 0. ), - cxmake( (fptype)nh * pvec1, -pvec2 ) / fpsqrt( 2. * pp * pp3 ) ) ) }; + cxmake( (fptype)nh * pvec1, -pvec2 ) / fpsqrt( 2. * ppDENOM * pp3DENOM ) ) ) }; // hack: dummy[ieppV] is not used if pp[ieppV]==0 const cxtype_v foB_2 = sfomeg[1] * chi[imB]; const cxtype_v foB_3 = sfomeg[1] * chi[ipB]; const cxtype_v foB_4 = sfomeg[0] * chi[imB]; @@ -651,10 +677,16 @@ namespace mg5amcCpu const fptype_sv sqp0p3 = fpternary( ( pvec1 == 0. ) and ( pvec2 == 0. ) and ( pvec3 < 0. ), 0, fpsqrt( fpmax( pvec0 + pvec3, 0. ) ) * (fptype)nsf ); +#ifdef MGONGPU_CPPSIMD + volatile fptype_v sqp0p3DENOM = fpternary( sqp0p3 != 0, sqp0p3, 1. ); // hack: sqp0p3DENOM[ieppV]=1 if sqp0p3[ieppV]==0 + const cxtype_v chi[2] = { cxmake( sqp0p3, 0. ), + cxternary( ( sqp0p3 == 0. ), + cxmake( -nhel, 0. ) * fpsqrt( 2. * pvec0 ), + cxmake( (fptype)nh * pvec1, -pvec2 ) / (const fptype_sv)sqp0p3DENOM ) }; // hack: dummy[ieppV] is not used if sqp0p3[ieppV]==0 +#else const cxtype_sv chi[2] = { cxmake( sqp0p3, 0. ), - cxternary( ( sqp0p3 == 0. ), - cxmake( -nhel, 0. ) * fpsqrt( 2. * pvec0 ), - cxmake( (fptype)nh * pvec1, -pvec2 ) / sqp0p3 ) }; + ( sqp0p3 == 0. ? cxmake( -nhel, 0. ) * fpsqrt( 2. * pvec0 ) : cxmake( (fptype)nh * pvec1, -pvec2 ) / sqp0p3 ) }; +#endif if( nh == 1 ) { fo[2] = chi[0]; diff --git a/epochX/cudacpp/ee_mumu.sa/src/Parameters_sm.cc b/epochX/cudacpp/ee_mumu.sa/src/Parameters_sm.cc index daed91bb80..bb5bb59266 100644 --- a/epochX/cudacpp/ee_mumu.sa/src/Parameters_sm.cc +++ b/epochX/cudacpp/ee_mumu.sa/src/Parameters_sm.cc @@ -17,6 +17,12 @@ #include #include +#ifdef __CUDACC__ +using namespace mg5amcGpu; +#else +using namespace mg5amcCpu; +#endif + #ifndef MGONGPU_HARDCODE_PARAM // Initialize static instance diff --git a/epochX/cudacpp/ee_mumu.sa/src/Parameters_sm.h b/epochX/cudacpp/ee_mumu.sa/src/Parameters_sm.h index 852861ced0..0a9d742cda 100644 --- a/epochX/cudacpp/ee_mumu.sa/src/Parameters_sm.h +++ b/epochX/cudacpp/ee_mumu.sa/src/Parameters_sm.h @@ -26,187 +26,212 @@ #include "read_slha.h" -class Parameters_sm +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { -public: + class Parameters_sm + { + public: + + static Parameters_sm* getInstance(); - static Parameters_sm* getInstance(); + // Define "zero" + double zero, ZERO; - // Define "zero" - double zero, ZERO; + // Model parameters independent of aS + //double aS; // now retrieved event-by-event (as G) from Fortran (running alphas #373) + double mdl_WH, mdl_WW, mdl_WZ, mdl_WT, mdl_ymtau, mdl_ymt, mdl_ymb, mdl_Gf, aEWM1, mdl_MH, mdl_MZ, mdl_MTA, mdl_MT, mdl_MB, mdl_conjg__CKM3x3, mdl_conjg__CKM1x1, mdl_CKM3x3, mdl_MZ__exp__2, mdl_MZ__exp__4, mdl_sqrt__2, mdl_MH__exp__2, mdl_aEW, mdl_MW, mdl_sqrt__aEW, mdl_ee, mdl_MW__exp__2, mdl_sw2, mdl_cw, mdl_sqrt__sw2, mdl_sw, mdl_g1, mdl_gw, mdl_vev, mdl_vev__exp__2, mdl_lam, mdl_yb, mdl_yt, mdl_ytau, mdl_muH, mdl_ee__exp__2, mdl_sw__exp__2, mdl_cw__exp__2; + cxsmpl mdl_complexi, mdl_I1x33, mdl_I2x33, mdl_I3x33, mdl_I4x33; - // Model parameters independent of aS - //double aS; // now retrieved event-by-event (as G) from Fortran (running alphas #373) - double mdl_WH, mdl_WW, mdl_WZ, mdl_WT, mdl_ymtau, mdl_ymt, mdl_ymb, mdl_Gf, aEWM1, mdl_MH, mdl_MZ, mdl_MTA, mdl_MT, mdl_MB, mdl_conjg__CKM3x3, mdl_conjg__CKM1x1, mdl_CKM3x3, mdl_MZ__exp__2, mdl_MZ__exp__4, mdl_sqrt__2, mdl_MH__exp__2, mdl_aEW, mdl_MW, mdl_sqrt__aEW, mdl_ee, mdl_MW__exp__2, mdl_sw2, mdl_cw, mdl_sqrt__sw2, mdl_sw, mdl_g1, mdl_gw, mdl_vev, mdl_vev__exp__2, mdl_lam, mdl_yb, mdl_yt, mdl_ytau, mdl_muH, mdl_ee__exp__2, mdl_sw__exp__2, mdl_cw__exp__2; - cxsmpl mdl_complexi, mdl_I1x33, mdl_I2x33, mdl_I3x33, mdl_I4x33; + // Model couplings independent of aS + cxsmpl GC_3, GC_50, GC_59; - // Model couplings independent of aS - cxsmpl GC_3, GC_50, GC_59; + // Model parameters dependent on aS + //double mdl_sqrt__aS, G, mdl_G__exp__2; // now computed event-by-event (running alphas #373) - // Model parameters dependent on aS - //double mdl_sqrt__aS, G, mdl_G__exp__2; // now computed event-by-event (running alphas #373) + // Model couplings dependent on aS + //// (none) // now computed event-by-event (running alphas #373) - // Model couplings dependent on aS - //// (none) // now computed event-by-event (running alphas #373) + // Set parameters that are unchanged during the run + void setIndependentParameters( SLHAReader& slha ); - // Set parameters that are unchanged during the run - void setIndependentParameters( SLHAReader& slha ); + // Set couplings that are unchanged during the run + void setIndependentCouplings(); - // Set couplings that are unchanged during the run - void setIndependentCouplings(); + // Set parameters that are changed event by event + //void setDependentParameters(); // now computed event-by-event (running alphas #373) - // Set parameters that are changed event by event - //void setDependentParameters(); // now computed event-by-event (running alphas #373) + // Set couplings that are changed event by event + //void setDependentCouplings(); // now computed event-by-event (running alphas #373) - // Set couplings that are changed event by event - //void setDependentCouplings(); // now computed event-by-event (running alphas #373) + // Print parameters that are unchanged during the run + void printIndependentParameters(); - // Print parameters that are unchanged during the run - void printIndependentParameters(); + // Print couplings that are unchanged during the run + void printIndependentCouplings(); - // Print couplings that are unchanged during the run - void printIndependentCouplings(); + // Print parameters that are changed event by event + //void printDependentParameters(); // now computed event-by-event (running alphas #373) - // Print parameters that are changed event by event - //void printDependentParameters(); // now computed event-by-event (running alphas #373) + // Print couplings that are changed event by event + //void printDependentCouplings(); // now computed event-by-event (running alphas #373) - // Print couplings that are changed event by event - //void printDependentCouplings(); // now computed event-by-event (running alphas #373) + private: -private: + static Parameters_sm* instance; + }; - static Parameters_sm* instance; -}; +} // end namespace mg5amcGpu/mg5amcCpu #else #include #include -// Hardcoded constexpr physics parameters -namespace Parameters_sm // keep the same name rather than HardcodedParameters_sm for simplicity +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { - // Constexpr implementation of sqrt (see https://stackoverflow.com/a/34134071) - double constexpr sqrtNewtonRaphson( double x, double curr, double prev ) - { - return curr == prev ? curr : sqrtNewtonRaphson( x, 0.5 * ( curr + x / curr ), curr ); - } - double constexpr constexpr_sqrt( double x ) + // Hardcoded constexpr physics parameters + namespace Parameters_sm // keep the same name rather than HardcodedParameters_sm for simplicity { - return x >= 0 // && x < std::numeric_limits::infinity() // avoid -Wtautological-constant-compare warning in fast math - ? sqrtNewtonRaphson( x, x, 0 ) - : std::numeric_limits::quiet_NaN(); - } + // Constexpr implementation of sqrt (see https://stackoverflow.com/a/34134071) + double constexpr sqrtNewtonRaphson( double x, double curr, double prev ) + { + return curr == prev ? curr : sqrtNewtonRaphson( x, 0.5 * ( curr + x / curr ), curr ); + } + double constexpr constexpr_sqrt( double x ) + { + return x >= 0 // && x < std::numeric_limits::infinity() // avoid -Wtautological-constant-compare warning in fast math + ? sqrtNewtonRaphson( x, x, 0 ) + : std::numeric_limits::quiet_NaN(); + } - // Constexpr implementation of floor (see https://stackoverflow.com/a/66146159) - constexpr int constexpr_floor( double d ) - { - const int i = static_cast( d ); - return d < i ? i - 1 : i; - } + // Constexpr implementation of floor (see https://stackoverflow.com/a/66146159) + constexpr int constexpr_floor( double d ) + { + const int i = static_cast( d ); + return d < i ? i - 1 : i; + } - // Constexpr implementation of pow - constexpr double constexpr_pow( double base, double exp ) - { - // NB(1): this implementation of constexpr_pow requires exponent >= 0 - assert( exp >= 0 ); // NB would fail at compile time with "error: call to non-‘constexpr’ function ‘void __assert_fail'" - // NB(2): this implementation of constexpr_pow requires an integer exponent - const int iexp = constexpr_floor( exp ); - assert( static_cast( iexp ) == exp ); // NB would fail at compile time with "error: call to non-‘constexpr’ function ‘void __assert_fail'" - // Iterative implementation of pow if exp is a non negative integer - return iexp == 0 ? 1 : base * constexpr_pow( base, iexp - 1 ); + // Constexpr implementation of pow + constexpr double constexpr_pow( double base, double exp ) + { + // NB(1): this implementation of constexpr_pow requires exponent >= 0 + assert( exp >= 0 ); // NB would fail at compile time with "error: call to non-‘constexpr’ function ‘void __assert_fail'" + // NB(2): this implementation of constexpr_pow requires an integer exponent + const int iexp = constexpr_floor( exp ); + assert( static_cast( iexp ) == exp ); // NB would fail at compile time with "error: call to non-‘constexpr’ function ‘void __assert_fail'" + // Iterative implementation of pow if exp is a non negative integer + return iexp == 0 ? 1 : base * constexpr_pow( base, iexp - 1 ); + } + + // Model parameters independent of aS + constexpr double zero = 0; + constexpr double ZERO = 0; + constexpr double mdl_WH = 6.382339e-03; + constexpr double mdl_WW = 2.047600e+00; + constexpr double mdl_WZ = 2.441404e+00; + constexpr double mdl_WT = 1.491500e+00; + constexpr double mdl_ymtau = 1.777000e+00; + constexpr double mdl_ymt = 1.730000e+02; + constexpr double mdl_ymb = 4.700000e+00; + //constexpr double aS = 1.180000e-01; // now retrieved event-by-event (as G) from Fortran (running alphas #373) + constexpr double mdl_Gf = 1.166390e-05; + constexpr double aEWM1 = 1.325070e+02; + constexpr double mdl_MH = 1.250000e+02; + constexpr double mdl_MZ = 9.118800e+01; + constexpr double mdl_MTA = 1.777000e+00; + constexpr double mdl_MT = 1.730000e+02; + constexpr double mdl_MB = 4.700000e+00; + constexpr double mdl_conjg__CKM3x3 = 1.; + constexpr double mdl_conjg__CKM1x1 = 1.; + constexpr double mdl_CKM3x3 = 1.; + constexpr cxsmpl mdl_complexi = cxsmpl( 0., 1. ); + constexpr double mdl_MZ__exp__2 = ( ( mdl_MZ ) * ( mdl_MZ ) ); + constexpr double mdl_MZ__exp__4 = ( ( mdl_MZ ) * ( mdl_MZ ) * ( mdl_MZ ) * ( mdl_MZ ) ); + constexpr double mdl_sqrt__2 = constexpr_sqrt( 2. ); + constexpr double mdl_MH__exp__2 = ( ( mdl_MH ) * ( mdl_MH ) ); + constexpr double mdl_aEW = 1. / aEWM1; + constexpr double mdl_MW = constexpr_sqrt( mdl_MZ__exp__2 / 2. + constexpr_sqrt( mdl_MZ__exp__4 / 4. - ( mdl_aEW * M_PI * mdl_MZ__exp__2 ) / ( mdl_Gf * mdl_sqrt__2 ) ) ); + constexpr double mdl_sqrt__aEW = constexpr_sqrt( mdl_aEW ); + constexpr double mdl_ee = 2. * mdl_sqrt__aEW * constexpr_sqrt( M_PI ); + constexpr double mdl_MW__exp__2 = ( ( mdl_MW ) * ( mdl_MW ) ); + constexpr double mdl_sw2 = 1. - mdl_MW__exp__2 / mdl_MZ__exp__2; + constexpr double mdl_cw = constexpr_sqrt( 1. - mdl_sw2 ); + constexpr double mdl_sqrt__sw2 = constexpr_sqrt( mdl_sw2 ); + constexpr double mdl_sw = mdl_sqrt__sw2; + constexpr double mdl_g1 = mdl_ee / mdl_cw; + constexpr double mdl_gw = mdl_ee / mdl_sw; + constexpr double mdl_vev = ( 2. * mdl_MW * mdl_sw ) / mdl_ee; + constexpr double mdl_vev__exp__2 = ( ( mdl_vev ) * ( mdl_vev ) ); + constexpr double mdl_lam = mdl_MH__exp__2 / ( 2. * mdl_vev__exp__2 ); + constexpr double mdl_yb = ( mdl_ymb * mdl_sqrt__2 ) / mdl_vev; + constexpr double mdl_yt = ( mdl_ymt * mdl_sqrt__2 ) / mdl_vev; + constexpr double mdl_ytau = ( mdl_ymtau * mdl_sqrt__2 ) / mdl_vev; + constexpr double mdl_muH = constexpr_sqrt( mdl_lam * mdl_vev__exp__2 ); + constexpr cxsmpl mdl_I1x33 = mdl_yb * mdl_conjg__CKM3x3; + constexpr cxsmpl mdl_I2x33 = mdl_yt * mdl_conjg__CKM3x3; + constexpr cxsmpl mdl_I3x33 = mdl_CKM3x3 * mdl_yt; + constexpr cxsmpl mdl_I4x33 = mdl_CKM3x3 * mdl_yb; + constexpr double mdl_ee__exp__2 = ( ( mdl_ee ) * ( mdl_ee ) ); + constexpr double mdl_sw__exp__2 = ( ( mdl_sw ) * ( mdl_sw ) ); + constexpr double mdl_cw__exp__2 = ( ( mdl_cw ) * ( mdl_cw ) ); + + // Model couplings independent of aS + constexpr cxsmpl GC_3 = -( mdl_ee * mdl_complexi ); + constexpr cxsmpl GC_50 = -( mdl_cw * mdl_ee * mdl_complexi ) / ( 2. * mdl_sw ); + constexpr cxsmpl GC_59 = ( mdl_ee * mdl_complexi * mdl_sw ) / ( 2. * mdl_cw ); + + // Model parameters dependent on aS + //constexpr double mdl_sqrt__aS = //constexpr_sqrt( aS ); // now computed event-by-event (running alphas #373) + //constexpr double G = 2. * mdl_sqrt__aS * //constexpr_sqrt( M_PI ); // now computed event-by-event (running alphas #373) + //constexpr double mdl_G__exp__2 = ( ( G ) * ( G ) ); // now computed event-by-event (running alphas #373) + + // Model couplings dependent on aS + // (none) // now computed event-by-event (running alphas #373) + + // Print parameters that are unchanged during the run + void printIndependentParameters(); + + // Print couplings that are unchanged during the run + void printIndependentCouplings(); + + // Print parameters that are changed event by event + //void printDependentParameters(); // now computed event-by-event (running alphas #373) + + // Print couplings that are changed event by event + //void printDependentCouplings(); // now computed event-by-event (running alphas #373) } - // Model parameters independent of aS - constexpr double zero = 0; - constexpr double ZERO = 0; - constexpr double mdl_WH = 6.382339e-03; - constexpr double mdl_WW = 2.047600e+00; - constexpr double mdl_WZ = 2.441404e+00; - constexpr double mdl_WT = 1.491500e+00; - constexpr double mdl_ymtau = 1.777000e+00; - constexpr double mdl_ymt = 1.730000e+02; - constexpr double mdl_ymb = 4.700000e+00; - //constexpr double aS = 1.180000e-01; // now retrieved event-by-event (as G) from Fortran (running alphas #373) - constexpr double mdl_Gf = 1.166390e-05; - constexpr double aEWM1 = 1.325070e+02; - constexpr double mdl_MH = 1.250000e+02; - constexpr double mdl_MZ = 9.118800e+01; - constexpr double mdl_MTA = 1.777000e+00; - constexpr double mdl_MT = 1.730000e+02; - constexpr double mdl_MB = 4.700000e+00; - constexpr double mdl_conjg__CKM3x3 = 1.; - constexpr double mdl_conjg__CKM1x1 = 1.; - constexpr double mdl_CKM3x3 = 1.; - constexpr cxsmpl mdl_complexi = cxsmpl( 0., 1. ); - constexpr double mdl_MZ__exp__2 = ( ( mdl_MZ ) * ( mdl_MZ ) ); - constexpr double mdl_MZ__exp__4 = ( ( mdl_MZ ) * ( mdl_MZ ) * ( mdl_MZ ) * ( mdl_MZ ) ); - constexpr double mdl_sqrt__2 = constexpr_sqrt( 2. ); - constexpr double mdl_MH__exp__2 = ( ( mdl_MH ) * ( mdl_MH ) ); - constexpr double mdl_aEW = 1. / aEWM1; - constexpr double mdl_MW = constexpr_sqrt( mdl_MZ__exp__2 / 2. + constexpr_sqrt( mdl_MZ__exp__4 / 4. - ( mdl_aEW * M_PI * mdl_MZ__exp__2 ) / ( mdl_Gf * mdl_sqrt__2 ) ) ); - constexpr double mdl_sqrt__aEW = constexpr_sqrt( mdl_aEW ); - constexpr double mdl_ee = 2. * mdl_sqrt__aEW * constexpr_sqrt( M_PI ); - constexpr double mdl_MW__exp__2 = ( ( mdl_MW ) * ( mdl_MW ) ); - constexpr double mdl_sw2 = 1. - mdl_MW__exp__2 / mdl_MZ__exp__2; - constexpr double mdl_cw = constexpr_sqrt( 1. - mdl_sw2 ); - constexpr double mdl_sqrt__sw2 = constexpr_sqrt( mdl_sw2 ); - constexpr double mdl_sw = mdl_sqrt__sw2; - constexpr double mdl_g1 = mdl_ee / mdl_cw; - constexpr double mdl_gw = mdl_ee / mdl_sw; - constexpr double mdl_vev = ( 2. * mdl_MW * mdl_sw ) / mdl_ee; - constexpr double mdl_vev__exp__2 = ( ( mdl_vev ) * ( mdl_vev ) ); - constexpr double mdl_lam = mdl_MH__exp__2 / ( 2. * mdl_vev__exp__2 ); - constexpr double mdl_yb = ( mdl_ymb * mdl_sqrt__2 ) / mdl_vev; - constexpr double mdl_yt = ( mdl_ymt * mdl_sqrt__2 ) / mdl_vev; - constexpr double mdl_ytau = ( mdl_ymtau * mdl_sqrt__2 ) / mdl_vev; - constexpr double mdl_muH = constexpr_sqrt( mdl_lam * mdl_vev__exp__2 ); - constexpr cxsmpl mdl_I1x33 = mdl_yb * mdl_conjg__CKM3x3; - constexpr cxsmpl mdl_I2x33 = mdl_yt * mdl_conjg__CKM3x3; - constexpr cxsmpl mdl_I3x33 = mdl_CKM3x3 * mdl_yt; - constexpr cxsmpl mdl_I4x33 = mdl_CKM3x3 * mdl_yb; - constexpr double mdl_ee__exp__2 = ( ( mdl_ee ) * ( mdl_ee ) ); - constexpr double mdl_sw__exp__2 = ( ( mdl_sw ) * ( mdl_sw ) ); - constexpr double mdl_cw__exp__2 = ( ( mdl_cw ) * ( mdl_cw ) ); - - // Model couplings independent of aS - constexpr cxsmpl GC_3 = -( mdl_ee * mdl_complexi ); - constexpr cxsmpl GC_50 = -( mdl_cw * mdl_ee * mdl_complexi ) / ( 2. * mdl_sw ); - constexpr cxsmpl GC_59 = ( mdl_ee * mdl_complexi * mdl_sw ) / ( 2. * mdl_cw ); - - // Model parameters dependent on aS - //constexpr double mdl_sqrt__aS = //constexpr_sqrt( aS ); // now computed event-by-event (running alphas #373) - //constexpr double G = 2. * mdl_sqrt__aS * //constexpr_sqrt( M_PI ); // now computed event-by-event (running alphas #373) - //constexpr double mdl_G__exp__2 = ( ( G ) * ( G ) ); // now computed event-by-event (running alphas #373) - - // Model couplings dependent on aS - // (none) // now computed event-by-event (running alphas #373) - - // Print parameters that are unchanged during the run - void printIndependentParameters(); - - // Print couplings that are unchanged during the run - void printIndependentCouplings(); - - // Print parameters that are changed event by event - //void printDependentParameters(); // now computed event-by-event (running alphas #373) - - // Print couplings that are changed event by event - //void printDependentCouplings(); // now computed event-by-event (running alphas #373) -} +} // end namespace mg5amcGpu/mg5amcCpu #endif //========================================================================== -namespace Parameters_sm_dependentCouplings +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { - constexpr size_t ndcoup = 0; // #couplings that vary event by event because they depend on the running alphas QCD - // NB: there are no aS-dependent couplings in this physics process - struct DependentCouplings_sv + namespace Parameters_sm_dependentCouplings { - // (none) - }; + constexpr size_t ndcoup = 0; // #couplings that vary event by event because they depend on the running alphas QCD + // NB: there are no aS-dependent couplings in this physics process + struct DependentCouplings_sv + { + // (none) + }; #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wunused-variable" // e.g. <> #pragma GCC diagnostic ignored "-Wunused-parameter" // e.g. <> @@ -214,50 +239,44 @@ namespace Parameters_sm_dependentCouplings #pragma nv_diagnostic push #pragma nv_diag_suppress 177 // e.g. <> #endif - __host__ __device__ inline const DependentCouplings_sv computeDependentCouplings_fromG( const fptype_sv& G_sv ) - { + __host__ __device__ inline const DependentCouplings_sv computeDependentCouplings_fromG( const fptype_sv& G_sv ) + { #ifdef MGONGPU_HARDCODE_PARAM - using namespace Parameters_sm; + using namespace Parameters_sm; #endif - // NB: hardcode cxtype cI(0,1) instead of cxtype (or hardcoded cxsmpl) mdl_complexi (which exists in Parameters_sm) because: - // (1) mdl_complexi is always (0,1); (2) mdl_complexi is undefined in device code; (3) need cxsmpl conversion to cxtype in code below - const cxtype cI( 0., 1. ); - DependentCouplings_sv out; - // Begin SM implementation - no special handling of vectors of floats as in EFT (#439) - { - const fptype_sv& G = G_sv; - // Model parameters dependent on aS - // (none) - // Model couplings dependent on aS - // (none) + // NB: hardcode cxtype cI(0,1) instead of cxtype (or hardcoded cxsmpl) mdl_complexi (which exists in Parameters_sm) because: + // (1) mdl_complexi is always (0,1); (2) mdl_complexi is undefined in device code; (3) need cxsmpl conversion to cxtype in code below + const cxtype cI( 0., 1. ); + DependentCouplings_sv out; + // Begin SM implementation - no special handling of vectors of floats as in EFT (#439) + { + const fptype_sv& G = G_sv; + // Model parameters dependent on aS + // (none) + // Model couplings dependent on aS + // (none) + } + // End SM implementation - no special handling of vectors of floats as in EFT (#439) + return out; } - // End SM implementation - no special handling of vectors of floats as in EFT (#439) - return out; - } #ifdef __CUDACC__ #pragma GCC diagnostic pop #pragma nv_diagnostic pop #endif -} + } -//========================================================================== + //========================================================================== -namespace Parameters_sm_independentCouplings -{ - constexpr size_t nicoup = 3; // #couplings that are fixed for all events because they do not depend on the running alphas QCD - //constexpr size_t ixcoup_GC_3 = 0 + Parameters_sm_dependentCouplings::ndcoup; // out of ndcoup+nicoup - //constexpr size_t ixcoup_GC_50 = 1 + Parameters_sm_dependentCouplings::ndcoup; // out of ndcoup+nicoup - //constexpr size_t ixcoup_GC_59 = 2 + Parameters_sm_dependentCouplings::ndcoup; // out of ndcoup+nicoup -} + namespace Parameters_sm_independentCouplings + { + constexpr size_t nicoup = 3; // #couplings that are fixed for all events because they do not depend on the running alphas QCD + //constexpr size_t ixcoup_GC_3 = 0 + Parameters_sm_dependentCouplings::ndcoup; // out of ndcoup+nicoup + //constexpr size_t ixcoup_GC_50 = 1 + Parameters_sm_dependentCouplings::ndcoup; // out of ndcoup+nicoup + //constexpr size_t ixcoup_GC_59 = 2 + Parameters_sm_dependentCouplings::ndcoup; // out of ndcoup+nicoup + } -//========================================================================== + //========================================================================== -#ifdef __CUDACC__ -namespace mg5amcGpu -#else -namespace mg5amcCpu -#endif -{ #pragma GCC diagnostic push #ifndef __clang__ #pragma GCC diagnostic ignored "-Wunused-but-set-variable" // e.g. <> @@ -277,7 +296,8 @@ namespace mg5amcCpu return; } #pragma GCC diagnostic pop -} + +} // end namespace mg5amcGpu/mg5amcCpu //========================================================================== diff --git a/epochX/cudacpp/ee_mumu.sa/src/cudacpp_src.mk b/epochX/cudacpp/ee_mumu.sa/src/cudacpp_src.mk index 21b6d924ff..554d7a704c 100644 --- a/epochX/cudacpp/ee_mumu.sa/src/cudacpp_src.mk +++ b/epochX/cudacpp/ee_mumu.sa/src/cudacpp_src.mk @@ -38,7 +38,13 @@ endif #------------------------------------------------------------------------------- -#=== Configure ccache for CUDA and C++ builds +#=== Configure the CUDA compiler (note: NVCC is already exported including ccache) + +###$(info NVCC=$(NVCC)) + +#------------------------------------------------------------------------------- + +#=== Configure ccache for C++ builds (note: NVCC is already exported including ccache) # Enable ccache if USECCACHE=1 ifeq ($(USECCACHE)$(shell echo $(CXX) | grep ccache),1) @@ -47,11 +53,6 @@ endif #ifeq ($(USECCACHE)$(shell echo $(AR) | grep ccache),1) # override AR:=ccache $(AR) #endif -#ifneq ($(NVCC),) -# ifeq ($(USECCACHE)$(shell echo $(NVCC) | grep ccache),1) -# override NVCC:=ccache $(NVCC) -# endif -#endif #------------------------------------------------------------------------------- @@ -115,7 +116,9 @@ else ifneq ($(shell $(CXX) --version | grep ^nvc++),) # support nvc++ #531 $(error Unknown AVX='$(AVX)': only 'none', 'sse4', 'avx2', '512y' and '512z' are supported) endif else - ifeq ($(AVX),sse4) + ifeq ($(AVX),none) + override AVXFLAGS = -march=x86-64 # no SIMD (see #588) + else ifeq ($(AVX),sse4) override AVXFLAGS = -march=nehalem # SSE4.2 with 128 width (xmm registers) else ifeq ($(AVX),avx2) override AVXFLAGS = -march=haswell # AVX2 with 256 width (ymm registers) [DEFAULT for clang] @@ -216,7 +219,7 @@ MG5AMC_COMMONLIB = mg5amc_common all.$(TAG): $(BUILDDIR)/.build.$(TAG) $(LIBDIR)/.build.$(TAG) $(LIBDIR)/lib$(MG5AMC_COMMONLIB).so # Target (and build options): debug -debug: OPTFLAGS = -g -O0 -DDEBUG2 +debug: OPTFLAGS = -g -O0 debug: all.$(TAG) # Target: tag-specific build lockfiles @@ -237,17 +240,31 @@ $(LIBDIR)/.build.$(TAG): # Generic target and build rules: objects from C++ compilation $(BUILDDIR)/%.o : %.cc *.h $(BUILDDIR)/.build.$(TAG) - @if [ ! -d $(BUILDDIR) ]; then mkdir -p $(BUILDDIR); fi - $(CXX) $(CPPFLAGS) $(CXXFLAGS) -c $< -o $@ + @if [ ! -d $(BUILDDIR) ]; then echo "mkdir -p $(BUILDDIR)"; mkdir -p $(BUILDDIR); fi + $(CXX) $(CPPFLAGS) $(CXXFLAGS) -fPIC -c $< -o $@ + +# Generic target and build rules: objects from CUDA compilation +$(BUILDDIR)/%_cu.o : %.cc *.h $(BUILDDIR)/.build.$(TAG) + @if [ ! -d $(BUILDDIR) ]; then echo "mkdir -p $(BUILDDIR)"; mkdir -p $(BUILDDIR); fi + $(NVCC) $(CPPFLAGS) $(CUFLAGS) -Xcompiler -fPIC -c -x cu $< -o $@ #------------------------------------------------------------------------------- cxx_objects=$(addprefix $(BUILDDIR)/, Parameters_sm.o read_slha.o) +ifneq ($(NVCC),) +cu_objects=$(addprefix $(BUILDDIR)/, Parameters_sm_cu.o) +endif # Target (and build rules): common (src) library +ifneq ($(NVCC),) +$(LIBDIR)/lib$(MG5AMC_COMMONLIB).so : $(cxx_objects) $(cu_objects) + @if [ ! -d $(LIBDIR) ]; then echo "mkdir -p $(LIBDIR)"; mkdir -p $(LIBDIR); fi + $(NVCC) -shared -o $@ $(cxx_objects) $(cu_objects) +else $(LIBDIR)/lib$(MG5AMC_COMMONLIB).so : $(cxx_objects) @if [ ! -d $(LIBDIR) ]; then echo "mkdir -p $(LIBDIR)"; mkdir -p $(LIBDIR); fi - $(CXX) -shared -o$@ $(cxx_objects) + $(CXX) -shared -o $@ $(cxx_objects) +endif #------------------------------------------------------------------------------- diff --git a/epochX/cudacpp/ee_mumu.sa/src/mgOnGpuConfig.h b/epochX/cudacpp/ee_mumu.sa/src/mgOnGpuConfig.h index 6c0c4919e9..c0f067f1d8 100644 --- a/epochX/cudacpp/ee_mumu.sa/src/mgOnGpuConfig.h +++ b/epochX/cudacpp/ee_mumu.sa/src/mgOnGpuConfig.h @@ -98,6 +98,7 @@ #endif #endif +// NB: namespace mgOnGpu includes types which are defined in exactly the same way for CPU and GPU builds (see #318 and #725) namespace mgOnGpu { diff --git a/epochX/cudacpp/ee_mumu.sa/src/mgOnGpuCxtypes.h b/epochX/cudacpp/ee_mumu.sa/src/mgOnGpuCxtypes.h index 0cb2f1db7e..b56348bc58 100644 --- a/epochX/cudacpp/ee_mumu.sa/src/mgOnGpuCxtypes.h +++ b/epochX/cudacpp/ee_mumu.sa/src/mgOnGpuCxtypes.h @@ -43,8 +43,12 @@ // COMPLEX TYPES: SIMPLE COMPLEX CLASS (cxsmpl) //========================================================================== +// NB: namespace mgOnGpu includes types which are defined in exactly the same way for CPU and GPU builds (see #318 and #725) namespace mgOnGpu /* clang-format off */ { + // The number of floating point types in a complex type (real, imaginary) + constexpr int nx2 = 2; + // --- Type definition (simple complex type derived from cxtype_v) template class cxsmpl @@ -78,128 +82,139 @@ namespace mgOnGpu /* clang-format off */ using mgOnGpu::cxsmpl; // Printout to stream for user defined types -template -inline __host__ __device__ std::ostream& -operator<<( std::ostream& out, const cxsmpl& c ) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { - out << std::complex( c.real(), c.imag() ); - return out; -} + template + inline __host__ std::ostream& + operator<<( std::ostream& out, const cxsmpl& c ) + { + out << std::complex( c.real(), c.imag() ); + return out; + } -// Operators for cxsmpl -template -inline __host__ __device__ constexpr cxsmpl -operator+( const cxsmpl a ) -{ - return a; -} + // Operators for cxsmpl + template + inline __host__ __device__ constexpr cxsmpl + operator+( const cxsmpl a ) + { + return a; + } -template -inline __host__ __device__ constexpr cxsmpl -operator-( const cxsmpl& a ) -{ - return cxsmpl( -a.real(), -a.imag() ); -} + template + inline __host__ __device__ constexpr cxsmpl + operator-( const cxsmpl& a ) + { + return cxsmpl( -a.real(), -a.imag() ); + } -template -inline __host__ __device__ constexpr cxsmpl -operator+( const cxsmpl& a, const cxsmpl& b ) -{ - return cxsmpl( a.real() + b.real(), a.imag() + b.imag() ); -} + template + inline __host__ __device__ constexpr cxsmpl + operator+( const cxsmpl& a, const cxsmpl& b ) + { + return cxsmpl( a.real() + b.real(), a.imag() + b.imag() ); + } -template -inline __host__ __device__ constexpr cxsmpl -operator+( const FP& a, const cxsmpl& b ) -{ - return cxsmpl( a, 0 ) + b; -} + template + inline __host__ __device__ constexpr cxsmpl + operator+( const FP& a, const cxsmpl& b ) + { + return cxsmpl( a, 0 ) + b; + } -template -inline __host__ __device__ constexpr cxsmpl -operator-( const cxsmpl& a, const cxsmpl& b ) -{ - return cxsmpl( a.real() - b.real(), a.imag() - b.imag() ); -} + template + inline __host__ __device__ constexpr cxsmpl + operator-( const cxsmpl& a, const cxsmpl& b ) + { + return cxsmpl( a.real() - b.real(), a.imag() - b.imag() ); + } -template -inline __host__ __device__ constexpr cxsmpl -operator-( const FP& a, const cxsmpl& b ) -{ - return cxsmpl( a, 0 ) - b; -} + template + inline __host__ __device__ constexpr cxsmpl + operator-( const FP& a, const cxsmpl& b ) + { + return cxsmpl( a, 0 ) - b; + } -template -inline __host__ __device__ constexpr cxsmpl -operator*( const cxsmpl& a, const cxsmpl& b ) -{ - return cxsmpl( a.real() * b.real() - a.imag() * b.imag(), a.imag() * b.real() + a.real() * b.imag() ); -} + template + inline __host__ __device__ constexpr cxsmpl + operator*( const cxsmpl& a, const cxsmpl& b ) + { + return cxsmpl( a.real() * b.real() - a.imag() * b.imag(), a.imag() * b.real() + a.real() * b.imag() ); + } -template -inline __host__ __device__ constexpr cxsmpl -operator*( const FP& a, const cxsmpl& b ) -{ - return cxsmpl( a, 0 ) * b; -} + template + inline __host__ __device__ constexpr cxsmpl + operator*( const FP& a, const cxsmpl& b ) + { + return cxsmpl( a, 0 ) * b; + } -inline __host__ __device__ constexpr cxsmpl -operator*( const double& a, const cxsmpl& b ) -{ - return cxsmpl( a, 0 ) * b; -} + inline __host__ __device__ constexpr cxsmpl + operator*( const double& a, const cxsmpl& b ) + { + return cxsmpl( a, 0 ) * b; + } -template -inline __host__ __device__ constexpr cxsmpl -operator/( const cxsmpl& a, const cxsmpl& b ) -{ - FP bnorm = b.real() * b.real() + b.imag() * b.imag(); - return cxsmpl( ( a.real() * b.real() + a.imag() * b.imag() ) / bnorm, - ( a.imag() * b.real() - a.real() * b.imag() ) / bnorm ); -} + template + inline __host__ __device__ constexpr cxsmpl + operator/( const cxsmpl& a, const cxsmpl& b ) + { + FP bnorm = b.real() * b.real() + b.imag() * b.imag(); + return cxsmpl( ( a.real() * b.real() + a.imag() * b.imag() ) / bnorm, + ( a.imag() * b.real() - a.real() * b.imag() ) / bnorm ); + } -template -inline __host__ __device__ constexpr cxsmpl -operator/( const FP& a, const cxsmpl& b ) -{ - return cxsmpl( a, 0 ) / b; -} + template + inline __host__ __device__ constexpr cxsmpl + operator/( const FP& a, const cxsmpl& b ) + { + return cxsmpl( a, 0 ) / b; + } -template -inline __host__ __device__ constexpr cxsmpl -operator+( const cxsmpl& a, const FP& b ) -{ - return a + cxsmpl( b, 0 ); -} + template + inline __host__ __device__ constexpr cxsmpl + operator+( const cxsmpl& a, const FP& b ) + { + return a + cxsmpl( b, 0 ); + } -template -inline __host__ __device__ constexpr cxsmpl -operator-( const cxsmpl& a, const FP& b ) -{ - return a - cxsmpl( b, 0 ); -} + template + inline __host__ __device__ constexpr cxsmpl + operator-( const cxsmpl& a, const FP& b ) + { + return a - cxsmpl( b, 0 ); + } -template -inline __host__ __device__ constexpr cxsmpl -operator*( const cxsmpl& a, const FP& b ) -{ - return a * cxsmpl( b, 0 ); -} + template + inline __host__ __device__ constexpr cxsmpl + operator*( const cxsmpl& a, const FP& b ) + { + return a * cxsmpl( b, 0 ); + } -template -inline __host__ __device__ constexpr cxsmpl -operator/( const cxsmpl& a, const FP& b ) -{ - return a / cxsmpl( b, 0 ); + template + inline __host__ __device__ constexpr cxsmpl + operator/( const cxsmpl& a, const FP& b ) + { + return a / cxsmpl( b, 0 ); + } } //========================================================================== // COMPLEX TYPES: (PLATFORM-SPECIFIC) TYPEDEFS //========================================================================== -namespace mgOnGpu +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { - // --- Type definitions (complex type: cxtype) #ifdef __CUDACC__ // cuda #if defined MGONGPU_CUCXTYPE_THRUST @@ -221,390 +236,402 @@ namespace mgOnGpu #endif #endif - // The number of floating point types in a complex type (real, imaginary) - constexpr int nx2 = 2; - // SANITY CHECK: memory access may be based on casts of fptype[2] to cxtype (e.g. for wavefunctions) - static_assert( sizeof( cxtype ) == nx2 * sizeof( fptype ), "sizeof(cxtype) is not 2*sizeof(fptype)" ); + static_assert( sizeof( cxtype ) == mgOnGpu::nx2 * sizeof( fptype ), "sizeof(cxtype) is not 2*sizeof(fptype)" ); } -// Expose typedefs and operators outside the namespace -using mgOnGpu::cxtype; +// DANGEROUS! this was mixing different cxtype definitions for CPU and GPU builds (see #318 and #725) +// DO NOT expose typedefs and operators outside the namespace +//using mgOnGpu::cxtype; //========================================================================== // COMPLEX TYPES: (PLATFORM-SPECIFIC) FUNCTIONS AND OPERATORS //========================================================================== +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif +{ #if defined MGONGPU_CUCXTYPE_CXSMPL or defined MGONGPU_CPPCXTYPE_CXSMPL -//------------------------------ -// CUDA or C++ - using cxsmpl -//------------------------------ + //------------------------------ + // CUDA or C++ - using cxsmpl + //------------------------------ -inline __host__ __device__ cxtype -cxmake( const fptype& r, const fptype& i ) -{ - return cxtype( r, i ); // cxsmpl constructor -} + inline __host__ __device__ cxtype + cxmake( const fptype& r, const fptype& i ) + { + return cxtype( r, i ); // cxsmpl constructor + } -inline __host__ __device__ fptype -cxreal( const cxtype& c ) -{ - return c.real(); // cxsmpl::real() -} + inline __host__ __device__ fptype + cxreal( const cxtype& c ) + { + return c.real(); // cxsmpl::real() + } -inline __host__ __device__ fptype -cximag( const cxtype& c ) -{ - return c.imag(); // cxsmpl::imag() -} + inline __host__ __device__ fptype + cximag( const cxtype& c ) + { + return c.imag(); // cxsmpl::imag() + } -inline __host__ __device__ cxtype -cxconj( const cxtype& c ) -{ - return conj( c ); // conj( cxsmpl ) -} + inline __host__ __device__ cxtype + cxconj( const cxtype& c ) + { + return conj( c ); // conj( cxsmpl ) + } -inline __host__ cxtype // NOT __device__ -cxmake( const std::complex& c ) // std::complex to cxsmpl (float-to-float or float-to-double) -{ - return cxmake( c.real(), c.imag() ); -} + inline __host__ cxtype // NOT __device__ + cxmake( const std::complex& c ) // std::complex to cxsmpl (float-to-float or float-to-double) + { + return cxmake( c.real(), c.imag() ); + } -inline __host__ cxtype // NOT __device__ -cxmake( const std::complex& c ) // std::complex to cxsmpl (double-to-float or double-to-double) -{ - return cxmake( c.real(), c.imag() ); -} + inline __host__ cxtype // NOT __device__ + cxmake( const std::complex& c ) // std::complex to cxsmpl (double-to-float or double-to-double) + { + return cxmake( c.real(), c.imag() ); + } #endif // #if defined MGONGPU_CUCXTYPE_CXSMPL or defined MGONGPU_CPPCXTYPE_CXSMPL -//========================================================================== + //========================================================================== #if defined __CUDACC__ and defined MGONGPU_CUCXTYPE_THRUST // cuda + thrust -//------------------------------ -// CUDA - using thrust::complex -//------------------------------ + //------------------------------ + // CUDA - using thrust::complex + //------------------------------ -inline __host__ __device__ cxtype -cxmake( const fptype& r, const fptype& i ) -{ - return cxtype( r, i ); // thrust::complex constructor -} + inline __host__ __device__ cxtype + cxmake( const fptype& r, const fptype& i ) + { + return cxtype( r, i ); // thrust::complex constructor + } -inline __host__ __device__ fptype -cxreal( const cxtype& c ) -{ - return c.real(); // thrust::complex::real() -} + inline __host__ __device__ fptype + cxreal( const cxtype& c ) + { + return c.real(); // thrust::complex::real() + } -inline __host__ __device__ fptype -cximag( const cxtype& c ) -{ - return c.imag(); // thrust::complex::imag() -} + inline __host__ __device__ fptype + cximag( const cxtype& c ) + { + return c.imag(); // thrust::complex::imag() + } -inline __host__ __device__ cxtype -cxconj( const cxtype& c ) -{ - return conj( c ); // conj( thrust::complex ) -} + inline __host__ __device__ cxtype + cxconj( const cxtype& c ) + { + return conj( c ); // conj( thrust::complex ) + } -inline __host__ __device__ const cxtype& -cxmake( const cxtype& c ) -{ - return c; -} + inline __host__ __device__ const cxtype& + cxmake( const cxtype& c ) + { + return c; + } #endif // #if defined __CUDACC__ and defined MGONGPU_CUCXTYPE_THRUST -//========================================================================== + //========================================================================== #if defined __CUDACC__ and defined MGONGPU_CUCXTYPE_CUCOMPLEX // cuda + cucomplex -//------------------------------ -// CUDA - using cuComplex -//------------------------------ + //------------------------------ + // CUDA - using cuComplex + //------------------------------ #if defined MGONGPU_FPTYPE_DOUBLE // cuda + cucomplex + double -//+++++++++++++++++++++++++ -// cuDoubleComplex ONLY -//+++++++++++++++++++++++++ + //+++++++++++++++++++++++++ + // cuDoubleComplex ONLY + //+++++++++++++++++++++++++ -inline __host__ __device__ cxtype -cxmake( const fptype& r, const fptype& i ) -{ - return make_cuDoubleComplex( r, i ); -} + inline __host__ __device__ cxtype + cxmake( const fptype& r, const fptype& i ) + { + return make_cuDoubleComplex( r, i ); + } -inline __host__ __device__ fptype -cxreal( const cxtype& c ) -{ - return cuCreal( c ); // returns by value -} + inline __host__ __device__ fptype + cxreal( const cxtype& c ) + { + return cuCreal( c ); // returns by value + } -inline __host__ __device__ fptype -cximag( const cxtype& c ) -{ - return cuCimag( c ); // returns by value -} + inline __host__ __device__ fptype + cximag( const cxtype& c ) + { + return cuCimag( c ); // returns by value + } -inline __host__ __device__ cxtype -operator+( const cxtype& a, const cxtype& b ) -{ - return cuCadd( a, b ); -} + inline __host__ __device__ cxtype + operator+( const cxtype& a, const cxtype& b ) + { + return cuCadd( a, b ); + } -inline __host__ __device__ cxtype& -operator+=( cxtype& a, const cxtype& b ) -{ - a = cuCadd( a, b ); - return a; -} + inline __host__ __device__ cxtype& + operator+=( cxtype& a, const cxtype& b ) + { + a = cuCadd( a, b ); + return a; + } -inline __host__ __device__ cxtype -operator-( const cxtype& a, const cxtype& b ) -{ - return cuCsub( a, b ); -} + inline __host__ __device__ cxtype + operator-( const cxtype& a, const cxtype& b ) + { + return cuCsub( a, b ); + } -inline __host__ __device__ cxtype& -operator-=( cxtype& a, const cxtype& b ) -{ - a = cuCsub( a, b ); - return a; -} + inline __host__ __device__ cxtype& + operator-=( cxtype& a, const cxtype& b ) + { + a = cuCsub( a, b ); + return a; + } -inline __host__ __device__ cxtype -operator*( const cxtype& a, const cxtype& b ) -{ - return cuCmul( a, b ); -} + inline __host__ __device__ cxtype + operator*( const cxtype& a, const cxtype& b ) + { + return cuCmul( a, b ); + } -inline __host__ __device__ cxtype -operator/( const cxtype& a, const cxtype& b ) -{ - return cuCdiv( a, b ); -} + inline __host__ __device__ cxtype + operator/( const cxtype& a, const cxtype& b ) + { + return cuCdiv( a, b ); + } #elif defined MGONGPU_FPTYPE_FLOAT // cuda + cucomplex + float -//+++++++++++++++++++++++++ -// cuFloatComplex ONLY -//+++++++++++++++++++++++++ + //+++++++++++++++++++++++++ + // cuFloatComplex ONLY + //+++++++++++++++++++++++++ -inline __host__ __device__ cxtype -cxmake( const fptype& r, const fptype& i ) -{ - return make_cuFloatComplex( r, i ); -} + inline __host__ __device__ cxtype + cxmake( const fptype& r, const fptype& i ) + { + return make_cuFloatComplex( r, i ); + } -inline __host__ __device__ fptype -cxreal( const cxtype& c ) -{ - return cuCrealf( c ); // returns by value -} + inline __host__ __device__ fptype + cxreal( const cxtype& c ) + { + return cuCrealf( c ); // returns by value + } -inline __host__ __device__ fptype -cximag( const cxtype& c ) -{ - return cuCimagf( c ); // returns by value -} + inline __host__ __device__ fptype + cximag( const cxtype& c ) + { + return cuCimagf( c ); // returns by value + } -inline __host__ __device__ cxtype -operator+( const cxtype& a, const cxtype& b ) -{ - return cuCaddf( a, b ); -} + inline __host__ __device__ cxtype + operator+( const cxtype& a, const cxtype& b ) + { + return cuCaddf( a, b ); + } -inline __host__ __device__ cxtype& -operator+=( cxtype& a, const cxtype& b ) -{ - a = cuCaddf( a, b ); - return a; -} + inline __host__ __device__ cxtype& + operator+=( cxtype& a, const cxtype& b ) + { + a = cuCaddf( a, b ); + return a; + } -inline __host__ __device__ cxtype -operator-( const cxtype& a, const cxtype& b ) -{ - return cuCsubf( a, b ); -} + inline __host__ __device__ cxtype + operator-( const cxtype& a, const cxtype& b ) + { + return cuCsubf( a, b ); + } -inline __host__ __device__ cxtype& -operator-=( cxtype& a, const cxtype& b ) -{ - a = cuCsubf( a, b ); - return a; -} + inline __host__ __device__ cxtype& + operator-=( cxtype& a, const cxtype& b ) + { + a = cuCsubf( a, b ); + return a; + } -inline __host__ __device__ cxtype -operator*( const cxtype& a, const cxtype& b ) -{ - return cuCmulf( a, b ); -} + inline __host__ __device__ cxtype + operator*( const cxtype& a, const cxtype& b ) + { + return cuCmulf( a, b ); + } -inline __host__ __device__ cxtype -operator/( const cxtype& a, const cxtype& b ) -{ - return cuCdivf( a, b ); -} + inline __host__ __device__ cxtype + operator/( const cxtype& a, const cxtype& b ) + { + return cuCdivf( a, b ); + } -inline __host__ cxtype // NOT __device__ -cxmake( const std::complex& c ) // std::complex to cucomplex (cast double-to-float) -{ - return cxmake( (fptype)c.real(), (fptype)c.imag() ); -} + inline __host__ cxtype // NOT __device__ + cxmake( const std::complex& c ) // std::complex to cucomplex (cast double-to-float) + { + return cxmake( (fptype)c.real(), (fptype)c.imag() ); + } #endif -//+++++++++++++++++++++++++ -// cuDoubleComplex OR -// cuFloatComplex -//+++++++++++++++++++++++++ + //+++++++++++++++++++++++++ + // cuDoubleComplex OR + // cuFloatComplex + //+++++++++++++++++++++++++ -inline __host__ __device__ cxtype -operator+( const cxtype a ) -{ - return a; -} + inline __host__ __device__ cxtype + operator+( const cxtype a ) + { + return a; + } -inline __host__ __device__ cxtype -operator-( const cxtype& a ) -{ - return cxmake( -cxreal( a ), -cximag( a ) ); -} + inline __host__ __device__ cxtype + operator-( const cxtype& a ) + { + return cxmake( -cxreal( a ), -cximag( a ) ); + } -inline __host__ __device__ cxtype -operator+( const fptype& a, const cxtype& b ) -{ - return cxmake( a, 0 ) + b; -} + inline __host__ __device__ cxtype + operator+( const fptype& a, const cxtype& b ) + { + return cxmake( a, 0 ) + b; + } -inline __host__ __device__ cxtype -operator-( const fptype& a, const cxtype& b ) -{ - return cxmake( a, 0 ) - b; -} + inline __host__ __device__ cxtype + operator-( const fptype& a, const cxtype& b ) + { + return cxmake( a, 0 ) - b; + } -inline __host__ __device__ cxtype -operator*( const fptype& a, const cxtype& b ) -{ - return cxmake( a, 0 ) * b; -} + inline __host__ __device__ cxtype + operator*( const fptype& a, const cxtype& b ) + { + return cxmake( a, 0 ) * b; + } -inline __host__ __device__ cxtype -operator/( const fptype& a, const cxtype& b ) -{ - return cxmake( a, 0 ) / b; -} + inline __host__ __device__ cxtype + operator/( const fptype& a, const cxtype& b ) + { + return cxmake( a, 0 ) / b; + } -inline __host__ __device__ cxtype -operator+( const cxtype& a, const fptype& b ) -{ - return a + cxmake( b, 0 ); -} + inline __host__ __device__ cxtype + operator+( const cxtype& a, const fptype& b ) + { + return a + cxmake( b, 0 ); + } -inline __host__ __device__ cxtype -operator-( const cxtype& a, const fptype& b ) -{ - return a - cxmake( b, 0 ); -} + inline __host__ __device__ cxtype + operator-( const cxtype& a, const fptype& b ) + { + return a - cxmake( b, 0 ); + } -inline __host__ __device__ cxtype -operator*( const cxtype& a, const fptype& b ) -{ - return a * cxmake( b, 0 ); -} + inline __host__ __device__ cxtype + operator*( const cxtype& a, const fptype& b ) + { + return a * cxmake( b, 0 ); + } -inline __host__ __device__ cxtype -operator/( const cxtype& a, const fptype& b ) -{ - return a / cxmake( b, 0 ); -} + inline __host__ __device__ cxtype + operator/( const cxtype& a, const fptype& b ) + { + return a / cxmake( b, 0 ); + } -inline __host__ __device__ cxtype -cxconj( const cxtype& c ) -{ - return cxmake( cxreal( c ), -cximag( c ) ); -} + inline __host__ __device__ cxtype + cxconj( const cxtype& c ) + { + return cxmake( cxreal( c ), -cximag( c ) ); + } -inline __host__ cxtype // NOT __device__ -cxmake( const std::complex& c ) // std::complex to cucomplex (float-to-float or double-to-double) -{ - return cxmake( c.real(), c.imag() ); -} + inline __host__ cxtype // NOT __device__ + cxmake( const std::complex& c ) // std::complex to cucomplex (float-to-float or double-to-double) + { + return cxmake( c.real(), c.imag() ); + } #endif // #if defined __CUDACC__ and defined MGONGPU_CUCXTYPE_CUCOMPLEX -//========================================================================== + //========================================================================== #if not defined __CUDACC__ and defined MGONGPU_CPPCXTYPE_STDCOMPLEX // c++ + stdcomplex -//------------------------------ -// C++ - using std::complex -//------------------------------ + //------------------------------ + // C++ - using std::complex + //------------------------------ -inline cxtype -cxmake( const fptype& r, const fptype& i ) -{ - return cxtype( r, i ); // std::complex constructor -} + inline cxtype + cxmake( const fptype& r, const fptype& i ) + { + return cxtype( r, i ); // std::complex constructor + } -inline fptype -cxreal( const cxtype& c ) -{ - return c.real(); // std::complex::real() -} + inline fptype + cxreal( const cxtype& c ) + { + return c.real(); // std::complex::real() + } -inline fptype -cximag( const cxtype& c ) -{ - return c.imag(); // std::complex::imag() -} + inline fptype + cximag( const cxtype& c ) + { + return c.imag(); // std::complex::imag() + } -inline cxtype -cxconj( const cxtype& c ) -{ - return conj( c ); // conj( std::complex ) -} + inline cxtype + cxconj( const cxtype& c ) + { + return conj( c ); // conj( std::complex ) + } -inline const cxtype& -cxmake( const cxtype& c ) // std::complex to std::complex (float-to-float or double-to-double) -{ - return c; -} + inline const cxtype& + cxmake( const cxtype& c ) // std::complex to std::complex (float-to-float or double-to-double) + { + return c; + } #if defined MGONGPU_FPTYPE_FLOAT -inline cxtype -cxmake( const std::complex& c ) // std::complex to std::complex (cast double-to-float) -{ - return cxmake( (fptype)c.real(), (fptype)c.imag() ); -} + inline cxtype + cxmake( const std::complex& c ) // std::complex to std::complex (cast double-to-float) + { + return cxmake( (fptype)c.real(), (fptype)c.imag() ); + } #endif #endif // #if not defined __CUDACC__ and defined MGONGPU_CPPCXTYPE_STDCOMPLEX -//========================================================================== + //========================================================================== -inline __host__ __device__ const cxtype -cxmake( const cxsmpl& c ) // cxsmpl to cxtype (float-to-float or float-to-double) -{ - return cxmake( c.real(), c.imag() ); -} + inline __host__ __device__ const cxtype + cxmake( const cxsmpl& c ) // cxsmpl to cxtype (float-to-float or float-to-double) + { + return cxmake( c.real(), c.imag() ); + } -inline __host__ __device__ const cxtype -cxmake( const cxsmpl& c ) // cxsmpl to cxtype (double-to-float or double-to-double) -{ - return cxmake( c.real(), c.imag() ); -} + inline __host__ __device__ const cxtype + cxmake( const cxsmpl& c ) // cxsmpl to cxtype (double-to-float or double-to-double) + { + return cxmake( c.real(), c.imag() ); + } + +} // end namespace mg5amcGpu/mg5amcCpu //========================================================================== // COMPLEX TYPES: WRAPPER OVER RI FLOATING POINT PAIR (cxtype_ref) //========================================================================== -namespace mgOnGpu /* clang-format off */ +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { // The cxtype_ref class (a non-const reference to two fp variables) was originally designed for cxtype_v::operator[] // It used to be included in the code only when MGONGPU_HAS_CPPCXTYPEV_BRK (originally MGONGPU_HAS_CPPCXTYPE_REF) is defined @@ -615,23 +642,30 @@ namespace mgOnGpu /* clang-format off */ cxtype_ref() = delete; cxtype_ref( const cxtype_ref& ) = delete; cxtype_ref( cxtype_ref&& ) = default; // copy refs - __host__ __device__ cxtype_ref( fptype& r, fptype& i ) : m_preal( &r ), m_pimag( &i ) {} // copy refs + __host__ __device__ cxtype_ref( fptype& r, fptype& i ) + : m_preal( &r ), m_pimag( &i ) {} // copy refs cxtype_ref& operator=( const cxtype_ref& ) = delete; //__host__ __device__ cxtype_ref& operator=( cxtype_ref&& c ) {...} // REMOVED! Should copy refs or copy values? No longer needed in cxternary - __host__ __device__ cxtype_ref& operator=( const cxtype& c ) { *m_preal = cxreal( c ); *m_pimag = cximag( c ); return *this; } // copy values + __host__ __device__ cxtype_ref& operator=( const cxtype& c ) + { + *m_preal = cxreal( c ); + *m_pimag = cximag( c ); + return *this; + } // copy values __host__ __device__ operator cxtype() const { return cxmake( *m_preal, *m_pimag ); } private: fptype *m_preal, *m_pimag; // RI }; -} /* clang-format on */ -// Printout to stream for user defined types -inline __host__ __device__ std::ostream& -operator<<( std::ostream& out, const mgOnGpu::cxtype_ref& c ) -{ - out << (cxtype)c; - return out; -} + // Printout to stream for user defined types + inline __host__ __device__ std::ostream& + operator<<( std::ostream& out, const cxtype_ref& c ) + { + out << (cxtype)c; + return out; + } + +} // end namespace mg5amcGpu/mg5amcCpu //========================================================================== diff --git a/epochX/cudacpp/ee_mumu.sa/src/mgOnGpuFptypes.h b/epochX/cudacpp/ee_mumu.sa/src/mgOnGpuFptypes.h index a1cde16a67..905c97d700 100644 --- a/epochX/cudacpp/ee_mumu.sa/src/mgOnGpuFptypes.h +++ b/epochX/cudacpp/ee_mumu.sa/src/mgOnGpuFptypes.h @@ -11,82 +11,91 @@ #include #include -//========================================================================== - -#ifdef __CUDACC__ // cuda - -//------------------------------ -// Floating point types - Cuda -//------------------------------ - -/* -inline __host__ __device__ fptype -fpmax( const fptype& a, const fptype& b ) -{ - return max( a, b ); -} - -inline __host__ __device__ fptype -fpmin( const fptype& a, const fptype& b ) -{ - return min( a, b ); -} -*/ - -inline __host__ __device__ const fptype& -fpmax( const fptype& a, const fptype& b ) +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { - return ( ( b < a ) ? a : b ); -} + //========================================================================== -inline __host__ __device__ const fptype& -fpmin( const fptype& a, const fptype& b ) -{ - return ( ( a < b ) ? a : b ); -} +#ifdef __CUDACC__ // cuda -inline __host__ __device__ fptype -fpsqrt( const fptype& f ) -{ + //------------------------------ + // Floating point types - Cuda + //------------------------------ + + /* + inline __host__ __device__ fptype + fpmax( const fptype& a, const fptype& b ) + { + return max( a, b ); + } + + inline __host__ __device__ fptype + fpmin( const fptype& a, const fptype& b ) + { + return min( a, b ); + } + */ + + inline __host__ __device__ const fptype& + fpmax( const fptype& a, const fptype& b ) + { + return ( ( b < a ) ? a : b ); + } + + inline __host__ __device__ const fptype& + fpmin( const fptype& a, const fptype& b ) + { + return ( ( a < b ) ? a : b ); + } + + inline __host__ __device__ fptype + fpsqrt( const fptype& f ) + { #if defined MGONGPU_FPTYPE_FLOAT - // See https://docs.nvidia.com/cuda/cuda-math-api/group__CUDA__MATH__SINGLE.html - return sqrtf( f ); + // See https://docs.nvidia.com/cuda/cuda-math-api/group__CUDA__MATH__SINGLE.html + return sqrtf( f ); #else - // See https://docs.nvidia.com/cuda/cuda-math-api/group__CUDA__MATH__DOUBLE.html - return sqrt( f ); + // See https://docs.nvidia.com/cuda/cuda-math-api/group__CUDA__MATH__DOUBLE.html + return sqrt( f ); #endif -} + } #endif // #ifdef __CUDACC__ -//========================================================================== + //========================================================================== #ifndef __CUDACC__ -//------------------------------ -// Floating point types - C++ -//------------------------------ + //------------------------------ + // Floating point types - C++ + //------------------------------ -inline const fptype& -fpmax( const fptype& a, const fptype& b ) -{ - return std::max( a, b ); -} + inline const fptype& + fpmax( const fptype& a, const fptype& b ) + { + return std::max( a, b ); + } -inline const fptype& -fpmin( const fptype& a, const fptype& b ) -{ - return std::min( a, b ); -} + inline const fptype& + fpmin( const fptype& a, const fptype& b ) + { + return std::min( a, b ); + } -inline fptype -fpsqrt( const fptype& f ) -{ - return std::sqrt( f ); -} + inline fptype + fpsqrt( const fptype& f ) + { + return std::sqrt( f ); + } #endif // #ifndef __CUDACC__ -//========================================================================== + //========================================================================== + +} // end namespace mg5amcGpu/mg5amcCpu #endif // MGONGPUFPTYPES_H diff --git a/epochX/cudacpp/ee_mumu.sa/src/mgOnGpuVectors.h b/epochX/cudacpp/ee_mumu.sa/src/mgOnGpuVectors.h index 9d3e82b1e3..0d3892d026 100644 --- a/epochX/cudacpp/ee_mumu.sa/src/mgOnGpuVectors.h +++ b/epochX/cudacpp/ee_mumu.sa/src/mgOnGpuVectors.h @@ -31,7 +31,12 @@ //#undef MGONGPU_HAS_CPPCXTYPEV_BRK // gcc test (very slightly slower? issue #172) #endif -namespace mgOnGpu /* clang-format off */ +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { #ifdef MGONGPU_CPPSIMD @@ -72,22 +77,40 @@ namespace mgOnGpu /* clang-format off */ public: // Array initialization: zero-out as "{0}" (C and C++) or as "{}" (C++ only) // See https://en.cppreference.com/w/c/language/array_initialization#Notes - cxtype_v() : m_real{ 0 }, m_imag{ 0 } {} // RRRR=0000 IIII=0000 + cxtype_v() + : m_real{ 0 }, m_imag{ 0 } {} // RRRR=0000 IIII=0000 cxtype_v( const cxtype_v& ) = default; cxtype_v( cxtype_v&& ) = default; - cxtype_v( const fptype_v& r, const fptype_v& i ) : m_real( r ), m_imag( i ) {} - cxtype_v( const fptype_v& r ) : m_real( r ), m_imag{ 0 } {} // IIII=0000 + cxtype_v( const fptype_v& r, const fptype_v& i ) + : m_real( r ), m_imag( i ) {} + cxtype_v( const fptype_v& r ) + : m_real( r ), m_imag{ 0 } {} // IIII=0000 + cxtype_v( const fptype& r ) + : m_real( fptype_v{} + r ), m_imag{ 0 } {} // IIII=0000 cxtype_v& operator=( const cxtype_v& ) = default; cxtype_v& operator=( cxtype_v&& ) = default; - cxtype_v& operator+=( const cxtype_v& c ) { m_real += c.real(); m_imag += c.imag(); return *this; } - cxtype_v& operator-=( const cxtype_v& c ) { m_real -= c.real(); m_imag -= c.imag(); return *this; } + cxtype_v& operator+=( const cxtype_v& c ) + { + m_real += c.real(); + m_imag += c.imag(); + return *this; + } + cxtype_v& operator-=( const cxtype_v& c ) + { + m_real -= c.real(); + m_imag -= c.imag(); + return *this; + } #ifdef MGONGPU_HAS_CPPCXTYPEV_BRK // NB: THIS IS THE FUNDAMENTAL DIFFERENCE BETWEEN MGONGPU_HAS_CPPCXTYPEV_BRK DEFINED AND NOT DEFINED // NB: the alternative "clang" implementation is simpler: it simply does not have any bracket operator[] // NB: ** do NOT implement operator[] to return a value: it does not fail the build (why?) and gives unexpected results! ** cxtype_ref operator[]( size_t i ) const { return cxtype_ref( m_real[i], m_imag[i] ); } #endif - const fptype_v& real() const { return m_real; } + const fptype_v& real() const + { + return m_real; + } const fptype_v& imag() const { return m_imag; } private: fptype_v m_real, m_imag; // RRRRIIII @@ -98,7 +121,7 @@ namespace mgOnGpu /* clang-format off */ #if defined MGONGPU_FPTYPE_DOUBLE typedef long int bool_v __attribute__( ( ext_vector_type( neppV ) ) ); // bbbb #elif defined MGONGPU_FPTYPE_FLOAT - typedef int bool_v __attribute__( ( ext_vector_type( neppV ) ) ); // bbbb + typedef int bool_v __attribute__( ( ext_vector_type( neppV ) ) ); // bbbb #endif #else // gcc #if defined MGONGPU_FPTYPE_DOUBLE @@ -113,532 +136,551 @@ namespace mgOnGpu /* clang-format off */ const int neppV = 1; #endif // #ifdef MGONGPU_CPPSIMD - -} /* clang-format on */ +} //-------------------------------------------------------------------------- -// Expose typedefs outside the namespace -using mgOnGpu::neppV; -#ifdef MGONGPU_CPPSIMD -using mgOnGpu::fptype_v; -using mgOnGpu::fptype2_v; -using mgOnGpu::cxtype_v; -using mgOnGpu::bool_v; -#endif +// DANGEROUS! this was mixing different cxtype definitions for CPU and GPU builds (see #318 and #725) +// DO NOT expose typedefs outside the namespace +//using mgOnGpu::neppV; +//#ifdef MGONGPU_CPPSIMD +//using mgOnGpu::fptype_v; +//using mgOnGpu::fptype2_v; +//using mgOnGpu::cxtype_v; +//using mgOnGpu::bool_v; +//#endif -//-------------------------------------------------------------------------- +//========================================================================== +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif +{ #ifndef __CUDACC__ -// Printout to stream for user defined types + // Printout to stream for user defined types #ifndef MGONGPU_CPPCXTYPE_CXSMPL // operator<< for cxsmpl has already been defined! -inline std::ostream& -operator<<( std::ostream& out, const cxtype& c ) -{ - out << "[" << cxreal( c ) << "," << cximag( c ) << "]"; - //out << cxreal(c) << "+i" << cximag(c); - return out; -} + inline std::ostream& + operator<<( std::ostream& out, const cxtype& c ) + { + out << "[" << cxreal( c ) << "," << cximag( c ) << "]"; + //out << cxreal(c) << "+i" << cximag(c); + return out; + } #endif -/* + /* #ifdef MGONGPU_CPPSIMD -inline std::ostream& -operator<<( std::ostream& out, const bool_v& v ) -{ - out << "{ " << v[0]; - for ( int i=1; i t t~ No model currently active, so we import the Standard Model INFO: load particles INFO: load vertices -DEBUG: model prefixing takes 0.004682779312133789  +DEBUG: model prefixing takes 0.0047855377197265625  INFO: Restrict model sm with file models/sm/restrict_default.dat . DEBUG: Simplifying conditional expressions  DEBUG: remove interactions: u s w+ at order: QED=1  @@ -174,39 +174,39 @@ INFO: Organizing processes into subprocess groups INFO: Generating Helas calls for process: g g > t t~ WEIGHTED<=2 @1 INFO: Processing color information for process: g g > t t~ @1 INFO: Creating files in directory P1_gg_ttx -DEBUG: Entering PLUGIN_OneProcessExporter.__init__ [model_handling.py at line 1028]  -DEBUG: kwargs[prefix] = 0 [model_handling.py at line 1029]  -DEBUG: proc_id =  1 [model_handling.py at line 1034]  -DEBUG: process_exporter_cpp =  [export_v4.py at line 6174]  +DEBUG: Entering PLUGIN_OneProcessExporter.__init__ [model_handling.py at line 1039]  +DEBUG: kwargs[prefix] = 0 [model_handling.py at line 1040]  +DEBUG: proc_id =  1 [model_handling.py at line 1045]  +DEBUG: process_exporter_cpp =  [export_v4.py at line 6174]  INFO: Creating files in directory . -DEBUG: Entering PLUGIN_OneProcessExporter.generate_process_files [model_handling.py at line 1286]  -DEBUG: self.include_multi_channel is already defined: this is madevent+second_exporter mode [model_handling.py at line 1288]  +DEBUG: Entering PLUGIN_OneProcessExporter.generate_process_files [model_handling.py at line 1297]  +DEBUG: self.include_multi_channel is already defined: this is madevent+second_exporter mode [model_handling.py at line 1299]  FileWriter for ././CPPProcess.h -DEBUG: Entering PLUGIN_OneProcessExporter.write_process_h_file [model_handling.py at line 1442]  +DEBUG: Entering PLUGIN_OneProcessExporter.write_process_h_file [model_handling.py at line 1453]  FileWriter for ././CPPProcess.cc -DEBUG: Entering PLUGIN_OneProcessExporter.write_process_cc_file [model_handling.py at line 1464]  -DEBUG: Entering PLUGIN_OneProcessExporter.get_sigmaKin_lines [model_handling.py at line 1132]  -DEBUG: self.include_multi_channel =  [1, 2, 3] [model_handling.py at line 1133]  -DEBUG: self.support_multichannel =  True [model_handling.py at line 1134]  -DEBUG: type(self.helas_call_writer) =  [model_handling.py at line 1151]  -DEBUG: self.support_multichannel, self.include_multi_channel =  True [1, 2, 3] [model_handling.py at line 1152]  -DEBUG: multi_channel =  {1: [0], 2: [1], 3: [2]} [model_handling.py at line 1158]  -DEBUG: multi_channel_map =  {1: [0], 2: [1], 3: [2]} [model_handling.py at line 1643]  -DEBUG: diag_to_config =  {1: 1, 2: 2, 3: 3} [model_handling.py at line 1698]  -DEBUG: call =  vxxxxx( momenta,m_pars->%s, cHel[ihel][%d],%+d, w_sv[%d], %d ); [model_handling.py at line 1810]  -DEBUG: ('ZERO', 0, -1, 0, 0) [model_handling.py at line 1811]  -DEBUG: call =  vxxxxx( momenta,m_pars->%s, cHel[ihel][%d],%+d, w_sv[%d], %d ); [model_handling.py at line 1810]  -DEBUG: ('ZERO', 1, -1, 1, 1) [model_handling.py at line 1811]  +DEBUG: Entering PLUGIN_OneProcessExporter.write_process_cc_file [model_handling.py at line 1475]  +DEBUG: Entering PLUGIN_OneProcessExporter.get_sigmaKin_lines [model_handling.py at line 1143]  +DEBUG: self.include_multi_channel =  [1, 2, 3] [model_handling.py at line 1144]  +DEBUG: self.support_multichannel =  True [model_handling.py at line 1145]  +DEBUG: type(self.helas_call_writer) =  [model_handling.py at line 1162]  +DEBUG: self.support_multichannel, self.include_multi_channel =  True [1, 2, 3] [model_handling.py at line 1163]  +DEBUG: multi_channel =  {1: [0], 2: [1], 3: [2]} [model_handling.py at line 1169]  +DEBUG: multi_channel_map =  {1: [0], 2: [1], 3: [2]} [model_handling.py at line 1654]  +DEBUG: diag_to_config =  {1: 1, 2: 2, 3: 3} [model_handling.py at line 1709]  +DEBUG: call =  vxxxxx( momenta,m_pars->%s, cHel[ihel][%d],%+d, w_sv[%d], %d ); [model_handling.py at line 1821]  +DEBUG: ('ZERO', 0, -1, 0, 0) [model_handling.py at line 1822]  +DEBUG: call =  vxxxxx( momenta,m_pars->%s, cHel[ihel][%d],%+d, w_sv[%d], %d ); [model_handling.py at line 1821]  +DEBUG: ('ZERO', 1, -1, 1, 1) [model_handling.py at line 1822]  INFO: Created files CPPProcess.h and CPPProcess.cc in directory ./. -DEBUG: Entering PLUGIN_OneProcessExporter.edit_CMakeLists [model_handling.py at line 1332]  -DEBUG: Entering PLUGIN_OneProcessExporter.edit_check_sa [model_handling.py at line 1341]  -DEBUG: Entering PLUGIN_OneProcessExporter.edit_mgonGPU [model_handling.py at line 1358]  -DEBUG: Entering PLUGIN_OneProcessExporter.edit_processidfile [model_handling.py at line 1378]  -DEBUG: Entering PLUGIN_OneProcessExporter.edit_coloramps [model_handling.py at line 1390]  -DEBUG: Entering PLUGIN_OneProcessExporter.edit_testxxx [model_handling.py at line 1408]  -DEBUG: Entering PLUGIN_OneProcessExporter.edit_memorybuffers [model_handling.py at line 1419]  -DEBUG: Entering PLUGIN_OneProcessExporter.edit_memoryaccesscouplings [model_handling.py at line 1430]  -DEBUG: 'Copying test reference file: ', template_ref =  Copying test reference file: /data/avalassi/GPU2023/MG5aMC/ghav-mg5amcnlo/PLUGIN/CUDACPP_SA_OUTPUT/madgraph/iolibs/template_files/../../../test/ref/dump_CPUTest.Sigma_sm_gg_ttx.txt [model_handling.py at line 1324]  +DEBUG: Entering PLUGIN_OneProcessExporter.edit_CMakeLists [model_handling.py at line 1343]  +DEBUG: Entering PLUGIN_OneProcessExporter.edit_check_sa [model_handling.py at line 1352]  +DEBUG: Entering PLUGIN_OneProcessExporter.edit_mgonGPU [model_handling.py at line 1369]  +DEBUG: Entering PLUGIN_OneProcessExporter.edit_processidfile [model_handling.py at line 1389]  +DEBUG: Entering PLUGIN_OneProcessExporter.edit_coloramps [model_handling.py at line 1401]  +DEBUG: Entering PLUGIN_OneProcessExporter.edit_testxxx [model_handling.py at line 1419]  +DEBUG: Entering PLUGIN_OneProcessExporter.edit_memorybuffers [model_handling.py at line 1430]  +DEBUG: Entering PLUGIN_OneProcessExporter.edit_memoryaccesscouplings [model_handling.py at line 1441]  +DEBUG: 'Copying test reference file: ', template_ref =  Copying test reference file: /data/avalassi/GPU2023/MG5aMC/ghav-mg5amcnlo/PLUGIN/CUDACPP_SA_OUTPUT/madgraph/iolibs/template_files/../../../test/ref/dump_CPUTest.Sigma_sm_gg_ttx.txt [model_handling.py at line 1335]  DEBUG: proc_id =  1 [export_cpp.py at line 710]  DEBUG: config_map =  [1, 2, 3] [export_cpp.py at line 711]  DEBUG: subproc_number =  0 [export_cpp.py at line 712]  @@ -214,16 +214,16 @@ INFO: Created files CPPProcess.h and CPPProcess.cc in directory ./. INFO: Generating Feynman diagrams for Process: g g > t t~ WEIGHTED<=2 @1 INFO: Finding symmetric diagrams for subprocess group gg_ttx Generated helas calls for 1 subprocesses (3 diagrams) in 0.006 s -Wrote files for 10 helas calls in 0.109 s +Wrote files for 10 helas calls in 0.104 s ALOHA: aloha starts to compute helicity amplitudes ALOHA: aloha creates VVV1 set of routines with options: P0 ALOHA: aloha creates FFV1 routines -ALOHA: aloha creates 2 routines in 0.126 s +ALOHA: aloha creates 2 routines in 0.259 s DEBUG: Entering PLUGIN_ProcessExporter.convert_model (create the model) [output.py at line 194]  ALOHA: aloha starts to compute helicity amplitudes ALOHA: aloha creates VVV1 set of routines with options: P0 ALOHA: aloha creates FFV1 routines -ALOHA: aloha creates 4 routines in 0.113 s +ALOHA: aloha creates 4 routines in 0.114 s VVV1 FFV1 FFV1 @@ -231,25 +231,13 @@ ALOHA: aloha creates 4 routines in 0.113 s FileWriter for /data/avalassi/GPU2023/MG5aMC/ghav-mg5amcnlo/CODEGEN_mad_gg_tt/src/./HelAmps_sm.h INFO: Created file HelAmps_sm.h in directory /data/avalassi/GPU2023/MG5aMC/ghav-mg5amcnlo/CODEGEN_mad_gg_tt/src/. super_write_set_parameters_onlyfixMajorana (hardcoded=False) -DEBUG: 'pardef_lines size =', len(pardef_lines), ', keys size =', len(pardef_lines.keys()) =  pardef_lines size = 48 , keys size = 48 [model_handling.py at line 724]  -DEBUG: 'parset_pars size =', len(parset_pars) =  parset_pars size = 48 [model_handling.py at line 740]  -DEBUG: 'parset_lines size =', len(parset_lines), ', keys size =', len(parset_lines.keys()) =  parset_lines size = 48 , keys size = 48 [model_handling.py at line 741]  +DEBUG: 'pardef_lines size =', len(pardef_lines), ', keys size =', len(pardef_lines.keys()) =  pardef_lines size = 48 , keys size = 48 [model_handling.py at line 729]  super_write_set_parameters_onlyfixMajorana (hardcoded=True) -DEBUG: 'pardef_lines size =', len(pardef_lines), ', keys size =', len(pardef_lines.keys()) =  pardef_lines size = 3 , keys size = 3 [model_handling.py at line 724]  -DEBUG: 'parset_pars size =', len(parset_pars) =  parset_pars size = 3 [model_handling.py at line 740]  -DEBUG: 'parset_lines size =', len(parset_lines), ', keys size =', len(parset_lines.keys()) =  parset_lines size = 3 , keys size = 3 [model_handling.py at line 741]  -DEBUG: 'pardef_lines size =', len(pardef_lines), ', keys size =', len(pardef_lines.keys()) =  pardef_lines size = 2 , keys size = 2 [model_handling.py at line 724]  -DEBUG: 'parset_pars size =', len(parset_pars) =  parset_pars size = 2 [model_handling.py at line 740]  -DEBUG: 'parset_lines size =', len(parset_lines), ', keys size =', len(parset_lines.keys()) =  parset_lines size = 2 , keys size = 2 [model_handling.py at line 741]  -DEBUG: 'pardef_lines size =', len(pardef_lines), ', keys size =', len(pardef_lines.keys()) =  pardef_lines size = 3 , keys size = 3 [model_handling.py at line 724]  -DEBUG: 'parset_pars size =', len(parset_pars) =  parset_pars size = 3 [model_handling.py at line 740]  -DEBUG: 'parset_lines size =', len(parset_lines), ', keys size =', len(parset_lines.keys()) =  parset_lines size = 3 , keys size = 3 [model_handling.py at line 741]  -DEBUG: 'pardef_lines size =', len(pardef_lines), ', keys size =', len(pardef_lines.keys()) =  pardef_lines size = 2 , keys size = 2 [model_handling.py at line 724]  -DEBUG: 'parset_pars size =', len(parset_pars) =  parset_pars size = 2 [model_handling.py at line 740]  -DEBUG: 'parset_lines size =', len(parset_lines), ', keys size =', len(parset_lines.keys()) =  parset_lines size = 2 , keys size = 2 [model_handling.py at line 741]  -DEBUG: 'pardef_lines size =', len(pardef_lines), ', keys size =', len(pardef_lines.keys()) =  pardef_lines size = 2 , keys size = 2 [model_handling.py at line 724]  -DEBUG: 'parset_pars size =', len(parset_pars) =  parset_pars size = 2 [model_handling.py at line 740]  -DEBUG: 'parset_lines size =', len(parset_lines), ', keys size =', len(parset_lines.keys()) =  parset_lines size = 2 , keys size = 2 [model_handling.py at line 741]  +DEBUG: 'pardef_lines size =', len(pardef_lines), ', keys size =', len(pardef_lines.keys()) =  pardef_lines size = 3 , keys size = 3 [model_handling.py at line 729]  +DEBUG: 'pardef_lines size =', len(pardef_lines), ', keys size =', len(pardef_lines.keys()) =  pardef_lines size = 2 , keys size = 2 [model_handling.py at line 729]  +DEBUG: 'pardef_lines size =', len(pardef_lines), ', keys size =', len(pardef_lines.keys()) =  pardef_lines size = 3 , keys size = 3 [model_handling.py at line 729]  +DEBUG: 'pardef_lines size =', len(pardef_lines), ', keys size =', len(pardef_lines.keys()) =  pardef_lines size = 2 , keys size = 2 [model_handling.py at line 729]  +DEBUG: 'pardef_lines size =', len(pardef_lines), ', keys size =', len(pardef_lines.keys()) =  pardef_lines size = 2 , keys size = 2 [model_handling.py at line 729]  FileWriter for /data/avalassi/GPU2023/MG5aMC/ghav-mg5amcnlo/CODEGEN_mad_gg_tt/src/./Parameters_sm.h FileWriter for /data/avalassi/GPU2023/MG5aMC/ghav-mg5amcnlo/CODEGEN_mad_gg_tt/src/./Parameters_sm.cc INFO: Created files Parameters_sm.h and Parameters_sm.cc in directory @@ -266,6 +254,6 @@ Type "launch" to generate events from this process, or see Run "open index.html" to see more information about this process. quit -real 0m1.778s -user 0m1.425s -sys 0m0.206s +real 0m1.770s +user 0m1.390s +sys 0m0.213s diff --git a/epochX/cudacpp/gg_tt.mad/SubProcesses/Bridge.h b/epochX/cudacpp/gg_tt.mad/SubProcesses/Bridge.h index 4cafe0c997..d7e629cacd 100644 --- a/epochX/cudacpp/gg_tt.mad/SubProcesses/Bridge.h +++ b/epochX/cudacpp/gg_tt.mad/SubProcesses/Bridge.h @@ -152,32 +152,32 @@ namespace mg5amcCpu #ifdef __CUDACC__ int m_gputhreads; // number of gpu threads (default set from number of events, can be modified) int m_gpublocks; // number of gpu blocks (default set from number of events, can be modified) - mg5amcGpu::DeviceBuffer m_devMomentaF; - mg5amcGpu::DeviceBufferMomenta m_devMomentaC; - mg5amcGpu::DeviceBufferGs m_devGs; - mg5amcGpu::DeviceBufferRndNumHelicity m_devRndHel; - mg5amcGpu::DeviceBufferRndNumColor m_devRndCol; - mg5amcGpu::DeviceBufferMatrixElements m_devMEs; - mg5amcGpu::DeviceBufferSelectedHelicity m_devSelHel; - mg5amcGpu::DeviceBufferSelectedColor m_devSelCol; - mg5amcGpu::PinnedHostBufferGs m_hstGs; - mg5amcGpu::PinnedHostBufferRndNumHelicity m_hstRndHel; - mg5amcGpu::PinnedHostBufferRndNumColor m_hstRndCol; - mg5amcGpu::PinnedHostBufferMatrixElements m_hstMEs; - mg5amcGpu::PinnedHostBufferSelectedHelicity m_hstSelHel; - mg5amcGpu::PinnedHostBufferSelectedColor m_hstSelCol; - std::unique_ptr m_pmek; + DeviceBuffer m_devMomentaF; + DeviceBufferMomenta m_devMomentaC; + DeviceBufferGs m_devGs; + DeviceBufferRndNumHelicity m_devRndHel; + DeviceBufferRndNumColor m_devRndCol; + DeviceBufferMatrixElements m_devMEs; + DeviceBufferSelectedHelicity m_devSelHel; + DeviceBufferSelectedColor m_devSelCol; + PinnedHostBufferGs m_hstGs; + PinnedHostBufferRndNumHelicity m_hstRndHel; + PinnedHostBufferRndNumColor m_hstRndCol; + PinnedHostBufferMatrixElements m_hstMEs; + PinnedHostBufferSelectedHelicity m_hstSelHel; + PinnedHostBufferSelectedColor m_hstSelCol; + std::unique_ptr m_pmek; //static constexpr int s_gputhreadsmin = 16; // minimum number of gpu threads (TEST VALUE FOR MADEVENT) static constexpr int s_gputhreadsmin = 32; // minimum number of gpu threads (DEFAULT) #else - mg5amcCpu::HostBufferMomenta m_hstMomentaC; - mg5amcCpu::HostBufferGs m_hstGs; - mg5amcCpu::HostBufferRndNumHelicity m_hstRndHel; - mg5amcCpu::HostBufferRndNumColor m_hstRndCol; - mg5amcCpu::HostBufferMatrixElements m_hstMEs; - mg5amcCpu::HostBufferSelectedHelicity m_hstSelHel; - mg5amcCpu::HostBufferSelectedColor m_hstSelCol; - std::unique_ptr m_pmek; + HostBufferMomenta m_hstMomentaC; + HostBufferGs m_hstGs; + HostBufferRndNumHelicity m_hstRndHel; + HostBufferRndNumColor m_hstRndCol; + HostBufferMatrixElements m_hstMEs; + HostBufferSelectedHelicity m_hstSelHel; + HostBufferSelectedColor m_hstSelCol; + std::unique_ptr m_pmek; #endif }; @@ -244,12 +244,12 @@ namespace mg5amcCpu } std::cout << "WARNING! Instantiate device Bridge (nevt=" << m_nevt << ", gpublocks=" << m_gpublocks << ", gputhreads=" << m_gputhreads << ", gpublocks*gputhreads=" << m_gpublocks * m_gputhreads << ")" << std::endl; - mg5amcGpu::CPPProcess process( /*verbose=*/false ); - m_pmek.reset( new mg5amcGpu::MatrixElementKernelDevice( m_devMomentaC, m_devGs, m_devRndHel, m_devRndCol, m_devMEs, m_devSelHel, m_devSelCol, m_gpublocks, m_gputhreads ) ); + CPPProcess process( /*verbose=*/false ); + m_pmek.reset( new MatrixElementKernelDevice( m_devMomentaC, m_devGs, m_devRndHel, m_devRndCol, m_devMEs, m_devSelHel, m_devSelCol, m_gpublocks, m_gputhreads ) ); #else std::cout << "WARNING! Instantiate host Bridge (nevt=" << m_nevt << ")" << std::endl; - mg5amcCpu::CPPProcess process( /*verbose=*/false ); - m_pmek.reset( new mg5amcCpu::MatrixElementKernelHost( m_hstMomentaC, m_hstGs, m_hstRndHel, m_hstRndCol, m_hstMEs, m_hstSelHel, m_hstSelCol, m_nevt ) ); + CPPProcess process( /*verbose=*/false ); + m_pmek.reset( new MatrixElementKernelHost( m_hstMomentaC, m_hstGs, m_hstRndHel, m_hstRndCol, m_hstMEs, m_hstSelHel, m_hstSelCol, m_nevt ) ); #endif // __CUDACC__ process.initProc( "../../Cards/param_card.dat" ); } diff --git a/epochX/cudacpp/gg_tt.mad/SubProcesses/BridgeKernels.cc b/epochX/cudacpp/gg_tt.mad/SubProcesses/BridgeKernels.cc index cef4cb3c71..d58066c9c1 100644 --- a/epochX/cudacpp/gg_tt.mad/SubProcesses/BridgeKernels.cc +++ b/epochX/cudacpp/gg_tt.mad/SubProcesses/BridgeKernels.cc @@ -9,9 +9,6 @@ #include -constexpr int np4 = CPPProcess::np4; // dimensions of 4-momenta (E,px,py,pz) -constexpr int npar = CPPProcess::npar; // #particles in total (external = initial + final): e.g. 4 for e+ e- -> mu+ mu- - //============================================================================ #ifdef __CUDACC__ @@ -20,6 +17,9 @@ namespace mg5amcGpu namespace mg5amcCpu #endif { + constexpr int np4 = CPPProcess::np4; // dimensions of 4-momenta (E,px,py,pz) + constexpr int npar = CPPProcess::npar; // #particles in total (external = initial + final): e.g. 4 for e+ e- -> mu+ mu- + //-------------------------------------------------------------------------- BridgeKernelBase::BridgeKernelBase( const BufferMomenta& momenta, // input: momenta diff --git a/epochX/cudacpp/gg_tt.mad/SubProcesses/MemoryAccessAmplitudes.h b/epochX/cudacpp/gg_tt.mad/SubProcesses/MemoryAccessAmplitudes.h index 68f6838b5c..573b3bbbc9 100644 --- a/epochX/cudacpp/gg_tt.mad/SubProcesses/MemoryAccessAmplitudes.h +++ b/epochX/cudacpp/gg_tt.mad/SubProcesses/MemoryAccessAmplitudes.h @@ -14,142 +14,151 @@ #define MGONGPU_TRIVIAL_AMPLITUDES 1 -//---------------------------------------------------------------------------- - -#ifndef MGONGPU_TRIVIAL_AMPLITUDES - -// A class describing the internal layout of memory buffers for amplitudes -// This implementation uses an AOSOA[npagA][nx2][neppA] where nevt=npagA*neppA -// [If many implementations are used, a suffix _AOSOAv1 should be appended to the class name] -class MemoryAccessAmplitudesBase //_AOSOAv1 +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { -public: - - // Number of Events Per Page in the amplitude AOSOA memory buffer layout - static constexpr int neppA = 1; // AOS (just a test...) + //---------------------------------------------------------------------------- -private: - - friend class MemoryAccessHelper; - friend class KernelAccessHelper; - friend class KernelAccessHelper; - - // The number of floating point components of a complex number - static constexpr int nx2 = mgOnGpu::nx2; - - //-------------------------------------------------------------------------- - // NB all KernelLaunchers assume that memory access can be decomposed as "accessField = decodeRecord( accessRecord )" - // (in other words: first locate the event record for a given event, then locate an element in that record) - //-------------------------------------------------------------------------- +#ifndef MGONGPU_TRIVIAL_AMPLITUDES - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] - static __host__ __device__ inline fptype* - ieventAccessRecord( fptype* buffer, - const int ievt ) + // A class describing the internal layout of memory buffers for amplitudes + // This implementation uses an AOSOA[npagA][nx2][neppA] where nevt=npagA*neppA + // [If many implementations are used, a suffix _AOSOAv1 should be appended to the class name] + class MemoryAccessAmplitudesBase //_AOSOAv1 { - const int ipagA = ievt / neppA; // #event "A-page" - const int ieppA = ievt % neppA; // #event in the current event A-page - constexpr int ix2 = 0; - return &( buffer[ipagA * nx2 * neppA + ix2 * neppA + ieppA] ); // AOSOA[ipagA][ix2][ieppA] - } - - //-------------------------------------------------------------------------- - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, Ts... args ) <===] - // [NB: expand variadic template "Ts... args" to "const int ix2" and rename "Field" as "Ix2"] - static __host__ __device__ inline fptype& - decodeRecord( fptype* buffer, - const int ix2 ) + public: + + // Number of Events Per Page in the amplitude AOSOA memory buffer layout + static constexpr int neppA = 1; // AOS (just a test...) + + private: + + friend class MemoryAccessHelper; + friend class KernelAccessHelper; + friend class KernelAccessHelper; + + // The number of floating point components of a complex number + static constexpr int nx2 = mgOnGpu::nx2; + + //-------------------------------------------------------------------------- + // NB all KernelLaunchers assume that memory access can be decomposed as "accessField = decodeRecord( accessRecord )" + // (in other words: first locate the event record for a given event, then locate an element in that record) + //-------------------------------------------------------------------------- + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] + static __host__ __device__ inline fptype* + ieventAccessRecord( fptype* buffer, + const int ievt ) + { + const int ipagA = ievt / neppA; // #event "A-page" + const int ieppA = ievt % neppA; // #event in the current event A-page + constexpr int ix2 = 0; + return &( buffer[ipagA * nx2 * neppA + ix2 * neppA + ieppA] ); // AOSOA[ipagA][ix2][ieppA] + } + + //-------------------------------------------------------------------------- + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, Ts... args ) <===] + // [NB: expand variadic template "Ts... args" to "const int ix2" and rename "Field" as "Ix2"] + static __host__ __device__ inline fptype& + decodeRecord( fptype* buffer, + const int ix2 ) + { + constexpr int ipagA = 0; + constexpr int ieppA = 0; + return buffer[ipagA * nx2 * neppA + ix2 * neppA + ieppA]; // AOSOA[ipagA][ix2][ieppA] + } + }; + + //---------------------------------------------------------------------------- + + // A class providing access to memory buffers for a given event, based on explicit event numbers + // Its methods use the MemoryAccessHelper templates - note the use of the template keyword in template function instantiations + class MemoryAccessAmplitudes : public MemoryAccessAmplitudesBase { - constexpr int ipagA = 0; - constexpr int ieppA = 0; - return buffer[ipagA * nx2 * neppA + ix2 * neppA + ieppA]; // AOSOA[ipagA][ix2][ieppA] - } -}; + public: -//---------------------------------------------------------------------------- + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] + static constexpr auto ieventAccessRecord = MemoryAccessHelper::ieventAccessRecord; -// A class providing access to memory buffers for a given event, based on explicit event numbers -// Its methods use the MemoryAccessHelper templates - note the use of the template keyword in template function instantiations -class MemoryAccessAmplitudes : public MemoryAccessAmplitudesBase -{ -public: - - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] - static constexpr auto ieventAccessRecord = MemoryAccessHelper::ieventAccessRecord; + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (const) ===> const fptype* ieventAccessRecordConst( const fptype* buffer, const int ievt ) <===] + static constexpr auto ieventAccessRecordConst = MemoryAccessHelper::ieventAccessRecordConst; - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (const) ===> const fptype* ieventAccessRecordConst( const fptype* buffer, const int ievt ) <===] - static constexpr auto ieventAccessRecordConst = MemoryAccessHelper::ieventAccessRecordConst; + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, const int ix2 ) <===] + static constexpr auto decodeRecordIx2 = MemoryAccessHelper::decodeRecord; - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, const int ix2 ) <===] - static constexpr auto decodeRecordIx2 = MemoryAccessHelper::decodeRecord; + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (const) ===> const fptype& decodeRecordConst( const fptype* buffer, const int ix2 ) <===] + static constexpr auto decodeRecordIx2Const = + MemoryAccessHelper::template decodeRecordConst; - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (const) ===> const fptype& decodeRecordConst( const fptype* buffer, const int ix2 ) <===] - static constexpr auto decodeRecordIx2Const = - MemoryAccessHelper::template decodeRecordConst; + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (non-const) ===> fptype& ieventAccessIx2( fptype* buffer, const ievt, const int ix2 ) <===] + static constexpr auto ieventAccessIx2 = + MemoryAccessHelper::template ieventAccessField; - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (non-const) ===> fptype& ieventAccessIx2( fptype* buffer, const ievt, const int ix2 ) <===] - static constexpr auto ieventAccessIx2 = - MemoryAccessHelper::template ieventAccessField; - - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (const) ===> const fptype& ieventAccessIx2Const( const fptype* buffer, const ievt, const int ix2 ) <===] - static constexpr auto ieventAccessIx2Const = - MemoryAccessHelper::template ieventAccessFieldConst; -}; + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (const) ===> const fptype& ieventAccessIx2Const( const fptype* buffer, const ievt, const int ix2 ) <===] + static constexpr auto ieventAccessIx2Const = + MemoryAccessHelper::template ieventAccessFieldConst; + }; #endif // #ifndef MGONGPU_TRIVIAL_AMPLITUDES -//---------------------------------------------------------------------------- + //---------------------------------------------------------------------------- -// A class providing access to memory buffers for a given event, based on implicit kernel rules -// Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations -template -class KernelAccessAmplitudes -{ -public: + // A class providing access to memory buffers for a given event, based on implicit kernel rules + // Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations + template + class KernelAccessAmplitudes + { + public: #ifndef MGONGPU_TRIVIAL_AMPLITUDES - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (non-const) ===> fptype& kernelAccessIx2( fptype* buffer, const int ix2 ) <===] - static constexpr auto kernelAccessIx2 = - KernelAccessHelper::template kernelAccessField; + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (non-const) ===> fptype& kernelAccessIx2( fptype* buffer, const int ix2 ) <===] + static constexpr auto kernelAccessIx2 = + KernelAccessHelper::template kernelAccessField; - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (const) ===> const fptype& kernelAccessIx2Const( const fptype* buffer, const int ix2 ) <===] - static constexpr auto kernelAccessIx2Const = - KernelAccessHelper::template kernelAccessFieldConst; + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (const) ===> const fptype& kernelAccessIx2Const( const fptype* buffer, const int ix2 ) <===] + static constexpr auto kernelAccessIx2Const = + KernelAccessHelper::template kernelAccessFieldConst; #else - static __host__ __device__ inline cxtype_sv* - kernelAccess( fptype* buffer ) - { - return reinterpret_cast( buffer ); - } + static __host__ __device__ inline cxtype_sv* + kernelAccess( fptype* buffer ) + { + return reinterpret_cast( buffer ); + } - static __host__ __device__ inline const cxtype_sv* - kernelAccessConst( const fptype* buffer ) - { - return reinterpret_cast( buffer ); - } + static __host__ __device__ inline const cxtype_sv* + kernelAccessConst( const fptype* buffer ) + { + return reinterpret_cast( buffer ); + } #endif // #ifndef MGONGPU_TRIVIAL_AMPLITUDES -}; + }; + + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- + typedef KernelAccessAmplitudes HostAccessAmplitudes; + typedef KernelAccessAmplitudes DeviceAccessAmplitudes; -typedef KernelAccessAmplitudes HostAccessAmplitudes; -typedef KernelAccessAmplitudes DeviceAccessAmplitudes; + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- +} // end namespace mg5amcGpu/mg5amcCpu #endif // MemoryAccessAmplitudes_H diff --git a/epochX/cudacpp/gg_tt.mad/SubProcesses/MemoryAccessCouplings.h b/epochX/cudacpp/gg_tt.mad/SubProcesses/MemoryAccessCouplings.h index 15793bbec3..35a3af42e0 100644 --- a/epochX/cudacpp/gg_tt.mad/SubProcesses/MemoryAccessCouplings.h +++ b/epochX/cudacpp/gg_tt.mad/SubProcesses/MemoryAccessCouplings.h @@ -14,248 +14,257 @@ #include "MemoryAccessMomenta.h" // for MemoryAccessMomentaBase::neppM #include "MemoryBuffers.h" // for HostBufferCouplings::isaligned -//---------------------------------------------------------------------------- - -// A class describing the internal layout of memory buffers for couplings -// This implementation uses an AOSOA[npagC][ndcoup][nx2][neppC] "super-buffer" where nevt=npagC*neppC -// From the "super-buffer" for ndcoup different couplings, use idcoupAccessBuffer to access the buffer for one specific coupling -// [If many implementations are used, a suffix _AOSOAv1 should be appended to the class name] -class MemoryAccessCouplingsBase //_AOSOAv1 +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { -public: - - // Number of Events Per Page in the coupling AOSOA memory buffer layout - static constexpr int neppC = MemoryAccessMomentaBase::neppM; // use the same AOSOA striding as for momenta - - // SANITY CHECK: check that neppC is a power of two - static_assert( ispoweroftwo( neppC ), "neppC is not a power of 2" ); - - //-------------------------------------------------------------------------- - // ** NB! A single super-buffer AOSOA[npagC][ndcoup][nx2][neppC] includes data for ndcoup different couplings ** - // ** NB! The ieventAccessRecord and kernelAccess functions refer to the buffer for one individual coupling ** - // ** NB! Use idcoupAccessBuffer to add a fixed offset and locate the buffer for one given individual coupling ** - //-------------------------------------------------------------------------- - - // Locate the buffer for a single coupling (output) in a memory super-buffer (input) from the given coupling index (input) - // [Signature (non-const) ===> fptype* idcoupAccessBuffer( fptype* buffer, const int idcoup ) <===] - // NB: keep this in public even if exposed through KernelAccessCouplings: nvcc says it is inaccesible otherwise? - static __host__ __device__ inline fptype* - idcoupAccessBuffer( fptype* buffer, // input "super-buffer" - const int idcoup ) - { - constexpr int ipagC = 0; - constexpr int ieppC = 0; - constexpr int ix2 = 0; - // NB! this effectively adds an offset "idcoup * nx2 * neppC" - return &( buffer[ipagC * ndcoup * nx2 * neppC + idcoup * nx2 * neppC + ix2 * neppC + ieppC] ); // AOSOA[ipagC][idcoup][ix2][ieppC] - } - - // Locate the buffer for a single coupling (output) in a memory super-buffer (input) from the given coupling index (input) - // [Signature (const) ===> const fptype* idcoupAccessBufferConst( const fptype* buffer, const int idcoup ) <===] - // NB: keep this in public even if exposed through KernelAccessCouplings: nvcc says it is inaccesible otherwise? - static __host__ __device__ inline const fptype* - idcoupAccessBufferConst( const fptype* buffer, // input "super-buffer" - const int idcoup ) - { - return idcoupAccessBuffer( const_cast( buffer ), idcoup ); - } - -private: + //---------------------------------------------------------------------------- - friend class MemoryAccessHelper; - friend class KernelAccessHelper; - friend class KernelAccessHelper; - - // The number of couplings that dependent on the running alphas QCD in this specific process - static constexpr size_t ndcoup = Parameters_sm_dependentCouplings::ndcoup; - - // The number of floating point components of a complex number - static constexpr int nx2 = mgOnGpu::nx2; - - //-------------------------------------------------------------------------- - // NB all KernelLaunchers assume that memory access can be decomposed as "accessField = decodeRecord( accessRecord )" - // (in other words: first locate the event record for a given event, then locate an element in that record) - //-------------------------------------------------------------------------- - - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] - static __host__ __device__ inline fptype* - ieventAccessRecord( fptype* buffer, - const int ievt ) + // A class describing the internal layout of memory buffers for couplings + // This implementation uses an AOSOA[npagC][ndcoup][nx2][neppC] "super-buffer" where nevt=npagC*neppC + // From the "super-buffer" for ndcoup different couplings, use idcoupAccessBuffer to access the buffer for one specific coupling + // [If many implementations are used, a suffix _AOSOAv1 should be appended to the class name] + class MemoryAccessCouplingsBase //_AOSOAv1 { - const int ipagC = ievt / neppC; // #event "C-page" - const int ieppC = ievt % neppC; // #event in the current event C-page - constexpr int idcoup = 0; - constexpr int ix2 = 0; - return &( buffer[ipagC * ndcoup * nx2 * neppC + idcoup * nx2 * neppC + ix2 * neppC + ieppC] ); // AOSOA[ipagC][idcoup][ix2][ieppC] - } - - //-------------------------------------------------------------------------- - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, Ts... args ) <===] - // [NB: expand variadic template "Ts... args" to "const int ix2" and rename "Field" as "Ix2"] - static __host__ __device__ inline fptype& - decodeRecord( fptype* buffer, - const int ix2 ) + public: + + // Number of Events Per Page in the coupling AOSOA memory buffer layout + static constexpr int neppC = MemoryAccessMomentaBase::neppM; // use the same AOSOA striding as for momenta + + // SANITY CHECK: check that neppC is a power of two + static_assert( ispoweroftwo( neppC ), "neppC is not a power of 2" ); + + //-------------------------------------------------------------------------- + // ** NB! A single super-buffer AOSOA[npagC][ndcoup][nx2][neppC] includes data for ndcoup different couplings ** + // ** NB! The ieventAccessRecord and kernelAccess functions refer to the buffer for one individual coupling ** + // ** NB! Use idcoupAccessBuffer to add a fixed offset and locate the buffer for one given individual coupling ** + //-------------------------------------------------------------------------- + + // Locate the buffer for a single coupling (output) in a memory super-buffer (input) from the given coupling index (input) + // [Signature (non-const) ===> fptype* idcoupAccessBuffer( fptype* buffer, const int idcoup ) <===] + // NB: keep this in public even if exposed through KernelAccessCouplings: nvcc says it is inaccesible otherwise? + static __host__ __device__ inline fptype* + idcoupAccessBuffer( fptype* buffer, // input "super-buffer" + const int idcoup ) + { + constexpr int ipagC = 0; + constexpr int ieppC = 0; + constexpr int ix2 = 0; + // NB! this effectively adds an offset "idcoup * nx2 * neppC" + return &( buffer[ipagC * ndcoup * nx2 * neppC + idcoup * nx2 * neppC + ix2 * neppC + ieppC] ); // AOSOA[ipagC][idcoup][ix2][ieppC] + } + + // Locate the buffer for a single coupling (output) in a memory super-buffer (input) from the given coupling index (input) + // [Signature (const) ===> const fptype* idcoupAccessBufferConst( const fptype* buffer, const int idcoup ) <===] + // NB: keep this in public even if exposed through KernelAccessCouplings: nvcc says it is inaccesible otherwise? + static __host__ __device__ inline const fptype* + idcoupAccessBufferConst( const fptype* buffer, // input "super-buffer" + const int idcoup ) + { + return idcoupAccessBuffer( const_cast( buffer ), idcoup ); + } + + private: + + friend class MemoryAccessHelper; + friend class KernelAccessHelper; + friend class KernelAccessHelper; + + // The number of couplings that dependent on the running alphas QCD in this specific process + static constexpr size_t ndcoup = Parameters_sm_dependentCouplings::ndcoup; + + // The number of floating point components of a complex number + static constexpr int nx2 = mgOnGpu::nx2; + + //-------------------------------------------------------------------------- + // NB all KernelLaunchers assume that memory access can be decomposed as "accessField = decodeRecord( accessRecord )" + // (in other words: first locate the event record for a given event, then locate an element in that record) + //-------------------------------------------------------------------------- + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] + static __host__ __device__ inline fptype* + ieventAccessRecord( fptype* buffer, + const int ievt ) + { + const int ipagC = ievt / neppC; // #event "C-page" + const int ieppC = ievt % neppC; // #event in the current event C-page + constexpr int idcoup = 0; + constexpr int ix2 = 0; + return &( buffer[ipagC * ndcoup * nx2 * neppC + idcoup * nx2 * neppC + ix2 * neppC + ieppC] ); // AOSOA[ipagC][idcoup][ix2][ieppC] + } + + //-------------------------------------------------------------------------- + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, Ts... args ) <===] + // [NB: expand variadic template "Ts... args" to "const int ix2" and rename "Field" as "Ix2"] + static __host__ __device__ inline fptype& + decodeRecord( fptype* buffer, + const int ix2 ) + { + constexpr int ipagC = 0; + constexpr int ieppC = 0; + // NB! the offset "idcoup * nx2 * neppC" has been added in idcoupAccessBuffer + constexpr int idcoup = 0; + return buffer[ipagC * ndcoup * nx2 * neppC + idcoup * nx2 * neppC + ix2 * neppC + ieppC]; // AOSOA[ipagC][idcoup][ix2][ieppC] + } + }; + + //---------------------------------------------------------------------------- + + // A class providing access to memory buffers for a given event, based on explicit event numbers + // Its methods use the MemoryAccessHelper templates - note the use of the template keyword in template function instantiations + class MemoryAccessCouplings : public MemoryAccessCouplingsBase { - constexpr int ipagC = 0; - constexpr int ieppC = 0; - // NB! the offset "idcoup * nx2 * neppC" has been added in idcoupAccessBuffer - constexpr int idcoup = 0; - return buffer[ipagC * ndcoup * nx2 * neppC + idcoup * nx2 * neppC + ix2 * neppC + ieppC]; // AOSOA[ipagC][idcoup][ix2][ieppC] - } -}; - -//---------------------------------------------------------------------------- - -// A class providing access to memory buffers for a given event, based on explicit event numbers -// Its methods use the MemoryAccessHelper templates - note the use of the template keyword in template function instantiations -class MemoryAccessCouplings : public MemoryAccessCouplingsBase -{ -public: - - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] - static constexpr auto ieventAccessRecord = MemoryAccessHelper::ieventAccessRecord; - - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (const) ===> const fptype* ieventAccessRecordConst( const fptype* buffer, const int ievt ) <===] - static constexpr auto ieventAccessRecordConst = MemoryAccessHelper::ieventAccessRecordConst; - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, const int ix2 ) <===] - static constexpr auto decodeRecordIx2 = MemoryAccessHelper::decodeRecord; - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (const) ===> const fptype& decodeRecordConst( const fptype* buffer, const int ix2 ) <===] - static constexpr auto decodeRecordIx2Const = - MemoryAccessHelper::template decodeRecordConst; - - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (non-const) ===> fptype& ieventAccessIx2( fptype* buffer, const ievt, const int ix2 ) <===] - static constexpr auto ieventAccessIx2 = - MemoryAccessHelper::template ieventAccessField; - - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (const) ===> const fptype& ieventAccessIx2Const( const fptype* buffer, const ievt, const int ix2 ) <===] - static constexpr auto ieventAccessIx2Const = - MemoryAccessHelper::template ieventAccessFieldConst; -}; - -//---------------------------------------------------------------------------- - -// A class providing access to memory buffers for a given event, based on implicit kernel rules -// Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations -template -class KernelAccessCouplings -{ -public: - - // Expose selected functions from MemoryAccessCouplingsBase - static constexpr auto idcoupAccessBuffer = MemoryAccessCouplingsBase::idcoupAccessBuffer; - static constexpr auto idcoupAccessBufferConst = MemoryAccessCouplingsBase::idcoupAccessBufferConst; - - // Expose selected functions from MemoryAccessCouplings - static constexpr auto ieventAccessRecordConst = MemoryAccessCouplings::ieventAccessRecordConst; - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (non-const, SCALAR) ===> fptype& kernelAccessIx2( fptype* buffer, const int ix2 ) <===] - static constexpr auto kernelAccessIx2_s = - KernelAccessHelper::template kernelAccessField; - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (const, SCALAR) ===> const fptype& kernelAccessIx2Const( const fptype* buffer, const int ix2 ) <===] - static constexpr auto kernelAccessIx2Const_s = - KernelAccessHelper::template kernelAccessFieldConst; - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (non const, SCALAR OR VECTOR) ===> fptype_sv& kernelAccessIx2( fptype* buffer, const int ix2 ) <===] - static __host__ __device__ inline fptype_sv& - kernelAccessIx2( fptype* buffer, - const int ix2 ) + public: + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] + static constexpr auto ieventAccessRecord = MemoryAccessHelper::ieventAccessRecord; + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (const) ===> const fptype* ieventAccessRecordConst( const fptype* buffer, const int ievt ) <===] + static constexpr auto ieventAccessRecordConst = MemoryAccessHelper::ieventAccessRecordConst; + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, const int ix2 ) <===] + static constexpr auto decodeRecordIx2 = MemoryAccessHelper::decodeRecord; + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (const) ===> const fptype& decodeRecordConst( const fptype* buffer, const int ix2 ) <===] + static constexpr auto decodeRecordIx2Const = + MemoryAccessHelper::template decodeRecordConst; + + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (non-const) ===> fptype& ieventAccessIx2( fptype* buffer, const ievt, const int ix2 ) <===] + static constexpr auto ieventAccessIx2 = + MemoryAccessHelper::template ieventAccessField; + + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (const) ===> const fptype& ieventAccessIx2Const( const fptype* buffer, const ievt, const int ix2 ) <===] + static constexpr auto ieventAccessIx2Const = + MemoryAccessHelper::template ieventAccessFieldConst; + }; + + //---------------------------------------------------------------------------- + + // A class providing access to memory buffers for a given event, based on implicit kernel rules + // Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations + template + class KernelAccessCouplings { - fptype& out = kernelAccessIx2_s( buffer, ix2 ); + public: + + // Expose selected functions from MemoryAccessCouplingsBase + static constexpr auto idcoupAccessBuffer = MemoryAccessCouplingsBase::idcoupAccessBuffer; + static constexpr auto idcoupAccessBufferConst = MemoryAccessCouplingsBase::idcoupAccessBufferConst; + + // Expose selected functions from MemoryAccessCouplings + static constexpr auto ieventAccessRecordConst = MemoryAccessCouplings::ieventAccessRecordConst; + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (non-const, SCALAR) ===> fptype& kernelAccessIx2( fptype* buffer, const int ix2 ) <===] + static constexpr auto kernelAccessIx2_s = + KernelAccessHelper::template kernelAccessField; + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (const, SCALAR) ===> const fptype& kernelAccessIx2Const( const fptype* buffer, const int ix2 ) <===] + static constexpr auto kernelAccessIx2Const_s = + KernelAccessHelper::template kernelAccessFieldConst; + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (non const, SCALAR OR VECTOR) ===> fptype_sv& kernelAccessIx2( fptype* buffer, const int ix2 ) <===] + static __host__ __device__ inline fptype_sv& + kernelAccessIx2( fptype* buffer, + const int ix2 ) + { + fptype& out = kernelAccessIx2_s( buffer, ix2 ); #ifndef MGONGPU_CPPSIMD - return out; + return out; #else - // NB: derived from MemoryAccessMomenta, restricting the implementation to contiguous aligned arrays - constexpr int neppC = MemoryAccessCouplingsBase::neppC; - static_assert( neppC >= neppV ); // ASSUME CONTIGUOUS ARRAYS - static_assert( neppC % neppV == 0 ); // ASSUME CONTIGUOUS ARRAYS - static_assert( mg5amcCpu::HostBufferCouplings::isaligned() ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) - //assert( (size_t)( buffer ) % mgOnGpu::cppAlign == 0 ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) - return mg5amcCpu::fptypevFromAlignedArray( out ); // SIMD bulk load of neppV, use reinterpret_cast + // NB: derived from MemoryAccessMomenta, restricting the implementation to contiguous aligned arrays + constexpr int neppC = MemoryAccessCouplingsBase::neppC; + static_assert( neppC >= neppV ); // ASSUME CONTIGUOUS ARRAYS + static_assert( neppC % neppV == 0 ); // ASSUME CONTIGUOUS ARRAYS + static_assert( mg5amcCpu::HostBufferCouplings::isaligned() ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) + //assert( (size_t)( buffer ) % mgOnGpu::cppAlign == 0 ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) + return mg5amcCpu::fptypevFromAlignedArray( out ); // SIMD bulk load of neppV, use reinterpret_cast #endif - } + } - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (const, SCALAR OR VECTOR) ===> const fptype_sv& kernelAccessIx2Const( const fptype* buffer, const int ix2 ) <===] - static __host__ __device__ inline const fptype_sv& - kernelAccessIx2Const( const fptype* buffer, - const int ix2 ) - { - return kernelAccessIx2( const_cast( buffer ), ix2 ); - } - - /* - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (const, SCALAR OR VECTOR) ===> const fptype_sv& kernelAccessIx2Const( const fptype* buffer, const int ix2 ) <===] - static __host__ __device__ inline const fptype_sv& - kernelAccessIx2Const( const fptype* buffer, - const int ix2 ) - { - const fptype& out = kernelAccessIx2Const_s( buffer, ix2 ); + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (const, SCALAR OR VECTOR) ===> const fptype_sv& kernelAccessIx2Const( const fptype* buffer, const int ix2 ) <===] + static __host__ __device__ inline const fptype_sv& + kernelAccessIx2Const( const fptype* buffer, + const int ix2 ) + { + return kernelAccessIx2( const_cast( buffer ), ix2 ); + } + + /* + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (const, SCALAR OR VECTOR) ===> const fptype_sv& kernelAccessIx2Const( const fptype* buffer, const int ix2 ) <===] + static __host__ __device__ inline const fptype_sv& + kernelAccessIx2Const( const fptype* buffer, + const int ix2 ) + { + const fptype& out = kernelAccessIx2Const_s( buffer, ix2 ); #ifndef MGONGPU_CPPSIMD - return out; + return out; #else - // NB: derived from MemoryAccessMomenta, restricting the implementation to contiguous aligned arrays - constexpr int neppC = MemoryAccessCouplingsBase::neppC; - static_assert( neppC >= neppV ); // ASSUME CONTIGUOUS ARRAYS - static_assert( neppC % neppV == 0 ); // ASSUME CONTIGUOUS ARRAYS - static_assert( mg5amcCpu::HostBufferCouplings::isaligned() ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) - //assert( (size_t)( buffer ) % mgOnGpu::cppAlign == 0 ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) - return mg5amcCpu::fptypevFromAlignedArray( out ); // SIMD bulk load of neppV, use reinterpret_cast + // NB: derived from MemoryAccessMomenta, restricting the implementation to contiguous aligned arrays + constexpr int neppC = MemoryAccessCouplingsBase::neppC; + static_assert( neppC >= neppV ); // ASSUME CONTIGUOUS ARRAYS + static_assert( neppC % neppV == 0 ); // ASSUME CONTIGUOUS ARRAYS + static_assert( mg5amcCpu::HostBufferCouplings::isaligned() ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) + //assert( (size_t)( buffer ) % mgOnGpu::cppAlign == 0 ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) + return mg5amcCpu::fptypevFromAlignedArray( out ); // SIMD bulk load of neppV, use reinterpret_cast #endif - } - */ - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (non const, SCALAR OR VECTOR) ===> cxtype_sv_ref kernelAccess( fptype* buffer ) <===] - static __host__ __device__ inline cxtype_sv_ref - kernelAccess( fptype* buffer ) - { - /* - fptype_sv& real = kernelAccessIx2( buffer, 0 ); - fptype_sv& imag = kernelAccessIx2( buffer, 1 ); - printf( "C_ACCESS::kernelAccess: pbuffer=%p pr=%p pi=%p\n", buffer, &real, &imag ); - return cxtype_sv_ref( real, imag ); - */ - return cxtype_sv_ref( kernelAccessIx2( buffer, 0 ), - kernelAccessIx2( buffer, 1 ) ); - } - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (const, SCALAR OR VECTOR) ===> cxtype_sv kernelAccessConst( const fptype* buffer ) <===] - static __host__ __device__ inline cxtype_sv - kernelAccessConst( const fptype* buffer ) - { - /* - const fptype_sv& real = kernelAccessIx2Const( buffer, 0 ); - const fptype_sv& imag = kernelAccessIx2Const( buffer, 1 ); - printf( "C_ACCESS::kernelAccessConst: pbuffer=%p pr=%p pi=%p\n", buffer, &real, &imag ); - return cxtype_sv( real, imag ); + } */ - return cxtype_sv( kernelAccessIx2Const( buffer, 0 ), - kernelAccessIx2Const( buffer, 1 ) ); - } -}; - -//---------------------------------------------------------------------------- - -typedef KernelAccessCouplings HostAccessCouplings; -typedef KernelAccessCouplings DeviceAccessCouplings; -//---------------------------------------------------------------------------- + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (non const, SCALAR OR VECTOR) ===> cxtype_sv_ref kernelAccess( fptype* buffer ) <===] + static __host__ __device__ inline cxtype_sv_ref + kernelAccess( fptype* buffer ) + { + /* + fptype_sv& real = kernelAccessIx2( buffer, 0 ); + fptype_sv& imag = kernelAccessIx2( buffer, 1 ); + printf( "C_ACCESS::kernelAccess: pbuffer=%p pr=%p pi=%p\n", buffer, &real, &imag ); + return cxtype_sv_ref( real, imag ); + */ + return cxtype_sv_ref( kernelAccessIx2( buffer, 0 ), + kernelAccessIx2( buffer, 1 ) ); + } + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (const, SCALAR OR VECTOR) ===> cxtype_sv kernelAccessConst( const fptype* buffer ) <===] + static __host__ __device__ inline cxtype_sv + kernelAccessConst( const fptype* buffer ) + { + /* + const fptype_sv& real = kernelAccessIx2Const( buffer, 0 ); + const fptype_sv& imag = kernelAccessIx2Const( buffer, 1 ); + printf( "C_ACCESS::kernelAccessConst: pbuffer=%p pr=%p pi=%p\n", buffer, &real, &imag ); + return cxtype_sv( real, imag ); + */ + return cxtype_sv( kernelAccessIx2Const( buffer, 0 ), + kernelAccessIx2Const( buffer, 1 ) ); + } + }; + + //---------------------------------------------------------------------------- + + typedef KernelAccessCouplings HostAccessCouplings; + typedef KernelAccessCouplings DeviceAccessCouplings; + + //---------------------------------------------------------------------------- + +} // end namespace mg5amcGpu/mg5amcCpu #endif // MemoryAccessCouplings_H diff --git a/epochX/cudacpp/gg_tt.mad/SubProcesses/MemoryAccessCouplingsFixed.h b/epochX/cudacpp/gg_tt.mad/SubProcesses/MemoryAccessCouplingsFixed.h index 81193ab261..dc0d93afff 100644 --- a/epochX/cudacpp/gg_tt.mad/SubProcesses/MemoryAccessCouplingsFixed.h +++ b/epochX/cudacpp/gg_tt.mad/SubProcesses/MemoryAccessCouplingsFixed.h @@ -13,63 +13,72 @@ //#include "MemoryAccessHelpers.h" -//---------------------------------------------------------------------------- - -// A class describing the internal layout of memory buffers for fixed couplings -// This implementation uses a STRUCT[ndcoup][nx2] "super-buffer" layout: in practice, the cIPC global array -// From the "super-buffer" for ndcoup different couplings, use idcoupAccessBuffer to access the buffer for one specific coupling -// [If many implementations are used, a suffix _Sv1 should be appended to the class name] -class MemoryAccessCouplingsFixedBase //_Sv1 +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { -public: + //---------------------------------------------------------------------------- - // Locate the buffer for a single coupling (output) in a memory super-buffer (input) from the given coupling index (input) - // [Signature (const) ===> const fptype* iicoupAccessBufferConst( const fptype* buffer, const int iicoup ) <===] - static __host__ __device__ inline const fptype* - iicoupAccessBufferConst( const fptype* buffer, // input "super-buffer": in practice, the cIPC global array - const int iicoup ) + // A class describing the internal layout of memory buffers for fixed couplings + // This implementation uses a STRUCT[ndcoup][nx2] "super-buffer" layout: in practice, the cIPC global array + // From the "super-buffer" for ndcoup different couplings, use idcoupAccessBuffer to access the buffer for one specific coupling + // [If many implementations are used, a suffix _Sv1 should be appended to the class name] + class MemoryAccessCouplingsFixedBase //_Sv1 { - constexpr int ix2 = 0; - // NB! this effectively adds an offset "iicoup * nx2" - return &( buffer[iicoup * nx2 + ix2] ); // STRUCT[idcoup][ix2] - } - -private: - - // The number of floating point components of a complex number - static constexpr int nx2 = mgOnGpu::nx2; -}; - -//---------------------------------------------------------------------------- + public: + + // Locate the buffer for a single coupling (output) in a memory super-buffer (input) from the given coupling index (input) + // [Signature (const) ===> const fptype* iicoupAccessBufferConst( const fptype* buffer, const int iicoup ) <===] + static __host__ __device__ inline const fptype* + iicoupAccessBufferConst( const fptype* buffer, // input "super-buffer": in practice, the cIPC global array + const int iicoup ) + { + constexpr int ix2 = 0; + // NB! this effectively adds an offset "iicoup * nx2" + return &( buffer[iicoup * nx2 + ix2] ); // STRUCT[idcoup][ix2] + } + + private: + + // The number of floating point components of a complex number + static constexpr int nx2 = mgOnGpu::nx2; + }; + + //---------------------------------------------------------------------------- + + // A class providing access to memory buffers for a given event, based on implicit kernel rules + // Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations + template + class KernelAccessCouplingsFixed + { + public: -// A class providing access to memory buffers for a given event, based on implicit kernel rules -// Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations -template -class KernelAccessCouplingsFixed -{ -public: + // Expose selected functions from MemoryAccessCouplingsFixedBase + static constexpr auto iicoupAccessBufferConst = MemoryAccessCouplingsFixedBase::iicoupAccessBufferConst; - // Expose selected functions from MemoryAccessCouplingsFixedBase - static constexpr auto iicoupAccessBufferConst = MemoryAccessCouplingsFixedBase::iicoupAccessBufferConst; + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (const, SCALAR OR VECTOR) ===> cxtype_sv kernelAccessConst( const fptype* buffer ) <===] + static __host__ __device__ inline const cxtype_sv + kernelAccessConst( const fptype* buffer ) + { + // TRIVIAL ACCESS to fixed-couplings buffers! + //return cxmake( fptype_sv{ buffer[0] }, fptype_sv{ buffer[1] } ); // NO! BUG #339! + const fptype_sv r_sv = fptype_sv{ 0 } + buffer[0]; + const fptype_sv i_sv = fptype_sv{ 0 } + buffer[1]; + return cxmake( r_sv, i_sv ); // ugly but effective + } + }; - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (const, SCALAR OR VECTOR) ===> cxtype_sv kernelAccessConst( const fptype* buffer ) <===] - static __host__ __device__ inline const cxtype_sv - kernelAccessConst( const fptype* buffer ) - { - // TRIVIAL ACCESS to fixed-couplings buffers! - //return cxmake( fptype_sv{ buffer[0] }, fptype_sv{ buffer[1] } ); // NO! BUG #339! - const fptype_sv r_sv = fptype_sv{ 0 } + buffer[0]; - const fptype_sv i_sv = fptype_sv{ 0 } + buffer[1]; - return cxmake( r_sv, i_sv ); // ugly but effective - } -}; + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- + typedef KernelAccessCouplingsFixed HostAccessCouplingsFixed; + typedef KernelAccessCouplingsFixed DeviceAccessCouplingsFixed; -typedef KernelAccessCouplingsFixed HostAccessCouplingsFixed; -typedef KernelAccessCouplingsFixed DeviceAccessCouplingsFixed; + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- +} // end namespace mg5amcGpu/mg5amcCpu #endif // MemoryAccessCouplingsFixed_H diff --git a/epochX/cudacpp/gg_tt.mad/SubProcesses/MemoryAccessDenominators.h b/epochX/cudacpp/gg_tt.mad/SubProcesses/MemoryAccessDenominators.h index e76ae65ff9..3bce635718 100644 --- a/epochX/cudacpp/gg_tt.mad/SubProcesses/MemoryAccessDenominators.h +++ b/epochX/cudacpp/gg_tt.mad/SubProcesses/MemoryAccessDenominators.h @@ -9,15 +9,24 @@ #include "MemoryAccessGs.h" -//---------------------------------------------------------------------------- +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif +{ + //---------------------------------------------------------------------------- + + // A class describing the internal layout of memory buffers for denominators + // This implementation reuses the plain ARRAY[nevt] implementation of MemoryAccessGs -// A class describing the internal layout of memory buffers for denominators -// This implementation reuses the plain ARRAY[nevt] implementation of MemoryAccessGs + typedef KernelAccessGs HostAccessDenominators; + typedef KernelAccessGs DeviceAccessDenominators; -typedef KernelAccessGs HostAccessDenominators; -typedef KernelAccessGs DeviceAccessDenominators; + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- +} // end namespace mg5amcGpu/mg5amcCpu #endif #endif // MemoryAccessDenominators_H diff --git a/epochX/cudacpp/gg_tt.mad/SubProcesses/MemoryAccessGs.h b/epochX/cudacpp/gg_tt.mad/SubProcesses/MemoryAccessGs.h index 8996c0554c..31311aa375 100644 --- a/epochX/cudacpp/gg_tt.mad/SubProcesses/MemoryAccessGs.h +++ b/epochX/cudacpp/gg_tt.mad/SubProcesses/MemoryAccessGs.h @@ -12,142 +12,151 @@ #include "MemoryAccessVectors.h" #include "MemoryBuffers.h" // for HostBufferMatrixElements::isaligned -//---------------------------------------------------------------------------- - -// A class describing the internal layout of memory buffers for Gs -// This implementation uses a plain ARRAY[nevt] -// [If many implementations are used, a suffix _ARRAYv1 should be appended to the class name] -class MemoryAccessGsBase //_ARRAYv1 +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { -private: - - friend class MemoryAccessHelper; - friend class KernelAccessHelper; - friend class KernelAccessHelper; - - //-------------------------------------------------------------------------- - // NB all KernelLaunchers assume that memory access can be decomposed as "accessField = decodeRecord( accessRecord )" - // (in other words: first locate the event record for a given event, then locate an element in that record) - //-------------------------------------------------------------------------- - - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] - static __host__ __device__ inline fptype* - ieventAccessRecord( fptype* buffer, - const int ievt ) - { - return &( buffer[ievt] ); // ARRAY[nevt] - } - - //-------------------------------------------------------------------------- + //---------------------------------------------------------------------------- - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, Ts... args ) <===] - // [NB: expand variadic template "Ts... args" to empty and rename "Field" as empty] - static __host__ __device__ inline fptype& - decodeRecord( fptype* buffer ) + // A class describing the internal layout of memory buffers for Gs + // This implementation uses a plain ARRAY[nevt] + // [If many implementations are used, a suffix _ARRAYv1 should be appended to the class name] + class MemoryAccessGsBase //_ARRAYv1 { - constexpr int ievt = 0; - return buffer[ievt]; // ARRAY[nevt] - } -}; - -//---------------------------------------------------------------------------- - -// A class providing access to memory buffers for a given event, based on explicit event numbers -// Its methods use the MemoryAccessHelper templates - note the use of the template keyword in template function instantiations -class MemoryAccessGs : public MemoryAccessGsBase -{ -public: - - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] - static constexpr auto ieventAccessRecord = MemoryAccessHelper::ieventAccessRecord; - - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (const) ===> const fptype* ieventAccessRecordConst( const fptype* buffer, const int ievt ) <===] - static constexpr auto ieventAccessRecordConst = MemoryAccessHelper::ieventAccessRecordConst; - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer ) <===] - static constexpr auto decodeRecord = MemoryAccessHelper::decodeRecord; - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (const) ===> const fptype& decodeRecordConst( const fptype* buffer ) <===] - static constexpr auto decodeRecordConst = - MemoryAccessHelper::template decodeRecordConst<>; - - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (non-const) ===> fptype& ieventAccess( fptype* buffer, const ievt ) <===] - static constexpr auto ieventAccess = - MemoryAccessHelper::template ieventAccessField<>; - - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (const) ===> const fptype& ieventAccessConst( const fptype* buffer, const ievt ) <===] - static constexpr auto ieventAccessConst = - MemoryAccessHelper::template ieventAccessFieldConst<>; -}; - -//---------------------------------------------------------------------------- - -// A class providing access to memory buffers for a given event, based on implicit kernel rules -// Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations -template -class KernelAccessGs -{ -public: - - // Expose selected functions from MemoryAccessGs - static constexpr auto ieventAccessRecord = MemoryAccessGs::ieventAccessRecord; - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (non-const, SCALAR) ===> fptype& kernelAccess( fptype* buffer ) <===] - static constexpr auto kernelAccess_s = - KernelAccessHelper::template kernelAccessField<>; // requires cuda 11.4 - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) - // [Signature (non-const, SCALAR OR VECTOR) ===> fptype_sv& kernelAccess( fptype* buffer ) <===] - static __host__ __device__ inline fptype_sv& - kernelAccess( fptype* buffer ) + private: + + friend class MemoryAccessHelper; + friend class KernelAccessHelper; + friend class KernelAccessHelper; + + //-------------------------------------------------------------------------- + // NB all KernelLaunchers assume that memory access can be decomposed as "accessField = decodeRecord( accessRecord )" + // (in other words: first locate the event record for a given event, then locate an element in that record) + //-------------------------------------------------------------------------- + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] + static __host__ __device__ inline fptype* + ieventAccessRecord( fptype* buffer, + const int ievt ) + { + return &( buffer[ievt] ); // ARRAY[nevt] + } + + //-------------------------------------------------------------------------- + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, Ts... args ) <===] + // [NB: expand variadic template "Ts... args" to empty and rename "Field" as empty] + static __host__ __device__ inline fptype& + decodeRecord( fptype* buffer ) + { + constexpr int ievt = 0; + return buffer[ievt]; // ARRAY[nevt] + } + }; + + //---------------------------------------------------------------------------- + + // A class providing access to memory buffers for a given event, based on explicit event numbers + // Its methods use the MemoryAccessHelper templates - note the use of the template keyword in template function instantiations + class MemoryAccessGs : public MemoryAccessGsBase + { + public: + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] + static constexpr auto ieventAccessRecord = MemoryAccessHelper::ieventAccessRecord; + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (const) ===> const fptype* ieventAccessRecordConst( const fptype* buffer, const int ievt ) <===] + static constexpr auto ieventAccessRecordConst = MemoryAccessHelper::ieventAccessRecordConst; + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer ) <===] + static constexpr auto decodeRecord = MemoryAccessHelper::decodeRecord; + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (const) ===> const fptype& decodeRecordConst( const fptype* buffer ) <===] + static constexpr auto decodeRecordConst = + MemoryAccessHelper::template decodeRecordConst<>; + + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (non-const) ===> fptype& ieventAccess( fptype* buffer, const ievt ) <===] + static constexpr auto ieventAccess = + MemoryAccessHelper::template ieventAccessField<>; + + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (const) ===> const fptype& ieventAccessConst( const fptype* buffer, const ievt ) <===] + static constexpr auto ieventAccessConst = + MemoryAccessHelper::template ieventAccessFieldConst<>; + }; + + //---------------------------------------------------------------------------- + + // A class providing access to memory buffers for a given event, based on implicit kernel rules + // Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations + template + class KernelAccessGs { - fptype& out = kernelAccess_s( buffer ); + public: + + // Expose selected functions from MemoryAccessGs + static constexpr auto ieventAccessRecord = MemoryAccessGs::ieventAccessRecord; + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (non-const, SCALAR) ===> fptype& kernelAccess( fptype* buffer ) <===] + static constexpr auto kernelAccess_s = + KernelAccessHelper::template kernelAccessField<>; // requires cuda 11.4 + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) + // [Signature (non-const, SCALAR OR VECTOR) ===> fptype_sv& kernelAccess( fptype* buffer ) <===] + static __host__ __device__ inline fptype_sv& + kernelAccess( fptype* buffer ) + { + fptype& out = kernelAccess_s( buffer ); #ifndef MGONGPU_CPPSIMD - return out; + return out; #else - // NB: derived from MemoryAccessMomenta, restricting the implementation to contiguous aligned arrays (#435) - static_assert( mg5amcCpu::HostBufferGs::isaligned() ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) - //assert( (size_t)( buffer ) % mgOnGpu::cppAlign == 0 ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) - return mg5amcCpu::fptypevFromAlignedArray( out ); // SIMD bulk load of neppV, use reinterpret_cast + // NB: derived from MemoryAccessMomenta, restricting the implementation to contiguous aligned arrays (#435) + static_assert( mg5amcCpu::HostBufferGs::isaligned() ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) + //assert( (size_t)( buffer ) % mgOnGpu::cppAlign == 0 ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) + return mg5amcCpu::fptypevFromAlignedArray( out ); // SIMD bulk load of neppV, use reinterpret_cast #endif - } - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (const, SCALAR) ===> const fptype& kernelAccessConst( const fptype* buffer ) <===] - static constexpr auto kernelAccessConst_s = - KernelAccessHelper::template kernelAccessFieldConst<>; // requires cuda 11.4 - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) - // [Signature (const, SCALAR OR VECTOR) ===> const fptype_sv& kernelAccess( const fptype* buffer ) <===] - static __host__ __device__ inline const fptype_sv& - kernelAccessConst( const fptype* buffer ) - { - const fptype& out = kernelAccessConst_s( buffer ); + } + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (const, SCALAR) ===> const fptype& kernelAccessConst( const fptype* buffer ) <===] + static constexpr auto kernelAccessConst_s = + KernelAccessHelper::template kernelAccessFieldConst<>; // requires cuda 11.4 + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) + // [Signature (const, SCALAR OR VECTOR) ===> const fptype_sv& kernelAccess( const fptype* buffer ) <===] + static __host__ __device__ inline const fptype_sv& + kernelAccessConst( const fptype* buffer ) + { + const fptype& out = kernelAccessConst_s( buffer ); #ifndef MGONGPU_CPPSIMD - return out; + return out; #else - // NB: derived from MemoryAccessMomenta, restricting the implementation to contiguous aligned arrays (#435) - static_assert( mg5amcCpu::HostBufferGs::isaligned() ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) - //assert( (size_t)( buffer ) % mgOnGpu::cppAlign == 0 ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) - return mg5amcCpu::fptypevFromAlignedArray( out ); // SIMD bulk load of neppV, use reinterpret_cast + // NB: derived from MemoryAccessMomenta, restricting the implementation to contiguous aligned arrays (#435) + static_assert( mg5amcCpu::HostBufferGs::isaligned() ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) + //assert( (size_t)( buffer ) % mgOnGpu::cppAlign == 0 ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) + return mg5amcCpu::fptypevFromAlignedArray( out ); // SIMD bulk load of neppV, use reinterpret_cast #endif - } -}; + } + }; + + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- + typedef KernelAccessGs HostAccessGs; + typedef KernelAccessGs DeviceAccessGs; -typedef KernelAccessGs HostAccessGs; -typedef KernelAccessGs DeviceAccessGs; + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- +} // end namespace mg5amcGpu/mg5amcCpu #endif // MemoryAccessGs_H diff --git a/epochX/cudacpp/gg_tt.mad/SubProcesses/MemoryAccessMatrixElements.h b/epochX/cudacpp/gg_tt.mad/SubProcesses/MemoryAccessMatrixElements.h index b2a82d9acf..f32e6fea5b 100644 --- a/epochX/cudacpp/gg_tt.mad/SubProcesses/MemoryAccessMatrixElements.h +++ b/epochX/cudacpp/gg_tt.mad/SubProcesses/MemoryAccessMatrixElements.h @@ -12,126 +12,135 @@ #include "MemoryAccessVectors.h" #include "MemoryBuffers.h" // for HostBufferMatrixElements::isaligned -//---------------------------------------------------------------------------- - -// A class describing the internal layout of memory buffers for matrix elements -// This implementation uses a plain ARRAY[nevt] -// [If many implementations are used, a suffix _ARRAYv1 should be appended to the class name] -class MemoryAccessMatrixElementsBase //_ARRAYv1 +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { -private: - - friend class MemoryAccessHelper; - friend class KernelAccessHelper; - friend class KernelAccessHelper; - - //-------------------------------------------------------------------------- - // NB all KernelLaunchers assume that memory access can be decomposed as "accessField = decodeRecord( accessRecord )" - // (in other words: first locate the event record for a given event, then locate an element in that record) - //-------------------------------------------------------------------------- - - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] - static __host__ __device__ inline fptype* - ieventAccessRecord( fptype* buffer, - const int ievt ) - { - return &( buffer[ievt] ); // ARRAY[nevt] - } + //---------------------------------------------------------------------------- - //-------------------------------------------------------------------------- - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, Ts... args ) <===] - // [NB: expand variadic template "Ts... args" to empty and rename "Field" as empty] - static __host__ __device__ inline fptype& - decodeRecord( fptype* buffer ) + // A class describing the internal layout of memory buffers for matrix elements + // This implementation uses a plain ARRAY[nevt] + // [If many implementations are used, a suffix _ARRAYv1 should be appended to the class name] + class MemoryAccessMatrixElementsBase //_ARRAYv1 { - constexpr int ievt = 0; - return buffer[ievt]; // ARRAY[nevt] - } -}; - -//---------------------------------------------------------------------------- - -// A class providing access to memory buffers for a given event, based on explicit event numbers -// Its methods use the MemoryAccessHelper templates - note the use of the template keyword in template function instantiations -class MemoryAccessMatrixElements : public MemoryAccessMatrixElementsBase -{ -public: - - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] - static constexpr auto ieventAccessRecord = MemoryAccessHelper::ieventAccessRecord; - - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (const) ===> const fptype* ieventAccessRecordConst( const fptype* buffer, const int ievt ) <===] - static constexpr auto ieventAccessRecordConst = MemoryAccessHelper::ieventAccessRecordConst; - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer ) <===] - static constexpr auto decodeRecord = MemoryAccessHelper::decodeRecord; - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (const) ===> const fptype& decodeRecordConst( const fptype* buffer ) <===] - static constexpr auto decodeRecordConst = - MemoryAccessHelper::template decodeRecordConst<>; - - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (non-const) ===> fptype& ieventAccess( fptype* buffer, const ievt ) <===] - static constexpr auto ieventAccess = - MemoryAccessHelper::template ieventAccessField<>; - - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (const) ===> const fptype& ieventAccessConst( const fptype* buffer, const ievt ) <===] - static constexpr auto ieventAccessConst = - MemoryAccessHelper::template ieventAccessFieldConst<>; -}; - -//---------------------------------------------------------------------------- - -// A class providing access to memory buffers for a given event, based on implicit kernel rules -// Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations -template -class KernelAccessMatrixElements -{ -public: - - // Expose selected functions from MemoryAccessMatrixElements - static constexpr auto ieventAccessRecord = MemoryAccessMatrixElements::ieventAccessRecord; - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (non-const, SCALAR) ===> fptype& kernelAccess_s( fptype* buffer ) <===] - static constexpr auto kernelAccess_s = - KernelAccessHelper::template kernelAccessField<>; // requires cuda 11.4 - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) - // [Signature (non const, SCALAR OR VECTOR) ===> fptype_sv& kernelAccess( const fptype* buffer ) <===] - static __host__ __device__ inline fptype_sv& - kernelAccess( fptype* buffer ) + private: + + friend class MemoryAccessHelper; + friend class KernelAccessHelper; + friend class KernelAccessHelper; + + //-------------------------------------------------------------------------- + // NB all KernelLaunchers assume that memory access can be decomposed as "accessField = decodeRecord( accessRecord )" + // (in other words: first locate the event record for a given event, then locate an element in that record) + //-------------------------------------------------------------------------- + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] + static __host__ __device__ inline fptype* + ieventAccessRecord( fptype* buffer, + const int ievt ) + { + return &( buffer[ievt] ); // ARRAY[nevt] + } + + //-------------------------------------------------------------------------- + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, Ts... args ) <===] + // [NB: expand variadic template "Ts... args" to empty and rename "Field" as empty] + static __host__ __device__ inline fptype& + decodeRecord( fptype* buffer ) + { + constexpr int ievt = 0; + return buffer[ievt]; // ARRAY[nevt] + } + }; + + //---------------------------------------------------------------------------- + + // A class providing access to memory buffers for a given event, based on explicit event numbers + // Its methods use the MemoryAccessHelper templates - note the use of the template keyword in template function instantiations + class MemoryAccessMatrixElements : public MemoryAccessMatrixElementsBase + { + public: + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] + static constexpr auto ieventAccessRecord = MemoryAccessHelper::ieventAccessRecord; + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (const) ===> const fptype* ieventAccessRecordConst( const fptype* buffer, const int ievt ) <===] + static constexpr auto ieventAccessRecordConst = MemoryAccessHelper::ieventAccessRecordConst; + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer ) <===] + static constexpr auto decodeRecord = MemoryAccessHelper::decodeRecord; + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (const) ===> const fptype& decodeRecordConst( const fptype* buffer ) <===] + static constexpr auto decodeRecordConst = + MemoryAccessHelper::template decodeRecordConst<>; + + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (non-const) ===> fptype& ieventAccess( fptype* buffer, const ievt ) <===] + static constexpr auto ieventAccess = + MemoryAccessHelper::template ieventAccessField<>; + + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (const) ===> const fptype& ieventAccessConst( const fptype* buffer, const ievt ) <===] + static constexpr auto ieventAccessConst = + MemoryAccessHelper::template ieventAccessFieldConst<>; + }; + + //---------------------------------------------------------------------------- + + // A class providing access to memory buffers for a given event, based on implicit kernel rules + // Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations + template + class KernelAccessMatrixElements { - fptype& out = kernelAccess_s( buffer ); + public: + + // Expose selected functions from MemoryAccessMatrixElements + static constexpr auto ieventAccessRecord = MemoryAccessMatrixElements::ieventAccessRecord; + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (non-const, SCALAR) ===> fptype& kernelAccess_s( fptype* buffer ) <===] + static constexpr auto kernelAccess_s = + KernelAccessHelper::template kernelAccessField<>; // requires cuda 11.4 + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) + // [Signature (non const, SCALAR OR VECTOR) ===> fptype_sv& kernelAccess( const fptype* buffer ) <===] + static __host__ __device__ inline fptype_sv& + kernelAccess( fptype* buffer ) + { + fptype& out = kernelAccess_s( buffer ); #ifndef MGONGPU_CPPSIMD - return out; + return out; #else - // NB: derived from MemoryAccessMomenta, restricting the implementation to contiguous aligned arrays (#435) - static_assert( mg5amcCpu::HostBufferMatrixElements::isaligned() ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) - //assert( (size_t)( buffer ) % mgOnGpu::cppAlign == 0 ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) - return mg5amcCpu::fptypevFromAlignedArray( out ); // SIMD bulk load of neppV, use reinterpret_cast + // NB: derived from MemoryAccessMomenta, restricting the implementation to contiguous aligned arrays (#435) + static_assert( mg5amcCpu::HostBufferMatrixElements::isaligned() ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) + //assert( (size_t)( buffer ) % mgOnGpu::cppAlign == 0 ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) + return mg5amcCpu::fptypevFromAlignedArray( out ); // SIMD bulk load of neppV, use reinterpret_cast #endif - } + } + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (const) ===> const fptype& kernelAccessConst( const fptype* buffer ) <===] + static constexpr auto kernelAccessConst = + KernelAccessHelper::template kernelAccessFieldConst<>; // requires cuda 11.4 + }; - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (const) ===> const fptype& kernelAccessConst( const fptype* buffer ) <===] - static constexpr auto kernelAccessConst = - KernelAccessHelper::template kernelAccessFieldConst<>; // requires cuda 11.4 -}; + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- + typedef KernelAccessMatrixElements HostAccessMatrixElements; + typedef KernelAccessMatrixElements DeviceAccessMatrixElements; -typedef KernelAccessMatrixElements HostAccessMatrixElements; -typedef KernelAccessMatrixElements DeviceAccessMatrixElements; + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- +} // end namespace mg5amcGpu/mg5amcCpu #endif // MemoryAccessMatrixElements_H diff --git a/epochX/cudacpp/gg_tt.mad/SubProcesses/MemoryAccessMomenta.h b/epochX/cudacpp/gg_tt.mad/SubProcesses/MemoryAccessMomenta.h index 0ac4faa3c7..29266de32c 100644 --- a/epochX/cudacpp/gg_tt.mad/SubProcesses/MemoryAccessMomenta.h +++ b/epochX/cudacpp/gg_tt.mad/SubProcesses/MemoryAccessMomenta.h @@ -12,261 +12,264 @@ #include "MemoryAccessHelpers.h" #include "MemoryAccessVectors.h" +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) #ifdef __CUDACC__ -using mg5amcGpu::CPPProcess; +namespace mg5amcGpu #else -using mg5amcCpu::CPPProcess; +namespace mg5amcCpu #endif - -//---------------------------------------------------------------------------- - -// A class describing the internal layout of memory buffers for momenta -// This implementation uses an AOSOA[npagM][npar][np4][neppM] where nevt=npagM*neppM -// [If many implementations are used, a suffix _AOSOAv1 should be appended to the class name] -class MemoryAccessMomentaBase //_AOSOAv1 { -public: + //---------------------------------------------------------------------------- + + // A class describing the internal layout of memory buffers for momenta + // This implementation uses an AOSOA[npagM][npar][np4][neppM] where nevt=npagM*neppM + // [If many implementations are used, a suffix _AOSOAv1 should be appended to the class name] + class MemoryAccessMomentaBase //_AOSOAv1 + { + public: - // Number of Events Per Page in the momenta AOSOA memory buffer layout - // (these are all best kept as a compile-time constants: see issue #23) + // Number of Events Per Page in the momenta AOSOA memory buffer layout + // (these are all best kept as a compile-time constants: see issue #23) #ifdef __CUDACC__ /* clang-format off */ - // ----------------------------------------------------------------------------------------------- - // --- GPUs: neppM is best set to a power of 2 times the number of fptype's in a 32-byte cacheline - // --- This is relevant to ensure coalesced access to momenta in global memory - // --- Note that neppR is hardcoded and may differ from neppM and neppV on some platforms - // ----------------------------------------------------------------------------------------------- - //static constexpr int neppM = 64/sizeof(fptype); // 2x 32-byte GPU cache lines (512 bits): 8 (DOUBLE) or 16 (FLOAT) - static constexpr int neppM = 32/sizeof(fptype); // (DEFAULT) 32-byte GPU cache line (256 bits): 4 (DOUBLE) or 8 (FLOAT) - //static constexpr int neppM = 1; // *** NB: this is equivalent to AOS *** (slower: 1.03E9 instead of 1.11E9 in eemumu) + // ----------------------------------------------------------------------------------------------- + // --- GPUs: neppM is best set to a power of 2 times the number of fptype's in a 32-byte cacheline + // --- This is relevant to ensure coalesced access to momenta in global memory + // --- Note that neppR is hardcoded and may differ from neppM and neppV on some platforms + // ----------------------------------------------------------------------------------------------- + //static constexpr int neppM = 64/sizeof(fptype); // 2x 32-byte GPU cache lines (512 bits): 8 (DOUBLE) or 16 (FLOAT) + static constexpr int neppM = 32/sizeof(fptype); // (DEFAULT) 32-byte GPU cache line (256 bits): 4 (DOUBLE) or 8 (FLOAT) + //static constexpr int neppM = 1; // *** NB: this is equivalent to AOS *** (slower: 1.03E9 instead of 1.11E9 in eemumu) #else - // ----------------------------------------------------------------------------------------------- - // --- CPUs: neppM is best set equal to the number of fptype's (neppV) in a vector register - // --- This is relevant to ensure faster access to momenta from C++ memory cache lines - // --- However, neppM is now decoupled from neppV (issue #176) and can be separately hardcoded - // --- In practice, neppR, neppM and neppV could now (in principle) all be different - // ----------------------------------------------------------------------------------------------- + // ----------------------------------------------------------------------------------------------- + // --- CPUs: neppM is best set equal to the number of fptype's (neppV) in a vector register + // --- This is relevant to ensure faster access to momenta from C++ memory cache lines + // --- However, neppM is now decoupled from neppV (issue #176) and can be separately hardcoded + // --- In practice, neppR, neppM and neppV could now (in principle) all be different + // ----------------------------------------------------------------------------------------------- #ifdef MGONGPU_CPPSIMD - static constexpr int neppM = MGONGPU_CPPSIMD; // (DEFAULT) neppM=neppV for optimal performance - //static constexpr int neppM = 64/sizeof(fptype); // maximum CPU vector width (512 bits): 8 (DOUBLE) or 16 (FLOAT) - //static constexpr int neppM = 32/sizeof(fptype); // lower CPU vector width (256 bits): 4 (DOUBLE) or 8 (FLOAT) - //static constexpr int neppM = 1; // *** NB: this is equivalent to AOS *** (slower: 4.66E6 instead of 5.09E9 in eemumu) - //static constexpr int neppM = MGONGPU_CPPSIMD*2; // FOR TESTS + static constexpr int neppM = MGONGPU_CPPSIMD; // (DEFAULT) neppM=neppV for optimal performance + //static constexpr int neppM = 64/sizeof(fptype); // maximum CPU vector width (512 bits): 8 (DOUBLE) or 16 (FLOAT) + //static constexpr int neppM = 32/sizeof(fptype); // lower CPU vector width (256 bits): 4 (DOUBLE) or 8 (FLOAT) + //static constexpr int neppM = 1; // *** NB: this is equivalent to AOS *** (slower: 4.66E6 instead of 5.09E9 in eemumu) + //static constexpr int neppM = MGONGPU_CPPSIMD*2; // FOR TESTS #else - static constexpr int neppM = 1; // (DEFAULT) neppM=neppV for optimal performance (NB: this is equivalent to AOS) + static constexpr int neppM = 1; // (DEFAULT) neppM=neppV for optimal performance (NB: this is equivalent to AOS) #endif #endif /* clang-format on */ - // SANITY CHECK: check that neppM is a power of two - static_assert( ispoweroftwo( neppM ), "neppM is not a power of 2" ); + // SANITY CHECK: check that neppM is a power of two + static_assert( ispoweroftwo( neppM ), "neppM is not a power of 2" ); -private: + private: - friend class MemoryAccessHelper; - friend class KernelAccessHelper; - friend class KernelAccessHelper; + friend class MemoryAccessHelper; + friend class KernelAccessHelper; + friend class KernelAccessHelper; - // The number of components of a 4-momentum - static constexpr int np4 = CPPProcess::np4; + // The number of components of a 4-momentum + static constexpr int np4 = CPPProcess::np4; - // The number of particles in this physics process - static constexpr int npar = CPPProcess::npar; + // The number of particles in this physics process + static constexpr int npar = CPPProcess::npar; - //-------------------------------------------------------------------------- - // NB all KernelLaunchers assume that memory access can be decomposed as "accessField = decodeRecord( accessRecord )" - // (in other words: first locate the event record for a given event, then locate an element in that record) - //-------------------------------------------------------------------------- + //-------------------------------------------------------------------------- + // NB all KernelLaunchers assume that memory access can be decomposed as "accessField = decodeRecord( accessRecord )" + // (in other words: first locate the event record for a given event, then locate an element in that record) + //-------------------------------------------------------------------------- - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] - static __host__ __device__ inline fptype* - ieventAccessRecord( fptype* buffer, - const int ievt ) - { - const int ipagM = ievt / neppM; // #event "M-page" - const int ieppM = ievt % neppM; // #event in the current event M-page - constexpr int ip4 = 0; - constexpr int ipar = 0; - return &( buffer[ipagM * npar * np4 * neppM + ipar * np4 * neppM + ip4 * neppM + ieppM] ); // AOSOA[ipagM][ipar][ip4][ieppM] - } - - //-------------------------------------------------------------------------- - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, Ts... args ) <===] - // [NB: expand variadic template "Ts... args" to "const int ip4, const int ipar" and rename "Field" as "Ip4Ipar"] - static __host__ __device__ inline fptype& - decodeRecord( fptype* buffer, - const int ip4, - const int ipar ) + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] + static __host__ __device__ inline fptype* + ieventAccessRecord( fptype* buffer, + const int ievt ) + { + const int ipagM = ievt / neppM; // #event "M-page" + const int ieppM = ievt % neppM; // #event in the current event M-page + constexpr int ip4 = 0; + constexpr int ipar = 0; + return &( buffer[ipagM * npar * np4 * neppM + ipar * np4 * neppM + ip4 * neppM + ieppM] ); // AOSOA[ipagM][ipar][ip4][ieppM] + } + + //-------------------------------------------------------------------------- + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, Ts... args ) <===] + // [NB: expand variadic template "Ts... args" to "const int ip4, const int ipar" and rename "Field" as "Ip4Ipar"] + static __host__ __device__ inline fptype& + decodeRecord( fptype* buffer, + const int ip4, + const int ipar ) + { + constexpr int ipagM = 0; + constexpr int ieppM = 0; + return buffer[ipagM * npar * np4 * neppM + ipar * np4 * neppM + ip4 * neppM + ieppM]; // AOSOA[ipagM][ipar][ip4][ieppM] + } + }; + + //---------------------------------------------------------------------------- + + // A class providing access to memory buffers for a given event, based on explicit event numbers + // Its methods use the MemoryAccessHelper templates - note the use of the template keyword in template function instantiations + class MemoryAccessMomenta : public MemoryAccessMomentaBase { - constexpr int ipagM = 0; - constexpr int ieppM = 0; - return buffer[ipagM * npar * np4 * neppM + ipar * np4 * neppM + ip4 * neppM + ieppM]; // AOSOA[ipagM][ipar][ip4][ieppM] - } -}; + public: + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] + static constexpr auto ieventAccessRecord = MemoryAccessHelper::ieventAccessRecord; + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (const) ===> const fptype* ieventAccessRecordConst( const fptype* buffer, const int ievt ) <===] + static constexpr auto ieventAccessRecordConst = MemoryAccessHelper::ieventAccessRecordConst; + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, const int ipar, const int ipar ) <===] + static constexpr auto decodeRecordIp4Ipar = MemoryAccessHelper::decodeRecord; + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (const) ===> const fptype& decodeRecordConst( const fptype* buffer, const int ipar, const int ipar ) <===] + static constexpr auto decodeRecordIp4IparConst = + MemoryAccessHelper::template decodeRecordConst; + + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (non-const) ===> fptype& ieventAccessIp4Ipar( fptype* buffer, const ievt, const int ipar, const int ipar ) <===] + static constexpr auto ieventAccessIp4Ipar = + MemoryAccessHelper::template ieventAccessField; + + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (const) ===> const fptype& ieventAccessIp4IparConst( const fptype* buffer, const ievt, const int ipar, const int ipar ) <===] + // DEFAULT VERSION + static constexpr auto ieventAccessIp4IparConst = + MemoryAccessHelper::template ieventAccessFieldConst; + + /* + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (const) ===> const fptype& ieventAccessIp4IparConst( const fptype* buffer, const ievt, const int ipar, const int ipar ) <===] + // DEBUG VERSION WITH PRINTOUTS + static __host__ __device__ inline const fptype& + ieventAccessIp4IparConst( const fptype* buffer, + const int ievt, + const int ip4, + const int ipar ) + { + const fptype& out = MemoryAccessHelper::template ieventAccessFieldConst( buffer, ievt, ip4, ipar ); + printf( "ipar=%2d ip4=%2d ievt=%8d out=%8.3f\n", ipar, ip4, ievt, out ); + return out; + } + */ + }; -//---------------------------------------------------------------------------- + //---------------------------------------------------------------------------- -// A class providing access to memory buffers for a given event, based on explicit event numbers -// Its methods use the MemoryAccessHelper templates - note the use of the template keyword in template function instantiations -class MemoryAccessMomenta : public MemoryAccessMomentaBase -{ -public: - - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] - static constexpr auto ieventAccessRecord = MemoryAccessHelper::ieventAccessRecord; - - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (const) ===> const fptype* ieventAccessRecordConst( const fptype* buffer, const int ievt ) <===] - static constexpr auto ieventAccessRecordConst = MemoryAccessHelper::ieventAccessRecordConst; - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, const int ipar, const int ipar ) <===] - static constexpr auto decodeRecordIp4Ipar = MemoryAccessHelper::decodeRecord; - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (const) ===> const fptype& decodeRecordConst( const fptype* buffer, const int ipar, const int ipar ) <===] - static constexpr auto decodeRecordIp4IparConst = - MemoryAccessHelper::template decodeRecordConst; - - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (non-const) ===> fptype& ieventAccessIp4Ipar( fptype* buffer, const ievt, const int ipar, const int ipar ) <===] - static constexpr auto ieventAccessIp4Ipar = - MemoryAccessHelper::template ieventAccessField; - - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (const) ===> const fptype& ieventAccessIp4IparConst( const fptype* buffer, const ievt, const int ipar, const int ipar ) <===] - // DEFAULT VERSION - static constexpr auto ieventAccessIp4IparConst = - MemoryAccessHelper::template ieventAccessFieldConst; - - /* - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (const) ===> const fptype& ieventAccessIp4IparConst( const fptype* buffer, const ievt, const int ipar, const int ipar ) <===] - // DEBUG VERSION WITH PRINTOUTS - static __host__ __device__ inline const fptype& - ieventAccessIp4IparConst( const fptype* buffer, - const int ievt, - const int ip4, - const int ipar ) + // A class providing access to memory buffers for a given event, based on implicit kernel rules + // Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations + template + class KernelAccessMomenta { - const fptype& out = MemoryAccessHelper::template ieventAccessFieldConst( buffer, ievt, ip4, ipar ); - printf( "ipar=%2d ip4=%2d ievt=%8d out=%8.3f\n", ipar, ip4, ievt, out ); - return out; - } - */ -}; - -//---------------------------------------------------------------------------- - -// A class providing access to memory buffers for a given event, based on implicit kernel rules -// Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations -template -class KernelAccessMomenta -{ -public: - - // Expose selected functions from MemoryAccessMomenta - static constexpr auto ieventAccessRecordConst = MemoryAccessMomenta::ieventAccessRecordConst; - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (non-const, SCALAR) ===> fptype& kernelAccessIp4Ipar( fptype* buffer, const int ipar, const int ipar ) <===] - static constexpr auto kernelAccessIp4Ipar = - KernelAccessHelper::template kernelAccessField; - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (const, SCALAR) ===> const fptype& kernelAccessIp4IparConst( const fptype* buffer, const int ipar, const int ipar ) <===] - // DEFAULT VERSION - static constexpr auto kernelAccessIp4IparConst_s = - KernelAccessHelper::template kernelAccessFieldConst; - - /* - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (const, SCALAR) ===> const fptype& kernelAccessIp4IparConst( const fptype* buffer, const int ipar, const int ipar ) <===] - // DEBUG VERSION WITH PRINTOUTS - static __host__ __device__ inline const fptype& - kernelAccessIp4IparConst_s( const fptype* buffer, + public: + + // Expose selected functions from MemoryAccessMomenta + static constexpr auto ieventAccessRecordConst = MemoryAccessMomenta::ieventAccessRecordConst; + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (non-const, SCALAR) ===> fptype& kernelAccessIp4Ipar( fptype* buffer, const int ipar, const int ipar ) <===] + static constexpr auto kernelAccessIp4Ipar = + KernelAccessHelper::template kernelAccessField; + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (const, SCALAR) ===> const fptype& kernelAccessIp4IparConst( const fptype* buffer, const int ipar, const int ipar ) <===] + // DEFAULT VERSION + static constexpr auto kernelAccessIp4IparConst_s = + KernelAccessHelper::template kernelAccessFieldConst; + + /* + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (const, SCALAR) ===> const fptype& kernelAccessIp4IparConst( const fptype* buffer, const int ipar, const int ipar ) <===] + // DEBUG VERSION WITH PRINTOUTS + static __host__ __device__ inline const fptype& + kernelAccessIp4IparConst_s( const fptype* buffer, + const int ip4, + const int ipar ) + { + const fptype& out = KernelAccessHelper::template kernelAccessFieldConst( buffer, ip4, ipar ); + printf( "ipar=%2d ip4=%2d ievt='kernel' out=%8.3f\n", ipar, ip4, out ); + return out; + } + */ + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (const, SCALAR OR VECTOR) ===> fptype_sv kernelAccessIp4IparConst( const fptype* buffer, const int ipar, const int ipar ) <===] + // FIXME? Eventually return by const reference and support aligned arrays only? + // FIXME? Currently return by value to support also unaligned and arbitrary arrays + static __host__ __device__ inline fptype_sv + kernelAccessIp4IparConst( const fptype* buffer, const int ip4, const int ipar ) - { - const fptype& out = KernelAccessHelper::template kernelAccessFieldConst( buffer, ip4, ipar ); - printf( "ipar=%2d ip4=%2d ievt='kernel' out=%8.3f\n", ipar, ip4, out ); - return out; - } - */ - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (const, SCALAR OR VECTOR) ===> fptype_sv kernelAccessIp4IparConst( const fptype* buffer, const int ipar, const int ipar ) <===] - // FIXME? Eventually return by const reference and support aligned arrays only? - // FIXME? Currently return by value to support also unaligned and arbitrary arrays - static __host__ __device__ inline fptype_sv - kernelAccessIp4IparConst( const fptype* buffer, - const int ip4, - const int ipar ) - { - const fptype& out = kernelAccessIp4IparConst_s( buffer, ip4, ipar ); + { + const fptype& out = kernelAccessIp4IparConst_s( buffer, ip4, ipar ); #ifndef MGONGPU_CPPSIMD - return out; + return out; #else - constexpr int neppM = MemoryAccessMomentaBase::neppM; - constexpr bool useContiguousEventsIfPossible = true; // DEFAULT - //constexpr bool useContiguousEventsIfPossible = false; // FOR PERFORMANCE TESTS (treat as arbitrary array even if it is an AOSOA) - // Use c++17 "if constexpr": compile-time branching - if constexpr( useContiguousEventsIfPossible && ( neppM >= neppV ) && ( neppM % neppV == 0 ) ) - { - //constexpr bool skipAlignmentCheck = true; // FASTEST (SEGFAULTS IF MISALIGNED ACCESS, NEEDS A SANITY CHECK ELSEWHERE!) - constexpr bool skipAlignmentCheck = false; // DEFAULT: A BIT SLOWER BUT SAFER [ALLOWS MISALIGNED ACCESS] - if constexpr( skipAlignmentCheck ) - { - //static bool first=true; if( first ){ std::cout << "WARNING! assume aligned AOSOA, skip check" << std::endl; first=false; } // SLOWER (5.06E6) - // FASTEST? (5.09E6 in eemumu 512y) - // This assumes alignment for momenta1d without checking - causes segmentation fault in reinterpret_cast if not aligned! - return mg5amcCpu::fptypevFromAlignedArray( out ); // use reinterpret_cast - } - else if( (size_t)( buffer ) % mgOnGpu::cppAlign == 0 ) + constexpr int neppM = MemoryAccessMomentaBase::neppM; + constexpr bool useContiguousEventsIfPossible = true; // DEFAULT + //constexpr bool useContiguousEventsIfPossible = false; // FOR PERFORMANCE TESTS (treat as arbitrary array even if it is an AOSOA) + // Use c++17 "if constexpr": compile-time branching + if constexpr( useContiguousEventsIfPossible && ( neppM >= neppV ) && ( neppM % neppV == 0 ) ) { - //static bool first=true; if( first ){ std::cout << "WARNING! aligned AOSOA, reinterpret cast" << std::endl; first=false; } // SLOWER (5.00E6) - // DEFAULT! A tiny bit (<1%) slower because of the alignment check (5.07E6 in eemumu 512y) - // This explicitly checks buffer alignment to avoid segmentation faults in reinterpret_cast - return mg5amcCpu::fptypevFromAlignedArray( out ); // SIMD bulk load of neppV, use reinterpret_cast + //constexpr bool skipAlignmentCheck = true; // FASTEST (SEGFAULTS IF MISALIGNED ACCESS, NEEDS A SANITY CHECK ELSEWHERE!) + constexpr bool skipAlignmentCheck = false; // DEFAULT: A BIT SLOWER BUT SAFER [ALLOWS MISALIGNED ACCESS] + if constexpr( skipAlignmentCheck ) + { + //static bool first=true; if( first ){ std::cout << "WARNING! assume aligned AOSOA, skip check" << std::endl; first=false; } // SLOWER (5.06E6) + // FASTEST? (5.09E6 in eemumu 512y) + // This assumes alignment for momenta1d without checking - causes segmentation fault in reinterpret_cast if not aligned! + return mg5amcCpu::fptypevFromAlignedArray( out ); // use reinterpret_cast + } + else if( (size_t)( buffer ) % mgOnGpu::cppAlign == 0 ) + { + //static bool first=true; if( first ){ std::cout << "WARNING! aligned AOSOA, reinterpret cast" << std::endl; first=false; } // SLOWER (5.00E6) + // DEFAULT! A tiny bit (<1%) slower because of the alignment check (5.07E6 in eemumu 512y) + // This explicitly checks buffer alignment to avoid segmentation faults in reinterpret_cast + return mg5amcCpu::fptypevFromAlignedArray( out ); // SIMD bulk load of neppV, use reinterpret_cast + } + else + { + //static bool first=true; if( first ){ std::cout << "WARNING! AOSOA but no reinterpret cast" << std::endl; first=false; } // SLOWER (4.93E6) + // A bit (1%) slower (5.05E6 in eemumu 512y) + // This does not require buffer alignment, but it requires AOSOA with neppM>=neppV and neppM%neppV==0 + return mg5amcCpu::fptypevFromUnalignedArray( out ); // SIMD bulk load of neppV, do not use reinterpret_cast (fewer SIMD operations) + } } else { - //static bool first=true; if( first ){ std::cout << "WARNING! AOSOA but no reinterpret cast" << std::endl; first=false; } // SLOWER (4.93E6) - // A bit (1%) slower (5.05E6 in eemumu 512y) - // This does not require buffer alignment, but it requires AOSOA with neppM>=neppV and neppM%neppV==0 - return mg5amcCpu::fptypevFromUnalignedArray( out ); // SIMD bulk load of neppV, do not use reinterpret_cast (fewer SIMD operations) + //static bool first=true; if( first ){ std::cout << "WARNING! arbitrary array" << std::endl; first=false; } // SLOWER (5.08E6) + // ?!Used to be much slower, now a tiny bit faster for AOSOA?! (5.11E6 for AOSOA, 4.64E6 for AOS in eemumu 512y) + // This does not even require AOSOA with neppM>=neppV and neppM%neppV==0 (e.g. can be used with AOS neppM==1) + constexpr int ievt0 = 0; // just make it explicit in the code that buffer refers to a given ievt0 and decoderIeppV fetches event ievt0+ieppV + auto decoderIeppv = [buffer, ip4, ipar]( int ieppV ) + -> const fptype& + { return MemoryAccessMomenta::ieventAccessIp4IparConst( buffer, ievt0 + ieppV, ip4, ipar ); }; + return mg5amcCpu::fptypevFromArbitraryArray( decoderIeppv ); // iterate over ieppV in neppV (no SIMD) } +#endif } - else + + // Is this a HostAccess or DeviceAccess class? + // [this is only needed for a warning printout in rambo.h for nparf==1 #358] + static __host__ __device__ inline constexpr bool + isOnDevice() { - //static bool first=true; if( first ){ std::cout << "WARNING! arbitrary array" << std::endl; first=false; } // SLOWER (5.08E6) - // ?!Used to be much slower, now a tiny bit faster for AOSOA?! (5.11E6 for AOSOA, 4.64E6 for AOS in eemumu 512y) - // This does not even require AOSOA with neppM>=neppV and neppM%neppV==0 (e.g. can be used with AOS neppM==1) - constexpr int ievt0 = 0; // just make it explicit in the code that buffer refers to a given ievt0 and decoderIeppV fetches event ievt0+ieppV - auto decoderIeppv = [buffer, ip4, ipar]( int ieppV ) - -> const fptype& - { return MemoryAccessMomenta::ieventAccessIp4IparConst( buffer, ievt0 + ieppV, ip4, ipar ); }; - return mg5amcCpu::fptypevFromArbitraryArray( decoderIeppv ); // iterate over ieppV in neppV (no SIMD) + return onDevice; } -#endif - } + }; - // Is this a HostAccess or DeviceAccess class? - // [this is only needed for a warning printout in rambo.h for nparf==1 #358] - static __host__ __device__ inline constexpr bool - isOnDevice() - { - return onDevice; - } -}; + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- + typedef KernelAccessMomenta HostAccessMomenta; + typedef KernelAccessMomenta DeviceAccessMomenta; -typedef KernelAccessMomenta HostAccessMomenta; -typedef KernelAccessMomenta DeviceAccessMomenta; + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- +} // end namespace mg5amcGpu/mg5amcCpu #endif // MemoryAccessMomenta_H diff --git a/epochX/cudacpp/gg_tt.mad/SubProcesses/MemoryAccessNumerators.h b/epochX/cudacpp/gg_tt.mad/SubProcesses/MemoryAccessNumerators.h index b373fd6048..b152183b28 100644 --- a/epochX/cudacpp/gg_tt.mad/SubProcesses/MemoryAccessNumerators.h +++ b/epochX/cudacpp/gg_tt.mad/SubProcesses/MemoryAccessNumerators.h @@ -9,15 +9,24 @@ #include "MemoryAccessGs.h" -//---------------------------------------------------------------------------- +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif +{ + //---------------------------------------------------------------------------- + + // A class describing the internal layout of memory buffers for numerators + // This implementation reuses the plain ARRAY[nevt] implementation of MemoryAccessGs -// A class describing the internal layout of memory buffers for numerators -// This implementation reuses the plain ARRAY[nevt] implementation of MemoryAccessGs + typedef KernelAccessGs HostAccessNumerators; + typedef KernelAccessGs DeviceAccessNumerators; -typedef KernelAccessGs HostAccessNumerators; -typedef KernelAccessGs DeviceAccessNumerators; + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- +} // end namespace mg5amcGpu/mg5amcCpu #endif #endif // MemoryAccessNumerators_H diff --git a/epochX/cudacpp/gg_tt.mad/SubProcesses/MemoryAccessWavefunctions.h b/epochX/cudacpp/gg_tt.mad/SubProcesses/MemoryAccessWavefunctions.h index f42f0d34ed..5428aaf933 100644 --- a/epochX/cudacpp/gg_tt.mad/SubProcesses/MemoryAccessWavefunctions.h +++ b/epochX/cudacpp/gg_tt.mad/SubProcesses/MemoryAccessWavefunctions.h @@ -14,147 +14,156 @@ #define MGONGPU_TRIVIAL_WAVEFUNCTIONS 1 -//---------------------------------------------------------------------------- - -#ifndef MGONGPU_TRIVIAL_WAVEFUNCTIONS - -// A class describing the internal layout of memory buffers for wavefunctions -// This implementation uses an AOSOA[npagW][nw6][nx2][neppW] where nevt=npagW*neppW -// [If many implementations are used, a suffix _AOSOAv1 should be appended to the class name] -class MemoryAccessWavefunctionsBase //_AOSOAv1 +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { -public: - - // Number of Events Per Page in the wavefunction AOSOA memory buffer layout - static constexpr int neppW = 1; // AOS (just a test...) - -private: - - friend class MemoryAccessHelper; - friend class KernelAccessHelper; - friend class KernelAccessHelper; - - // The number of components of a (fermion or vector) wavefunction - static constexpr int nw6 = mgOnGpu::nw6; - - // The number of floating point components of a complex number - static constexpr int nx2 = mgOnGpu::nx2; + //---------------------------------------------------------------------------- - //-------------------------------------------------------------------------- - // NB all KernelLaunchers assume that memory access can be decomposed as "accessField = decodeRecord( accessRecord )" - // (in other words: first locate the event record for a given event, then locate an element in that record) - //-------------------------------------------------------------------------- +#ifndef MGONGPU_TRIVIAL_WAVEFUNCTIONS - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] - static __host__ __device__ inline fptype* - ieventAccessRecord( fptype* buffer, - const int ievt ) + // A class describing the internal layout of memory buffers for wavefunctions + // This implementation uses an AOSOA[npagW][nw6][nx2][neppW] where nevt=npagW*neppW + // [If many implementations are used, a suffix _AOSOAv1 should be appended to the class name] + class MemoryAccessWavefunctionsBase //_AOSOAv1 { - const int ipagW = ievt / neppW; // #event "W-page" - const int ieppW = ievt % neppW; // #event in the current event W-page - constexpr int iw6 = 0; - constexpr int ix2 = 0; - return &( buffer[ipagW * nw6 * nx2 * neppW + iw6 * nx2 * neppW + ix2 * neppW + ieppW] ); // AOSOA[ipagW][iw6][ix2][ieppW] - } - - //-------------------------------------------------------------------------- - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, Ts... args ) <===] - // [NB: expand variadic template "Ts... args" to "const int iw6, const int ix2" and rename "Field" as "Iw6Ix2"] - static __host__ __device__ inline fptype& - decodeRecord( fptype* buffer, - const int iw6, - const int ix2 ) + public: + + // Number of Events Per Page in the wavefunction AOSOA memory buffer layout + static constexpr int neppW = 1; // AOS (just a test...) + + private: + + friend class MemoryAccessHelper; + friend class KernelAccessHelper; + friend class KernelAccessHelper; + + // The number of components of a (fermion or vector) wavefunction + static constexpr int nw6 = mgOnGpu::nw6; + + // The number of floating point components of a complex number + static constexpr int nx2 = mgOnGpu::nx2; + + //-------------------------------------------------------------------------- + // NB all KernelLaunchers assume that memory access can be decomposed as "accessField = decodeRecord( accessRecord )" + // (in other words: first locate the event record for a given event, then locate an element in that record) + //-------------------------------------------------------------------------- + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] + static __host__ __device__ inline fptype* + ieventAccessRecord( fptype* buffer, + const int ievt ) + { + const int ipagW = ievt / neppW; // #event "W-page" + const int ieppW = ievt % neppW; // #event in the current event W-page + constexpr int iw6 = 0; + constexpr int ix2 = 0; + return &( buffer[ipagW * nw6 * nx2 * neppW + iw6 * nx2 * neppW + ix2 * neppW + ieppW] ); // AOSOA[ipagW][iw6][ix2][ieppW] + } + + //-------------------------------------------------------------------------- + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, Ts... args ) <===] + // [NB: expand variadic template "Ts... args" to "const int iw6, const int ix2" and rename "Field" as "Iw6Ix2"] + static __host__ __device__ inline fptype& + decodeRecord( fptype* buffer, + const int iw6, + const int ix2 ) + { + constexpr int ipagW = 0; + constexpr int ieppW = 0; + return buffer[ipagW * nw6 * nx2 * neppW + iw6 * nx2 * neppW + ix2 * neppW + ieppW]; // AOSOA[ipagW][iw6][ix2][ieppW] + } + }; + + //---------------------------------------------------------------------------- + + // A class providing access to memory buffers for a given event, based on explicit event numbers + // Its methods use the MemoryAccessHelper templates - note the use of the template keyword in template function instantiations + class MemoryAccessWavefunctions : public MemoryAccessWavefunctionsBase { - constexpr int ipagW = 0; - constexpr int ieppW = 0; - return buffer[ipagW * nw6 * nx2 * neppW + iw6 * nx2 * neppW + ix2 * neppW + ieppW]; // AOSOA[ipagW][iw6][ix2][ieppW] - } -}; - -//---------------------------------------------------------------------------- + public: -// A class providing access to memory buffers for a given event, based on explicit event numbers -// Its methods use the MemoryAccessHelper templates - note the use of the template keyword in template function instantiations -class MemoryAccessWavefunctions : public MemoryAccessWavefunctionsBase -{ -public: + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] + static constexpr auto ieventAccessRecord = MemoryAccessHelper::ieventAccessRecord; - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] - static constexpr auto ieventAccessRecord = MemoryAccessHelper::ieventAccessRecord; + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (const) ===> const fptype* ieventAccessRecordConst( const fptype* buffer, const int ievt ) <===] + static constexpr auto ieventAccessRecordConst = MemoryAccessHelper::ieventAccessRecordConst; - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (const) ===> const fptype* ieventAccessRecordConst( const fptype* buffer, const int ievt ) <===] - static constexpr auto ieventAccessRecordConst = MemoryAccessHelper::ieventAccessRecordConst; + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, const int iw6, const int ix2 ) <===] + static constexpr auto decodeRecordIw6Ix2 = MemoryAccessHelper::decodeRecord; - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, const int iw6, const int ix2 ) <===] - static constexpr auto decodeRecordIw6Ix2 = MemoryAccessHelper::decodeRecord; + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (const) ===> const fptype& decodeRecordConst( const fptype* buffer, const int iw6, const int ix2 ) <===] + static constexpr auto decodeRecordIw6Ix2Const = + MemoryAccessHelper::template decodeRecordConst; - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (const) ===> const fptype& decodeRecordConst( const fptype* buffer, const int iw6, const int ix2 ) <===] - static constexpr auto decodeRecordIw6Ix2Const = - MemoryAccessHelper::template decodeRecordConst; + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (non-const) ===> fptype& ieventAccessIw6Ix2( fptype* buffer, const ievt, const int iw6, const int ix2 ) <===] + static constexpr auto ieventAccessIw6Ix2 = + MemoryAccessHelper::template ieventAccessField; - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (non-const) ===> fptype& ieventAccessIw6Ix2( fptype* buffer, const ievt, const int iw6, const int ix2 ) <===] - static constexpr auto ieventAccessIw6Ix2 = - MemoryAccessHelper::template ieventAccessField; - - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (const) ===> const fptype& ieventAccessIw6Ix2Const( const fptype* buffer, const ievt, const int iw6, const int ix2 ) <===] - static constexpr auto ieventAccessIw6Ix2Const = - MemoryAccessHelper::template ieventAccessFieldConst; -}; + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (const) ===> const fptype& ieventAccessIw6Ix2Const( const fptype* buffer, const ievt, const int iw6, const int ix2 ) <===] + static constexpr auto ieventAccessIw6Ix2Const = + MemoryAccessHelper::template ieventAccessFieldConst; + }; #endif // #ifndef MGONGPU_TRIVIAL_WAVEFUNCTIONS -//---------------------------------------------------------------------------- + //---------------------------------------------------------------------------- -// A class providing access to memory buffers for a given event, based on implicit kernel rules -// Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations -template -class KernelAccessWavefunctions -{ -public: + // A class providing access to memory buffers for a given event, based on implicit kernel rules + // Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations + template + class KernelAccessWavefunctions + { + public: #ifndef MGONGPU_TRIVIAL_WAVEFUNCTIONS - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (non-const) ===> fptype& kernelAccessIw6Ix2( fptype* buffer, const int iw6, const int ix2 ) <===] - static constexpr auto kernelAccessIw6Ix2 = - KernelAccessHelper::template kernelAccessField; + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (non-const) ===> fptype& kernelAccessIw6Ix2( fptype* buffer, const int iw6, const int ix2 ) <===] + static constexpr auto kernelAccessIw6Ix2 = + KernelAccessHelper::template kernelAccessField; - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (const) ===> const fptype& kernelAccessIw6Ix2Const( const fptype* buffer, const int iw6, const int ix2 ) <===] - static constexpr auto kernelAccessIw6Ix2Const = - KernelAccessHelper::template kernelAccessFieldConst; + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (const) ===> const fptype& kernelAccessIw6Ix2Const( const fptype* buffer, const int iw6, const int ix2 ) <===] + static constexpr auto kernelAccessIw6Ix2Const = + KernelAccessHelper::template kernelAccessFieldConst; #else - static __host__ __device__ inline cxtype_sv* - kernelAccess( fptype* buffer ) - { - return reinterpret_cast( buffer ); - } + static __host__ __device__ inline cxtype_sv* + kernelAccess( fptype* buffer ) + { + return reinterpret_cast( buffer ); + } - static __host__ __device__ inline const cxtype_sv* - kernelAccessConst( const fptype* buffer ) - { - return reinterpret_cast( buffer ); - } + static __host__ __device__ inline const cxtype_sv* + kernelAccessConst( const fptype* buffer ) + { + return reinterpret_cast( buffer ); + } #endif // #ifndef MGONGPU_TRIVIAL_WAVEFUNCTIONS -}; + }; + + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- + typedef KernelAccessWavefunctions HostAccessWavefunctions; + typedef KernelAccessWavefunctions DeviceAccessWavefunctions; -typedef KernelAccessWavefunctions HostAccessWavefunctions; -typedef KernelAccessWavefunctions DeviceAccessWavefunctions; + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- +} // end namespace mg5amcGpu/mg5amcCpu #endif // MemoryAccessWavefunctions_H diff --git a/epochX/cudacpp/gg_tt.mad/SubProcesses/cudacpp.mk b/epochX/cudacpp/gg_tt.mad/SubProcesses/cudacpp.mk index a0397e9ecc..c2f7b8e0f6 100644 --- a/epochX/cudacpp/gg_tt.mad/SubProcesses/cudacpp.mk +++ b/epochX/cudacpp/gg_tt.mad/SubProcesses/cudacpp.mk @@ -76,7 +76,7 @@ endif CXXFLAGS = $(OPTFLAGS) -std=c++17 $(INCFLAGS) -Wall -Wshadow -Wextra ifeq ($(shell $(CXX) --version | grep ^nvc++),) -CXXFLAGS+= -ffast-math # see issue #117 +CXXFLAGS += -ffast-math # see issue #117 endif ###CXXFLAGS+= -Ofast # performance is not different from --fast-math ###CXXFLAGS+= -g # FOR DEBUGGING ONLY @@ -122,7 +122,7 @@ ifneq ($(wildcard $(CUDA_HOME)/bin/nvcc),) CUINC = -I$(CUDA_HOME)/include/ CURANDLIBFLAGS = -L$(CUDA_HOME)/lib64/ -lcurand # NB: -lcuda is not needed here! CUOPTFLAGS = -lineinfo - CUFLAGS = $(OPTFLAGS) $(CUOPTFLAGS) $(INCFLAGS) $(CUINC) $(USE_NVTX) $(CUARCHFLAGS) -use_fast_math + CUFLAGS = $(foreach opt, $(OPTFLAGS), -Xcompiler $(opt)) $(CUOPTFLAGS) $(INCFLAGS) $(CUINC) $(USE_NVTX) $(CUARCHFLAGS) -use_fast_math ###CUFLAGS += -Xcompiler -Wall -Xcompiler -Wextra -Xcompiler -Wshadow ###NVCC_VERSION = $(shell $(NVCC) --version | grep 'Cuda compilation tools' | cut -d' ' -f5 | cut -d, -f1) CUFLAGS += -std=c++17 # need CUDA >= 11.2 (see #333): this is enforced in mgOnGpuConfig.h @@ -142,6 +142,8 @@ else override CUINC= override CURANDLIBFLAGS= endif +export NVCC +export CUFLAGS # Set the host C++ compiler for nvcc via "-ccbin " # (NB issue #505: this must be a single word, "clang++ --gcc-toolchain..." is not supported) @@ -439,7 +441,7 @@ endif # Target (and build options): debug MAKEDEBUG= -debug: OPTFLAGS = -g -O0 -DDEBUG2 +debug: OPTFLAGS = -g -O0 debug: CUOPTFLAGS = -G debug: MAKEDEBUG := debug debug: all.$(TAG) @@ -468,9 +470,9 @@ $(BUILDDIR)/%.o : %.cc *.h ../../src/*.h $(BUILDDIR)/.build.$(TAG) @if [ ! -d $(BUILDDIR) ]; then echo "mkdir -p $(BUILDDIR)"; mkdir -p $(BUILDDIR); fi $(CXX) $(CPPFLAGS) $(CXXFLAGS) -fPIC -c $< -o $@ -# Apply special build flags only to CrossSectionKernel.cc and gCrossSectionKernel.cu (no fast math, see #117) +# Apply special build flags only to CrossSectionKernel.cc and gCrossSectionKernel.cu (no fast math, see #117 and #516) ifeq ($(shell $(CXX) --version | grep ^nvc++),) -$(BUILDDIR)/CrossSectionKernels.o: CXXFLAGS += -fno-fast-math +$(BUILDDIR)/CrossSectionKernels.o: CXXFLAGS := $(filter-out -ffast-math,$(CXXFLAGS)) $(BUILDDIR)/CrossSectionKernels.o: CXXFLAGS += -fno-fast-math ifneq ($(NVCC),) $(BUILDDIR)/gCrossSectionKernels.o: CUFLAGS += -Xcompiler -fno-fast-math diff --git a/epochX/cudacpp/gg_tt.mad/SubProcesses/runTest.cc b/epochX/cudacpp/gg_tt.mad/SubProcesses/runTest.cc index 572e28aaea..df7488178e 100644 --- a/epochX/cudacpp/gg_tt.mad/SubProcesses/runTest.cc +++ b/epochX/cudacpp/gg_tt.mad/SubProcesses/runTest.cc @@ -2,6 +2,9 @@ // Licensed under the GNU Lesser General Public License (version 3 or later). // Created by: S. Hageboeck (Nov 2020) for the MG5aMC CUDACPP plugin. // Further modified by: S. Hageboeck, O. Mattelaer, S. Roiser, A. Valassi (2020-2023) for the MG5aMC CUDACPP plugin. +//---------------------------------------------------------------------------- +// Use ./runTest.exe --gtest_filter=*xxx to run only testxxx.cc tests +//---------------------------------------------------------------------------- #include "mgOnGpuConfig.h" diff --git a/epochX/cudacpp/gg_tt.mad/SubProcesses/testmisc.cc b/epochX/cudacpp/gg_tt.mad/SubProcesses/testmisc.cc index 989aba1fdc..895d6eeb56 100644 --- a/epochX/cudacpp/gg_tt.mad/SubProcesses/testmisc.cc +++ b/epochX/cudacpp/gg_tt.mad/SubProcesses/testmisc.cc @@ -3,7 +3,7 @@ // Created by: A. Valassi (Jan 2022) for the MG5aMC CUDACPP plugin. // Further modified by: A. Valassi (2022-2023) for the MG5aMC CUDACPP plugin. //---------------------------------------------------------------------------- -// Use ./runTest.exe --gtest_filter=*misc to run only this test +// Use ./runTest.exe --gtest_filter=*misc to run only testmisc.cc tests //---------------------------------------------------------------------------- #include "mgOnGpuConfig.h" @@ -25,33 +25,48 @@ #define XTESTID( s ) TESTID( s ) +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif +{ #ifdef MGONGPU_CPPSIMD /* clang-format off */ -bool maskand( const bool_v& mask ){ bool out = true; for ( int i=0; i #include +#include // debug #701 (see https://stackoverflow.com/a/17473528) #include #include #include @@ -28,16 +32,47 @@ #define XTESTID( s ) TESTID( s ) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif +{ + std::string FPEhandlerMessage = "unknown"; + int FPEhandlerIevt = -1; + inline void FPEhandler( int sig ) + { +#ifdef __CUDACC__ + std::cerr << "Floating Point Exception (GPU): '" << FPEhandlerMessage << "' ievt=" << FPEhandlerIevt << std::endl; +#else + std::cerr << "Floating Point Exception (CPU neppV=" << neppV << "): '" << FPEhandlerMessage << "' ievt=" << FPEhandlerIevt << std::endl; +#endif + exit( 0 ); + } +} + TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) { +#ifdef __CUDACC__ + using namespace mg5amcGpu; +#else + using namespace mg5amcCpu; +#endif +#ifndef __APPLE__ // test #701 (except on MacOS where feenableexcept is not defined #730) + const bool enableFPE = !getenv( "CUDACPP_RUNTIME_DISABLEFPE" ); + if( enableFPE ) + { + feenableexcept( FE_INVALID | FE_DIVBYZERO | FE_OVERFLOW | FE_UNDERFLOW ); // debug #701 + signal( SIGFPE, FPEhandler ); + } +#endif constexpr bool dumpEvents = false; // dump the expected output of the test? constexpr bool testEvents = !dumpEvents; // run the test? constexpr fptype toleranceXXXs = std::is_same::value ? 1.E-15 : 1.E-5; // Constant parameters constexpr int neppM = MemoryAccessMomenta::neppM; // AOSOA layout - using mgOnGpu::neppV; constexpr int np4 = CPPProcess::np4; - const int nevt = 16; // 12 independent tests plus 4 duplicates (need a multiple of 8 for floats or for '512z') + const int nevt = 32; // 12 independent tests plus 20 duplicates (need a multiple of 16 for floats '512z') assert( nevt % neppM == 0 ); // nevt must be a multiple of neppM assert( nevt % neppV == 0 ); // nevt must be a multiple of neppV // Fill in the input momenta @@ -46,24 +81,41 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) #else mg5amcCpu::HostBufferMomenta hstMomenta( nevt ); // AOSOA[npagM][npar=4][np4=4][neppM] #endif /* clang-format off */ + // NB NEW TESTS FOR DEBUGGING #701: KEEP TWO SEPARATE SETS (16-SIMD-VECTORS!) OF TESTS FOR M==0 AND M!=0! const fptype par0[np4 * nevt] = // AOS[nevt][np4] { - 500, 0, 0, 500, // #0 (m=0 pT=0 E=pz>0) - 500, 0, 0, -500, // #1 (m=0 pT=0 -E=pz<0) - 500, 300, 400, 0, // #2 (m=0 pT>0 pz=0) - 500, 180, 240, 400, // #3 (m=0 pT>0 pz>0) - 500, 180, 240, -400, // #4 (m=0 pT>0 pz<0) - 500, 0, 0, 0, // #5 (m=50>0 pT=0 pz=0) - 500, 0, 0, 300, // #6 (m=40>0 pT=0 pz>0) - 500, 0, 0, -300, // #7 (m=40>0 pT=0 pz<0) - 500, 180, 240, 0, // #8 (m=40>0 pT>0 pz=0) - 500, -240, -180, 0, // #9 (m=40>0 pT>0 pz=0) - 500, 180, 192, 144, // #10 (m=40>0 pT>0 pz>0) - 500, 180, 192, -144, // #11 (m=40>0 pT>0 pz<0) - 500, 0, 0, 500, // DUPLICATE #12 == #0 (m=0 pT=0 E=pz>0) - 500, 0, 0, -500, // DUPLICATE #13 == #1 (m=0 pT=0 -E=pz<0) - 500, 300, 400, 0, // DUPLICATE #14 == #2 (m=0 pT>0 pz=0) - 500, 180, 240, 400 // DUPLICATE #15 == #3 (m=0 pT>0 pz>0) + 500, 0, 0, 500, // #0 (m=0 pT=0 E=pz>0) + 500, 0, 0, -500, // #1 (m=0 pT=0 -E=pz<0) + 500, 300, 400, 0, // #2 (m=0 pT>0 pz=0) + 500, 180, 240, 400, // #3 (m=0 pT>0 pz>0) + 500, 180, 240, -400, // #4 (m=0 pT>0 pz<0) + 500, 0, 0, 500, // #5 DUPLICATE == #0 (m=0 pT=0 E=pz>0) + 500, 0, 0, -500, // #6 DUPLICATE == #1 (m=0 pT=0 -E=pz<0) + 500, 300, 400, 0, // #7 DUPLICATE == #2 (m=0 pT>0 pz=0) + 500, 180, 240, 400, // #8 DUPLICATE == #3 (m=0 pT>0 pz>0) + 500, 180, 240, -400, // #9 DUPLICATE == #4 (m=0 pT>0 pz<0) + 500, 0, 0, 500, // #10 DUPLICATE == #0 (m=0 pT=0 E=pz>0) + 500, 0, 0, -500, // #11 DUPLICATE == #1 (m=0 pT=0 -E=pz<0) + 500, 300, 400, 0, // #12 DUPLICATE == #2 (m=0 pT>0 pz=0) + 500, 180, 240, 400, // #13 DUPLICATE == #3 (m=0 pT>0 pz>0) + 500, 180, 240, -400, // #14 DUPLICATE == #4 (m=0 pT>0 pz<0) + 500, 0, 0, 500, // #15 DUPLICATE == #0 (m=0 pT=0 E=pz>0) + 500, 0, 0, 0, // #16 (m=50>0 pT=0 pz=0) + 500, 0, 0, 300, // #17 (m=40>0 pT=0 pz>0) + 500, 0, 0, -300, // #18 (m=40>0 pT=0 pz<0) + 500, 180, 240, 0, // #19 (m=40>0 pT>0 pz=0) + 500, -240, -180, 0, // #20 (m=40>0 pT>0 pz=0) + 500, 180, 192, 144, // #21 (m=40>0 pT>0 pz>0) + 500, 180, 192, -144, // #22 (m=40>0 pT>0 pz<0) + 500, 0, 0, 0, // #23 DUPLICATE == #16 (m=50>0 pT=0 pz=0) + 500, 0, 0, 300, // #24 DUPLICATE == #17 (m=40>0 pT=0 pz>0) + 500, 0, 0, -300, // #25 DUPLICATE == #18 (m=40>0 pT=0 pz<0) + 500, 180, 240, 0, // #26 DUPLICATE == #19 (m=40>0 pT>0 pz=0) + 500, -240, -180, 0, // #27 DUPLICATE == #20 (m=40>0 pT>0 pz=0) + 500, 180, 192, 144, // #28 DUPLICATE == #21 (m=40>0 pT>0 pz>0) + 500, 180, 192, -144, // #29 DUPLICATE == #22 (m=40>0 pT>0 pz<0) + 500, 0, 0, 0, // #30 DUPLICATE == #16 (m=50>0 pT=0 pz=0) + 500, 0, 0, 300 // #31 DUPLICATE == #17 (m=40>0 pT=0 pz>0) }; /* clang-format on */ // Array initialization: zero-out as "{0}" (C and C++) or as "{}" (C++ only) // See https://en.cppreference.com/w/c/language/array_initialization#Notes @@ -99,7 +151,15 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) constexpr int nw6 = CPPProcess::nw6; // dimensions of each wavefunction (HELAS KEK 91-11): e.g. 6 for e+ e- -> mu+ mu- (fermions and vectors) int itest = 0; // index on the expected output vector std::ofstream dumpFile; - if( dumpEvents ) dumpFile.open( dumpFileName, std::ios::trunc ); + if( dumpEvents ) + { + dumpFile.open( dumpFileName, std::ios::trunc ); + dumpFile << " // Copyright (C) 2020-2023 CERN and UCLouvain." << std::endl + << " // Licensed under the GNU Lesser General Public License (version 3 or later)." << std::endl + << " // Created by: A. Valassi (Apr 2021) for the MG5aMC CUDACPP plugin." << std::endl + << " // Further modified by: A. Valassi (2021-2023) for the MG5aMC CUDACPP plugin." << std::endl; + } + // Lambda function for dumping wavefunctions auto dumpwf6 = [&]( std::ostream& out, const cxtype_sv wf[6], const char* xxx, int ievt, int nsp, fptype mass ) { out << std::setprecision( 15 ) << std::scientific; @@ -129,6 +189,7 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) } out << std::defaultfloat; }; + // Lambda function for testing wavefunctions (1) auto testwf6 = [&]( const cxtype_sv wf[6], const char* xxx, int ievt, int nsp, fptype mass ) { if( dumpEvents ) dumpwf6( dumpFile, wf, xxx, ievt, nsp, mass ); @@ -170,6 +231,7 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) } itest++; }; + // Lambda function for testing wavefunctions (2) auto testwf6two = [&]( const cxtype_sv wf[6], const cxtype_sv expwf[6], const char* xxx, int ievt ) { if( testEvents ) @@ -213,6 +275,32 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) } } }; + // Lambda function for resetting hstMomenta to the values of par0 + // This is needed in each test because hstMomenta may have been modified to ensure a function like ipzxxx can be used (#701) + auto resetHstMomentaToPar0 = [&]() + { + for( int ievt = 0; ievt < nevt; ievt++ ) + for( int ip4 = 0; ip4 < np4; ip4++ ) + MemoryAccessMomenta::ieventAccessIp4Ipar( hstMomenta.data(), ievt, ip4, ipar0 ) = par0[ievt * np4 + ip4]; // AOS to AOSOA + }; + // Lambda function for preparing the test of one specific function + const bool debug = false; + auto prepareTest = [&]( const char* xxx, int ievt ) + { + if( debug ) std::cout << "Prepare test " << xxx << " ievt=" << ievt << std::endl; + resetHstMomentaToPar0(); + FPEhandlerMessage = xxx; + FPEhandlerIevt = ievt; + if( std::string( xxx ) == "ipzxxx" || std::string( xxx ) == "opzxxx" || std::string( xxx ) == "imzxxx" || std::string( xxx ) == "omzxxx" || std::string( xxx ) == "ixzxxx" || std::string( xxx ) == "oxzxxx" ) + { + // Modify hstMomenta so that ALL events have the momenta of a single ievt + // This ensures that a function like ipzxxx (which assumes pZ>0) can be used without triggering FPEs (#701) + // This is done by filling the full SIMD vector with the value of ievt, which was already tested to respect the relevant assumptions + for( int jevt = 0; jevt < nevt; jevt++ ) + for( int ip4 = 0; ip4 < np4; ip4++ ) + MemoryAccessMomenta::ieventAccessIp4Ipar( hstMomenta.data(), jevt, ip4, ipar0 ) = par0[ievt * np4 + ip4]; // AOS to AOSOA + } + }; // Array initialization: zero-out as "{0}" (C and C++) or as "{}" (C++ only) // See https://en.cppreference.com/w/c/language/array_initialization#Notes cxtype_sv outwfI[6] = {}; // last result of ixxxxx (mass==0) @@ -224,6 +312,7 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) fptype* fp_outwf = reinterpret_cast( outwf ); // proof of concept for using fptype* in the interface fptype* fp_outwf3 = reinterpret_cast( outwf3 ); // proof of concept for using fptype* in the interface const int nhel = 1; + // *** START OF TESTING LOOP for( auto nsp: { -1, +1 } ) // antifermion/fermion (or initial/final for scalar and vector) { for( int ievt = 0; ievt < nevt; ievt++ ) @@ -233,9 +322,10 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) #else using namespace mg5amcCpu; #endif - if( false ) + if( debug ) { std::cout << std::endl; + std::cout << "nsp=" << nsp << " ievt=" << ievt << ": "; for( int ip4 = 0; ip4 < np4; ip4++ ) std::cout << par0[ievt * np4 + ip4] << ", "; std::cout << std::endl; } @@ -243,6 +333,7 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) const fptype* ievt0Momenta = MemoryAccessMomenta::ieventAccessRecordConst( hstMomenta.data(), ipagV * neppV ); // Test ixxxxx - NO ASSUMPTIONS { + prepareTest( "ixxxxx", ievt ); const fptype fmass = mass0[ievt]; ixxxxx( ievt0Momenta, fmass, nhel, nsp, fp_outwfI, ipar0 ); testwf6( outwfI, "ixxxxx", ievt, nsp, fmass ); @@ -252,6 +343,7 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) // Test ipzxxx - ASSUMPTIONS: (FMASS == 0) and (PX == PY == 0 and E == +PZ > 0) if( mass0[ievt] == 0 && !isptgt0[ievt] && ispzgt0[ievt] ) { + prepareTest( "ipzxxx", ievt ); ipzxxx( ievt0Momenta, nhel, nsp, fp_outwf, ipar0 ); testwf6two( outwf, outwfI, "ipzxxx", ievt ); testwf6( outwf, "ipzxxx", ievt, nsp, 0 ); @@ -259,6 +351,7 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) // Test imzxxx - ASSUMPTIONS: (FMASS == 0) and (PX == PY == 0 and E == -PZ > 0) if( mass0[ievt] == 0 && !isptgt0[ievt] && ispzlt0[ievt] ) { + prepareTest( "imzxxx", ievt ); imzxxx( ievt0Momenta, nhel, nsp, fp_outwf, ipar0 ); testwf6two( outwf, outwfI, "imzxxx", ievt ); testwf6( outwf, "imzxxx", ievt, nsp, 0 ); @@ -266,12 +359,14 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) // Test ixzxxx - ASSUMPTIONS: (FMASS == 0) and (PT > 0) if( mass0[ievt] == 0 && isptgt0[ievt] ) { + prepareTest( "ixzxxx", ievt ); ixzxxx( ievt0Momenta, nhel, nsp, fp_outwf, ipar0 ); testwf6two( outwf, outwfI, "ixzxxx", ievt ); testwf6( outwf, "ixzxxx", ievt, nsp, 0 ); } // Test vxxxxx - NO ASSUMPTIONS { + prepareTest( "vxxxxx", ievt ); const fptype vmass = mass0[ievt]; vxxxxx( ievt0Momenta, vmass, nhel, nsp, fp_outwf, ipar0 ); testwf6( outwf, "vxxxxx", ievt, nsp, vmass ); @@ -280,6 +375,7 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) } // Test sxxxxx - NO ASSUMPTIONS { + prepareTest( "sxxxxx", ievt ); const fptype smass = mass0[ievt]; sxxxxx( ievt0Momenta, nsp, fp_outwf3, ipar0 ); // no mass, no helicity (was "smass>0") testwf6( outwf3, "sxxxxx", ievt, nsp, smass ); @@ -288,6 +384,7 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) } // Test oxxxxx - NO ASSUMPTIONS { + prepareTest( "oxxxxx", ievt ); const fptype fmass = mass0[ievt]; oxxxxx( ievt0Momenta, fmass, nhel, nsp, fp_outwfO, ipar0 ); testwf6( outwfO, "oxxxxx", ievt, nsp, fmass ); @@ -297,6 +394,7 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) // Test opzxxx - ASSUMPTIONS: (FMASS == 0) and (PX == PY == 0 and E == +PZ > 0) if( mass0[ievt] == 0 && !isptgt0[ievt] && ispzgt0[ievt] ) { + prepareTest( "opzxxx", ievt ); opzxxx( ievt0Momenta, nhel, nsp, fp_outwf, ipar0 ); testwf6two( outwf, outwfO, "opzxxx", ievt ); testwf6( outwf, "opzxxx", ievt, nsp, 0 ); @@ -304,6 +402,7 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) // Test omzxxx - ASSUMPTIONS: (FMASS == 0) and (PX == PY == 0 and E == -PZ > 0) if( mass0[ievt] == 0 && !isptgt0[ievt] && ispzlt0[ievt] ) { + prepareTest( "omzxxx", ievt ); omzxxx( ievt0Momenta, nhel, nsp, fp_outwf, ipar0 ); testwf6two( outwf, outwfO, "omzxxx", ievt ); testwf6( outwf, "omzxxx", ievt, nsp, 0 ); @@ -311,17 +410,25 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) // Test oxzxxx - ASSUMPTIONS: (FMASS == 0) and (PT > 0) if( mass0[ievt] == 0 && isptgt0[ievt] ) { - oxzxxx( ievt0Momenta, nhel, nsp, reinterpret_cast( outwf ), ipar0 ); + prepareTest( "oxzxxx", ievt ); + oxzxxx( ievt0Momenta, nhel, nsp, fp_outwf, ipar0 ); testwf6two( outwf, outwfO, "oxzxxx", ievt ); testwf6( outwf, "oxzxxx", ievt, nsp, 0 ); } } } + // *** END OF TESTING LOOP if( dumpEvents ) { dumpFile.close(); std::cout << "INFO: New reference data dumped to file '" << dumpFileName << "'" << std::endl; } +#ifndef __APPLE__ // test #701 (except on MacOS where fedisableexcept is not defined #730) + if( enableFPE ) + { + fedisableexcept( FE_INVALID | FE_DIVBYZERO | FE_OVERFLOW | FE_UNDERFLOW ); // debug #701 + } +#endif } //========================================================================== diff --git a/epochX/cudacpp/gg_tt.mad/SubProcesses/testxxx_cc_ref.txt b/epochX/cudacpp/gg_tt.mad/SubProcesses/testxxx_cc_ref.txt index acb9bde918..637530d1f5 100644 --- a/epochX/cudacpp/gg_tt.mad/SubProcesses/testxxx_cc_ref.txt +++ b/epochX/cudacpp/gg_tt.mad/SubProcesses/testxxx_cc_ref.txt @@ -5,14 +5,14 @@ expwfs.push_back( { // --------- 5.000000000000000e+02, 5.000000000000000e+02, // itest=0: ixxxxx#0 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=0: ixxxxx#0 nsp=-1 mass=0 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=0: ixxxxx#0 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=0: ixxxxx#0 nsp=-1 mass=0 -3.162277660168379e+01, 0.000000000000000e+00, // itest=0: ixxxxx#0 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=0: ixxxxx#0 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=0: ixxxxx#0 nsp=-1 mass=0 expwfs.push_back( { // --------- 5.000000000000000e+02, 5.000000000000000e+02, // itest=1: ixxxxx#0 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=1: ixxxxx#0 nsp=-1 mass=0 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=1: ixxxxx#0 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=1: ixxxxx#0 nsp=-1 mass=0 -3.162277660168379e+01, 0.000000000000000e+00, // itest=1: ixxxxx#0 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=1: ixxxxx#0 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=1: ixxxxx#0 nsp=-1 mass=0 @@ -82,8 +82,8 @@ expwfs.push_back( { // --------- 5.000000000000000e+02, -5.000000000000000e+02, // itest=11: ixxxxx#1 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=11: ixxxxx#1 nsp=-1 mass=0 - -3.162277660168379e+01, -0.000000000000000e+00, // itest=11: ixxxxx#1 nsp=-1 mass=0 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=11: ixxxxx#1 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=11: ixxxxx#1 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=11: ixxxxx#1 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=11: ixxxxx#1 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=11: ixxxxx#1 nsp=-1 mass=0 expwfs.push_back( { // --------- @@ -133,8 +133,8 @@ -0.000000000000000e+00, -0.000000000000000e+00, // itest=18: oxxxxx#1 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=18: oxxxxx#1 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=18: oxxxxx#1 nsp=-1 mass=0 - -3.162277660168379e+01, -0.000000000000000e+00, // itest=18: oxxxxx#1 nsp=-1 mass=0 - -0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=18: oxxxxx#1 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=18: oxxxxx#1 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=18: oxxxxx#1 nsp=-1 mass=0 expwfs.push_back( { // --------- -5.000000000000000e+02, 5.000000000000000e+02, // itest=19: omzxxx#1 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=19: omzxxx#1 nsp=-1 mass=0 @@ -145,14 +145,14 @@ expwfs.push_back( { // --------- 5.000000000000000e+02, 0.000000000000000e+00, // itest=20: ixxxxx#2 nsp=-1 mass=0 3.000000000000000e+02, 4.000000000000000e+02, // itest=20: ixxxxx#2 nsp=-1 mass=0 - 1.341640786499874e+01, -1.788854381999832e+01, // itest=20: ixxxxx#2 nsp=-1 mass=0 + 1.341640786499874e+01, -1.788854381999831e+01, // itest=20: ixxxxx#2 nsp=-1 mass=0 -2.236067977499790e+01, 0.000000000000000e+00, // itest=20: ixxxxx#2 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=20: ixxxxx#2 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=20: ixxxxx#2 nsp=-1 mass=0 expwfs.push_back( { // --------- 5.000000000000000e+02, 0.000000000000000e+00, // itest=21: ixxxxx#2 nsp=-1 mass=0 3.000000000000000e+02, 4.000000000000000e+02, // itest=21: ixxxxx#2 nsp=-1 mass=0 - 1.341640786499874e+01, -1.788854381999832e+01, // itest=21: ixxxxx#2 nsp=-1 mass=0 + 1.341640786499874e+01, -1.788854381999831e+01, // itest=21: ixxxxx#2 nsp=-1 mass=0 -2.236067977499790e+01, 0.000000000000000e+00, // itest=21: ixxxxx#2 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=21: ixxxxx#2 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=21: ixxxxx#2 nsp=-1 mass=0 @@ -196,14 +196,14 @@ -3.000000000000000e+02, -4.000000000000000e+02, // itest=27: oxxxxx#2 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=27: oxxxxx#2 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=27: oxxxxx#2 nsp=-1 mass=0 - 1.341640786499874e+01, 1.788854381999832e+01, // itest=27: oxxxxx#2 nsp=-1 mass=0 + 1.341640786499874e+01, 1.788854381999831e+01, // itest=27: oxxxxx#2 nsp=-1 mass=0 -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=27: oxxxxx#2 nsp=-1 mass=0 expwfs.push_back( { // --------- -5.000000000000000e+02, -0.000000000000000e+00, // itest=28: oxxxxx#2 nsp=-1 mass=0 -3.000000000000000e+02, -4.000000000000000e+02, // itest=28: oxxxxx#2 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=28: oxxxxx#2 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=28: oxxxxx#2 nsp=-1 mass=0 - 1.341640786499874e+01, 1.788854381999832e+01, // itest=28: oxxxxx#2 nsp=-1 mass=0 + 1.341640786499874e+01, 1.788854381999831e+01, // itest=28: oxxxxx#2 nsp=-1 mass=0 -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=28: oxxxxx#2 nsp=-1 mass=0 expwfs.push_back( { // --------- -5.000000000000000e+02, -0.000000000000000e+00, // itest=29: oxzxxx#2 nsp=-1 mass=0 @@ -353,1696 +353,3684 @@ 1.800000000000000e+01, 2.400000000000000e+01, // itest=49: oxzxxx#4 nsp=-1 mass=0 -1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=49: oxzxxx#4 nsp=-1 mass=0 expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=50: ixxxxx#5 nsp=-1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=50: ixxxxx#5 nsp=-1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=50: ixxxxx#5 nsp=-1 mass=500 - -2.236067977499790e+01, 0.000000000000000e+00, // itest=50: ixxxxx#5 nsp=-1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=50: ixxxxx#5 nsp=-1 mass=500 - 2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=50: ixxxxx#5 nsp=-1 mass=500 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=51: ixxxxx#5 nsp=-1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=51: ixxxxx#5 nsp=-1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=51: ixxxxx#5 nsp=-1 mass=-500 - -2.236067977499790e+01, 0.000000000000000e+00, // itest=51: ixxxxx#5 nsp=-1 mass=-500 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=51: ixxxxx#5 nsp=-1 mass=-500 - -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=51: ixxxxx#5 nsp=-1 mass=-500 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=52: vxxxxx#5 nsp=-1 mass=500 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=52: vxxxxx#5 nsp=-1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=52: vxxxxx#5 nsp=-1 mass=500 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=52: vxxxxx#5 nsp=-1 mass=500 - 0.000000000000000e+00, -7.071067811865476e-01, // itest=52: vxxxxx#5 nsp=-1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=52: vxxxxx#5 nsp=-1 mass=500 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=53: vxxxxx#5 nsp=-1 mass=-500 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=53: vxxxxx#5 nsp=-1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=53: vxxxxx#5 nsp=-1 mass=-500 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=53: vxxxxx#5 nsp=-1 mass=-500 - 0.000000000000000e+00, -7.071067811865476e-01, // itest=53: vxxxxx#5 nsp=-1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=53: vxxxxx#5 nsp=-1 mass=-500 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=54: sxxxxx#5 nsp=-1 mass=500 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=54: sxxxxx#5 nsp=-1 mass=500 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=54: sxxxxx#5 nsp=-1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=54: sxxxxx#5 nsp=-1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=54: sxxxxx#5 nsp=-1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=54: sxxxxx#5 nsp=-1 mass=500 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=55: sxxxxx#5 nsp=-1 mass=-500 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=55: sxxxxx#5 nsp=-1 mass=-500 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=55: sxxxxx#5 nsp=-1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=55: sxxxxx#5 nsp=-1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=55: sxxxxx#5 nsp=-1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=55: sxxxxx#5 nsp=-1 mass=-500 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=56: oxxxxx#5 nsp=-1 mass=500 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=56: oxxxxx#5 nsp=-1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=56: oxxxxx#5 nsp=-1 mass=500 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=56: oxxxxx#5 nsp=-1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=56: oxxxxx#5 nsp=-1 mass=500 - -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=56: oxxxxx#5 nsp=-1 mass=500 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=57: oxxxxx#5 nsp=-1 mass=-500 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=57: oxxxxx#5 nsp=-1 mass=-500 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=57: oxxxxx#5 nsp=-1 mass=-500 - -2.236067977499790e+01, 0.000000000000000e+00, // itest=57: oxxxxx#5 nsp=-1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=57: oxxxxx#5 nsp=-1 mass=-500 - -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=57: oxxxxx#5 nsp=-1 mass=-500 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 3.000000000000000e+02, // itest=58: ixxxxx#6 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=58: ixxxxx#6 nsp=-1 mass=400 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=58: ixxxxx#6 nsp=-1 mass=400 - -2.828427124746190e+01, -0.000000000000000e+00, // itest=58: ixxxxx#6 nsp=-1 mass=400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=58: ixxxxx#6 nsp=-1 mass=400 - 1.414213562373095e+01, 0.000000000000000e+00 } ); // itest=58: ixxxxx#6 nsp=-1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 3.000000000000000e+02, // itest=59: ixxxxx#6 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=59: ixxxxx#6 nsp=-1 mass=-400 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=59: ixxxxx#6 nsp=-1 mass=-400 - -2.828427124746190e+01, -0.000000000000000e+00, // itest=59: ixxxxx#6 nsp=-1 mass=-400 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=59: ixxxxx#6 nsp=-1 mass=-400 - -1.414213562373095e+01, -0.000000000000000e+00 } ); // itest=59: ixxxxx#6 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -3.000000000000000e+02, // itest=60: vxxxxx#6 nsp=-1 mass=400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=60: vxxxxx#6 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=60: vxxxxx#6 nsp=-1 mass=400 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=60: vxxxxx#6 nsp=-1 mass=400 - 0.000000000000000e+00, -7.071067811865476e-01, // itest=60: vxxxxx#6 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=60: vxxxxx#6 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -3.000000000000000e+02, // itest=61: vxxxxx#6 nsp=-1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=61: vxxxxx#6 nsp=-1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=61: vxxxxx#6 nsp=-1 mass=-400 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=61: vxxxxx#6 nsp=-1 mass=-400 - 0.000000000000000e+00, -7.071067811865476e-01, // itest=61: vxxxxx#6 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=61: vxxxxx#6 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -3.000000000000000e+02, // itest=62: sxxxxx#6 nsp=-1 mass=400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=62: sxxxxx#6 nsp=-1 mass=400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=62: sxxxxx#6 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=62: sxxxxx#6 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=62: sxxxxx#6 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=62: sxxxxx#6 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -3.000000000000000e+02, // itest=63: sxxxxx#6 nsp=-1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=63: sxxxxx#6 nsp=-1 mass=-400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=63: sxxxxx#6 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=63: sxxxxx#6 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=63: sxxxxx#6 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=63: sxxxxx#6 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -3.000000000000000e+02, // itest=64: oxxxxx#6 nsp=-1 mass=400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=64: oxxxxx#6 nsp=-1 mass=400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=64: oxxxxx#6 nsp=-1 mass=400 - 1.414213562373095e+01, 0.000000000000000e+00, // itest=64: oxxxxx#6 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=64: oxxxxx#6 nsp=-1 mass=400 - -2.828427124746190e+01, -0.000000000000000e+00 } ); // itest=64: oxxxxx#6 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -3.000000000000000e+02, // itest=65: oxxxxx#6 nsp=-1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=65: oxxxxx#6 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=65: oxxxxx#6 nsp=-1 mass=-400 - -1.414213562373095e+01, -0.000000000000000e+00, // itest=65: oxxxxx#6 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=65: oxxxxx#6 nsp=-1 mass=-400 - -2.828427124746190e+01, -0.000000000000000e+00 } ); // itest=65: oxxxxx#6 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -3.000000000000000e+02, // itest=66: ixxxxx#7 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=66: ixxxxx#7 nsp=-1 mass=400 - -2.828427124746190e+01, -0.000000000000000e+00, // itest=66: ixxxxx#7 nsp=-1 mass=400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=66: ixxxxx#7 nsp=-1 mass=400 - 1.414213562373095e+01, 0.000000000000000e+00, // itest=66: ixxxxx#7 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=66: ixxxxx#7 nsp=-1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -3.000000000000000e+02, // itest=67: ixxxxx#7 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=67: ixxxxx#7 nsp=-1 mass=-400 - -2.828427124746190e+01, -0.000000000000000e+00, // itest=67: ixxxxx#7 nsp=-1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=67: ixxxxx#7 nsp=-1 mass=-400 - -1.414213562373095e+01, -0.000000000000000e+00, // itest=67: ixxxxx#7 nsp=-1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=67: ixxxxx#7 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 3.000000000000000e+02, // itest=68: vxxxxx#7 nsp=-1 mass=400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=68: vxxxxx#7 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=68: vxxxxx#7 nsp=-1 mass=400 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=68: vxxxxx#7 nsp=-1 mass=400 - 0.000000000000000e+00, 7.071067811865476e-01, // itest=68: vxxxxx#7 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=68: vxxxxx#7 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 3.000000000000000e+02, // itest=69: vxxxxx#7 nsp=-1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=69: vxxxxx#7 nsp=-1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=69: vxxxxx#7 nsp=-1 mass=-400 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=69: vxxxxx#7 nsp=-1 mass=-400 - 0.000000000000000e+00, 7.071067811865476e-01, // itest=69: vxxxxx#7 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=69: vxxxxx#7 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 3.000000000000000e+02, // itest=70: sxxxxx#7 nsp=-1 mass=400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=70: sxxxxx#7 nsp=-1 mass=400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=70: sxxxxx#7 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=70: sxxxxx#7 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=70: sxxxxx#7 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=70: sxxxxx#7 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 3.000000000000000e+02, // itest=71: sxxxxx#7 nsp=-1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=71: sxxxxx#7 nsp=-1 mass=-400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=71: sxxxxx#7 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=71: sxxxxx#7 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=71: sxxxxx#7 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=71: sxxxxx#7 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 3.000000000000000e+02, // itest=72: oxxxxx#7 nsp=-1 mass=400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=72: oxxxxx#7 nsp=-1 mass=400 - 1.414213562373095e+01, 0.000000000000000e+00, // itest=72: oxxxxx#7 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=72: oxxxxx#7 nsp=-1 mass=400 - -2.828427124746190e+01, -0.000000000000000e+00, // itest=72: oxxxxx#7 nsp=-1 mass=400 - -0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=72: oxxxxx#7 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 3.000000000000000e+02, // itest=73: oxxxxx#7 nsp=-1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=73: oxxxxx#7 nsp=-1 mass=-400 - -1.414213562373095e+01, -0.000000000000000e+00, // itest=73: oxxxxx#7 nsp=-1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=73: oxxxxx#7 nsp=-1 mass=-400 - -2.828427124746190e+01, -0.000000000000000e+00, // itest=73: oxxxxx#7 nsp=-1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=73: oxxxxx#7 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=74: ixxxxx#8 nsp=-1 mass=400 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=74: ixxxxx#8 nsp=-1 mass=400 - 1.200000000000000e+01, -1.600000000000000e+01, // itest=74: ixxxxx#8 nsp=-1 mass=400 - -2.000000000000000e+01, -0.000000000000000e+00, // itest=74: ixxxxx#8 nsp=-1 mass=400 - -5.999999999999999e+00, 7.999999999999999e+00, // itest=74: ixxxxx#8 nsp=-1 mass=400 - 1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=74: ixxxxx#8 nsp=-1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=75: ixxxxx#8 nsp=-1 mass=-400 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=75: ixxxxx#8 nsp=-1 mass=-400 - 1.200000000000000e+01, -1.600000000000000e+01, // itest=75: ixxxxx#8 nsp=-1 mass=-400 - -2.000000000000000e+01, -0.000000000000000e+00, // itest=75: ixxxxx#8 nsp=-1 mass=-400 - 5.999999999999999e+00, -7.999999999999999e+00, // itest=75: ixxxxx#8 nsp=-1 mass=-400 - -1.000000000000000e+01, -0.000000000000000e+00 } ); // itest=75: ixxxxx#8 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=76: vxxxxx#8 nsp=-1 mass=400 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=76: vxxxxx#8 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=76: vxxxxx#8 nsp=-1 mass=400 - 0.000000000000000e+00, 5.656854249492381e-01, // itest=76: vxxxxx#8 nsp=-1 mass=400 - 0.000000000000000e+00, -4.242640687119285e-01, // itest=76: vxxxxx#8 nsp=-1 mass=400 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=76: vxxxxx#8 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=77: vxxxxx#8 nsp=-1 mass=-400 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=77: vxxxxx#8 nsp=-1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=77: vxxxxx#8 nsp=-1 mass=-400 - -0.000000000000000e+00, 5.656854249492381e-01, // itest=77: vxxxxx#8 nsp=-1 mass=-400 - -0.000000000000000e+00, -4.242640687119285e-01, // itest=77: vxxxxx#8 nsp=-1 mass=-400 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=77: vxxxxx#8 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=78: sxxxxx#8 nsp=-1 mass=400 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=78: sxxxxx#8 nsp=-1 mass=400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=78: sxxxxx#8 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=78: sxxxxx#8 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=78: sxxxxx#8 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=78: sxxxxx#8 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=79: sxxxxx#8 nsp=-1 mass=-400 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=79: sxxxxx#8 nsp=-1 mass=-400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=79: sxxxxx#8 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=79: sxxxxx#8 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=79: sxxxxx#8 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=79: sxxxxx#8 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=80: oxxxxx#8 nsp=-1 mass=400 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=80: oxxxxx#8 nsp=-1 mass=400 - -5.999999999999999e+00, -7.999999999999999e+00, // itest=80: oxxxxx#8 nsp=-1 mass=400 - 1.000000000000000e+01, 0.000000000000000e+00, // itest=80: oxxxxx#8 nsp=-1 mass=400 - 1.200000000000000e+01, 1.600000000000000e+01, // itest=80: oxxxxx#8 nsp=-1 mass=400 - -2.000000000000000e+01, -0.000000000000000e+00 } ); // itest=80: oxxxxx#8 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=81: oxxxxx#8 nsp=-1 mass=-400 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=81: oxxxxx#8 nsp=-1 mass=-400 - 5.999999999999999e+00, 7.999999999999999e+00, // itest=81: oxxxxx#8 nsp=-1 mass=-400 - -1.000000000000000e+01, -0.000000000000000e+00, // itest=81: oxxxxx#8 nsp=-1 mass=-400 - 1.200000000000000e+01, 1.600000000000000e+01, // itest=81: oxxxxx#8 nsp=-1 mass=-400 - -2.000000000000000e+01, -0.000000000000000e+00 } ); // itest=81: oxxxxx#8 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=82: ixxxxx#9 nsp=-1 mass=400 - -2.400000000000000e+02, -1.800000000000000e+02, // itest=82: ixxxxx#9 nsp=-1 mass=400 - -1.600000000000000e+01, 1.200000000000000e+01, // itest=82: ixxxxx#9 nsp=-1 mass=400 - -2.000000000000000e+01, -0.000000000000000e+00, // itest=82: ixxxxx#9 nsp=-1 mass=400 - 7.999999999999999e+00, -5.999999999999999e+00, // itest=82: ixxxxx#9 nsp=-1 mass=400 - 1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=82: ixxxxx#9 nsp=-1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=83: ixxxxx#9 nsp=-1 mass=-400 - -2.400000000000000e+02, -1.800000000000000e+02, // itest=83: ixxxxx#9 nsp=-1 mass=-400 - -1.600000000000000e+01, 1.200000000000000e+01, // itest=83: ixxxxx#9 nsp=-1 mass=-400 - -2.000000000000000e+01, -0.000000000000000e+00, // itest=83: ixxxxx#9 nsp=-1 mass=-400 - -7.999999999999999e+00, 5.999999999999999e+00, // itest=83: ixxxxx#9 nsp=-1 mass=-400 - -1.000000000000000e+01, -0.000000000000000e+00 } ); // itest=83: ixxxxx#9 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=84: vxxxxx#9 nsp=-1 mass=400 - 2.400000000000000e+02, 1.800000000000000e+02, // itest=84: vxxxxx#9 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=84: vxxxxx#9 nsp=-1 mass=400 - 0.000000000000000e+00, -4.242640687119285e-01, // itest=84: vxxxxx#9 nsp=-1 mass=400 - 0.000000000000000e+00, 5.656854249492381e-01, // itest=84: vxxxxx#9 nsp=-1 mass=400 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=84: vxxxxx#9 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=85: vxxxxx#9 nsp=-1 mass=-400 - 2.400000000000000e+02, 1.800000000000000e+02, // itest=85: vxxxxx#9 nsp=-1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=85: vxxxxx#9 nsp=-1 mass=-400 - 0.000000000000000e+00, -4.242640687119285e-01, // itest=85: vxxxxx#9 nsp=-1 mass=-400 - 0.000000000000000e+00, 5.656854249492381e-01, // itest=85: vxxxxx#9 nsp=-1 mass=-400 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=85: vxxxxx#9 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=86: sxxxxx#9 nsp=-1 mass=400 - 2.400000000000000e+02, 1.800000000000000e+02, // itest=86: sxxxxx#9 nsp=-1 mass=400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=86: sxxxxx#9 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=86: sxxxxx#9 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=86: sxxxxx#9 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=86: sxxxxx#9 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=87: sxxxxx#9 nsp=-1 mass=-400 - 2.400000000000000e+02, 1.800000000000000e+02, // itest=87: sxxxxx#9 nsp=-1 mass=-400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=87: sxxxxx#9 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=87: sxxxxx#9 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=87: sxxxxx#9 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=87: sxxxxx#9 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=88: oxxxxx#9 nsp=-1 mass=400 - 2.400000000000000e+02, 1.800000000000000e+02, // itest=88: oxxxxx#9 nsp=-1 mass=400 - 7.999999999999999e+00, 5.999999999999999e+00, // itest=88: oxxxxx#9 nsp=-1 mass=400 - 1.000000000000000e+01, 0.000000000000000e+00, // itest=88: oxxxxx#9 nsp=-1 mass=400 - -1.600000000000000e+01, -1.200000000000000e+01, // itest=88: oxxxxx#9 nsp=-1 mass=400 - -2.000000000000000e+01, -0.000000000000000e+00 } ); // itest=88: oxxxxx#9 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=89: oxxxxx#9 nsp=-1 mass=-400 - 2.400000000000000e+02, 1.800000000000000e+02, // itest=89: oxxxxx#9 nsp=-1 mass=-400 - -7.999999999999999e+00, -5.999999999999999e+00, // itest=89: oxxxxx#9 nsp=-1 mass=-400 - -1.000000000000000e+01, -0.000000000000000e+00, // itest=89: oxxxxx#9 nsp=-1 mass=-400 - -1.600000000000000e+01, -1.200000000000000e+01, // itest=89: oxxxxx#9 nsp=-1 mass=-400 - -2.000000000000000e+01, -0.000000000000000e+00 } ); // itest=89: oxxxxx#9 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 1.440000000000000e+02, // itest=90: ixxxxx#10 nsp=-1 mass=400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=90: ixxxxx#10 nsp=-1 mass=400 - 9.863939238321439e+00, -1.052153518754287e+01, // itest=90: ixxxxx#10 nsp=-1 mass=400 - -2.433105012119288e+01, -0.000000000000000e+00, // itest=90: ixxxxx#10 nsp=-1 mass=400 - -4.931969619160719e+00, 5.260767593771432e+00, // itest=90: ixxxxx#10 nsp=-1 mass=400 - 1.216552506059644e+01, 0.000000000000000e+00 } ); // itest=90: ixxxxx#10 nsp=-1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 1.440000000000000e+02, // itest=91: ixxxxx#10 nsp=-1 mass=-400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=91: ixxxxx#10 nsp=-1 mass=-400 - 9.863939238321439e+00, -1.052153518754287e+01, // itest=91: ixxxxx#10 nsp=-1 mass=-400 - -2.433105012119288e+01, -0.000000000000000e+00, // itest=91: ixxxxx#10 nsp=-1 mass=-400 - 4.931969619160719e+00, -5.260767593771432e+00, // itest=91: ixxxxx#10 nsp=-1 mass=-400 - -1.216552506059644e+01, -0.000000000000000e+00 } ); // itest=91: ixxxxx#10 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -1.440000000000000e+02, // itest=92: vxxxxx#10 nsp=-1 mass=400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=92: vxxxxx#10 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=92: vxxxxx#10 nsp=-1 mass=400 - -2.321373168788980e-01, 5.158607041753289e-01, // itest=92: vxxxxx#10 nsp=-1 mass=400 - -2.476131380041579e-01, -4.836194101643708e-01, // itest=92: vxxxxx#10 nsp=-1 mass=400 - 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=92: vxxxxx#10 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -1.440000000000000e+02, // itest=93: vxxxxx#10 nsp=-1 mass=-400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=93: vxxxxx#10 nsp=-1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=93: vxxxxx#10 nsp=-1 mass=-400 - -2.321373168788980e-01, 5.158607041753289e-01, // itest=93: vxxxxx#10 nsp=-1 mass=-400 - -2.476131380041579e-01, -4.836194101643708e-01, // itest=93: vxxxxx#10 nsp=-1 mass=-400 - 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=93: vxxxxx#10 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -1.440000000000000e+02, // itest=94: sxxxxx#10 nsp=-1 mass=400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=94: sxxxxx#10 nsp=-1 mass=400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=94: sxxxxx#10 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=94: sxxxxx#10 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=94: sxxxxx#10 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=94: sxxxxx#10 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -1.440000000000000e+02, // itest=95: sxxxxx#10 nsp=-1 mass=-400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=95: sxxxxx#10 nsp=-1 mass=-400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=95: sxxxxx#10 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=95: sxxxxx#10 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=95: sxxxxx#10 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=95: sxxxxx#10 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -1.440000000000000e+02, // itest=96: oxxxxx#10 nsp=-1 mass=400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=96: oxxxxx#10 nsp=-1 mass=400 - -4.931969619160719e+00, -5.260767593771432e+00, // itest=96: oxxxxx#10 nsp=-1 mass=400 - 1.216552506059644e+01, 0.000000000000000e+00, // itest=96: oxxxxx#10 nsp=-1 mass=400 - 9.863939238321439e+00, 1.052153518754287e+01, // itest=96: oxxxxx#10 nsp=-1 mass=400 - -2.433105012119288e+01, -0.000000000000000e+00 } ); // itest=96: oxxxxx#10 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -1.440000000000000e+02, // itest=97: oxxxxx#10 nsp=-1 mass=-400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=97: oxxxxx#10 nsp=-1 mass=-400 - 4.931969619160719e+00, 5.260767593771432e+00, // itest=97: oxxxxx#10 nsp=-1 mass=-400 - -1.216552506059644e+01, -0.000000000000000e+00, // itest=97: oxxxxx#10 nsp=-1 mass=-400 - 9.863939238321439e+00, 1.052153518754287e+01, // itest=97: oxxxxx#10 nsp=-1 mass=-400 - -2.433105012119288e+01, -0.000000000000000e+00 } ); // itest=97: oxxxxx#10 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -1.440000000000000e+02, // itest=98: ixxxxx#11 nsp=-1 mass=400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=98: ixxxxx#11 nsp=-1 mass=400 - 1.664100588675688e+01, -1.775040627920733e+01, // itest=98: ixxxxx#11 nsp=-1 mass=400 - -1.442220510185596e+01, -0.000000000000000e+00, // itest=98: ixxxxx#11 nsp=-1 mass=400 - -8.320502943378436e+00, 8.875203139603666e+00, // itest=98: ixxxxx#11 nsp=-1 mass=400 - 7.211102550927978e+00, 0.000000000000000e+00 } ); // itest=98: ixxxxx#11 nsp=-1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -1.440000000000000e+02, // itest=99: ixxxxx#11 nsp=-1 mass=-400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=99: ixxxxx#11 nsp=-1 mass=-400 - 1.664100588675688e+01, -1.775040627920733e+01, // itest=99: ixxxxx#11 nsp=-1 mass=-400 - -1.442220510185596e+01, -0.000000000000000e+00, // itest=99: ixxxxx#11 nsp=-1 mass=-400 - 8.320502943378436e+00, -8.875203139603666e+00, // itest=99: ixxxxx#11 nsp=-1 mass=-400 - -7.211102550927978e+00, -0.000000000000000e+00 } ); // itest=99: ixxxxx#11 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 1.440000000000000e+02, // itest=100: vxxxxx#11 nsp=-1 mass=400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=100: vxxxxx#11 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=100: vxxxxx#11 nsp=-1 mass=400 - 2.321373168788980e-01, 5.158607041753289e-01, // itest=100: vxxxxx#11 nsp=-1 mass=400 - 2.476131380041579e-01, -4.836194101643708e-01, // itest=100: vxxxxx#11 nsp=-1 mass=400 - 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=100: vxxxxx#11 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 1.440000000000000e+02, // itest=101: vxxxxx#11 nsp=-1 mass=-400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=101: vxxxxx#11 nsp=-1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=101: vxxxxx#11 nsp=-1 mass=-400 - 2.321373168788980e-01, 5.158607041753289e-01, // itest=101: vxxxxx#11 nsp=-1 mass=-400 - 2.476131380041579e-01, -4.836194101643708e-01, // itest=101: vxxxxx#11 nsp=-1 mass=-400 - 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=101: vxxxxx#11 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 1.440000000000000e+02, // itest=102: sxxxxx#11 nsp=-1 mass=400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=102: sxxxxx#11 nsp=-1 mass=400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=102: sxxxxx#11 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=102: sxxxxx#11 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=102: sxxxxx#11 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=102: sxxxxx#11 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 1.440000000000000e+02, // itest=103: sxxxxx#11 nsp=-1 mass=-400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=103: sxxxxx#11 nsp=-1 mass=-400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=103: sxxxxx#11 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=103: sxxxxx#11 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=103: sxxxxx#11 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=103: sxxxxx#11 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 1.440000000000000e+02, // itest=104: oxxxxx#11 nsp=-1 mass=400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=104: oxxxxx#11 nsp=-1 mass=400 - -8.320502943378436e+00, -8.875203139603666e+00, // itest=104: oxxxxx#11 nsp=-1 mass=400 - 7.211102550927978e+00, 0.000000000000000e+00, // itest=104: oxxxxx#11 nsp=-1 mass=400 - 1.664100588675688e+01, 1.775040627920733e+01, // itest=104: oxxxxx#11 nsp=-1 mass=400 - -1.442220510185596e+01, -0.000000000000000e+00 } ); // itest=104: oxxxxx#11 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 1.440000000000000e+02, // itest=105: oxxxxx#11 nsp=-1 mass=-400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=105: oxxxxx#11 nsp=-1 mass=-400 - 8.320502943378436e+00, 8.875203139603666e+00, // itest=105: oxxxxx#11 nsp=-1 mass=-400 - -7.211102550927978e+00, -0.000000000000000e+00, // itest=105: oxxxxx#11 nsp=-1 mass=-400 - 1.664100588675688e+01, 1.775040627920733e+01, // itest=105: oxxxxx#11 nsp=-1 mass=-400 - -1.442220510185596e+01, -0.000000000000000e+00 } ); // itest=105: oxxxxx#11 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=106: ixxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=106: ixxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=106: ixxxxx#12 nsp=-1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00, // itest=106: ixxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=106: ixxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=106: ixxxxx#12 nsp=-1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=107: ixxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=107: ixxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=107: ixxxxx#12 nsp=-1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00, // itest=107: ixxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=107: ixxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=107: ixxxxx#12 nsp=-1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=108: ipzxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=108: ipzxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=108: ipzxxx#12 nsp=-1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00, // itest=108: ipzxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=108: ipzxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=108: ipzxxx#12 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=109: vxxxxx#12 nsp=-1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=109: vxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=109: vxxxxx#12 nsp=-1 mass=0 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=109: vxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, -7.071067811865476e-01, // itest=109: vxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=109: vxxxxx#12 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=110: vxxxxx#12 nsp=-1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=110: vxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=110: vxxxxx#12 nsp=-1 mass=0 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=110: vxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, -7.071067811865476e-01, // itest=110: vxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=110: vxxxxx#12 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=111: sxxxxx#12 nsp=-1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=111: sxxxxx#12 nsp=-1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=111: sxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=111: sxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=111: sxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=111: sxxxxx#12 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=112: sxxxxx#12 nsp=-1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=112: sxxxxx#12 nsp=-1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=112: sxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=112: sxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=112: sxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=112: sxxxxx#12 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=113: oxxxxx#12 nsp=-1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=113: oxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=113: oxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=113: oxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=113: oxxxxx#12 nsp=-1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=113: oxxxxx#12 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=114: oxxxxx#12 nsp=-1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=114: oxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=114: oxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=114: oxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=114: oxxxxx#12 nsp=-1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=114: oxxxxx#12 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=115: opzxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=115: opzxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=115: opzxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=115: opzxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=115: opzxxx#12 nsp=-1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=115: opzxxx#12 nsp=-1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=116: ixxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=116: ixxxxx#13 nsp=-1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00, // itest=116: ixxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=116: ixxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=116: ixxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=116: ixxxxx#13 nsp=-1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=117: ixxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=117: ixxxxx#13 nsp=-1 mass=0 - -3.162277660168379e+01, -0.000000000000000e+00, // itest=117: ixxxxx#13 nsp=-1 mass=0 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=117: ixxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=117: ixxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=117: ixxxxx#13 nsp=-1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=118: imzxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=118: imzxxx#13 nsp=-1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00, // itest=118: imzxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=118: imzxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=118: imzxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=118: imzxxx#13 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=119: vxxxxx#13 nsp=-1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=119: vxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=119: vxxxxx#13 nsp=-1 mass=0 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=119: vxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 7.071067811865476e-01, // itest=119: vxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=119: vxxxxx#13 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=120: vxxxxx#13 nsp=-1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=120: vxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=120: vxxxxx#13 nsp=-1 mass=0 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=120: vxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 7.071067811865476e-01, // itest=120: vxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=120: vxxxxx#13 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=121: sxxxxx#13 nsp=-1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=121: sxxxxx#13 nsp=-1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=121: sxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=121: sxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=121: sxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=121: sxxxxx#13 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=122: sxxxxx#13 nsp=-1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=122: sxxxxx#13 nsp=-1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=122: sxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=122: sxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=122: sxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=122: sxxxxx#13 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=123: oxxxxx#13 nsp=-1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=123: oxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=123: oxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=123: oxxxxx#13 nsp=-1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00, // itest=123: oxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=123: oxxxxx#13 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=124: oxxxxx#13 nsp=-1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=124: oxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=124: oxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=124: oxxxxx#13 nsp=-1 mass=0 - -3.162277660168379e+01, -0.000000000000000e+00, // itest=124: oxxxxx#13 nsp=-1 mass=0 - -0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=124: oxxxxx#13 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=125: omzxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=125: omzxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=125: omzxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=125: omzxxx#13 nsp=-1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00, // itest=125: omzxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=125: omzxxx#13 nsp=-1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=126: ixxxxx#14 nsp=-1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=126: ixxxxx#14 nsp=-1 mass=0 - 1.341640786499874e+01, -1.788854381999832e+01, // itest=126: ixxxxx#14 nsp=-1 mass=0 - -2.236067977499790e+01, 0.000000000000000e+00, // itest=126: ixxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=126: ixxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=126: ixxxxx#14 nsp=-1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=127: ixxxxx#14 nsp=-1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=127: ixxxxx#14 nsp=-1 mass=0 - 1.341640786499874e+01, -1.788854381999832e+01, // itest=127: ixxxxx#14 nsp=-1 mass=0 - -2.236067977499790e+01, 0.000000000000000e+00, // itest=127: ixxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=127: ixxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=127: ixxxxx#14 nsp=-1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=128: ixzxxx#14 nsp=-1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=128: ixzxxx#14 nsp=-1 mass=0 - 1.341640786499874e+01, -1.788854381999832e+01, // itest=128: ixzxxx#14 nsp=-1 mass=0 - -2.236067977499790e+01, 0.000000000000000e+00, // itest=128: ixzxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=128: ixzxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=128: ixzxxx#14 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=129: vxxxxx#14 nsp=-1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=129: vxxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=129: vxxxxx#14 nsp=-1 mass=0 - -0.000000000000000e+00, 5.656854249492381e-01, // itest=129: vxxxxx#14 nsp=-1 mass=0 - -0.000000000000000e+00, -4.242640687119285e-01, // itest=129: vxxxxx#14 nsp=-1 mass=0 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=129: vxxxxx#14 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=130: vxxxxx#14 nsp=-1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=130: vxxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=130: vxxxxx#14 nsp=-1 mass=0 - -0.000000000000000e+00, 5.656854249492381e-01, // itest=130: vxxxxx#14 nsp=-1 mass=0 - -0.000000000000000e+00, -4.242640687119285e-01, // itest=130: vxxxxx#14 nsp=-1 mass=0 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=130: vxxxxx#14 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=131: sxxxxx#14 nsp=-1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=131: sxxxxx#14 nsp=-1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=131: sxxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=131: sxxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=131: sxxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=131: sxxxxx#14 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=132: sxxxxx#14 nsp=-1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=132: sxxxxx#14 nsp=-1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=132: sxxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=132: sxxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=132: sxxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=132: sxxxxx#14 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=133: oxxxxx#14 nsp=-1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=133: oxxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=133: oxxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=133: oxxxxx#14 nsp=-1 mass=0 - 1.341640786499874e+01, 1.788854381999832e+01, // itest=133: oxxxxx#14 nsp=-1 mass=0 - -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=133: oxxxxx#14 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=134: oxxxxx#14 nsp=-1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=134: oxxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=134: oxxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=134: oxxxxx#14 nsp=-1 mass=0 - 1.341640786499874e+01, 1.788854381999832e+01, // itest=134: oxxxxx#14 nsp=-1 mass=0 - -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=134: oxxxxx#14 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=135: oxzxxx#14 nsp=-1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=135: oxzxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=135: oxzxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=135: oxzxxx#14 nsp=-1 mass=0 - 1.341640786499874e+01, 1.788854381999832e+01, // itest=135: oxzxxx#14 nsp=-1 mass=0 - -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=135: oxzxxx#14 nsp=-1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=136: ixxxxx#15 nsp=-1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=136: ixxxxx#15 nsp=-1 mass=0 - 6.000000000000000e+00, -8.000000000000000e+00, // itest=136: ixxxxx#15 nsp=-1 mass=0 - -3.000000000000000e+01, 0.000000000000000e+00, // itest=136: ixxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=136: ixxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=136: ixxxxx#15 nsp=-1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=137: ixxxxx#15 nsp=-1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=137: ixxxxx#15 nsp=-1 mass=0 - 6.000000000000000e+00, -8.000000000000000e+00, // itest=137: ixxxxx#15 nsp=-1 mass=0 - -3.000000000000000e+01, 0.000000000000000e+00, // itest=137: ixxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=137: ixxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=137: ixxxxx#15 nsp=-1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=138: ixzxxx#15 nsp=-1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=138: ixzxxx#15 nsp=-1 mass=0 - 6.000000000000000e+00, -8.000000000000000e+00, // itest=138: ixzxxx#15 nsp=-1 mass=0 - -3.000000000000000e+01, 0.000000000000000e+00, // itest=138: ixzxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=138: ixzxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=138: ixzxxx#15 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=139: vxxxxx#15 nsp=-1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=139: vxxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=139: vxxxxx#15 nsp=-1 mass=0 - -3.394112549695428e-01, 5.656854249492381e-01, // itest=139: vxxxxx#15 nsp=-1 mass=0 - -4.525483399593904e-01, -4.242640687119285e-01, // itest=139: vxxxxx#15 nsp=-1 mass=0 - 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=139: vxxxxx#15 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=140: vxxxxx#15 nsp=-1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=140: vxxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=140: vxxxxx#15 nsp=-1 mass=0 - -3.394112549695428e-01, 5.656854249492381e-01, // itest=140: vxxxxx#15 nsp=-1 mass=0 - -4.525483399593904e-01, -4.242640687119285e-01, // itest=140: vxxxxx#15 nsp=-1 mass=0 - 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=140: vxxxxx#15 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=141: sxxxxx#15 nsp=-1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=141: sxxxxx#15 nsp=-1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=141: sxxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=141: sxxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=141: sxxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=141: sxxxxx#15 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=142: sxxxxx#15 nsp=-1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=142: sxxxxx#15 nsp=-1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=142: sxxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=142: sxxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=142: sxxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=142: sxxxxx#15 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=143: oxxxxx#15 nsp=-1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=143: oxxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=143: oxxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=143: oxxxxx#15 nsp=-1 mass=0 - 6.000000000000000e+00, 8.000000000000000e+00, // itest=143: oxxxxx#15 nsp=-1 mass=0 - -3.000000000000000e+01, 0.000000000000000e+00 } ); // itest=143: oxxxxx#15 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=144: oxxxxx#15 nsp=-1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=144: oxxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=144: oxxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=144: oxxxxx#15 nsp=-1 mass=0 - 6.000000000000000e+00, 8.000000000000000e+00, // itest=144: oxxxxx#15 nsp=-1 mass=0 - -3.000000000000000e+01, 0.000000000000000e+00 } ); // itest=144: oxxxxx#15 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=145: oxzxxx#15 nsp=-1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=145: oxzxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=145: oxzxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=145: oxzxxx#15 nsp=-1 mass=0 - 6.000000000000000e+00, 8.000000000000000e+00, // itest=145: oxzxxx#15 nsp=-1 mass=0 - -3.000000000000000e+01, 0.000000000000000e+00 } ); // itest=145: oxzxxx#15 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=146: ixxxxx#0 nsp=1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=146: ixxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=146: ixxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=146: ixxxxx#0 nsp=1 mass=0 - 3.162277660168379e+01, 0.000000000000000e+00, // itest=146: ixxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=146: ixxxxx#0 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=147: ixxxxx#0 nsp=1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=147: ixxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=147: ixxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=147: ixxxxx#0 nsp=1 mass=0 - 3.162277660168379e+01, 0.000000000000000e+00, // itest=147: ixxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=147: ixxxxx#0 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=148: ipzxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=148: ipzxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=148: ipzxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=148: ipzxxx#0 nsp=1 mass=0 - 3.162277660168379e+01, 0.000000000000000e+00, // itest=148: ipzxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=148: ipzxxx#0 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=149: vxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=149: vxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=149: vxxxxx#0 nsp=1 mass=0 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=149: vxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 7.071067811865476e-01, // itest=149: vxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=149: vxxxxx#0 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=150: vxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=150: vxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=150: vxxxxx#0 nsp=1 mass=0 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=150: vxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 7.071067811865476e-01, // itest=150: vxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=150: vxxxxx#0 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=151: sxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=151: sxxxxx#0 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=151: sxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=151: sxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=151: sxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=151: sxxxxx#0 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=152: sxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=152: sxxxxx#0 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=152: sxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=152: sxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=152: sxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=152: sxxxxx#0 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=153: oxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=153: oxxxxx#0 nsp=1 mass=0 - 3.162277660168379e+01, 0.000000000000000e+00, // itest=153: oxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=153: oxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=153: oxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=153: oxxxxx#0 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=154: oxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=154: oxxxxx#0 nsp=1 mass=0 - 3.162277660168379e+01, 0.000000000000000e+00, // itest=154: oxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=154: oxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=154: oxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=154: oxxxxx#0 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=155: opzxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=155: opzxxx#0 nsp=1 mass=0 - 3.162277660168379e+01, 0.000000000000000e+00, // itest=155: opzxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=155: opzxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=155: opzxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=155: opzxxx#0 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=156: ixxxxx#1 nsp=1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=156: ixxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=156: ixxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=156: ixxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=156: ixxxxx#1 nsp=1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=156: ixxxxx#1 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=157: ixxxxx#1 nsp=1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=157: ixxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=157: ixxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=157: ixxxxx#1 nsp=1 mass=0 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=157: ixxxxx#1 nsp=1 mass=0 - -3.162277660168379e+01, -0.000000000000000e+00 } ); // itest=157: ixxxxx#1 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=158: imzxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=158: imzxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=158: imzxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=158: imzxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=158: imzxxx#1 nsp=1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=158: imzxxx#1 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=159: vxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=159: vxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=159: vxxxxx#1 nsp=1 mass=0 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=159: vxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, -7.071067811865476e-01, // itest=159: vxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=159: vxxxxx#1 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=160: vxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=160: vxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=160: vxxxxx#1 nsp=1 mass=0 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=160: vxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, -7.071067811865476e-01, // itest=160: vxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=160: vxxxxx#1 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=161: sxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=161: sxxxxx#1 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=161: sxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=161: sxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=161: sxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=161: sxxxxx#1 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=162: sxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=162: sxxxxx#1 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=162: sxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=162: sxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=162: sxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=162: sxxxxx#1 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=163: oxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=163: oxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=163: oxxxxx#1 nsp=1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00, // itest=163: oxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=163: oxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=163: oxxxxx#1 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=164: oxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=164: oxxxxx#1 nsp=1 mass=0 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=164: oxxxxx#1 nsp=1 mass=0 - -3.162277660168379e+01, -0.000000000000000e+00, // itest=164: oxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=164: oxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=164: oxxxxx#1 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=165: omzxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=165: omzxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=165: omzxxx#1 nsp=1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00, // itest=165: omzxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=165: omzxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=165: omzxxx#1 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=166: ixxxxx#2 nsp=1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=166: ixxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=166: ixxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=166: ixxxxx#2 nsp=1 mass=0 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=166: ixxxxx#2 nsp=1 mass=0 - 1.341640786499874e+01, 1.788854381999832e+01 } ); // itest=166: ixxxxx#2 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=167: ixxxxx#2 nsp=1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=167: ixxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=167: ixxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=167: ixxxxx#2 nsp=1 mass=0 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=167: ixxxxx#2 nsp=1 mass=0 - 1.341640786499874e+01, 1.788854381999832e+01 } ); // itest=167: ixxxxx#2 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=168: ixzxxx#2 nsp=1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=168: ixzxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=168: ixzxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=168: ixzxxx#2 nsp=1 mass=0 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=168: ixzxxx#2 nsp=1 mass=0 - 1.341640786499874e+01, 1.788854381999832e+01 } ); // itest=168: ixzxxx#2 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=169: vxxxxx#2 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=169: vxxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=169: vxxxxx#2 nsp=1 mass=0 - -0.000000000000000e+00, -5.656854249492381e-01, // itest=169: vxxxxx#2 nsp=1 mass=0 - -0.000000000000000e+00, 4.242640687119285e-01, // itest=169: vxxxxx#2 nsp=1 mass=0 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=169: vxxxxx#2 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=170: vxxxxx#2 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=170: vxxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=170: vxxxxx#2 nsp=1 mass=0 - -0.000000000000000e+00, -5.656854249492381e-01, // itest=170: vxxxxx#2 nsp=1 mass=0 - -0.000000000000000e+00, 4.242640687119285e-01, // itest=170: vxxxxx#2 nsp=1 mass=0 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=170: vxxxxx#2 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=171: sxxxxx#2 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=171: sxxxxx#2 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=171: sxxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=171: sxxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=171: sxxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=171: sxxxxx#2 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=172: sxxxxx#2 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=172: sxxxxx#2 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=172: sxxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=172: sxxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=172: sxxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=172: sxxxxx#2 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=173: oxxxxx#2 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=173: oxxxxx#2 nsp=1 mass=0 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=173: oxxxxx#2 nsp=1 mass=0 - 1.341640786499874e+01, -1.788854381999832e+01, // itest=173: oxxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=173: oxxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=173: oxxxxx#2 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=174: oxxxxx#2 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=174: oxxxxx#2 nsp=1 mass=0 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=174: oxxxxx#2 nsp=1 mass=0 - 1.341640786499874e+01, -1.788854381999832e+01, // itest=174: oxxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=174: oxxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=174: oxxxxx#2 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=175: oxzxxx#2 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=175: oxzxxx#2 nsp=1 mass=0 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=175: oxzxxx#2 nsp=1 mass=0 - 1.341640786499874e+01, -1.788854381999832e+01, // itest=175: oxzxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=175: oxzxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=175: oxzxxx#2 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=176: ixxxxx#3 nsp=1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=176: ixxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=176: ixxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=176: ixxxxx#3 nsp=1 mass=0 - 3.000000000000000e+01, 0.000000000000000e+00, // itest=176: ixxxxx#3 nsp=1 mass=0 - 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=176: ixxxxx#3 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=177: ixxxxx#3 nsp=1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=177: ixxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=177: ixxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=177: ixxxxx#3 nsp=1 mass=0 - 3.000000000000000e+01, 0.000000000000000e+00, // itest=177: ixxxxx#3 nsp=1 mass=0 - 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=177: ixxxxx#3 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=178: ixzxxx#3 nsp=1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=178: ixzxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=178: ixzxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=178: ixzxxx#3 nsp=1 mass=0 - 3.000000000000000e+01, 0.000000000000000e+00, // itest=178: ixzxxx#3 nsp=1 mass=0 - 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=178: ixzxxx#3 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=179: vxxxxx#3 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=179: vxxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=179: vxxxxx#3 nsp=1 mass=0 - -3.394112549695428e-01, -5.656854249492381e-01, // itest=179: vxxxxx#3 nsp=1 mass=0 - -4.525483399593904e-01, 4.242640687119285e-01, // itest=179: vxxxxx#3 nsp=1 mass=0 - 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=179: vxxxxx#3 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=180: vxxxxx#3 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=180: vxxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=180: vxxxxx#3 nsp=1 mass=0 - -3.394112549695428e-01, -5.656854249492381e-01, // itest=180: vxxxxx#3 nsp=1 mass=0 - -4.525483399593904e-01, 4.242640687119285e-01, // itest=180: vxxxxx#3 nsp=1 mass=0 - 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=180: vxxxxx#3 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=181: sxxxxx#3 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=181: sxxxxx#3 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=181: sxxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=181: sxxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=181: sxxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=181: sxxxxx#3 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=182: sxxxxx#3 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=182: sxxxxx#3 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=182: sxxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=182: sxxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=182: sxxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=182: sxxxxx#3 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=183: oxxxxx#3 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=183: oxxxxx#3 nsp=1 mass=0 - 3.000000000000000e+01, 0.000000000000000e+00, // itest=183: oxxxxx#3 nsp=1 mass=0 - 6.000000000000000e+00, -8.000000000000000e+00, // itest=183: oxxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=183: oxxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=183: oxxxxx#3 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=184: oxxxxx#3 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=184: oxxxxx#3 nsp=1 mass=0 - 3.000000000000000e+01, 0.000000000000000e+00, // itest=184: oxxxxx#3 nsp=1 mass=0 - 6.000000000000000e+00, -8.000000000000000e+00, // itest=184: oxxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=184: oxxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=184: oxxxxx#3 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=185: oxzxxx#3 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=185: oxzxxx#3 nsp=1 mass=0 - 3.000000000000000e+01, 0.000000000000000e+00, // itest=185: oxzxxx#3 nsp=1 mass=0 - 6.000000000000000e+00, -8.000000000000000e+00, // itest=185: oxzxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=185: oxzxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=185: oxzxxx#3 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 4.000000000000000e+02, // itest=186: ixxxxx#4 nsp=1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=186: ixxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=186: ixxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=186: ixxxxx#4 nsp=1 mass=0 - 1.000000000000000e+01, 0.000000000000000e+00, // itest=186: ixxxxx#4 nsp=1 mass=0 - 1.800000000000000e+01, 2.400000000000000e+01 } ); // itest=186: ixxxxx#4 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 4.000000000000000e+02, // itest=187: ixxxxx#4 nsp=1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=187: ixxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=187: ixxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=187: ixxxxx#4 nsp=1 mass=0 - 1.000000000000000e+01, 0.000000000000000e+00, // itest=187: ixxxxx#4 nsp=1 mass=0 - 1.800000000000000e+01, 2.400000000000000e+01 } ); // itest=187: ixxxxx#4 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 4.000000000000000e+02, // itest=188: ixzxxx#4 nsp=1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=188: ixzxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=188: ixzxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=188: ixzxxx#4 nsp=1 mass=0 - 1.000000000000000e+01, 0.000000000000000e+00, // itest=188: ixzxxx#4 nsp=1 mass=0 - 1.800000000000000e+01, 2.400000000000000e+01 } ); // itest=188: ixzxxx#4 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -4.000000000000000e+02, // itest=189: vxxxxx#4 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=189: vxxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=189: vxxxxx#4 nsp=1 mass=0 - 3.394112549695428e-01, -5.656854249492381e-01, // itest=189: vxxxxx#4 nsp=1 mass=0 - 4.525483399593904e-01, 4.242640687119285e-01, // itest=189: vxxxxx#4 nsp=1 mass=0 - 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=189: vxxxxx#4 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -4.000000000000000e+02, // itest=190: vxxxxx#4 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=190: vxxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=190: vxxxxx#4 nsp=1 mass=0 - 3.394112549695428e-01, -5.656854249492381e-01, // itest=190: vxxxxx#4 nsp=1 mass=0 - 4.525483399593904e-01, 4.242640687119285e-01, // itest=190: vxxxxx#4 nsp=1 mass=0 - 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=190: vxxxxx#4 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -4.000000000000000e+02, // itest=191: sxxxxx#4 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=191: sxxxxx#4 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=191: sxxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=191: sxxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=191: sxxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=191: sxxxxx#4 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -4.000000000000000e+02, // itest=192: sxxxxx#4 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=192: sxxxxx#4 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=192: sxxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=192: sxxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=192: sxxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=192: sxxxxx#4 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -4.000000000000000e+02, // itest=193: oxxxxx#4 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=193: oxxxxx#4 nsp=1 mass=0 - 1.000000000000000e+01, 0.000000000000000e+00, // itest=193: oxxxxx#4 nsp=1 mass=0 - 1.800000000000000e+01, -2.400000000000000e+01, // itest=193: oxxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=193: oxxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=193: oxxxxx#4 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -4.000000000000000e+02, // itest=194: oxxxxx#4 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=194: oxxxxx#4 nsp=1 mass=0 - 1.000000000000000e+01, 0.000000000000000e+00, // itest=194: oxxxxx#4 nsp=1 mass=0 - 1.800000000000000e+01, -2.400000000000000e+01, // itest=194: oxxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=194: oxxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=194: oxxxxx#4 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -4.000000000000000e+02, // itest=195: oxzxxx#4 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=195: oxzxxx#4 nsp=1 mass=0 - 1.000000000000000e+01, 0.000000000000000e+00, // itest=195: oxzxxx#4 nsp=1 mass=0 - 1.800000000000000e+01, -2.400000000000000e+01, // itest=195: oxzxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=195: oxzxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=195: oxzxxx#4 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=196: ixxxxx#5 nsp=1 mass=500 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=196: ixxxxx#5 nsp=1 mass=500 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=196: ixxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=196: ixxxxx#5 nsp=1 mass=500 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=196: ixxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=196: ixxxxx#5 nsp=1 mass=500 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=197: ixxxxx#5 nsp=1 mass=-500 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=197: ixxxxx#5 nsp=1 mass=-500 - -2.236067977499790e+01, 0.000000000000000e+00, // itest=197: ixxxxx#5 nsp=1 mass=-500 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=197: ixxxxx#5 nsp=1 mass=-500 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=197: ixxxxx#5 nsp=1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=197: ixxxxx#5 nsp=1 mass=-500 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=198: vxxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=198: vxxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=198: vxxxxx#5 nsp=1 mass=500 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=198: vxxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 7.071067811865476e-01, // itest=198: vxxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=198: vxxxxx#5 nsp=1 mass=500 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=199: vxxxxx#5 nsp=1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=199: vxxxxx#5 nsp=1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=199: vxxxxx#5 nsp=1 mass=-500 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=199: vxxxxx#5 nsp=1 mass=-500 - 0.000000000000000e+00, 7.071067811865476e-01, // itest=199: vxxxxx#5 nsp=1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=199: vxxxxx#5 nsp=1 mass=-500 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=200: sxxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=200: sxxxxx#5 nsp=1 mass=500 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=200: sxxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=200: sxxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=200: sxxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=200: sxxxxx#5 nsp=1 mass=500 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=201: sxxxxx#5 nsp=1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=201: sxxxxx#5 nsp=1 mass=-500 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=201: sxxxxx#5 nsp=1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=201: sxxxxx#5 nsp=1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=201: sxxxxx#5 nsp=1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=201: sxxxxx#5 nsp=1 mass=-500 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=202: oxxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=202: oxxxxx#5 nsp=1 mass=500 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=202: oxxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=202: oxxxxx#5 nsp=1 mass=500 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=202: oxxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=202: oxxxxx#5 nsp=1 mass=500 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=203: oxxxxx#5 nsp=1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=203: oxxxxx#5 nsp=1 mass=-500 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=203: oxxxxx#5 nsp=1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=203: oxxxxx#5 nsp=1 mass=-500 - -2.236067977499790e+01, 0.000000000000000e+00, // itest=203: oxxxxx#5 nsp=1 mass=-500 - -0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=203: oxxxxx#5 nsp=1 mass=-500 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -3.000000000000000e+02, // itest=204: ixxxxx#6 nsp=1 mass=400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=204: ixxxxx#6 nsp=1 mass=400 - 1.414213562373095e+01, 0.000000000000000e+00, // itest=204: ixxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=204: ixxxxx#6 nsp=1 mass=400 - 2.828427124746190e+01, 0.000000000000000e+00, // itest=204: ixxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=204: ixxxxx#6 nsp=1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -3.000000000000000e+02, // itest=205: ixxxxx#6 nsp=1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=205: ixxxxx#6 nsp=1 mass=-400 - -1.414213562373095e+01, -0.000000000000000e+00, // itest=205: ixxxxx#6 nsp=1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=205: ixxxxx#6 nsp=1 mass=-400 - 2.828427124746190e+01, 0.000000000000000e+00, // itest=205: ixxxxx#6 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=205: ixxxxx#6 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 3.000000000000000e+02, // itest=206: vxxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=206: vxxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=206: vxxxxx#6 nsp=1 mass=400 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=206: vxxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, 7.071067811865476e-01, // itest=206: vxxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=206: vxxxxx#6 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 3.000000000000000e+02, // itest=207: vxxxxx#6 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=207: vxxxxx#6 nsp=1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=207: vxxxxx#6 nsp=1 mass=-400 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=207: vxxxxx#6 nsp=1 mass=-400 - 0.000000000000000e+00, 7.071067811865476e-01, // itest=207: vxxxxx#6 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=207: vxxxxx#6 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 3.000000000000000e+02, // itest=208: sxxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=208: sxxxxx#6 nsp=1 mass=400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=208: sxxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=208: sxxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=208: sxxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=208: sxxxxx#6 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 3.000000000000000e+02, // itest=209: sxxxxx#6 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=209: sxxxxx#6 nsp=1 mass=-400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=209: sxxxxx#6 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=209: sxxxxx#6 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=209: sxxxxx#6 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=209: sxxxxx#6 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 3.000000000000000e+02, // itest=210: oxxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=210: oxxxxx#6 nsp=1 mass=400 - 2.828427124746190e+01, 0.000000000000000e+00, // itest=210: oxxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=210: oxxxxx#6 nsp=1 mass=400 - 1.414213562373095e+01, 0.000000000000000e+00, // itest=210: oxxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=210: oxxxxx#6 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 3.000000000000000e+02, // itest=211: oxxxxx#6 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=211: oxxxxx#6 nsp=1 mass=-400 - 2.828427124746190e+01, 0.000000000000000e+00, // itest=211: oxxxxx#6 nsp=1 mass=-400 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=211: oxxxxx#6 nsp=1 mass=-400 - -1.414213562373095e+01, -0.000000000000000e+00, // itest=211: oxxxxx#6 nsp=1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=211: oxxxxx#6 nsp=1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 3.000000000000000e+02, // itest=212: ixxxxx#7 nsp=1 mass=400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=212: ixxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=212: ixxxxx#7 nsp=1 mass=400 - -1.414213562373095e+01, 0.000000000000000e+00, // itest=212: ixxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=212: ixxxxx#7 nsp=1 mass=400 - -2.828427124746190e+01, 0.000000000000000e+00 } ); // itest=212: ixxxxx#7 nsp=1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 3.000000000000000e+02, // itest=213: ixxxxx#7 nsp=1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=213: ixxxxx#7 nsp=1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=213: ixxxxx#7 nsp=1 mass=-400 - 1.414213562373095e+01, -0.000000000000000e+00, // itest=213: ixxxxx#7 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=213: ixxxxx#7 nsp=1 mass=-400 - -2.828427124746190e+01, 0.000000000000000e+00 } ); // itest=213: ixxxxx#7 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -3.000000000000000e+02, // itest=214: vxxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=214: vxxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=214: vxxxxx#7 nsp=1 mass=400 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=214: vxxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, -7.071067811865476e-01, // itest=214: vxxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=214: vxxxxx#7 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -3.000000000000000e+02, // itest=215: vxxxxx#7 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=215: vxxxxx#7 nsp=1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=215: vxxxxx#7 nsp=1 mass=-400 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=215: vxxxxx#7 nsp=1 mass=-400 - 0.000000000000000e+00, -7.071067811865476e-01, // itest=215: vxxxxx#7 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=215: vxxxxx#7 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -3.000000000000000e+02, // itest=216: sxxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=216: sxxxxx#7 nsp=1 mass=400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=216: sxxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=216: sxxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=216: sxxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=216: sxxxxx#7 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -3.000000000000000e+02, // itest=217: sxxxxx#7 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=217: sxxxxx#7 nsp=1 mass=-400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=217: sxxxxx#7 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=217: sxxxxx#7 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=217: sxxxxx#7 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=217: sxxxxx#7 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -3.000000000000000e+02, // itest=218: oxxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=218: oxxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=218: oxxxxx#7 nsp=1 mass=400 - -2.828427124746190e+01, 0.000000000000000e+00, // itest=218: oxxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=218: oxxxxx#7 nsp=1 mass=400 - -1.414213562373095e+01, 0.000000000000000e+00 } ); // itest=218: oxxxxx#7 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -3.000000000000000e+02, // itest=219: oxxxxx#7 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=219: oxxxxx#7 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=219: oxxxxx#7 nsp=1 mass=-400 - -2.828427124746190e+01, 0.000000000000000e+00, // itest=219: oxxxxx#7 nsp=1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=219: oxxxxx#7 nsp=1 mass=-400 - 1.414213562373095e+01, -0.000000000000000e+00 } ); // itest=219: oxxxxx#7 nsp=1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=220: ixxxxx#8 nsp=1 mass=400 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=220: ixxxxx#8 nsp=1 mass=400 - 1.000000000000000e+01, 0.000000000000000e+00, // itest=220: ixxxxx#8 nsp=1 mass=400 - 5.999999999999999e+00, 7.999999999999999e+00, // itest=220: ixxxxx#8 nsp=1 mass=400 - 2.000000000000000e+01, 0.000000000000000e+00, // itest=220: ixxxxx#8 nsp=1 mass=400 - 1.200000000000000e+01, 1.600000000000000e+01 } ); // itest=220: ixxxxx#8 nsp=1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=221: ixxxxx#8 nsp=1 mass=-400 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=221: ixxxxx#8 nsp=1 mass=-400 - -1.000000000000000e+01, -0.000000000000000e+00, // itest=221: ixxxxx#8 nsp=1 mass=-400 - -5.999999999999999e+00, -7.999999999999999e+00, // itest=221: ixxxxx#8 nsp=1 mass=-400 - 2.000000000000000e+01, 0.000000000000000e+00, // itest=221: ixxxxx#8 nsp=1 mass=-400 - 1.200000000000000e+01, 1.600000000000000e+01 } ); // itest=221: ixxxxx#8 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=222: vxxxxx#8 nsp=1 mass=400 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=222: vxxxxx#8 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=222: vxxxxx#8 nsp=1 mass=400 - 0.000000000000000e+00, -5.656854249492381e-01, // itest=222: vxxxxx#8 nsp=1 mass=400 - 0.000000000000000e+00, 4.242640687119285e-01, // itest=222: vxxxxx#8 nsp=1 mass=400 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=222: vxxxxx#8 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=223: vxxxxx#8 nsp=1 mass=-400 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=223: vxxxxx#8 nsp=1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=223: vxxxxx#8 nsp=1 mass=-400 - -0.000000000000000e+00, -5.656854249492381e-01, // itest=223: vxxxxx#8 nsp=1 mass=-400 - -0.000000000000000e+00, 4.242640687119285e-01, // itest=223: vxxxxx#8 nsp=1 mass=-400 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=223: vxxxxx#8 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=224: sxxxxx#8 nsp=1 mass=400 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=224: sxxxxx#8 nsp=1 mass=400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=224: sxxxxx#8 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=224: sxxxxx#8 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=224: sxxxxx#8 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=224: sxxxxx#8 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=225: sxxxxx#8 nsp=1 mass=-400 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=225: sxxxxx#8 nsp=1 mass=-400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=225: sxxxxx#8 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=225: sxxxxx#8 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=225: sxxxxx#8 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=225: sxxxxx#8 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=226: oxxxxx#8 nsp=1 mass=400 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=226: oxxxxx#8 nsp=1 mass=400 - 2.000000000000000e+01, 0.000000000000000e+00, // itest=226: oxxxxx#8 nsp=1 mass=400 - 1.200000000000000e+01, -1.600000000000000e+01, // itest=226: oxxxxx#8 nsp=1 mass=400 - 1.000000000000000e+01, 0.000000000000000e+00, // itest=226: oxxxxx#8 nsp=1 mass=400 - 5.999999999999999e+00, -7.999999999999999e+00 } ); // itest=226: oxxxxx#8 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=227: oxxxxx#8 nsp=1 mass=-400 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=227: oxxxxx#8 nsp=1 mass=-400 - 2.000000000000000e+01, 0.000000000000000e+00, // itest=227: oxxxxx#8 nsp=1 mass=-400 - 1.200000000000000e+01, -1.600000000000000e+01, // itest=227: oxxxxx#8 nsp=1 mass=-400 - -1.000000000000000e+01, -0.000000000000000e+00, // itest=227: oxxxxx#8 nsp=1 mass=-400 - -5.999999999999999e+00, 7.999999999999999e+00 } ); // itest=227: oxxxxx#8 nsp=1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=228: ixxxxx#9 nsp=1 mass=400 - 2.400000000000000e+02, 1.800000000000000e+02, // itest=228: ixxxxx#9 nsp=1 mass=400 - 1.000000000000000e+01, 0.000000000000000e+00, // itest=228: ixxxxx#9 nsp=1 mass=400 - -7.999999999999999e+00, -5.999999999999999e+00, // itest=228: ixxxxx#9 nsp=1 mass=400 - 2.000000000000000e+01, 0.000000000000000e+00, // itest=228: ixxxxx#9 nsp=1 mass=400 - -1.600000000000000e+01, -1.200000000000000e+01 } ); // itest=228: ixxxxx#9 nsp=1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=229: ixxxxx#9 nsp=1 mass=-400 - 2.400000000000000e+02, 1.800000000000000e+02, // itest=229: ixxxxx#9 nsp=1 mass=-400 - -1.000000000000000e+01, -0.000000000000000e+00, // itest=229: ixxxxx#9 nsp=1 mass=-400 - 7.999999999999999e+00, 5.999999999999999e+00, // itest=229: ixxxxx#9 nsp=1 mass=-400 - 2.000000000000000e+01, 0.000000000000000e+00, // itest=229: ixxxxx#9 nsp=1 mass=-400 - -1.600000000000000e+01, -1.200000000000000e+01 } ); // itest=229: ixxxxx#9 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=230: vxxxxx#9 nsp=1 mass=400 - -2.400000000000000e+02, -1.800000000000000e+02, // itest=230: vxxxxx#9 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=230: vxxxxx#9 nsp=1 mass=400 - 0.000000000000000e+00, 4.242640687119285e-01, // itest=230: vxxxxx#9 nsp=1 mass=400 - 0.000000000000000e+00, -5.656854249492381e-01, // itest=230: vxxxxx#9 nsp=1 mass=400 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=230: vxxxxx#9 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=231: vxxxxx#9 nsp=1 mass=-400 - -2.400000000000000e+02, -1.800000000000000e+02, // itest=231: vxxxxx#9 nsp=1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=231: vxxxxx#9 nsp=1 mass=-400 - 0.000000000000000e+00, 4.242640687119285e-01, // itest=231: vxxxxx#9 nsp=1 mass=-400 - 0.000000000000000e+00, -5.656854249492381e-01, // itest=231: vxxxxx#9 nsp=1 mass=-400 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=231: vxxxxx#9 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=232: sxxxxx#9 nsp=1 mass=400 - -2.400000000000000e+02, -1.800000000000000e+02, // itest=232: sxxxxx#9 nsp=1 mass=400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=232: sxxxxx#9 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=232: sxxxxx#9 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=232: sxxxxx#9 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=232: sxxxxx#9 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=233: sxxxxx#9 nsp=1 mass=-400 - -2.400000000000000e+02, -1.800000000000000e+02, // itest=233: sxxxxx#9 nsp=1 mass=-400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=233: sxxxxx#9 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=233: sxxxxx#9 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=233: sxxxxx#9 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=233: sxxxxx#9 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=234: oxxxxx#9 nsp=1 mass=400 - -2.400000000000000e+02, -1.800000000000000e+02, // itest=234: oxxxxx#9 nsp=1 mass=400 - 2.000000000000000e+01, 0.000000000000000e+00, // itest=234: oxxxxx#9 nsp=1 mass=400 - -1.600000000000000e+01, 1.200000000000000e+01, // itest=234: oxxxxx#9 nsp=1 mass=400 - 1.000000000000000e+01, 0.000000000000000e+00, // itest=234: oxxxxx#9 nsp=1 mass=400 - -7.999999999999999e+00, 5.999999999999999e+00 } ); // itest=234: oxxxxx#9 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=235: oxxxxx#9 nsp=1 mass=-400 - -2.400000000000000e+02, -1.800000000000000e+02, // itest=235: oxxxxx#9 nsp=1 mass=-400 - 2.000000000000000e+01, 0.000000000000000e+00, // itest=235: oxxxxx#9 nsp=1 mass=-400 - -1.600000000000000e+01, 1.200000000000000e+01, // itest=235: oxxxxx#9 nsp=1 mass=-400 - -1.000000000000000e+01, -0.000000000000000e+00, // itest=235: oxxxxx#9 nsp=1 mass=-400 - 7.999999999999999e+00, -5.999999999999999e+00 } ); // itest=235: oxxxxx#9 nsp=1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -1.440000000000000e+02, // itest=236: ixxxxx#10 nsp=1 mass=400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=236: ixxxxx#10 nsp=1 mass=400 - 1.216552506059644e+01, 0.000000000000000e+00, // itest=236: ixxxxx#10 nsp=1 mass=400 - 4.931969619160719e+00, 5.260767593771432e+00, // itest=236: ixxxxx#10 nsp=1 mass=400 - 2.433105012119288e+01, 0.000000000000000e+00, // itest=236: ixxxxx#10 nsp=1 mass=400 - 9.863939238321439e+00, 1.052153518754287e+01 } ); // itest=236: ixxxxx#10 nsp=1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -1.440000000000000e+02, // itest=237: ixxxxx#10 nsp=1 mass=-400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=237: ixxxxx#10 nsp=1 mass=-400 - -1.216552506059644e+01, -0.000000000000000e+00, // itest=237: ixxxxx#10 nsp=1 mass=-400 - -4.931969619160719e+00, -5.260767593771432e+00, // itest=237: ixxxxx#10 nsp=1 mass=-400 - 2.433105012119288e+01, 0.000000000000000e+00, // itest=237: ixxxxx#10 nsp=1 mass=-400 - 9.863939238321439e+00, 1.052153518754287e+01 } ); // itest=237: ixxxxx#10 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 1.440000000000000e+02, // itest=238: vxxxxx#10 nsp=1 mass=400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=238: vxxxxx#10 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=238: vxxxxx#10 nsp=1 mass=400 - -2.321373168788980e-01, -5.158607041753289e-01, // itest=238: vxxxxx#10 nsp=1 mass=400 - -2.476131380041579e-01, 4.836194101643708e-01, // itest=238: vxxxxx#10 nsp=1 mass=400 - 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=238: vxxxxx#10 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 1.440000000000000e+02, // itest=239: vxxxxx#10 nsp=1 mass=-400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=239: vxxxxx#10 nsp=1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=239: vxxxxx#10 nsp=1 mass=-400 - -2.321373168788980e-01, -5.158607041753289e-01, // itest=239: vxxxxx#10 nsp=1 mass=-400 - -2.476131380041579e-01, 4.836194101643708e-01, // itest=239: vxxxxx#10 nsp=1 mass=-400 - 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=239: vxxxxx#10 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 1.440000000000000e+02, // itest=240: sxxxxx#10 nsp=1 mass=400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=240: sxxxxx#10 nsp=1 mass=400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=240: sxxxxx#10 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=240: sxxxxx#10 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=240: sxxxxx#10 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=240: sxxxxx#10 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 1.440000000000000e+02, // itest=241: sxxxxx#10 nsp=1 mass=-400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=241: sxxxxx#10 nsp=1 mass=-400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=241: sxxxxx#10 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=241: sxxxxx#10 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=241: sxxxxx#10 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=241: sxxxxx#10 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 1.440000000000000e+02, // itest=242: oxxxxx#10 nsp=1 mass=400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=242: oxxxxx#10 nsp=1 mass=400 - 2.433105012119288e+01, 0.000000000000000e+00, // itest=242: oxxxxx#10 nsp=1 mass=400 - 9.863939238321439e+00, -1.052153518754287e+01, // itest=242: oxxxxx#10 nsp=1 mass=400 - 1.216552506059644e+01, 0.000000000000000e+00, // itest=242: oxxxxx#10 nsp=1 mass=400 - 4.931969619160719e+00, -5.260767593771432e+00 } ); // itest=242: oxxxxx#10 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 1.440000000000000e+02, // itest=243: oxxxxx#10 nsp=1 mass=-400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=243: oxxxxx#10 nsp=1 mass=-400 - 2.433105012119288e+01, 0.000000000000000e+00, // itest=243: oxxxxx#10 nsp=1 mass=-400 - 9.863939238321439e+00, -1.052153518754287e+01, // itest=243: oxxxxx#10 nsp=1 mass=-400 - -1.216552506059644e+01, -0.000000000000000e+00, // itest=243: oxxxxx#10 nsp=1 mass=-400 - -4.931969619160719e+00, 5.260767593771432e+00 } ); // itest=243: oxxxxx#10 nsp=1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 1.440000000000000e+02, // itest=244: ixxxxx#11 nsp=1 mass=400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=244: ixxxxx#11 nsp=1 mass=400 - 7.211102550927978e+00, 0.000000000000000e+00, // itest=244: ixxxxx#11 nsp=1 mass=400 - 8.320502943378436e+00, 8.875203139603666e+00, // itest=244: ixxxxx#11 nsp=1 mass=400 - 1.442220510185596e+01, 0.000000000000000e+00, // itest=244: ixxxxx#11 nsp=1 mass=400 - 1.664100588675688e+01, 1.775040627920733e+01 } ); // itest=244: ixxxxx#11 nsp=1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 1.440000000000000e+02, // itest=245: ixxxxx#11 nsp=1 mass=-400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=245: ixxxxx#11 nsp=1 mass=-400 - -7.211102550927978e+00, -0.000000000000000e+00, // itest=245: ixxxxx#11 nsp=1 mass=-400 - -8.320502943378436e+00, -8.875203139603666e+00, // itest=245: ixxxxx#11 nsp=1 mass=-400 - 1.442220510185596e+01, 0.000000000000000e+00, // itest=245: ixxxxx#11 nsp=1 mass=-400 - 1.664100588675688e+01, 1.775040627920733e+01 } ); // itest=245: ixxxxx#11 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -1.440000000000000e+02, // itest=246: vxxxxx#11 nsp=1 mass=400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=246: vxxxxx#11 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=246: vxxxxx#11 nsp=1 mass=400 - 2.321373168788980e-01, -5.158607041753289e-01, // itest=246: vxxxxx#11 nsp=1 mass=400 - 2.476131380041579e-01, 4.836194101643708e-01, // itest=246: vxxxxx#11 nsp=1 mass=400 - 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=246: vxxxxx#11 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -1.440000000000000e+02, // itest=247: vxxxxx#11 nsp=1 mass=-400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=247: vxxxxx#11 nsp=1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=247: vxxxxx#11 nsp=1 mass=-400 - 2.321373168788980e-01, -5.158607041753289e-01, // itest=247: vxxxxx#11 nsp=1 mass=-400 - 2.476131380041579e-01, 4.836194101643708e-01, // itest=247: vxxxxx#11 nsp=1 mass=-400 - 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=247: vxxxxx#11 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -1.440000000000000e+02, // itest=248: sxxxxx#11 nsp=1 mass=400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=248: sxxxxx#11 nsp=1 mass=400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=248: sxxxxx#11 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=248: sxxxxx#11 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=248: sxxxxx#11 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=248: sxxxxx#11 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -1.440000000000000e+02, // itest=249: sxxxxx#11 nsp=1 mass=-400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=249: sxxxxx#11 nsp=1 mass=-400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=249: sxxxxx#11 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=249: sxxxxx#11 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=249: sxxxxx#11 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=249: sxxxxx#11 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -1.440000000000000e+02, // itest=250: oxxxxx#11 nsp=1 mass=400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=250: oxxxxx#11 nsp=1 mass=400 - 1.442220510185596e+01, 0.000000000000000e+00, // itest=250: oxxxxx#11 nsp=1 mass=400 - 1.664100588675688e+01, -1.775040627920733e+01, // itest=250: oxxxxx#11 nsp=1 mass=400 - 7.211102550927978e+00, 0.000000000000000e+00, // itest=250: oxxxxx#11 nsp=1 mass=400 - 8.320502943378436e+00, -8.875203139603666e+00 } ); // itest=250: oxxxxx#11 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -1.440000000000000e+02, // itest=251: oxxxxx#11 nsp=1 mass=-400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=251: oxxxxx#11 nsp=1 mass=-400 - 1.442220510185596e+01, 0.000000000000000e+00, // itest=251: oxxxxx#11 nsp=1 mass=-400 - 1.664100588675688e+01, -1.775040627920733e+01, // itest=251: oxxxxx#11 nsp=1 mass=-400 - -7.211102550927978e+00, -0.000000000000000e+00, // itest=251: oxxxxx#11 nsp=1 mass=-400 - -8.320502943378436e+00, 8.875203139603666e+00 } ); // itest=251: oxxxxx#11 nsp=1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=252: ixxxxx#12 nsp=1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=252: ixxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=252: ixxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=252: ixxxxx#12 nsp=1 mass=0 - 3.162277660168379e+01, 0.000000000000000e+00, // itest=252: ixxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=252: ixxxxx#12 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=253: ixxxxx#12 nsp=1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=253: ixxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=253: ixxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=253: ixxxxx#12 nsp=1 mass=0 - 3.162277660168379e+01, 0.000000000000000e+00, // itest=253: ixxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=253: ixxxxx#12 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=254: ipzxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=254: ipzxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=254: ipzxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=254: ipzxxx#12 nsp=1 mass=0 - 3.162277660168379e+01, 0.000000000000000e+00, // itest=254: ipzxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=254: ipzxxx#12 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=255: vxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=255: vxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=255: vxxxxx#12 nsp=1 mass=0 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=255: vxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 7.071067811865476e-01, // itest=255: vxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=255: vxxxxx#12 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=256: vxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=256: vxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=256: vxxxxx#12 nsp=1 mass=0 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=256: vxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 7.071067811865476e-01, // itest=256: vxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=256: vxxxxx#12 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=257: sxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=257: sxxxxx#12 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=257: sxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=257: sxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=257: sxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=257: sxxxxx#12 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=258: sxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=258: sxxxxx#12 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=258: sxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=258: sxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=258: sxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=258: sxxxxx#12 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=259: oxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=259: oxxxxx#12 nsp=1 mass=0 - 3.162277660168379e+01, 0.000000000000000e+00, // itest=259: oxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=259: oxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=259: oxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=259: oxxxxx#12 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=260: oxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=260: oxxxxx#12 nsp=1 mass=0 - 3.162277660168379e+01, 0.000000000000000e+00, // itest=260: oxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=260: oxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=260: oxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=260: oxxxxx#12 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=261: opzxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=261: opzxxx#12 nsp=1 mass=0 - 3.162277660168379e+01, 0.000000000000000e+00, // itest=261: opzxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=261: opzxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=261: opzxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=261: opzxxx#12 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=262: ixxxxx#13 nsp=1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=262: ixxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=262: ixxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=262: ixxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=262: ixxxxx#13 nsp=1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=262: ixxxxx#13 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=263: ixxxxx#13 nsp=1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=263: ixxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=263: ixxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=263: ixxxxx#13 nsp=1 mass=0 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=263: ixxxxx#13 nsp=1 mass=0 - -3.162277660168379e+01, -0.000000000000000e+00 } ); // itest=263: ixxxxx#13 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=264: imzxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=264: imzxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=264: imzxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=264: imzxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=264: imzxxx#13 nsp=1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=264: imzxxx#13 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=265: vxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=265: vxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=265: vxxxxx#13 nsp=1 mass=0 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=265: vxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, -7.071067811865476e-01, // itest=265: vxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=265: vxxxxx#13 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=266: vxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=266: vxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=266: vxxxxx#13 nsp=1 mass=0 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=266: vxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, -7.071067811865476e-01, // itest=266: vxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=266: vxxxxx#13 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=267: sxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=267: sxxxxx#13 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=267: sxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=267: sxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=267: sxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=267: sxxxxx#13 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=268: sxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=268: sxxxxx#13 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=268: sxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=268: sxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=268: sxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=268: sxxxxx#13 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=269: oxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=269: oxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=269: oxxxxx#13 nsp=1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00, // itest=269: oxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=269: oxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=269: oxxxxx#13 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=270: oxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=270: oxxxxx#13 nsp=1 mass=0 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=270: oxxxxx#13 nsp=1 mass=0 - -3.162277660168379e+01, -0.000000000000000e+00, // itest=270: oxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=270: oxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=270: oxxxxx#13 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=271: omzxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=271: omzxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=271: omzxxx#13 nsp=1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00, // itest=271: omzxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=271: omzxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=271: omzxxx#13 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=272: ixxxxx#14 nsp=1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=272: ixxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=272: ixxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=272: ixxxxx#14 nsp=1 mass=0 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=272: ixxxxx#14 nsp=1 mass=0 - 1.341640786499874e+01, 1.788854381999832e+01 } ); // itest=272: ixxxxx#14 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=273: ixxxxx#14 nsp=1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=273: ixxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=273: ixxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=273: ixxxxx#14 nsp=1 mass=0 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=273: ixxxxx#14 nsp=1 mass=0 - 1.341640786499874e+01, 1.788854381999832e+01 } ); // itest=273: ixxxxx#14 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=274: ixzxxx#14 nsp=1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=274: ixzxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=274: ixzxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=274: ixzxxx#14 nsp=1 mass=0 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=274: ixzxxx#14 nsp=1 mass=0 - 1.341640786499874e+01, 1.788854381999832e+01 } ); // itest=274: ixzxxx#14 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=275: vxxxxx#14 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=275: vxxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=275: vxxxxx#14 nsp=1 mass=0 - -0.000000000000000e+00, -5.656854249492381e-01, // itest=275: vxxxxx#14 nsp=1 mass=0 - -0.000000000000000e+00, 4.242640687119285e-01, // itest=275: vxxxxx#14 nsp=1 mass=0 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=275: vxxxxx#14 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=276: vxxxxx#14 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=276: vxxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=276: vxxxxx#14 nsp=1 mass=0 - -0.000000000000000e+00, -5.656854249492381e-01, // itest=276: vxxxxx#14 nsp=1 mass=0 - -0.000000000000000e+00, 4.242640687119285e-01, // itest=276: vxxxxx#14 nsp=1 mass=0 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=276: vxxxxx#14 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=277: sxxxxx#14 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=277: sxxxxx#14 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=277: sxxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=277: sxxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=277: sxxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=277: sxxxxx#14 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=278: sxxxxx#14 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=278: sxxxxx#14 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=278: sxxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=278: sxxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=278: sxxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=278: sxxxxx#14 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=279: oxxxxx#14 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=279: oxxxxx#14 nsp=1 mass=0 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=279: oxxxxx#14 nsp=1 mass=0 - 1.341640786499874e+01, -1.788854381999832e+01, // itest=279: oxxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=279: oxxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=279: oxxxxx#14 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=280: oxxxxx#14 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=280: oxxxxx#14 nsp=1 mass=0 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=280: oxxxxx#14 nsp=1 mass=0 - 1.341640786499874e+01, -1.788854381999832e+01, // itest=280: oxxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=280: oxxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=280: oxxxxx#14 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=281: oxzxxx#14 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=281: oxzxxx#14 nsp=1 mass=0 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=281: oxzxxx#14 nsp=1 mass=0 - 1.341640786499874e+01, -1.788854381999832e+01, // itest=281: oxzxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=281: oxzxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=281: oxzxxx#14 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=282: ixxxxx#15 nsp=1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=282: ixxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=282: ixxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=282: ixxxxx#15 nsp=1 mass=0 - 3.000000000000000e+01, 0.000000000000000e+00, // itest=282: ixxxxx#15 nsp=1 mass=0 - 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=282: ixxxxx#15 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=283: ixxxxx#15 nsp=1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=283: ixxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=283: ixxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=283: ixxxxx#15 nsp=1 mass=0 - 3.000000000000000e+01, 0.000000000000000e+00, // itest=283: ixxxxx#15 nsp=1 mass=0 - 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=283: ixxxxx#15 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=284: ixzxxx#15 nsp=1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=284: ixzxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=284: ixzxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=284: ixzxxx#15 nsp=1 mass=0 - 3.000000000000000e+01, 0.000000000000000e+00, // itest=284: ixzxxx#15 nsp=1 mass=0 - 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=284: ixzxxx#15 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=285: vxxxxx#15 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=285: vxxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=285: vxxxxx#15 nsp=1 mass=0 - -3.394112549695428e-01, -5.656854249492381e-01, // itest=285: vxxxxx#15 nsp=1 mass=0 - -4.525483399593904e-01, 4.242640687119285e-01, // itest=285: vxxxxx#15 nsp=1 mass=0 - 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=285: vxxxxx#15 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=286: vxxxxx#15 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=286: vxxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=286: vxxxxx#15 nsp=1 mass=0 - -3.394112549695428e-01, -5.656854249492381e-01, // itest=286: vxxxxx#15 nsp=1 mass=0 - -4.525483399593904e-01, 4.242640687119285e-01, // itest=286: vxxxxx#15 nsp=1 mass=0 - 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=286: vxxxxx#15 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=287: sxxxxx#15 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=287: sxxxxx#15 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=287: sxxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=287: sxxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=287: sxxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=287: sxxxxx#15 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=288: sxxxxx#15 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=288: sxxxxx#15 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=288: sxxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=288: sxxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=288: sxxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=288: sxxxxx#15 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=289: oxxxxx#15 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=289: oxxxxx#15 nsp=1 mass=0 - 3.000000000000000e+01, 0.000000000000000e+00, // itest=289: oxxxxx#15 nsp=1 mass=0 - 6.000000000000000e+00, -8.000000000000000e+00, // itest=289: oxxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=289: oxxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=289: oxxxxx#15 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=290: oxxxxx#15 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=290: oxxxxx#15 nsp=1 mass=0 - 3.000000000000000e+01, 0.000000000000000e+00, // itest=290: oxxxxx#15 nsp=1 mass=0 - 6.000000000000000e+00, -8.000000000000000e+00, // itest=290: oxxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=290: oxxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=290: oxxxxx#15 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=291: oxzxxx#15 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=291: oxzxxx#15 nsp=1 mass=0 - 3.000000000000000e+01, 0.000000000000000e+00, // itest=291: oxzxxx#15 nsp=1 mass=0 - 6.000000000000000e+00, -8.000000000000000e+00, // itest=291: oxzxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=291: oxzxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=291: oxzxxx#15 nsp=1 mass=0 + 5.000000000000000e+02, 5.000000000000000e+02, // itest=50: ixxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=50: ixxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=50: ixxxxx#5 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=50: ixxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=50: ixxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=50: ixxxxx#5 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=51: ixxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=51: ixxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=51: ixxxxx#5 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=51: ixxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=51: ixxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=51: ixxxxx#5 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=52: ipzxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=52: ipzxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=52: ipzxxx#5 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=52: ipzxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=52: ipzxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=52: ipzxxx#5 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=53: vxxxxx#5 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=53: vxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=53: vxxxxx#5 nsp=-1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=53: vxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=53: vxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=53: vxxxxx#5 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=54: vxxxxx#5 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=54: vxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=54: vxxxxx#5 nsp=-1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=54: vxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=54: vxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=54: vxxxxx#5 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=55: sxxxxx#5 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=55: sxxxxx#5 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=55: sxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=55: sxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=55: sxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=55: sxxxxx#5 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=56: sxxxxx#5 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=56: sxxxxx#5 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=56: sxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=56: sxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=56: sxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=56: sxxxxx#5 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=57: oxxxxx#5 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=57: oxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=57: oxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=57: oxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=57: oxxxxx#5 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=57: oxxxxx#5 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=58: oxxxxx#5 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=58: oxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=58: oxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=58: oxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=58: oxxxxx#5 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=58: oxxxxx#5 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=59: opzxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=59: opzxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=59: opzxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=59: opzxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=59: opzxxx#5 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=59: opzxxx#5 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=60: ixxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=60: ixxxxx#6 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=60: ixxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=60: ixxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=60: ixxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=60: ixxxxx#6 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=61: ixxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=61: ixxxxx#6 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=61: ixxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=61: ixxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=61: ixxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=61: ixxxxx#6 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=62: imzxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=62: imzxxx#6 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=62: imzxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=62: imzxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=62: imzxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=62: imzxxx#6 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=63: vxxxxx#6 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=63: vxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=63: vxxxxx#6 nsp=-1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=63: vxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=63: vxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=63: vxxxxx#6 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=64: vxxxxx#6 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=64: vxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=64: vxxxxx#6 nsp=-1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=64: vxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=64: vxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=64: vxxxxx#6 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=65: sxxxxx#6 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=65: sxxxxx#6 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=65: sxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=65: sxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=65: sxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=65: sxxxxx#6 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=66: sxxxxx#6 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=66: sxxxxx#6 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=66: sxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=66: sxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=66: sxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=66: sxxxxx#6 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=67: oxxxxx#6 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=67: oxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=67: oxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=67: oxxxxx#6 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=67: oxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=67: oxxxxx#6 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=68: oxxxxx#6 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=68: oxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=68: oxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=68: oxxxxx#6 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=68: oxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=68: oxxxxx#6 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=69: omzxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=69: omzxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=69: omzxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=69: omzxxx#6 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=69: omzxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=69: omzxxx#6 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=70: ixxxxx#7 nsp=-1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=70: ixxxxx#7 nsp=-1 mass=0 + 1.341640786499874e+01, -1.788854381999831e+01, // itest=70: ixxxxx#7 nsp=-1 mass=0 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=70: ixxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=70: ixxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=70: ixxxxx#7 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=71: ixxxxx#7 nsp=-1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=71: ixxxxx#7 nsp=-1 mass=0 + 1.341640786499874e+01, -1.788854381999831e+01, // itest=71: ixxxxx#7 nsp=-1 mass=0 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=71: ixxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=71: ixxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=71: ixxxxx#7 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=72: ixzxxx#7 nsp=-1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=72: ixzxxx#7 nsp=-1 mass=0 + 1.341640786499874e+01, -1.788854381999832e+01, // itest=72: ixzxxx#7 nsp=-1 mass=0 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=72: ixzxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=72: ixzxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=72: ixzxxx#7 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=73: vxxxxx#7 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=73: vxxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=73: vxxxxx#7 nsp=-1 mass=0 + -0.000000000000000e+00, 5.656854249492381e-01, // itest=73: vxxxxx#7 nsp=-1 mass=0 + -0.000000000000000e+00, -4.242640687119285e-01, // itest=73: vxxxxx#7 nsp=-1 mass=0 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=73: vxxxxx#7 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=74: vxxxxx#7 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=74: vxxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=74: vxxxxx#7 nsp=-1 mass=0 + -0.000000000000000e+00, 5.656854249492381e-01, // itest=74: vxxxxx#7 nsp=-1 mass=0 + -0.000000000000000e+00, -4.242640687119285e-01, // itest=74: vxxxxx#7 nsp=-1 mass=0 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=74: vxxxxx#7 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=75: sxxxxx#7 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=75: sxxxxx#7 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=75: sxxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=75: sxxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=75: sxxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=75: sxxxxx#7 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=76: sxxxxx#7 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=76: sxxxxx#7 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=76: sxxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=76: sxxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=76: sxxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=76: sxxxxx#7 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=77: oxxxxx#7 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=77: oxxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=77: oxxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=77: oxxxxx#7 nsp=-1 mass=0 + 1.341640786499874e+01, 1.788854381999831e+01, // itest=77: oxxxxx#7 nsp=-1 mass=0 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=77: oxxxxx#7 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=78: oxxxxx#7 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=78: oxxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=78: oxxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=78: oxxxxx#7 nsp=-1 mass=0 + 1.341640786499874e+01, 1.788854381999831e+01, // itest=78: oxxxxx#7 nsp=-1 mass=0 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=78: oxxxxx#7 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=79: oxzxxx#7 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=79: oxzxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=79: oxzxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=79: oxzxxx#7 nsp=-1 mass=0 + 1.341640786499874e+01, 1.788854381999832e+01, // itest=79: oxzxxx#7 nsp=-1 mass=0 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=79: oxzxxx#7 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=80: ixxxxx#8 nsp=-1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=80: ixxxxx#8 nsp=-1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=80: ixxxxx#8 nsp=-1 mass=0 + -3.000000000000000e+01, 0.000000000000000e+00, // itest=80: ixxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=80: ixxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=80: ixxxxx#8 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=81: ixxxxx#8 nsp=-1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=81: ixxxxx#8 nsp=-1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=81: ixxxxx#8 nsp=-1 mass=0 + -3.000000000000000e+01, 0.000000000000000e+00, // itest=81: ixxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=81: ixxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=81: ixxxxx#8 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=82: ixzxxx#8 nsp=-1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=82: ixzxxx#8 nsp=-1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=82: ixzxxx#8 nsp=-1 mass=0 + -3.000000000000000e+01, 0.000000000000000e+00, // itest=82: ixzxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=82: ixzxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=82: ixzxxx#8 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=83: vxxxxx#8 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=83: vxxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=83: vxxxxx#8 nsp=-1 mass=0 + -3.394112549695428e-01, 5.656854249492381e-01, // itest=83: vxxxxx#8 nsp=-1 mass=0 + -4.525483399593904e-01, -4.242640687119285e-01, // itest=83: vxxxxx#8 nsp=-1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=83: vxxxxx#8 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=84: vxxxxx#8 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=84: vxxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=84: vxxxxx#8 nsp=-1 mass=0 + -3.394112549695428e-01, 5.656854249492381e-01, // itest=84: vxxxxx#8 nsp=-1 mass=0 + -4.525483399593904e-01, -4.242640687119285e-01, // itest=84: vxxxxx#8 nsp=-1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=84: vxxxxx#8 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=85: sxxxxx#8 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=85: sxxxxx#8 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=85: sxxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=85: sxxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=85: sxxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=85: sxxxxx#8 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=86: sxxxxx#8 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=86: sxxxxx#8 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=86: sxxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=86: sxxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=86: sxxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=86: sxxxxx#8 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=87: oxxxxx#8 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=87: oxxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=87: oxxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=87: oxxxxx#8 nsp=-1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00, // itest=87: oxxxxx#8 nsp=-1 mass=0 + -3.000000000000000e+01, 0.000000000000000e+00 } ); // itest=87: oxxxxx#8 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=88: oxxxxx#8 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=88: oxxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=88: oxxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=88: oxxxxx#8 nsp=-1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00, // itest=88: oxxxxx#8 nsp=-1 mass=0 + -3.000000000000000e+01, 0.000000000000000e+00 } ); // itest=88: oxxxxx#8 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=89: oxzxxx#8 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=89: oxzxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=89: oxzxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=89: oxzxxx#8 nsp=-1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00, // itest=89: oxzxxx#8 nsp=-1 mass=0 + -3.000000000000000e+01, 0.000000000000000e+00 } ); // itest=89: oxzxxx#8 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=90: ixxxxx#9 nsp=-1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=90: ixxxxx#9 nsp=-1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=90: ixxxxx#9 nsp=-1 mass=0 + -1.000000000000000e+01, 0.000000000000000e+00, // itest=90: ixxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=90: ixxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=90: ixxxxx#9 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=91: ixxxxx#9 nsp=-1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=91: ixxxxx#9 nsp=-1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=91: ixxxxx#9 nsp=-1 mass=0 + -1.000000000000000e+01, 0.000000000000000e+00, // itest=91: ixxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=91: ixxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=91: ixxxxx#9 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=92: ixzxxx#9 nsp=-1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=92: ixzxxx#9 nsp=-1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=92: ixzxxx#9 nsp=-1 mass=0 + -1.000000000000000e+01, 0.000000000000000e+00, // itest=92: ixzxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=92: ixzxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=92: ixzxxx#9 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=93: vxxxxx#9 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=93: vxxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=93: vxxxxx#9 nsp=-1 mass=0 + 3.394112549695428e-01, 5.656854249492381e-01, // itest=93: vxxxxx#9 nsp=-1 mass=0 + 4.525483399593904e-01, -4.242640687119285e-01, // itest=93: vxxxxx#9 nsp=-1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=93: vxxxxx#9 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=94: vxxxxx#9 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=94: vxxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=94: vxxxxx#9 nsp=-1 mass=0 + 3.394112549695428e-01, 5.656854249492381e-01, // itest=94: vxxxxx#9 nsp=-1 mass=0 + 4.525483399593904e-01, -4.242640687119285e-01, // itest=94: vxxxxx#9 nsp=-1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=94: vxxxxx#9 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=95: sxxxxx#9 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=95: sxxxxx#9 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=95: sxxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=95: sxxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=95: sxxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=95: sxxxxx#9 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=96: sxxxxx#9 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=96: sxxxxx#9 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=96: sxxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=96: sxxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=96: sxxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=96: sxxxxx#9 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=97: oxxxxx#9 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=97: oxxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=97: oxxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=97: oxxxxx#9 nsp=-1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01, // itest=97: oxxxxx#9 nsp=-1 mass=0 + -1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=97: oxxxxx#9 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=98: oxxxxx#9 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=98: oxxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=98: oxxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=98: oxxxxx#9 nsp=-1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01, // itest=98: oxxxxx#9 nsp=-1 mass=0 + -1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=98: oxxxxx#9 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=99: oxzxxx#9 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=99: oxzxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=99: oxzxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=99: oxzxxx#9 nsp=-1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01, // itest=99: oxzxxx#9 nsp=-1 mass=0 + -1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=99: oxzxxx#9 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=100: ixxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=100: ixxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=100: ixxxxx#10 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=100: ixxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=100: ixxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=100: ixxxxx#10 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=101: ixxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=101: ixxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=101: ixxxxx#10 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=101: ixxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=101: ixxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=101: ixxxxx#10 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=102: ipzxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=102: ipzxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=102: ipzxxx#10 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=102: ipzxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=102: ipzxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=102: ipzxxx#10 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=103: vxxxxx#10 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=103: vxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=103: vxxxxx#10 nsp=-1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=103: vxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=103: vxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=103: vxxxxx#10 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=104: vxxxxx#10 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=104: vxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=104: vxxxxx#10 nsp=-1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=104: vxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=104: vxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=104: vxxxxx#10 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=105: sxxxxx#10 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=105: sxxxxx#10 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=105: sxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=105: sxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=105: sxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=105: sxxxxx#10 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=106: sxxxxx#10 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=106: sxxxxx#10 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=106: sxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=106: sxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=106: sxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=106: sxxxxx#10 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=107: oxxxxx#10 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=107: oxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=107: oxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=107: oxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=107: oxxxxx#10 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=107: oxxxxx#10 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=108: oxxxxx#10 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=108: oxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=108: oxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=108: oxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=108: oxxxxx#10 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=108: oxxxxx#10 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=109: opzxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=109: opzxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=109: opzxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=109: opzxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=109: opzxxx#10 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=109: opzxxx#10 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=110: ixxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=110: ixxxxx#11 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=110: ixxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=110: ixxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=110: ixxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=110: ixxxxx#11 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=111: ixxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=111: ixxxxx#11 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=111: ixxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=111: ixxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=111: ixxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=111: ixxxxx#11 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=112: imzxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=112: imzxxx#11 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=112: imzxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=112: imzxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=112: imzxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=112: imzxxx#11 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=113: vxxxxx#11 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=113: vxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=113: vxxxxx#11 nsp=-1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=113: vxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=113: vxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=113: vxxxxx#11 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=114: vxxxxx#11 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=114: vxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=114: vxxxxx#11 nsp=-1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=114: vxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=114: vxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=114: vxxxxx#11 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=115: sxxxxx#11 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=115: sxxxxx#11 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=115: sxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=115: sxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=115: sxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=115: sxxxxx#11 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=116: sxxxxx#11 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=116: sxxxxx#11 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=116: sxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=116: sxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=116: sxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=116: sxxxxx#11 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=117: oxxxxx#11 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=117: oxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=117: oxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=117: oxxxxx#11 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=117: oxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=117: oxxxxx#11 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=118: oxxxxx#11 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=118: oxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=118: oxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=118: oxxxxx#11 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=118: oxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=118: oxxxxx#11 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=119: omzxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=119: omzxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=119: omzxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=119: omzxxx#11 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=119: omzxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=119: omzxxx#11 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=120: ixxxxx#12 nsp=-1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=120: ixxxxx#12 nsp=-1 mass=0 + 1.341640786499874e+01, -1.788854381999831e+01, // itest=120: ixxxxx#12 nsp=-1 mass=0 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=120: ixxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=120: ixxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=120: ixxxxx#12 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=121: ixxxxx#12 nsp=-1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=121: ixxxxx#12 nsp=-1 mass=0 + 1.341640786499874e+01, -1.788854381999831e+01, // itest=121: ixxxxx#12 nsp=-1 mass=0 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=121: ixxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=121: ixxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=121: ixxxxx#12 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=122: ixzxxx#12 nsp=-1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=122: ixzxxx#12 nsp=-1 mass=0 + 1.341640786499874e+01, -1.788854381999832e+01, // itest=122: ixzxxx#12 nsp=-1 mass=0 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=122: ixzxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=122: ixzxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=122: ixzxxx#12 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=123: vxxxxx#12 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=123: vxxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=123: vxxxxx#12 nsp=-1 mass=0 + -0.000000000000000e+00, 5.656854249492381e-01, // itest=123: vxxxxx#12 nsp=-1 mass=0 + -0.000000000000000e+00, -4.242640687119285e-01, // itest=123: vxxxxx#12 nsp=-1 mass=0 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=123: vxxxxx#12 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=124: vxxxxx#12 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=124: vxxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=124: vxxxxx#12 nsp=-1 mass=0 + -0.000000000000000e+00, 5.656854249492381e-01, // itest=124: vxxxxx#12 nsp=-1 mass=0 + -0.000000000000000e+00, -4.242640687119285e-01, // itest=124: vxxxxx#12 nsp=-1 mass=0 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=124: vxxxxx#12 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=125: sxxxxx#12 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=125: sxxxxx#12 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=125: sxxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=125: sxxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=125: sxxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=125: sxxxxx#12 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=126: sxxxxx#12 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=126: sxxxxx#12 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=126: sxxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=126: sxxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=126: sxxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=126: sxxxxx#12 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=127: oxxxxx#12 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=127: oxxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=127: oxxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=127: oxxxxx#12 nsp=-1 mass=0 + 1.341640786499874e+01, 1.788854381999831e+01, // itest=127: oxxxxx#12 nsp=-1 mass=0 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=127: oxxxxx#12 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=128: oxxxxx#12 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=128: oxxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=128: oxxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=128: oxxxxx#12 nsp=-1 mass=0 + 1.341640786499874e+01, 1.788854381999831e+01, // itest=128: oxxxxx#12 nsp=-1 mass=0 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=128: oxxxxx#12 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=129: oxzxxx#12 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=129: oxzxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=129: oxzxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=129: oxzxxx#12 nsp=-1 mass=0 + 1.341640786499874e+01, 1.788854381999832e+01, // itest=129: oxzxxx#12 nsp=-1 mass=0 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=129: oxzxxx#12 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=130: ixxxxx#13 nsp=-1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=130: ixxxxx#13 nsp=-1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=130: ixxxxx#13 nsp=-1 mass=0 + -3.000000000000000e+01, 0.000000000000000e+00, // itest=130: ixxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=130: ixxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=130: ixxxxx#13 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=131: ixxxxx#13 nsp=-1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=131: ixxxxx#13 nsp=-1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=131: ixxxxx#13 nsp=-1 mass=0 + -3.000000000000000e+01, 0.000000000000000e+00, // itest=131: ixxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=131: ixxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=131: ixxxxx#13 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=132: ixzxxx#13 nsp=-1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=132: ixzxxx#13 nsp=-1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=132: ixzxxx#13 nsp=-1 mass=0 + -3.000000000000000e+01, 0.000000000000000e+00, // itest=132: ixzxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=132: ixzxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=132: ixzxxx#13 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=133: vxxxxx#13 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=133: vxxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=133: vxxxxx#13 nsp=-1 mass=0 + -3.394112549695428e-01, 5.656854249492381e-01, // itest=133: vxxxxx#13 nsp=-1 mass=0 + -4.525483399593904e-01, -4.242640687119285e-01, // itest=133: vxxxxx#13 nsp=-1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=133: vxxxxx#13 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=134: vxxxxx#13 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=134: vxxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=134: vxxxxx#13 nsp=-1 mass=0 + -3.394112549695428e-01, 5.656854249492381e-01, // itest=134: vxxxxx#13 nsp=-1 mass=0 + -4.525483399593904e-01, -4.242640687119285e-01, // itest=134: vxxxxx#13 nsp=-1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=134: vxxxxx#13 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=135: sxxxxx#13 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=135: sxxxxx#13 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=135: sxxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=135: sxxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=135: sxxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=135: sxxxxx#13 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=136: sxxxxx#13 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=136: sxxxxx#13 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=136: sxxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=136: sxxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=136: sxxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=136: sxxxxx#13 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=137: oxxxxx#13 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=137: oxxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=137: oxxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=137: oxxxxx#13 nsp=-1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00, // itest=137: oxxxxx#13 nsp=-1 mass=0 + -3.000000000000000e+01, 0.000000000000000e+00 } ); // itest=137: oxxxxx#13 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=138: oxxxxx#13 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=138: oxxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=138: oxxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=138: oxxxxx#13 nsp=-1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00, // itest=138: oxxxxx#13 nsp=-1 mass=0 + -3.000000000000000e+01, 0.000000000000000e+00 } ); // itest=138: oxxxxx#13 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=139: oxzxxx#13 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=139: oxzxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=139: oxzxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=139: oxzxxx#13 nsp=-1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00, // itest=139: oxzxxx#13 nsp=-1 mass=0 + -3.000000000000000e+01, 0.000000000000000e+00 } ); // itest=139: oxzxxx#13 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=140: ixxxxx#14 nsp=-1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=140: ixxxxx#14 nsp=-1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=140: ixxxxx#14 nsp=-1 mass=0 + -1.000000000000000e+01, 0.000000000000000e+00, // itest=140: ixxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=140: ixxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=140: ixxxxx#14 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=141: ixxxxx#14 nsp=-1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=141: ixxxxx#14 nsp=-1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=141: ixxxxx#14 nsp=-1 mass=0 + -1.000000000000000e+01, 0.000000000000000e+00, // itest=141: ixxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=141: ixxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=141: ixxxxx#14 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=142: ixzxxx#14 nsp=-1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=142: ixzxxx#14 nsp=-1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=142: ixzxxx#14 nsp=-1 mass=0 + -1.000000000000000e+01, 0.000000000000000e+00, // itest=142: ixzxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=142: ixzxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=142: ixzxxx#14 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=143: vxxxxx#14 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=143: vxxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=143: vxxxxx#14 nsp=-1 mass=0 + 3.394112549695428e-01, 5.656854249492381e-01, // itest=143: vxxxxx#14 nsp=-1 mass=0 + 4.525483399593904e-01, -4.242640687119285e-01, // itest=143: vxxxxx#14 nsp=-1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=143: vxxxxx#14 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=144: vxxxxx#14 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=144: vxxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=144: vxxxxx#14 nsp=-1 mass=0 + 3.394112549695428e-01, 5.656854249492381e-01, // itest=144: vxxxxx#14 nsp=-1 mass=0 + 4.525483399593904e-01, -4.242640687119285e-01, // itest=144: vxxxxx#14 nsp=-1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=144: vxxxxx#14 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=145: sxxxxx#14 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=145: sxxxxx#14 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=145: sxxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=145: sxxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=145: sxxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=145: sxxxxx#14 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=146: sxxxxx#14 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=146: sxxxxx#14 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=146: sxxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=146: sxxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=146: sxxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=146: sxxxxx#14 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=147: oxxxxx#14 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=147: oxxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=147: oxxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=147: oxxxxx#14 nsp=-1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01, // itest=147: oxxxxx#14 nsp=-1 mass=0 + -1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=147: oxxxxx#14 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=148: oxxxxx#14 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=148: oxxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=148: oxxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=148: oxxxxx#14 nsp=-1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01, // itest=148: oxxxxx#14 nsp=-1 mass=0 + -1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=148: oxxxxx#14 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=149: oxzxxx#14 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=149: oxzxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=149: oxzxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=149: oxzxxx#14 nsp=-1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01, // itest=149: oxzxxx#14 nsp=-1 mass=0 + -1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=149: oxzxxx#14 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=150: ixxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=150: ixxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=150: ixxxxx#15 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=150: ixxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=150: ixxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=150: ixxxxx#15 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=151: ixxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=151: ixxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=151: ixxxxx#15 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=151: ixxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=151: ixxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=151: ixxxxx#15 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=152: ipzxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=152: ipzxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=152: ipzxxx#15 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=152: ipzxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=152: ipzxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=152: ipzxxx#15 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=153: vxxxxx#15 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=153: vxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=153: vxxxxx#15 nsp=-1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=153: vxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=153: vxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=153: vxxxxx#15 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=154: vxxxxx#15 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=154: vxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=154: vxxxxx#15 nsp=-1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=154: vxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=154: vxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=154: vxxxxx#15 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=155: sxxxxx#15 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=155: sxxxxx#15 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=155: sxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=155: sxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=155: sxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=155: sxxxxx#15 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=156: sxxxxx#15 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=156: sxxxxx#15 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=156: sxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=156: sxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=156: sxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=156: sxxxxx#15 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=157: oxxxxx#15 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=157: oxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=157: oxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=157: oxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=157: oxxxxx#15 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=157: oxxxxx#15 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=158: oxxxxx#15 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=158: oxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=158: oxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=158: oxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=158: oxxxxx#15 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=158: oxxxxx#15 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=159: opzxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=159: opzxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=159: opzxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=159: opzxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=159: opzxxx#15 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=159: opzxxx#15 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=160: ixxxxx#16 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=160: ixxxxx#16 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=160: ixxxxx#16 nsp=-1 mass=500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=160: ixxxxx#16 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=160: ixxxxx#16 nsp=-1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=160: ixxxxx#16 nsp=-1 mass=500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=161: ixxxxx#16 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=161: ixxxxx#16 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=161: ixxxxx#16 nsp=-1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=161: ixxxxx#16 nsp=-1 mass=-500 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=161: ixxxxx#16 nsp=-1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=161: ixxxxx#16 nsp=-1 mass=-500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=162: vxxxxx#16 nsp=-1 mass=500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=162: vxxxxx#16 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=162: vxxxxx#16 nsp=-1 mass=500 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=162: vxxxxx#16 nsp=-1 mass=500 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=162: vxxxxx#16 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=162: vxxxxx#16 nsp=-1 mass=500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=163: vxxxxx#16 nsp=-1 mass=-500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=163: vxxxxx#16 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=163: vxxxxx#16 nsp=-1 mass=-500 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=163: vxxxxx#16 nsp=-1 mass=-500 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=163: vxxxxx#16 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=163: vxxxxx#16 nsp=-1 mass=-500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=164: sxxxxx#16 nsp=-1 mass=500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=164: sxxxxx#16 nsp=-1 mass=500 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=164: sxxxxx#16 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=164: sxxxxx#16 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=164: sxxxxx#16 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=164: sxxxxx#16 nsp=-1 mass=500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=165: sxxxxx#16 nsp=-1 mass=-500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=165: sxxxxx#16 nsp=-1 mass=-500 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=165: sxxxxx#16 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=165: sxxxxx#16 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=165: sxxxxx#16 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=165: sxxxxx#16 nsp=-1 mass=-500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=166: oxxxxx#16 nsp=-1 mass=500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=166: oxxxxx#16 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=166: oxxxxx#16 nsp=-1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=166: oxxxxx#16 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=166: oxxxxx#16 nsp=-1 mass=500 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=166: oxxxxx#16 nsp=-1 mass=500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=167: oxxxxx#16 nsp=-1 mass=-500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=167: oxxxxx#16 nsp=-1 mass=-500 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=167: oxxxxx#16 nsp=-1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=167: oxxxxx#16 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=167: oxxxxx#16 nsp=-1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=167: oxxxxx#16 nsp=-1 mass=-500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=168: ixxxxx#17 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=168: ixxxxx#17 nsp=-1 mass=400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=168: ixxxxx#17 nsp=-1 mass=400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=168: ixxxxx#17 nsp=-1 mass=400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=168: ixxxxx#17 nsp=-1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00 } ); // itest=168: ixxxxx#17 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=169: ixxxxx#17 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=169: ixxxxx#17 nsp=-1 mass=-400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=169: ixxxxx#17 nsp=-1 mass=-400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=169: ixxxxx#17 nsp=-1 mass=-400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=169: ixxxxx#17 nsp=-1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00 } ); // itest=169: ixxxxx#17 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=170: vxxxxx#17 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=170: vxxxxx#17 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=170: vxxxxx#17 nsp=-1 mass=400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=170: vxxxxx#17 nsp=-1 mass=400 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=170: vxxxxx#17 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=170: vxxxxx#17 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=171: vxxxxx#17 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=171: vxxxxx#17 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=171: vxxxxx#17 nsp=-1 mass=-400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=171: vxxxxx#17 nsp=-1 mass=-400 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=171: vxxxxx#17 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=171: vxxxxx#17 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=172: sxxxxx#17 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=172: sxxxxx#17 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=172: sxxxxx#17 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=172: sxxxxx#17 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=172: sxxxxx#17 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=172: sxxxxx#17 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=173: sxxxxx#17 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=173: sxxxxx#17 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=173: sxxxxx#17 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=173: sxxxxx#17 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=173: sxxxxx#17 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=173: sxxxxx#17 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=174: oxxxxx#17 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=174: oxxxxx#17 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=174: oxxxxx#17 nsp=-1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=174: oxxxxx#17 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=174: oxxxxx#17 nsp=-1 mass=400 + -2.828427124746190e+01, -0.000000000000000e+00 } ); // itest=174: oxxxxx#17 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=175: oxxxxx#17 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=175: oxxxxx#17 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=175: oxxxxx#17 nsp=-1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=175: oxxxxx#17 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=175: oxxxxx#17 nsp=-1 mass=-400 + -2.828427124746190e+01, -0.000000000000000e+00 } ); // itest=175: oxxxxx#17 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=176: ixxxxx#18 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=176: ixxxxx#18 nsp=-1 mass=400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=176: ixxxxx#18 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=176: ixxxxx#18 nsp=-1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=176: ixxxxx#18 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=176: ixxxxx#18 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=177: ixxxxx#18 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=177: ixxxxx#18 nsp=-1 mass=-400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=177: ixxxxx#18 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=177: ixxxxx#18 nsp=-1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=177: ixxxxx#18 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=177: ixxxxx#18 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=178: vxxxxx#18 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=178: vxxxxx#18 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=178: vxxxxx#18 nsp=-1 mass=400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=178: vxxxxx#18 nsp=-1 mass=400 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=178: vxxxxx#18 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=178: vxxxxx#18 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=179: vxxxxx#18 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=179: vxxxxx#18 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=179: vxxxxx#18 nsp=-1 mass=-400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=179: vxxxxx#18 nsp=-1 mass=-400 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=179: vxxxxx#18 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=179: vxxxxx#18 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=180: sxxxxx#18 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=180: sxxxxx#18 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=180: sxxxxx#18 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=180: sxxxxx#18 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=180: sxxxxx#18 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=180: sxxxxx#18 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=181: sxxxxx#18 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=181: sxxxxx#18 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=181: sxxxxx#18 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=181: sxxxxx#18 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=181: sxxxxx#18 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=181: sxxxxx#18 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=182: oxxxxx#18 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=182: oxxxxx#18 nsp=-1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=182: oxxxxx#18 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=182: oxxxxx#18 nsp=-1 mass=400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=182: oxxxxx#18 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=182: oxxxxx#18 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=183: oxxxxx#18 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=183: oxxxxx#18 nsp=-1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=183: oxxxxx#18 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=183: oxxxxx#18 nsp=-1 mass=-400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=183: oxxxxx#18 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=183: oxxxxx#18 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=184: ixxxxx#19 nsp=-1 mass=400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=184: ixxxxx#19 nsp=-1 mass=400 + 1.200000000000000e+01, -1.600000000000000e+01, // itest=184: ixxxxx#19 nsp=-1 mass=400 + -2.000000000000000e+01, -0.000000000000000e+00, // itest=184: ixxxxx#19 nsp=-1 mass=400 + -5.999999999999999e+00, 7.999999999999999e+00, // itest=184: ixxxxx#19 nsp=-1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=184: ixxxxx#19 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=185: ixxxxx#19 nsp=-1 mass=-400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=185: ixxxxx#19 nsp=-1 mass=-400 + 1.200000000000000e+01, -1.600000000000000e+01, // itest=185: ixxxxx#19 nsp=-1 mass=-400 + -2.000000000000000e+01, -0.000000000000000e+00, // itest=185: ixxxxx#19 nsp=-1 mass=-400 + 5.999999999999999e+00, -7.999999999999999e+00, // itest=185: ixxxxx#19 nsp=-1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00 } ); // itest=185: ixxxxx#19 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=186: vxxxxx#19 nsp=-1 mass=400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=186: vxxxxx#19 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=186: vxxxxx#19 nsp=-1 mass=400 + 0.000000000000000e+00, 5.656854249492381e-01, // itest=186: vxxxxx#19 nsp=-1 mass=400 + 0.000000000000000e+00, -4.242640687119285e-01, // itest=186: vxxxxx#19 nsp=-1 mass=400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=186: vxxxxx#19 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=187: vxxxxx#19 nsp=-1 mass=-400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=187: vxxxxx#19 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=187: vxxxxx#19 nsp=-1 mass=-400 + -0.000000000000000e+00, 5.656854249492381e-01, // itest=187: vxxxxx#19 nsp=-1 mass=-400 + -0.000000000000000e+00, -4.242640687119285e-01, // itest=187: vxxxxx#19 nsp=-1 mass=-400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=187: vxxxxx#19 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=188: sxxxxx#19 nsp=-1 mass=400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=188: sxxxxx#19 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=188: sxxxxx#19 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=188: sxxxxx#19 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=188: sxxxxx#19 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=188: sxxxxx#19 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=189: sxxxxx#19 nsp=-1 mass=-400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=189: sxxxxx#19 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=189: sxxxxx#19 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=189: sxxxxx#19 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=189: sxxxxx#19 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=189: sxxxxx#19 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=190: oxxxxx#19 nsp=-1 mass=400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=190: oxxxxx#19 nsp=-1 mass=400 + -5.999999999999999e+00, -7.999999999999999e+00, // itest=190: oxxxxx#19 nsp=-1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=190: oxxxxx#19 nsp=-1 mass=400 + 1.200000000000000e+01, 1.600000000000000e+01, // itest=190: oxxxxx#19 nsp=-1 mass=400 + -2.000000000000000e+01, -0.000000000000000e+00 } ); // itest=190: oxxxxx#19 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=191: oxxxxx#19 nsp=-1 mass=-400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=191: oxxxxx#19 nsp=-1 mass=-400 + 5.999999999999999e+00, 7.999999999999999e+00, // itest=191: oxxxxx#19 nsp=-1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00, // itest=191: oxxxxx#19 nsp=-1 mass=-400 + 1.200000000000000e+01, 1.600000000000000e+01, // itest=191: oxxxxx#19 nsp=-1 mass=-400 + -2.000000000000000e+01, -0.000000000000000e+00 } ); // itest=191: oxxxxx#19 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=192: ixxxxx#20 nsp=-1 mass=400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=192: ixxxxx#20 nsp=-1 mass=400 + -1.600000000000000e+01, 1.200000000000000e+01, // itest=192: ixxxxx#20 nsp=-1 mass=400 + -2.000000000000000e+01, -0.000000000000000e+00, // itest=192: ixxxxx#20 nsp=-1 mass=400 + 7.999999999999999e+00, -5.999999999999999e+00, // itest=192: ixxxxx#20 nsp=-1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=192: ixxxxx#20 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=193: ixxxxx#20 nsp=-1 mass=-400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=193: ixxxxx#20 nsp=-1 mass=-400 + -1.600000000000000e+01, 1.200000000000000e+01, // itest=193: ixxxxx#20 nsp=-1 mass=-400 + -2.000000000000000e+01, -0.000000000000000e+00, // itest=193: ixxxxx#20 nsp=-1 mass=-400 + -7.999999999999999e+00, 5.999999999999999e+00, // itest=193: ixxxxx#20 nsp=-1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00 } ); // itest=193: ixxxxx#20 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=194: vxxxxx#20 nsp=-1 mass=400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=194: vxxxxx#20 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=194: vxxxxx#20 nsp=-1 mass=400 + 0.000000000000000e+00, -4.242640687119285e-01, // itest=194: vxxxxx#20 nsp=-1 mass=400 + 0.000000000000000e+00, 5.656854249492381e-01, // itest=194: vxxxxx#20 nsp=-1 mass=400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=194: vxxxxx#20 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=195: vxxxxx#20 nsp=-1 mass=-400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=195: vxxxxx#20 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=195: vxxxxx#20 nsp=-1 mass=-400 + 0.000000000000000e+00, -4.242640687119285e-01, // itest=195: vxxxxx#20 nsp=-1 mass=-400 + 0.000000000000000e+00, 5.656854249492381e-01, // itest=195: vxxxxx#20 nsp=-1 mass=-400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=195: vxxxxx#20 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=196: sxxxxx#20 nsp=-1 mass=400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=196: sxxxxx#20 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=196: sxxxxx#20 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=196: sxxxxx#20 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=196: sxxxxx#20 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=196: sxxxxx#20 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=197: sxxxxx#20 nsp=-1 mass=-400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=197: sxxxxx#20 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=197: sxxxxx#20 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=197: sxxxxx#20 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=197: sxxxxx#20 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=197: sxxxxx#20 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=198: oxxxxx#20 nsp=-1 mass=400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=198: oxxxxx#20 nsp=-1 mass=400 + 7.999999999999999e+00, 5.999999999999999e+00, // itest=198: oxxxxx#20 nsp=-1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=198: oxxxxx#20 nsp=-1 mass=400 + -1.600000000000000e+01, -1.200000000000000e+01, // itest=198: oxxxxx#20 nsp=-1 mass=400 + -2.000000000000000e+01, -0.000000000000000e+00 } ); // itest=198: oxxxxx#20 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=199: oxxxxx#20 nsp=-1 mass=-400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=199: oxxxxx#20 nsp=-1 mass=-400 + -7.999999999999999e+00, -5.999999999999999e+00, // itest=199: oxxxxx#20 nsp=-1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00, // itest=199: oxxxxx#20 nsp=-1 mass=-400 + -1.600000000000000e+01, -1.200000000000000e+01, // itest=199: oxxxxx#20 nsp=-1 mass=-400 + -2.000000000000000e+01, -0.000000000000000e+00 } ); // itest=199: oxxxxx#20 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=200: ixxxxx#21 nsp=-1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=200: ixxxxx#21 nsp=-1 mass=400 + 9.863939238321439e+00, -1.052153518754287e+01, // itest=200: ixxxxx#21 nsp=-1 mass=400 + -2.433105012119288e+01, -0.000000000000000e+00, // itest=200: ixxxxx#21 nsp=-1 mass=400 + -4.931969619160719e+00, 5.260767593771432e+00, // itest=200: ixxxxx#21 nsp=-1 mass=400 + 1.216552506059644e+01, 0.000000000000000e+00 } ); // itest=200: ixxxxx#21 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=201: ixxxxx#21 nsp=-1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=201: ixxxxx#21 nsp=-1 mass=-400 + 9.863939238321439e+00, -1.052153518754287e+01, // itest=201: ixxxxx#21 nsp=-1 mass=-400 + -2.433105012119288e+01, -0.000000000000000e+00, // itest=201: ixxxxx#21 nsp=-1 mass=-400 + 4.931969619160719e+00, -5.260767593771432e+00, // itest=201: ixxxxx#21 nsp=-1 mass=-400 + -1.216552506059644e+01, -0.000000000000000e+00 } ); // itest=201: ixxxxx#21 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=202: vxxxxx#21 nsp=-1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=202: vxxxxx#21 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=202: vxxxxx#21 nsp=-1 mass=400 + -2.321373168788980e-01, 5.158607041753289e-01, // itest=202: vxxxxx#21 nsp=-1 mass=400 + -2.476131380041579e-01, -4.836194101643708e-01, // itest=202: vxxxxx#21 nsp=-1 mass=400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=202: vxxxxx#21 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=203: vxxxxx#21 nsp=-1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=203: vxxxxx#21 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=203: vxxxxx#21 nsp=-1 mass=-400 + -2.321373168788980e-01, 5.158607041753289e-01, // itest=203: vxxxxx#21 nsp=-1 mass=-400 + -2.476131380041579e-01, -4.836194101643708e-01, // itest=203: vxxxxx#21 nsp=-1 mass=-400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=203: vxxxxx#21 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=204: sxxxxx#21 nsp=-1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=204: sxxxxx#21 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=204: sxxxxx#21 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=204: sxxxxx#21 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=204: sxxxxx#21 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=204: sxxxxx#21 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=205: sxxxxx#21 nsp=-1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=205: sxxxxx#21 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=205: sxxxxx#21 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=205: sxxxxx#21 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=205: sxxxxx#21 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=205: sxxxxx#21 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=206: oxxxxx#21 nsp=-1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=206: oxxxxx#21 nsp=-1 mass=400 + -4.931969619160719e+00, -5.260767593771432e+00, // itest=206: oxxxxx#21 nsp=-1 mass=400 + 1.216552506059644e+01, 0.000000000000000e+00, // itest=206: oxxxxx#21 nsp=-1 mass=400 + 9.863939238321439e+00, 1.052153518754287e+01, // itest=206: oxxxxx#21 nsp=-1 mass=400 + -2.433105012119288e+01, -0.000000000000000e+00 } ); // itest=206: oxxxxx#21 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=207: oxxxxx#21 nsp=-1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=207: oxxxxx#21 nsp=-1 mass=-400 + 4.931969619160719e+00, 5.260767593771432e+00, // itest=207: oxxxxx#21 nsp=-1 mass=-400 + -1.216552506059644e+01, -0.000000000000000e+00, // itest=207: oxxxxx#21 nsp=-1 mass=-400 + 9.863939238321439e+00, 1.052153518754287e+01, // itest=207: oxxxxx#21 nsp=-1 mass=-400 + -2.433105012119288e+01, -0.000000000000000e+00 } ); // itest=207: oxxxxx#21 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=208: ixxxxx#22 nsp=-1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=208: ixxxxx#22 nsp=-1 mass=400 + 1.664100588675688e+01, -1.775040627920733e+01, // itest=208: ixxxxx#22 nsp=-1 mass=400 + -1.442220510185596e+01, -0.000000000000000e+00, // itest=208: ixxxxx#22 nsp=-1 mass=400 + -8.320502943378436e+00, 8.875203139603666e+00, // itest=208: ixxxxx#22 nsp=-1 mass=400 + 7.211102550927978e+00, 0.000000000000000e+00 } ); // itest=208: ixxxxx#22 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=209: ixxxxx#22 nsp=-1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=209: ixxxxx#22 nsp=-1 mass=-400 + 1.664100588675688e+01, -1.775040627920733e+01, // itest=209: ixxxxx#22 nsp=-1 mass=-400 + -1.442220510185596e+01, -0.000000000000000e+00, // itest=209: ixxxxx#22 nsp=-1 mass=-400 + 8.320502943378436e+00, -8.875203139603666e+00, // itest=209: ixxxxx#22 nsp=-1 mass=-400 + -7.211102550927978e+00, -0.000000000000000e+00 } ); // itest=209: ixxxxx#22 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=210: vxxxxx#22 nsp=-1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=210: vxxxxx#22 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=210: vxxxxx#22 nsp=-1 mass=400 + 2.321373168788980e-01, 5.158607041753289e-01, // itest=210: vxxxxx#22 nsp=-1 mass=400 + 2.476131380041579e-01, -4.836194101643708e-01, // itest=210: vxxxxx#22 nsp=-1 mass=400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=210: vxxxxx#22 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=211: vxxxxx#22 nsp=-1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=211: vxxxxx#22 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=211: vxxxxx#22 nsp=-1 mass=-400 + 2.321373168788980e-01, 5.158607041753289e-01, // itest=211: vxxxxx#22 nsp=-1 mass=-400 + 2.476131380041579e-01, -4.836194101643708e-01, // itest=211: vxxxxx#22 nsp=-1 mass=-400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=211: vxxxxx#22 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=212: sxxxxx#22 nsp=-1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=212: sxxxxx#22 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=212: sxxxxx#22 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=212: sxxxxx#22 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=212: sxxxxx#22 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=212: sxxxxx#22 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=213: sxxxxx#22 nsp=-1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=213: sxxxxx#22 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=213: sxxxxx#22 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=213: sxxxxx#22 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=213: sxxxxx#22 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=213: sxxxxx#22 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=214: oxxxxx#22 nsp=-1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=214: oxxxxx#22 nsp=-1 mass=400 + -8.320502943378436e+00, -8.875203139603666e+00, // itest=214: oxxxxx#22 nsp=-1 mass=400 + 7.211102550927978e+00, 0.000000000000000e+00, // itest=214: oxxxxx#22 nsp=-1 mass=400 + 1.664100588675688e+01, 1.775040627920733e+01, // itest=214: oxxxxx#22 nsp=-1 mass=400 + -1.442220510185596e+01, -0.000000000000000e+00 } ); // itest=214: oxxxxx#22 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=215: oxxxxx#22 nsp=-1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=215: oxxxxx#22 nsp=-1 mass=-400 + 8.320502943378436e+00, 8.875203139603666e+00, // itest=215: oxxxxx#22 nsp=-1 mass=-400 + -7.211102550927978e+00, -0.000000000000000e+00, // itest=215: oxxxxx#22 nsp=-1 mass=-400 + 1.664100588675688e+01, 1.775040627920733e+01, // itest=215: oxxxxx#22 nsp=-1 mass=-400 + -1.442220510185596e+01, -0.000000000000000e+00 } ); // itest=215: oxxxxx#22 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=216: ixxxxx#23 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=216: ixxxxx#23 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=216: ixxxxx#23 nsp=-1 mass=500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=216: ixxxxx#23 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=216: ixxxxx#23 nsp=-1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=216: ixxxxx#23 nsp=-1 mass=500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=217: ixxxxx#23 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=217: ixxxxx#23 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=217: ixxxxx#23 nsp=-1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=217: ixxxxx#23 nsp=-1 mass=-500 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=217: ixxxxx#23 nsp=-1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=217: ixxxxx#23 nsp=-1 mass=-500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=218: vxxxxx#23 nsp=-1 mass=500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=218: vxxxxx#23 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=218: vxxxxx#23 nsp=-1 mass=500 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=218: vxxxxx#23 nsp=-1 mass=500 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=218: vxxxxx#23 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=218: vxxxxx#23 nsp=-1 mass=500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=219: vxxxxx#23 nsp=-1 mass=-500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=219: vxxxxx#23 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=219: vxxxxx#23 nsp=-1 mass=-500 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=219: vxxxxx#23 nsp=-1 mass=-500 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=219: vxxxxx#23 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=219: vxxxxx#23 nsp=-1 mass=-500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=220: sxxxxx#23 nsp=-1 mass=500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=220: sxxxxx#23 nsp=-1 mass=500 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=220: sxxxxx#23 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=220: sxxxxx#23 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=220: sxxxxx#23 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=220: sxxxxx#23 nsp=-1 mass=500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=221: sxxxxx#23 nsp=-1 mass=-500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=221: sxxxxx#23 nsp=-1 mass=-500 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=221: sxxxxx#23 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=221: sxxxxx#23 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=221: sxxxxx#23 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=221: sxxxxx#23 nsp=-1 mass=-500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=222: oxxxxx#23 nsp=-1 mass=500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=222: oxxxxx#23 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=222: oxxxxx#23 nsp=-1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=222: oxxxxx#23 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=222: oxxxxx#23 nsp=-1 mass=500 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=222: oxxxxx#23 nsp=-1 mass=500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=223: oxxxxx#23 nsp=-1 mass=-500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=223: oxxxxx#23 nsp=-1 mass=-500 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=223: oxxxxx#23 nsp=-1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=223: oxxxxx#23 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=223: oxxxxx#23 nsp=-1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=223: oxxxxx#23 nsp=-1 mass=-500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=224: ixxxxx#24 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=224: ixxxxx#24 nsp=-1 mass=400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=224: ixxxxx#24 nsp=-1 mass=400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=224: ixxxxx#24 nsp=-1 mass=400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=224: ixxxxx#24 nsp=-1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00 } ); // itest=224: ixxxxx#24 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=225: ixxxxx#24 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=225: ixxxxx#24 nsp=-1 mass=-400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=225: ixxxxx#24 nsp=-1 mass=-400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=225: ixxxxx#24 nsp=-1 mass=-400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=225: ixxxxx#24 nsp=-1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00 } ); // itest=225: ixxxxx#24 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=226: vxxxxx#24 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=226: vxxxxx#24 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=226: vxxxxx#24 nsp=-1 mass=400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=226: vxxxxx#24 nsp=-1 mass=400 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=226: vxxxxx#24 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=226: vxxxxx#24 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=227: vxxxxx#24 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=227: vxxxxx#24 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=227: vxxxxx#24 nsp=-1 mass=-400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=227: vxxxxx#24 nsp=-1 mass=-400 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=227: vxxxxx#24 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=227: vxxxxx#24 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=228: sxxxxx#24 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=228: sxxxxx#24 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=228: sxxxxx#24 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=228: sxxxxx#24 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=228: sxxxxx#24 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=228: sxxxxx#24 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=229: sxxxxx#24 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=229: sxxxxx#24 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=229: sxxxxx#24 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=229: sxxxxx#24 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=229: sxxxxx#24 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=229: sxxxxx#24 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=230: oxxxxx#24 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=230: oxxxxx#24 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=230: oxxxxx#24 nsp=-1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=230: oxxxxx#24 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=230: oxxxxx#24 nsp=-1 mass=400 + -2.828427124746190e+01, -0.000000000000000e+00 } ); // itest=230: oxxxxx#24 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=231: oxxxxx#24 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=231: oxxxxx#24 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=231: oxxxxx#24 nsp=-1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=231: oxxxxx#24 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=231: oxxxxx#24 nsp=-1 mass=-400 + -2.828427124746190e+01, -0.000000000000000e+00 } ); // itest=231: oxxxxx#24 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=232: ixxxxx#25 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=232: ixxxxx#25 nsp=-1 mass=400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=232: ixxxxx#25 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=232: ixxxxx#25 nsp=-1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=232: ixxxxx#25 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=232: ixxxxx#25 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=233: ixxxxx#25 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=233: ixxxxx#25 nsp=-1 mass=-400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=233: ixxxxx#25 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=233: ixxxxx#25 nsp=-1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=233: ixxxxx#25 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=233: ixxxxx#25 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=234: vxxxxx#25 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=234: vxxxxx#25 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=234: vxxxxx#25 nsp=-1 mass=400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=234: vxxxxx#25 nsp=-1 mass=400 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=234: vxxxxx#25 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=234: vxxxxx#25 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=235: vxxxxx#25 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=235: vxxxxx#25 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=235: vxxxxx#25 nsp=-1 mass=-400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=235: vxxxxx#25 nsp=-1 mass=-400 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=235: vxxxxx#25 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=235: vxxxxx#25 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=236: sxxxxx#25 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=236: sxxxxx#25 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=236: sxxxxx#25 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=236: sxxxxx#25 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=236: sxxxxx#25 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=236: sxxxxx#25 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=237: sxxxxx#25 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=237: sxxxxx#25 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=237: sxxxxx#25 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=237: sxxxxx#25 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=237: sxxxxx#25 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=237: sxxxxx#25 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=238: oxxxxx#25 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=238: oxxxxx#25 nsp=-1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=238: oxxxxx#25 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=238: oxxxxx#25 nsp=-1 mass=400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=238: oxxxxx#25 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=238: oxxxxx#25 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=239: oxxxxx#25 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=239: oxxxxx#25 nsp=-1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=239: oxxxxx#25 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=239: oxxxxx#25 nsp=-1 mass=-400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=239: oxxxxx#25 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=239: oxxxxx#25 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=240: ixxxxx#26 nsp=-1 mass=400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=240: ixxxxx#26 nsp=-1 mass=400 + 1.200000000000000e+01, -1.600000000000000e+01, // itest=240: ixxxxx#26 nsp=-1 mass=400 + -2.000000000000000e+01, -0.000000000000000e+00, // itest=240: ixxxxx#26 nsp=-1 mass=400 + -5.999999999999999e+00, 7.999999999999999e+00, // itest=240: ixxxxx#26 nsp=-1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=240: ixxxxx#26 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=241: ixxxxx#26 nsp=-1 mass=-400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=241: ixxxxx#26 nsp=-1 mass=-400 + 1.200000000000000e+01, -1.600000000000000e+01, // itest=241: ixxxxx#26 nsp=-1 mass=-400 + -2.000000000000000e+01, -0.000000000000000e+00, // itest=241: ixxxxx#26 nsp=-1 mass=-400 + 5.999999999999999e+00, -7.999999999999999e+00, // itest=241: ixxxxx#26 nsp=-1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00 } ); // itest=241: ixxxxx#26 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=242: vxxxxx#26 nsp=-1 mass=400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=242: vxxxxx#26 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=242: vxxxxx#26 nsp=-1 mass=400 + 0.000000000000000e+00, 5.656854249492381e-01, // itest=242: vxxxxx#26 nsp=-1 mass=400 + 0.000000000000000e+00, -4.242640687119285e-01, // itest=242: vxxxxx#26 nsp=-1 mass=400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=242: vxxxxx#26 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=243: vxxxxx#26 nsp=-1 mass=-400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=243: vxxxxx#26 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=243: vxxxxx#26 nsp=-1 mass=-400 + -0.000000000000000e+00, 5.656854249492381e-01, // itest=243: vxxxxx#26 nsp=-1 mass=-400 + -0.000000000000000e+00, -4.242640687119285e-01, // itest=243: vxxxxx#26 nsp=-1 mass=-400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=243: vxxxxx#26 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=244: sxxxxx#26 nsp=-1 mass=400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=244: sxxxxx#26 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=244: sxxxxx#26 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=244: sxxxxx#26 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=244: sxxxxx#26 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=244: sxxxxx#26 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=245: sxxxxx#26 nsp=-1 mass=-400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=245: sxxxxx#26 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=245: sxxxxx#26 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=245: sxxxxx#26 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=245: sxxxxx#26 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=245: sxxxxx#26 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=246: oxxxxx#26 nsp=-1 mass=400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=246: oxxxxx#26 nsp=-1 mass=400 + -5.999999999999999e+00, -7.999999999999999e+00, // itest=246: oxxxxx#26 nsp=-1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=246: oxxxxx#26 nsp=-1 mass=400 + 1.200000000000000e+01, 1.600000000000000e+01, // itest=246: oxxxxx#26 nsp=-1 mass=400 + -2.000000000000000e+01, -0.000000000000000e+00 } ); // itest=246: oxxxxx#26 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=247: oxxxxx#26 nsp=-1 mass=-400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=247: oxxxxx#26 nsp=-1 mass=-400 + 5.999999999999999e+00, 7.999999999999999e+00, // itest=247: oxxxxx#26 nsp=-1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00, // itest=247: oxxxxx#26 nsp=-1 mass=-400 + 1.200000000000000e+01, 1.600000000000000e+01, // itest=247: oxxxxx#26 nsp=-1 mass=-400 + -2.000000000000000e+01, -0.000000000000000e+00 } ); // itest=247: oxxxxx#26 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=248: ixxxxx#27 nsp=-1 mass=400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=248: ixxxxx#27 nsp=-1 mass=400 + -1.600000000000000e+01, 1.200000000000000e+01, // itest=248: ixxxxx#27 nsp=-1 mass=400 + -2.000000000000000e+01, -0.000000000000000e+00, // itest=248: ixxxxx#27 nsp=-1 mass=400 + 7.999999999999999e+00, -5.999999999999999e+00, // itest=248: ixxxxx#27 nsp=-1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=248: ixxxxx#27 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=249: ixxxxx#27 nsp=-1 mass=-400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=249: ixxxxx#27 nsp=-1 mass=-400 + -1.600000000000000e+01, 1.200000000000000e+01, // itest=249: ixxxxx#27 nsp=-1 mass=-400 + -2.000000000000000e+01, -0.000000000000000e+00, // itest=249: ixxxxx#27 nsp=-1 mass=-400 + -7.999999999999999e+00, 5.999999999999999e+00, // itest=249: ixxxxx#27 nsp=-1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00 } ); // itest=249: ixxxxx#27 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=250: vxxxxx#27 nsp=-1 mass=400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=250: vxxxxx#27 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=250: vxxxxx#27 nsp=-1 mass=400 + 0.000000000000000e+00, -4.242640687119285e-01, // itest=250: vxxxxx#27 nsp=-1 mass=400 + 0.000000000000000e+00, 5.656854249492381e-01, // itest=250: vxxxxx#27 nsp=-1 mass=400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=250: vxxxxx#27 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=251: vxxxxx#27 nsp=-1 mass=-400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=251: vxxxxx#27 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=251: vxxxxx#27 nsp=-1 mass=-400 + 0.000000000000000e+00, -4.242640687119285e-01, // itest=251: vxxxxx#27 nsp=-1 mass=-400 + 0.000000000000000e+00, 5.656854249492381e-01, // itest=251: vxxxxx#27 nsp=-1 mass=-400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=251: vxxxxx#27 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=252: sxxxxx#27 nsp=-1 mass=400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=252: sxxxxx#27 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=252: sxxxxx#27 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=252: sxxxxx#27 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=252: sxxxxx#27 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=252: sxxxxx#27 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=253: sxxxxx#27 nsp=-1 mass=-400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=253: sxxxxx#27 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=253: sxxxxx#27 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=253: sxxxxx#27 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=253: sxxxxx#27 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=253: sxxxxx#27 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=254: oxxxxx#27 nsp=-1 mass=400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=254: oxxxxx#27 nsp=-1 mass=400 + 7.999999999999999e+00, 5.999999999999999e+00, // itest=254: oxxxxx#27 nsp=-1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=254: oxxxxx#27 nsp=-1 mass=400 + -1.600000000000000e+01, -1.200000000000000e+01, // itest=254: oxxxxx#27 nsp=-1 mass=400 + -2.000000000000000e+01, -0.000000000000000e+00 } ); // itest=254: oxxxxx#27 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=255: oxxxxx#27 nsp=-1 mass=-400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=255: oxxxxx#27 nsp=-1 mass=-400 + -7.999999999999999e+00, -5.999999999999999e+00, // itest=255: oxxxxx#27 nsp=-1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00, // itest=255: oxxxxx#27 nsp=-1 mass=-400 + -1.600000000000000e+01, -1.200000000000000e+01, // itest=255: oxxxxx#27 nsp=-1 mass=-400 + -2.000000000000000e+01, -0.000000000000000e+00 } ); // itest=255: oxxxxx#27 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=256: ixxxxx#28 nsp=-1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=256: ixxxxx#28 nsp=-1 mass=400 + 9.863939238321439e+00, -1.052153518754287e+01, // itest=256: ixxxxx#28 nsp=-1 mass=400 + -2.433105012119288e+01, -0.000000000000000e+00, // itest=256: ixxxxx#28 nsp=-1 mass=400 + -4.931969619160719e+00, 5.260767593771432e+00, // itest=256: ixxxxx#28 nsp=-1 mass=400 + 1.216552506059644e+01, 0.000000000000000e+00 } ); // itest=256: ixxxxx#28 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=257: ixxxxx#28 nsp=-1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=257: ixxxxx#28 nsp=-1 mass=-400 + 9.863939238321439e+00, -1.052153518754287e+01, // itest=257: ixxxxx#28 nsp=-1 mass=-400 + -2.433105012119288e+01, -0.000000000000000e+00, // itest=257: ixxxxx#28 nsp=-1 mass=-400 + 4.931969619160719e+00, -5.260767593771432e+00, // itest=257: ixxxxx#28 nsp=-1 mass=-400 + -1.216552506059644e+01, -0.000000000000000e+00 } ); // itest=257: ixxxxx#28 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=258: vxxxxx#28 nsp=-1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=258: vxxxxx#28 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=258: vxxxxx#28 nsp=-1 mass=400 + -2.321373168788980e-01, 5.158607041753289e-01, // itest=258: vxxxxx#28 nsp=-1 mass=400 + -2.476131380041579e-01, -4.836194101643708e-01, // itest=258: vxxxxx#28 nsp=-1 mass=400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=258: vxxxxx#28 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=259: vxxxxx#28 nsp=-1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=259: vxxxxx#28 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=259: vxxxxx#28 nsp=-1 mass=-400 + -2.321373168788980e-01, 5.158607041753289e-01, // itest=259: vxxxxx#28 nsp=-1 mass=-400 + -2.476131380041579e-01, -4.836194101643708e-01, // itest=259: vxxxxx#28 nsp=-1 mass=-400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=259: vxxxxx#28 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=260: sxxxxx#28 nsp=-1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=260: sxxxxx#28 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=260: sxxxxx#28 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=260: sxxxxx#28 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=260: sxxxxx#28 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=260: sxxxxx#28 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=261: sxxxxx#28 nsp=-1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=261: sxxxxx#28 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=261: sxxxxx#28 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=261: sxxxxx#28 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=261: sxxxxx#28 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=261: sxxxxx#28 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=262: oxxxxx#28 nsp=-1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=262: oxxxxx#28 nsp=-1 mass=400 + -4.931969619160719e+00, -5.260767593771432e+00, // itest=262: oxxxxx#28 nsp=-1 mass=400 + 1.216552506059644e+01, 0.000000000000000e+00, // itest=262: oxxxxx#28 nsp=-1 mass=400 + 9.863939238321439e+00, 1.052153518754287e+01, // itest=262: oxxxxx#28 nsp=-1 mass=400 + -2.433105012119288e+01, -0.000000000000000e+00 } ); // itest=262: oxxxxx#28 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=263: oxxxxx#28 nsp=-1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=263: oxxxxx#28 nsp=-1 mass=-400 + 4.931969619160719e+00, 5.260767593771432e+00, // itest=263: oxxxxx#28 nsp=-1 mass=-400 + -1.216552506059644e+01, -0.000000000000000e+00, // itest=263: oxxxxx#28 nsp=-1 mass=-400 + 9.863939238321439e+00, 1.052153518754287e+01, // itest=263: oxxxxx#28 nsp=-1 mass=-400 + -2.433105012119288e+01, -0.000000000000000e+00 } ); // itest=263: oxxxxx#28 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=264: ixxxxx#29 nsp=-1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=264: ixxxxx#29 nsp=-1 mass=400 + 1.664100588675688e+01, -1.775040627920733e+01, // itest=264: ixxxxx#29 nsp=-1 mass=400 + -1.442220510185596e+01, -0.000000000000000e+00, // itest=264: ixxxxx#29 nsp=-1 mass=400 + -8.320502943378436e+00, 8.875203139603666e+00, // itest=264: ixxxxx#29 nsp=-1 mass=400 + 7.211102550927978e+00, 0.000000000000000e+00 } ); // itest=264: ixxxxx#29 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=265: ixxxxx#29 nsp=-1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=265: ixxxxx#29 nsp=-1 mass=-400 + 1.664100588675688e+01, -1.775040627920733e+01, // itest=265: ixxxxx#29 nsp=-1 mass=-400 + -1.442220510185596e+01, -0.000000000000000e+00, // itest=265: ixxxxx#29 nsp=-1 mass=-400 + 8.320502943378436e+00, -8.875203139603666e+00, // itest=265: ixxxxx#29 nsp=-1 mass=-400 + -7.211102550927978e+00, -0.000000000000000e+00 } ); // itest=265: ixxxxx#29 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=266: vxxxxx#29 nsp=-1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=266: vxxxxx#29 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=266: vxxxxx#29 nsp=-1 mass=400 + 2.321373168788980e-01, 5.158607041753289e-01, // itest=266: vxxxxx#29 nsp=-1 mass=400 + 2.476131380041579e-01, -4.836194101643708e-01, // itest=266: vxxxxx#29 nsp=-1 mass=400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=266: vxxxxx#29 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=267: vxxxxx#29 nsp=-1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=267: vxxxxx#29 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=267: vxxxxx#29 nsp=-1 mass=-400 + 2.321373168788980e-01, 5.158607041753289e-01, // itest=267: vxxxxx#29 nsp=-1 mass=-400 + 2.476131380041579e-01, -4.836194101643708e-01, // itest=267: vxxxxx#29 nsp=-1 mass=-400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=267: vxxxxx#29 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=268: sxxxxx#29 nsp=-1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=268: sxxxxx#29 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=268: sxxxxx#29 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=268: sxxxxx#29 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=268: sxxxxx#29 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=268: sxxxxx#29 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=269: sxxxxx#29 nsp=-1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=269: sxxxxx#29 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=269: sxxxxx#29 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=269: sxxxxx#29 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=269: sxxxxx#29 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=269: sxxxxx#29 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=270: oxxxxx#29 nsp=-1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=270: oxxxxx#29 nsp=-1 mass=400 + -8.320502943378436e+00, -8.875203139603666e+00, // itest=270: oxxxxx#29 nsp=-1 mass=400 + 7.211102550927978e+00, 0.000000000000000e+00, // itest=270: oxxxxx#29 nsp=-1 mass=400 + 1.664100588675688e+01, 1.775040627920733e+01, // itest=270: oxxxxx#29 nsp=-1 mass=400 + -1.442220510185596e+01, -0.000000000000000e+00 } ); // itest=270: oxxxxx#29 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=271: oxxxxx#29 nsp=-1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=271: oxxxxx#29 nsp=-1 mass=-400 + 8.320502943378436e+00, 8.875203139603666e+00, // itest=271: oxxxxx#29 nsp=-1 mass=-400 + -7.211102550927978e+00, -0.000000000000000e+00, // itest=271: oxxxxx#29 nsp=-1 mass=-400 + 1.664100588675688e+01, 1.775040627920733e+01, // itest=271: oxxxxx#29 nsp=-1 mass=-400 + -1.442220510185596e+01, -0.000000000000000e+00 } ); // itest=271: oxxxxx#29 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=272: ixxxxx#30 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=272: ixxxxx#30 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=272: ixxxxx#30 nsp=-1 mass=500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=272: ixxxxx#30 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=272: ixxxxx#30 nsp=-1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=272: ixxxxx#30 nsp=-1 mass=500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=273: ixxxxx#30 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=273: ixxxxx#30 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=273: ixxxxx#30 nsp=-1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=273: ixxxxx#30 nsp=-1 mass=-500 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=273: ixxxxx#30 nsp=-1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=273: ixxxxx#30 nsp=-1 mass=-500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=274: vxxxxx#30 nsp=-1 mass=500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=274: vxxxxx#30 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=274: vxxxxx#30 nsp=-1 mass=500 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=274: vxxxxx#30 nsp=-1 mass=500 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=274: vxxxxx#30 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=274: vxxxxx#30 nsp=-1 mass=500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=275: vxxxxx#30 nsp=-1 mass=-500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=275: vxxxxx#30 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=275: vxxxxx#30 nsp=-1 mass=-500 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=275: vxxxxx#30 nsp=-1 mass=-500 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=275: vxxxxx#30 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=275: vxxxxx#30 nsp=-1 mass=-500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=276: sxxxxx#30 nsp=-1 mass=500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=276: sxxxxx#30 nsp=-1 mass=500 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=276: sxxxxx#30 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=276: sxxxxx#30 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=276: sxxxxx#30 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=276: sxxxxx#30 nsp=-1 mass=500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=277: sxxxxx#30 nsp=-1 mass=-500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=277: sxxxxx#30 nsp=-1 mass=-500 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=277: sxxxxx#30 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=277: sxxxxx#30 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=277: sxxxxx#30 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=277: sxxxxx#30 nsp=-1 mass=-500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=278: oxxxxx#30 nsp=-1 mass=500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=278: oxxxxx#30 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=278: oxxxxx#30 nsp=-1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=278: oxxxxx#30 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=278: oxxxxx#30 nsp=-1 mass=500 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=278: oxxxxx#30 nsp=-1 mass=500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=279: oxxxxx#30 nsp=-1 mass=-500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=279: oxxxxx#30 nsp=-1 mass=-500 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=279: oxxxxx#30 nsp=-1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=279: oxxxxx#30 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=279: oxxxxx#30 nsp=-1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=279: oxxxxx#30 nsp=-1 mass=-500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=280: ixxxxx#31 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=280: ixxxxx#31 nsp=-1 mass=400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=280: ixxxxx#31 nsp=-1 mass=400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=280: ixxxxx#31 nsp=-1 mass=400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=280: ixxxxx#31 nsp=-1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00 } ); // itest=280: ixxxxx#31 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=281: ixxxxx#31 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=281: ixxxxx#31 nsp=-1 mass=-400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=281: ixxxxx#31 nsp=-1 mass=-400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=281: ixxxxx#31 nsp=-1 mass=-400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=281: ixxxxx#31 nsp=-1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00 } ); // itest=281: ixxxxx#31 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=282: vxxxxx#31 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=282: vxxxxx#31 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=282: vxxxxx#31 nsp=-1 mass=400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=282: vxxxxx#31 nsp=-1 mass=400 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=282: vxxxxx#31 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=282: vxxxxx#31 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=283: vxxxxx#31 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=283: vxxxxx#31 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=283: vxxxxx#31 nsp=-1 mass=-400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=283: vxxxxx#31 nsp=-1 mass=-400 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=283: vxxxxx#31 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=283: vxxxxx#31 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=284: sxxxxx#31 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=284: sxxxxx#31 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=284: sxxxxx#31 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=284: sxxxxx#31 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=284: sxxxxx#31 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=284: sxxxxx#31 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=285: sxxxxx#31 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=285: sxxxxx#31 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=285: sxxxxx#31 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=285: sxxxxx#31 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=285: sxxxxx#31 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=285: sxxxxx#31 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=286: oxxxxx#31 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=286: oxxxxx#31 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=286: oxxxxx#31 nsp=-1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=286: oxxxxx#31 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=286: oxxxxx#31 nsp=-1 mass=400 + -2.828427124746190e+01, -0.000000000000000e+00 } ); // itest=286: oxxxxx#31 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=287: oxxxxx#31 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=287: oxxxxx#31 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=287: oxxxxx#31 nsp=-1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=287: oxxxxx#31 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=287: oxxxxx#31 nsp=-1 mass=-400 + -2.828427124746190e+01, -0.000000000000000e+00 } ); // itest=287: oxxxxx#31 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=288: ixxxxx#0 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=288: ixxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=288: ixxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=288: ixxxxx#0 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=288: ixxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=288: ixxxxx#0 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=289: ixxxxx#0 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=289: ixxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=289: ixxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=289: ixxxxx#0 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=289: ixxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=289: ixxxxx#0 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=290: ipzxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=290: ipzxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=290: ipzxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=290: ipzxxx#0 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=290: ipzxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=290: ipzxxx#0 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=291: vxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=291: vxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=291: vxxxxx#0 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=291: vxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=291: vxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=291: vxxxxx#0 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=292: vxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=292: vxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=292: vxxxxx#0 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=292: vxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=292: vxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=292: vxxxxx#0 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=293: sxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=293: sxxxxx#0 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=293: sxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=293: sxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=293: sxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=293: sxxxxx#0 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=294: sxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=294: sxxxxx#0 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=294: sxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=294: sxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=294: sxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=294: sxxxxx#0 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=295: oxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=295: oxxxxx#0 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=295: oxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=295: oxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=295: oxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=295: oxxxxx#0 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=296: oxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=296: oxxxxx#0 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=296: oxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=296: oxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=296: oxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=296: oxxxxx#0 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=297: opzxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=297: opzxxx#0 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=297: opzxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=297: opzxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=297: opzxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=297: opzxxx#0 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=298: ixxxxx#1 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=298: ixxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=298: ixxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=298: ixxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=298: ixxxxx#1 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=298: ixxxxx#1 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=299: ixxxxx#1 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=299: ixxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=299: ixxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=299: ixxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=299: ixxxxx#1 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=299: ixxxxx#1 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=300: imzxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=300: imzxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=300: imzxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=300: imzxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=300: imzxxx#1 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=300: imzxxx#1 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=301: vxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=301: vxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=301: vxxxxx#1 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=301: vxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=301: vxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=301: vxxxxx#1 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=302: vxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=302: vxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=302: vxxxxx#1 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=302: vxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=302: vxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=302: vxxxxx#1 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=303: sxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=303: sxxxxx#1 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=303: sxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=303: sxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=303: sxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=303: sxxxxx#1 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=304: sxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=304: sxxxxx#1 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=304: sxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=304: sxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=304: sxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=304: sxxxxx#1 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=305: oxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=305: oxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=305: oxxxxx#1 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=305: oxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=305: oxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=305: oxxxxx#1 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=306: oxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=306: oxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=306: oxxxxx#1 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=306: oxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=306: oxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=306: oxxxxx#1 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=307: omzxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=307: omzxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=307: omzxxx#1 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=307: omzxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=307: omzxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=307: omzxxx#1 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=308: ixxxxx#2 nsp=1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=308: ixxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=308: ixxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=308: ixxxxx#2 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=308: ixxxxx#2 nsp=1 mass=0 + 1.341640786499874e+01, 1.788854381999831e+01 } ); // itest=308: ixxxxx#2 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=309: ixxxxx#2 nsp=1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=309: ixxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=309: ixxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=309: ixxxxx#2 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=309: ixxxxx#2 nsp=1 mass=0 + 1.341640786499874e+01, 1.788854381999831e+01 } ); // itest=309: ixxxxx#2 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=310: ixzxxx#2 nsp=1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=310: ixzxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=310: ixzxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=310: ixzxxx#2 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=310: ixzxxx#2 nsp=1 mass=0 + 1.341640786499874e+01, 1.788854381999832e+01 } ); // itest=310: ixzxxx#2 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=311: vxxxxx#2 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=311: vxxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=311: vxxxxx#2 nsp=1 mass=0 + -0.000000000000000e+00, -5.656854249492381e-01, // itest=311: vxxxxx#2 nsp=1 mass=0 + -0.000000000000000e+00, 4.242640687119285e-01, // itest=311: vxxxxx#2 nsp=1 mass=0 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=311: vxxxxx#2 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=312: vxxxxx#2 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=312: vxxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=312: vxxxxx#2 nsp=1 mass=0 + -0.000000000000000e+00, -5.656854249492381e-01, // itest=312: vxxxxx#2 nsp=1 mass=0 + -0.000000000000000e+00, 4.242640687119285e-01, // itest=312: vxxxxx#2 nsp=1 mass=0 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=312: vxxxxx#2 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=313: sxxxxx#2 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=313: sxxxxx#2 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=313: sxxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=313: sxxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=313: sxxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=313: sxxxxx#2 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=314: sxxxxx#2 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=314: sxxxxx#2 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=314: sxxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=314: sxxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=314: sxxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=314: sxxxxx#2 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=315: oxxxxx#2 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=315: oxxxxx#2 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=315: oxxxxx#2 nsp=1 mass=0 + 1.341640786499874e+01, -1.788854381999831e+01, // itest=315: oxxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=315: oxxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=315: oxxxxx#2 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=316: oxxxxx#2 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=316: oxxxxx#2 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=316: oxxxxx#2 nsp=1 mass=0 + 1.341640786499874e+01, -1.788854381999831e+01, // itest=316: oxxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=316: oxxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=316: oxxxxx#2 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=317: oxzxxx#2 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=317: oxzxxx#2 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=317: oxzxxx#2 nsp=1 mass=0 + 1.341640786499874e+01, -1.788854381999832e+01, // itest=317: oxzxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=317: oxzxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=317: oxzxxx#2 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=318: ixxxxx#3 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=318: ixxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=318: ixxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=318: ixxxxx#3 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=318: ixxxxx#3 nsp=1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=318: ixxxxx#3 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=319: ixxxxx#3 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=319: ixxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=319: ixxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=319: ixxxxx#3 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=319: ixxxxx#3 nsp=1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=319: ixxxxx#3 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=320: ixzxxx#3 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=320: ixzxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=320: ixzxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=320: ixzxxx#3 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=320: ixzxxx#3 nsp=1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=320: ixzxxx#3 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=321: vxxxxx#3 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=321: vxxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=321: vxxxxx#3 nsp=1 mass=0 + -3.394112549695428e-01, -5.656854249492381e-01, // itest=321: vxxxxx#3 nsp=1 mass=0 + -4.525483399593904e-01, 4.242640687119285e-01, // itest=321: vxxxxx#3 nsp=1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=321: vxxxxx#3 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=322: vxxxxx#3 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=322: vxxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=322: vxxxxx#3 nsp=1 mass=0 + -3.394112549695428e-01, -5.656854249492381e-01, // itest=322: vxxxxx#3 nsp=1 mass=0 + -4.525483399593904e-01, 4.242640687119285e-01, // itest=322: vxxxxx#3 nsp=1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=322: vxxxxx#3 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=323: sxxxxx#3 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=323: sxxxxx#3 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=323: sxxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=323: sxxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=323: sxxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=323: sxxxxx#3 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=324: sxxxxx#3 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=324: sxxxxx#3 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=324: sxxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=324: sxxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=324: sxxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=324: sxxxxx#3 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=325: oxxxxx#3 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=325: oxxxxx#3 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=325: oxxxxx#3 nsp=1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=325: oxxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=325: oxxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=325: oxxxxx#3 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=326: oxxxxx#3 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=326: oxxxxx#3 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=326: oxxxxx#3 nsp=1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=326: oxxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=326: oxxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=326: oxxxxx#3 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=327: oxzxxx#3 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=327: oxzxxx#3 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=327: oxzxxx#3 nsp=1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=327: oxzxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=327: oxzxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=327: oxzxxx#3 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=328: ixxxxx#4 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=328: ixxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=328: ixxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=328: ixxxxx#4 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=328: ixxxxx#4 nsp=1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01 } ); // itest=328: ixxxxx#4 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=329: ixxxxx#4 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=329: ixxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=329: ixxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=329: ixxxxx#4 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=329: ixxxxx#4 nsp=1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01 } ); // itest=329: ixxxxx#4 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=330: ixzxxx#4 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=330: ixzxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=330: ixzxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=330: ixzxxx#4 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=330: ixzxxx#4 nsp=1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01 } ); // itest=330: ixzxxx#4 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=331: vxxxxx#4 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=331: vxxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=331: vxxxxx#4 nsp=1 mass=0 + 3.394112549695428e-01, -5.656854249492381e-01, // itest=331: vxxxxx#4 nsp=1 mass=0 + 4.525483399593904e-01, 4.242640687119285e-01, // itest=331: vxxxxx#4 nsp=1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=331: vxxxxx#4 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=332: vxxxxx#4 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=332: vxxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=332: vxxxxx#4 nsp=1 mass=0 + 3.394112549695428e-01, -5.656854249492381e-01, // itest=332: vxxxxx#4 nsp=1 mass=0 + 4.525483399593904e-01, 4.242640687119285e-01, // itest=332: vxxxxx#4 nsp=1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=332: vxxxxx#4 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=333: sxxxxx#4 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=333: sxxxxx#4 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=333: sxxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=333: sxxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=333: sxxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=333: sxxxxx#4 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=334: sxxxxx#4 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=334: sxxxxx#4 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=334: sxxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=334: sxxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=334: sxxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=334: sxxxxx#4 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=335: oxxxxx#4 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=335: oxxxxx#4 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=335: oxxxxx#4 nsp=1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=335: oxxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=335: oxxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=335: oxxxxx#4 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=336: oxxxxx#4 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=336: oxxxxx#4 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=336: oxxxxx#4 nsp=1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=336: oxxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=336: oxxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=336: oxxxxx#4 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=337: oxzxxx#4 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=337: oxzxxx#4 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=337: oxzxxx#4 nsp=1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=337: oxzxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=337: oxzxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=337: oxzxxx#4 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=338: ixxxxx#5 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=338: ixxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=338: ixxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=338: ixxxxx#5 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=338: ixxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=338: ixxxxx#5 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=339: ixxxxx#5 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=339: ixxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=339: ixxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=339: ixxxxx#5 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=339: ixxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=339: ixxxxx#5 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=340: ipzxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=340: ipzxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=340: ipzxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=340: ipzxxx#5 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=340: ipzxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=340: ipzxxx#5 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=341: vxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=341: vxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=341: vxxxxx#5 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=341: vxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=341: vxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=341: vxxxxx#5 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=342: vxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=342: vxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=342: vxxxxx#5 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=342: vxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=342: vxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=342: vxxxxx#5 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=343: sxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=343: sxxxxx#5 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=343: sxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=343: sxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=343: sxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=343: sxxxxx#5 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=344: sxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=344: sxxxxx#5 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=344: sxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=344: sxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=344: sxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=344: sxxxxx#5 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=345: oxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=345: oxxxxx#5 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=345: oxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=345: oxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=345: oxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=345: oxxxxx#5 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=346: oxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=346: oxxxxx#5 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=346: oxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=346: oxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=346: oxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=346: oxxxxx#5 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=347: opzxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=347: opzxxx#5 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=347: opzxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=347: opzxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=347: opzxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=347: opzxxx#5 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=348: ixxxxx#6 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=348: ixxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=348: ixxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=348: ixxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=348: ixxxxx#6 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=348: ixxxxx#6 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=349: ixxxxx#6 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=349: ixxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=349: ixxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=349: ixxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=349: ixxxxx#6 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=349: ixxxxx#6 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=350: imzxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=350: imzxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=350: imzxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=350: imzxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=350: imzxxx#6 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=350: imzxxx#6 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=351: vxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=351: vxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=351: vxxxxx#6 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=351: vxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=351: vxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=351: vxxxxx#6 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=352: vxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=352: vxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=352: vxxxxx#6 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=352: vxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=352: vxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=352: vxxxxx#6 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=353: sxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=353: sxxxxx#6 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=353: sxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=353: sxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=353: sxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=353: sxxxxx#6 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=354: sxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=354: sxxxxx#6 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=354: sxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=354: sxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=354: sxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=354: sxxxxx#6 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=355: oxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=355: oxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=355: oxxxxx#6 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=355: oxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=355: oxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=355: oxxxxx#6 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=356: oxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=356: oxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=356: oxxxxx#6 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=356: oxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=356: oxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=356: oxxxxx#6 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=357: omzxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=357: omzxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=357: omzxxx#6 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=357: omzxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=357: omzxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=357: omzxxx#6 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=358: ixxxxx#7 nsp=1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=358: ixxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=358: ixxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=358: ixxxxx#7 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=358: ixxxxx#7 nsp=1 mass=0 + 1.341640786499874e+01, 1.788854381999831e+01 } ); // itest=358: ixxxxx#7 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=359: ixxxxx#7 nsp=1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=359: ixxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=359: ixxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=359: ixxxxx#7 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=359: ixxxxx#7 nsp=1 mass=0 + 1.341640786499874e+01, 1.788854381999831e+01 } ); // itest=359: ixxxxx#7 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=360: ixzxxx#7 nsp=1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=360: ixzxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=360: ixzxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=360: ixzxxx#7 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=360: ixzxxx#7 nsp=1 mass=0 + 1.341640786499874e+01, 1.788854381999832e+01 } ); // itest=360: ixzxxx#7 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=361: vxxxxx#7 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=361: vxxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=361: vxxxxx#7 nsp=1 mass=0 + -0.000000000000000e+00, -5.656854249492381e-01, // itest=361: vxxxxx#7 nsp=1 mass=0 + -0.000000000000000e+00, 4.242640687119285e-01, // itest=361: vxxxxx#7 nsp=1 mass=0 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=361: vxxxxx#7 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=362: vxxxxx#7 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=362: vxxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=362: vxxxxx#7 nsp=1 mass=0 + -0.000000000000000e+00, -5.656854249492381e-01, // itest=362: vxxxxx#7 nsp=1 mass=0 + -0.000000000000000e+00, 4.242640687119285e-01, // itest=362: vxxxxx#7 nsp=1 mass=0 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=362: vxxxxx#7 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=363: sxxxxx#7 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=363: sxxxxx#7 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=363: sxxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=363: sxxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=363: sxxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=363: sxxxxx#7 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=364: sxxxxx#7 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=364: sxxxxx#7 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=364: sxxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=364: sxxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=364: sxxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=364: sxxxxx#7 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=365: oxxxxx#7 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=365: oxxxxx#7 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=365: oxxxxx#7 nsp=1 mass=0 + 1.341640786499874e+01, -1.788854381999831e+01, // itest=365: oxxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=365: oxxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=365: oxxxxx#7 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=366: oxxxxx#7 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=366: oxxxxx#7 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=366: oxxxxx#7 nsp=1 mass=0 + 1.341640786499874e+01, -1.788854381999831e+01, // itest=366: oxxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=366: oxxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=366: oxxxxx#7 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=367: oxzxxx#7 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=367: oxzxxx#7 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=367: oxzxxx#7 nsp=1 mass=0 + 1.341640786499874e+01, -1.788854381999832e+01, // itest=367: oxzxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=367: oxzxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=367: oxzxxx#7 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=368: ixxxxx#8 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=368: ixxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=368: ixxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=368: ixxxxx#8 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=368: ixxxxx#8 nsp=1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=368: ixxxxx#8 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=369: ixxxxx#8 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=369: ixxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=369: ixxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=369: ixxxxx#8 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=369: ixxxxx#8 nsp=1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=369: ixxxxx#8 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=370: ixzxxx#8 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=370: ixzxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=370: ixzxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=370: ixzxxx#8 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=370: ixzxxx#8 nsp=1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=370: ixzxxx#8 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=371: vxxxxx#8 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=371: vxxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=371: vxxxxx#8 nsp=1 mass=0 + -3.394112549695428e-01, -5.656854249492381e-01, // itest=371: vxxxxx#8 nsp=1 mass=0 + -4.525483399593904e-01, 4.242640687119285e-01, // itest=371: vxxxxx#8 nsp=1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=371: vxxxxx#8 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=372: vxxxxx#8 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=372: vxxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=372: vxxxxx#8 nsp=1 mass=0 + -3.394112549695428e-01, -5.656854249492381e-01, // itest=372: vxxxxx#8 nsp=1 mass=0 + -4.525483399593904e-01, 4.242640687119285e-01, // itest=372: vxxxxx#8 nsp=1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=372: vxxxxx#8 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=373: sxxxxx#8 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=373: sxxxxx#8 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=373: sxxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=373: sxxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=373: sxxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=373: sxxxxx#8 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=374: sxxxxx#8 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=374: sxxxxx#8 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=374: sxxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=374: sxxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=374: sxxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=374: sxxxxx#8 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=375: oxxxxx#8 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=375: oxxxxx#8 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=375: oxxxxx#8 nsp=1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=375: oxxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=375: oxxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=375: oxxxxx#8 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=376: oxxxxx#8 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=376: oxxxxx#8 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=376: oxxxxx#8 nsp=1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=376: oxxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=376: oxxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=376: oxxxxx#8 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=377: oxzxxx#8 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=377: oxzxxx#8 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=377: oxzxxx#8 nsp=1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=377: oxzxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=377: oxzxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=377: oxzxxx#8 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=378: ixxxxx#9 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=378: ixxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=378: ixxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=378: ixxxxx#9 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=378: ixxxxx#9 nsp=1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01 } ); // itest=378: ixxxxx#9 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=379: ixxxxx#9 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=379: ixxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=379: ixxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=379: ixxxxx#9 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=379: ixxxxx#9 nsp=1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01 } ); // itest=379: ixxxxx#9 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=380: ixzxxx#9 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=380: ixzxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=380: ixzxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=380: ixzxxx#9 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=380: ixzxxx#9 nsp=1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01 } ); // itest=380: ixzxxx#9 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=381: vxxxxx#9 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=381: vxxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=381: vxxxxx#9 nsp=1 mass=0 + 3.394112549695428e-01, -5.656854249492381e-01, // itest=381: vxxxxx#9 nsp=1 mass=0 + 4.525483399593904e-01, 4.242640687119285e-01, // itest=381: vxxxxx#9 nsp=1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=381: vxxxxx#9 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=382: vxxxxx#9 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=382: vxxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=382: vxxxxx#9 nsp=1 mass=0 + 3.394112549695428e-01, -5.656854249492381e-01, // itest=382: vxxxxx#9 nsp=1 mass=0 + 4.525483399593904e-01, 4.242640687119285e-01, // itest=382: vxxxxx#9 nsp=1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=382: vxxxxx#9 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=383: sxxxxx#9 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=383: sxxxxx#9 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=383: sxxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=383: sxxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=383: sxxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=383: sxxxxx#9 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=384: sxxxxx#9 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=384: sxxxxx#9 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=384: sxxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=384: sxxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=384: sxxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=384: sxxxxx#9 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=385: oxxxxx#9 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=385: oxxxxx#9 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=385: oxxxxx#9 nsp=1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=385: oxxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=385: oxxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=385: oxxxxx#9 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=386: oxxxxx#9 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=386: oxxxxx#9 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=386: oxxxxx#9 nsp=1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=386: oxxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=386: oxxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=386: oxxxxx#9 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=387: oxzxxx#9 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=387: oxzxxx#9 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=387: oxzxxx#9 nsp=1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=387: oxzxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=387: oxzxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=387: oxzxxx#9 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=388: ixxxxx#10 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=388: ixxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=388: ixxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=388: ixxxxx#10 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=388: ixxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=388: ixxxxx#10 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=389: ixxxxx#10 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=389: ixxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=389: ixxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=389: ixxxxx#10 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=389: ixxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=389: ixxxxx#10 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=390: ipzxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=390: ipzxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=390: ipzxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=390: ipzxxx#10 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=390: ipzxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=390: ipzxxx#10 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=391: vxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=391: vxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=391: vxxxxx#10 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=391: vxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=391: vxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=391: vxxxxx#10 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=392: vxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=392: vxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=392: vxxxxx#10 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=392: vxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=392: vxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=392: vxxxxx#10 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=393: sxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=393: sxxxxx#10 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=393: sxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=393: sxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=393: sxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=393: sxxxxx#10 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=394: sxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=394: sxxxxx#10 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=394: sxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=394: sxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=394: sxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=394: sxxxxx#10 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=395: oxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=395: oxxxxx#10 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=395: oxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=395: oxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=395: oxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=395: oxxxxx#10 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=396: oxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=396: oxxxxx#10 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=396: oxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=396: oxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=396: oxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=396: oxxxxx#10 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=397: opzxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=397: opzxxx#10 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=397: opzxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=397: opzxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=397: opzxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=397: opzxxx#10 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=398: ixxxxx#11 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=398: ixxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=398: ixxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=398: ixxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=398: ixxxxx#11 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=398: ixxxxx#11 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=399: ixxxxx#11 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=399: ixxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=399: ixxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=399: ixxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=399: ixxxxx#11 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=399: ixxxxx#11 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=400: imzxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=400: imzxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=400: imzxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=400: imzxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=400: imzxxx#11 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=400: imzxxx#11 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=401: vxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=401: vxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=401: vxxxxx#11 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=401: vxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=401: vxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=401: vxxxxx#11 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=402: vxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=402: vxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=402: vxxxxx#11 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=402: vxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=402: vxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=402: vxxxxx#11 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=403: sxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=403: sxxxxx#11 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=403: sxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=403: sxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=403: sxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=403: sxxxxx#11 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=404: sxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=404: sxxxxx#11 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=404: sxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=404: sxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=404: sxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=404: sxxxxx#11 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=405: oxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=405: oxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=405: oxxxxx#11 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=405: oxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=405: oxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=405: oxxxxx#11 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=406: oxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=406: oxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=406: oxxxxx#11 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=406: oxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=406: oxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=406: oxxxxx#11 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=407: omzxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=407: omzxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=407: omzxxx#11 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=407: omzxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=407: omzxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=407: omzxxx#11 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=408: ixxxxx#12 nsp=1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=408: ixxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=408: ixxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=408: ixxxxx#12 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=408: ixxxxx#12 nsp=1 mass=0 + 1.341640786499874e+01, 1.788854381999831e+01 } ); // itest=408: ixxxxx#12 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=409: ixxxxx#12 nsp=1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=409: ixxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=409: ixxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=409: ixxxxx#12 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=409: ixxxxx#12 nsp=1 mass=0 + 1.341640786499874e+01, 1.788854381999831e+01 } ); // itest=409: ixxxxx#12 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=410: ixzxxx#12 nsp=1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=410: ixzxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=410: ixzxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=410: ixzxxx#12 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=410: ixzxxx#12 nsp=1 mass=0 + 1.341640786499874e+01, 1.788854381999832e+01 } ); // itest=410: ixzxxx#12 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=411: vxxxxx#12 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=411: vxxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=411: vxxxxx#12 nsp=1 mass=0 + -0.000000000000000e+00, -5.656854249492381e-01, // itest=411: vxxxxx#12 nsp=1 mass=0 + -0.000000000000000e+00, 4.242640687119285e-01, // itest=411: vxxxxx#12 nsp=1 mass=0 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=411: vxxxxx#12 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=412: vxxxxx#12 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=412: vxxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=412: vxxxxx#12 nsp=1 mass=0 + -0.000000000000000e+00, -5.656854249492381e-01, // itest=412: vxxxxx#12 nsp=1 mass=0 + -0.000000000000000e+00, 4.242640687119285e-01, // itest=412: vxxxxx#12 nsp=1 mass=0 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=412: vxxxxx#12 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=413: sxxxxx#12 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=413: sxxxxx#12 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=413: sxxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=413: sxxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=413: sxxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=413: sxxxxx#12 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=414: sxxxxx#12 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=414: sxxxxx#12 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=414: sxxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=414: sxxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=414: sxxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=414: sxxxxx#12 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=415: oxxxxx#12 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=415: oxxxxx#12 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=415: oxxxxx#12 nsp=1 mass=0 + 1.341640786499874e+01, -1.788854381999831e+01, // itest=415: oxxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=415: oxxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=415: oxxxxx#12 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=416: oxxxxx#12 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=416: oxxxxx#12 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=416: oxxxxx#12 nsp=1 mass=0 + 1.341640786499874e+01, -1.788854381999831e+01, // itest=416: oxxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=416: oxxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=416: oxxxxx#12 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=417: oxzxxx#12 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=417: oxzxxx#12 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=417: oxzxxx#12 nsp=1 mass=0 + 1.341640786499874e+01, -1.788854381999832e+01, // itest=417: oxzxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=417: oxzxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=417: oxzxxx#12 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=418: ixxxxx#13 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=418: ixxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=418: ixxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=418: ixxxxx#13 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=418: ixxxxx#13 nsp=1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=418: ixxxxx#13 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=419: ixxxxx#13 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=419: ixxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=419: ixxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=419: ixxxxx#13 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=419: ixxxxx#13 nsp=1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=419: ixxxxx#13 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=420: ixzxxx#13 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=420: ixzxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=420: ixzxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=420: ixzxxx#13 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=420: ixzxxx#13 nsp=1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=420: ixzxxx#13 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=421: vxxxxx#13 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=421: vxxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=421: vxxxxx#13 nsp=1 mass=0 + -3.394112549695428e-01, -5.656854249492381e-01, // itest=421: vxxxxx#13 nsp=1 mass=0 + -4.525483399593904e-01, 4.242640687119285e-01, // itest=421: vxxxxx#13 nsp=1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=421: vxxxxx#13 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=422: vxxxxx#13 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=422: vxxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=422: vxxxxx#13 nsp=1 mass=0 + -3.394112549695428e-01, -5.656854249492381e-01, // itest=422: vxxxxx#13 nsp=1 mass=0 + -4.525483399593904e-01, 4.242640687119285e-01, // itest=422: vxxxxx#13 nsp=1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=422: vxxxxx#13 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=423: sxxxxx#13 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=423: sxxxxx#13 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=423: sxxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=423: sxxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=423: sxxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=423: sxxxxx#13 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=424: sxxxxx#13 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=424: sxxxxx#13 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=424: sxxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=424: sxxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=424: sxxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=424: sxxxxx#13 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=425: oxxxxx#13 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=425: oxxxxx#13 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=425: oxxxxx#13 nsp=1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=425: oxxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=425: oxxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=425: oxxxxx#13 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=426: oxxxxx#13 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=426: oxxxxx#13 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=426: oxxxxx#13 nsp=1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=426: oxxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=426: oxxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=426: oxxxxx#13 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=427: oxzxxx#13 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=427: oxzxxx#13 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=427: oxzxxx#13 nsp=1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=427: oxzxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=427: oxzxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=427: oxzxxx#13 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=428: ixxxxx#14 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=428: ixxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=428: ixxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=428: ixxxxx#14 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=428: ixxxxx#14 nsp=1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01 } ); // itest=428: ixxxxx#14 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=429: ixxxxx#14 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=429: ixxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=429: ixxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=429: ixxxxx#14 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=429: ixxxxx#14 nsp=1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01 } ); // itest=429: ixxxxx#14 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=430: ixzxxx#14 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=430: ixzxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=430: ixzxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=430: ixzxxx#14 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=430: ixzxxx#14 nsp=1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01 } ); // itest=430: ixzxxx#14 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=431: vxxxxx#14 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=431: vxxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=431: vxxxxx#14 nsp=1 mass=0 + 3.394112549695428e-01, -5.656854249492381e-01, // itest=431: vxxxxx#14 nsp=1 mass=0 + 4.525483399593904e-01, 4.242640687119285e-01, // itest=431: vxxxxx#14 nsp=1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=431: vxxxxx#14 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=432: vxxxxx#14 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=432: vxxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=432: vxxxxx#14 nsp=1 mass=0 + 3.394112549695428e-01, -5.656854249492381e-01, // itest=432: vxxxxx#14 nsp=1 mass=0 + 4.525483399593904e-01, 4.242640687119285e-01, // itest=432: vxxxxx#14 nsp=1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=432: vxxxxx#14 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=433: sxxxxx#14 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=433: sxxxxx#14 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=433: sxxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=433: sxxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=433: sxxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=433: sxxxxx#14 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=434: sxxxxx#14 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=434: sxxxxx#14 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=434: sxxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=434: sxxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=434: sxxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=434: sxxxxx#14 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=435: oxxxxx#14 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=435: oxxxxx#14 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=435: oxxxxx#14 nsp=1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=435: oxxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=435: oxxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=435: oxxxxx#14 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=436: oxxxxx#14 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=436: oxxxxx#14 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=436: oxxxxx#14 nsp=1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=436: oxxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=436: oxxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=436: oxxxxx#14 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=437: oxzxxx#14 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=437: oxzxxx#14 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=437: oxzxxx#14 nsp=1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=437: oxzxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=437: oxzxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=437: oxzxxx#14 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=438: ixxxxx#15 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=438: ixxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=438: ixxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=438: ixxxxx#15 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=438: ixxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=438: ixxxxx#15 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=439: ixxxxx#15 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=439: ixxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=439: ixxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=439: ixxxxx#15 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=439: ixxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=439: ixxxxx#15 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=440: ipzxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=440: ipzxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=440: ipzxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=440: ipzxxx#15 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=440: ipzxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=440: ipzxxx#15 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=441: vxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=441: vxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=441: vxxxxx#15 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=441: vxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=441: vxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=441: vxxxxx#15 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=442: vxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=442: vxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=442: vxxxxx#15 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=442: vxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=442: vxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=442: vxxxxx#15 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=443: sxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=443: sxxxxx#15 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=443: sxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=443: sxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=443: sxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=443: sxxxxx#15 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=444: sxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=444: sxxxxx#15 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=444: sxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=444: sxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=444: sxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=444: sxxxxx#15 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=445: oxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=445: oxxxxx#15 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=445: oxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=445: oxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=445: oxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=445: oxxxxx#15 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=446: oxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=446: oxxxxx#15 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=446: oxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=446: oxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=446: oxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=446: oxxxxx#15 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=447: opzxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=447: opzxxx#15 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=447: opzxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=447: opzxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=447: opzxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=447: opzxxx#15 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=448: ixxxxx#16 nsp=1 mass=500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=448: ixxxxx#16 nsp=1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=448: ixxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=448: ixxxxx#16 nsp=1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=448: ixxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=448: ixxxxx#16 nsp=1 mass=500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=449: ixxxxx#16 nsp=1 mass=-500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=449: ixxxxx#16 nsp=1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=449: ixxxxx#16 nsp=1 mass=-500 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=449: ixxxxx#16 nsp=1 mass=-500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=449: ixxxxx#16 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=449: ixxxxx#16 nsp=1 mass=-500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=450: vxxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=450: vxxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=450: vxxxxx#16 nsp=1 mass=500 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=450: vxxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=450: vxxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=450: vxxxxx#16 nsp=1 mass=500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=451: vxxxxx#16 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=451: vxxxxx#16 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=451: vxxxxx#16 nsp=1 mass=-500 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=451: vxxxxx#16 nsp=1 mass=-500 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=451: vxxxxx#16 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=451: vxxxxx#16 nsp=1 mass=-500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=452: sxxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=452: sxxxxx#16 nsp=1 mass=500 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=452: sxxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=452: sxxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=452: sxxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=452: sxxxxx#16 nsp=1 mass=500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=453: sxxxxx#16 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=453: sxxxxx#16 nsp=1 mass=-500 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=453: sxxxxx#16 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=453: sxxxxx#16 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=453: sxxxxx#16 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=453: sxxxxx#16 nsp=1 mass=-500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=454: oxxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=454: oxxxxx#16 nsp=1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=454: oxxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=454: oxxxxx#16 nsp=1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=454: oxxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=454: oxxxxx#16 nsp=1 mass=500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=455: oxxxxx#16 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=455: oxxxxx#16 nsp=1 mass=-500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=455: oxxxxx#16 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=455: oxxxxx#16 nsp=1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=455: oxxxxx#16 nsp=1 mass=-500 + -0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=455: oxxxxx#16 nsp=1 mass=-500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=456: ixxxxx#17 nsp=1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=456: ixxxxx#17 nsp=1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=456: ixxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=456: ixxxxx#17 nsp=1 mass=400 + 2.828427124746190e+01, 0.000000000000000e+00, // itest=456: ixxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=456: ixxxxx#17 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=457: ixxxxx#17 nsp=1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=457: ixxxxx#17 nsp=1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=457: ixxxxx#17 nsp=1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=457: ixxxxx#17 nsp=1 mass=-400 + 2.828427124746190e+01, 0.000000000000000e+00, // itest=457: ixxxxx#17 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=457: ixxxxx#17 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=458: vxxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=458: vxxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=458: vxxxxx#17 nsp=1 mass=400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=458: vxxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=458: vxxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=458: vxxxxx#17 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=459: vxxxxx#17 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=459: vxxxxx#17 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=459: vxxxxx#17 nsp=1 mass=-400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=459: vxxxxx#17 nsp=1 mass=-400 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=459: vxxxxx#17 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=459: vxxxxx#17 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=460: sxxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=460: sxxxxx#17 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=460: sxxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=460: sxxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=460: sxxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=460: sxxxxx#17 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=461: sxxxxx#17 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=461: sxxxxx#17 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=461: sxxxxx#17 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=461: sxxxxx#17 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=461: sxxxxx#17 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=461: sxxxxx#17 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=462: oxxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=462: oxxxxx#17 nsp=1 mass=400 + 2.828427124746190e+01, 0.000000000000000e+00, // itest=462: oxxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=462: oxxxxx#17 nsp=1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=462: oxxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=462: oxxxxx#17 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=463: oxxxxx#17 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=463: oxxxxx#17 nsp=1 mass=-400 + 2.828427124746190e+01, 0.000000000000000e+00, // itest=463: oxxxxx#17 nsp=1 mass=-400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=463: oxxxxx#17 nsp=1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=463: oxxxxx#17 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=463: oxxxxx#17 nsp=1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=464: ixxxxx#18 nsp=1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=464: ixxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=464: ixxxxx#18 nsp=1 mass=400 + -1.414213562373095e+01, 0.000000000000000e+00, // itest=464: ixxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=464: ixxxxx#18 nsp=1 mass=400 + -2.828427124746190e+01, 0.000000000000000e+00 } ); // itest=464: ixxxxx#18 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=465: ixxxxx#18 nsp=1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=465: ixxxxx#18 nsp=1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=465: ixxxxx#18 nsp=1 mass=-400 + 1.414213562373095e+01, -0.000000000000000e+00, // itest=465: ixxxxx#18 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=465: ixxxxx#18 nsp=1 mass=-400 + -2.828427124746190e+01, 0.000000000000000e+00 } ); // itest=465: ixxxxx#18 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=466: vxxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=466: vxxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=466: vxxxxx#18 nsp=1 mass=400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=466: vxxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=466: vxxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=466: vxxxxx#18 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=467: vxxxxx#18 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=467: vxxxxx#18 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=467: vxxxxx#18 nsp=1 mass=-400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=467: vxxxxx#18 nsp=1 mass=-400 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=467: vxxxxx#18 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=467: vxxxxx#18 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=468: sxxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=468: sxxxxx#18 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=468: sxxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=468: sxxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=468: sxxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=468: sxxxxx#18 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=469: sxxxxx#18 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=469: sxxxxx#18 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=469: sxxxxx#18 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=469: sxxxxx#18 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=469: sxxxxx#18 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=469: sxxxxx#18 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=470: oxxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=470: oxxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=470: oxxxxx#18 nsp=1 mass=400 + -2.828427124746190e+01, 0.000000000000000e+00, // itest=470: oxxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=470: oxxxxx#18 nsp=1 mass=400 + -1.414213562373095e+01, 0.000000000000000e+00 } ); // itest=470: oxxxxx#18 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=471: oxxxxx#18 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=471: oxxxxx#18 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=471: oxxxxx#18 nsp=1 mass=-400 + -2.828427124746190e+01, 0.000000000000000e+00, // itest=471: oxxxxx#18 nsp=1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=471: oxxxxx#18 nsp=1 mass=-400 + 1.414213562373095e+01, -0.000000000000000e+00 } ); // itest=471: oxxxxx#18 nsp=1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=472: ixxxxx#19 nsp=1 mass=400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=472: ixxxxx#19 nsp=1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=472: ixxxxx#19 nsp=1 mass=400 + 5.999999999999999e+00, 7.999999999999999e+00, // itest=472: ixxxxx#19 nsp=1 mass=400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=472: ixxxxx#19 nsp=1 mass=400 + 1.200000000000000e+01, 1.600000000000000e+01 } ); // itest=472: ixxxxx#19 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=473: ixxxxx#19 nsp=1 mass=-400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=473: ixxxxx#19 nsp=1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00, // itest=473: ixxxxx#19 nsp=1 mass=-400 + -5.999999999999999e+00, -7.999999999999999e+00, // itest=473: ixxxxx#19 nsp=1 mass=-400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=473: ixxxxx#19 nsp=1 mass=-400 + 1.200000000000000e+01, 1.600000000000000e+01 } ); // itest=473: ixxxxx#19 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=474: vxxxxx#19 nsp=1 mass=400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=474: vxxxxx#19 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=474: vxxxxx#19 nsp=1 mass=400 + 0.000000000000000e+00, -5.656854249492381e-01, // itest=474: vxxxxx#19 nsp=1 mass=400 + 0.000000000000000e+00, 4.242640687119285e-01, // itest=474: vxxxxx#19 nsp=1 mass=400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=474: vxxxxx#19 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=475: vxxxxx#19 nsp=1 mass=-400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=475: vxxxxx#19 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=475: vxxxxx#19 nsp=1 mass=-400 + -0.000000000000000e+00, -5.656854249492381e-01, // itest=475: vxxxxx#19 nsp=1 mass=-400 + -0.000000000000000e+00, 4.242640687119285e-01, // itest=475: vxxxxx#19 nsp=1 mass=-400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=475: vxxxxx#19 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=476: sxxxxx#19 nsp=1 mass=400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=476: sxxxxx#19 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=476: sxxxxx#19 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=476: sxxxxx#19 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=476: sxxxxx#19 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=476: sxxxxx#19 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=477: sxxxxx#19 nsp=1 mass=-400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=477: sxxxxx#19 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=477: sxxxxx#19 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=477: sxxxxx#19 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=477: sxxxxx#19 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=477: sxxxxx#19 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=478: oxxxxx#19 nsp=1 mass=400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=478: oxxxxx#19 nsp=1 mass=400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=478: oxxxxx#19 nsp=1 mass=400 + 1.200000000000000e+01, -1.600000000000000e+01, // itest=478: oxxxxx#19 nsp=1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=478: oxxxxx#19 nsp=1 mass=400 + 5.999999999999999e+00, -7.999999999999999e+00 } ); // itest=478: oxxxxx#19 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=479: oxxxxx#19 nsp=1 mass=-400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=479: oxxxxx#19 nsp=1 mass=-400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=479: oxxxxx#19 nsp=1 mass=-400 + 1.200000000000000e+01, -1.600000000000000e+01, // itest=479: oxxxxx#19 nsp=1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00, // itest=479: oxxxxx#19 nsp=1 mass=-400 + -5.999999999999999e+00, 7.999999999999999e+00 } ); // itest=479: oxxxxx#19 nsp=1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=480: ixxxxx#20 nsp=1 mass=400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=480: ixxxxx#20 nsp=1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=480: ixxxxx#20 nsp=1 mass=400 + -7.999999999999999e+00, -5.999999999999999e+00, // itest=480: ixxxxx#20 nsp=1 mass=400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=480: ixxxxx#20 nsp=1 mass=400 + -1.600000000000000e+01, -1.200000000000000e+01 } ); // itest=480: ixxxxx#20 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=481: ixxxxx#20 nsp=1 mass=-400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=481: ixxxxx#20 nsp=1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00, // itest=481: ixxxxx#20 nsp=1 mass=-400 + 7.999999999999999e+00, 5.999999999999999e+00, // itest=481: ixxxxx#20 nsp=1 mass=-400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=481: ixxxxx#20 nsp=1 mass=-400 + -1.600000000000000e+01, -1.200000000000000e+01 } ); // itest=481: ixxxxx#20 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=482: vxxxxx#20 nsp=1 mass=400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=482: vxxxxx#20 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=482: vxxxxx#20 nsp=1 mass=400 + 0.000000000000000e+00, 4.242640687119285e-01, // itest=482: vxxxxx#20 nsp=1 mass=400 + 0.000000000000000e+00, -5.656854249492381e-01, // itest=482: vxxxxx#20 nsp=1 mass=400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=482: vxxxxx#20 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=483: vxxxxx#20 nsp=1 mass=-400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=483: vxxxxx#20 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=483: vxxxxx#20 nsp=1 mass=-400 + 0.000000000000000e+00, 4.242640687119285e-01, // itest=483: vxxxxx#20 nsp=1 mass=-400 + 0.000000000000000e+00, -5.656854249492381e-01, // itest=483: vxxxxx#20 nsp=1 mass=-400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=483: vxxxxx#20 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=484: sxxxxx#20 nsp=1 mass=400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=484: sxxxxx#20 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=484: sxxxxx#20 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=484: sxxxxx#20 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=484: sxxxxx#20 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=484: sxxxxx#20 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=485: sxxxxx#20 nsp=1 mass=-400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=485: sxxxxx#20 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=485: sxxxxx#20 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=485: sxxxxx#20 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=485: sxxxxx#20 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=485: sxxxxx#20 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=486: oxxxxx#20 nsp=1 mass=400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=486: oxxxxx#20 nsp=1 mass=400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=486: oxxxxx#20 nsp=1 mass=400 + -1.600000000000000e+01, 1.200000000000000e+01, // itest=486: oxxxxx#20 nsp=1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=486: oxxxxx#20 nsp=1 mass=400 + -7.999999999999999e+00, 5.999999999999999e+00 } ); // itest=486: oxxxxx#20 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=487: oxxxxx#20 nsp=1 mass=-400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=487: oxxxxx#20 nsp=1 mass=-400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=487: oxxxxx#20 nsp=1 mass=-400 + -1.600000000000000e+01, 1.200000000000000e+01, // itest=487: oxxxxx#20 nsp=1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00, // itest=487: oxxxxx#20 nsp=1 mass=-400 + 7.999999999999999e+00, -5.999999999999999e+00 } ); // itest=487: oxxxxx#20 nsp=1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=488: ixxxxx#21 nsp=1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=488: ixxxxx#21 nsp=1 mass=400 + 1.216552506059644e+01, 0.000000000000000e+00, // itest=488: ixxxxx#21 nsp=1 mass=400 + 4.931969619160719e+00, 5.260767593771432e+00, // itest=488: ixxxxx#21 nsp=1 mass=400 + 2.433105012119288e+01, 0.000000000000000e+00, // itest=488: ixxxxx#21 nsp=1 mass=400 + 9.863939238321439e+00, 1.052153518754287e+01 } ); // itest=488: ixxxxx#21 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=489: ixxxxx#21 nsp=1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=489: ixxxxx#21 nsp=1 mass=-400 + -1.216552506059644e+01, -0.000000000000000e+00, // itest=489: ixxxxx#21 nsp=1 mass=-400 + -4.931969619160719e+00, -5.260767593771432e+00, // itest=489: ixxxxx#21 nsp=1 mass=-400 + 2.433105012119288e+01, 0.000000000000000e+00, // itest=489: ixxxxx#21 nsp=1 mass=-400 + 9.863939238321439e+00, 1.052153518754287e+01 } ); // itest=489: ixxxxx#21 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=490: vxxxxx#21 nsp=1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=490: vxxxxx#21 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=490: vxxxxx#21 nsp=1 mass=400 + -2.321373168788980e-01, -5.158607041753289e-01, // itest=490: vxxxxx#21 nsp=1 mass=400 + -2.476131380041579e-01, 4.836194101643708e-01, // itest=490: vxxxxx#21 nsp=1 mass=400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=490: vxxxxx#21 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=491: vxxxxx#21 nsp=1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=491: vxxxxx#21 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=491: vxxxxx#21 nsp=1 mass=-400 + -2.321373168788980e-01, -5.158607041753289e-01, // itest=491: vxxxxx#21 nsp=1 mass=-400 + -2.476131380041579e-01, 4.836194101643708e-01, // itest=491: vxxxxx#21 nsp=1 mass=-400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=491: vxxxxx#21 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=492: sxxxxx#21 nsp=1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=492: sxxxxx#21 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=492: sxxxxx#21 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=492: sxxxxx#21 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=492: sxxxxx#21 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=492: sxxxxx#21 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=493: sxxxxx#21 nsp=1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=493: sxxxxx#21 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=493: sxxxxx#21 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=493: sxxxxx#21 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=493: sxxxxx#21 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=493: sxxxxx#21 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=494: oxxxxx#21 nsp=1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=494: oxxxxx#21 nsp=1 mass=400 + 2.433105012119288e+01, 0.000000000000000e+00, // itest=494: oxxxxx#21 nsp=1 mass=400 + 9.863939238321439e+00, -1.052153518754287e+01, // itest=494: oxxxxx#21 nsp=1 mass=400 + 1.216552506059644e+01, 0.000000000000000e+00, // itest=494: oxxxxx#21 nsp=1 mass=400 + 4.931969619160719e+00, -5.260767593771432e+00 } ); // itest=494: oxxxxx#21 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=495: oxxxxx#21 nsp=1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=495: oxxxxx#21 nsp=1 mass=-400 + 2.433105012119288e+01, 0.000000000000000e+00, // itest=495: oxxxxx#21 nsp=1 mass=-400 + 9.863939238321439e+00, -1.052153518754287e+01, // itest=495: oxxxxx#21 nsp=1 mass=-400 + -1.216552506059644e+01, -0.000000000000000e+00, // itest=495: oxxxxx#21 nsp=1 mass=-400 + -4.931969619160719e+00, 5.260767593771432e+00 } ); // itest=495: oxxxxx#21 nsp=1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=496: ixxxxx#22 nsp=1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=496: ixxxxx#22 nsp=1 mass=400 + 7.211102550927978e+00, 0.000000000000000e+00, // itest=496: ixxxxx#22 nsp=1 mass=400 + 8.320502943378436e+00, 8.875203139603666e+00, // itest=496: ixxxxx#22 nsp=1 mass=400 + 1.442220510185596e+01, 0.000000000000000e+00, // itest=496: ixxxxx#22 nsp=1 mass=400 + 1.664100588675688e+01, 1.775040627920733e+01 } ); // itest=496: ixxxxx#22 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=497: ixxxxx#22 nsp=1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=497: ixxxxx#22 nsp=1 mass=-400 + -7.211102550927978e+00, -0.000000000000000e+00, // itest=497: ixxxxx#22 nsp=1 mass=-400 + -8.320502943378436e+00, -8.875203139603666e+00, // itest=497: ixxxxx#22 nsp=1 mass=-400 + 1.442220510185596e+01, 0.000000000000000e+00, // itest=497: ixxxxx#22 nsp=1 mass=-400 + 1.664100588675688e+01, 1.775040627920733e+01 } ); // itest=497: ixxxxx#22 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=498: vxxxxx#22 nsp=1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=498: vxxxxx#22 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=498: vxxxxx#22 nsp=1 mass=400 + 2.321373168788980e-01, -5.158607041753289e-01, // itest=498: vxxxxx#22 nsp=1 mass=400 + 2.476131380041579e-01, 4.836194101643708e-01, // itest=498: vxxxxx#22 nsp=1 mass=400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=498: vxxxxx#22 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=499: vxxxxx#22 nsp=1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=499: vxxxxx#22 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=499: vxxxxx#22 nsp=1 mass=-400 + 2.321373168788980e-01, -5.158607041753289e-01, // itest=499: vxxxxx#22 nsp=1 mass=-400 + 2.476131380041579e-01, 4.836194101643708e-01, // itest=499: vxxxxx#22 nsp=1 mass=-400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=499: vxxxxx#22 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=500: sxxxxx#22 nsp=1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=500: sxxxxx#22 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=500: sxxxxx#22 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=500: sxxxxx#22 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=500: sxxxxx#22 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=500: sxxxxx#22 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=501: sxxxxx#22 nsp=1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=501: sxxxxx#22 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=501: sxxxxx#22 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=501: sxxxxx#22 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=501: sxxxxx#22 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=501: sxxxxx#22 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=502: oxxxxx#22 nsp=1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=502: oxxxxx#22 nsp=1 mass=400 + 1.442220510185596e+01, 0.000000000000000e+00, // itest=502: oxxxxx#22 nsp=1 mass=400 + 1.664100588675688e+01, -1.775040627920733e+01, // itest=502: oxxxxx#22 nsp=1 mass=400 + 7.211102550927978e+00, 0.000000000000000e+00, // itest=502: oxxxxx#22 nsp=1 mass=400 + 8.320502943378436e+00, -8.875203139603666e+00 } ); // itest=502: oxxxxx#22 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=503: oxxxxx#22 nsp=1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=503: oxxxxx#22 nsp=1 mass=-400 + 1.442220510185596e+01, 0.000000000000000e+00, // itest=503: oxxxxx#22 nsp=1 mass=-400 + 1.664100588675688e+01, -1.775040627920733e+01, // itest=503: oxxxxx#22 nsp=1 mass=-400 + -7.211102550927978e+00, -0.000000000000000e+00, // itest=503: oxxxxx#22 nsp=1 mass=-400 + -8.320502943378436e+00, 8.875203139603666e+00 } ); // itest=503: oxxxxx#22 nsp=1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=504: ixxxxx#23 nsp=1 mass=500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=504: ixxxxx#23 nsp=1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=504: ixxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=504: ixxxxx#23 nsp=1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=504: ixxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=504: ixxxxx#23 nsp=1 mass=500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=505: ixxxxx#23 nsp=1 mass=-500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=505: ixxxxx#23 nsp=1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=505: ixxxxx#23 nsp=1 mass=-500 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=505: ixxxxx#23 nsp=1 mass=-500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=505: ixxxxx#23 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=505: ixxxxx#23 nsp=1 mass=-500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=506: vxxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=506: vxxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=506: vxxxxx#23 nsp=1 mass=500 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=506: vxxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=506: vxxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=506: vxxxxx#23 nsp=1 mass=500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=507: vxxxxx#23 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=507: vxxxxx#23 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=507: vxxxxx#23 nsp=1 mass=-500 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=507: vxxxxx#23 nsp=1 mass=-500 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=507: vxxxxx#23 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=507: vxxxxx#23 nsp=1 mass=-500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=508: sxxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=508: sxxxxx#23 nsp=1 mass=500 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=508: sxxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=508: sxxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=508: sxxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=508: sxxxxx#23 nsp=1 mass=500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=509: sxxxxx#23 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=509: sxxxxx#23 nsp=1 mass=-500 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=509: sxxxxx#23 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=509: sxxxxx#23 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=509: sxxxxx#23 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=509: sxxxxx#23 nsp=1 mass=-500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=510: oxxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=510: oxxxxx#23 nsp=1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=510: oxxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=510: oxxxxx#23 nsp=1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=510: oxxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=510: oxxxxx#23 nsp=1 mass=500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=511: oxxxxx#23 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=511: oxxxxx#23 nsp=1 mass=-500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=511: oxxxxx#23 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=511: oxxxxx#23 nsp=1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=511: oxxxxx#23 nsp=1 mass=-500 + -0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=511: oxxxxx#23 nsp=1 mass=-500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=512: ixxxxx#24 nsp=1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=512: ixxxxx#24 nsp=1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=512: ixxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=512: ixxxxx#24 nsp=1 mass=400 + 2.828427124746190e+01, 0.000000000000000e+00, // itest=512: ixxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=512: ixxxxx#24 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=513: ixxxxx#24 nsp=1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=513: ixxxxx#24 nsp=1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=513: ixxxxx#24 nsp=1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=513: ixxxxx#24 nsp=1 mass=-400 + 2.828427124746190e+01, 0.000000000000000e+00, // itest=513: ixxxxx#24 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=513: ixxxxx#24 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=514: vxxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=514: vxxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=514: vxxxxx#24 nsp=1 mass=400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=514: vxxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=514: vxxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=514: vxxxxx#24 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=515: vxxxxx#24 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=515: vxxxxx#24 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=515: vxxxxx#24 nsp=1 mass=-400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=515: vxxxxx#24 nsp=1 mass=-400 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=515: vxxxxx#24 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=515: vxxxxx#24 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=516: sxxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=516: sxxxxx#24 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=516: sxxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=516: sxxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=516: sxxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=516: sxxxxx#24 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=517: sxxxxx#24 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=517: sxxxxx#24 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=517: sxxxxx#24 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=517: sxxxxx#24 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=517: sxxxxx#24 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=517: sxxxxx#24 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=518: oxxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=518: oxxxxx#24 nsp=1 mass=400 + 2.828427124746190e+01, 0.000000000000000e+00, // itest=518: oxxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=518: oxxxxx#24 nsp=1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=518: oxxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=518: oxxxxx#24 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=519: oxxxxx#24 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=519: oxxxxx#24 nsp=1 mass=-400 + 2.828427124746190e+01, 0.000000000000000e+00, // itest=519: oxxxxx#24 nsp=1 mass=-400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=519: oxxxxx#24 nsp=1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=519: oxxxxx#24 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=519: oxxxxx#24 nsp=1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=520: ixxxxx#25 nsp=1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=520: ixxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=520: ixxxxx#25 nsp=1 mass=400 + -1.414213562373095e+01, 0.000000000000000e+00, // itest=520: ixxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=520: ixxxxx#25 nsp=1 mass=400 + -2.828427124746190e+01, 0.000000000000000e+00 } ); // itest=520: ixxxxx#25 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=521: ixxxxx#25 nsp=1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=521: ixxxxx#25 nsp=1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=521: ixxxxx#25 nsp=1 mass=-400 + 1.414213562373095e+01, -0.000000000000000e+00, // itest=521: ixxxxx#25 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=521: ixxxxx#25 nsp=1 mass=-400 + -2.828427124746190e+01, 0.000000000000000e+00 } ); // itest=521: ixxxxx#25 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=522: vxxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=522: vxxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=522: vxxxxx#25 nsp=1 mass=400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=522: vxxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=522: vxxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=522: vxxxxx#25 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=523: vxxxxx#25 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=523: vxxxxx#25 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=523: vxxxxx#25 nsp=1 mass=-400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=523: vxxxxx#25 nsp=1 mass=-400 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=523: vxxxxx#25 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=523: vxxxxx#25 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=524: sxxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=524: sxxxxx#25 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=524: sxxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=524: sxxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=524: sxxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=524: sxxxxx#25 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=525: sxxxxx#25 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=525: sxxxxx#25 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=525: sxxxxx#25 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=525: sxxxxx#25 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=525: sxxxxx#25 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=525: sxxxxx#25 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=526: oxxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=526: oxxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=526: oxxxxx#25 nsp=1 mass=400 + -2.828427124746190e+01, 0.000000000000000e+00, // itest=526: oxxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=526: oxxxxx#25 nsp=1 mass=400 + -1.414213562373095e+01, 0.000000000000000e+00 } ); // itest=526: oxxxxx#25 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=527: oxxxxx#25 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=527: oxxxxx#25 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=527: oxxxxx#25 nsp=1 mass=-400 + -2.828427124746190e+01, 0.000000000000000e+00, // itest=527: oxxxxx#25 nsp=1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=527: oxxxxx#25 nsp=1 mass=-400 + 1.414213562373095e+01, -0.000000000000000e+00 } ); // itest=527: oxxxxx#25 nsp=1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=528: ixxxxx#26 nsp=1 mass=400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=528: ixxxxx#26 nsp=1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=528: ixxxxx#26 nsp=1 mass=400 + 5.999999999999999e+00, 7.999999999999999e+00, // itest=528: ixxxxx#26 nsp=1 mass=400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=528: ixxxxx#26 nsp=1 mass=400 + 1.200000000000000e+01, 1.600000000000000e+01 } ); // itest=528: ixxxxx#26 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=529: ixxxxx#26 nsp=1 mass=-400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=529: ixxxxx#26 nsp=1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00, // itest=529: ixxxxx#26 nsp=1 mass=-400 + -5.999999999999999e+00, -7.999999999999999e+00, // itest=529: ixxxxx#26 nsp=1 mass=-400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=529: ixxxxx#26 nsp=1 mass=-400 + 1.200000000000000e+01, 1.600000000000000e+01 } ); // itest=529: ixxxxx#26 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=530: vxxxxx#26 nsp=1 mass=400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=530: vxxxxx#26 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=530: vxxxxx#26 nsp=1 mass=400 + 0.000000000000000e+00, -5.656854249492381e-01, // itest=530: vxxxxx#26 nsp=1 mass=400 + 0.000000000000000e+00, 4.242640687119285e-01, // itest=530: vxxxxx#26 nsp=1 mass=400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=530: vxxxxx#26 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=531: vxxxxx#26 nsp=1 mass=-400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=531: vxxxxx#26 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=531: vxxxxx#26 nsp=1 mass=-400 + -0.000000000000000e+00, -5.656854249492381e-01, // itest=531: vxxxxx#26 nsp=1 mass=-400 + -0.000000000000000e+00, 4.242640687119285e-01, // itest=531: vxxxxx#26 nsp=1 mass=-400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=531: vxxxxx#26 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=532: sxxxxx#26 nsp=1 mass=400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=532: sxxxxx#26 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=532: sxxxxx#26 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=532: sxxxxx#26 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=532: sxxxxx#26 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=532: sxxxxx#26 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=533: sxxxxx#26 nsp=1 mass=-400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=533: sxxxxx#26 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=533: sxxxxx#26 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=533: sxxxxx#26 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=533: sxxxxx#26 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=533: sxxxxx#26 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=534: oxxxxx#26 nsp=1 mass=400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=534: oxxxxx#26 nsp=1 mass=400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=534: oxxxxx#26 nsp=1 mass=400 + 1.200000000000000e+01, -1.600000000000000e+01, // itest=534: oxxxxx#26 nsp=1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=534: oxxxxx#26 nsp=1 mass=400 + 5.999999999999999e+00, -7.999999999999999e+00 } ); // itest=534: oxxxxx#26 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=535: oxxxxx#26 nsp=1 mass=-400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=535: oxxxxx#26 nsp=1 mass=-400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=535: oxxxxx#26 nsp=1 mass=-400 + 1.200000000000000e+01, -1.600000000000000e+01, // itest=535: oxxxxx#26 nsp=1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00, // itest=535: oxxxxx#26 nsp=1 mass=-400 + -5.999999999999999e+00, 7.999999999999999e+00 } ); // itest=535: oxxxxx#26 nsp=1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=536: ixxxxx#27 nsp=1 mass=400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=536: ixxxxx#27 nsp=1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=536: ixxxxx#27 nsp=1 mass=400 + -7.999999999999999e+00, -5.999999999999999e+00, // itest=536: ixxxxx#27 nsp=1 mass=400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=536: ixxxxx#27 nsp=1 mass=400 + -1.600000000000000e+01, -1.200000000000000e+01 } ); // itest=536: ixxxxx#27 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=537: ixxxxx#27 nsp=1 mass=-400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=537: ixxxxx#27 nsp=1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00, // itest=537: ixxxxx#27 nsp=1 mass=-400 + 7.999999999999999e+00, 5.999999999999999e+00, // itest=537: ixxxxx#27 nsp=1 mass=-400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=537: ixxxxx#27 nsp=1 mass=-400 + -1.600000000000000e+01, -1.200000000000000e+01 } ); // itest=537: ixxxxx#27 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=538: vxxxxx#27 nsp=1 mass=400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=538: vxxxxx#27 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=538: vxxxxx#27 nsp=1 mass=400 + 0.000000000000000e+00, 4.242640687119285e-01, // itest=538: vxxxxx#27 nsp=1 mass=400 + 0.000000000000000e+00, -5.656854249492381e-01, // itest=538: vxxxxx#27 nsp=1 mass=400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=538: vxxxxx#27 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=539: vxxxxx#27 nsp=1 mass=-400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=539: vxxxxx#27 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=539: vxxxxx#27 nsp=1 mass=-400 + 0.000000000000000e+00, 4.242640687119285e-01, // itest=539: vxxxxx#27 nsp=1 mass=-400 + 0.000000000000000e+00, -5.656854249492381e-01, // itest=539: vxxxxx#27 nsp=1 mass=-400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=539: vxxxxx#27 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=540: sxxxxx#27 nsp=1 mass=400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=540: sxxxxx#27 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=540: sxxxxx#27 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=540: sxxxxx#27 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=540: sxxxxx#27 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=540: sxxxxx#27 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=541: sxxxxx#27 nsp=1 mass=-400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=541: sxxxxx#27 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=541: sxxxxx#27 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=541: sxxxxx#27 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=541: sxxxxx#27 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=541: sxxxxx#27 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=542: oxxxxx#27 nsp=1 mass=400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=542: oxxxxx#27 nsp=1 mass=400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=542: oxxxxx#27 nsp=1 mass=400 + -1.600000000000000e+01, 1.200000000000000e+01, // itest=542: oxxxxx#27 nsp=1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=542: oxxxxx#27 nsp=1 mass=400 + -7.999999999999999e+00, 5.999999999999999e+00 } ); // itest=542: oxxxxx#27 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=543: oxxxxx#27 nsp=1 mass=-400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=543: oxxxxx#27 nsp=1 mass=-400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=543: oxxxxx#27 nsp=1 mass=-400 + -1.600000000000000e+01, 1.200000000000000e+01, // itest=543: oxxxxx#27 nsp=1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00, // itest=543: oxxxxx#27 nsp=1 mass=-400 + 7.999999999999999e+00, -5.999999999999999e+00 } ); // itest=543: oxxxxx#27 nsp=1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=544: ixxxxx#28 nsp=1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=544: ixxxxx#28 nsp=1 mass=400 + 1.216552506059644e+01, 0.000000000000000e+00, // itest=544: ixxxxx#28 nsp=1 mass=400 + 4.931969619160719e+00, 5.260767593771432e+00, // itest=544: ixxxxx#28 nsp=1 mass=400 + 2.433105012119288e+01, 0.000000000000000e+00, // itest=544: ixxxxx#28 nsp=1 mass=400 + 9.863939238321439e+00, 1.052153518754287e+01 } ); // itest=544: ixxxxx#28 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=545: ixxxxx#28 nsp=1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=545: ixxxxx#28 nsp=1 mass=-400 + -1.216552506059644e+01, -0.000000000000000e+00, // itest=545: ixxxxx#28 nsp=1 mass=-400 + -4.931969619160719e+00, -5.260767593771432e+00, // itest=545: ixxxxx#28 nsp=1 mass=-400 + 2.433105012119288e+01, 0.000000000000000e+00, // itest=545: ixxxxx#28 nsp=1 mass=-400 + 9.863939238321439e+00, 1.052153518754287e+01 } ); // itest=545: ixxxxx#28 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=546: vxxxxx#28 nsp=1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=546: vxxxxx#28 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=546: vxxxxx#28 nsp=1 mass=400 + -2.321373168788980e-01, -5.158607041753289e-01, // itest=546: vxxxxx#28 nsp=1 mass=400 + -2.476131380041579e-01, 4.836194101643708e-01, // itest=546: vxxxxx#28 nsp=1 mass=400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=546: vxxxxx#28 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=547: vxxxxx#28 nsp=1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=547: vxxxxx#28 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=547: vxxxxx#28 nsp=1 mass=-400 + -2.321373168788980e-01, -5.158607041753289e-01, // itest=547: vxxxxx#28 nsp=1 mass=-400 + -2.476131380041579e-01, 4.836194101643708e-01, // itest=547: vxxxxx#28 nsp=1 mass=-400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=547: vxxxxx#28 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=548: sxxxxx#28 nsp=1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=548: sxxxxx#28 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=548: sxxxxx#28 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=548: sxxxxx#28 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=548: sxxxxx#28 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=548: sxxxxx#28 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=549: sxxxxx#28 nsp=1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=549: sxxxxx#28 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=549: sxxxxx#28 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=549: sxxxxx#28 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=549: sxxxxx#28 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=549: sxxxxx#28 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=550: oxxxxx#28 nsp=1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=550: oxxxxx#28 nsp=1 mass=400 + 2.433105012119288e+01, 0.000000000000000e+00, // itest=550: oxxxxx#28 nsp=1 mass=400 + 9.863939238321439e+00, -1.052153518754287e+01, // itest=550: oxxxxx#28 nsp=1 mass=400 + 1.216552506059644e+01, 0.000000000000000e+00, // itest=550: oxxxxx#28 nsp=1 mass=400 + 4.931969619160719e+00, -5.260767593771432e+00 } ); // itest=550: oxxxxx#28 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=551: oxxxxx#28 nsp=1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=551: oxxxxx#28 nsp=1 mass=-400 + 2.433105012119288e+01, 0.000000000000000e+00, // itest=551: oxxxxx#28 nsp=1 mass=-400 + 9.863939238321439e+00, -1.052153518754287e+01, // itest=551: oxxxxx#28 nsp=1 mass=-400 + -1.216552506059644e+01, -0.000000000000000e+00, // itest=551: oxxxxx#28 nsp=1 mass=-400 + -4.931969619160719e+00, 5.260767593771432e+00 } ); // itest=551: oxxxxx#28 nsp=1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=552: ixxxxx#29 nsp=1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=552: ixxxxx#29 nsp=1 mass=400 + 7.211102550927978e+00, 0.000000000000000e+00, // itest=552: ixxxxx#29 nsp=1 mass=400 + 8.320502943378436e+00, 8.875203139603666e+00, // itest=552: ixxxxx#29 nsp=1 mass=400 + 1.442220510185596e+01, 0.000000000000000e+00, // itest=552: ixxxxx#29 nsp=1 mass=400 + 1.664100588675688e+01, 1.775040627920733e+01 } ); // itest=552: ixxxxx#29 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=553: ixxxxx#29 nsp=1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=553: ixxxxx#29 nsp=1 mass=-400 + -7.211102550927978e+00, -0.000000000000000e+00, // itest=553: ixxxxx#29 nsp=1 mass=-400 + -8.320502943378436e+00, -8.875203139603666e+00, // itest=553: ixxxxx#29 nsp=1 mass=-400 + 1.442220510185596e+01, 0.000000000000000e+00, // itest=553: ixxxxx#29 nsp=1 mass=-400 + 1.664100588675688e+01, 1.775040627920733e+01 } ); // itest=553: ixxxxx#29 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=554: vxxxxx#29 nsp=1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=554: vxxxxx#29 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=554: vxxxxx#29 nsp=1 mass=400 + 2.321373168788980e-01, -5.158607041753289e-01, // itest=554: vxxxxx#29 nsp=1 mass=400 + 2.476131380041579e-01, 4.836194101643708e-01, // itest=554: vxxxxx#29 nsp=1 mass=400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=554: vxxxxx#29 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=555: vxxxxx#29 nsp=1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=555: vxxxxx#29 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=555: vxxxxx#29 nsp=1 mass=-400 + 2.321373168788980e-01, -5.158607041753289e-01, // itest=555: vxxxxx#29 nsp=1 mass=-400 + 2.476131380041579e-01, 4.836194101643708e-01, // itest=555: vxxxxx#29 nsp=1 mass=-400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=555: vxxxxx#29 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=556: sxxxxx#29 nsp=1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=556: sxxxxx#29 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=556: sxxxxx#29 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=556: sxxxxx#29 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=556: sxxxxx#29 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=556: sxxxxx#29 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=557: sxxxxx#29 nsp=1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=557: sxxxxx#29 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=557: sxxxxx#29 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=557: sxxxxx#29 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=557: sxxxxx#29 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=557: sxxxxx#29 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=558: oxxxxx#29 nsp=1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=558: oxxxxx#29 nsp=1 mass=400 + 1.442220510185596e+01, 0.000000000000000e+00, // itest=558: oxxxxx#29 nsp=1 mass=400 + 1.664100588675688e+01, -1.775040627920733e+01, // itest=558: oxxxxx#29 nsp=1 mass=400 + 7.211102550927978e+00, 0.000000000000000e+00, // itest=558: oxxxxx#29 nsp=1 mass=400 + 8.320502943378436e+00, -8.875203139603666e+00 } ); // itest=558: oxxxxx#29 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=559: oxxxxx#29 nsp=1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=559: oxxxxx#29 nsp=1 mass=-400 + 1.442220510185596e+01, 0.000000000000000e+00, // itest=559: oxxxxx#29 nsp=1 mass=-400 + 1.664100588675688e+01, -1.775040627920733e+01, // itest=559: oxxxxx#29 nsp=1 mass=-400 + -7.211102550927978e+00, -0.000000000000000e+00, // itest=559: oxxxxx#29 nsp=1 mass=-400 + -8.320502943378436e+00, 8.875203139603666e+00 } ); // itest=559: oxxxxx#29 nsp=1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=560: ixxxxx#30 nsp=1 mass=500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=560: ixxxxx#30 nsp=1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=560: ixxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=560: ixxxxx#30 nsp=1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=560: ixxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=560: ixxxxx#30 nsp=1 mass=500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=561: ixxxxx#30 nsp=1 mass=-500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=561: ixxxxx#30 nsp=1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=561: ixxxxx#30 nsp=1 mass=-500 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=561: ixxxxx#30 nsp=1 mass=-500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=561: ixxxxx#30 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=561: ixxxxx#30 nsp=1 mass=-500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=562: vxxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=562: vxxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=562: vxxxxx#30 nsp=1 mass=500 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=562: vxxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=562: vxxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=562: vxxxxx#30 nsp=1 mass=500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=563: vxxxxx#30 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=563: vxxxxx#30 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=563: vxxxxx#30 nsp=1 mass=-500 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=563: vxxxxx#30 nsp=1 mass=-500 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=563: vxxxxx#30 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=563: vxxxxx#30 nsp=1 mass=-500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=564: sxxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=564: sxxxxx#30 nsp=1 mass=500 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=564: sxxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=564: sxxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=564: sxxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=564: sxxxxx#30 nsp=1 mass=500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=565: sxxxxx#30 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=565: sxxxxx#30 nsp=1 mass=-500 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=565: sxxxxx#30 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=565: sxxxxx#30 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=565: sxxxxx#30 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=565: sxxxxx#30 nsp=1 mass=-500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=566: oxxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=566: oxxxxx#30 nsp=1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=566: oxxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=566: oxxxxx#30 nsp=1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=566: oxxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=566: oxxxxx#30 nsp=1 mass=500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=567: oxxxxx#30 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=567: oxxxxx#30 nsp=1 mass=-500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=567: oxxxxx#30 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=567: oxxxxx#30 nsp=1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=567: oxxxxx#30 nsp=1 mass=-500 + -0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=567: oxxxxx#30 nsp=1 mass=-500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=568: ixxxxx#31 nsp=1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=568: ixxxxx#31 nsp=1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=568: ixxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=568: ixxxxx#31 nsp=1 mass=400 + 2.828427124746190e+01, 0.000000000000000e+00, // itest=568: ixxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=568: ixxxxx#31 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=569: ixxxxx#31 nsp=1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=569: ixxxxx#31 nsp=1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=569: ixxxxx#31 nsp=1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=569: ixxxxx#31 nsp=1 mass=-400 + 2.828427124746190e+01, 0.000000000000000e+00, // itest=569: ixxxxx#31 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=569: ixxxxx#31 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=570: vxxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=570: vxxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=570: vxxxxx#31 nsp=1 mass=400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=570: vxxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=570: vxxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=570: vxxxxx#31 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=571: vxxxxx#31 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=571: vxxxxx#31 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=571: vxxxxx#31 nsp=1 mass=-400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=571: vxxxxx#31 nsp=1 mass=-400 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=571: vxxxxx#31 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=571: vxxxxx#31 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=572: sxxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=572: sxxxxx#31 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=572: sxxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=572: sxxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=572: sxxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=572: sxxxxx#31 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=573: sxxxxx#31 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=573: sxxxxx#31 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=573: sxxxxx#31 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=573: sxxxxx#31 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=573: sxxxxx#31 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=573: sxxxxx#31 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=574: oxxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=574: oxxxxx#31 nsp=1 mass=400 + 2.828427124746190e+01, 0.000000000000000e+00, // itest=574: oxxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=574: oxxxxx#31 nsp=1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=574: oxxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=574: oxxxxx#31 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=575: oxxxxx#31 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=575: oxxxxx#31 nsp=1 mass=-400 + 2.828427124746190e+01, 0.000000000000000e+00, // itest=575: oxxxxx#31 nsp=1 mass=-400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=575: oxxxxx#31 nsp=1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=575: oxxxxx#31 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=575: oxxxxx#31 nsp=1 mass=-400 diff --git a/epochX/cudacpp/gg_tt.mad/src/HelAmps_sm.h b/epochX/cudacpp/gg_tt.mad/src/HelAmps_sm.h index bc2adb6258..a6f1b62e82 100644 --- a/epochX/cudacpp/gg_tt.mad/src/HelAmps_sm.h +++ b/epochX/cudacpp/gg_tt.mad/src/HelAmps_sm.h @@ -1,3 +1,4 @@ +// Copyright (C) 2010 The ALOHA Development team and Contributors. // Copyright (C) 2010 The MadGraph5_aMC@NLO development team and contributors. // Created by: J. Alwall (Sep 2010) for the MG5aMC backend. //========================================================================== @@ -21,6 +22,7 @@ #include "Parameters_sm.h" +#include //#include //#include //#include @@ -190,6 +192,9 @@ namespace mg5amcCpu const int ipar ) // input: particle# out of npar { mgDebug( 0, __FUNCTION__ ); + // NEW IMPLEMENTATION FIXING FLOATING POINT EXCEPTIONS IN SIMD CODE (#701) + // Variables xxxDENOM are a hack to avoid division-by-0 FPE while preserving speed (#701 and #727) + // Variables xxxDENOM are declared as 'volatile' to make sure they are not optimized away on clang! (#724) const fptype_sv& pvec0 = M_ACCESS::kernelAccessIp4IparConst( momenta, 0, ipar ); const fptype_sv& pvec1 = M_ACCESS::kernelAccessIp4IparConst( momenta, 1, ipar ); const fptype_sv& pvec2 = M_ACCESS::kernelAccessIp4IparConst( momenta, 2, ipar ); @@ -201,6 +206,11 @@ namespace mg5amcCpu if( fmass != 0. ) { const fptype_sv pp = fpmin( pvec0, fpsqrt( pvec1 * pvec1 + pvec2 * pvec2 + pvec3 * pvec3 ) ); + // In C++ ixxxxx, use a single ip/im numbering that is valid both for pp==0 and pp>0, which have two numbering schemes in Fortran ixxxxx: + // for pp==0, Fortran sqm(0:1) has indexes 0,1 as in C++; but for Fortran pp>0, omega(2) has indexes 1,2 and not 0,1 + // NB: this is only possible in ixxxx, but in oxxxxx two different numbering schemes must be used + const int ip = ( 1 + nh ) / 2; // NB: same as in Fortran pp==0, differs from Fortran pp>0, which is (3+nh)/2 because omega(2) has indexes 1,2 + const int im = ( 1 - nh ) / 2; // NB: same as in Fortran pp==0, differs from Fortran pp>0, which is (3-nh)/2 because omega(2) has indexes 1,2 #ifndef MGONGPU_CPPSIMD if( pp == 0. ) { @@ -208,8 +218,6 @@ namespace mg5amcCpu fptype sqm[2] = { fpsqrt( std::abs( fmass ) ), 0. }; // possibility of negative fermion masses //sqm[1] = ( fmass < 0. ? -abs( sqm[0] ) : abs( sqm[0] ) ); // AV: why abs here? sqm[1] = ( fmass < 0. ? -sqm[0] : sqm[0] ); // AV: removed an abs here - const int ip = ( 1 + nh ) / 2; // NB: Fortran sqm(0:1) also has indexes 0,1 as in C++ - const int im = ( 1 - nh ) / 2; // NB: Fortran sqm(0:1) also has indexes 0,1 as in C++ fi[2] = cxmake( ip * sqm[ip], 0 ); fi[3] = cxmake( im * nsf * sqm[ip], 0 ); fi[4] = cxmake( ip * nsf * sqm[im], 0 ); @@ -221,8 +229,6 @@ namespace mg5amcCpu fptype( 1 + nsf - ( 1 - nsf ) * nh ) * (fptype)0.5 }; fptype omega[2] = { fpsqrt( pvec0 + pp ), 0. }; omega[1] = fmass / omega[0]; - const int ip = ( 1 + nh ) / 2; // NB: Fortran is (3+nh)/2 because omega(2) has indexes 1,2 and not 0,1 - const int im = ( 1 - nh ) / 2; // NB: Fortran is (3-nh)/2 because omega(2) has indexes 1,2 and not 0,1 const fptype sfomega[2] = { sf[0] * omega[ip], sf[1] * omega[im] }; const fptype pp3 = fpmax( pp + pvec3, 0. ); const cxtype chi[2] = { cxmake( fpsqrt( pp3 * (fptype)0.5 / pp ), 0. ), @@ -233,8 +239,6 @@ namespace mg5amcCpu fi[5] = sfomega[1] * chi[ip]; } #else - const int ip = ( 1 + nh ) / 2; - const int im = ( 1 - nh ) / 2; // Branch A: pp == 0. // NB: Do not use "abs" for floats! It returns an integer with no build warning! Use std::abs! fptype sqm[2] = { fpsqrt( std::abs( fmass ) ), 0 }; // possibility of negative fermion masses (NB: SCALAR!) @@ -250,10 +254,12 @@ namespace mg5amcCpu omega[1] = fmass / omega[0]; const fptype_v sfomega[2] = { sf[0] * omega[ip], sf[1] * omega[im] }; const fptype_v pp3 = fpmax( pp + pvec3, 0 ); - const cxtype_v chi[2] = { cxmake( fpsqrt( pp3 * 0.5 / pp ), 0 ), + volatile fptype_v ppDENOM = fpternary( pp != 0, pp, 1. ); // hack: ppDENOM[ieppV]=1 if pp[ieppV]==0 + volatile fptype_v pp3DENOM = fpternary( pp3 != 0, pp3, 1. ); // hack: pp3DENOM[ieppV]=1 if pp3[ieppV]==0 + const cxtype_v chi[2] = { cxmake( fpsqrt( pp3 * 0.5 / ppDENOM ), 0 ), // hack: dummy[ieppV] is not used if pp[ieppV]==0 cxternary( ( pp3 == 0. ), cxmake( -nh, 0 ), - cxmake( (fptype)nh * pvec1, pvec2 ) / fpsqrt( 2. * pp * pp3 ) ) }; + cxmake( (fptype)nh * pvec1, pvec2 ) / fpsqrt( 2. * ppDENOM * pp3DENOM ) ) }; // hack: dummy[ieppV] is not used if pp[ieppV]==0 const cxtype_v fiB_2 = sfomega[0] * chi[im]; const cxtype_v fiB_3 = sfomega[0] * chi[ip]; const cxtype_v fiB_4 = sfomega[1] * chi[im]; @@ -271,7 +277,16 @@ namespace mg5amcCpu const fptype_sv sqp0p3 = fpternary( ( pvec1 == 0. and pvec2 == 0. and pvec3 < 0. ), fptype_sv{ 0 }, fpsqrt( fpmax( pvec0 + pvec3, 0. ) ) * (fptype)nsf ); - const cxtype_sv chi[2] = { cxmake( sqp0p3, 0. ), cxternary( ( sqp0p3 == 0. ), cxmake( -(fptype)nhel * fpsqrt( 2. * pvec0 ), 0. ), cxmake( (fptype)nh * pvec1, pvec2 ) / sqp0p3 ) }; +#ifdef MGONGPU_CPPSIMD + volatile fptype_v sqp0p3DENOM = fpternary( sqp0p3 != 0, sqp0p3, 1. ); // hack: dummy sqp0p3DENOM[ieppV]=1 if sqp0p3[ieppV]==0 + cxtype_sv chi[2] = { cxmake( sqp0p3, 0. ), + cxternary( sqp0p3 == 0, + cxmake( -(fptype)nhel * fpsqrt( 2. * pvec0 ), 0. ), + cxmake( (fptype)nh * pvec1, pvec2 ) / (const fptype_v)sqp0p3DENOM ) }; // hack: dummy[ieppV] is not used if sqp0p3[ieppV]==0 +#else + const cxtype_sv chi[2] = { cxmake( sqp0p3, 0. ), + ( sqp0p3 == 0. ? cxmake( -(fptype)nhel * fpsqrt( 2. * pvec0 ), 0. ) : cxmake( (fptype)nh * pvec1, pvec2 ) / sqp0p3 ) }; +#endif if( nh == 1 ) { fi[2] = cxzero_sv(); @@ -422,6 +437,9 @@ namespace mg5amcCpu const int ipar ) // input: particle# out of npar { mgDebug( 0, __FUNCTION__ ); + // NEW IMPLEMENTATION FIXING FLOATING POINT EXCEPTIONS IN SIMD CODE (#701) + // Variables xxxDENOM are a hack to avoid division-by-0 FPE while preserving speed (#701 and #727) + // Variables xxxDENOM are declared as 'volatile' to make sure they are not optimized away on clang! (#724) const fptype_sv& pvec0 = M_ACCESS::kernelAccessIp4IparConst( momenta, 0, ipar ); const fptype_sv& pvec1 = M_ACCESS::kernelAccessIp4IparConst( momenta, 1, ipar ); const fptype_sv& pvec2 = M_ACCESS::kernelAccessIp4IparConst( momenta, 2, ipar ); @@ -472,13 +490,15 @@ namespace mg5amcCpu const cxtype vcA_4 = cxmake( 0, nsvahl * sqh ); const cxtype vcA_5 = cxmake( hel0, 0 ); // Branch B: pp != 0. - const fptype_v emp = pvec0 / ( vmass * pp ); + volatile fptype_v ppDENOM = fpternary( pp != 0, pp, 1. ); // hack: ppDENOM[ieppV]=1 if pp[ieppV]==0 + const fptype_v emp = pvec0 / ( vmass * ppDENOM ); // hack: dummy[ieppV] is not used if pp[ieppV]==0 const cxtype_v vcB_2 = cxmake( hel0 * pp / vmass, 0 ); - const cxtype_v vcB_5 = cxmake( hel0 * pvec3 * emp + hel * pt / pp * sqh, 0 ); + const cxtype_v vcB_5 = cxmake( hel0 * pvec3 * emp + hel * pt / ppDENOM * sqh, 0 ); // hack: dummy[ieppV] is not used if pp[ieppV]==0 // Branch B1: pp != 0. and pt != 0. - const fptype_v pzpt = pvec3 / ( pp * pt ) * sqh * hel; - const cxtype_v vcB1_3 = cxmake( hel0 * pvec1 * emp - pvec1 * pzpt, -(fptype)nsvahl * pvec2 / pt * sqh ); - const cxtype_v vcB1_4 = cxmake( hel0 * pvec2 * emp - pvec2 * pzpt, (fptype)nsvahl * pvec1 / pt * sqh ); + volatile fptype_v ptDENOM = fpternary( pt != 0, pt, 1. ); // hack: ptDENOM[ieppV]=1 if pt[ieppV]==0 + const fptype_v pzpt = pvec3 / ( ppDENOM * ptDENOM ) * sqh * hel; // hack: dummy[ieppV] is not used if pp[ieppV]==0 + const cxtype_v vcB1_3 = cxmake( hel0 * pvec1 * emp - pvec1 * pzpt, -(fptype)nsvahl * pvec2 / ptDENOM * sqh ); // hack: dummy[ieppV] is not used if pt[ieppV]==0 + const cxtype_v vcB1_4 = cxmake( hel0 * pvec2 * emp - pvec2 * pzpt, (fptype)nsvahl * pvec1 / ptDENOM * sqh ); // hack: dummy[ieppV] is not used if pt[ieppV]==0 // Branch B2: pp != 0. and pt == 0. const cxtype vcB2_3 = cxmake( -hel * sqh, 0. ); const cxtype_v vcB2_4 = cxmake( 0., (fptype)nsvahl * fpternary( ( pvec3 < 0 ), -sqh, sqh ) ); // AV: removed an abs here @@ -513,9 +533,10 @@ namespace mg5amcCpu } #else // Branch A: pt != 0. - const fptype_v pzpt = pvec3 / ( pp * pt ) * sqh * hel; - const cxtype_v vcA_3 = cxmake( -pvec1 * pzpt, -(fptype)nsv * pvec2 / pt * sqh ); - const cxtype_v vcA_4 = cxmake( -pvec2 * pzpt, (fptype)nsv * pvec1 / pt * sqh ); + volatile fptype_v ptDENOM = fpternary( pt != 0, pt, 1. ); // hack: ptDENOM[ieppV]=1 if pt[ieppV]==0 + const fptype_v pzpt = pvec3 / ( pp * ptDENOM ) * sqh * hel; // hack: dummy[ieppV] is not used if pt[ieppV]==0 + const cxtype_v vcA_3 = cxmake( -pvec1 * pzpt, -(fptype)nsv * pvec2 / ptDENOM * sqh ); // hack: dummy[ieppV] is not used if pt[ieppV]==0 + const cxtype_v vcA_4 = cxmake( -pvec2 * pzpt, (fptype)nsv * pvec1 / ptDENOM * sqh ); // hack: dummy[ieppV] is not used if pt[ieppV]==0 // Branch B: pt == 0. const cxtype vcB_3 = cxmake( -(fptype)hel * sqh, 0 ); const cxtype_v vcB_4 = cxmake( 0, (fptype)nsv * fpternary( ( pvec3 < 0 ), -sqh, sqh ) ); // AV: removed an abs here @@ -567,6 +588,9 @@ namespace mg5amcCpu const int ipar ) // input: particle# out of npar { mgDebug( 0, __FUNCTION__ ); + // NEW IMPLEMENTATION FIXING FLOATING POINT EXCEPTIONS IN SIMD CODE (#701) + // Variables xxxDENOM are a hack to avoid division-by-0 FPE while preserving speed (#701 and #727) + // Variables xxxDENOM are declared as 'volatile' to make sure they are not optimized away on clang! (#724) const fptype_sv& pvec0 = M_ACCESS::kernelAccessIp4IparConst( momenta, 0, ipar ); const fptype_sv& pvec1 = M_ACCESS::kernelAccessIp4IparConst( momenta, 1, ipar ); const fptype_sv& pvec2 = M_ACCESS::kernelAccessIp4IparConst( momenta, 2, ipar ); @@ -630,10 +654,12 @@ namespace mg5amcCpu const int imB = ( 1 - nh ) / 2; const fptype_v sfomeg[2] = { sf[0] * omega[ipB], sf[1] * omega[imB] }; const fptype_v pp3 = fpmax( pp + pvec3, 0. ); - const cxtype_v chi[2] = { cxmake( fpsqrt( pp3 * 0.5 / pp ), 0. ), + volatile fptype_v ppDENOM = fpternary( pp != 0, pp, 1. ); // hack: ppDENOM[ieppV]=1 if pp[ieppV]==0 + volatile fptype_v pp3DENOM = fpternary( pp3 != 0, pp3, 1. ); // hack: pp3DENOM[ieppV]=1 if pp3[ieppV]==0 + const cxtype_v chi[2] = { cxmake( fpsqrt( pp3 * 0.5 / ppDENOM ), 0. ), // hack: dummy[ieppV] is not used if pp[ieppV]==0 ( cxternary( ( pp3 == 0. ), cxmake( -nh, 0. ), - cxmake( (fptype)nh * pvec1, -pvec2 ) / fpsqrt( 2. * pp * pp3 ) ) ) }; + cxmake( (fptype)nh * pvec1, -pvec2 ) / fpsqrt( 2. * ppDENOM * pp3DENOM ) ) ) }; // hack: dummy[ieppV] is not used if pp[ieppV]==0 const cxtype_v foB_2 = sfomeg[1] * chi[imB]; const cxtype_v foB_3 = sfomeg[1] * chi[ipB]; const cxtype_v foB_4 = sfomeg[0] * chi[imB]; @@ -651,10 +677,16 @@ namespace mg5amcCpu const fptype_sv sqp0p3 = fpternary( ( pvec1 == 0. ) and ( pvec2 == 0. ) and ( pvec3 < 0. ), 0, fpsqrt( fpmax( pvec0 + pvec3, 0. ) ) * (fptype)nsf ); +#ifdef MGONGPU_CPPSIMD + volatile fptype_v sqp0p3DENOM = fpternary( sqp0p3 != 0, sqp0p3, 1. ); // hack: sqp0p3DENOM[ieppV]=1 if sqp0p3[ieppV]==0 + const cxtype_v chi[2] = { cxmake( sqp0p3, 0. ), + cxternary( ( sqp0p3 == 0. ), + cxmake( -nhel, 0. ) * fpsqrt( 2. * pvec0 ), + cxmake( (fptype)nh * pvec1, -pvec2 ) / (const fptype_sv)sqp0p3DENOM ) }; // hack: dummy[ieppV] is not used if sqp0p3[ieppV]==0 +#else const cxtype_sv chi[2] = { cxmake( sqp0p3, 0. ), - cxternary( ( sqp0p3 == 0. ), - cxmake( -nhel, 0. ) * fpsqrt( 2. * pvec0 ), - cxmake( (fptype)nh * pvec1, -pvec2 ) / sqp0p3 ) }; + ( sqp0p3 == 0. ? cxmake( -nhel, 0. ) * fpsqrt( 2. * pvec0 ) : cxmake( (fptype)nh * pvec1, -pvec2 ) / sqp0p3 ) }; +#endif if( nh == 1 ) { fo[2] = chi[0]; diff --git a/epochX/cudacpp/gg_tt.mad/src/Parameters_sm.cc b/epochX/cudacpp/gg_tt.mad/src/Parameters_sm.cc index 7255e49119..b9668e2a87 100644 --- a/epochX/cudacpp/gg_tt.mad/src/Parameters_sm.cc +++ b/epochX/cudacpp/gg_tt.mad/src/Parameters_sm.cc @@ -17,6 +17,12 @@ #include #include +#ifdef __CUDACC__ +using namespace mg5amcGpu; +#else +using namespace mg5amcCpu; +#endif + #ifndef MGONGPU_HARDCODE_PARAM // Initialize static instance diff --git a/epochX/cudacpp/gg_tt.mad/src/Parameters_sm.h b/epochX/cudacpp/gg_tt.mad/src/Parameters_sm.h index c935779eb3..69241c2b3b 100644 --- a/epochX/cudacpp/gg_tt.mad/src/Parameters_sm.h +++ b/epochX/cudacpp/gg_tt.mad/src/Parameters_sm.h @@ -26,188 +26,213 @@ #include "read_slha.h" -class Parameters_sm +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { -public: + class Parameters_sm + { + public: - static Parameters_sm* getInstance(); + static Parameters_sm* getInstance(); - // Define "zero" - double zero, ZERO; + // Define "zero" + double zero, ZERO; - // Model parameters independent of aS - //double aS; // now retrieved event-by-event (as G) from Fortran (running alphas #373) - double mdl_WH, mdl_WW, mdl_WZ, mdl_WT, mdl_ymtau, mdl_ymt, mdl_ymb, mdl_Gf, aEWM1, mdl_MH, mdl_MZ, mdl_MTA, mdl_MT, mdl_MB, mdl_conjg__CKM3x3, mdl_conjg__CKM1x1, mdl_CKM3x3, mdl_MZ__exp__2, mdl_MZ__exp__4, mdl_sqrt__2, mdl_MH__exp__2, mdl_aEW, mdl_MW, mdl_sqrt__aEW, mdl_ee, mdl_MW__exp__2, mdl_sw2, mdl_cw, mdl_sqrt__sw2, mdl_sw, mdl_g1, mdl_gw, mdl_vev, mdl_vev__exp__2, mdl_lam, mdl_yb, mdl_yt, mdl_ytau, mdl_muH, mdl_ee__exp__2, mdl_sw__exp__2, mdl_cw__exp__2; - cxsmpl mdl_complexi, mdl_I1x33, mdl_I2x33, mdl_I3x33, mdl_I4x33; + // Model parameters independent of aS + //double aS; // now retrieved event-by-event (as G) from Fortran (running alphas #373) + double mdl_WH, mdl_WW, mdl_WZ, mdl_WT, mdl_ymtau, mdl_ymt, mdl_ymb, mdl_Gf, aEWM1, mdl_MH, mdl_MZ, mdl_MTA, mdl_MT, mdl_MB, mdl_conjg__CKM3x3, mdl_conjg__CKM1x1, mdl_CKM3x3, mdl_MZ__exp__2, mdl_MZ__exp__4, mdl_sqrt__2, mdl_MH__exp__2, mdl_aEW, mdl_MW, mdl_sqrt__aEW, mdl_ee, mdl_MW__exp__2, mdl_sw2, mdl_cw, mdl_sqrt__sw2, mdl_sw, mdl_g1, mdl_gw, mdl_vev, mdl_vev__exp__2, mdl_lam, mdl_yb, mdl_yt, mdl_ytau, mdl_muH, mdl_ee__exp__2, mdl_sw__exp__2, mdl_cw__exp__2; + cxsmpl mdl_complexi, mdl_I1x33, mdl_I2x33, mdl_I3x33, mdl_I4x33; - // Model couplings independent of aS - // (none) + // Model couplings independent of aS + // (none) - // Model parameters dependent on aS - //double mdl_sqrt__aS, G, mdl_G__exp__2; // now computed event-by-event (running alphas #373) + // Model parameters dependent on aS + //double mdl_sqrt__aS, G, mdl_G__exp__2; // now computed event-by-event (running alphas #373) - // Model couplings dependent on aS - //cxsmpl GC_10, GC_11; // now computed event-by-event (running alphas #373) + // Model couplings dependent on aS + //cxsmpl GC_10, GC_11; // now computed event-by-event (running alphas #373) - // Set parameters that are unchanged during the run - void setIndependentParameters( SLHAReader& slha ); + // Set parameters that are unchanged during the run + void setIndependentParameters( SLHAReader& slha ); - // Set couplings that are unchanged during the run - void setIndependentCouplings(); + // Set couplings that are unchanged during the run + void setIndependentCouplings(); - // Set parameters that are changed event by event - //void setDependentParameters(); // now computed event-by-event (running alphas #373) + // Set parameters that are changed event by event + //void setDependentParameters(); // now computed event-by-event (running alphas #373) - // Set couplings that are changed event by event - //void setDependentCouplings(); // now computed event-by-event (running alphas #373) + // Set couplings that are changed event by event + //void setDependentCouplings(); // now computed event-by-event (running alphas #373) - // Print parameters that are unchanged during the run - void printIndependentParameters(); + // Print parameters that are unchanged during the run + void printIndependentParameters(); - // Print couplings that are unchanged during the run - void printIndependentCouplings(); + // Print couplings that are unchanged during the run + void printIndependentCouplings(); - // Print parameters that are changed event by event - //void printDependentParameters(); // now computed event-by-event (running alphas #373) + // Print parameters that are changed event by event + //void printDependentParameters(); // now computed event-by-event (running alphas #373) - // Print couplings that are changed event by event - //void printDependentCouplings(); // now computed event-by-event (running alphas #373) + // Print couplings that are changed event by event + //void printDependentCouplings(); // now computed event-by-event (running alphas #373) -private: + private: - static Parameters_sm* instance; -}; + static Parameters_sm* instance; + }; + +} // end namespace mg5amcGpu/mg5amcCpu #else #include #include -// Hardcoded constexpr physics parameters -namespace Parameters_sm // keep the same name rather than HardcodedParameters_sm for simplicity +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { - // Constexpr implementation of sqrt (see https://stackoverflow.com/a/34134071) - double constexpr sqrtNewtonRaphson( double x, double curr, double prev ) + // Hardcoded constexpr physics parameters + namespace Parameters_sm // keep the same name rather than HardcodedParameters_sm for simplicity { - return curr == prev ? curr : sqrtNewtonRaphson( x, 0.5 * ( curr + x / curr ), curr ); - } - double constexpr constexpr_sqrt( double x ) - { - return x >= 0 // && x < std::numeric_limits::infinity() // avoid -Wtautological-constant-compare warning in fast math - ? sqrtNewtonRaphson( x, x, 0 ) - : std::numeric_limits::quiet_NaN(); - } + // Constexpr implementation of sqrt (see https://stackoverflow.com/a/34134071) + double constexpr sqrtNewtonRaphson( double x, double curr, double prev ) + { + return curr == prev ? curr : sqrtNewtonRaphson( x, 0.5 * ( curr + x / curr ), curr ); + } + double constexpr constexpr_sqrt( double x ) + { + return x >= 0 // && x < std::numeric_limits::infinity() // avoid -Wtautological-constant-compare warning in fast math + ? sqrtNewtonRaphson( x, x, 0 ) + : std::numeric_limits::quiet_NaN(); + } - // Constexpr implementation of floor (see https://stackoverflow.com/a/66146159) - constexpr int constexpr_floor( double d ) - { - const int i = static_cast( d ); - return d < i ? i - 1 : i; - } + // Constexpr implementation of floor (see https://stackoverflow.com/a/66146159) + constexpr int constexpr_floor( double d ) + { + const int i = static_cast( d ); + return d < i ? i - 1 : i; + } - // Constexpr implementation of pow - constexpr double constexpr_pow( double base, double exp ) - { - // NB(1): this implementation of constexpr_pow requires exponent >= 0 - assert( exp >= 0 ); // NB would fail at compile time with "error: call to non-‘constexpr’ function ‘void __assert_fail'" - // NB(2): this implementation of constexpr_pow requires an integer exponent - const int iexp = constexpr_floor( exp ); - assert( static_cast( iexp ) == exp ); // NB would fail at compile time with "error: call to non-‘constexpr’ function ‘void __assert_fail'" - // Iterative implementation of pow if exp is a non negative integer - return iexp == 0 ? 1 : base * constexpr_pow( base, iexp - 1 ); + // Constexpr implementation of pow + constexpr double constexpr_pow( double base, double exp ) + { + // NB(1): this implementation of constexpr_pow requires exponent >= 0 + assert( exp >= 0 ); // NB would fail at compile time with "error: call to non-‘constexpr’ function ‘void __assert_fail'" + // NB(2): this implementation of constexpr_pow requires an integer exponent + const int iexp = constexpr_floor( exp ); + assert( static_cast( iexp ) == exp ); // NB would fail at compile time with "error: call to non-‘constexpr’ function ‘void __assert_fail'" + // Iterative implementation of pow if exp is a non negative integer + return iexp == 0 ? 1 : base * constexpr_pow( base, iexp - 1 ); + } + + // Model parameters independent of aS + constexpr double zero = 0; + constexpr double ZERO = 0; + constexpr double mdl_WH = 6.382339e-03; + constexpr double mdl_WW = 2.047600e+00; + constexpr double mdl_WZ = 2.441404e+00; + constexpr double mdl_WT = 1.491500e+00; + constexpr double mdl_ymtau = 1.777000e+00; + constexpr double mdl_ymt = 1.730000e+02; + constexpr double mdl_ymb = 4.700000e+00; + //constexpr double aS = 1.180000e-01; // now retrieved event-by-event (as G) from Fortran (running alphas #373) + constexpr double mdl_Gf = 1.166390e-05; + constexpr double aEWM1 = 1.325070e+02; + constexpr double mdl_MH = 1.250000e+02; + constexpr double mdl_MZ = 9.118800e+01; + constexpr double mdl_MTA = 1.777000e+00; + constexpr double mdl_MT = 1.730000e+02; + constexpr double mdl_MB = 4.700000e+00; + constexpr double mdl_conjg__CKM3x3 = 1.; + constexpr double mdl_conjg__CKM1x1 = 1.; + constexpr double mdl_CKM3x3 = 1.; + constexpr cxsmpl mdl_complexi = cxsmpl( 0., 1. ); + constexpr double mdl_MZ__exp__2 = ( ( mdl_MZ ) * ( mdl_MZ ) ); + constexpr double mdl_MZ__exp__4 = ( ( mdl_MZ ) * ( mdl_MZ ) * ( mdl_MZ ) * ( mdl_MZ ) ); + constexpr double mdl_sqrt__2 = constexpr_sqrt( 2. ); + constexpr double mdl_MH__exp__2 = ( ( mdl_MH ) * ( mdl_MH ) ); + constexpr double mdl_aEW = 1. / aEWM1; + constexpr double mdl_MW = constexpr_sqrt( mdl_MZ__exp__2 / 2. + constexpr_sqrt( mdl_MZ__exp__4 / 4. - ( mdl_aEW * M_PI * mdl_MZ__exp__2 ) / ( mdl_Gf * mdl_sqrt__2 ) ) ); + constexpr double mdl_sqrt__aEW = constexpr_sqrt( mdl_aEW ); + constexpr double mdl_ee = 2. * mdl_sqrt__aEW * constexpr_sqrt( M_PI ); + constexpr double mdl_MW__exp__2 = ( ( mdl_MW ) * ( mdl_MW ) ); + constexpr double mdl_sw2 = 1. - mdl_MW__exp__2 / mdl_MZ__exp__2; + constexpr double mdl_cw = constexpr_sqrt( 1. - mdl_sw2 ); + constexpr double mdl_sqrt__sw2 = constexpr_sqrt( mdl_sw2 ); + constexpr double mdl_sw = mdl_sqrt__sw2; + constexpr double mdl_g1 = mdl_ee / mdl_cw; + constexpr double mdl_gw = mdl_ee / mdl_sw; + constexpr double mdl_vev = ( 2. * mdl_MW * mdl_sw ) / mdl_ee; + constexpr double mdl_vev__exp__2 = ( ( mdl_vev ) * ( mdl_vev ) ); + constexpr double mdl_lam = mdl_MH__exp__2 / ( 2. * mdl_vev__exp__2 ); + constexpr double mdl_yb = ( mdl_ymb * mdl_sqrt__2 ) / mdl_vev; + constexpr double mdl_yt = ( mdl_ymt * mdl_sqrt__2 ) / mdl_vev; + constexpr double mdl_ytau = ( mdl_ymtau * mdl_sqrt__2 ) / mdl_vev; + constexpr double mdl_muH = constexpr_sqrt( mdl_lam * mdl_vev__exp__2 ); + constexpr cxsmpl mdl_I1x33 = mdl_yb * mdl_conjg__CKM3x3; + constexpr cxsmpl mdl_I2x33 = mdl_yt * mdl_conjg__CKM3x3; + constexpr cxsmpl mdl_I3x33 = mdl_CKM3x3 * mdl_yt; + constexpr cxsmpl mdl_I4x33 = mdl_CKM3x3 * mdl_yb; + constexpr double mdl_ee__exp__2 = ( ( mdl_ee ) * ( mdl_ee ) ); + constexpr double mdl_sw__exp__2 = ( ( mdl_sw ) * ( mdl_sw ) ); + constexpr double mdl_cw__exp__2 = ( ( mdl_cw ) * ( mdl_cw ) ); + + // Model couplings independent of aS + // (none) + + // Model parameters dependent on aS + //constexpr double mdl_sqrt__aS = //constexpr_sqrt( aS ); // now computed event-by-event (running alphas #373) + //constexpr double G = 2. * mdl_sqrt__aS * //constexpr_sqrt( M_PI ); // now computed event-by-event (running alphas #373) + //constexpr double mdl_G__exp__2 = ( ( G ) * ( G ) ); // now computed event-by-event (running alphas #373) + + // Model couplings dependent on aS + //constexpr cxsmpl GC_10 = -G; // now computed event-by-event (running alphas #373) + //constexpr cxsmpl GC_11 = mdl_complexi * G; // now computed event-by-event (running alphas #373) + + // Print parameters that are unchanged during the run + void printIndependentParameters(); + + // Print couplings that are unchanged during the run + void printIndependentCouplings(); + + // Print parameters that are changed event by event + //void printDependentParameters(); // now computed event-by-event (running alphas #373) + + // Print couplings that are changed event by event + //void printDependentCouplings(); // now computed event-by-event (running alphas #373) } - // Model parameters independent of aS - constexpr double zero = 0; - constexpr double ZERO = 0; - constexpr double mdl_WH = 6.382339e-03; - constexpr double mdl_WW = 2.047600e+00; - constexpr double mdl_WZ = 2.441404e+00; - constexpr double mdl_WT = 1.491500e+00; - constexpr double mdl_ymtau = 1.777000e+00; - constexpr double mdl_ymt = 1.730000e+02; - constexpr double mdl_ymb = 4.700000e+00; - //constexpr double aS = 1.180000e-01; // now retrieved event-by-event (as G) from Fortran (running alphas #373) - constexpr double mdl_Gf = 1.166390e-05; - constexpr double aEWM1 = 1.325070e+02; - constexpr double mdl_MH = 1.250000e+02; - constexpr double mdl_MZ = 9.118800e+01; - constexpr double mdl_MTA = 1.777000e+00; - constexpr double mdl_MT = 1.730000e+02; - constexpr double mdl_MB = 4.700000e+00; - constexpr double mdl_conjg__CKM3x3 = 1.; - constexpr double mdl_conjg__CKM1x1 = 1.; - constexpr double mdl_CKM3x3 = 1.; - constexpr cxsmpl mdl_complexi = cxsmpl( 0., 1. ); - constexpr double mdl_MZ__exp__2 = ( ( mdl_MZ ) * ( mdl_MZ ) ); - constexpr double mdl_MZ__exp__4 = ( ( mdl_MZ ) * ( mdl_MZ ) * ( mdl_MZ ) * ( mdl_MZ ) ); - constexpr double mdl_sqrt__2 = constexpr_sqrt( 2. ); - constexpr double mdl_MH__exp__2 = ( ( mdl_MH ) * ( mdl_MH ) ); - constexpr double mdl_aEW = 1. / aEWM1; - constexpr double mdl_MW = constexpr_sqrt( mdl_MZ__exp__2 / 2. + constexpr_sqrt( mdl_MZ__exp__4 / 4. - ( mdl_aEW * M_PI * mdl_MZ__exp__2 ) / ( mdl_Gf * mdl_sqrt__2 ) ) ); - constexpr double mdl_sqrt__aEW = constexpr_sqrt( mdl_aEW ); - constexpr double mdl_ee = 2. * mdl_sqrt__aEW * constexpr_sqrt( M_PI ); - constexpr double mdl_MW__exp__2 = ( ( mdl_MW ) * ( mdl_MW ) ); - constexpr double mdl_sw2 = 1. - mdl_MW__exp__2 / mdl_MZ__exp__2; - constexpr double mdl_cw = constexpr_sqrt( 1. - mdl_sw2 ); - constexpr double mdl_sqrt__sw2 = constexpr_sqrt( mdl_sw2 ); - constexpr double mdl_sw = mdl_sqrt__sw2; - constexpr double mdl_g1 = mdl_ee / mdl_cw; - constexpr double mdl_gw = mdl_ee / mdl_sw; - constexpr double mdl_vev = ( 2. * mdl_MW * mdl_sw ) / mdl_ee; - constexpr double mdl_vev__exp__2 = ( ( mdl_vev ) * ( mdl_vev ) ); - constexpr double mdl_lam = mdl_MH__exp__2 / ( 2. * mdl_vev__exp__2 ); - constexpr double mdl_yb = ( mdl_ymb * mdl_sqrt__2 ) / mdl_vev; - constexpr double mdl_yt = ( mdl_ymt * mdl_sqrt__2 ) / mdl_vev; - constexpr double mdl_ytau = ( mdl_ymtau * mdl_sqrt__2 ) / mdl_vev; - constexpr double mdl_muH = constexpr_sqrt( mdl_lam * mdl_vev__exp__2 ); - constexpr cxsmpl mdl_I1x33 = mdl_yb * mdl_conjg__CKM3x3; - constexpr cxsmpl mdl_I2x33 = mdl_yt * mdl_conjg__CKM3x3; - constexpr cxsmpl mdl_I3x33 = mdl_CKM3x3 * mdl_yt; - constexpr cxsmpl mdl_I4x33 = mdl_CKM3x3 * mdl_yb; - constexpr double mdl_ee__exp__2 = ( ( mdl_ee ) * ( mdl_ee ) ); - constexpr double mdl_sw__exp__2 = ( ( mdl_sw ) * ( mdl_sw ) ); - constexpr double mdl_cw__exp__2 = ( ( mdl_cw ) * ( mdl_cw ) ); - - // Model couplings independent of aS - // (none) - - // Model parameters dependent on aS - //constexpr double mdl_sqrt__aS = //constexpr_sqrt( aS ); // now computed event-by-event (running alphas #373) - //constexpr double G = 2. * mdl_sqrt__aS * //constexpr_sqrt( M_PI ); // now computed event-by-event (running alphas #373) - //constexpr double mdl_G__exp__2 = ( ( G ) * ( G ) ); // now computed event-by-event (running alphas #373) - - // Model couplings dependent on aS - //constexpr cxsmpl GC_10 = -G; // now computed event-by-event (running alphas #373) - //constexpr cxsmpl GC_11 = mdl_complexi * G; // now computed event-by-event (running alphas #373) - - // Print parameters that are unchanged during the run - void printIndependentParameters(); - - // Print couplings that are unchanged during the run - void printIndependentCouplings(); - - // Print parameters that are changed event by event - //void printDependentParameters(); // now computed event-by-event (running alphas #373) - - // Print couplings that are changed event by event - //void printDependentCouplings(); // now computed event-by-event (running alphas #373) -} +} // end namespace mg5amcGpu/mg5amcCpu #endif //========================================================================== -namespace Parameters_sm_dependentCouplings +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { - constexpr size_t ndcoup = 2; // #couplings that vary event by event because they depend on the running alphas QCD - constexpr size_t idcoup_GC_10 = 0; - constexpr size_t idcoup_GC_11 = 1; - struct DependentCouplings_sv + namespace Parameters_sm_dependentCouplings { - cxtype_sv GC_10; - cxtype_sv GC_11; - }; + constexpr size_t ndcoup = 2; // #couplings that vary event by event because they depend on the running alphas QCD + constexpr size_t idcoup_GC_10 = 0; + constexpr size_t idcoup_GC_11 = 1; + struct DependentCouplings_sv + { + cxtype_sv GC_10; + cxtype_sv GC_11; + }; #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wunused-variable" // e.g. <> #pragma GCC diagnostic ignored "-Wunused-parameter" // e.g. <> @@ -215,51 +240,45 @@ namespace Parameters_sm_dependentCouplings #pragma nv_diagnostic push #pragma nv_diag_suppress 177 // e.g. <> #endif - __host__ __device__ inline const DependentCouplings_sv computeDependentCouplings_fromG( const fptype_sv& G_sv ) - { + __host__ __device__ inline const DependentCouplings_sv computeDependentCouplings_fromG( const fptype_sv& G_sv ) + { #ifdef MGONGPU_HARDCODE_PARAM - using namespace Parameters_sm; + using namespace Parameters_sm; #endif - // NB: hardcode cxtype cI(0,1) instead of cxtype (or hardcoded cxsmpl) mdl_complexi (which exists in Parameters_sm) because: - // (1) mdl_complexi is always (0,1); (2) mdl_complexi is undefined in device code; (3) need cxsmpl conversion to cxtype in code below - const cxtype cI( 0., 1. ); - DependentCouplings_sv out; - // Begin SM implementation - no special handling of vectors of floats as in EFT (#439) - { - const fptype_sv& G = G_sv; - // Model parameters dependent on aS - //const fptype_sv mdl_sqrt__aS = constexpr_sqrt( aS ); - //const fptype_sv G = 2. * mdl_sqrt__aS * constexpr_sqrt( M_PI ); - const fptype_sv mdl_G__exp__2 = ( ( G ) * ( G ) ); - // Model couplings dependent on aS - out.GC_10 = -G; - out.GC_11 = cI * G; + // NB: hardcode cxtype cI(0,1) instead of cxtype (or hardcoded cxsmpl) mdl_complexi (which exists in Parameters_sm) because: + // (1) mdl_complexi is always (0,1); (2) mdl_complexi is undefined in device code; (3) need cxsmpl conversion to cxtype in code below + const cxtype cI( 0., 1. ); + DependentCouplings_sv out; + // Begin SM implementation - no special handling of vectors of floats as in EFT (#439) + { + const fptype_sv& G = G_sv; + // Model parameters dependent on aS + //const fptype_sv mdl_sqrt__aS = constexpr_sqrt( aS ); + //const fptype_sv G = 2. * mdl_sqrt__aS * constexpr_sqrt( M_PI ); + const fptype_sv mdl_G__exp__2 = ( ( G ) * ( G ) ); + // Model couplings dependent on aS + out.GC_10 = -G; + out.GC_11 = cI * G; + } + // End SM implementation - no special handling of vectors of floats as in EFT (#439) + return out; } - // End SM implementation - no special handling of vectors of floats as in EFT (#439) - return out; - } #ifdef __CUDACC__ #pragma GCC diagnostic pop #pragma nv_diagnostic pop #endif -} + } -//========================================================================== + //========================================================================== -namespace Parameters_sm_independentCouplings -{ - constexpr size_t nicoup = 0; // #couplings that are fixed for all events because they do not depend on the running alphas QCD - // NB: there are no aS-independent couplings in this physics process -} + namespace Parameters_sm_independentCouplings + { + constexpr size_t nicoup = 0; // #couplings that are fixed for all events because they do not depend on the running alphas QCD + // NB: there are no aS-independent couplings in this physics process + } -//========================================================================== + //========================================================================== -#ifdef __CUDACC__ -namespace mg5amcGpu -#else -namespace mg5amcCpu -#endif -{ #pragma GCC diagnostic push #ifndef __clang__ #pragma GCC diagnostic ignored "-Wunused-but-set-variable" // e.g. <> @@ -284,7 +303,8 @@ namespace mg5amcCpu return; } #pragma GCC diagnostic pop -} + +} // end namespace mg5amcGpu/mg5amcCpu //========================================================================== diff --git a/epochX/cudacpp/gg_tt.mad/src/cudacpp_src.mk b/epochX/cudacpp/gg_tt.mad/src/cudacpp_src.mk index 21b6d924ff..554d7a704c 100644 --- a/epochX/cudacpp/gg_tt.mad/src/cudacpp_src.mk +++ b/epochX/cudacpp/gg_tt.mad/src/cudacpp_src.mk @@ -38,7 +38,13 @@ endif #------------------------------------------------------------------------------- -#=== Configure ccache for CUDA and C++ builds +#=== Configure the CUDA compiler (note: NVCC is already exported including ccache) + +###$(info NVCC=$(NVCC)) + +#------------------------------------------------------------------------------- + +#=== Configure ccache for C++ builds (note: NVCC is already exported including ccache) # Enable ccache if USECCACHE=1 ifeq ($(USECCACHE)$(shell echo $(CXX) | grep ccache),1) @@ -47,11 +53,6 @@ endif #ifeq ($(USECCACHE)$(shell echo $(AR) | grep ccache),1) # override AR:=ccache $(AR) #endif -#ifneq ($(NVCC),) -# ifeq ($(USECCACHE)$(shell echo $(NVCC) | grep ccache),1) -# override NVCC:=ccache $(NVCC) -# endif -#endif #------------------------------------------------------------------------------- @@ -115,7 +116,9 @@ else ifneq ($(shell $(CXX) --version | grep ^nvc++),) # support nvc++ #531 $(error Unknown AVX='$(AVX)': only 'none', 'sse4', 'avx2', '512y' and '512z' are supported) endif else - ifeq ($(AVX),sse4) + ifeq ($(AVX),none) + override AVXFLAGS = -march=x86-64 # no SIMD (see #588) + else ifeq ($(AVX),sse4) override AVXFLAGS = -march=nehalem # SSE4.2 with 128 width (xmm registers) else ifeq ($(AVX),avx2) override AVXFLAGS = -march=haswell # AVX2 with 256 width (ymm registers) [DEFAULT for clang] @@ -216,7 +219,7 @@ MG5AMC_COMMONLIB = mg5amc_common all.$(TAG): $(BUILDDIR)/.build.$(TAG) $(LIBDIR)/.build.$(TAG) $(LIBDIR)/lib$(MG5AMC_COMMONLIB).so # Target (and build options): debug -debug: OPTFLAGS = -g -O0 -DDEBUG2 +debug: OPTFLAGS = -g -O0 debug: all.$(TAG) # Target: tag-specific build lockfiles @@ -237,17 +240,31 @@ $(LIBDIR)/.build.$(TAG): # Generic target and build rules: objects from C++ compilation $(BUILDDIR)/%.o : %.cc *.h $(BUILDDIR)/.build.$(TAG) - @if [ ! -d $(BUILDDIR) ]; then mkdir -p $(BUILDDIR); fi - $(CXX) $(CPPFLAGS) $(CXXFLAGS) -c $< -o $@ + @if [ ! -d $(BUILDDIR) ]; then echo "mkdir -p $(BUILDDIR)"; mkdir -p $(BUILDDIR); fi + $(CXX) $(CPPFLAGS) $(CXXFLAGS) -fPIC -c $< -o $@ + +# Generic target and build rules: objects from CUDA compilation +$(BUILDDIR)/%_cu.o : %.cc *.h $(BUILDDIR)/.build.$(TAG) + @if [ ! -d $(BUILDDIR) ]; then echo "mkdir -p $(BUILDDIR)"; mkdir -p $(BUILDDIR); fi + $(NVCC) $(CPPFLAGS) $(CUFLAGS) -Xcompiler -fPIC -c -x cu $< -o $@ #------------------------------------------------------------------------------- cxx_objects=$(addprefix $(BUILDDIR)/, Parameters_sm.o read_slha.o) +ifneq ($(NVCC),) +cu_objects=$(addprefix $(BUILDDIR)/, Parameters_sm_cu.o) +endif # Target (and build rules): common (src) library +ifneq ($(NVCC),) +$(LIBDIR)/lib$(MG5AMC_COMMONLIB).so : $(cxx_objects) $(cu_objects) + @if [ ! -d $(LIBDIR) ]; then echo "mkdir -p $(LIBDIR)"; mkdir -p $(LIBDIR); fi + $(NVCC) -shared -o $@ $(cxx_objects) $(cu_objects) +else $(LIBDIR)/lib$(MG5AMC_COMMONLIB).so : $(cxx_objects) @if [ ! -d $(LIBDIR) ]; then echo "mkdir -p $(LIBDIR)"; mkdir -p $(LIBDIR); fi - $(CXX) -shared -o$@ $(cxx_objects) + $(CXX) -shared -o $@ $(cxx_objects) +endif #------------------------------------------------------------------------------- diff --git a/epochX/cudacpp/gg_tt.mad/src/mgOnGpuConfig.h b/epochX/cudacpp/gg_tt.mad/src/mgOnGpuConfig.h index 881353abac..cacab1031a 100644 --- a/epochX/cudacpp/gg_tt.mad/src/mgOnGpuConfig.h +++ b/epochX/cudacpp/gg_tt.mad/src/mgOnGpuConfig.h @@ -98,6 +98,7 @@ #endif #endif +// NB: namespace mgOnGpu includes types which are defined in exactly the same way for CPU and GPU builds (see #318 and #725) namespace mgOnGpu { diff --git a/epochX/cudacpp/gg_tt.mad/src/mgOnGpuCxtypes.h b/epochX/cudacpp/gg_tt.mad/src/mgOnGpuCxtypes.h index 0cb2f1db7e..b56348bc58 100644 --- a/epochX/cudacpp/gg_tt.mad/src/mgOnGpuCxtypes.h +++ b/epochX/cudacpp/gg_tt.mad/src/mgOnGpuCxtypes.h @@ -43,8 +43,12 @@ // COMPLEX TYPES: SIMPLE COMPLEX CLASS (cxsmpl) //========================================================================== +// NB: namespace mgOnGpu includes types which are defined in exactly the same way for CPU and GPU builds (see #318 and #725) namespace mgOnGpu /* clang-format off */ { + // The number of floating point types in a complex type (real, imaginary) + constexpr int nx2 = 2; + // --- Type definition (simple complex type derived from cxtype_v) template class cxsmpl @@ -78,128 +82,139 @@ namespace mgOnGpu /* clang-format off */ using mgOnGpu::cxsmpl; // Printout to stream for user defined types -template -inline __host__ __device__ std::ostream& -operator<<( std::ostream& out, const cxsmpl& c ) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { - out << std::complex( c.real(), c.imag() ); - return out; -} + template + inline __host__ std::ostream& + operator<<( std::ostream& out, const cxsmpl& c ) + { + out << std::complex( c.real(), c.imag() ); + return out; + } -// Operators for cxsmpl -template -inline __host__ __device__ constexpr cxsmpl -operator+( const cxsmpl a ) -{ - return a; -} + // Operators for cxsmpl + template + inline __host__ __device__ constexpr cxsmpl + operator+( const cxsmpl a ) + { + return a; + } -template -inline __host__ __device__ constexpr cxsmpl -operator-( const cxsmpl& a ) -{ - return cxsmpl( -a.real(), -a.imag() ); -} + template + inline __host__ __device__ constexpr cxsmpl + operator-( const cxsmpl& a ) + { + return cxsmpl( -a.real(), -a.imag() ); + } -template -inline __host__ __device__ constexpr cxsmpl -operator+( const cxsmpl& a, const cxsmpl& b ) -{ - return cxsmpl( a.real() + b.real(), a.imag() + b.imag() ); -} + template + inline __host__ __device__ constexpr cxsmpl + operator+( const cxsmpl& a, const cxsmpl& b ) + { + return cxsmpl( a.real() + b.real(), a.imag() + b.imag() ); + } -template -inline __host__ __device__ constexpr cxsmpl -operator+( const FP& a, const cxsmpl& b ) -{ - return cxsmpl( a, 0 ) + b; -} + template + inline __host__ __device__ constexpr cxsmpl + operator+( const FP& a, const cxsmpl& b ) + { + return cxsmpl( a, 0 ) + b; + } -template -inline __host__ __device__ constexpr cxsmpl -operator-( const cxsmpl& a, const cxsmpl& b ) -{ - return cxsmpl( a.real() - b.real(), a.imag() - b.imag() ); -} + template + inline __host__ __device__ constexpr cxsmpl + operator-( const cxsmpl& a, const cxsmpl& b ) + { + return cxsmpl( a.real() - b.real(), a.imag() - b.imag() ); + } -template -inline __host__ __device__ constexpr cxsmpl -operator-( const FP& a, const cxsmpl& b ) -{ - return cxsmpl( a, 0 ) - b; -} + template + inline __host__ __device__ constexpr cxsmpl + operator-( const FP& a, const cxsmpl& b ) + { + return cxsmpl( a, 0 ) - b; + } -template -inline __host__ __device__ constexpr cxsmpl -operator*( const cxsmpl& a, const cxsmpl& b ) -{ - return cxsmpl( a.real() * b.real() - a.imag() * b.imag(), a.imag() * b.real() + a.real() * b.imag() ); -} + template + inline __host__ __device__ constexpr cxsmpl + operator*( const cxsmpl& a, const cxsmpl& b ) + { + return cxsmpl( a.real() * b.real() - a.imag() * b.imag(), a.imag() * b.real() + a.real() * b.imag() ); + } -template -inline __host__ __device__ constexpr cxsmpl -operator*( const FP& a, const cxsmpl& b ) -{ - return cxsmpl( a, 0 ) * b; -} + template + inline __host__ __device__ constexpr cxsmpl + operator*( const FP& a, const cxsmpl& b ) + { + return cxsmpl( a, 0 ) * b; + } -inline __host__ __device__ constexpr cxsmpl -operator*( const double& a, const cxsmpl& b ) -{ - return cxsmpl( a, 0 ) * b; -} + inline __host__ __device__ constexpr cxsmpl + operator*( const double& a, const cxsmpl& b ) + { + return cxsmpl( a, 0 ) * b; + } -template -inline __host__ __device__ constexpr cxsmpl -operator/( const cxsmpl& a, const cxsmpl& b ) -{ - FP bnorm = b.real() * b.real() + b.imag() * b.imag(); - return cxsmpl( ( a.real() * b.real() + a.imag() * b.imag() ) / bnorm, - ( a.imag() * b.real() - a.real() * b.imag() ) / bnorm ); -} + template + inline __host__ __device__ constexpr cxsmpl + operator/( const cxsmpl& a, const cxsmpl& b ) + { + FP bnorm = b.real() * b.real() + b.imag() * b.imag(); + return cxsmpl( ( a.real() * b.real() + a.imag() * b.imag() ) / bnorm, + ( a.imag() * b.real() - a.real() * b.imag() ) / bnorm ); + } -template -inline __host__ __device__ constexpr cxsmpl -operator/( const FP& a, const cxsmpl& b ) -{ - return cxsmpl( a, 0 ) / b; -} + template + inline __host__ __device__ constexpr cxsmpl + operator/( const FP& a, const cxsmpl& b ) + { + return cxsmpl( a, 0 ) / b; + } -template -inline __host__ __device__ constexpr cxsmpl -operator+( const cxsmpl& a, const FP& b ) -{ - return a + cxsmpl( b, 0 ); -} + template + inline __host__ __device__ constexpr cxsmpl + operator+( const cxsmpl& a, const FP& b ) + { + return a + cxsmpl( b, 0 ); + } -template -inline __host__ __device__ constexpr cxsmpl -operator-( const cxsmpl& a, const FP& b ) -{ - return a - cxsmpl( b, 0 ); -} + template + inline __host__ __device__ constexpr cxsmpl + operator-( const cxsmpl& a, const FP& b ) + { + return a - cxsmpl( b, 0 ); + } -template -inline __host__ __device__ constexpr cxsmpl -operator*( const cxsmpl& a, const FP& b ) -{ - return a * cxsmpl( b, 0 ); -} + template + inline __host__ __device__ constexpr cxsmpl + operator*( const cxsmpl& a, const FP& b ) + { + return a * cxsmpl( b, 0 ); + } -template -inline __host__ __device__ constexpr cxsmpl -operator/( const cxsmpl& a, const FP& b ) -{ - return a / cxsmpl( b, 0 ); + template + inline __host__ __device__ constexpr cxsmpl + operator/( const cxsmpl& a, const FP& b ) + { + return a / cxsmpl( b, 0 ); + } } //========================================================================== // COMPLEX TYPES: (PLATFORM-SPECIFIC) TYPEDEFS //========================================================================== -namespace mgOnGpu +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { - // --- Type definitions (complex type: cxtype) #ifdef __CUDACC__ // cuda #if defined MGONGPU_CUCXTYPE_THRUST @@ -221,390 +236,402 @@ namespace mgOnGpu #endif #endif - // The number of floating point types in a complex type (real, imaginary) - constexpr int nx2 = 2; - // SANITY CHECK: memory access may be based on casts of fptype[2] to cxtype (e.g. for wavefunctions) - static_assert( sizeof( cxtype ) == nx2 * sizeof( fptype ), "sizeof(cxtype) is not 2*sizeof(fptype)" ); + static_assert( sizeof( cxtype ) == mgOnGpu::nx2 * sizeof( fptype ), "sizeof(cxtype) is not 2*sizeof(fptype)" ); } -// Expose typedefs and operators outside the namespace -using mgOnGpu::cxtype; +// DANGEROUS! this was mixing different cxtype definitions for CPU and GPU builds (see #318 and #725) +// DO NOT expose typedefs and operators outside the namespace +//using mgOnGpu::cxtype; //========================================================================== // COMPLEX TYPES: (PLATFORM-SPECIFIC) FUNCTIONS AND OPERATORS //========================================================================== +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif +{ #if defined MGONGPU_CUCXTYPE_CXSMPL or defined MGONGPU_CPPCXTYPE_CXSMPL -//------------------------------ -// CUDA or C++ - using cxsmpl -//------------------------------ + //------------------------------ + // CUDA or C++ - using cxsmpl + //------------------------------ -inline __host__ __device__ cxtype -cxmake( const fptype& r, const fptype& i ) -{ - return cxtype( r, i ); // cxsmpl constructor -} + inline __host__ __device__ cxtype + cxmake( const fptype& r, const fptype& i ) + { + return cxtype( r, i ); // cxsmpl constructor + } -inline __host__ __device__ fptype -cxreal( const cxtype& c ) -{ - return c.real(); // cxsmpl::real() -} + inline __host__ __device__ fptype + cxreal( const cxtype& c ) + { + return c.real(); // cxsmpl::real() + } -inline __host__ __device__ fptype -cximag( const cxtype& c ) -{ - return c.imag(); // cxsmpl::imag() -} + inline __host__ __device__ fptype + cximag( const cxtype& c ) + { + return c.imag(); // cxsmpl::imag() + } -inline __host__ __device__ cxtype -cxconj( const cxtype& c ) -{ - return conj( c ); // conj( cxsmpl ) -} + inline __host__ __device__ cxtype + cxconj( const cxtype& c ) + { + return conj( c ); // conj( cxsmpl ) + } -inline __host__ cxtype // NOT __device__ -cxmake( const std::complex& c ) // std::complex to cxsmpl (float-to-float or float-to-double) -{ - return cxmake( c.real(), c.imag() ); -} + inline __host__ cxtype // NOT __device__ + cxmake( const std::complex& c ) // std::complex to cxsmpl (float-to-float or float-to-double) + { + return cxmake( c.real(), c.imag() ); + } -inline __host__ cxtype // NOT __device__ -cxmake( const std::complex& c ) // std::complex to cxsmpl (double-to-float or double-to-double) -{ - return cxmake( c.real(), c.imag() ); -} + inline __host__ cxtype // NOT __device__ + cxmake( const std::complex& c ) // std::complex to cxsmpl (double-to-float or double-to-double) + { + return cxmake( c.real(), c.imag() ); + } #endif // #if defined MGONGPU_CUCXTYPE_CXSMPL or defined MGONGPU_CPPCXTYPE_CXSMPL -//========================================================================== + //========================================================================== #if defined __CUDACC__ and defined MGONGPU_CUCXTYPE_THRUST // cuda + thrust -//------------------------------ -// CUDA - using thrust::complex -//------------------------------ + //------------------------------ + // CUDA - using thrust::complex + //------------------------------ -inline __host__ __device__ cxtype -cxmake( const fptype& r, const fptype& i ) -{ - return cxtype( r, i ); // thrust::complex constructor -} + inline __host__ __device__ cxtype + cxmake( const fptype& r, const fptype& i ) + { + return cxtype( r, i ); // thrust::complex constructor + } -inline __host__ __device__ fptype -cxreal( const cxtype& c ) -{ - return c.real(); // thrust::complex::real() -} + inline __host__ __device__ fptype + cxreal( const cxtype& c ) + { + return c.real(); // thrust::complex::real() + } -inline __host__ __device__ fptype -cximag( const cxtype& c ) -{ - return c.imag(); // thrust::complex::imag() -} + inline __host__ __device__ fptype + cximag( const cxtype& c ) + { + return c.imag(); // thrust::complex::imag() + } -inline __host__ __device__ cxtype -cxconj( const cxtype& c ) -{ - return conj( c ); // conj( thrust::complex ) -} + inline __host__ __device__ cxtype + cxconj( const cxtype& c ) + { + return conj( c ); // conj( thrust::complex ) + } -inline __host__ __device__ const cxtype& -cxmake( const cxtype& c ) -{ - return c; -} + inline __host__ __device__ const cxtype& + cxmake( const cxtype& c ) + { + return c; + } #endif // #if defined __CUDACC__ and defined MGONGPU_CUCXTYPE_THRUST -//========================================================================== + //========================================================================== #if defined __CUDACC__ and defined MGONGPU_CUCXTYPE_CUCOMPLEX // cuda + cucomplex -//------------------------------ -// CUDA - using cuComplex -//------------------------------ + //------------------------------ + // CUDA - using cuComplex + //------------------------------ #if defined MGONGPU_FPTYPE_DOUBLE // cuda + cucomplex + double -//+++++++++++++++++++++++++ -// cuDoubleComplex ONLY -//+++++++++++++++++++++++++ + //+++++++++++++++++++++++++ + // cuDoubleComplex ONLY + //+++++++++++++++++++++++++ -inline __host__ __device__ cxtype -cxmake( const fptype& r, const fptype& i ) -{ - return make_cuDoubleComplex( r, i ); -} + inline __host__ __device__ cxtype + cxmake( const fptype& r, const fptype& i ) + { + return make_cuDoubleComplex( r, i ); + } -inline __host__ __device__ fptype -cxreal( const cxtype& c ) -{ - return cuCreal( c ); // returns by value -} + inline __host__ __device__ fptype + cxreal( const cxtype& c ) + { + return cuCreal( c ); // returns by value + } -inline __host__ __device__ fptype -cximag( const cxtype& c ) -{ - return cuCimag( c ); // returns by value -} + inline __host__ __device__ fptype + cximag( const cxtype& c ) + { + return cuCimag( c ); // returns by value + } -inline __host__ __device__ cxtype -operator+( const cxtype& a, const cxtype& b ) -{ - return cuCadd( a, b ); -} + inline __host__ __device__ cxtype + operator+( const cxtype& a, const cxtype& b ) + { + return cuCadd( a, b ); + } -inline __host__ __device__ cxtype& -operator+=( cxtype& a, const cxtype& b ) -{ - a = cuCadd( a, b ); - return a; -} + inline __host__ __device__ cxtype& + operator+=( cxtype& a, const cxtype& b ) + { + a = cuCadd( a, b ); + return a; + } -inline __host__ __device__ cxtype -operator-( const cxtype& a, const cxtype& b ) -{ - return cuCsub( a, b ); -} + inline __host__ __device__ cxtype + operator-( const cxtype& a, const cxtype& b ) + { + return cuCsub( a, b ); + } -inline __host__ __device__ cxtype& -operator-=( cxtype& a, const cxtype& b ) -{ - a = cuCsub( a, b ); - return a; -} + inline __host__ __device__ cxtype& + operator-=( cxtype& a, const cxtype& b ) + { + a = cuCsub( a, b ); + return a; + } -inline __host__ __device__ cxtype -operator*( const cxtype& a, const cxtype& b ) -{ - return cuCmul( a, b ); -} + inline __host__ __device__ cxtype + operator*( const cxtype& a, const cxtype& b ) + { + return cuCmul( a, b ); + } -inline __host__ __device__ cxtype -operator/( const cxtype& a, const cxtype& b ) -{ - return cuCdiv( a, b ); -} + inline __host__ __device__ cxtype + operator/( const cxtype& a, const cxtype& b ) + { + return cuCdiv( a, b ); + } #elif defined MGONGPU_FPTYPE_FLOAT // cuda + cucomplex + float -//+++++++++++++++++++++++++ -// cuFloatComplex ONLY -//+++++++++++++++++++++++++ + //+++++++++++++++++++++++++ + // cuFloatComplex ONLY + //+++++++++++++++++++++++++ -inline __host__ __device__ cxtype -cxmake( const fptype& r, const fptype& i ) -{ - return make_cuFloatComplex( r, i ); -} + inline __host__ __device__ cxtype + cxmake( const fptype& r, const fptype& i ) + { + return make_cuFloatComplex( r, i ); + } -inline __host__ __device__ fptype -cxreal( const cxtype& c ) -{ - return cuCrealf( c ); // returns by value -} + inline __host__ __device__ fptype + cxreal( const cxtype& c ) + { + return cuCrealf( c ); // returns by value + } -inline __host__ __device__ fptype -cximag( const cxtype& c ) -{ - return cuCimagf( c ); // returns by value -} + inline __host__ __device__ fptype + cximag( const cxtype& c ) + { + return cuCimagf( c ); // returns by value + } -inline __host__ __device__ cxtype -operator+( const cxtype& a, const cxtype& b ) -{ - return cuCaddf( a, b ); -} + inline __host__ __device__ cxtype + operator+( const cxtype& a, const cxtype& b ) + { + return cuCaddf( a, b ); + } -inline __host__ __device__ cxtype& -operator+=( cxtype& a, const cxtype& b ) -{ - a = cuCaddf( a, b ); - return a; -} + inline __host__ __device__ cxtype& + operator+=( cxtype& a, const cxtype& b ) + { + a = cuCaddf( a, b ); + return a; + } -inline __host__ __device__ cxtype -operator-( const cxtype& a, const cxtype& b ) -{ - return cuCsubf( a, b ); -} + inline __host__ __device__ cxtype + operator-( const cxtype& a, const cxtype& b ) + { + return cuCsubf( a, b ); + } -inline __host__ __device__ cxtype& -operator-=( cxtype& a, const cxtype& b ) -{ - a = cuCsubf( a, b ); - return a; -} + inline __host__ __device__ cxtype& + operator-=( cxtype& a, const cxtype& b ) + { + a = cuCsubf( a, b ); + return a; + } -inline __host__ __device__ cxtype -operator*( const cxtype& a, const cxtype& b ) -{ - return cuCmulf( a, b ); -} + inline __host__ __device__ cxtype + operator*( const cxtype& a, const cxtype& b ) + { + return cuCmulf( a, b ); + } -inline __host__ __device__ cxtype -operator/( const cxtype& a, const cxtype& b ) -{ - return cuCdivf( a, b ); -} + inline __host__ __device__ cxtype + operator/( const cxtype& a, const cxtype& b ) + { + return cuCdivf( a, b ); + } -inline __host__ cxtype // NOT __device__ -cxmake( const std::complex& c ) // std::complex to cucomplex (cast double-to-float) -{ - return cxmake( (fptype)c.real(), (fptype)c.imag() ); -} + inline __host__ cxtype // NOT __device__ + cxmake( const std::complex& c ) // std::complex to cucomplex (cast double-to-float) + { + return cxmake( (fptype)c.real(), (fptype)c.imag() ); + } #endif -//+++++++++++++++++++++++++ -// cuDoubleComplex OR -// cuFloatComplex -//+++++++++++++++++++++++++ + //+++++++++++++++++++++++++ + // cuDoubleComplex OR + // cuFloatComplex + //+++++++++++++++++++++++++ -inline __host__ __device__ cxtype -operator+( const cxtype a ) -{ - return a; -} + inline __host__ __device__ cxtype + operator+( const cxtype a ) + { + return a; + } -inline __host__ __device__ cxtype -operator-( const cxtype& a ) -{ - return cxmake( -cxreal( a ), -cximag( a ) ); -} + inline __host__ __device__ cxtype + operator-( const cxtype& a ) + { + return cxmake( -cxreal( a ), -cximag( a ) ); + } -inline __host__ __device__ cxtype -operator+( const fptype& a, const cxtype& b ) -{ - return cxmake( a, 0 ) + b; -} + inline __host__ __device__ cxtype + operator+( const fptype& a, const cxtype& b ) + { + return cxmake( a, 0 ) + b; + } -inline __host__ __device__ cxtype -operator-( const fptype& a, const cxtype& b ) -{ - return cxmake( a, 0 ) - b; -} + inline __host__ __device__ cxtype + operator-( const fptype& a, const cxtype& b ) + { + return cxmake( a, 0 ) - b; + } -inline __host__ __device__ cxtype -operator*( const fptype& a, const cxtype& b ) -{ - return cxmake( a, 0 ) * b; -} + inline __host__ __device__ cxtype + operator*( const fptype& a, const cxtype& b ) + { + return cxmake( a, 0 ) * b; + } -inline __host__ __device__ cxtype -operator/( const fptype& a, const cxtype& b ) -{ - return cxmake( a, 0 ) / b; -} + inline __host__ __device__ cxtype + operator/( const fptype& a, const cxtype& b ) + { + return cxmake( a, 0 ) / b; + } -inline __host__ __device__ cxtype -operator+( const cxtype& a, const fptype& b ) -{ - return a + cxmake( b, 0 ); -} + inline __host__ __device__ cxtype + operator+( const cxtype& a, const fptype& b ) + { + return a + cxmake( b, 0 ); + } -inline __host__ __device__ cxtype -operator-( const cxtype& a, const fptype& b ) -{ - return a - cxmake( b, 0 ); -} + inline __host__ __device__ cxtype + operator-( const cxtype& a, const fptype& b ) + { + return a - cxmake( b, 0 ); + } -inline __host__ __device__ cxtype -operator*( const cxtype& a, const fptype& b ) -{ - return a * cxmake( b, 0 ); -} + inline __host__ __device__ cxtype + operator*( const cxtype& a, const fptype& b ) + { + return a * cxmake( b, 0 ); + } -inline __host__ __device__ cxtype -operator/( const cxtype& a, const fptype& b ) -{ - return a / cxmake( b, 0 ); -} + inline __host__ __device__ cxtype + operator/( const cxtype& a, const fptype& b ) + { + return a / cxmake( b, 0 ); + } -inline __host__ __device__ cxtype -cxconj( const cxtype& c ) -{ - return cxmake( cxreal( c ), -cximag( c ) ); -} + inline __host__ __device__ cxtype + cxconj( const cxtype& c ) + { + return cxmake( cxreal( c ), -cximag( c ) ); + } -inline __host__ cxtype // NOT __device__ -cxmake( const std::complex& c ) // std::complex to cucomplex (float-to-float or double-to-double) -{ - return cxmake( c.real(), c.imag() ); -} + inline __host__ cxtype // NOT __device__ + cxmake( const std::complex& c ) // std::complex to cucomplex (float-to-float or double-to-double) + { + return cxmake( c.real(), c.imag() ); + } #endif // #if defined __CUDACC__ and defined MGONGPU_CUCXTYPE_CUCOMPLEX -//========================================================================== + //========================================================================== #if not defined __CUDACC__ and defined MGONGPU_CPPCXTYPE_STDCOMPLEX // c++ + stdcomplex -//------------------------------ -// C++ - using std::complex -//------------------------------ + //------------------------------ + // C++ - using std::complex + //------------------------------ -inline cxtype -cxmake( const fptype& r, const fptype& i ) -{ - return cxtype( r, i ); // std::complex constructor -} + inline cxtype + cxmake( const fptype& r, const fptype& i ) + { + return cxtype( r, i ); // std::complex constructor + } -inline fptype -cxreal( const cxtype& c ) -{ - return c.real(); // std::complex::real() -} + inline fptype + cxreal( const cxtype& c ) + { + return c.real(); // std::complex::real() + } -inline fptype -cximag( const cxtype& c ) -{ - return c.imag(); // std::complex::imag() -} + inline fptype + cximag( const cxtype& c ) + { + return c.imag(); // std::complex::imag() + } -inline cxtype -cxconj( const cxtype& c ) -{ - return conj( c ); // conj( std::complex ) -} + inline cxtype + cxconj( const cxtype& c ) + { + return conj( c ); // conj( std::complex ) + } -inline const cxtype& -cxmake( const cxtype& c ) // std::complex to std::complex (float-to-float or double-to-double) -{ - return c; -} + inline const cxtype& + cxmake( const cxtype& c ) // std::complex to std::complex (float-to-float or double-to-double) + { + return c; + } #if defined MGONGPU_FPTYPE_FLOAT -inline cxtype -cxmake( const std::complex& c ) // std::complex to std::complex (cast double-to-float) -{ - return cxmake( (fptype)c.real(), (fptype)c.imag() ); -} + inline cxtype + cxmake( const std::complex& c ) // std::complex to std::complex (cast double-to-float) + { + return cxmake( (fptype)c.real(), (fptype)c.imag() ); + } #endif #endif // #if not defined __CUDACC__ and defined MGONGPU_CPPCXTYPE_STDCOMPLEX -//========================================================================== + //========================================================================== -inline __host__ __device__ const cxtype -cxmake( const cxsmpl& c ) // cxsmpl to cxtype (float-to-float or float-to-double) -{ - return cxmake( c.real(), c.imag() ); -} + inline __host__ __device__ const cxtype + cxmake( const cxsmpl& c ) // cxsmpl to cxtype (float-to-float or float-to-double) + { + return cxmake( c.real(), c.imag() ); + } -inline __host__ __device__ const cxtype -cxmake( const cxsmpl& c ) // cxsmpl to cxtype (double-to-float or double-to-double) -{ - return cxmake( c.real(), c.imag() ); -} + inline __host__ __device__ const cxtype + cxmake( const cxsmpl& c ) // cxsmpl to cxtype (double-to-float or double-to-double) + { + return cxmake( c.real(), c.imag() ); + } + +} // end namespace mg5amcGpu/mg5amcCpu //========================================================================== // COMPLEX TYPES: WRAPPER OVER RI FLOATING POINT PAIR (cxtype_ref) //========================================================================== -namespace mgOnGpu /* clang-format off */ +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { // The cxtype_ref class (a non-const reference to two fp variables) was originally designed for cxtype_v::operator[] // It used to be included in the code only when MGONGPU_HAS_CPPCXTYPEV_BRK (originally MGONGPU_HAS_CPPCXTYPE_REF) is defined @@ -615,23 +642,30 @@ namespace mgOnGpu /* clang-format off */ cxtype_ref() = delete; cxtype_ref( const cxtype_ref& ) = delete; cxtype_ref( cxtype_ref&& ) = default; // copy refs - __host__ __device__ cxtype_ref( fptype& r, fptype& i ) : m_preal( &r ), m_pimag( &i ) {} // copy refs + __host__ __device__ cxtype_ref( fptype& r, fptype& i ) + : m_preal( &r ), m_pimag( &i ) {} // copy refs cxtype_ref& operator=( const cxtype_ref& ) = delete; //__host__ __device__ cxtype_ref& operator=( cxtype_ref&& c ) {...} // REMOVED! Should copy refs or copy values? No longer needed in cxternary - __host__ __device__ cxtype_ref& operator=( const cxtype& c ) { *m_preal = cxreal( c ); *m_pimag = cximag( c ); return *this; } // copy values + __host__ __device__ cxtype_ref& operator=( const cxtype& c ) + { + *m_preal = cxreal( c ); + *m_pimag = cximag( c ); + return *this; + } // copy values __host__ __device__ operator cxtype() const { return cxmake( *m_preal, *m_pimag ); } private: fptype *m_preal, *m_pimag; // RI }; -} /* clang-format on */ -// Printout to stream for user defined types -inline __host__ __device__ std::ostream& -operator<<( std::ostream& out, const mgOnGpu::cxtype_ref& c ) -{ - out << (cxtype)c; - return out; -} + // Printout to stream for user defined types + inline __host__ __device__ std::ostream& + operator<<( std::ostream& out, const cxtype_ref& c ) + { + out << (cxtype)c; + return out; + } + +} // end namespace mg5amcGpu/mg5amcCpu //========================================================================== diff --git a/epochX/cudacpp/gg_tt.mad/src/mgOnGpuFptypes.h b/epochX/cudacpp/gg_tt.mad/src/mgOnGpuFptypes.h index a1cde16a67..905c97d700 100644 --- a/epochX/cudacpp/gg_tt.mad/src/mgOnGpuFptypes.h +++ b/epochX/cudacpp/gg_tt.mad/src/mgOnGpuFptypes.h @@ -11,82 +11,91 @@ #include #include -//========================================================================== - -#ifdef __CUDACC__ // cuda - -//------------------------------ -// Floating point types - Cuda -//------------------------------ - -/* -inline __host__ __device__ fptype -fpmax( const fptype& a, const fptype& b ) -{ - return max( a, b ); -} - -inline __host__ __device__ fptype -fpmin( const fptype& a, const fptype& b ) -{ - return min( a, b ); -} -*/ - -inline __host__ __device__ const fptype& -fpmax( const fptype& a, const fptype& b ) +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { - return ( ( b < a ) ? a : b ); -} + //========================================================================== -inline __host__ __device__ const fptype& -fpmin( const fptype& a, const fptype& b ) -{ - return ( ( a < b ) ? a : b ); -} +#ifdef __CUDACC__ // cuda -inline __host__ __device__ fptype -fpsqrt( const fptype& f ) -{ + //------------------------------ + // Floating point types - Cuda + //------------------------------ + + /* + inline __host__ __device__ fptype + fpmax( const fptype& a, const fptype& b ) + { + return max( a, b ); + } + + inline __host__ __device__ fptype + fpmin( const fptype& a, const fptype& b ) + { + return min( a, b ); + } + */ + + inline __host__ __device__ const fptype& + fpmax( const fptype& a, const fptype& b ) + { + return ( ( b < a ) ? a : b ); + } + + inline __host__ __device__ const fptype& + fpmin( const fptype& a, const fptype& b ) + { + return ( ( a < b ) ? a : b ); + } + + inline __host__ __device__ fptype + fpsqrt( const fptype& f ) + { #if defined MGONGPU_FPTYPE_FLOAT - // See https://docs.nvidia.com/cuda/cuda-math-api/group__CUDA__MATH__SINGLE.html - return sqrtf( f ); + // See https://docs.nvidia.com/cuda/cuda-math-api/group__CUDA__MATH__SINGLE.html + return sqrtf( f ); #else - // See https://docs.nvidia.com/cuda/cuda-math-api/group__CUDA__MATH__DOUBLE.html - return sqrt( f ); + // See https://docs.nvidia.com/cuda/cuda-math-api/group__CUDA__MATH__DOUBLE.html + return sqrt( f ); #endif -} + } #endif // #ifdef __CUDACC__ -//========================================================================== + //========================================================================== #ifndef __CUDACC__ -//------------------------------ -// Floating point types - C++ -//------------------------------ + //------------------------------ + // Floating point types - C++ + //------------------------------ -inline const fptype& -fpmax( const fptype& a, const fptype& b ) -{ - return std::max( a, b ); -} + inline const fptype& + fpmax( const fptype& a, const fptype& b ) + { + return std::max( a, b ); + } -inline const fptype& -fpmin( const fptype& a, const fptype& b ) -{ - return std::min( a, b ); -} + inline const fptype& + fpmin( const fptype& a, const fptype& b ) + { + return std::min( a, b ); + } -inline fptype -fpsqrt( const fptype& f ) -{ - return std::sqrt( f ); -} + inline fptype + fpsqrt( const fptype& f ) + { + return std::sqrt( f ); + } #endif // #ifndef __CUDACC__ -//========================================================================== + //========================================================================== + +} // end namespace mg5amcGpu/mg5amcCpu #endif // MGONGPUFPTYPES_H diff --git a/epochX/cudacpp/gg_tt.mad/src/mgOnGpuVectors.h b/epochX/cudacpp/gg_tt.mad/src/mgOnGpuVectors.h index 9d3e82b1e3..0d3892d026 100644 --- a/epochX/cudacpp/gg_tt.mad/src/mgOnGpuVectors.h +++ b/epochX/cudacpp/gg_tt.mad/src/mgOnGpuVectors.h @@ -31,7 +31,12 @@ //#undef MGONGPU_HAS_CPPCXTYPEV_BRK // gcc test (very slightly slower? issue #172) #endif -namespace mgOnGpu /* clang-format off */ +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { #ifdef MGONGPU_CPPSIMD @@ -72,22 +77,40 @@ namespace mgOnGpu /* clang-format off */ public: // Array initialization: zero-out as "{0}" (C and C++) or as "{}" (C++ only) // See https://en.cppreference.com/w/c/language/array_initialization#Notes - cxtype_v() : m_real{ 0 }, m_imag{ 0 } {} // RRRR=0000 IIII=0000 + cxtype_v() + : m_real{ 0 }, m_imag{ 0 } {} // RRRR=0000 IIII=0000 cxtype_v( const cxtype_v& ) = default; cxtype_v( cxtype_v&& ) = default; - cxtype_v( const fptype_v& r, const fptype_v& i ) : m_real( r ), m_imag( i ) {} - cxtype_v( const fptype_v& r ) : m_real( r ), m_imag{ 0 } {} // IIII=0000 + cxtype_v( const fptype_v& r, const fptype_v& i ) + : m_real( r ), m_imag( i ) {} + cxtype_v( const fptype_v& r ) + : m_real( r ), m_imag{ 0 } {} // IIII=0000 + cxtype_v( const fptype& r ) + : m_real( fptype_v{} + r ), m_imag{ 0 } {} // IIII=0000 cxtype_v& operator=( const cxtype_v& ) = default; cxtype_v& operator=( cxtype_v&& ) = default; - cxtype_v& operator+=( const cxtype_v& c ) { m_real += c.real(); m_imag += c.imag(); return *this; } - cxtype_v& operator-=( const cxtype_v& c ) { m_real -= c.real(); m_imag -= c.imag(); return *this; } + cxtype_v& operator+=( const cxtype_v& c ) + { + m_real += c.real(); + m_imag += c.imag(); + return *this; + } + cxtype_v& operator-=( const cxtype_v& c ) + { + m_real -= c.real(); + m_imag -= c.imag(); + return *this; + } #ifdef MGONGPU_HAS_CPPCXTYPEV_BRK // NB: THIS IS THE FUNDAMENTAL DIFFERENCE BETWEEN MGONGPU_HAS_CPPCXTYPEV_BRK DEFINED AND NOT DEFINED // NB: the alternative "clang" implementation is simpler: it simply does not have any bracket operator[] // NB: ** do NOT implement operator[] to return a value: it does not fail the build (why?) and gives unexpected results! ** cxtype_ref operator[]( size_t i ) const { return cxtype_ref( m_real[i], m_imag[i] ); } #endif - const fptype_v& real() const { return m_real; } + const fptype_v& real() const + { + return m_real; + } const fptype_v& imag() const { return m_imag; } private: fptype_v m_real, m_imag; // RRRRIIII @@ -98,7 +121,7 @@ namespace mgOnGpu /* clang-format off */ #if defined MGONGPU_FPTYPE_DOUBLE typedef long int bool_v __attribute__( ( ext_vector_type( neppV ) ) ); // bbbb #elif defined MGONGPU_FPTYPE_FLOAT - typedef int bool_v __attribute__( ( ext_vector_type( neppV ) ) ); // bbbb + typedef int bool_v __attribute__( ( ext_vector_type( neppV ) ) ); // bbbb #endif #else // gcc #if defined MGONGPU_FPTYPE_DOUBLE @@ -113,532 +136,551 @@ namespace mgOnGpu /* clang-format off */ const int neppV = 1; #endif // #ifdef MGONGPU_CPPSIMD - -} /* clang-format on */ +} //-------------------------------------------------------------------------- -// Expose typedefs outside the namespace -using mgOnGpu::neppV; -#ifdef MGONGPU_CPPSIMD -using mgOnGpu::fptype_v; -using mgOnGpu::fptype2_v; -using mgOnGpu::cxtype_v; -using mgOnGpu::bool_v; -#endif +// DANGEROUS! this was mixing different cxtype definitions for CPU and GPU builds (see #318 and #725) +// DO NOT expose typedefs outside the namespace +//using mgOnGpu::neppV; +//#ifdef MGONGPU_CPPSIMD +//using mgOnGpu::fptype_v; +//using mgOnGpu::fptype2_v; +//using mgOnGpu::cxtype_v; +//using mgOnGpu::bool_v; +//#endif -//-------------------------------------------------------------------------- +//========================================================================== +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif +{ #ifndef __CUDACC__ -// Printout to stream for user defined types + // Printout to stream for user defined types #ifndef MGONGPU_CPPCXTYPE_CXSMPL // operator<< for cxsmpl has already been defined! -inline std::ostream& -operator<<( std::ostream& out, const cxtype& c ) -{ - out << "[" << cxreal( c ) << "," << cximag( c ) << "]"; - //out << cxreal(c) << "+i" << cximag(c); - return out; -} + inline std::ostream& + operator<<( std::ostream& out, const cxtype& c ) + { + out << "[" << cxreal( c ) << "," << cximag( c ) << "]"; + //out << cxreal(c) << "+i" << cximag(c); + return out; + } #endif -/* + /* #ifdef MGONGPU_CPPSIMD -inline std::ostream& -operator<<( std::ostream& out, const bool_v& v ) -{ - out << "{ " << v[0]; - for ( int i=1; i t t~ No model currently active, so we import the Standard Model INFO: load particles INFO: load vertices -DEBUG: model prefixing takes 0.005010843276977539  +DEBUG: model prefixing takes 0.0047032833099365234  INFO: Restrict model sm with file models/sm/restrict_default.dat . DEBUG: Simplifying conditional expressions  DEBUG: remove interactions: u s w+ at order: QED=1  @@ -171,35 +171,35 @@ INFO: Processing color information for process: g g > t t~ @1 DEBUG: type(subproc_group)= [output.py at line 187]  DEBUG: type(fortran_model)= [output.py at line 188]  DEBUG: type(me)= me=0 [output.py at line 189]  -DEBUG: Entering PLUGIN_OneProcessExporter.__init__ [model_handling.py at line 1028]  -DEBUG: proc_id =  0 [model_handling.py at line 1034]  +DEBUG: Entering PLUGIN_OneProcessExporter.__init__ [model_handling.py at line 1039]  +DEBUG: proc_id =  0 [model_handling.py at line 1045]  INFO: Creating files in directory /data/avalassi/GPU2023/MG5aMC/ghav-mg5amcnlo/CODEGEN_cudacpp_gg_tt/SubProcesses/P1_Sigma_sm_gg_ttx -DEBUG: Entering PLUGIN_OneProcessExporter.generate_process_files [model_handling.py at line 1286]  -DEBUG: self.include_multi_channel is not yet defined: this is standalone_cudacpp mode [model_handling.py at line 1290]  +DEBUG: Entering PLUGIN_OneProcessExporter.generate_process_files [model_handling.py at line 1297]  +DEBUG: self.include_multi_channel is not yet defined: this is standalone_cudacpp mode [model_handling.py at line 1301]  FileWriter for /data/avalassi/GPU2023/MG5aMC/ghav-mg5amcnlo/CODEGEN_cudacpp_gg_tt/SubProcesses/P1_Sigma_sm_gg_ttx/./CPPProcess.h -DEBUG: Entering PLUGIN_OneProcessExporter.write_process_h_file [model_handling.py at line 1442]  +DEBUG: Entering PLUGIN_OneProcessExporter.write_process_h_file [model_handling.py at line 1453]  FileWriter for /data/avalassi/GPU2023/MG5aMC/ghav-mg5amcnlo/CODEGEN_cudacpp_gg_tt/SubProcesses/P1_Sigma_sm_gg_ttx/./CPPProcess.cc -DEBUG: Entering PLUGIN_OneProcessExporter.write_process_cc_file [model_handling.py at line 1464]  -DEBUG: Entering PLUGIN_OneProcessExporter.get_sigmaKin_lines [model_handling.py at line 1132]  -DEBUG: self.include_multi_channel =  False [model_handling.py at line 1133]  -DEBUG: self.support_multichannel =  True [model_handling.py at line 1134]  -DEBUG: type(self.helas_call_writer) =  [model_handling.py at line 1151]  -DEBUG: self.support_multichannel, self.include_multi_channel =  True False [model_handling.py at line 1152]  -DEBUG: multi_channel_map =  None [model_handling.py at line 1643]  -DEBUG: diag_to_config =  {} [model_handling.py at line 1698]  -DEBUG: call =  vxxxxx( momenta,m_pars->%s, cHel[ihel][%d],%+d, w_sv[%d], %d ); [model_handling.py at line 1810]  -DEBUG: ('ZERO', 0, -1, 0, 0) [model_handling.py at line 1811]  -DEBUG: call =  vxxxxx( momenta,m_pars->%s, cHel[ihel][%d],%+d, w_sv[%d], %d ); [model_handling.py at line 1810]  -DEBUG: ('ZERO', 1, -1, 1, 1) [model_handling.py at line 1811]  +DEBUG: Entering PLUGIN_OneProcessExporter.write_process_cc_file [model_handling.py at line 1475]  +DEBUG: Entering PLUGIN_OneProcessExporter.get_sigmaKin_lines [model_handling.py at line 1143]  +DEBUG: self.include_multi_channel =  False [model_handling.py at line 1144]  +DEBUG: self.support_multichannel =  True [model_handling.py at line 1145]  +DEBUG: type(self.helas_call_writer) =  [model_handling.py at line 1162]  +DEBUG: self.support_multichannel, self.include_multi_channel =  True False [model_handling.py at line 1163]  +DEBUG: multi_channel_map =  None [model_handling.py at line 1654]  +DEBUG: diag_to_config =  {} [model_handling.py at line 1709]  +DEBUG: call =  vxxxxx( momenta,m_pars->%s, cHel[ihel][%d],%+d, w_sv[%d], %d ); [model_handling.py at line 1821]  +DEBUG: ('ZERO', 0, -1, 0, 0) [model_handling.py at line 1822]  +DEBUG: call =  vxxxxx( momenta,m_pars->%s, cHel[ihel][%d],%+d, w_sv[%d], %d ); [model_handling.py at line 1821]  +DEBUG: ('ZERO', 1, -1, 1, 1) [model_handling.py at line 1822]  INFO: Created files CPPProcess.h and CPPProcess.cc in directory /data/avalassi/GPU2023/MG5aMC/ghav-mg5amcnlo/CODEGEN_cudacpp_gg_tt/SubProcesses/P1_Sigma_sm_gg_ttx/. -DEBUG: Entering PLUGIN_OneProcessExporter.edit_CMakeLists [model_handling.py at line 1332]  -DEBUG: Entering PLUGIN_OneProcessExporter.edit_check_sa [model_handling.py at line 1341]  -DEBUG: Entering PLUGIN_OneProcessExporter.edit_mgonGPU [model_handling.py at line 1358]  -DEBUG: Entering PLUGIN_OneProcessExporter.edit_processidfile [model_handling.py at line 1378]  -DEBUG: Entering PLUGIN_OneProcessExporter.edit_testxxx [model_handling.py at line 1408]  -DEBUG: Entering PLUGIN_OneProcessExporter.edit_memorybuffers [model_handling.py at line 1419]  -DEBUG: Entering PLUGIN_OneProcessExporter.edit_memoryaccesscouplings [model_handling.py at line 1430]  -DEBUG: 'Copying test reference file: ', template_ref =  Copying test reference file: /data/avalassi/GPU2023/MG5aMC/ghav-mg5amcnlo/PLUGIN/CUDACPP_SA_OUTPUT/madgraph/iolibs/template_files/../../../test/ref/dump_CPUTest.Sigma_sm_gg_ttx.txt [model_handling.py at line 1324]  +DEBUG: Entering PLUGIN_OneProcessExporter.edit_CMakeLists [model_handling.py at line 1343]  +DEBUG: Entering PLUGIN_OneProcessExporter.edit_check_sa [model_handling.py at line 1352]  +DEBUG: Entering PLUGIN_OneProcessExporter.edit_mgonGPU [model_handling.py at line 1369]  +DEBUG: Entering PLUGIN_OneProcessExporter.edit_processidfile [model_handling.py at line 1389]  +DEBUG: Entering PLUGIN_OneProcessExporter.edit_testxxx [model_handling.py at line 1419]  +DEBUG: Entering PLUGIN_OneProcessExporter.edit_memorybuffers [model_handling.py at line 1430]  +DEBUG: Entering PLUGIN_OneProcessExporter.edit_memoryaccesscouplings [model_handling.py at line 1441]  +DEBUG: 'Copying test reference file: ', template_ref =  Copying test reference file: /data/avalassi/GPU2023/MG5aMC/ghav-mg5amcnlo/PLUGIN/CUDACPP_SA_OUTPUT/madgraph/iolibs/template_files/../../../test/ref/dump_CPUTest.Sigma_sm_gg_ttx.txt [model_handling.py at line 1335]  Generated helas calls for 1 subprocesses (3 diagrams) in 0.005 s DEBUG: Entering PLUGIN_ProcessExporter.convert_model (create the model) [output.py at line 194]  ALOHA: aloha starts to compute helicity amplitudes @@ -213,25 +213,13 @@ ALOHA: aloha creates 2 routines in 0.123 s FileWriter for /data/avalassi/GPU2023/MG5aMC/ghav-mg5amcnlo/CODEGEN_cudacpp_gg_tt/src/./HelAmps_sm.h INFO: Created file HelAmps_sm.h in directory /data/avalassi/GPU2023/MG5aMC/ghav-mg5amcnlo/CODEGEN_cudacpp_gg_tt/src/. super_write_set_parameters_onlyfixMajorana (hardcoded=False) -DEBUG: 'pardef_lines size =', len(pardef_lines), ', keys size =', len(pardef_lines.keys()) =  pardef_lines size = 48 , keys size = 48 [model_handling.py at line 724]  -DEBUG: 'parset_pars size =', len(parset_pars) =  parset_pars size = 48 [model_handling.py at line 740]  -DEBUG: 'parset_lines size =', len(parset_lines), ', keys size =', len(parset_lines.keys()) =  parset_lines size = 48 , keys size = 48 [model_handling.py at line 741]  +DEBUG: 'pardef_lines size =', len(pardef_lines), ', keys size =', len(pardef_lines.keys()) =  pardef_lines size = 48 , keys size = 48 [model_handling.py at line 729]  super_write_set_parameters_onlyfixMajorana (hardcoded=True) -DEBUG: 'pardef_lines size =', len(pardef_lines), ', keys size =', len(pardef_lines.keys()) =  pardef_lines size = 3 , keys size = 3 [model_handling.py at line 724]  -DEBUG: 'parset_pars size =', len(parset_pars) =  parset_pars size = 3 [model_handling.py at line 740]  -DEBUG: 'parset_lines size =', len(parset_lines), ', keys size =', len(parset_lines.keys()) =  parset_lines size = 3 , keys size = 3 [model_handling.py at line 741]  -DEBUG: 'pardef_lines size =', len(pardef_lines), ', keys size =', len(pardef_lines.keys()) =  pardef_lines size = 2 , keys size = 2 [model_handling.py at line 724]  -DEBUG: 'parset_pars size =', len(parset_pars) =  parset_pars size = 2 [model_handling.py at line 740]  -DEBUG: 'parset_lines size =', len(parset_lines), ', keys size =', len(parset_lines.keys()) =  parset_lines size = 2 , keys size = 2 [model_handling.py at line 741]  -DEBUG: 'pardef_lines size =', len(pardef_lines), ', keys size =', len(pardef_lines.keys()) =  pardef_lines size = 3 , keys size = 3 [model_handling.py at line 724]  -DEBUG: 'parset_pars size =', len(parset_pars) =  parset_pars size = 3 [model_handling.py at line 740]  -DEBUG: 'parset_lines size =', len(parset_lines), ', keys size =', len(parset_lines.keys()) =  parset_lines size = 3 , keys size = 3 [model_handling.py at line 741]  -DEBUG: 'pardef_lines size =', len(pardef_lines), ', keys size =', len(pardef_lines.keys()) =  pardef_lines size = 2 , keys size = 2 [model_handling.py at line 724]  -DEBUG: 'parset_pars size =', len(parset_pars) =  parset_pars size = 2 [model_handling.py at line 740]  -DEBUG: 'parset_lines size =', len(parset_lines), ', keys size =', len(parset_lines.keys()) =  parset_lines size = 2 , keys size = 2 [model_handling.py at line 741]  -DEBUG: 'pardef_lines size =', len(pardef_lines), ', keys size =', len(pardef_lines.keys()) =  pardef_lines size = 2 , keys size = 2 [model_handling.py at line 724]  -DEBUG: 'parset_pars size =', len(parset_pars) =  parset_pars size = 2 [model_handling.py at line 740]  -DEBUG: 'parset_lines size =', len(parset_lines), ', keys size =', len(parset_lines.keys()) =  parset_lines size = 2 , keys size = 2 [model_handling.py at line 741]  +DEBUG: 'pardef_lines size =', len(pardef_lines), ', keys size =', len(pardef_lines.keys()) =  pardef_lines size = 3 , keys size = 3 [model_handling.py at line 729]  +DEBUG: 'pardef_lines size =', len(pardef_lines), ', keys size =', len(pardef_lines.keys()) =  pardef_lines size = 2 , keys size = 2 [model_handling.py at line 729]  +DEBUG: 'pardef_lines size =', len(pardef_lines), ', keys size =', len(pardef_lines.keys()) =  pardef_lines size = 3 , keys size = 3 [model_handling.py at line 729]  +DEBUG: 'pardef_lines size =', len(pardef_lines), ', keys size =', len(pardef_lines.keys()) =  pardef_lines size = 2 , keys size = 2 [model_handling.py at line 729]  +DEBUG: 'pardef_lines size =', len(pardef_lines), ', keys size =', len(pardef_lines.keys()) =  pardef_lines size = 2 , keys size = 2 [model_handling.py at line 729]  FileWriter for /data/avalassi/GPU2023/MG5aMC/ghav-mg5amcnlo/CODEGEN_cudacpp_gg_tt/src/./Parameters_sm.h FileWriter for /data/avalassi/GPU2023/MG5aMC/ghav-mg5amcnlo/CODEGEN_cudacpp_gg_tt/src/./Parameters_sm.cc INFO: Created files Parameters_sm.h and Parameters_sm.cc in directory @@ -239,6 +227,6 @@ INFO: /data/avalassi/GPU2023/MG5aMC/ghav-mg5amcnlo/CODEGEN_cudacpp_gg_tt/src/. a DEBUG: Entering PLUGIN_ProcessExporter.finalize [output.py at line 203]  quit -real 0m0.581s -user 0m0.514s -sys 0m0.058s +real 0m1.339s +user 0m0.494s +sys 0m0.060s diff --git a/epochX/cudacpp/gg_tt.sa/SubProcesses/Bridge.h b/epochX/cudacpp/gg_tt.sa/SubProcesses/Bridge.h index 4cafe0c997..d7e629cacd 100644 --- a/epochX/cudacpp/gg_tt.sa/SubProcesses/Bridge.h +++ b/epochX/cudacpp/gg_tt.sa/SubProcesses/Bridge.h @@ -152,32 +152,32 @@ namespace mg5amcCpu #ifdef __CUDACC__ int m_gputhreads; // number of gpu threads (default set from number of events, can be modified) int m_gpublocks; // number of gpu blocks (default set from number of events, can be modified) - mg5amcGpu::DeviceBuffer m_devMomentaF; - mg5amcGpu::DeviceBufferMomenta m_devMomentaC; - mg5amcGpu::DeviceBufferGs m_devGs; - mg5amcGpu::DeviceBufferRndNumHelicity m_devRndHel; - mg5amcGpu::DeviceBufferRndNumColor m_devRndCol; - mg5amcGpu::DeviceBufferMatrixElements m_devMEs; - mg5amcGpu::DeviceBufferSelectedHelicity m_devSelHel; - mg5amcGpu::DeviceBufferSelectedColor m_devSelCol; - mg5amcGpu::PinnedHostBufferGs m_hstGs; - mg5amcGpu::PinnedHostBufferRndNumHelicity m_hstRndHel; - mg5amcGpu::PinnedHostBufferRndNumColor m_hstRndCol; - mg5amcGpu::PinnedHostBufferMatrixElements m_hstMEs; - mg5amcGpu::PinnedHostBufferSelectedHelicity m_hstSelHel; - mg5amcGpu::PinnedHostBufferSelectedColor m_hstSelCol; - std::unique_ptr m_pmek; + DeviceBuffer m_devMomentaF; + DeviceBufferMomenta m_devMomentaC; + DeviceBufferGs m_devGs; + DeviceBufferRndNumHelicity m_devRndHel; + DeviceBufferRndNumColor m_devRndCol; + DeviceBufferMatrixElements m_devMEs; + DeviceBufferSelectedHelicity m_devSelHel; + DeviceBufferSelectedColor m_devSelCol; + PinnedHostBufferGs m_hstGs; + PinnedHostBufferRndNumHelicity m_hstRndHel; + PinnedHostBufferRndNumColor m_hstRndCol; + PinnedHostBufferMatrixElements m_hstMEs; + PinnedHostBufferSelectedHelicity m_hstSelHel; + PinnedHostBufferSelectedColor m_hstSelCol; + std::unique_ptr m_pmek; //static constexpr int s_gputhreadsmin = 16; // minimum number of gpu threads (TEST VALUE FOR MADEVENT) static constexpr int s_gputhreadsmin = 32; // minimum number of gpu threads (DEFAULT) #else - mg5amcCpu::HostBufferMomenta m_hstMomentaC; - mg5amcCpu::HostBufferGs m_hstGs; - mg5amcCpu::HostBufferRndNumHelicity m_hstRndHel; - mg5amcCpu::HostBufferRndNumColor m_hstRndCol; - mg5amcCpu::HostBufferMatrixElements m_hstMEs; - mg5amcCpu::HostBufferSelectedHelicity m_hstSelHel; - mg5amcCpu::HostBufferSelectedColor m_hstSelCol; - std::unique_ptr m_pmek; + HostBufferMomenta m_hstMomentaC; + HostBufferGs m_hstGs; + HostBufferRndNumHelicity m_hstRndHel; + HostBufferRndNumColor m_hstRndCol; + HostBufferMatrixElements m_hstMEs; + HostBufferSelectedHelicity m_hstSelHel; + HostBufferSelectedColor m_hstSelCol; + std::unique_ptr m_pmek; #endif }; @@ -244,12 +244,12 @@ namespace mg5amcCpu } std::cout << "WARNING! Instantiate device Bridge (nevt=" << m_nevt << ", gpublocks=" << m_gpublocks << ", gputhreads=" << m_gputhreads << ", gpublocks*gputhreads=" << m_gpublocks * m_gputhreads << ")" << std::endl; - mg5amcGpu::CPPProcess process( /*verbose=*/false ); - m_pmek.reset( new mg5amcGpu::MatrixElementKernelDevice( m_devMomentaC, m_devGs, m_devRndHel, m_devRndCol, m_devMEs, m_devSelHel, m_devSelCol, m_gpublocks, m_gputhreads ) ); + CPPProcess process( /*verbose=*/false ); + m_pmek.reset( new MatrixElementKernelDevice( m_devMomentaC, m_devGs, m_devRndHel, m_devRndCol, m_devMEs, m_devSelHel, m_devSelCol, m_gpublocks, m_gputhreads ) ); #else std::cout << "WARNING! Instantiate host Bridge (nevt=" << m_nevt << ")" << std::endl; - mg5amcCpu::CPPProcess process( /*verbose=*/false ); - m_pmek.reset( new mg5amcCpu::MatrixElementKernelHost( m_hstMomentaC, m_hstGs, m_hstRndHel, m_hstRndCol, m_hstMEs, m_hstSelHel, m_hstSelCol, m_nevt ) ); + CPPProcess process( /*verbose=*/false ); + m_pmek.reset( new MatrixElementKernelHost( m_hstMomentaC, m_hstGs, m_hstRndHel, m_hstRndCol, m_hstMEs, m_hstSelHel, m_hstSelCol, m_nevt ) ); #endif // __CUDACC__ process.initProc( "../../Cards/param_card.dat" ); } diff --git a/epochX/cudacpp/gg_tt.sa/SubProcesses/BridgeKernels.cc b/epochX/cudacpp/gg_tt.sa/SubProcesses/BridgeKernels.cc index cef4cb3c71..d58066c9c1 100644 --- a/epochX/cudacpp/gg_tt.sa/SubProcesses/BridgeKernels.cc +++ b/epochX/cudacpp/gg_tt.sa/SubProcesses/BridgeKernels.cc @@ -9,9 +9,6 @@ #include -constexpr int np4 = CPPProcess::np4; // dimensions of 4-momenta (E,px,py,pz) -constexpr int npar = CPPProcess::npar; // #particles in total (external = initial + final): e.g. 4 for e+ e- -> mu+ mu- - //============================================================================ #ifdef __CUDACC__ @@ -20,6 +17,9 @@ namespace mg5amcGpu namespace mg5amcCpu #endif { + constexpr int np4 = CPPProcess::np4; // dimensions of 4-momenta (E,px,py,pz) + constexpr int npar = CPPProcess::npar; // #particles in total (external = initial + final): e.g. 4 for e+ e- -> mu+ mu- + //-------------------------------------------------------------------------- BridgeKernelBase::BridgeKernelBase( const BufferMomenta& momenta, // input: momenta diff --git a/epochX/cudacpp/gg_tt.sa/SubProcesses/MemoryAccessAmplitudes.h b/epochX/cudacpp/gg_tt.sa/SubProcesses/MemoryAccessAmplitudes.h index 68f6838b5c..573b3bbbc9 100644 --- a/epochX/cudacpp/gg_tt.sa/SubProcesses/MemoryAccessAmplitudes.h +++ b/epochX/cudacpp/gg_tt.sa/SubProcesses/MemoryAccessAmplitudes.h @@ -14,142 +14,151 @@ #define MGONGPU_TRIVIAL_AMPLITUDES 1 -//---------------------------------------------------------------------------- - -#ifndef MGONGPU_TRIVIAL_AMPLITUDES - -// A class describing the internal layout of memory buffers for amplitudes -// This implementation uses an AOSOA[npagA][nx2][neppA] where nevt=npagA*neppA -// [If many implementations are used, a suffix _AOSOAv1 should be appended to the class name] -class MemoryAccessAmplitudesBase //_AOSOAv1 +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { -public: - - // Number of Events Per Page in the amplitude AOSOA memory buffer layout - static constexpr int neppA = 1; // AOS (just a test...) + //---------------------------------------------------------------------------- -private: - - friend class MemoryAccessHelper; - friend class KernelAccessHelper; - friend class KernelAccessHelper; - - // The number of floating point components of a complex number - static constexpr int nx2 = mgOnGpu::nx2; - - //-------------------------------------------------------------------------- - // NB all KernelLaunchers assume that memory access can be decomposed as "accessField = decodeRecord( accessRecord )" - // (in other words: first locate the event record for a given event, then locate an element in that record) - //-------------------------------------------------------------------------- +#ifndef MGONGPU_TRIVIAL_AMPLITUDES - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] - static __host__ __device__ inline fptype* - ieventAccessRecord( fptype* buffer, - const int ievt ) + // A class describing the internal layout of memory buffers for amplitudes + // This implementation uses an AOSOA[npagA][nx2][neppA] where nevt=npagA*neppA + // [If many implementations are used, a suffix _AOSOAv1 should be appended to the class name] + class MemoryAccessAmplitudesBase //_AOSOAv1 { - const int ipagA = ievt / neppA; // #event "A-page" - const int ieppA = ievt % neppA; // #event in the current event A-page - constexpr int ix2 = 0; - return &( buffer[ipagA * nx2 * neppA + ix2 * neppA + ieppA] ); // AOSOA[ipagA][ix2][ieppA] - } - - //-------------------------------------------------------------------------- - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, Ts... args ) <===] - // [NB: expand variadic template "Ts... args" to "const int ix2" and rename "Field" as "Ix2"] - static __host__ __device__ inline fptype& - decodeRecord( fptype* buffer, - const int ix2 ) + public: + + // Number of Events Per Page in the amplitude AOSOA memory buffer layout + static constexpr int neppA = 1; // AOS (just a test...) + + private: + + friend class MemoryAccessHelper; + friend class KernelAccessHelper; + friend class KernelAccessHelper; + + // The number of floating point components of a complex number + static constexpr int nx2 = mgOnGpu::nx2; + + //-------------------------------------------------------------------------- + // NB all KernelLaunchers assume that memory access can be decomposed as "accessField = decodeRecord( accessRecord )" + // (in other words: first locate the event record for a given event, then locate an element in that record) + //-------------------------------------------------------------------------- + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] + static __host__ __device__ inline fptype* + ieventAccessRecord( fptype* buffer, + const int ievt ) + { + const int ipagA = ievt / neppA; // #event "A-page" + const int ieppA = ievt % neppA; // #event in the current event A-page + constexpr int ix2 = 0; + return &( buffer[ipagA * nx2 * neppA + ix2 * neppA + ieppA] ); // AOSOA[ipagA][ix2][ieppA] + } + + //-------------------------------------------------------------------------- + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, Ts... args ) <===] + // [NB: expand variadic template "Ts... args" to "const int ix2" and rename "Field" as "Ix2"] + static __host__ __device__ inline fptype& + decodeRecord( fptype* buffer, + const int ix2 ) + { + constexpr int ipagA = 0; + constexpr int ieppA = 0; + return buffer[ipagA * nx2 * neppA + ix2 * neppA + ieppA]; // AOSOA[ipagA][ix2][ieppA] + } + }; + + //---------------------------------------------------------------------------- + + // A class providing access to memory buffers for a given event, based on explicit event numbers + // Its methods use the MemoryAccessHelper templates - note the use of the template keyword in template function instantiations + class MemoryAccessAmplitudes : public MemoryAccessAmplitudesBase { - constexpr int ipagA = 0; - constexpr int ieppA = 0; - return buffer[ipagA * nx2 * neppA + ix2 * neppA + ieppA]; // AOSOA[ipagA][ix2][ieppA] - } -}; + public: -//---------------------------------------------------------------------------- + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] + static constexpr auto ieventAccessRecord = MemoryAccessHelper::ieventAccessRecord; -// A class providing access to memory buffers for a given event, based on explicit event numbers -// Its methods use the MemoryAccessHelper templates - note the use of the template keyword in template function instantiations -class MemoryAccessAmplitudes : public MemoryAccessAmplitudesBase -{ -public: - - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] - static constexpr auto ieventAccessRecord = MemoryAccessHelper::ieventAccessRecord; + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (const) ===> const fptype* ieventAccessRecordConst( const fptype* buffer, const int ievt ) <===] + static constexpr auto ieventAccessRecordConst = MemoryAccessHelper::ieventAccessRecordConst; - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (const) ===> const fptype* ieventAccessRecordConst( const fptype* buffer, const int ievt ) <===] - static constexpr auto ieventAccessRecordConst = MemoryAccessHelper::ieventAccessRecordConst; + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, const int ix2 ) <===] + static constexpr auto decodeRecordIx2 = MemoryAccessHelper::decodeRecord; - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, const int ix2 ) <===] - static constexpr auto decodeRecordIx2 = MemoryAccessHelper::decodeRecord; + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (const) ===> const fptype& decodeRecordConst( const fptype* buffer, const int ix2 ) <===] + static constexpr auto decodeRecordIx2Const = + MemoryAccessHelper::template decodeRecordConst; - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (const) ===> const fptype& decodeRecordConst( const fptype* buffer, const int ix2 ) <===] - static constexpr auto decodeRecordIx2Const = - MemoryAccessHelper::template decodeRecordConst; + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (non-const) ===> fptype& ieventAccessIx2( fptype* buffer, const ievt, const int ix2 ) <===] + static constexpr auto ieventAccessIx2 = + MemoryAccessHelper::template ieventAccessField; - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (non-const) ===> fptype& ieventAccessIx2( fptype* buffer, const ievt, const int ix2 ) <===] - static constexpr auto ieventAccessIx2 = - MemoryAccessHelper::template ieventAccessField; - - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (const) ===> const fptype& ieventAccessIx2Const( const fptype* buffer, const ievt, const int ix2 ) <===] - static constexpr auto ieventAccessIx2Const = - MemoryAccessHelper::template ieventAccessFieldConst; -}; + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (const) ===> const fptype& ieventAccessIx2Const( const fptype* buffer, const ievt, const int ix2 ) <===] + static constexpr auto ieventAccessIx2Const = + MemoryAccessHelper::template ieventAccessFieldConst; + }; #endif // #ifndef MGONGPU_TRIVIAL_AMPLITUDES -//---------------------------------------------------------------------------- + //---------------------------------------------------------------------------- -// A class providing access to memory buffers for a given event, based on implicit kernel rules -// Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations -template -class KernelAccessAmplitudes -{ -public: + // A class providing access to memory buffers for a given event, based on implicit kernel rules + // Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations + template + class KernelAccessAmplitudes + { + public: #ifndef MGONGPU_TRIVIAL_AMPLITUDES - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (non-const) ===> fptype& kernelAccessIx2( fptype* buffer, const int ix2 ) <===] - static constexpr auto kernelAccessIx2 = - KernelAccessHelper::template kernelAccessField; + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (non-const) ===> fptype& kernelAccessIx2( fptype* buffer, const int ix2 ) <===] + static constexpr auto kernelAccessIx2 = + KernelAccessHelper::template kernelAccessField; - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (const) ===> const fptype& kernelAccessIx2Const( const fptype* buffer, const int ix2 ) <===] - static constexpr auto kernelAccessIx2Const = - KernelAccessHelper::template kernelAccessFieldConst; + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (const) ===> const fptype& kernelAccessIx2Const( const fptype* buffer, const int ix2 ) <===] + static constexpr auto kernelAccessIx2Const = + KernelAccessHelper::template kernelAccessFieldConst; #else - static __host__ __device__ inline cxtype_sv* - kernelAccess( fptype* buffer ) - { - return reinterpret_cast( buffer ); - } + static __host__ __device__ inline cxtype_sv* + kernelAccess( fptype* buffer ) + { + return reinterpret_cast( buffer ); + } - static __host__ __device__ inline const cxtype_sv* - kernelAccessConst( const fptype* buffer ) - { - return reinterpret_cast( buffer ); - } + static __host__ __device__ inline const cxtype_sv* + kernelAccessConst( const fptype* buffer ) + { + return reinterpret_cast( buffer ); + } #endif // #ifndef MGONGPU_TRIVIAL_AMPLITUDES -}; + }; + + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- + typedef KernelAccessAmplitudes HostAccessAmplitudes; + typedef KernelAccessAmplitudes DeviceAccessAmplitudes; -typedef KernelAccessAmplitudes HostAccessAmplitudes; -typedef KernelAccessAmplitudes DeviceAccessAmplitudes; + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- +} // end namespace mg5amcGpu/mg5amcCpu #endif // MemoryAccessAmplitudes_H diff --git a/epochX/cudacpp/gg_tt.sa/SubProcesses/MemoryAccessCouplings.h b/epochX/cudacpp/gg_tt.sa/SubProcesses/MemoryAccessCouplings.h index 15793bbec3..35a3af42e0 100644 --- a/epochX/cudacpp/gg_tt.sa/SubProcesses/MemoryAccessCouplings.h +++ b/epochX/cudacpp/gg_tt.sa/SubProcesses/MemoryAccessCouplings.h @@ -14,248 +14,257 @@ #include "MemoryAccessMomenta.h" // for MemoryAccessMomentaBase::neppM #include "MemoryBuffers.h" // for HostBufferCouplings::isaligned -//---------------------------------------------------------------------------- - -// A class describing the internal layout of memory buffers for couplings -// This implementation uses an AOSOA[npagC][ndcoup][nx2][neppC] "super-buffer" where nevt=npagC*neppC -// From the "super-buffer" for ndcoup different couplings, use idcoupAccessBuffer to access the buffer for one specific coupling -// [If many implementations are used, a suffix _AOSOAv1 should be appended to the class name] -class MemoryAccessCouplingsBase //_AOSOAv1 +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { -public: - - // Number of Events Per Page in the coupling AOSOA memory buffer layout - static constexpr int neppC = MemoryAccessMomentaBase::neppM; // use the same AOSOA striding as for momenta - - // SANITY CHECK: check that neppC is a power of two - static_assert( ispoweroftwo( neppC ), "neppC is not a power of 2" ); - - //-------------------------------------------------------------------------- - // ** NB! A single super-buffer AOSOA[npagC][ndcoup][nx2][neppC] includes data for ndcoup different couplings ** - // ** NB! The ieventAccessRecord and kernelAccess functions refer to the buffer for one individual coupling ** - // ** NB! Use idcoupAccessBuffer to add a fixed offset and locate the buffer for one given individual coupling ** - //-------------------------------------------------------------------------- - - // Locate the buffer for a single coupling (output) in a memory super-buffer (input) from the given coupling index (input) - // [Signature (non-const) ===> fptype* idcoupAccessBuffer( fptype* buffer, const int idcoup ) <===] - // NB: keep this in public even if exposed through KernelAccessCouplings: nvcc says it is inaccesible otherwise? - static __host__ __device__ inline fptype* - idcoupAccessBuffer( fptype* buffer, // input "super-buffer" - const int idcoup ) - { - constexpr int ipagC = 0; - constexpr int ieppC = 0; - constexpr int ix2 = 0; - // NB! this effectively adds an offset "idcoup * nx2 * neppC" - return &( buffer[ipagC * ndcoup * nx2 * neppC + idcoup * nx2 * neppC + ix2 * neppC + ieppC] ); // AOSOA[ipagC][idcoup][ix2][ieppC] - } - - // Locate the buffer for a single coupling (output) in a memory super-buffer (input) from the given coupling index (input) - // [Signature (const) ===> const fptype* idcoupAccessBufferConst( const fptype* buffer, const int idcoup ) <===] - // NB: keep this in public even if exposed through KernelAccessCouplings: nvcc says it is inaccesible otherwise? - static __host__ __device__ inline const fptype* - idcoupAccessBufferConst( const fptype* buffer, // input "super-buffer" - const int idcoup ) - { - return idcoupAccessBuffer( const_cast( buffer ), idcoup ); - } - -private: + //---------------------------------------------------------------------------- - friend class MemoryAccessHelper; - friend class KernelAccessHelper; - friend class KernelAccessHelper; - - // The number of couplings that dependent on the running alphas QCD in this specific process - static constexpr size_t ndcoup = Parameters_sm_dependentCouplings::ndcoup; - - // The number of floating point components of a complex number - static constexpr int nx2 = mgOnGpu::nx2; - - //-------------------------------------------------------------------------- - // NB all KernelLaunchers assume that memory access can be decomposed as "accessField = decodeRecord( accessRecord )" - // (in other words: first locate the event record for a given event, then locate an element in that record) - //-------------------------------------------------------------------------- - - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] - static __host__ __device__ inline fptype* - ieventAccessRecord( fptype* buffer, - const int ievt ) + // A class describing the internal layout of memory buffers for couplings + // This implementation uses an AOSOA[npagC][ndcoup][nx2][neppC] "super-buffer" where nevt=npagC*neppC + // From the "super-buffer" for ndcoup different couplings, use idcoupAccessBuffer to access the buffer for one specific coupling + // [If many implementations are used, a suffix _AOSOAv1 should be appended to the class name] + class MemoryAccessCouplingsBase //_AOSOAv1 { - const int ipagC = ievt / neppC; // #event "C-page" - const int ieppC = ievt % neppC; // #event in the current event C-page - constexpr int idcoup = 0; - constexpr int ix2 = 0; - return &( buffer[ipagC * ndcoup * nx2 * neppC + idcoup * nx2 * neppC + ix2 * neppC + ieppC] ); // AOSOA[ipagC][idcoup][ix2][ieppC] - } - - //-------------------------------------------------------------------------- - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, Ts... args ) <===] - // [NB: expand variadic template "Ts... args" to "const int ix2" and rename "Field" as "Ix2"] - static __host__ __device__ inline fptype& - decodeRecord( fptype* buffer, - const int ix2 ) + public: + + // Number of Events Per Page in the coupling AOSOA memory buffer layout + static constexpr int neppC = MemoryAccessMomentaBase::neppM; // use the same AOSOA striding as for momenta + + // SANITY CHECK: check that neppC is a power of two + static_assert( ispoweroftwo( neppC ), "neppC is not a power of 2" ); + + //-------------------------------------------------------------------------- + // ** NB! A single super-buffer AOSOA[npagC][ndcoup][nx2][neppC] includes data for ndcoup different couplings ** + // ** NB! The ieventAccessRecord and kernelAccess functions refer to the buffer for one individual coupling ** + // ** NB! Use idcoupAccessBuffer to add a fixed offset and locate the buffer for one given individual coupling ** + //-------------------------------------------------------------------------- + + // Locate the buffer for a single coupling (output) in a memory super-buffer (input) from the given coupling index (input) + // [Signature (non-const) ===> fptype* idcoupAccessBuffer( fptype* buffer, const int idcoup ) <===] + // NB: keep this in public even if exposed through KernelAccessCouplings: nvcc says it is inaccesible otherwise? + static __host__ __device__ inline fptype* + idcoupAccessBuffer( fptype* buffer, // input "super-buffer" + const int idcoup ) + { + constexpr int ipagC = 0; + constexpr int ieppC = 0; + constexpr int ix2 = 0; + // NB! this effectively adds an offset "idcoup * nx2 * neppC" + return &( buffer[ipagC * ndcoup * nx2 * neppC + idcoup * nx2 * neppC + ix2 * neppC + ieppC] ); // AOSOA[ipagC][idcoup][ix2][ieppC] + } + + // Locate the buffer for a single coupling (output) in a memory super-buffer (input) from the given coupling index (input) + // [Signature (const) ===> const fptype* idcoupAccessBufferConst( const fptype* buffer, const int idcoup ) <===] + // NB: keep this in public even if exposed through KernelAccessCouplings: nvcc says it is inaccesible otherwise? + static __host__ __device__ inline const fptype* + idcoupAccessBufferConst( const fptype* buffer, // input "super-buffer" + const int idcoup ) + { + return idcoupAccessBuffer( const_cast( buffer ), idcoup ); + } + + private: + + friend class MemoryAccessHelper; + friend class KernelAccessHelper; + friend class KernelAccessHelper; + + // The number of couplings that dependent on the running alphas QCD in this specific process + static constexpr size_t ndcoup = Parameters_sm_dependentCouplings::ndcoup; + + // The number of floating point components of a complex number + static constexpr int nx2 = mgOnGpu::nx2; + + //-------------------------------------------------------------------------- + // NB all KernelLaunchers assume that memory access can be decomposed as "accessField = decodeRecord( accessRecord )" + // (in other words: first locate the event record for a given event, then locate an element in that record) + //-------------------------------------------------------------------------- + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] + static __host__ __device__ inline fptype* + ieventAccessRecord( fptype* buffer, + const int ievt ) + { + const int ipagC = ievt / neppC; // #event "C-page" + const int ieppC = ievt % neppC; // #event in the current event C-page + constexpr int idcoup = 0; + constexpr int ix2 = 0; + return &( buffer[ipagC * ndcoup * nx2 * neppC + idcoup * nx2 * neppC + ix2 * neppC + ieppC] ); // AOSOA[ipagC][idcoup][ix2][ieppC] + } + + //-------------------------------------------------------------------------- + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, Ts... args ) <===] + // [NB: expand variadic template "Ts... args" to "const int ix2" and rename "Field" as "Ix2"] + static __host__ __device__ inline fptype& + decodeRecord( fptype* buffer, + const int ix2 ) + { + constexpr int ipagC = 0; + constexpr int ieppC = 0; + // NB! the offset "idcoup * nx2 * neppC" has been added in idcoupAccessBuffer + constexpr int idcoup = 0; + return buffer[ipagC * ndcoup * nx2 * neppC + idcoup * nx2 * neppC + ix2 * neppC + ieppC]; // AOSOA[ipagC][idcoup][ix2][ieppC] + } + }; + + //---------------------------------------------------------------------------- + + // A class providing access to memory buffers for a given event, based on explicit event numbers + // Its methods use the MemoryAccessHelper templates - note the use of the template keyword in template function instantiations + class MemoryAccessCouplings : public MemoryAccessCouplingsBase { - constexpr int ipagC = 0; - constexpr int ieppC = 0; - // NB! the offset "idcoup * nx2 * neppC" has been added in idcoupAccessBuffer - constexpr int idcoup = 0; - return buffer[ipagC * ndcoup * nx2 * neppC + idcoup * nx2 * neppC + ix2 * neppC + ieppC]; // AOSOA[ipagC][idcoup][ix2][ieppC] - } -}; - -//---------------------------------------------------------------------------- - -// A class providing access to memory buffers for a given event, based on explicit event numbers -// Its methods use the MemoryAccessHelper templates - note the use of the template keyword in template function instantiations -class MemoryAccessCouplings : public MemoryAccessCouplingsBase -{ -public: - - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] - static constexpr auto ieventAccessRecord = MemoryAccessHelper::ieventAccessRecord; - - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (const) ===> const fptype* ieventAccessRecordConst( const fptype* buffer, const int ievt ) <===] - static constexpr auto ieventAccessRecordConst = MemoryAccessHelper::ieventAccessRecordConst; - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, const int ix2 ) <===] - static constexpr auto decodeRecordIx2 = MemoryAccessHelper::decodeRecord; - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (const) ===> const fptype& decodeRecordConst( const fptype* buffer, const int ix2 ) <===] - static constexpr auto decodeRecordIx2Const = - MemoryAccessHelper::template decodeRecordConst; - - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (non-const) ===> fptype& ieventAccessIx2( fptype* buffer, const ievt, const int ix2 ) <===] - static constexpr auto ieventAccessIx2 = - MemoryAccessHelper::template ieventAccessField; - - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (const) ===> const fptype& ieventAccessIx2Const( const fptype* buffer, const ievt, const int ix2 ) <===] - static constexpr auto ieventAccessIx2Const = - MemoryAccessHelper::template ieventAccessFieldConst; -}; - -//---------------------------------------------------------------------------- - -// A class providing access to memory buffers for a given event, based on implicit kernel rules -// Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations -template -class KernelAccessCouplings -{ -public: - - // Expose selected functions from MemoryAccessCouplingsBase - static constexpr auto idcoupAccessBuffer = MemoryAccessCouplingsBase::idcoupAccessBuffer; - static constexpr auto idcoupAccessBufferConst = MemoryAccessCouplingsBase::idcoupAccessBufferConst; - - // Expose selected functions from MemoryAccessCouplings - static constexpr auto ieventAccessRecordConst = MemoryAccessCouplings::ieventAccessRecordConst; - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (non-const, SCALAR) ===> fptype& kernelAccessIx2( fptype* buffer, const int ix2 ) <===] - static constexpr auto kernelAccessIx2_s = - KernelAccessHelper::template kernelAccessField; - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (const, SCALAR) ===> const fptype& kernelAccessIx2Const( const fptype* buffer, const int ix2 ) <===] - static constexpr auto kernelAccessIx2Const_s = - KernelAccessHelper::template kernelAccessFieldConst; - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (non const, SCALAR OR VECTOR) ===> fptype_sv& kernelAccessIx2( fptype* buffer, const int ix2 ) <===] - static __host__ __device__ inline fptype_sv& - kernelAccessIx2( fptype* buffer, - const int ix2 ) + public: + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] + static constexpr auto ieventAccessRecord = MemoryAccessHelper::ieventAccessRecord; + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (const) ===> const fptype* ieventAccessRecordConst( const fptype* buffer, const int ievt ) <===] + static constexpr auto ieventAccessRecordConst = MemoryAccessHelper::ieventAccessRecordConst; + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, const int ix2 ) <===] + static constexpr auto decodeRecordIx2 = MemoryAccessHelper::decodeRecord; + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (const) ===> const fptype& decodeRecordConst( const fptype* buffer, const int ix2 ) <===] + static constexpr auto decodeRecordIx2Const = + MemoryAccessHelper::template decodeRecordConst; + + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (non-const) ===> fptype& ieventAccessIx2( fptype* buffer, const ievt, const int ix2 ) <===] + static constexpr auto ieventAccessIx2 = + MemoryAccessHelper::template ieventAccessField; + + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (const) ===> const fptype& ieventAccessIx2Const( const fptype* buffer, const ievt, const int ix2 ) <===] + static constexpr auto ieventAccessIx2Const = + MemoryAccessHelper::template ieventAccessFieldConst; + }; + + //---------------------------------------------------------------------------- + + // A class providing access to memory buffers for a given event, based on implicit kernel rules + // Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations + template + class KernelAccessCouplings { - fptype& out = kernelAccessIx2_s( buffer, ix2 ); + public: + + // Expose selected functions from MemoryAccessCouplingsBase + static constexpr auto idcoupAccessBuffer = MemoryAccessCouplingsBase::idcoupAccessBuffer; + static constexpr auto idcoupAccessBufferConst = MemoryAccessCouplingsBase::idcoupAccessBufferConst; + + // Expose selected functions from MemoryAccessCouplings + static constexpr auto ieventAccessRecordConst = MemoryAccessCouplings::ieventAccessRecordConst; + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (non-const, SCALAR) ===> fptype& kernelAccessIx2( fptype* buffer, const int ix2 ) <===] + static constexpr auto kernelAccessIx2_s = + KernelAccessHelper::template kernelAccessField; + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (const, SCALAR) ===> const fptype& kernelAccessIx2Const( const fptype* buffer, const int ix2 ) <===] + static constexpr auto kernelAccessIx2Const_s = + KernelAccessHelper::template kernelAccessFieldConst; + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (non const, SCALAR OR VECTOR) ===> fptype_sv& kernelAccessIx2( fptype* buffer, const int ix2 ) <===] + static __host__ __device__ inline fptype_sv& + kernelAccessIx2( fptype* buffer, + const int ix2 ) + { + fptype& out = kernelAccessIx2_s( buffer, ix2 ); #ifndef MGONGPU_CPPSIMD - return out; + return out; #else - // NB: derived from MemoryAccessMomenta, restricting the implementation to contiguous aligned arrays - constexpr int neppC = MemoryAccessCouplingsBase::neppC; - static_assert( neppC >= neppV ); // ASSUME CONTIGUOUS ARRAYS - static_assert( neppC % neppV == 0 ); // ASSUME CONTIGUOUS ARRAYS - static_assert( mg5amcCpu::HostBufferCouplings::isaligned() ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) - //assert( (size_t)( buffer ) % mgOnGpu::cppAlign == 0 ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) - return mg5amcCpu::fptypevFromAlignedArray( out ); // SIMD bulk load of neppV, use reinterpret_cast + // NB: derived from MemoryAccessMomenta, restricting the implementation to contiguous aligned arrays + constexpr int neppC = MemoryAccessCouplingsBase::neppC; + static_assert( neppC >= neppV ); // ASSUME CONTIGUOUS ARRAYS + static_assert( neppC % neppV == 0 ); // ASSUME CONTIGUOUS ARRAYS + static_assert( mg5amcCpu::HostBufferCouplings::isaligned() ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) + //assert( (size_t)( buffer ) % mgOnGpu::cppAlign == 0 ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) + return mg5amcCpu::fptypevFromAlignedArray( out ); // SIMD bulk load of neppV, use reinterpret_cast #endif - } + } - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (const, SCALAR OR VECTOR) ===> const fptype_sv& kernelAccessIx2Const( const fptype* buffer, const int ix2 ) <===] - static __host__ __device__ inline const fptype_sv& - kernelAccessIx2Const( const fptype* buffer, - const int ix2 ) - { - return kernelAccessIx2( const_cast( buffer ), ix2 ); - } - - /* - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (const, SCALAR OR VECTOR) ===> const fptype_sv& kernelAccessIx2Const( const fptype* buffer, const int ix2 ) <===] - static __host__ __device__ inline const fptype_sv& - kernelAccessIx2Const( const fptype* buffer, - const int ix2 ) - { - const fptype& out = kernelAccessIx2Const_s( buffer, ix2 ); + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (const, SCALAR OR VECTOR) ===> const fptype_sv& kernelAccessIx2Const( const fptype* buffer, const int ix2 ) <===] + static __host__ __device__ inline const fptype_sv& + kernelAccessIx2Const( const fptype* buffer, + const int ix2 ) + { + return kernelAccessIx2( const_cast( buffer ), ix2 ); + } + + /* + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (const, SCALAR OR VECTOR) ===> const fptype_sv& kernelAccessIx2Const( const fptype* buffer, const int ix2 ) <===] + static __host__ __device__ inline const fptype_sv& + kernelAccessIx2Const( const fptype* buffer, + const int ix2 ) + { + const fptype& out = kernelAccessIx2Const_s( buffer, ix2 ); #ifndef MGONGPU_CPPSIMD - return out; + return out; #else - // NB: derived from MemoryAccessMomenta, restricting the implementation to contiguous aligned arrays - constexpr int neppC = MemoryAccessCouplingsBase::neppC; - static_assert( neppC >= neppV ); // ASSUME CONTIGUOUS ARRAYS - static_assert( neppC % neppV == 0 ); // ASSUME CONTIGUOUS ARRAYS - static_assert( mg5amcCpu::HostBufferCouplings::isaligned() ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) - //assert( (size_t)( buffer ) % mgOnGpu::cppAlign == 0 ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) - return mg5amcCpu::fptypevFromAlignedArray( out ); // SIMD bulk load of neppV, use reinterpret_cast + // NB: derived from MemoryAccessMomenta, restricting the implementation to contiguous aligned arrays + constexpr int neppC = MemoryAccessCouplingsBase::neppC; + static_assert( neppC >= neppV ); // ASSUME CONTIGUOUS ARRAYS + static_assert( neppC % neppV == 0 ); // ASSUME CONTIGUOUS ARRAYS + static_assert( mg5amcCpu::HostBufferCouplings::isaligned() ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) + //assert( (size_t)( buffer ) % mgOnGpu::cppAlign == 0 ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) + return mg5amcCpu::fptypevFromAlignedArray( out ); // SIMD bulk load of neppV, use reinterpret_cast #endif - } - */ - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (non const, SCALAR OR VECTOR) ===> cxtype_sv_ref kernelAccess( fptype* buffer ) <===] - static __host__ __device__ inline cxtype_sv_ref - kernelAccess( fptype* buffer ) - { - /* - fptype_sv& real = kernelAccessIx2( buffer, 0 ); - fptype_sv& imag = kernelAccessIx2( buffer, 1 ); - printf( "C_ACCESS::kernelAccess: pbuffer=%p pr=%p pi=%p\n", buffer, &real, &imag ); - return cxtype_sv_ref( real, imag ); - */ - return cxtype_sv_ref( kernelAccessIx2( buffer, 0 ), - kernelAccessIx2( buffer, 1 ) ); - } - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (const, SCALAR OR VECTOR) ===> cxtype_sv kernelAccessConst( const fptype* buffer ) <===] - static __host__ __device__ inline cxtype_sv - kernelAccessConst( const fptype* buffer ) - { - /* - const fptype_sv& real = kernelAccessIx2Const( buffer, 0 ); - const fptype_sv& imag = kernelAccessIx2Const( buffer, 1 ); - printf( "C_ACCESS::kernelAccessConst: pbuffer=%p pr=%p pi=%p\n", buffer, &real, &imag ); - return cxtype_sv( real, imag ); + } */ - return cxtype_sv( kernelAccessIx2Const( buffer, 0 ), - kernelAccessIx2Const( buffer, 1 ) ); - } -}; - -//---------------------------------------------------------------------------- - -typedef KernelAccessCouplings HostAccessCouplings; -typedef KernelAccessCouplings DeviceAccessCouplings; -//---------------------------------------------------------------------------- + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (non const, SCALAR OR VECTOR) ===> cxtype_sv_ref kernelAccess( fptype* buffer ) <===] + static __host__ __device__ inline cxtype_sv_ref + kernelAccess( fptype* buffer ) + { + /* + fptype_sv& real = kernelAccessIx2( buffer, 0 ); + fptype_sv& imag = kernelAccessIx2( buffer, 1 ); + printf( "C_ACCESS::kernelAccess: pbuffer=%p pr=%p pi=%p\n", buffer, &real, &imag ); + return cxtype_sv_ref( real, imag ); + */ + return cxtype_sv_ref( kernelAccessIx2( buffer, 0 ), + kernelAccessIx2( buffer, 1 ) ); + } + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (const, SCALAR OR VECTOR) ===> cxtype_sv kernelAccessConst( const fptype* buffer ) <===] + static __host__ __device__ inline cxtype_sv + kernelAccessConst( const fptype* buffer ) + { + /* + const fptype_sv& real = kernelAccessIx2Const( buffer, 0 ); + const fptype_sv& imag = kernelAccessIx2Const( buffer, 1 ); + printf( "C_ACCESS::kernelAccessConst: pbuffer=%p pr=%p pi=%p\n", buffer, &real, &imag ); + return cxtype_sv( real, imag ); + */ + return cxtype_sv( kernelAccessIx2Const( buffer, 0 ), + kernelAccessIx2Const( buffer, 1 ) ); + } + }; + + //---------------------------------------------------------------------------- + + typedef KernelAccessCouplings HostAccessCouplings; + typedef KernelAccessCouplings DeviceAccessCouplings; + + //---------------------------------------------------------------------------- + +} // end namespace mg5amcGpu/mg5amcCpu #endif // MemoryAccessCouplings_H diff --git a/epochX/cudacpp/gg_tt.sa/SubProcesses/MemoryAccessCouplingsFixed.h b/epochX/cudacpp/gg_tt.sa/SubProcesses/MemoryAccessCouplingsFixed.h index 81193ab261..dc0d93afff 100644 --- a/epochX/cudacpp/gg_tt.sa/SubProcesses/MemoryAccessCouplingsFixed.h +++ b/epochX/cudacpp/gg_tt.sa/SubProcesses/MemoryAccessCouplingsFixed.h @@ -13,63 +13,72 @@ //#include "MemoryAccessHelpers.h" -//---------------------------------------------------------------------------- - -// A class describing the internal layout of memory buffers for fixed couplings -// This implementation uses a STRUCT[ndcoup][nx2] "super-buffer" layout: in practice, the cIPC global array -// From the "super-buffer" for ndcoup different couplings, use idcoupAccessBuffer to access the buffer for one specific coupling -// [If many implementations are used, a suffix _Sv1 should be appended to the class name] -class MemoryAccessCouplingsFixedBase //_Sv1 +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { -public: + //---------------------------------------------------------------------------- - // Locate the buffer for a single coupling (output) in a memory super-buffer (input) from the given coupling index (input) - // [Signature (const) ===> const fptype* iicoupAccessBufferConst( const fptype* buffer, const int iicoup ) <===] - static __host__ __device__ inline const fptype* - iicoupAccessBufferConst( const fptype* buffer, // input "super-buffer": in practice, the cIPC global array - const int iicoup ) + // A class describing the internal layout of memory buffers for fixed couplings + // This implementation uses a STRUCT[ndcoup][nx2] "super-buffer" layout: in practice, the cIPC global array + // From the "super-buffer" for ndcoup different couplings, use idcoupAccessBuffer to access the buffer for one specific coupling + // [If many implementations are used, a suffix _Sv1 should be appended to the class name] + class MemoryAccessCouplingsFixedBase //_Sv1 { - constexpr int ix2 = 0; - // NB! this effectively adds an offset "iicoup * nx2" - return &( buffer[iicoup * nx2 + ix2] ); // STRUCT[idcoup][ix2] - } - -private: - - // The number of floating point components of a complex number - static constexpr int nx2 = mgOnGpu::nx2; -}; - -//---------------------------------------------------------------------------- + public: + + // Locate the buffer for a single coupling (output) in a memory super-buffer (input) from the given coupling index (input) + // [Signature (const) ===> const fptype* iicoupAccessBufferConst( const fptype* buffer, const int iicoup ) <===] + static __host__ __device__ inline const fptype* + iicoupAccessBufferConst( const fptype* buffer, // input "super-buffer": in practice, the cIPC global array + const int iicoup ) + { + constexpr int ix2 = 0; + // NB! this effectively adds an offset "iicoup * nx2" + return &( buffer[iicoup * nx2 + ix2] ); // STRUCT[idcoup][ix2] + } + + private: + + // The number of floating point components of a complex number + static constexpr int nx2 = mgOnGpu::nx2; + }; + + //---------------------------------------------------------------------------- + + // A class providing access to memory buffers for a given event, based on implicit kernel rules + // Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations + template + class KernelAccessCouplingsFixed + { + public: -// A class providing access to memory buffers for a given event, based on implicit kernel rules -// Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations -template -class KernelAccessCouplingsFixed -{ -public: + // Expose selected functions from MemoryAccessCouplingsFixedBase + static constexpr auto iicoupAccessBufferConst = MemoryAccessCouplingsFixedBase::iicoupAccessBufferConst; - // Expose selected functions from MemoryAccessCouplingsFixedBase - static constexpr auto iicoupAccessBufferConst = MemoryAccessCouplingsFixedBase::iicoupAccessBufferConst; + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (const, SCALAR OR VECTOR) ===> cxtype_sv kernelAccessConst( const fptype* buffer ) <===] + static __host__ __device__ inline const cxtype_sv + kernelAccessConst( const fptype* buffer ) + { + // TRIVIAL ACCESS to fixed-couplings buffers! + //return cxmake( fptype_sv{ buffer[0] }, fptype_sv{ buffer[1] } ); // NO! BUG #339! + const fptype_sv r_sv = fptype_sv{ 0 } + buffer[0]; + const fptype_sv i_sv = fptype_sv{ 0 } + buffer[1]; + return cxmake( r_sv, i_sv ); // ugly but effective + } + }; - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (const, SCALAR OR VECTOR) ===> cxtype_sv kernelAccessConst( const fptype* buffer ) <===] - static __host__ __device__ inline const cxtype_sv - kernelAccessConst( const fptype* buffer ) - { - // TRIVIAL ACCESS to fixed-couplings buffers! - //return cxmake( fptype_sv{ buffer[0] }, fptype_sv{ buffer[1] } ); // NO! BUG #339! - const fptype_sv r_sv = fptype_sv{ 0 } + buffer[0]; - const fptype_sv i_sv = fptype_sv{ 0 } + buffer[1]; - return cxmake( r_sv, i_sv ); // ugly but effective - } -}; + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- + typedef KernelAccessCouplingsFixed HostAccessCouplingsFixed; + typedef KernelAccessCouplingsFixed DeviceAccessCouplingsFixed; -typedef KernelAccessCouplingsFixed HostAccessCouplingsFixed; -typedef KernelAccessCouplingsFixed DeviceAccessCouplingsFixed; + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- +} // end namespace mg5amcGpu/mg5amcCpu #endif // MemoryAccessCouplingsFixed_H diff --git a/epochX/cudacpp/gg_tt.sa/SubProcesses/MemoryAccessDenominators.h b/epochX/cudacpp/gg_tt.sa/SubProcesses/MemoryAccessDenominators.h index e76ae65ff9..3bce635718 100644 --- a/epochX/cudacpp/gg_tt.sa/SubProcesses/MemoryAccessDenominators.h +++ b/epochX/cudacpp/gg_tt.sa/SubProcesses/MemoryAccessDenominators.h @@ -9,15 +9,24 @@ #include "MemoryAccessGs.h" -//---------------------------------------------------------------------------- +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif +{ + //---------------------------------------------------------------------------- + + // A class describing the internal layout of memory buffers for denominators + // This implementation reuses the plain ARRAY[nevt] implementation of MemoryAccessGs -// A class describing the internal layout of memory buffers for denominators -// This implementation reuses the plain ARRAY[nevt] implementation of MemoryAccessGs + typedef KernelAccessGs HostAccessDenominators; + typedef KernelAccessGs DeviceAccessDenominators; -typedef KernelAccessGs HostAccessDenominators; -typedef KernelAccessGs DeviceAccessDenominators; + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- +} // end namespace mg5amcGpu/mg5amcCpu #endif #endif // MemoryAccessDenominators_H diff --git a/epochX/cudacpp/gg_tt.sa/SubProcesses/MemoryAccessGs.h b/epochX/cudacpp/gg_tt.sa/SubProcesses/MemoryAccessGs.h index 8996c0554c..31311aa375 100644 --- a/epochX/cudacpp/gg_tt.sa/SubProcesses/MemoryAccessGs.h +++ b/epochX/cudacpp/gg_tt.sa/SubProcesses/MemoryAccessGs.h @@ -12,142 +12,151 @@ #include "MemoryAccessVectors.h" #include "MemoryBuffers.h" // for HostBufferMatrixElements::isaligned -//---------------------------------------------------------------------------- - -// A class describing the internal layout of memory buffers for Gs -// This implementation uses a plain ARRAY[nevt] -// [If many implementations are used, a suffix _ARRAYv1 should be appended to the class name] -class MemoryAccessGsBase //_ARRAYv1 +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { -private: - - friend class MemoryAccessHelper; - friend class KernelAccessHelper; - friend class KernelAccessHelper; - - //-------------------------------------------------------------------------- - // NB all KernelLaunchers assume that memory access can be decomposed as "accessField = decodeRecord( accessRecord )" - // (in other words: first locate the event record for a given event, then locate an element in that record) - //-------------------------------------------------------------------------- - - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] - static __host__ __device__ inline fptype* - ieventAccessRecord( fptype* buffer, - const int ievt ) - { - return &( buffer[ievt] ); // ARRAY[nevt] - } - - //-------------------------------------------------------------------------- + //---------------------------------------------------------------------------- - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, Ts... args ) <===] - // [NB: expand variadic template "Ts... args" to empty and rename "Field" as empty] - static __host__ __device__ inline fptype& - decodeRecord( fptype* buffer ) + // A class describing the internal layout of memory buffers for Gs + // This implementation uses a plain ARRAY[nevt] + // [If many implementations are used, a suffix _ARRAYv1 should be appended to the class name] + class MemoryAccessGsBase //_ARRAYv1 { - constexpr int ievt = 0; - return buffer[ievt]; // ARRAY[nevt] - } -}; - -//---------------------------------------------------------------------------- - -// A class providing access to memory buffers for a given event, based on explicit event numbers -// Its methods use the MemoryAccessHelper templates - note the use of the template keyword in template function instantiations -class MemoryAccessGs : public MemoryAccessGsBase -{ -public: - - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] - static constexpr auto ieventAccessRecord = MemoryAccessHelper::ieventAccessRecord; - - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (const) ===> const fptype* ieventAccessRecordConst( const fptype* buffer, const int ievt ) <===] - static constexpr auto ieventAccessRecordConst = MemoryAccessHelper::ieventAccessRecordConst; - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer ) <===] - static constexpr auto decodeRecord = MemoryAccessHelper::decodeRecord; - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (const) ===> const fptype& decodeRecordConst( const fptype* buffer ) <===] - static constexpr auto decodeRecordConst = - MemoryAccessHelper::template decodeRecordConst<>; - - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (non-const) ===> fptype& ieventAccess( fptype* buffer, const ievt ) <===] - static constexpr auto ieventAccess = - MemoryAccessHelper::template ieventAccessField<>; - - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (const) ===> const fptype& ieventAccessConst( const fptype* buffer, const ievt ) <===] - static constexpr auto ieventAccessConst = - MemoryAccessHelper::template ieventAccessFieldConst<>; -}; - -//---------------------------------------------------------------------------- - -// A class providing access to memory buffers for a given event, based on implicit kernel rules -// Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations -template -class KernelAccessGs -{ -public: - - // Expose selected functions from MemoryAccessGs - static constexpr auto ieventAccessRecord = MemoryAccessGs::ieventAccessRecord; - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (non-const, SCALAR) ===> fptype& kernelAccess( fptype* buffer ) <===] - static constexpr auto kernelAccess_s = - KernelAccessHelper::template kernelAccessField<>; // requires cuda 11.4 - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) - // [Signature (non-const, SCALAR OR VECTOR) ===> fptype_sv& kernelAccess( fptype* buffer ) <===] - static __host__ __device__ inline fptype_sv& - kernelAccess( fptype* buffer ) + private: + + friend class MemoryAccessHelper; + friend class KernelAccessHelper; + friend class KernelAccessHelper; + + //-------------------------------------------------------------------------- + // NB all KernelLaunchers assume that memory access can be decomposed as "accessField = decodeRecord( accessRecord )" + // (in other words: first locate the event record for a given event, then locate an element in that record) + //-------------------------------------------------------------------------- + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] + static __host__ __device__ inline fptype* + ieventAccessRecord( fptype* buffer, + const int ievt ) + { + return &( buffer[ievt] ); // ARRAY[nevt] + } + + //-------------------------------------------------------------------------- + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, Ts... args ) <===] + // [NB: expand variadic template "Ts... args" to empty and rename "Field" as empty] + static __host__ __device__ inline fptype& + decodeRecord( fptype* buffer ) + { + constexpr int ievt = 0; + return buffer[ievt]; // ARRAY[nevt] + } + }; + + //---------------------------------------------------------------------------- + + // A class providing access to memory buffers for a given event, based on explicit event numbers + // Its methods use the MemoryAccessHelper templates - note the use of the template keyword in template function instantiations + class MemoryAccessGs : public MemoryAccessGsBase + { + public: + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] + static constexpr auto ieventAccessRecord = MemoryAccessHelper::ieventAccessRecord; + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (const) ===> const fptype* ieventAccessRecordConst( const fptype* buffer, const int ievt ) <===] + static constexpr auto ieventAccessRecordConst = MemoryAccessHelper::ieventAccessRecordConst; + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer ) <===] + static constexpr auto decodeRecord = MemoryAccessHelper::decodeRecord; + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (const) ===> const fptype& decodeRecordConst( const fptype* buffer ) <===] + static constexpr auto decodeRecordConst = + MemoryAccessHelper::template decodeRecordConst<>; + + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (non-const) ===> fptype& ieventAccess( fptype* buffer, const ievt ) <===] + static constexpr auto ieventAccess = + MemoryAccessHelper::template ieventAccessField<>; + + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (const) ===> const fptype& ieventAccessConst( const fptype* buffer, const ievt ) <===] + static constexpr auto ieventAccessConst = + MemoryAccessHelper::template ieventAccessFieldConst<>; + }; + + //---------------------------------------------------------------------------- + + // A class providing access to memory buffers for a given event, based on implicit kernel rules + // Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations + template + class KernelAccessGs { - fptype& out = kernelAccess_s( buffer ); + public: + + // Expose selected functions from MemoryAccessGs + static constexpr auto ieventAccessRecord = MemoryAccessGs::ieventAccessRecord; + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (non-const, SCALAR) ===> fptype& kernelAccess( fptype* buffer ) <===] + static constexpr auto kernelAccess_s = + KernelAccessHelper::template kernelAccessField<>; // requires cuda 11.4 + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) + // [Signature (non-const, SCALAR OR VECTOR) ===> fptype_sv& kernelAccess( fptype* buffer ) <===] + static __host__ __device__ inline fptype_sv& + kernelAccess( fptype* buffer ) + { + fptype& out = kernelAccess_s( buffer ); #ifndef MGONGPU_CPPSIMD - return out; + return out; #else - // NB: derived from MemoryAccessMomenta, restricting the implementation to contiguous aligned arrays (#435) - static_assert( mg5amcCpu::HostBufferGs::isaligned() ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) - //assert( (size_t)( buffer ) % mgOnGpu::cppAlign == 0 ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) - return mg5amcCpu::fptypevFromAlignedArray( out ); // SIMD bulk load of neppV, use reinterpret_cast + // NB: derived from MemoryAccessMomenta, restricting the implementation to contiguous aligned arrays (#435) + static_assert( mg5amcCpu::HostBufferGs::isaligned() ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) + //assert( (size_t)( buffer ) % mgOnGpu::cppAlign == 0 ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) + return mg5amcCpu::fptypevFromAlignedArray( out ); // SIMD bulk load of neppV, use reinterpret_cast #endif - } - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (const, SCALAR) ===> const fptype& kernelAccessConst( const fptype* buffer ) <===] - static constexpr auto kernelAccessConst_s = - KernelAccessHelper::template kernelAccessFieldConst<>; // requires cuda 11.4 - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) - // [Signature (const, SCALAR OR VECTOR) ===> const fptype_sv& kernelAccess( const fptype* buffer ) <===] - static __host__ __device__ inline const fptype_sv& - kernelAccessConst( const fptype* buffer ) - { - const fptype& out = kernelAccessConst_s( buffer ); + } + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (const, SCALAR) ===> const fptype& kernelAccessConst( const fptype* buffer ) <===] + static constexpr auto kernelAccessConst_s = + KernelAccessHelper::template kernelAccessFieldConst<>; // requires cuda 11.4 + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) + // [Signature (const, SCALAR OR VECTOR) ===> const fptype_sv& kernelAccess( const fptype* buffer ) <===] + static __host__ __device__ inline const fptype_sv& + kernelAccessConst( const fptype* buffer ) + { + const fptype& out = kernelAccessConst_s( buffer ); #ifndef MGONGPU_CPPSIMD - return out; + return out; #else - // NB: derived from MemoryAccessMomenta, restricting the implementation to contiguous aligned arrays (#435) - static_assert( mg5amcCpu::HostBufferGs::isaligned() ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) - //assert( (size_t)( buffer ) % mgOnGpu::cppAlign == 0 ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) - return mg5amcCpu::fptypevFromAlignedArray( out ); // SIMD bulk load of neppV, use reinterpret_cast + // NB: derived from MemoryAccessMomenta, restricting the implementation to contiguous aligned arrays (#435) + static_assert( mg5amcCpu::HostBufferGs::isaligned() ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) + //assert( (size_t)( buffer ) % mgOnGpu::cppAlign == 0 ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) + return mg5amcCpu::fptypevFromAlignedArray( out ); // SIMD bulk load of neppV, use reinterpret_cast #endif - } -}; + } + }; + + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- + typedef KernelAccessGs HostAccessGs; + typedef KernelAccessGs DeviceAccessGs; -typedef KernelAccessGs HostAccessGs; -typedef KernelAccessGs DeviceAccessGs; + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- +} // end namespace mg5amcGpu/mg5amcCpu #endif // MemoryAccessGs_H diff --git a/epochX/cudacpp/gg_tt.sa/SubProcesses/MemoryAccessMatrixElements.h b/epochX/cudacpp/gg_tt.sa/SubProcesses/MemoryAccessMatrixElements.h index b2a82d9acf..f32e6fea5b 100644 --- a/epochX/cudacpp/gg_tt.sa/SubProcesses/MemoryAccessMatrixElements.h +++ b/epochX/cudacpp/gg_tt.sa/SubProcesses/MemoryAccessMatrixElements.h @@ -12,126 +12,135 @@ #include "MemoryAccessVectors.h" #include "MemoryBuffers.h" // for HostBufferMatrixElements::isaligned -//---------------------------------------------------------------------------- - -// A class describing the internal layout of memory buffers for matrix elements -// This implementation uses a plain ARRAY[nevt] -// [If many implementations are used, a suffix _ARRAYv1 should be appended to the class name] -class MemoryAccessMatrixElementsBase //_ARRAYv1 +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { -private: - - friend class MemoryAccessHelper; - friend class KernelAccessHelper; - friend class KernelAccessHelper; - - //-------------------------------------------------------------------------- - // NB all KernelLaunchers assume that memory access can be decomposed as "accessField = decodeRecord( accessRecord )" - // (in other words: first locate the event record for a given event, then locate an element in that record) - //-------------------------------------------------------------------------- - - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] - static __host__ __device__ inline fptype* - ieventAccessRecord( fptype* buffer, - const int ievt ) - { - return &( buffer[ievt] ); // ARRAY[nevt] - } + //---------------------------------------------------------------------------- - //-------------------------------------------------------------------------- - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, Ts... args ) <===] - // [NB: expand variadic template "Ts... args" to empty and rename "Field" as empty] - static __host__ __device__ inline fptype& - decodeRecord( fptype* buffer ) + // A class describing the internal layout of memory buffers for matrix elements + // This implementation uses a plain ARRAY[nevt] + // [If many implementations are used, a suffix _ARRAYv1 should be appended to the class name] + class MemoryAccessMatrixElementsBase //_ARRAYv1 { - constexpr int ievt = 0; - return buffer[ievt]; // ARRAY[nevt] - } -}; - -//---------------------------------------------------------------------------- - -// A class providing access to memory buffers for a given event, based on explicit event numbers -// Its methods use the MemoryAccessHelper templates - note the use of the template keyword in template function instantiations -class MemoryAccessMatrixElements : public MemoryAccessMatrixElementsBase -{ -public: - - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] - static constexpr auto ieventAccessRecord = MemoryAccessHelper::ieventAccessRecord; - - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (const) ===> const fptype* ieventAccessRecordConst( const fptype* buffer, const int ievt ) <===] - static constexpr auto ieventAccessRecordConst = MemoryAccessHelper::ieventAccessRecordConst; - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer ) <===] - static constexpr auto decodeRecord = MemoryAccessHelper::decodeRecord; - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (const) ===> const fptype& decodeRecordConst( const fptype* buffer ) <===] - static constexpr auto decodeRecordConst = - MemoryAccessHelper::template decodeRecordConst<>; - - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (non-const) ===> fptype& ieventAccess( fptype* buffer, const ievt ) <===] - static constexpr auto ieventAccess = - MemoryAccessHelper::template ieventAccessField<>; - - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (const) ===> const fptype& ieventAccessConst( const fptype* buffer, const ievt ) <===] - static constexpr auto ieventAccessConst = - MemoryAccessHelper::template ieventAccessFieldConst<>; -}; - -//---------------------------------------------------------------------------- - -// A class providing access to memory buffers for a given event, based on implicit kernel rules -// Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations -template -class KernelAccessMatrixElements -{ -public: - - // Expose selected functions from MemoryAccessMatrixElements - static constexpr auto ieventAccessRecord = MemoryAccessMatrixElements::ieventAccessRecord; - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (non-const, SCALAR) ===> fptype& kernelAccess_s( fptype* buffer ) <===] - static constexpr auto kernelAccess_s = - KernelAccessHelper::template kernelAccessField<>; // requires cuda 11.4 - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) - // [Signature (non const, SCALAR OR VECTOR) ===> fptype_sv& kernelAccess( const fptype* buffer ) <===] - static __host__ __device__ inline fptype_sv& - kernelAccess( fptype* buffer ) + private: + + friend class MemoryAccessHelper; + friend class KernelAccessHelper; + friend class KernelAccessHelper; + + //-------------------------------------------------------------------------- + // NB all KernelLaunchers assume that memory access can be decomposed as "accessField = decodeRecord( accessRecord )" + // (in other words: first locate the event record for a given event, then locate an element in that record) + //-------------------------------------------------------------------------- + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] + static __host__ __device__ inline fptype* + ieventAccessRecord( fptype* buffer, + const int ievt ) + { + return &( buffer[ievt] ); // ARRAY[nevt] + } + + //-------------------------------------------------------------------------- + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, Ts... args ) <===] + // [NB: expand variadic template "Ts... args" to empty and rename "Field" as empty] + static __host__ __device__ inline fptype& + decodeRecord( fptype* buffer ) + { + constexpr int ievt = 0; + return buffer[ievt]; // ARRAY[nevt] + } + }; + + //---------------------------------------------------------------------------- + + // A class providing access to memory buffers for a given event, based on explicit event numbers + // Its methods use the MemoryAccessHelper templates - note the use of the template keyword in template function instantiations + class MemoryAccessMatrixElements : public MemoryAccessMatrixElementsBase + { + public: + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] + static constexpr auto ieventAccessRecord = MemoryAccessHelper::ieventAccessRecord; + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (const) ===> const fptype* ieventAccessRecordConst( const fptype* buffer, const int ievt ) <===] + static constexpr auto ieventAccessRecordConst = MemoryAccessHelper::ieventAccessRecordConst; + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer ) <===] + static constexpr auto decodeRecord = MemoryAccessHelper::decodeRecord; + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (const) ===> const fptype& decodeRecordConst( const fptype* buffer ) <===] + static constexpr auto decodeRecordConst = + MemoryAccessHelper::template decodeRecordConst<>; + + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (non-const) ===> fptype& ieventAccess( fptype* buffer, const ievt ) <===] + static constexpr auto ieventAccess = + MemoryAccessHelper::template ieventAccessField<>; + + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (const) ===> const fptype& ieventAccessConst( const fptype* buffer, const ievt ) <===] + static constexpr auto ieventAccessConst = + MemoryAccessHelper::template ieventAccessFieldConst<>; + }; + + //---------------------------------------------------------------------------- + + // A class providing access to memory buffers for a given event, based on implicit kernel rules + // Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations + template + class KernelAccessMatrixElements { - fptype& out = kernelAccess_s( buffer ); + public: + + // Expose selected functions from MemoryAccessMatrixElements + static constexpr auto ieventAccessRecord = MemoryAccessMatrixElements::ieventAccessRecord; + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (non-const, SCALAR) ===> fptype& kernelAccess_s( fptype* buffer ) <===] + static constexpr auto kernelAccess_s = + KernelAccessHelper::template kernelAccessField<>; // requires cuda 11.4 + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) + // [Signature (non const, SCALAR OR VECTOR) ===> fptype_sv& kernelAccess( const fptype* buffer ) <===] + static __host__ __device__ inline fptype_sv& + kernelAccess( fptype* buffer ) + { + fptype& out = kernelAccess_s( buffer ); #ifndef MGONGPU_CPPSIMD - return out; + return out; #else - // NB: derived from MemoryAccessMomenta, restricting the implementation to contiguous aligned arrays (#435) - static_assert( mg5amcCpu::HostBufferMatrixElements::isaligned() ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) - //assert( (size_t)( buffer ) % mgOnGpu::cppAlign == 0 ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) - return mg5amcCpu::fptypevFromAlignedArray( out ); // SIMD bulk load of neppV, use reinterpret_cast + // NB: derived from MemoryAccessMomenta, restricting the implementation to contiguous aligned arrays (#435) + static_assert( mg5amcCpu::HostBufferMatrixElements::isaligned() ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) + //assert( (size_t)( buffer ) % mgOnGpu::cppAlign == 0 ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) + return mg5amcCpu::fptypevFromAlignedArray( out ); // SIMD bulk load of neppV, use reinterpret_cast #endif - } + } + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (const) ===> const fptype& kernelAccessConst( const fptype* buffer ) <===] + static constexpr auto kernelAccessConst = + KernelAccessHelper::template kernelAccessFieldConst<>; // requires cuda 11.4 + }; - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (const) ===> const fptype& kernelAccessConst( const fptype* buffer ) <===] - static constexpr auto kernelAccessConst = - KernelAccessHelper::template kernelAccessFieldConst<>; // requires cuda 11.4 -}; + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- + typedef KernelAccessMatrixElements HostAccessMatrixElements; + typedef KernelAccessMatrixElements DeviceAccessMatrixElements; -typedef KernelAccessMatrixElements HostAccessMatrixElements; -typedef KernelAccessMatrixElements DeviceAccessMatrixElements; + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- +} // end namespace mg5amcGpu/mg5amcCpu #endif // MemoryAccessMatrixElements_H diff --git a/epochX/cudacpp/gg_tt.sa/SubProcesses/MemoryAccessMomenta.h b/epochX/cudacpp/gg_tt.sa/SubProcesses/MemoryAccessMomenta.h index 0ac4faa3c7..29266de32c 100644 --- a/epochX/cudacpp/gg_tt.sa/SubProcesses/MemoryAccessMomenta.h +++ b/epochX/cudacpp/gg_tt.sa/SubProcesses/MemoryAccessMomenta.h @@ -12,261 +12,264 @@ #include "MemoryAccessHelpers.h" #include "MemoryAccessVectors.h" +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) #ifdef __CUDACC__ -using mg5amcGpu::CPPProcess; +namespace mg5amcGpu #else -using mg5amcCpu::CPPProcess; +namespace mg5amcCpu #endif - -//---------------------------------------------------------------------------- - -// A class describing the internal layout of memory buffers for momenta -// This implementation uses an AOSOA[npagM][npar][np4][neppM] where nevt=npagM*neppM -// [If many implementations are used, a suffix _AOSOAv1 should be appended to the class name] -class MemoryAccessMomentaBase //_AOSOAv1 { -public: + //---------------------------------------------------------------------------- + + // A class describing the internal layout of memory buffers for momenta + // This implementation uses an AOSOA[npagM][npar][np4][neppM] where nevt=npagM*neppM + // [If many implementations are used, a suffix _AOSOAv1 should be appended to the class name] + class MemoryAccessMomentaBase //_AOSOAv1 + { + public: - // Number of Events Per Page in the momenta AOSOA memory buffer layout - // (these are all best kept as a compile-time constants: see issue #23) + // Number of Events Per Page in the momenta AOSOA memory buffer layout + // (these are all best kept as a compile-time constants: see issue #23) #ifdef __CUDACC__ /* clang-format off */ - // ----------------------------------------------------------------------------------------------- - // --- GPUs: neppM is best set to a power of 2 times the number of fptype's in a 32-byte cacheline - // --- This is relevant to ensure coalesced access to momenta in global memory - // --- Note that neppR is hardcoded and may differ from neppM and neppV on some platforms - // ----------------------------------------------------------------------------------------------- - //static constexpr int neppM = 64/sizeof(fptype); // 2x 32-byte GPU cache lines (512 bits): 8 (DOUBLE) or 16 (FLOAT) - static constexpr int neppM = 32/sizeof(fptype); // (DEFAULT) 32-byte GPU cache line (256 bits): 4 (DOUBLE) or 8 (FLOAT) - //static constexpr int neppM = 1; // *** NB: this is equivalent to AOS *** (slower: 1.03E9 instead of 1.11E9 in eemumu) + // ----------------------------------------------------------------------------------------------- + // --- GPUs: neppM is best set to a power of 2 times the number of fptype's in a 32-byte cacheline + // --- This is relevant to ensure coalesced access to momenta in global memory + // --- Note that neppR is hardcoded and may differ from neppM and neppV on some platforms + // ----------------------------------------------------------------------------------------------- + //static constexpr int neppM = 64/sizeof(fptype); // 2x 32-byte GPU cache lines (512 bits): 8 (DOUBLE) or 16 (FLOAT) + static constexpr int neppM = 32/sizeof(fptype); // (DEFAULT) 32-byte GPU cache line (256 bits): 4 (DOUBLE) or 8 (FLOAT) + //static constexpr int neppM = 1; // *** NB: this is equivalent to AOS *** (slower: 1.03E9 instead of 1.11E9 in eemumu) #else - // ----------------------------------------------------------------------------------------------- - // --- CPUs: neppM is best set equal to the number of fptype's (neppV) in a vector register - // --- This is relevant to ensure faster access to momenta from C++ memory cache lines - // --- However, neppM is now decoupled from neppV (issue #176) and can be separately hardcoded - // --- In practice, neppR, neppM and neppV could now (in principle) all be different - // ----------------------------------------------------------------------------------------------- + // ----------------------------------------------------------------------------------------------- + // --- CPUs: neppM is best set equal to the number of fptype's (neppV) in a vector register + // --- This is relevant to ensure faster access to momenta from C++ memory cache lines + // --- However, neppM is now decoupled from neppV (issue #176) and can be separately hardcoded + // --- In practice, neppR, neppM and neppV could now (in principle) all be different + // ----------------------------------------------------------------------------------------------- #ifdef MGONGPU_CPPSIMD - static constexpr int neppM = MGONGPU_CPPSIMD; // (DEFAULT) neppM=neppV for optimal performance - //static constexpr int neppM = 64/sizeof(fptype); // maximum CPU vector width (512 bits): 8 (DOUBLE) or 16 (FLOAT) - //static constexpr int neppM = 32/sizeof(fptype); // lower CPU vector width (256 bits): 4 (DOUBLE) or 8 (FLOAT) - //static constexpr int neppM = 1; // *** NB: this is equivalent to AOS *** (slower: 4.66E6 instead of 5.09E9 in eemumu) - //static constexpr int neppM = MGONGPU_CPPSIMD*2; // FOR TESTS + static constexpr int neppM = MGONGPU_CPPSIMD; // (DEFAULT) neppM=neppV for optimal performance + //static constexpr int neppM = 64/sizeof(fptype); // maximum CPU vector width (512 bits): 8 (DOUBLE) or 16 (FLOAT) + //static constexpr int neppM = 32/sizeof(fptype); // lower CPU vector width (256 bits): 4 (DOUBLE) or 8 (FLOAT) + //static constexpr int neppM = 1; // *** NB: this is equivalent to AOS *** (slower: 4.66E6 instead of 5.09E9 in eemumu) + //static constexpr int neppM = MGONGPU_CPPSIMD*2; // FOR TESTS #else - static constexpr int neppM = 1; // (DEFAULT) neppM=neppV for optimal performance (NB: this is equivalent to AOS) + static constexpr int neppM = 1; // (DEFAULT) neppM=neppV for optimal performance (NB: this is equivalent to AOS) #endif #endif /* clang-format on */ - // SANITY CHECK: check that neppM is a power of two - static_assert( ispoweroftwo( neppM ), "neppM is not a power of 2" ); + // SANITY CHECK: check that neppM is a power of two + static_assert( ispoweroftwo( neppM ), "neppM is not a power of 2" ); -private: + private: - friend class MemoryAccessHelper; - friend class KernelAccessHelper; - friend class KernelAccessHelper; + friend class MemoryAccessHelper; + friend class KernelAccessHelper; + friend class KernelAccessHelper; - // The number of components of a 4-momentum - static constexpr int np4 = CPPProcess::np4; + // The number of components of a 4-momentum + static constexpr int np4 = CPPProcess::np4; - // The number of particles in this physics process - static constexpr int npar = CPPProcess::npar; + // The number of particles in this physics process + static constexpr int npar = CPPProcess::npar; - //-------------------------------------------------------------------------- - // NB all KernelLaunchers assume that memory access can be decomposed as "accessField = decodeRecord( accessRecord )" - // (in other words: first locate the event record for a given event, then locate an element in that record) - //-------------------------------------------------------------------------- + //-------------------------------------------------------------------------- + // NB all KernelLaunchers assume that memory access can be decomposed as "accessField = decodeRecord( accessRecord )" + // (in other words: first locate the event record for a given event, then locate an element in that record) + //-------------------------------------------------------------------------- - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] - static __host__ __device__ inline fptype* - ieventAccessRecord( fptype* buffer, - const int ievt ) - { - const int ipagM = ievt / neppM; // #event "M-page" - const int ieppM = ievt % neppM; // #event in the current event M-page - constexpr int ip4 = 0; - constexpr int ipar = 0; - return &( buffer[ipagM * npar * np4 * neppM + ipar * np4 * neppM + ip4 * neppM + ieppM] ); // AOSOA[ipagM][ipar][ip4][ieppM] - } - - //-------------------------------------------------------------------------- - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, Ts... args ) <===] - // [NB: expand variadic template "Ts... args" to "const int ip4, const int ipar" and rename "Field" as "Ip4Ipar"] - static __host__ __device__ inline fptype& - decodeRecord( fptype* buffer, - const int ip4, - const int ipar ) + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] + static __host__ __device__ inline fptype* + ieventAccessRecord( fptype* buffer, + const int ievt ) + { + const int ipagM = ievt / neppM; // #event "M-page" + const int ieppM = ievt % neppM; // #event in the current event M-page + constexpr int ip4 = 0; + constexpr int ipar = 0; + return &( buffer[ipagM * npar * np4 * neppM + ipar * np4 * neppM + ip4 * neppM + ieppM] ); // AOSOA[ipagM][ipar][ip4][ieppM] + } + + //-------------------------------------------------------------------------- + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, Ts... args ) <===] + // [NB: expand variadic template "Ts... args" to "const int ip4, const int ipar" and rename "Field" as "Ip4Ipar"] + static __host__ __device__ inline fptype& + decodeRecord( fptype* buffer, + const int ip4, + const int ipar ) + { + constexpr int ipagM = 0; + constexpr int ieppM = 0; + return buffer[ipagM * npar * np4 * neppM + ipar * np4 * neppM + ip4 * neppM + ieppM]; // AOSOA[ipagM][ipar][ip4][ieppM] + } + }; + + //---------------------------------------------------------------------------- + + // A class providing access to memory buffers for a given event, based on explicit event numbers + // Its methods use the MemoryAccessHelper templates - note the use of the template keyword in template function instantiations + class MemoryAccessMomenta : public MemoryAccessMomentaBase { - constexpr int ipagM = 0; - constexpr int ieppM = 0; - return buffer[ipagM * npar * np4 * neppM + ipar * np4 * neppM + ip4 * neppM + ieppM]; // AOSOA[ipagM][ipar][ip4][ieppM] - } -}; + public: + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] + static constexpr auto ieventAccessRecord = MemoryAccessHelper::ieventAccessRecord; + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (const) ===> const fptype* ieventAccessRecordConst( const fptype* buffer, const int ievt ) <===] + static constexpr auto ieventAccessRecordConst = MemoryAccessHelper::ieventAccessRecordConst; + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, const int ipar, const int ipar ) <===] + static constexpr auto decodeRecordIp4Ipar = MemoryAccessHelper::decodeRecord; + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (const) ===> const fptype& decodeRecordConst( const fptype* buffer, const int ipar, const int ipar ) <===] + static constexpr auto decodeRecordIp4IparConst = + MemoryAccessHelper::template decodeRecordConst; + + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (non-const) ===> fptype& ieventAccessIp4Ipar( fptype* buffer, const ievt, const int ipar, const int ipar ) <===] + static constexpr auto ieventAccessIp4Ipar = + MemoryAccessHelper::template ieventAccessField; + + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (const) ===> const fptype& ieventAccessIp4IparConst( const fptype* buffer, const ievt, const int ipar, const int ipar ) <===] + // DEFAULT VERSION + static constexpr auto ieventAccessIp4IparConst = + MemoryAccessHelper::template ieventAccessFieldConst; + + /* + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (const) ===> const fptype& ieventAccessIp4IparConst( const fptype* buffer, const ievt, const int ipar, const int ipar ) <===] + // DEBUG VERSION WITH PRINTOUTS + static __host__ __device__ inline const fptype& + ieventAccessIp4IparConst( const fptype* buffer, + const int ievt, + const int ip4, + const int ipar ) + { + const fptype& out = MemoryAccessHelper::template ieventAccessFieldConst( buffer, ievt, ip4, ipar ); + printf( "ipar=%2d ip4=%2d ievt=%8d out=%8.3f\n", ipar, ip4, ievt, out ); + return out; + } + */ + }; -//---------------------------------------------------------------------------- + //---------------------------------------------------------------------------- -// A class providing access to memory buffers for a given event, based on explicit event numbers -// Its methods use the MemoryAccessHelper templates - note the use of the template keyword in template function instantiations -class MemoryAccessMomenta : public MemoryAccessMomentaBase -{ -public: - - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] - static constexpr auto ieventAccessRecord = MemoryAccessHelper::ieventAccessRecord; - - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (const) ===> const fptype* ieventAccessRecordConst( const fptype* buffer, const int ievt ) <===] - static constexpr auto ieventAccessRecordConst = MemoryAccessHelper::ieventAccessRecordConst; - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, const int ipar, const int ipar ) <===] - static constexpr auto decodeRecordIp4Ipar = MemoryAccessHelper::decodeRecord; - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (const) ===> const fptype& decodeRecordConst( const fptype* buffer, const int ipar, const int ipar ) <===] - static constexpr auto decodeRecordIp4IparConst = - MemoryAccessHelper::template decodeRecordConst; - - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (non-const) ===> fptype& ieventAccessIp4Ipar( fptype* buffer, const ievt, const int ipar, const int ipar ) <===] - static constexpr auto ieventAccessIp4Ipar = - MemoryAccessHelper::template ieventAccessField; - - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (const) ===> const fptype& ieventAccessIp4IparConst( const fptype* buffer, const ievt, const int ipar, const int ipar ) <===] - // DEFAULT VERSION - static constexpr auto ieventAccessIp4IparConst = - MemoryAccessHelper::template ieventAccessFieldConst; - - /* - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (const) ===> const fptype& ieventAccessIp4IparConst( const fptype* buffer, const ievt, const int ipar, const int ipar ) <===] - // DEBUG VERSION WITH PRINTOUTS - static __host__ __device__ inline const fptype& - ieventAccessIp4IparConst( const fptype* buffer, - const int ievt, - const int ip4, - const int ipar ) + // A class providing access to memory buffers for a given event, based on implicit kernel rules + // Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations + template + class KernelAccessMomenta { - const fptype& out = MemoryAccessHelper::template ieventAccessFieldConst( buffer, ievt, ip4, ipar ); - printf( "ipar=%2d ip4=%2d ievt=%8d out=%8.3f\n", ipar, ip4, ievt, out ); - return out; - } - */ -}; - -//---------------------------------------------------------------------------- - -// A class providing access to memory buffers for a given event, based on implicit kernel rules -// Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations -template -class KernelAccessMomenta -{ -public: - - // Expose selected functions from MemoryAccessMomenta - static constexpr auto ieventAccessRecordConst = MemoryAccessMomenta::ieventAccessRecordConst; - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (non-const, SCALAR) ===> fptype& kernelAccessIp4Ipar( fptype* buffer, const int ipar, const int ipar ) <===] - static constexpr auto kernelAccessIp4Ipar = - KernelAccessHelper::template kernelAccessField; - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (const, SCALAR) ===> const fptype& kernelAccessIp4IparConst( const fptype* buffer, const int ipar, const int ipar ) <===] - // DEFAULT VERSION - static constexpr auto kernelAccessIp4IparConst_s = - KernelAccessHelper::template kernelAccessFieldConst; - - /* - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (const, SCALAR) ===> const fptype& kernelAccessIp4IparConst( const fptype* buffer, const int ipar, const int ipar ) <===] - // DEBUG VERSION WITH PRINTOUTS - static __host__ __device__ inline const fptype& - kernelAccessIp4IparConst_s( const fptype* buffer, + public: + + // Expose selected functions from MemoryAccessMomenta + static constexpr auto ieventAccessRecordConst = MemoryAccessMomenta::ieventAccessRecordConst; + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (non-const, SCALAR) ===> fptype& kernelAccessIp4Ipar( fptype* buffer, const int ipar, const int ipar ) <===] + static constexpr auto kernelAccessIp4Ipar = + KernelAccessHelper::template kernelAccessField; + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (const, SCALAR) ===> const fptype& kernelAccessIp4IparConst( const fptype* buffer, const int ipar, const int ipar ) <===] + // DEFAULT VERSION + static constexpr auto kernelAccessIp4IparConst_s = + KernelAccessHelper::template kernelAccessFieldConst; + + /* + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (const, SCALAR) ===> const fptype& kernelAccessIp4IparConst( const fptype* buffer, const int ipar, const int ipar ) <===] + // DEBUG VERSION WITH PRINTOUTS + static __host__ __device__ inline const fptype& + kernelAccessIp4IparConst_s( const fptype* buffer, + const int ip4, + const int ipar ) + { + const fptype& out = KernelAccessHelper::template kernelAccessFieldConst( buffer, ip4, ipar ); + printf( "ipar=%2d ip4=%2d ievt='kernel' out=%8.3f\n", ipar, ip4, out ); + return out; + } + */ + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (const, SCALAR OR VECTOR) ===> fptype_sv kernelAccessIp4IparConst( const fptype* buffer, const int ipar, const int ipar ) <===] + // FIXME? Eventually return by const reference and support aligned arrays only? + // FIXME? Currently return by value to support also unaligned and arbitrary arrays + static __host__ __device__ inline fptype_sv + kernelAccessIp4IparConst( const fptype* buffer, const int ip4, const int ipar ) - { - const fptype& out = KernelAccessHelper::template kernelAccessFieldConst( buffer, ip4, ipar ); - printf( "ipar=%2d ip4=%2d ievt='kernel' out=%8.3f\n", ipar, ip4, out ); - return out; - } - */ - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (const, SCALAR OR VECTOR) ===> fptype_sv kernelAccessIp4IparConst( const fptype* buffer, const int ipar, const int ipar ) <===] - // FIXME? Eventually return by const reference and support aligned arrays only? - // FIXME? Currently return by value to support also unaligned and arbitrary arrays - static __host__ __device__ inline fptype_sv - kernelAccessIp4IparConst( const fptype* buffer, - const int ip4, - const int ipar ) - { - const fptype& out = kernelAccessIp4IparConst_s( buffer, ip4, ipar ); + { + const fptype& out = kernelAccessIp4IparConst_s( buffer, ip4, ipar ); #ifndef MGONGPU_CPPSIMD - return out; + return out; #else - constexpr int neppM = MemoryAccessMomentaBase::neppM; - constexpr bool useContiguousEventsIfPossible = true; // DEFAULT - //constexpr bool useContiguousEventsIfPossible = false; // FOR PERFORMANCE TESTS (treat as arbitrary array even if it is an AOSOA) - // Use c++17 "if constexpr": compile-time branching - if constexpr( useContiguousEventsIfPossible && ( neppM >= neppV ) && ( neppM % neppV == 0 ) ) - { - //constexpr bool skipAlignmentCheck = true; // FASTEST (SEGFAULTS IF MISALIGNED ACCESS, NEEDS A SANITY CHECK ELSEWHERE!) - constexpr bool skipAlignmentCheck = false; // DEFAULT: A BIT SLOWER BUT SAFER [ALLOWS MISALIGNED ACCESS] - if constexpr( skipAlignmentCheck ) - { - //static bool first=true; if( first ){ std::cout << "WARNING! assume aligned AOSOA, skip check" << std::endl; first=false; } // SLOWER (5.06E6) - // FASTEST? (5.09E6 in eemumu 512y) - // This assumes alignment for momenta1d without checking - causes segmentation fault in reinterpret_cast if not aligned! - return mg5amcCpu::fptypevFromAlignedArray( out ); // use reinterpret_cast - } - else if( (size_t)( buffer ) % mgOnGpu::cppAlign == 0 ) + constexpr int neppM = MemoryAccessMomentaBase::neppM; + constexpr bool useContiguousEventsIfPossible = true; // DEFAULT + //constexpr bool useContiguousEventsIfPossible = false; // FOR PERFORMANCE TESTS (treat as arbitrary array even if it is an AOSOA) + // Use c++17 "if constexpr": compile-time branching + if constexpr( useContiguousEventsIfPossible && ( neppM >= neppV ) && ( neppM % neppV == 0 ) ) { - //static bool first=true; if( first ){ std::cout << "WARNING! aligned AOSOA, reinterpret cast" << std::endl; first=false; } // SLOWER (5.00E6) - // DEFAULT! A tiny bit (<1%) slower because of the alignment check (5.07E6 in eemumu 512y) - // This explicitly checks buffer alignment to avoid segmentation faults in reinterpret_cast - return mg5amcCpu::fptypevFromAlignedArray( out ); // SIMD bulk load of neppV, use reinterpret_cast + //constexpr bool skipAlignmentCheck = true; // FASTEST (SEGFAULTS IF MISALIGNED ACCESS, NEEDS A SANITY CHECK ELSEWHERE!) + constexpr bool skipAlignmentCheck = false; // DEFAULT: A BIT SLOWER BUT SAFER [ALLOWS MISALIGNED ACCESS] + if constexpr( skipAlignmentCheck ) + { + //static bool first=true; if( first ){ std::cout << "WARNING! assume aligned AOSOA, skip check" << std::endl; first=false; } // SLOWER (5.06E6) + // FASTEST? (5.09E6 in eemumu 512y) + // This assumes alignment for momenta1d without checking - causes segmentation fault in reinterpret_cast if not aligned! + return mg5amcCpu::fptypevFromAlignedArray( out ); // use reinterpret_cast + } + else if( (size_t)( buffer ) % mgOnGpu::cppAlign == 0 ) + { + //static bool first=true; if( first ){ std::cout << "WARNING! aligned AOSOA, reinterpret cast" << std::endl; first=false; } // SLOWER (5.00E6) + // DEFAULT! A tiny bit (<1%) slower because of the alignment check (5.07E6 in eemumu 512y) + // This explicitly checks buffer alignment to avoid segmentation faults in reinterpret_cast + return mg5amcCpu::fptypevFromAlignedArray( out ); // SIMD bulk load of neppV, use reinterpret_cast + } + else + { + //static bool first=true; if( first ){ std::cout << "WARNING! AOSOA but no reinterpret cast" << std::endl; first=false; } // SLOWER (4.93E6) + // A bit (1%) slower (5.05E6 in eemumu 512y) + // This does not require buffer alignment, but it requires AOSOA with neppM>=neppV and neppM%neppV==0 + return mg5amcCpu::fptypevFromUnalignedArray( out ); // SIMD bulk load of neppV, do not use reinterpret_cast (fewer SIMD operations) + } } else { - //static bool first=true; if( first ){ std::cout << "WARNING! AOSOA but no reinterpret cast" << std::endl; first=false; } // SLOWER (4.93E6) - // A bit (1%) slower (5.05E6 in eemumu 512y) - // This does not require buffer alignment, but it requires AOSOA with neppM>=neppV and neppM%neppV==0 - return mg5amcCpu::fptypevFromUnalignedArray( out ); // SIMD bulk load of neppV, do not use reinterpret_cast (fewer SIMD operations) + //static bool first=true; if( first ){ std::cout << "WARNING! arbitrary array" << std::endl; first=false; } // SLOWER (5.08E6) + // ?!Used to be much slower, now a tiny bit faster for AOSOA?! (5.11E6 for AOSOA, 4.64E6 for AOS in eemumu 512y) + // This does not even require AOSOA with neppM>=neppV and neppM%neppV==0 (e.g. can be used with AOS neppM==1) + constexpr int ievt0 = 0; // just make it explicit in the code that buffer refers to a given ievt0 and decoderIeppV fetches event ievt0+ieppV + auto decoderIeppv = [buffer, ip4, ipar]( int ieppV ) + -> const fptype& + { return MemoryAccessMomenta::ieventAccessIp4IparConst( buffer, ievt0 + ieppV, ip4, ipar ); }; + return mg5amcCpu::fptypevFromArbitraryArray( decoderIeppv ); // iterate over ieppV in neppV (no SIMD) } +#endif } - else + + // Is this a HostAccess or DeviceAccess class? + // [this is only needed for a warning printout in rambo.h for nparf==1 #358] + static __host__ __device__ inline constexpr bool + isOnDevice() { - //static bool first=true; if( first ){ std::cout << "WARNING! arbitrary array" << std::endl; first=false; } // SLOWER (5.08E6) - // ?!Used to be much slower, now a tiny bit faster for AOSOA?! (5.11E6 for AOSOA, 4.64E6 for AOS in eemumu 512y) - // This does not even require AOSOA with neppM>=neppV and neppM%neppV==0 (e.g. can be used with AOS neppM==1) - constexpr int ievt0 = 0; // just make it explicit in the code that buffer refers to a given ievt0 and decoderIeppV fetches event ievt0+ieppV - auto decoderIeppv = [buffer, ip4, ipar]( int ieppV ) - -> const fptype& - { return MemoryAccessMomenta::ieventAccessIp4IparConst( buffer, ievt0 + ieppV, ip4, ipar ); }; - return mg5amcCpu::fptypevFromArbitraryArray( decoderIeppv ); // iterate over ieppV in neppV (no SIMD) + return onDevice; } -#endif - } + }; - // Is this a HostAccess or DeviceAccess class? - // [this is only needed for a warning printout in rambo.h for nparf==1 #358] - static __host__ __device__ inline constexpr bool - isOnDevice() - { - return onDevice; - } -}; + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- + typedef KernelAccessMomenta HostAccessMomenta; + typedef KernelAccessMomenta DeviceAccessMomenta; -typedef KernelAccessMomenta HostAccessMomenta; -typedef KernelAccessMomenta DeviceAccessMomenta; + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- +} // end namespace mg5amcGpu/mg5amcCpu #endif // MemoryAccessMomenta_H diff --git a/epochX/cudacpp/gg_tt.sa/SubProcesses/MemoryAccessNumerators.h b/epochX/cudacpp/gg_tt.sa/SubProcesses/MemoryAccessNumerators.h index b373fd6048..b152183b28 100644 --- a/epochX/cudacpp/gg_tt.sa/SubProcesses/MemoryAccessNumerators.h +++ b/epochX/cudacpp/gg_tt.sa/SubProcesses/MemoryAccessNumerators.h @@ -9,15 +9,24 @@ #include "MemoryAccessGs.h" -//---------------------------------------------------------------------------- +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif +{ + //---------------------------------------------------------------------------- + + // A class describing the internal layout of memory buffers for numerators + // This implementation reuses the plain ARRAY[nevt] implementation of MemoryAccessGs -// A class describing the internal layout of memory buffers for numerators -// This implementation reuses the plain ARRAY[nevt] implementation of MemoryAccessGs + typedef KernelAccessGs HostAccessNumerators; + typedef KernelAccessGs DeviceAccessNumerators; -typedef KernelAccessGs HostAccessNumerators; -typedef KernelAccessGs DeviceAccessNumerators; + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- +} // end namespace mg5amcGpu/mg5amcCpu #endif #endif // MemoryAccessNumerators_H diff --git a/epochX/cudacpp/gg_tt.sa/SubProcesses/MemoryAccessWavefunctions.h b/epochX/cudacpp/gg_tt.sa/SubProcesses/MemoryAccessWavefunctions.h index f42f0d34ed..5428aaf933 100644 --- a/epochX/cudacpp/gg_tt.sa/SubProcesses/MemoryAccessWavefunctions.h +++ b/epochX/cudacpp/gg_tt.sa/SubProcesses/MemoryAccessWavefunctions.h @@ -14,147 +14,156 @@ #define MGONGPU_TRIVIAL_WAVEFUNCTIONS 1 -//---------------------------------------------------------------------------- - -#ifndef MGONGPU_TRIVIAL_WAVEFUNCTIONS - -// A class describing the internal layout of memory buffers for wavefunctions -// This implementation uses an AOSOA[npagW][nw6][nx2][neppW] where nevt=npagW*neppW -// [If many implementations are used, a suffix _AOSOAv1 should be appended to the class name] -class MemoryAccessWavefunctionsBase //_AOSOAv1 +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { -public: - - // Number of Events Per Page in the wavefunction AOSOA memory buffer layout - static constexpr int neppW = 1; // AOS (just a test...) - -private: - - friend class MemoryAccessHelper; - friend class KernelAccessHelper; - friend class KernelAccessHelper; - - // The number of components of a (fermion or vector) wavefunction - static constexpr int nw6 = mgOnGpu::nw6; - - // The number of floating point components of a complex number - static constexpr int nx2 = mgOnGpu::nx2; + //---------------------------------------------------------------------------- - //-------------------------------------------------------------------------- - // NB all KernelLaunchers assume that memory access can be decomposed as "accessField = decodeRecord( accessRecord )" - // (in other words: first locate the event record for a given event, then locate an element in that record) - //-------------------------------------------------------------------------- +#ifndef MGONGPU_TRIVIAL_WAVEFUNCTIONS - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] - static __host__ __device__ inline fptype* - ieventAccessRecord( fptype* buffer, - const int ievt ) + // A class describing the internal layout of memory buffers for wavefunctions + // This implementation uses an AOSOA[npagW][nw6][nx2][neppW] where nevt=npagW*neppW + // [If many implementations are used, a suffix _AOSOAv1 should be appended to the class name] + class MemoryAccessWavefunctionsBase //_AOSOAv1 { - const int ipagW = ievt / neppW; // #event "W-page" - const int ieppW = ievt % neppW; // #event in the current event W-page - constexpr int iw6 = 0; - constexpr int ix2 = 0; - return &( buffer[ipagW * nw6 * nx2 * neppW + iw6 * nx2 * neppW + ix2 * neppW + ieppW] ); // AOSOA[ipagW][iw6][ix2][ieppW] - } - - //-------------------------------------------------------------------------- - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, Ts... args ) <===] - // [NB: expand variadic template "Ts... args" to "const int iw6, const int ix2" and rename "Field" as "Iw6Ix2"] - static __host__ __device__ inline fptype& - decodeRecord( fptype* buffer, - const int iw6, - const int ix2 ) + public: + + // Number of Events Per Page in the wavefunction AOSOA memory buffer layout + static constexpr int neppW = 1; // AOS (just a test...) + + private: + + friend class MemoryAccessHelper; + friend class KernelAccessHelper; + friend class KernelAccessHelper; + + // The number of components of a (fermion or vector) wavefunction + static constexpr int nw6 = mgOnGpu::nw6; + + // The number of floating point components of a complex number + static constexpr int nx2 = mgOnGpu::nx2; + + //-------------------------------------------------------------------------- + // NB all KernelLaunchers assume that memory access can be decomposed as "accessField = decodeRecord( accessRecord )" + // (in other words: first locate the event record for a given event, then locate an element in that record) + //-------------------------------------------------------------------------- + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] + static __host__ __device__ inline fptype* + ieventAccessRecord( fptype* buffer, + const int ievt ) + { + const int ipagW = ievt / neppW; // #event "W-page" + const int ieppW = ievt % neppW; // #event in the current event W-page + constexpr int iw6 = 0; + constexpr int ix2 = 0; + return &( buffer[ipagW * nw6 * nx2 * neppW + iw6 * nx2 * neppW + ix2 * neppW + ieppW] ); // AOSOA[ipagW][iw6][ix2][ieppW] + } + + //-------------------------------------------------------------------------- + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, Ts... args ) <===] + // [NB: expand variadic template "Ts... args" to "const int iw6, const int ix2" and rename "Field" as "Iw6Ix2"] + static __host__ __device__ inline fptype& + decodeRecord( fptype* buffer, + const int iw6, + const int ix2 ) + { + constexpr int ipagW = 0; + constexpr int ieppW = 0; + return buffer[ipagW * nw6 * nx2 * neppW + iw6 * nx2 * neppW + ix2 * neppW + ieppW]; // AOSOA[ipagW][iw6][ix2][ieppW] + } + }; + + //---------------------------------------------------------------------------- + + // A class providing access to memory buffers for a given event, based on explicit event numbers + // Its methods use the MemoryAccessHelper templates - note the use of the template keyword in template function instantiations + class MemoryAccessWavefunctions : public MemoryAccessWavefunctionsBase { - constexpr int ipagW = 0; - constexpr int ieppW = 0; - return buffer[ipagW * nw6 * nx2 * neppW + iw6 * nx2 * neppW + ix2 * neppW + ieppW]; // AOSOA[ipagW][iw6][ix2][ieppW] - } -}; - -//---------------------------------------------------------------------------- + public: -// A class providing access to memory buffers for a given event, based on explicit event numbers -// Its methods use the MemoryAccessHelper templates - note the use of the template keyword in template function instantiations -class MemoryAccessWavefunctions : public MemoryAccessWavefunctionsBase -{ -public: + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] + static constexpr auto ieventAccessRecord = MemoryAccessHelper::ieventAccessRecord; - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] - static constexpr auto ieventAccessRecord = MemoryAccessHelper::ieventAccessRecord; + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (const) ===> const fptype* ieventAccessRecordConst( const fptype* buffer, const int ievt ) <===] + static constexpr auto ieventAccessRecordConst = MemoryAccessHelper::ieventAccessRecordConst; - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (const) ===> const fptype* ieventAccessRecordConst( const fptype* buffer, const int ievt ) <===] - static constexpr auto ieventAccessRecordConst = MemoryAccessHelper::ieventAccessRecordConst; + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, const int iw6, const int ix2 ) <===] + static constexpr auto decodeRecordIw6Ix2 = MemoryAccessHelper::decodeRecord; - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, const int iw6, const int ix2 ) <===] - static constexpr auto decodeRecordIw6Ix2 = MemoryAccessHelper::decodeRecord; + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (const) ===> const fptype& decodeRecordConst( const fptype* buffer, const int iw6, const int ix2 ) <===] + static constexpr auto decodeRecordIw6Ix2Const = + MemoryAccessHelper::template decodeRecordConst; - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (const) ===> const fptype& decodeRecordConst( const fptype* buffer, const int iw6, const int ix2 ) <===] - static constexpr auto decodeRecordIw6Ix2Const = - MemoryAccessHelper::template decodeRecordConst; + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (non-const) ===> fptype& ieventAccessIw6Ix2( fptype* buffer, const ievt, const int iw6, const int ix2 ) <===] + static constexpr auto ieventAccessIw6Ix2 = + MemoryAccessHelper::template ieventAccessField; - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (non-const) ===> fptype& ieventAccessIw6Ix2( fptype* buffer, const ievt, const int iw6, const int ix2 ) <===] - static constexpr auto ieventAccessIw6Ix2 = - MemoryAccessHelper::template ieventAccessField; - - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (const) ===> const fptype& ieventAccessIw6Ix2Const( const fptype* buffer, const ievt, const int iw6, const int ix2 ) <===] - static constexpr auto ieventAccessIw6Ix2Const = - MemoryAccessHelper::template ieventAccessFieldConst; -}; + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (const) ===> const fptype& ieventAccessIw6Ix2Const( const fptype* buffer, const ievt, const int iw6, const int ix2 ) <===] + static constexpr auto ieventAccessIw6Ix2Const = + MemoryAccessHelper::template ieventAccessFieldConst; + }; #endif // #ifndef MGONGPU_TRIVIAL_WAVEFUNCTIONS -//---------------------------------------------------------------------------- + //---------------------------------------------------------------------------- -// A class providing access to memory buffers for a given event, based on implicit kernel rules -// Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations -template -class KernelAccessWavefunctions -{ -public: + // A class providing access to memory buffers for a given event, based on implicit kernel rules + // Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations + template + class KernelAccessWavefunctions + { + public: #ifndef MGONGPU_TRIVIAL_WAVEFUNCTIONS - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (non-const) ===> fptype& kernelAccessIw6Ix2( fptype* buffer, const int iw6, const int ix2 ) <===] - static constexpr auto kernelAccessIw6Ix2 = - KernelAccessHelper::template kernelAccessField; + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (non-const) ===> fptype& kernelAccessIw6Ix2( fptype* buffer, const int iw6, const int ix2 ) <===] + static constexpr auto kernelAccessIw6Ix2 = + KernelAccessHelper::template kernelAccessField; - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (const) ===> const fptype& kernelAccessIw6Ix2Const( const fptype* buffer, const int iw6, const int ix2 ) <===] - static constexpr auto kernelAccessIw6Ix2Const = - KernelAccessHelper::template kernelAccessFieldConst; + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (const) ===> const fptype& kernelAccessIw6Ix2Const( const fptype* buffer, const int iw6, const int ix2 ) <===] + static constexpr auto kernelAccessIw6Ix2Const = + KernelAccessHelper::template kernelAccessFieldConst; #else - static __host__ __device__ inline cxtype_sv* - kernelAccess( fptype* buffer ) - { - return reinterpret_cast( buffer ); - } + static __host__ __device__ inline cxtype_sv* + kernelAccess( fptype* buffer ) + { + return reinterpret_cast( buffer ); + } - static __host__ __device__ inline const cxtype_sv* - kernelAccessConst( const fptype* buffer ) - { - return reinterpret_cast( buffer ); - } + static __host__ __device__ inline const cxtype_sv* + kernelAccessConst( const fptype* buffer ) + { + return reinterpret_cast( buffer ); + } #endif // #ifndef MGONGPU_TRIVIAL_WAVEFUNCTIONS -}; + }; + + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- + typedef KernelAccessWavefunctions HostAccessWavefunctions; + typedef KernelAccessWavefunctions DeviceAccessWavefunctions; -typedef KernelAccessWavefunctions HostAccessWavefunctions; -typedef KernelAccessWavefunctions DeviceAccessWavefunctions; + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- +} // end namespace mg5amcGpu/mg5amcCpu #endif // MemoryAccessWavefunctions_H diff --git a/epochX/cudacpp/gg_tt.sa/SubProcesses/cudacpp.mk b/epochX/cudacpp/gg_tt.sa/SubProcesses/cudacpp.mk index a0397e9ecc..c2f7b8e0f6 100644 --- a/epochX/cudacpp/gg_tt.sa/SubProcesses/cudacpp.mk +++ b/epochX/cudacpp/gg_tt.sa/SubProcesses/cudacpp.mk @@ -76,7 +76,7 @@ endif CXXFLAGS = $(OPTFLAGS) -std=c++17 $(INCFLAGS) -Wall -Wshadow -Wextra ifeq ($(shell $(CXX) --version | grep ^nvc++),) -CXXFLAGS+= -ffast-math # see issue #117 +CXXFLAGS += -ffast-math # see issue #117 endif ###CXXFLAGS+= -Ofast # performance is not different from --fast-math ###CXXFLAGS+= -g # FOR DEBUGGING ONLY @@ -122,7 +122,7 @@ ifneq ($(wildcard $(CUDA_HOME)/bin/nvcc),) CUINC = -I$(CUDA_HOME)/include/ CURANDLIBFLAGS = -L$(CUDA_HOME)/lib64/ -lcurand # NB: -lcuda is not needed here! CUOPTFLAGS = -lineinfo - CUFLAGS = $(OPTFLAGS) $(CUOPTFLAGS) $(INCFLAGS) $(CUINC) $(USE_NVTX) $(CUARCHFLAGS) -use_fast_math + CUFLAGS = $(foreach opt, $(OPTFLAGS), -Xcompiler $(opt)) $(CUOPTFLAGS) $(INCFLAGS) $(CUINC) $(USE_NVTX) $(CUARCHFLAGS) -use_fast_math ###CUFLAGS += -Xcompiler -Wall -Xcompiler -Wextra -Xcompiler -Wshadow ###NVCC_VERSION = $(shell $(NVCC) --version | grep 'Cuda compilation tools' | cut -d' ' -f5 | cut -d, -f1) CUFLAGS += -std=c++17 # need CUDA >= 11.2 (see #333): this is enforced in mgOnGpuConfig.h @@ -142,6 +142,8 @@ else override CUINC= override CURANDLIBFLAGS= endif +export NVCC +export CUFLAGS # Set the host C++ compiler for nvcc via "-ccbin " # (NB issue #505: this must be a single word, "clang++ --gcc-toolchain..." is not supported) @@ -439,7 +441,7 @@ endif # Target (and build options): debug MAKEDEBUG= -debug: OPTFLAGS = -g -O0 -DDEBUG2 +debug: OPTFLAGS = -g -O0 debug: CUOPTFLAGS = -G debug: MAKEDEBUG := debug debug: all.$(TAG) @@ -468,9 +470,9 @@ $(BUILDDIR)/%.o : %.cc *.h ../../src/*.h $(BUILDDIR)/.build.$(TAG) @if [ ! -d $(BUILDDIR) ]; then echo "mkdir -p $(BUILDDIR)"; mkdir -p $(BUILDDIR); fi $(CXX) $(CPPFLAGS) $(CXXFLAGS) -fPIC -c $< -o $@ -# Apply special build flags only to CrossSectionKernel.cc and gCrossSectionKernel.cu (no fast math, see #117) +# Apply special build flags only to CrossSectionKernel.cc and gCrossSectionKernel.cu (no fast math, see #117 and #516) ifeq ($(shell $(CXX) --version | grep ^nvc++),) -$(BUILDDIR)/CrossSectionKernels.o: CXXFLAGS += -fno-fast-math +$(BUILDDIR)/CrossSectionKernels.o: CXXFLAGS := $(filter-out -ffast-math,$(CXXFLAGS)) $(BUILDDIR)/CrossSectionKernels.o: CXXFLAGS += -fno-fast-math ifneq ($(NVCC),) $(BUILDDIR)/gCrossSectionKernels.o: CUFLAGS += -Xcompiler -fno-fast-math diff --git a/epochX/cudacpp/gg_tt.sa/SubProcesses/runTest.cc b/epochX/cudacpp/gg_tt.sa/SubProcesses/runTest.cc index 572e28aaea..df7488178e 100644 --- a/epochX/cudacpp/gg_tt.sa/SubProcesses/runTest.cc +++ b/epochX/cudacpp/gg_tt.sa/SubProcesses/runTest.cc @@ -2,6 +2,9 @@ // Licensed under the GNU Lesser General Public License (version 3 or later). // Created by: S. Hageboeck (Nov 2020) for the MG5aMC CUDACPP plugin. // Further modified by: S. Hageboeck, O. Mattelaer, S. Roiser, A. Valassi (2020-2023) for the MG5aMC CUDACPP plugin. +//---------------------------------------------------------------------------- +// Use ./runTest.exe --gtest_filter=*xxx to run only testxxx.cc tests +//---------------------------------------------------------------------------- #include "mgOnGpuConfig.h" diff --git a/epochX/cudacpp/gg_tt.sa/SubProcesses/testmisc.cc b/epochX/cudacpp/gg_tt.sa/SubProcesses/testmisc.cc index 989aba1fdc..895d6eeb56 100644 --- a/epochX/cudacpp/gg_tt.sa/SubProcesses/testmisc.cc +++ b/epochX/cudacpp/gg_tt.sa/SubProcesses/testmisc.cc @@ -3,7 +3,7 @@ // Created by: A. Valassi (Jan 2022) for the MG5aMC CUDACPP plugin. // Further modified by: A. Valassi (2022-2023) for the MG5aMC CUDACPP plugin. //---------------------------------------------------------------------------- -// Use ./runTest.exe --gtest_filter=*misc to run only this test +// Use ./runTest.exe --gtest_filter=*misc to run only testmisc.cc tests //---------------------------------------------------------------------------- #include "mgOnGpuConfig.h" @@ -25,33 +25,48 @@ #define XTESTID( s ) TESTID( s ) +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif +{ #ifdef MGONGPU_CPPSIMD /* clang-format off */ -bool maskand( const bool_v& mask ){ bool out = true; for ( int i=0; i #include +#include // debug #701 (see https://stackoverflow.com/a/17473528) #include #include #include @@ -28,16 +32,47 @@ #define XTESTID( s ) TESTID( s ) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif +{ + std::string FPEhandlerMessage = "unknown"; + int FPEhandlerIevt = -1; + inline void FPEhandler( int sig ) + { +#ifdef __CUDACC__ + std::cerr << "Floating Point Exception (GPU): '" << FPEhandlerMessage << "' ievt=" << FPEhandlerIevt << std::endl; +#else + std::cerr << "Floating Point Exception (CPU neppV=" << neppV << "): '" << FPEhandlerMessage << "' ievt=" << FPEhandlerIevt << std::endl; +#endif + exit( 0 ); + } +} + TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) { +#ifdef __CUDACC__ + using namespace mg5amcGpu; +#else + using namespace mg5amcCpu; +#endif +#ifndef __APPLE__ // test #701 (except on MacOS where feenableexcept is not defined #730) + const bool enableFPE = !getenv( "CUDACPP_RUNTIME_DISABLEFPE" ); + if( enableFPE ) + { + feenableexcept( FE_INVALID | FE_DIVBYZERO | FE_OVERFLOW | FE_UNDERFLOW ); // debug #701 + signal( SIGFPE, FPEhandler ); + } +#endif constexpr bool dumpEvents = false; // dump the expected output of the test? constexpr bool testEvents = !dumpEvents; // run the test? constexpr fptype toleranceXXXs = std::is_same::value ? 1.E-15 : 1.E-5; // Constant parameters constexpr int neppM = MemoryAccessMomenta::neppM; // AOSOA layout - using mgOnGpu::neppV; constexpr int np4 = CPPProcess::np4; - const int nevt = 16; // 12 independent tests plus 4 duplicates (need a multiple of 8 for floats or for '512z') + const int nevt = 32; // 12 independent tests plus 20 duplicates (need a multiple of 16 for floats '512z') assert( nevt % neppM == 0 ); // nevt must be a multiple of neppM assert( nevt % neppV == 0 ); // nevt must be a multiple of neppV // Fill in the input momenta @@ -46,24 +81,41 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) #else mg5amcCpu::HostBufferMomenta hstMomenta( nevt ); // AOSOA[npagM][npar=4][np4=4][neppM] #endif /* clang-format off */ + // NB NEW TESTS FOR DEBUGGING #701: KEEP TWO SEPARATE SETS (16-SIMD-VECTORS!) OF TESTS FOR M==0 AND M!=0! const fptype par0[np4 * nevt] = // AOS[nevt][np4] { - 500, 0, 0, 500, // #0 (m=0 pT=0 E=pz>0) - 500, 0, 0, -500, // #1 (m=0 pT=0 -E=pz<0) - 500, 300, 400, 0, // #2 (m=0 pT>0 pz=0) - 500, 180, 240, 400, // #3 (m=0 pT>0 pz>0) - 500, 180, 240, -400, // #4 (m=0 pT>0 pz<0) - 500, 0, 0, 0, // #5 (m=50>0 pT=0 pz=0) - 500, 0, 0, 300, // #6 (m=40>0 pT=0 pz>0) - 500, 0, 0, -300, // #7 (m=40>0 pT=0 pz<0) - 500, 180, 240, 0, // #8 (m=40>0 pT>0 pz=0) - 500, -240, -180, 0, // #9 (m=40>0 pT>0 pz=0) - 500, 180, 192, 144, // #10 (m=40>0 pT>0 pz>0) - 500, 180, 192, -144, // #11 (m=40>0 pT>0 pz<0) - 500, 0, 0, 500, // DUPLICATE #12 == #0 (m=0 pT=0 E=pz>0) - 500, 0, 0, -500, // DUPLICATE #13 == #1 (m=0 pT=0 -E=pz<0) - 500, 300, 400, 0, // DUPLICATE #14 == #2 (m=0 pT>0 pz=0) - 500, 180, 240, 400 // DUPLICATE #15 == #3 (m=0 pT>0 pz>0) + 500, 0, 0, 500, // #0 (m=0 pT=0 E=pz>0) + 500, 0, 0, -500, // #1 (m=0 pT=0 -E=pz<0) + 500, 300, 400, 0, // #2 (m=0 pT>0 pz=0) + 500, 180, 240, 400, // #3 (m=0 pT>0 pz>0) + 500, 180, 240, -400, // #4 (m=0 pT>0 pz<0) + 500, 0, 0, 500, // #5 DUPLICATE == #0 (m=0 pT=0 E=pz>0) + 500, 0, 0, -500, // #6 DUPLICATE == #1 (m=0 pT=0 -E=pz<0) + 500, 300, 400, 0, // #7 DUPLICATE == #2 (m=0 pT>0 pz=0) + 500, 180, 240, 400, // #8 DUPLICATE == #3 (m=0 pT>0 pz>0) + 500, 180, 240, -400, // #9 DUPLICATE == #4 (m=0 pT>0 pz<0) + 500, 0, 0, 500, // #10 DUPLICATE == #0 (m=0 pT=0 E=pz>0) + 500, 0, 0, -500, // #11 DUPLICATE == #1 (m=0 pT=0 -E=pz<0) + 500, 300, 400, 0, // #12 DUPLICATE == #2 (m=0 pT>0 pz=0) + 500, 180, 240, 400, // #13 DUPLICATE == #3 (m=0 pT>0 pz>0) + 500, 180, 240, -400, // #14 DUPLICATE == #4 (m=0 pT>0 pz<0) + 500, 0, 0, 500, // #15 DUPLICATE == #0 (m=0 pT=0 E=pz>0) + 500, 0, 0, 0, // #16 (m=50>0 pT=0 pz=0) + 500, 0, 0, 300, // #17 (m=40>0 pT=0 pz>0) + 500, 0, 0, -300, // #18 (m=40>0 pT=0 pz<0) + 500, 180, 240, 0, // #19 (m=40>0 pT>0 pz=0) + 500, -240, -180, 0, // #20 (m=40>0 pT>0 pz=0) + 500, 180, 192, 144, // #21 (m=40>0 pT>0 pz>0) + 500, 180, 192, -144, // #22 (m=40>0 pT>0 pz<0) + 500, 0, 0, 0, // #23 DUPLICATE == #16 (m=50>0 pT=0 pz=0) + 500, 0, 0, 300, // #24 DUPLICATE == #17 (m=40>0 pT=0 pz>0) + 500, 0, 0, -300, // #25 DUPLICATE == #18 (m=40>0 pT=0 pz<0) + 500, 180, 240, 0, // #26 DUPLICATE == #19 (m=40>0 pT>0 pz=0) + 500, -240, -180, 0, // #27 DUPLICATE == #20 (m=40>0 pT>0 pz=0) + 500, 180, 192, 144, // #28 DUPLICATE == #21 (m=40>0 pT>0 pz>0) + 500, 180, 192, -144, // #29 DUPLICATE == #22 (m=40>0 pT>0 pz<0) + 500, 0, 0, 0, // #30 DUPLICATE == #16 (m=50>0 pT=0 pz=0) + 500, 0, 0, 300 // #31 DUPLICATE == #17 (m=40>0 pT=0 pz>0) }; /* clang-format on */ // Array initialization: zero-out as "{0}" (C and C++) or as "{}" (C++ only) // See https://en.cppreference.com/w/c/language/array_initialization#Notes @@ -99,7 +151,15 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) constexpr int nw6 = CPPProcess::nw6; // dimensions of each wavefunction (HELAS KEK 91-11): e.g. 6 for e+ e- -> mu+ mu- (fermions and vectors) int itest = 0; // index on the expected output vector std::ofstream dumpFile; - if( dumpEvents ) dumpFile.open( dumpFileName, std::ios::trunc ); + if( dumpEvents ) + { + dumpFile.open( dumpFileName, std::ios::trunc ); + dumpFile << " // Copyright (C) 2020-2023 CERN and UCLouvain." << std::endl + << " // Licensed under the GNU Lesser General Public License (version 3 or later)." << std::endl + << " // Created by: A. Valassi (Apr 2021) for the MG5aMC CUDACPP plugin." << std::endl + << " // Further modified by: A. Valassi (2021-2023) for the MG5aMC CUDACPP plugin." << std::endl; + } + // Lambda function for dumping wavefunctions auto dumpwf6 = [&]( std::ostream& out, const cxtype_sv wf[6], const char* xxx, int ievt, int nsp, fptype mass ) { out << std::setprecision( 15 ) << std::scientific; @@ -129,6 +189,7 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) } out << std::defaultfloat; }; + // Lambda function for testing wavefunctions (1) auto testwf6 = [&]( const cxtype_sv wf[6], const char* xxx, int ievt, int nsp, fptype mass ) { if( dumpEvents ) dumpwf6( dumpFile, wf, xxx, ievt, nsp, mass ); @@ -170,6 +231,7 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) } itest++; }; + // Lambda function for testing wavefunctions (2) auto testwf6two = [&]( const cxtype_sv wf[6], const cxtype_sv expwf[6], const char* xxx, int ievt ) { if( testEvents ) @@ -213,6 +275,32 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) } } }; + // Lambda function for resetting hstMomenta to the values of par0 + // This is needed in each test because hstMomenta may have been modified to ensure a function like ipzxxx can be used (#701) + auto resetHstMomentaToPar0 = [&]() + { + for( int ievt = 0; ievt < nevt; ievt++ ) + for( int ip4 = 0; ip4 < np4; ip4++ ) + MemoryAccessMomenta::ieventAccessIp4Ipar( hstMomenta.data(), ievt, ip4, ipar0 ) = par0[ievt * np4 + ip4]; // AOS to AOSOA + }; + // Lambda function for preparing the test of one specific function + const bool debug = false; + auto prepareTest = [&]( const char* xxx, int ievt ) + { + if( debug ) std::cout << "Prepare test " << xxx << " ievt=" << ievt << std::endl; + resetHstMomentaToPar0(); + FPEhandlerMessage = xxx; + FPEhandlerIevt = ievt; + if( std::string( xxx ) == "ipzxxx" || std::string( xxx ) == "opzxxx" || std::string( xxx ) == "imzxxx" || std::string( xxx ) == "omzxxx" || std::string( xxx ) == "ixzxxx" || std::string( xxx ) == "oxzxxx" ) + { + // Modify hstMomenta so that ALL events have the momenta of a single ievt + // This ensures that a function like ipzxxx (which assumes pZ>0) can be used without triggering FPEs (#701) + // This is done by filling the full SIMD vector with the value of ievt, which was already tested to respect the relevant assumptions + for( int jevt = 0; jevt < nevt; jevt++ ) + for( int ip4 = 0; ip4 < np4; ip4++ ) + MemoryAccessMomenta::ieventAccessIp4Ipar( hstMomenta.data(), jevt, ip4, ipar0 ) = par0[ievt * np4 + ip4]; // AOS to AOSOA + } + }; // Array initialization: zero-out as "{0}" (C and C++) or as "{}" (C++ only) // See https://en.cppreference.com/w/c/language/array_initialization#Notes cxtype_sv outwfI[6] = {}; // last result of ixxxxx (mass==0) @@ -224,6 +312,7 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) fptype* fp_outwf = reinterpret_cast( outwf ); // proof of concept for using fptype* in the interface fptype* fp_outwf3 = reinterpret_cast( outwf3 ); // proof of concept for using fptype* in the interface const int nhel = 1; + // *** START OF TESTING LOOP for( auto nsp: { -1, +1 } ) // antifermion/fermion (or initial/final for scalar and vector) { for( int ievt = 0; ievt < nevt; ievt++ ) @@ -233,9 +322,10 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) #else using namespace mg5amcCpu; #endif - if( false ) + if( debug ) { std::cout << std::endl; + std::cout << "nsp=" << nsp << " ievt=" << ievt << ": "; for( int ip4 = 0; ip4 < np4; ip4++ ) std::cout << par0[ievt * np4 + ip4] << ", "; std::cout << std::endl; } @@ -243,6 +333,7 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) const fptype* ievt0Momenta = MemoryAccessMomenta::ieventAccessRecordConst( hstMomenta.data(), ipagV * neppV ); // Test ixxxxx - NO ASSUMPTIONS { + prepareTest( "ixxxxx", ievt ); const fptype fmass = mass0[ievt]; ixxxxx( ievt0Momenta, fmass, nhel, nsp, fp_outwfI, ipar0 ); testwf6( outwfI, "ixxxxx", ievt, nsp, fmass ); @@ -252,6 +343,7 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) // Test ipzxxx - ASSUMPTIONS: (FMASS == 0) and (PX == PY == 0 and E == +PZ > 0) if( mass0[ievt] == 0 && !isptgt0[ievt] && ispzgt0[ievt] ) { + prepareTest( "ipzxxx", ievt ); ipzxxx( ievt0Momenta, nhel, nsp, fp_outwf, ipar0 ); testwf6two( outwf, outwfI, "ipzxxx", ievt ); testwf6( outwf, "ipzxxx", ievt, nsp, 0 ); @@ -259,6 +351,7 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) // Test imzxxx - ASSUMPTIONS: (FMASS == 0) and (PX == PY == 0 and E == -PZ > 0) if( mass0[ievt] == 0 && !isptgt0[ievt] && ispzlt0[ievt] ) { + prepareTest( "imzxxx", ievt ); imzxxx( ievt0Momenta, nhel, nsp, fp_outwf, ipar0 ); testwf6two( outwf, outwfI, "imzxxx", ievt ); testwf6( outwf, "imzxxx", ievt, nsp, 0 ); @@ -266,12 +359,14 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) // Test ixzxxx - ASSUMPTIONS: (FMASS == 0) and (PT > 0) if( mass0[ievt] == 0 && isptgt0[ievt] ) { + prepareTest( "ixzxxx", ievt ); ixzxxx( ievt0Momenta, nhel, nsp, fp_outwf, ipar0 ); testwf6two( outwf, outwfI, "ixzxxx", ievt ); testwf6( outwf, "ixzxxx", ievt, nsp, 0 ); } // Test vxxxxx - NO ASSUMPTIONS { + prepareTest( "vxxxxx", ievt ); const fptype vmass = mass0[ievt]; vxxxxx( ievt0Momenta, vmass, nhel, nsp, fp_outwf, ipar0 ); testwf6( outwf, "vxxxxx", ievt, nsp, vmass ); @@ -280,6 +375,7 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) } // Test sxxxxx - NO ASSUMPTIONS { + prepareTest( "sxxxxx", ievt ); const fptype smass = mass0[ievt]; sxxxxx( ievt0Momenta, nsp, fp_outwf3, ipar0 ); // no mass, no helicity (was "smass>0") testwf6( outwf3, "sxxxxx", ievt, nsp, smass ); @@ -288,6 +384,7 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) } // Test oxxxxx - NO ASSUMPTIONS { + prepareTest( "oxxxxx", ievt ); const fptype fmass = mass0[ievt]; oxxxxx( ievt0Momenta, fmass, nhel, nsp, fp_outwfO, ipar0 ); testwf6( outwfO, "oxxxxx", ievt, nsp, fmass ); @@ -297,6 +394,7 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) // Test opzxxx - ASSUMPTIONS: (FMASS == 0) and (PX == PY == 0 and E == +PZ > 0) if( mass0[ievt] == 0 && !isptgt0[ievt] && ispzgt0[ievt] ) { + prepareTest( "opzxxx", ievt ); opzxxx( ievt0Momenta, nhel, nsp, fp_outwf, ipar0 ); testwf6two( outwf, outwfO, "opzxxx", ievt ); testwf6( outwf, "opzxxx", ievt, nsp, 0 ); @@ -304,6 +402,7 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) // Test omzxxx - ASSUMPTIONS: (FMASS == 0) and (PX == PY == 0 and E == -PZ > 0) if( mass0[ievt] == 0 && !isptgt0[ievt] && ispzlt0[ievt] ) { + prepareTest( "omzxxx", ievt ); omzxxx( ievt0Momenta, nhel, nsp, fp_outwf, ipar0 ); testwf6two( outwf, outwfO, "omzxxx", ievt ); testwf6( outwf, "omzxxx", ievt, nsp, 0 ); @@ -311,17 +410,25 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) // Test oxzxxx - ASSUMPTIONS: (FMASS == 0) and (PT > 0) if( mass0[ievt] == 0 && isptgt0[ievt] ) { - oxzxxx( ievt0Momenta, nhel, nsp, reinterpret_cast( outwf ), ipar0 ); + prepareTest( "oxzxxx", ievt ); + oxzxxx( ievt0Momenta, nhel, nsp, fp_outwf, ipar0 ); testwf6two( outwf, outwfO, "oxzxxx", ievt ); testwf6( outwf, "oxzxxx", ievt, nsp, 0 ); } } } + // *** END OF TESTING LOOP if( dumpEvents ) { dumpFile.close(); std::cout << "INFO: New reference data dumped to file '" << dumpFileName << "'" << std::endl; } +#ifndef __APPLE__ // test #701 (except on MacOS where fedisableexcept is not defined #730) + if( enableFPE ) + { + fedisableexcept( FE_INVALID | FE_DIVBYZERO | FE_OVERFLOW | FE_UNDERFLOW ); // debug #701 + } +#endif } //========================================================================== diff --git a/epochX/cudacpp/gg_tt.sa/SubProcesses/testxxx_cc_ref.txt b/epochX/cudacpp/gg_tt.sa/SubProcesses/testxxx_cc_ref.txt index acb9bde918..637530d1f5 100644 --- a/epochX/cudacpp/gg_tt.sa/SubProcesses/testxxx_cc_ref.txt +++ b/epochX/cudacpp/gg_tt.sa/SubProcesses/testxxx_cc_ref.txt @@ -5,14 +5,14 @@ expwfs.push_back( { // --------- 5.000000000000000e+02, 5.000000000000000e+02, // itest=0: ixxxxx#0 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=0: ixxxxx#0 nsp=-1 mass=0 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=0: ixxxxx#0 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=0: ixxxxx#0 nsp=-1 mass=0 -3.162277660168379e+01, 0.000000000000000e+00, // itest=0: ixxxxx#0 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=0: ixxxxx#0 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=0: ixxxxx#0 nsp=-1 mass=0 expwfs.push_back( { // --------- 5.000000000000000e+02, 5.000000000000000e+02, // itest=1: ixxxxx#0 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=1: ixxxxx#0 nsp=-1 mass=0 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=1: ixxxxx#0 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=1: ixxxxx#0 nsp=-1 mass=0 -3.162277660168379e+01, 0.000000000000000e+00, // itest=1: ixxxxx#0 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=1: ixxxxx#0 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=1: ixxxxx#0 nsp=-1 mass=0 @@ -82,8 +82,8 @@ expwfs.push_back( { // --------- 5.000000000000000e+02, -5.000000000000000e+02, // itest=11: ixxxxx#1 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=11: ixxxxx#1 nsp=-1 mass=0 - -3.162277660168379e+01, -0.000000000000000e+00, // itest=11: ixxxxx#1 nsp=-1 mass=0 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=11: ixxxxx#1 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=11: ixxxxx#1 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=11: ixxxxx#1 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=11: ixxxxx#1 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=11: ixxxxx#1 nsp=-1 mass=0 expwfs.push_back( { // --------- @@ -133,8 +133,8 @@ -0.000000000000000e+00, -0.000000000000000e+00, // itest=18: oxxxxx#1 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=18: oxxxxx#1 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=18: oxxxxx#1 nsp=-1 mass=0 - -3.162277660168379e+01, -0.000000000000000e+00, // itest=18: oxxxxx#1 nsp=-1 mass=0 - -0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=18: oxxxxx#1 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=18: oxxxxx#1 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=18: oxxxxx#1 nsp=-1 mass=0 expwfs.push_back( { // --------- -5.000000000000000e+02, 5.000000000000000e+02, // itest=19: omzxxx#1 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=19: omzxxx#1 nsp=-1 mass=0 @@ -145,14 +145,14 @@ expwfs.push_back( { // --------- 5.000000000000000e+02, 0.000000000000000e+00, // itest=20: ixxxxx#2 nsp=-1 mass=0 3.000000000000000e+02, 4.000000000000000e+02, // itest=20: ixxxxx#2 nsp=-1 mass=0 - 1.341640786499874e+01, -1.788854381999832e+01, // itest=20: ixxxxx#2 nsp=-1 mass=0 + 1.341640786499874e+01, -1.788854381999831e+01, // itest=20: ixxxxx#2 nsp=-1 mass=0 -2.236067977499790e+01, 0.000000000000000e+00, // itest=20: ixxxxx#2 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=20: ixxxxx#2 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=20: ixxxxx#2 nsp=-1 mass=0 expwfs.push_back( { // --------- 5.000000000000000e+02, 0.000000000000000e+00, // itest=21: ixxxxx#2 nsp=-1 mass=0 3.000000000000000e+02, 4.000000000000000e+02, // itest=21: ixxxxx#2 nsp=-1 mass=0 - 1.341640786499874e+01, -1.788854381999832e+01, // itest=21: ixxxxx#2 nsp=-1 mass=0 + 1.341640786499874e+01, -1.788854381999831e+01, // itest=21: ixxxxx#2 nsp=-1 mass=0 -2.236067977499790e+01, 0.000000000000000e+00, // itest=21: ixxxxx#2 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=21: ixxxxx#2 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=21: ixxxxx#2 nsp=-1 mass=0 @@ -196,14 +196,14 @@ -3.000000000000000e+02, -4.000000000000000e+02, // itest=27: oxxxxx#2 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=27: oxxxxx#2 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=27: oxxxxx#2 nsp=-1 mass=0 - 1.341640786499874e+01, 1.788854381999832e+01, // itest=27: oxxxxx#2 nsp=-1 mass=0 + 1.341640786499874e+01, 1.788854381999831e+01, // itest=27: oxxxxx#2 nsp=-1 mass=0 -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=27: oxxxxx#2 nsp=-1 mass=0 expwfs.push_back( { // --------- -5.000000000000000e+02, -0.000000000000000e+00, // itest=28: oxxxxx#2 nsp=-1 mass=0 -3.000000000000000e+02, -4.000000000000000e+02, // itest=28: oxxxxx#2 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=28: oxxxxx#2 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=28: oxxxxx#2 nsp=-1 mass=0 - 1.341640786499874e+01, 1.788854381999832e+01, // itest=28: oxxxxx#2 nsp=-1 mass=0 + 1.341640786499874e+01, 1.788854381999831e+01, // itest=28: oxxxxx#2 nsp=-1 mass=0 -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=28: oxxxxx#2 nsp=-1 mass=0 expwfs.push_back( { // --------- -5.000000000000000e+02, -0.000000000000000e+00, // itest=29: oxzxxx#2 nsp=-1 mass=0 @@ -353,1696 +353,3684 @@ 1.800000000000000e+01, 2.400000000000000e+01, // itest=49: oxzxxx#4 nsp=-1 mass=0 -1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=49: oxzxxx#4 nsp=-1 mass=0 expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=50: ixxxxx#5 nsp=-1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=50: ixxxxx#5 nsp=-1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=50: ixxxxx#5 nsp=-1 mass=500 - -2.236067977499790e+01, 0.000000000000000e+00, // itest=50: ixxxxx#5 nsp=-1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=50: ixxxxx#5 nsp=-1 mass=500 - 2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=50: ixxxxx#5 nsp=-1 mass=500 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=51: ixxxxx#5 nsp=-1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=51: ixxxxx#5 nsp=-1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=51: ixxxxx#5 nsp=-1 mass=-500 - -2.236067977499790e+01, 0.000000000000000e+00, // itest=51: ixxxxx#5 nsp=-1 mass=-500 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=51: ixxxxx#5 nsp=-1 mass=-500 - -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=51: ixxxxx#5 nsp=-1 mass=-500 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=52: vxxxxx#5 nsp=-1 mass=500 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=52: vxxxxx#5 nsp=-1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=52: vxxxxx#5 nsp=-1 mass=500 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=52: vxxxxx#5 nsp=-1 mass=500 - 0.000000000000000e+00, -7.071067811865476e-01, // itest=52: vxxxxx#5 nsp=-1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=52: vxxxxx#5 nsp=-1 mass=500 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=53: vxxxxx#5 nsp=-1 mass=-500 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=53: vxxxxx#5 nsp=-1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=53: vxxxxx#5 nsp=-1 mass=-500 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=53: vxxxxx#5 nsp=-1 mass=-500 - 0.000000000000000e+00, -7.071067811865476e-01, // itest=53: vxxxxx#5 nsp=-1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=53: vxxxxx#5 nsp=-1 mass=-500 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=54: sxxxxx#5 nsp=-1 mass=500 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=54: sxxxxx#5 nsp=-1 mass=500 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=54: sxxxxx#5 nsp=-1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=54: sxxxxx#5 nsp=-1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=54: sxxxxx#5 nsp=-1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=54: sxxxxx#5 nsp=-1 mass=500 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=55: sxxxxx#5 nsp=-1 mass=-500 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=55: sxxxxx#5 nsp=-1 mass=-500 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=55: sxxxxx#5 nsp=-1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=55: sxxxxx#5 nsp=-1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=55: sxxxxx#5 nsp=-1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=55: sxxxxx#5 nsp=-1 mass=-500 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=56: oxxxxx#5 nsp=-1 mass=500 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=56: oxxxxx#5 nsp=-1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=56: oxxxxx#5 nsp=-1 mass=500 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=56: oxxxxx#5 nsp=-1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=56: oxxxxx#5 nsp=-1 mass=500 - -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=56: oxxxxx#5 nsp=-1 mass=500 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=57: oxxxxx#5 nsp=-1 mass=-500 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=57: oxxxxx#5 nsp=-1 mass=-500 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=57: oxxxxx#5 nsp=-1 mass=-500 - -2.236067977499790e+01, 0.000000000000000e+00, // itest=57: oxxxxx#5 nsp=-1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=57: oxxxxx#5 nsp=-1 mass=-500 - -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=57: oxxxxx#5 nsp=-1 mass=-500 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 3.000000000000000e+02, // itest=58: ixxxxx#6 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=58: ixxxxx#6 nsp=-1 mass=400 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=58: ixxxxx#6 nsp=-1 mass=400 - -2.828427124746190e+01, -0.000000000000000e+00, // itest=58: ixxxxx#6 nsp=-1 mass=400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=58: ixxxxx#6 nsp=-1 mass=400 - 1.414213562373095e+01, 0.000000000000000e+00 } ); // itest=58: ixxxxx#6 nsp=-1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 3.000000000000000e+02, // itest=59: ixxxxx#6 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=59: ixxxxx#6 nsp=-1 mass=-400 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=59: ixxxxx#6 nsp=-1 mass=-400 - -2.828427124746190e+01, -0.000000000000000e+00, // itest=59: ixxxxx#6 nsp=-1 mass=-400 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=59: ixxxxx#6 nsp=-1 mass=-400 - -1.414213562373095e+01, -0.000000000000000e+00 } ); // itest=59: ixxxxx#6 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -3.000000000000000e+02, // itest=60: vxxxxx#6 nsp=-1 mass=400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=60: vxxxxx#6 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=60: vxxxxx#6 nsp=-1 mass=400 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=60: vxxxxx#6 nsp=-1 mass=400 - 0.000000000000000e+00, -7.071067811865476e-01, // itest=60: vxxxxx#6 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=60: vxxxxx#6 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -3.000000000000000e+02, // itest=61: vxxxxx#6 nsp=-1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=61: vxxxxx#6 nsp=-1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=61: vxxxxx#6 nsp=-1 mass=-400 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=61: vxxxxx#6 nsp=-1 mass=-400 - 0.000000000000000e+00, -7.071067811865476e-01, // itest=61: vxxxxx#6 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=61: vxxxxx#6 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -3.000000000000000e+02, // itest=62: sxxxxx#6 nsp=-1 mass=400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=62: sxxxxx#6 nsp=-1 mass=400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=62: sxxxxx#6 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=62: sxxxxx#6 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=62: sxxxxx#6 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=62: sxxxxx#6 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -3.000000000000000e+02, // itest=63: sxxxxx#6 nsp=-1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=63: sxxxxx#6 nsp=-1 mass=-400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=63: sxxxxx#6 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=63: sxxxxx#6 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=63: sxxxxx#6 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=63: sxxxxx#6 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -3.000000000000000e+02, // itest=64: oxxxxx#6 nsp=-1 mass=400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=64: oxxxxx#6 nsp=-1 mass=400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=64: oxxxxx#6 nsp=-1 mass=400 - 1.414213562373095e+01, 0.000000000000000e+00, // itest=64: oxxxxx#6 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=64: oxxxxx#6 nsp=-1 mass=400 - -2.828427124746190e+01, -0.000000000000000e+00 } ); // itest=64: oxxxxx#6 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -3.000000000000000e+02, // itest=65: oxxxxx#6 nsp=-1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=65: oxxxxx#6 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=65: oxxxxx#6 nsp=-1 mass=-400 - -1.414213562373095e+01, -0.000000000000000e+00, // itest=65: oxxxxx#6 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=65: oxxxxx#6 nsp=-1 mass=-400 - -2.828427124746190e+01, -0.000000000000000e+00 } ); // itest=65: oxxxxx#6 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -3.000000000000000e+02, // itest=66: ixxxxx#7 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=66: ixxxxx#7 nsp=-1 mass=400 - -2.828427124746190e+01, -0.000000000000000e+00, // itest=66: ixxxxx#7 nsp=-1 mass=400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=66: ixxxxx#7 nsp=-1 mass=400 - 1.414213562373095e+01, 0.000000000000000e+00, // itest=66: ixxxxx#7 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=66: ixxxxx#7 nsp=-1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -3.000000000000000e+02, // itest=67: ixxxxx#7 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=67: ixxxxx#7 nsp=-1 mass=-400 - -2.828427124746190e+01, -0.000000000000000e+00, // itest=67: ixxxxx#7 nsp=-1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=67: ixxxxx#7 nsp=-1 mass=-400 - -1.414213562373095e+01, -0.000000000000000e+00, // itest=67: ixxxxx#7 nsp=-1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=67: ixxxxx#7 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 3.000000000000000e+02, // itest=68: vxxxxx#7 nsp=-1 mass=400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=68: vxxxxx#7 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=68: vxxxxx#7 nsp=-1 mass=400 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=68: vxxxxx#7 nsp=-1 mass=400 - 0.000000000000000e+00, 7.071067811865476e-01, // itest=68: vxxxxx#7 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=68: vxxxxx#7 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 3.000000000000000e+02, // itest=69: vxxxxx#7 nsp=-1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=69: vxxxxx#7 nsp=-1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=69: vxxxxx#7 nsp=-1 mass=-400 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=69: vxxxxx#7 nsp=-1 mass=-400 - 0.000000000000000e+00, 7.071067811865476e-01, // itest=69: vxxxxx#7 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=69: vxxxxx#7 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 3.000000000000000e+02, // itest=70: sxxxxx#7 nsp=-1 mass=400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=70: sxxxxx#7 nsp=-1 mass=400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=70: sxxxxx#7 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=70: sxxxxx#7 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=70: sxxxxx#7 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=70: sxxxxx#7 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 3.000000000000000e+02, // itest=71: sxxxxx#7 nsp=-1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=71: sxxxxx#7 nsp=-1 mass=-400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=71: sxxxxx#7 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=71: sxxxxx#7 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=71: sxxxxx#7 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=71: sxxxxx#7 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 3.000000000000000e+02, // itest=72: oxxxxx#7 nsp=-1 mass=400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=72: oxxxxx#7 nsp=-1 mass=400 - 1.414213562373095e+01, 0.000000000000000e+00, // itest=72: oxxxxx#7 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=72: oxxxxx#7 nsp=-1 mass=400 - -2.828427124746190e+01, -0.000000000000000e+00, // itest=72: oxxxxx#7 nsp=-1 mass=400 - -0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=72: oxxxxx#7 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 3.000000000000000e+02, // itest=73: oxxxxx#7 nsp=-1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=73: oxxxxx#7 nsp=-1 mass=-400 - -1.414213562373095e+01, -0.000000000000000e+00, // itest=73: oxxxxx#7 nsp=-1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=73: oxxxxx#7 nsp=-1 mass=-400 - -2.828427124746190e+01, -0.000000000000000e+00, // itest=73: oxxxxx#7 nsp=-1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=73: oxxxxx#7 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=74: ixxxxx#8 nsp=-1 mass=400 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=74: ixxxxx#8 nsp=-1 mass=400 - 1.200000000000000e+01, -1.600000000000000e+01, // itest=74: ixxxxx#8 nsp=-1 mass=400 - -2.000000000000000e+01, -0.000000000000000e+00, // itest=74: ixxxxx#8 nsp=-1 mass=400 - -5.999999999999999e+00, 7.999999999999999e+00, // itest=74: ixxxxx#8 nsp=-1 mass=400 - 1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=74: ixxxxx#8 nsp=-1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=75: ixxxxx#8 nsp=-1 mass=-400 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=75: ixxxxx#8 nsp=-1 mass=-400 - 1.200000000000000e+01, -1.600000000000000e+01, // itest=75: ixxxxx#8 nsp=-1 mass=-400 - -2.000000000000000e+01, -0.000000000000000e+00, // itest=75: ixxxxx#8 nsp=-1 mass=-400 - 5.999999999999999e+00, -7.999999999999999e+00, // itest=75: ixxxxx#8 nsp=-1 mass=-400 - -1.000000000000000e+01, -0.000000000000000e+00 } ); // itest=75: ixxxxx#8 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=76: vxxxxx#8 nsp=-1 mass=400 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=76: vxxxxx#8 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=76: vxxxxx#8 nsp=-1 mass=400 - 0.000000000000000e+00, 5.656854249492381e-01, // itest=76: vxxxxx#8 nsp=-1 mass=400 - 0.000000000000000e+00, -4.242640687119285e-01, // itest=76: vxxxxx#8 nsp=-1 mass=400 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=76: vxxxxx#8 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=77: vxxxxx#8 nsp=-1 mass=-400 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=77: vxxxxx#8 nsp=-1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=77: vxxxxx#8 nsp=-1 mass=-400 - -0.000000000000000e+00, 5.656854249492381e-01, // itest=77: vxxxxx#8 nsp=-1 mass=-400 - -0.000000000000000e+00, -4.242640687119285e-01, // itest=77: vxxxxx#8 nsp=-1 mass=-400 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=77: vxxxxx#8 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=78: sxxxxx#8 nsp=-1 mass=400 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=78: sxxxxx#8 nsp=-1 mass=400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=78: sxxxxx#8 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=78: sxxxxx#8 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=78: sxxxxx#8 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=78: sxxxxx#8 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=79: sxxxxx#8 nsp=-1 mass=-400 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=79: sxxxxx#8 nsp=-1 mass=-400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=79: sxxxxx#8 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=79: sxxxxx#8 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=79: sxxxxx#8 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=79: sxxxxx#8 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=80: oxxxxx#8 nsp=-1 mass=400 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=80: oxxxxx#8 nsp=-1 mass=400 - -5.999999999999999e+00, -7.999999999999999e+00, // itest=80: oxxxxx#8 nsp=-1 mass=400 - 1.000000000000000e+01, 0.000000000000000e+00, // itest=80: oxxxxx#8 nsp=-1 mass=400 - 1.200000000000000e+01, 1.600000000000000e+01, // itest=80: oxxxxx#8 nsp=-1 mass=400 - -2.000000000000000e+01, -0.000000000000000e+00 } ); // itest=80: oxxxxx#8 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=81: oxxxxx#8 nsp=-1 mass=-400 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=81: oxxxxx#8 nsp=-1 mass=-400 - 5.999999999999999e+00, 7.999999999999999e+00, // itest=81: oxxxxx#8 nsp=-1 mass=-400 - -1.000000000000000e+01, -0.000000000000000e+00, // itest=81: oxxxxx#8 nsp=-1 mass=-400 - 1.200000000000000e+01, 1.600000000000000e+01, // itest=81: oxxxxx#8 nsp=-1 mass=-400 - -2.000000000000000e+01, -0.000000000000000e+00 } ); // itest=81: oxxxxx#8 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=82: ixxxxx#9 nsp=-1 mass=400 - -2.400000000000000e+02, -1.800000000000000e+02, // itest=82: ixxxxx#9 nsp=-1 mass=400 - -1.600000000000000e+01, 1.200000000000000e+01, // itest=82: ixxxxx#9 nsp=-1 mass=400 - -2.000000000000000e+01, -0.000000000000000e+00, // itest=82: ixxxxx#9 nsp=-1 mass=400 - 7.999999999999999e+00, -5.999999999999999e+00, // itest=82: ixxxxx#9 nsp=-1 mass=400 - 1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=82: ixxxxx#9 nsp=-1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=83: ixxxxx#9 nsp=-1 mass=-400 - -2.400000000000000e+02, -1.800000000000000e+02, // itest=83: ixxxxx#9 nsp=-1 mass=-400 - -1.600000000000000e+01, 1.200000000000000e+01, // itest=83: ixxxxx#9 nsp=-1 mass=-400 - -2.000000000000000e+01, -0.000000000000000e+00, // itest=83: ixxxxx#9 nsp=-1 mass=-400 - -7.999999999999999e+00, 5.999999999999999e+00, // itest=83: ixxxxx#9 nsp=-1 mass=-400 - -1.000000000000000e+01, -0.000000000000000e+00 } ); // itest=83: ixxxxx#9 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=84: vxxxxx#9 nsp=-1 mass=400 - 2.400000000000000e+02, 1.800000000000000e+02, // itest=84: vxxxxx#9 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=84: vxxxxx#9 nsp=-1 mass=400 - 0.000000000000000e+00, -4.242640687119285e-01, // itest=84: vxxxxx#9 nsp=-1 mass=400 - 0.000000000000000e+00, 5.656854249492381e-01, // itest=84: vxxxxx#9 nsp=-1 mass=400 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=84: vxxxxx#9 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=85: vxxxxx#9 nsp=-1 mass=-400 - 2.400000000000000e+02, 1.800000000000000e+02, // itest=85: vxxxxx#9 nsp=-1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=85: vxxxxx#9 nsp=-1 mass=-400 - 0.000000000000000e+00, -4.242640687119285e-01, // itest=85: vxxxxx#9 nsp=-1 mass=-400 - 0.000000000000000e+00, 5.656854249492381e-01, // itest=85: vxxxxx#9 nsp=-1 mass=-400 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=85: vxxxxx#9 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=86: sxxxxx#9 nsp=-1 mass=400 - 2.400000000000000e+02, 1.800000000000000e+02, // itest=86: sxxxxx#9 nsp=-1 mass=400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=86: sxxxxx#9 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=86: sxxxxx#9 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=86: sxxxxx#9 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=86: sxxxxx#9 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=87: sxxxxx#9 nsp=-1 mass=-400 - 2.400000000000000e+02, 1.800000000000000e+02, // itest=87: sxxxxx#9 nsp=-1 mass=-400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=87: sxxxxx#9 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=87: sxxxxx#9 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=87: sxxxxx#9 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=87: sxxxxx#9 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=88: oxxxxx#9 nsp=-1 mass=400 - 2.400000000000000e+02, 1.800000000000000e+02, // itest=88: oxxxxx#9 nsp=-1 mass=400 - 7.999999999999999e+00, 5.999999999999999e+00, // itest=88: oxxxxx#9 nsp=-1 mass=400 - 1.000000000000000e+01, 0.000000000000000e+00, // itest=88: oxxxxx#9 nsp=-1 mass=400 - -1.600000000000000e+01, -1.200000000000000e+01, // itest=88: oxxxxx#9 nsp=-1 mass=400 - -2.000000000000000e+01, -0.000000000000000e+00 } ); // itest=88: oxxxxx#9 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=89: oxxxxx#9 nsp=-1 mass=-400 - 2.400000000000000e+02, 1.800000000000000e+02, // itest=89: oxxxxx#9 nsp=-1 mass=-400 - -7.999999999999999e+00, -5.999999999999999e+00, // itest=89: oxxxxx#9 nsp=-1 mass=-400 - -1.000000000000000e+01, -0.000000000000000e+00, // itest=89: oxxxxx#9 nsp=-1 mass=-400 - -1.600000000000000e+01, -1.200000000000000e+01, // itest=89: oxxxxx#9 nsp=-1 mass=-400 - -2.000000000000000e+01, -0.000000000000000e+00 } ); // itest=89: oxxxxx#9 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 1.440000000000000e+02, // itest=90: ixxxxx#10 nsp=-1 mass=400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=90: ixxxxx#10 nsp=-1 mass=400 - 9.863939238321439e+00, -1.052153518754287e+01, // itest=90: ixxxxx#10 nsp=-1 mass=400 - -2.433105012119288e+01, -0.000000000000000e+00, // itest=90: ixxxxx#10 nsp=-1 mass=400 - -4.931969619160719e+00, 5.260767593771432e+00, // itest=90: ixxxxx#10 nsp=-1 mass=400 - 1.216552506059644e+01, 0.000000000000000e+00 } ); // itest=90: ixxxxx#10 nsp=-1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 1.440000000000000e+02, // itest=91: ixxxxx#10 nsp=-1 mass=-400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=91: ixxxxx#10 nsp=-1 mass=-400 - 9.863939238321439e+00, -1.052153518754287e+01, // itest=91: ixxxxx#10 nsp=-1 mass=-400 - -2.433105012119288e+01, -0.000000000000000e+00, // itest=91: ixxxxx#10 nsp=-1 mass=-400 - 4.931969619160719e+00, -5.260767593771432e+00, // itest=91: ixxxxx#10 nsp=-1 mass=-400 - -1.216552506059644e+01, -0.000000000000000e+00 } ); // itest=91: ixxxxx#10 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -1.440000000000000e+02, // itest=92: vxxxxx#10 nsp=-1 mass=400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=92: vxxxxx#10 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=92: vxxxxx#10 nsp=-1 mass=400 - -2.321373168788980e-01, 5.158607041753289e-01, // itest=92: vxxxxx#10 nsp=-1 mass=400 - -2.476131380041579e-01, -4.836194101643708e-01, // itest=92: vxxxxx#10 nsp=-1 mass=400 - 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=92: vxxxxx#10 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -1.440000000000000e+02, // itest=93: vxxxxx#10 nsp=-1 mass=-400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=93: vxxxxx#10 nsp=-1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=93: vxxxxx#10 nsp=-1 mass=-400 - -2.321373168788980e-01, 5.158607041753289e-01, // itest=93: vxxxxx#10 nsp=-1 mass=-400 - -2.476131380041579e-01, -4.836194101643708e-01, // itest=93: vxxxxx#10 nsp=-1 mass=-400 - 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=93: vxxxxx#10 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -1.440000000000000e+02, // itest=94: sxxxxx#10 nsp=-1 mass=400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=94: sxxxxx#10 nsp=-1 mass=400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=94: sxxxxx#10 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=94: sxxxxx#10 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=94: sxxxxx#10 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=94: sxxxxx#10 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -1.440000000000000e+02, // itest=95: sxxxxx#10 nsp=-1 mass=-400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=95: sxxxxx#10 nsp=-1 mass=-400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=95: sxxxxx#10 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=95: sxxxxx#10 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=95: sxxxxx#10 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=95: sxxxxx#10 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -1.440000000000000e+02, // itest=96: oxxxxx#10 nsp=-1 mass=400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=96: oxxxxx#10 nsp=-1 mass=400 - -4.931969619160719e+00, -5.260767593771432e+00, // itest=96: oxxxxx#10 nsp=-1 mass=400 - 1.216552506059644e+01, 0.000000000000000e+00, // itest=96: oxxxxx#10 nsp=-1 mass=400 - 9.863939238321439e+00, 1.052153518754287e+01, // itest=96: oxxxxx#10 nsp=-1 mass=400 - -2.433105012119288e+01, -0.000000000000000e+00 } ); // itest=96: oxxxxx#10 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -1.440000000000000e+02, // itest=97: oxxxxx#10 nsp=-1 mass=-400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=97: oxxxxx#10 nsp=-1 mass=-400 - 4.931969619160719e+00, 5.260767593771432e+00, // itest=97: oxxxxx#10 nsp=-1 mass=-400 - -1.216552506059644e+01, -0.000000000000000e+00, // itest=97: oxxxxx#10 nsp=-1 mass=-400 - 9.863939238321439e+00, 1.052153518754287e+01, // itest=97: oxxxxx#10 nsp=-1 mass=-400 - -2.433105012119288e+01, -0.000000000000000e+00 } ); // itest=97: oxxxxx#10 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -1.440000000000000e+02, // itest=98: ixxxxx#11 nsp=-1 mass=400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=98: ixxxxx#11 nsp=-1 mass=400 - 1.664100588675688e+01, -1.775040627920733e+01, // itest=98: ixxxxx#11 nsp=-1 mass=400 - -1.442220510185596e+01, -0.000000000000000e+00, // itest=98: ixxxxx#11 nsp=-1 mass=400 - -8.320502943378436e+00, 8.875203139603666e+00, // itest=98: ixxxxx#11 nsp=-1 mass=400 - 7.211102550927978e+00, 0.000000000000000e+00 } ); // itest=98: ixxxxx#11 nsp=-1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -1.440000000000000e+02, // itest=99: ixxxxx#11 nsp=-1 mass=-400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=99: ixxxxx#11 nsp=-1 mass=-400 - 1.664100588675688e+01, -1.775040627920733e+01, // itest=99: ixxxxx#11 nsp=-1 mass=-400 - -1.442220510185596e+01, -0.000000000000000e+00, // itest=99: ixxxxx#11 nsp=-1 mass=-400 - 8.320502943378436e+00, -8.875203139603666e+00, // itest=99: ixxxxx#11 nsp=-1 mass=-400 - -7.211102550927978e+00, -0.000000000000000e+00 } ); // itest=99: ixxxxx#11 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 1.440000000000000e+02, // itest=100: vxxxxx#11 nsp=-1 mass=400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=100: vxxxxx#11 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=100: vxxxxx#11 nsp=-1 mass=400 - 2.321373168788980e-01, 5.158607041753289e-01, // itest=100: vxxxxx#11 nsp=-1 mass=400 - 2.476131380041579e-01, -4.836194101643708e-01, // itest=100: vxxxxx#11 nsp=-1 mass=400 - 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=100: vxxxxx#11 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 1.440000000000000e+02, // itest=101: vxxxxx#11 nsp=-1 mass=-400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=101: vxxxxx#11 nsp=-1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=101: vxxxxx#11 nsp=-1 mass=-400 - 2.321373168788980e-01, 5.158607041753289e-01, // itest=101: vxxxxx#11 nsp=-1 mass=-400 - 2.476131380041579e-01, -4.836194101643708e-01, // itest=101: vxxxxx#11 nsp=-1 mass=-400 - 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=101: vxxxxx#11 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 1.440000000000000e+02, // itest=102: sxxxxx#11 nsp=-1 mass=400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=102: sxxxxx#11 nsp=-1 mass=400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=102: sxxxxx#11 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=102: sxxxxx#11 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=102: sxxxxx#11 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=102: sxxxxx#11 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 1.440000000000000e+02, // itest=103: sxxxxx#11 nsp=-1 mass=-400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=103: sxxxxx#11 nsp=-1 mass=-400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=103: sxxxxx#11 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=103: sxxxxx#11 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=103: sxxxxx#11 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=103: sxxxxx#11 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 1.440000000000000e+02, // itest=104: oxxxxx#11 nsp=-1 mass=400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=104: oxxxxx#11 nsp=-1 mass=400 - -8.320502943378436e+00, -8.875203139603666e+00, // itest=104: oxxxxx#11 nsp=-1 mass=400 - 7.211102550927978e+00, 0.000000000000000e+00, // itest=104: oxxxxx#11 nsp=-1 mass=400 - 1.664100588675688e+01, 1.775040627920733e+01, // itest=104: oxxxxx#11 nsp=-1 mass=400 - -1.442220510185596e+01, -0.000000000000000e+00 } ); // itest=104: oxxxxx#11 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 1.440000000000000e+02, // itest=105: oxxxxx#11 nsp=-1 mass=-400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=105: oxxxxx#11 nsp=-1 mass=-400 - 8.320502943378436e+00, 8.875203139603666e+00, // itest=105: oxxxxx#11 nsp=-1 mass=-400 - -7.211102550927978e+00, -0.000000000000000e+00, // itest=105: oxxxxx#11 nsp=-1 mass=-400 - 1.664100588675688e+01, 1.775040627920733e+01, // itest=105: oxxxxx#11 nsp=-1 mass=-400 - -1.442220510185596e+01, -0.000000000000000e+00 } ); // itest=105: oxxxxx#11 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=106: ixxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=106: ixxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=106: ixxxxx#12 nsp=-1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00, // itest=106: ixxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=106: ixxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=106: ixxxxx#12 nsp=-1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=107: ixxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=107: ixxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=107: ixxxxx#12 nsp=-1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00, // itest=107: ixxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=107: ixxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=107: ixxxxx#12 nsp=-1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=108: ipzxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=108: ipzxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=108: ipzxxx#12 nsp=-1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00, // itest=108: ipzxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=108: ipzxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=108: ipzxxx#12 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=109: vxxxxx#12 nsp=-1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=109: vxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=109: vxxxxx#12 nsp=-1 mass=0 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=109: vxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, -7.071067811865476e-01, // itest=109: vxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=109: vxxxxx#12 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=110: vxxxxx#12 nsp=-1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=110: vxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=110: vxxxxx#12 nsp=-1 mass=0 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=110: vxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, -7.071067811865476e-01, // itest=110: vxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=110: vxxxxx#12 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=111: sxxxxx#12 nsp=-1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=111: sxxxxx#12 nsp=-1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=111: sxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=111: sxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=111: sxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=111: sxxxxx#12 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=112: sxxxxx#12 nsp=-1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=112: sxxxxx#12 nsp=-1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=112: sxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=112: sxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=112: sxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=112: sxxxxx#12 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=113: oxxxxx#12 nsp=-1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=113: oxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=113: oxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=113: oxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=113: oxxxxx#12 nsp=-1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=113: oxxxxx#12 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=114: oxxxxx#12 nsp=-1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=114: oxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=114: oxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=114: oxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=114: oxxxxx#12 nsp=-1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=114: oxxxxx#12 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=115: opzxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=115: opzxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=115: opzxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=115: opzxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=115: opzxxx#12 nsp=-1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=115: opzxxx#12 nsp=-1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=116: ixxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=116: ixxxxx#13 nsp=-1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00, // itest=116: ixxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=116: ixxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=116: ixxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=116: ixxxxx#13 nsp=-1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=117: ixxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=117: ixxxxx#13 nsp=-1 mass=0 - -3.162277660168379e+01, -0.000000000000000e+00, // itest=117: ixxxxx#13 nsp=-1 mass=0 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=117: ixxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=117: ixxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=117: ixxxxx#13 nsp=-1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=118: imzxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=118: imzxxx#13 nsp=-1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00, // itest=118: imzxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=118: imzxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=118: imzxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=118: imzxxx#13 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=119: vxxxxx#13 nsp=-1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=119: vxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=119: vxxxxx#13 nsp=-1 mass=0 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=119: vxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 7.071067811865476e-01, // itest=119: vxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=119: vxxxxx#13 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=120: vxxxxx#13 nsp=-1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=120: vxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=120: vxxxxx#13 nsp=-1 mass=0 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=120: vxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 7.071067811865476e-01, // itest=120: vxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=120: vxxxxx#13 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=121: sxxxxx#13 nsp=-1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=121: sxxxxx#13 nsp=-1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=121: sxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=121: sxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=121: sxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=121: sxxxxx#13 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=122: sxxxxx#13 nsp=-1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=122: sxxxxx#13 nsp=-1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=122: sxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=122: sxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=122: sxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=122: sxxxxx#13 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=123: oxxxxx#13 nsp=-1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=123: oxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=123: oxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=123: oxxxxx#13 nsp=-1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00, // itest=123: oxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=123: oxxxxx#13 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=124: oxxxxx#13 nsp=-1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=124: oxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=124: oxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=124: oxxxxx#13 nsp=-1 mass=0 - -3.162277660168379e+01, -0.000000000000000e+00, // itest=124: oxxxxx#13 nsp=-1 mass=0 - -0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=124: oxxxxx#13 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=125: omzxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=125: omzxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=125: omzxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=125: omzxxx#13 nsp=-1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00, // itest=125: omzxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=125: omzxxx#13 nsp=-1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=126: ixxxxx#14 nsp=-1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=126: ixxxxx#14 nsp=-1 mass=0 - 1.341640786499874e+01, -1.788854381999832e+01, // itest=126: ixxxxx#14 nsp=-1 mass=0 - -2.236067977499790e+01, 0.000000000000000e+00, // itest=126: ixxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=126: ixxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=126: ixxxxx#14 nsp=-1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=127: ixxxxx#14 nsp=-1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=127: ixxxxx#14 nsp=-1 mass=0 - 1.341640786499874e+01, -1.788854381999832e+01, // itest=127: ixxxxx#14 nsp=-1 mass=0 - -2.236067977499790e+01, 0.000000000000000e+00, // itest=127: ixxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=127: ixxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=127: ixxxxx#14 nsp=-1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=128: ixzxxx#14 nsp=-1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=128: ixzxxx#14 nsp=-1 mass=0 - 1.341640786499874e+01, -1.788854381999832e+01, // itest=128: ixzxxx#14 nsp=-1 mass=0 - -2.236067977499790e+01, 0.000000000000000e+00, // itest=128: ixzxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=128: ixzxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=128: ixzxxx#14 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=129: vxxxxx#14 nsp=-1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=129: vxxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=129: vxxxxx#14 nsp=-1 mass=0 - -0.000000000000000e+00, 5.656854249492381e-01, // itest=129: vxxxxx#14 nsp=-1 mass=0 - -0.000000000000000e+00, -4.242640687119285e-01, // itest=129: vxxxxx#14 nsp=-1 mass=0 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=129: vxxxxx#14 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=130: vxxxxx#14 nsp=-1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=130: vxxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=130: vxxxxx#14 nsp=-1 mass=0 - -0.000000000000000e+00, 5.656854249492381e-01, // itest=130: vxxxxx#14 nsp=-1 mass=0 - -0.000000000000000e+00, -4.242640687119285e-01, // itest=130: vxxxxx#14 nsp=-1 mass=0 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=130: vxxxxx#14 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=131: sxxxxx#14 nsp=-1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=131: sxxxxx#14 nsp=-1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=131: sxxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=131: sxxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=131: sxxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=131: sxxxxx#14 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=132: sxxxxx#14 nsp=-1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=132: sxxxxx#14 nsp=-1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=132: sxxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=132: sxxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=132: sxxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=132: sxxxxx#14 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=133: oxxxxx#14 nsp=-1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=133: oxxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=133: oxxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=133: oxxxxx#14 nsp=-1 mass=0 - 1.341640786499874e+01, 1.788854381999832e+01, // itest=133: oxxxxx#14 nsp=-1 mass=0 - -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=133: oxxxxx#14 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=134: oxxxxx#14 nsp=-1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=134: oxxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=134: oxxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=134: oxxxxx#14 nsp=-1 mass=0 - 1.341640786499874e+01, 1.788854381999832e+01, // itest=134: oxxxxx#14 nsp=-1 mass=0 - -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=134: oxxxxx#14 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=135: oxzxxx#14 nsp=-1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=135: oxzxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=135: oxzxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=135: oxzxxx#14 nsp=-1 mass=0 - 1.341640786499874e+01, 1.788854381999832e+01, // itest=135: oxzxxx#14 nsp=-1 mass=0 - -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=135: oxzxxx#14 nsp=-1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=136: ixxxxx#15 nsp=-1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=136: ixxxxx#15 nsp=-1 mass=0 - 6.000000000000000e+00, -8.000000000000000e+00, // itest=136: ixxxxx#15 nsp=-1 mass=0 - -3.000000000000000e+01, 0.000000000000000e+00, // itest=136: ixxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=136: ixxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=136: ixxxxx#15 nsp=-1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=137: ixxxxx#15 nsp=-1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=137: ixxxxx#15 nsp=-1 mass=0 - 6.000000000000000e+00, -8.000000000000000e+00, // itest=137: ixxxxx#15 nsp=-1 mass=0 - -3.000000000000000e+01, 0.000000000000000e+00, // itest=137: ixxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=137: ixxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=137: ixxxxx#15 nsp=-1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=138: ixzxxx#15 nsp=-1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=138: ixzxxx#15 nsp=-1 mass=0 - 6.000000000000000e+00, -8.000000000000000e+00, // itest=138: ixzxxx#15 nsp=-1 mass=0 - -3.000000000000000e+01, 0.000000000000000e+00, // itest=138: ixzxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=138: ixzxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=138: ixzxxx#15 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=139: vxxxxx#15 nsp=-1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=139: vxxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=139: vxxxxx#15 nsp=-1 mass=0 - -3.394112549695428e-01, 5.656854249492381e-01, // itest=139: vxxxxx#15 nsp=-1 mass=0 - -4.525483399593904e-01, -4.242640687119285e-01, // itest=139: vxxxxx#15 nsp=-1 mass=0 - 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=139: vxxxxx#15 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=140: vxxxxx#15 nsp=-1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=140: vxxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=140: vxxxxx#15 nsp=-1 mass=0 - -3.394112549695428e-01, 5.656854249492381e-01, // itest=140: vxxxxx#15 nsp=-1 mass=0 - -4.525483399593904e-01, -4.242640687119285e-01, // itest=140: vxxxxx#15 nsp=-1 mass=0 - 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=140: vxxxxx#15 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=141: sxxxxx#15 nsp=-1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=141: sxxxxx#15 nsp=-1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=141: sxxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=141: sxxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=141: sxxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=141: sxxxxx#15 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=142: sxxxxx#15 nsp=-1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=142: sxxxxx#15 nsp=-1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=142: sxxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=142: sxxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=142: sxxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=142: sxxxxx#15 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=143: oxxxxx#15 nsp=-1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=143: oxxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=143: oxxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=143: oxxxxx#15 nsp=-1 mass=0 - 6.000000000000000e+00, 8.000000000000000e+00, // itest=143: oxxxxx#15 nsp=-1 mass=0 - -3.000000000000000e+01, 0.000000000000000e+00 } ); // itest=143: oxxxxx#15 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=144: oxxxxx#15 nsp=-1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=144: oxxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=144: oxxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=144: oxxxxx#15 nsp=-1 mass=0 - 6.000000000000000e+00, 8.000000000000000e+00, // itest=144: oxxxxx#15 nsp=-1 mass=0 - -3.000000000000000e+01, 0.000000000000000e+00 } ); // itest=144: oxxxxx#15 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=145: oxzxxx#15 nsp=-1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=145: oxzxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=145: oxzxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=145: oxzxxx#15 nsp=-1 mass=0 - 6.000000000000000e+00, 8.000000000000000e+00, // itest=145: oxzxxx#15 nsp=-1 mass=0 - -3.000000000000000e+01, 0.000000000000000e+00 } ); // itest=145: oxzxxx#15 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=146: ixxxxx#0 nsp=1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=146: ixxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=146: ixxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=146: ixxxxx#0 nsp=1 mass=0 - 3.162277660168379e+01, 0.000000000000000e+00, // itest=146: ixxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=146: ixxxxx#0 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=147: ixxxxx#0 nsp=1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=147: ixxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=147: ixxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=147: ixxxxx#0 nsp=1 mass=0 - 3.162277660168379e+01, 0.000000000000000e+00, // itest=147: ixxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=147: ixxxxx#0 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=148: ipzxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=148: ipzxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=148: ipzxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=148: ipzxxx#0 nsp=1 mass=0 - 3.162277660168379e+01, 0.000000000000000e+00, // itest=148: ipzxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=148: ipzxxx#0 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=149: vxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=149: vxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=149: vxxxxx#0 nsp=1 mass=0 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=149: vxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 7.071067811865476e-01, // itest=149: vxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=149: vxxxxx#0 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=150: vxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=150: vxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=150: vxxxxx#0 nsp=1 mass=0 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=150: vxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 7.071067811865476e-01, // itest=150: vxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=150: vxxxxx#0 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=151: sxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=151: sxxxxx#0 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=151: sxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=151: sxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=151: sxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=151: sxxxxx#0 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=152: sxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=152: sxxxxx#0 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=152: sxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=152: sxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=152: sxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=152: sxxxxx#0 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=153: oxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=153: oxxxxx#0 nsp=1 mass=0 - 3.162277660168379e+01, 0.000000000000000e+00, // itest=153: oxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=153: oxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=153: oxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=153: oxxxxx#0 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=154: oxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=154: oxxxxx#0 nsp=1 mass=0 - 3.162277660168379e+01, 0.000000000000000e+00, // itest=154: oxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=154: oxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=154: oxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=154: oxxxxx#0 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=155: opzxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=155: opzxxx#0 nsp=1 mass=0 - 3.162277660168379e+01, 0.000000000000000e+00, // itest=155: opzxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=155: opzxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=155: opzxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=155: opzxxx#0 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=156: ixxxxx#1 nsp=1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=156: ixxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=156: ixxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=156: ixxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=156: ixxxxx#1 nsp=1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=156: ixxxxx#1 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=157: ixxxxx#1 nsp=1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=157: ixxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=157: ixxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=157: ixxxxx#1 nsp=1 mass=0 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=157: ixxxxx#1 nsp=1 mass=0 - -3.162277660168379e+01, -0.000000000000000e+00 } ); // itest=157: ixxxxx#1 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=158: imzxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=158: imzxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=158: imzxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=158: imzxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=158: imzxxx#1 nsp=1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=158: imzxxx#1 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=159: vxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=159: vxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=159: vxxxxx#1 nsp=1 mass=0 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=159: vxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, -7.071067811865476e-01, // itest=159: vxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=159: vxxxxx#1 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=160: vxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=160: vxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=160: vxxxxx#1 nsp=1 mass=0 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=160: vxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, -7.071067811865476e-01, // itest=160: vxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=160: vxxxxx#1 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=161: sxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=161: sxxxxx#1 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=161: sxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=161: sxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=161: sxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=161: sxxxxx#1 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=162: sxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=162: sxxxxx#1 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=162: sxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=162: sxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=162: sxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=162: sxxxxx#1 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=163: oxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=163: oxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=163: oxxxxx#1 nsp=1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00, // itest=163: oxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=163: oxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=163: oxxxxx#1 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=164: oxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=164: oxxxxx#1 nsp=1 mass=0 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=164: oxxxxx#1 nsp=1 mass=0 - -3.162277660168379e+01, -0.000000000000000e+00, // itest=164: oxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=164: oxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=164: oxxxxx#1 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=165: omzxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=165: omzxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=165: omzxxx#1 nsp=1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00, // itest=165: omzxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=165: omzxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=165: omzxxx#1 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=166: ixxxxx#2 nsp=1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=166: ixxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=166: ixxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=166: ixxxxx#2 nsp=1 mass=0 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=166: ixxxxx#2 nsp=1 mass=0 - 1.341640786499874e+01, 1.788854381999832e+01 } ); // itest=166: ixxxxx#2 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=167: ixxxxx#2 nsp=1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=167: ixxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=167: ixxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=167: ixxxxx#2 nsp=1 mass=0 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=167: ixxxxx#2 nsp=1 mass=0 - 1.341640786499874e+01, 1.788854381999832e+01 } ); // itest=167: ixxxxx#2 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=168: ixzxxx#2 nsp=1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=168: ixzxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=168: ixzxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=168: ixzxxx#2 nsp=1 mass=0 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=168: ixzxxx#2 nsp=1 mass=0 - 1.341640786499874e+01, 1.788854381999832e+01 } ); // itest=168: ixzxxx#2 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=169: vxxxxx#2 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=169: vxxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=169: vxxxxx#2 nsp=1 mass=0 - -0.000000000000000e+00, -5.656854249492381e-01, // itest=169: vxxxxx#2 nsp=1 mass=0 - -0.000000000000000e+00, 4.242640687119285e-01, // itest=169: vxxxxx#2 nsp=1 mass=0 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=169: vxxxxx#2 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=170: vxxxxx#2 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=170: vxxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=170: vxxxxx#2 nsp=1 mass=0 - -0.000000000000000e+00, -5.656854249492381e-01, // itest=170: vxxxxx#2 nsp=1 mass=0 - -0.000000000000000e+00, 4.242640687119285e-01, // itest=170: vxxxxx#2 nsp=1 mass=0 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=170: vxxxxx#2 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=171: sxxxxx#2 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=171: sxxxxx#2 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=171: sxxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=171: sxxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=171: sxxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=171: sxxxxx#2 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=172: sxxxxx#2 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=172: sxxxxx#2 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=172: sxxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=172: sxxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=172: sxxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=172: sxxxxx#2 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=173: oxxxxx#2 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=173: oxxxxx#2 nsp=1 mass=0 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=173: oxxxxx#2 nsp=1 mass=0 - 1.341640786499874e+01, -1.788854381999832e+01, // itest=173: oxxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=173: oxxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=173: oxxxxx#2 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=174: oxxxxx#2 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=174: oxxxxx#2 nsp=1 mass=0 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=174: oxxxxx#2 nsp=1 mass=0 - 1.341640786499874e+01, -1.788854381999832e+01, // itest=174: oxxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=174: oxxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=174: oxxxxx#2 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=175: oxzxxx#2 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=175: oxzxxx#2 nsp=1 mass=0 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=175: oxzxxx#2 nsp=1 mass=0 - 1.341640786499874e+01, -1.788854381999832e+01, // itest=175: oxzxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=175: oxzxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=175: oxzxxx#2 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=176: ixxxxx#3 nsp=1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=176: ixxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=176: ixxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=176: ixxxxx#3 nsp=1 mass=0 - 3.000000000000000e+01, 0.000000000000000e+00, // itest=176: ixxxxx#3 nsp=1 mass=0 - 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=176: ixxxxx#3 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=177: ixxxxx#3 nsp=1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=177: ixxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=177: ixxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=177: ixxxxx#3 nsp=1 mass=0 - 3.000000000000000e+01, 0.000000000000000e+00, // itest=177: ixxxxx#3 nsp=1 mass=0 - 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=177: ixxxxx#3 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=178: ixzxxx#3 nsp=1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=178: ixzxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=178: ixzxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=178: ixzxxx#3 nsp=1 mass=0 - 3.000000000000000e+01, 0.000000000000000e+00, // itest=178: ixzxxx#3 nsp=1 mass=0 - 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=178: ixzxxx#3 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=179: vxxxxx#3 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=179: vxxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=179: vxxxxx#3 nsp=1 mass=0 - -3.394112549695428e-01, -5.656854249492381e-01, // itest=179: vxxxxx#3 nsp=1 mass=0 - -4.525483399593904e-01, 4.242640687119285e-01, // itest=179: vxxxxx#3 nsp=1 mass=0 - 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=179: vxxxxx#3 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=180: vxxxxx#3 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=180: vxxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=180: vxxxxx#3 nsp=1 mass=0 - -3.394112549695428e-01, -5.656854249492381e-01, // itest=180: vxxxxx#3 nsp=1 mass=0 - -4.525483399593904e-01, 4.242640687119285e-01, // itest=180: vxxxxx#3 nsp=1 mass=0 - 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=180: vxxxxx#3 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=181: sxxxxx#3 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=181: sxxxxx#3 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=181: sxxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=181: sxxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=181: sxxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=181: sxxxxx#3 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=182: sxxxxx#3 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=182: sxxxxx#3 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=182: sxxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=182: sxxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=182: sxxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=182: sxxxxx#3 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=183: oxxxxx#3 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=183: oxxxxx#3 nsp=1 mass=0 - 3.000000000000000e+01, 0.000000000000000e+00, // itest=183: oxxxxx#3 nsp=1 mass=0 - 6.000000000000000e+00, -8.000000000000000e+00, // itest=183: oxxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=183: oxxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=183: oxxxxx#3 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=184: oxxxxx#3 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=184: oxxxxx#3 nsp=1 mass=0 - 3.000000000000000e+01, 0.000000000000000e+00, // itest=184: oxxxxx#3 nsp=1 mass=0 - 6.000000000000000e+00, -8.000000000000000e+00, // itest=184: oxxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=184: oxxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=184: oxxxxx#3 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=185: oxzxxx#3 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=185: oxzxxx#3 nsp=1 mass=0 - 3.000000000000000e+01, 0.000000000000000e+00, // itest=185: oxzxxx#3 nsp=1 mass=0 - 6.000000000000000e+00, -8.000000000000000e+00, // itest=185: oxzxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=185: oxzxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=185: oxzxxx#3 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 4.000000000000000e+02, // itest=186: ixxxxx#4 nsp=1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=186: ixxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=186: ixxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=186: ixxxxx#4 nsp=1 mass=0 - 1.000000000000000e+01, 0.000000000000000e+00, // itest=186: ixxxxx#4 nsp=1 mass=0 - 1.800000000000000e+01, 2.400000000000000e+01 } ); // itest=186: ixxxxx#4 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 4.000000000000000e+02, // itest=187: ixxxxx#4 nsp=1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=187: ixxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=187: ixxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=187: ixxxxx#4 nsp=1 mass=0 - 1.000000000000000e+01, 0.000000000000000e+00, // itest=187: ixxxxx#4 nsp=1 mass=0 - 1.800000000000000e+01, 2.400000000000000e+01 } ); // itest=187: ixxxxx#4 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 4.000000000000000e+02, // itest=188: ixzxxx#4 nsp=1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=188: ixzxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=188: ixzxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=188: ixzxxx#4 nsp=1 mass=0 - 1.000000000000000e+01, 0.000000000000000e+00, // itest=188: ixzxxx#4 nsp=1 mass=0 - 1.800000000000000e+01, 2.400000000000000e+01 } ); // itest=188: ixzxxx#4 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -4.000000000000000e+02, // itest=189: vxxxxx#4 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=189: vxxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=189: vxxxxx#4 nsp=1 mass=0 - 3.394112549695428e-01, -5.656854249492381e-01, // itest=189: vxxxxx#4 nsp=1 mass=0 - 4.525483399593904e-01, 4.242640687119285e-01, // itest=189: vxxxxx#4 nsp=1 mass=0 - 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=189: vxxxxx#4 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -4.000000000000000e+02, // itest=190: vxxxxx#4 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=190: vxxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=190: vxxxxx#4 nsp=1 mass=0 - 3.394112549695428e-01, -5.656854249492381e-01, // itest=190: vxxxxx#4 nsp=1 mass=0 - 4.525483399593904e-01, 4.242640687119285e-01, // itest=190: vxxxxx#4 nsp=1 mass=0 - 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=190: vxxxxx#4 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -4.000000000000000e+02, // itest=191: sxxxxx#4 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=191: sxxxxx#4 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=191: sxxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=191: sxxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=191: sxxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=191: sxxxxx#4 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -4.000000000000000e+02, // itest=192: sxxxxx#4 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=192: sxxxxx#4 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=192: sxxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=192: sxxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=192: sxxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=192: sxxxxx#4 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -4.000000000000000e+02, // itest=193: oxxxxx#4 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=193: oxxxxx#4 nsp=1 mass=0 - 1.000000000000000e+01, 0.000000000000000e+00, // itest=193: oxxxxx#4 nsp=1 mass=0 - 1.800000000000000e+01, -2.400000000000000e+01, // itest=193: oxxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=193: oxxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=193: oxxxxx#4 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -4.000000000000000e+02, // itest=194: oxxxxx#4 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=194: oxxxxx#4 nsp=1 mass=0 - 1.000000000000000e+01, 0.000000000000000e+00, // itest=194: oxxxxx#4 nsp=1 mass=0 - 1.800000000000000e+01, -2.400000000000000e+01, // itest=194: oxxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=194: oxxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=194: oxxxxx#4 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -4.000000000000000e+02, // itest=195: oxzxxx#4 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=195: oxzxxx#4 nsp=1 mass=0 - 1.000000000000000e+01, 0.000000000000000e+00, // itest=195: oxzxxx#4 nsp=1 mass=0 - 1.800000000000000e+01, -2.400000000000000e+01, // itest=195: oxzxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=195: oxzxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=195: oxzxxx#4 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=196: ixxxxx#5 nsp=1 mass=500 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=196: ixxxxx#5 nsp=1 mass=500 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=196: ixxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=196: ixxxxx#5 nsp=1 mass=500 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=196: ixxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=196: ixxxxx#5 nsp=1 mass=500 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=197: ixxxxx#5 nsp=1 mass=-500 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=197: ixxxxx#5 nsp=1 mass=-500 - -2.236067977499790e+01, 0.000000000000000e+00, // itest=197: ixxxxx#5 nsp=1 mass=-500 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=197: ixxxxx#5 nsp=1 mass=-500 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=197: ixxxxx#5 nsp=1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=197: ixxxxx#5 nsp=1 mass=-500 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=198: vxxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=198: vxxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=198: vxxxxx#5 nsp=1 mass=500 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=198: vxxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 7.071067811865476e-01, // itest=198: vxxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=198: vxxxxx#5 nsp=1 mass=500 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=199: vxxxxx#5 nsp=1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=199: vxxxxx#5 nsp=1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=199: vxxxxx#5 nsp=1 mass=-500 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=199: vxxxxx#5 nsp=1 mass=-500 - 0.000000000000000e+00, 7.071067811865476e-01, // itest=199: vxxxxx#5 nsp=1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=199: vxxxxx#5 nsp=1 mass=-500 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=200: sxxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=200: sxxxxx#5 nsp=1 mass=500 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=200: sxxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=200: sxxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=200: sxxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=200: sxxxxx#5 nsp=1 mass=500 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=201: sxxxxx#5 nsp=1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=201: sxxxxx#5 nsp=1 mass=-500 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=201: sxxxxx#5 nsp=1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=201: sxxxxx#5 nsp=1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=201: sxxxxx#5 nsp=1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=201: sxxxxx#5 nsp=1 mass=-500 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=202: oxxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=202: oxxxxx#5 nsp=1 mass=500 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=202: oxxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=202: oxxxxx#5 nsp=1 mass=500 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=202: oxxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=202: oxxxxx#5 nsp=1 mass=500 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=203: oxxxxx#5 nsp=1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=203: oxxxxx#5 nsp=1 mass=-500 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=203: oxxxxx#5 nsp=1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=203: oxxxxx#5 nsp=1 mass=-500 - -2.236067977499790e+01, 0.000000000000000e+00, // itest=203: oxxxxx#5 nsp=1 mass=-500 - -0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=203: oxxxxx#5 nsp=1 mass=-500 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -3.000000000000000e+02, // itest=204: ixxxxx#6 nsp=1 mass=400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=204: ixxxxx#6 nsp=1 mass=400 - 1.414213562373095e+01, 0.000000000000000e+00, // itest=204: ixxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=204: ixxxxx#6 nsp=1 mass=400 - 2.828427124746190e+01, 0.000000000000000e+00, // itest=204: ixxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=204: ixxxxx#6 nsp=1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -3.000000000000000e+02, // itest=205: ixxxxx#6 nsp=1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=205: ixxxxx#6 nsp=1 mass=-400 - -1.414213562373095e+01, -0.000000000000000e+00, // itest=205: ixxxxx#6 nsp=1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=205: ixxxxx#6 nsp=1 mass=-400 - 2.828427124746190e+01, 0.000000000000000e+00, // itest=205: ixxxxx#6 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=205: ixxxxx#6 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 3.000000000000000e+02, // itest=206: vxxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=206: vxxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=206: vxxxxx#6 nsp=1 mass=400 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=206: vxxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, 7.071067811865476e-01, // itest=206: vxxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=206: vxxxxx#6 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 3.000000000000000e+02, // itest=207: vxxxxx#6 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=207: vxxxxx#6 nsp=1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=207: vxxxxx#6 nsp=1 mass=-400 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=207: vxxxxx#6 nsp=1 mass=-400 - 0.000000000000000e+00, 7.071067811865476e-01, // itest=207: vxxxxx#6 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=207: vxxxxx#6 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 3.000000000000000e+02, // itest=208: sxxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=208: sxxxxx#6 nsp=1 mass=400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=208: sxxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=208: sxxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=208: sxxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=208: sxxxxx#6 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 3.000000000000000e+02, // itest=209: sxxxxx#6 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=209: sxxxxx#6 nsp=1 mass=-400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=209: sxxxxx#6 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=209: sxxxxx#6 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=209: sxxxxx#6 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=209: sxxxxx#6 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 3.000000000000000e+02, // itest=210: oxxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=210: oxxxxx#6 nsp=1 mass=400 - 2.828427124746190e+01, 0.000000000000000e+00, // itest=210: oxxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=210: oxxxxx#6 nsp=1 mass=400 - 1.414213562373095e+01, 0.000000000000000e+00, // itest=210: oxxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=210: oxxxxx#6 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 3.000000000000000e+02, // itest=211: oxxxxx#6 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=211: oxxxxx#6 nsp=1 mass=-400 - 2.828427124746190e+01, 0.000000000000000e+00, // itest=211: oxxxxx#6 nsp=1 mass=-400 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=211: oxxxxx#6 nsp=1 mass=-400 - -1.414213562373095e+01, -0.000000000000000e+00, // itest=211: oxxxxx#6 nsp=1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=211: oxxxxx#6 nsp=1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 3.000000000000000e+02, // itest=212: ixxxxx#7 nsp=1 mass=400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=212: ixxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=212: ixxxxx#7 nsp=1 mass=400 - -1.414213562373095e+01, 0.000000000000000e+00, // itest=212: ixxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=212: ixxxxx#7 nsp=1 mass=400 - -2.828427124746190e+01, 0.000000000000000e+00 } ); // itest=212: ixxxxx#7 nsp=1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 3.000000000000000e+02, // itest=213: ixxxxx#7 nsp=1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=213: ixxxxx#7 nsp=1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=213: ixxxxx#7 nsp=1 mass=-400 - 1.414213562373095e+01, -0.000000000000000e+00, // itest=213: ixxxxx#7 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=213: ixxxxx#7 nsp=1 mass=-400 - -2.828427124746190e+01, 0.000000000000000e+00 } ); // itest=213: ixxxxx#7 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -3.000000000000000e+02, // itest=214: vxxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=214: vxxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=214: vxxxxx#7 nsp=1 mass=400 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=214: vxxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, -7.071067811865476e-01, // itest=214: vxxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=214: vxxxxx#7 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -3.000000000000000e+02, // itest=215: vxxxxx#7 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=215: vxxxxx#7 nsp=1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=215: vxxxxx#7 nsp=1 mass=-400 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=215: vxxxxx#7 nsp=1 mass=-400 - 0.000000000000000e+00, -7.071067811865476e-01, // itest=215: vxxxxx#7 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=215: vxxxxx#7 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -3.000000000000000e+02, // itest=216: sxxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=216: sxxxxx#7 nsp=1 mass=400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=216: sxxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=216: sxxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=216: sxxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=216: sxxxxx#7 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -3.000000000000000e+02, // itest=217: sxxxxx#7 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=217: sxxxxx#7 nsp=1 mass=-400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=217: sxxxxx#7 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=217: sxxxxx#7 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=217: sxxxxx#7 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=217: sxxxxx#7 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -3.000000000000000e+02, // itest=218: oxxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=218: oxxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=218: oxxxxx#7 nsp=1 mass=400 - -2.828427124746190e+01, 0.000000000000000e+00, // itest=218: oxxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=218: oxxxxx#7 nsp=1 mass=400 - -1.414213562373095e+01, 0.000000000000000e+00 } ); // itest=218: oxxxxx#7 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -3.000000000000000e+02, // itest=219: oxxxxx#7 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=219: oxxxxx#7 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=219: oxxxxx#7 nsp=1 mass=-400 - -2.828427124746190e+01, 0.000000000000000e+00, // itest=219: oxxxxx#7 nsp=1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=219: oxxxxx#7 nsp=1 mass=-400 - 1.414213562373095e+01, -0.000000000000000e+00 } ); // itest=219: oxxxxx#7 nsp=1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=220: ixxxxx#8 nsp=1 mass=400 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=220: ixxxxx#8 nsp=1 mass=400 - 1.000000000000000e+01, 0.000000000000000e+00, // itest=220: ixxxxx#8 nsp=1 mass=400 - 5.999999999999999e+00, 7.999999999999999e+00, // itest=220: ixxxxx#8 nsp=1 mass=400 - 2.000000000000000e+01, 0.000000000000000e+00, // itest=220: ixxxxx#8 nsp=1 mass=400 - 1.200000000000000e+01, 1.600000000000000e+01 } ); // itest=220: ixxxxx#8 nsp=1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=221: ixxxxx#8 nsp=1 mass=-400 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=221: ixxxxx#8 nsp=1 mass=-400 - -1.000000000000000e+01, -0.000000000000000e+00, // itest=221: ixxxxx#8 nsp=1 mass=-400 - -5.999999999999999e+00, -7.999999999999999e+00, // itest=221: ixxxxx#8 nsp=1 mass=-400 - 2.000000000000000e+01, 0.000000000000000e+00, // itest=221: ixxxxx#8 nsp=1 mass=-400 - 1.200000000000000e+01, 1.600000000000000e+01 } ); // itest=221: ixxxxx#8 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=222: vxxxxx#8 nsp=1 mass=400 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=222: vxxxxx#8 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=222: vxxxxx#8 nsp=1 mass=400 - 0.000000000000000e+00, -5.656854249492381e-01, // itest=222: vxxxxx#8 nsp=1 mass=400 - 0.000000000000000e+00, 4.242640687119285e-01, // itest=222: vxxxxx#8 nsp=1 mass=400 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=222: vxxxxx#8 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=223: vxxxxx#8 nsp=1 mass=-400 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=223: vxxxxx#8 nsp=1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=223: vxxxxx#8 nsp=1 mass=-400 - -0.000000000000000e+00, -5.656854249492381e-01, // itest=223: vxxxxx#8 nsp=1 mass=-400 - -0.000000000000000e+00, 4.242640687119285e-01, // itest=223: vxxxxx#8 nsp=1 mass=-400 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=223: vxxxxx#8 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=224: sxxxxx#8 nsp=1 mass=400 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=224: sxxxxx#8 nsp=1 mass=400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=224: sxxxxx#8 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=224: sxxxxx#8 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=224: sxxxxx#8 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=224: sxxxxx#8 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=225: sxxxxx#8 nsp=1 mass=-400 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=225: sxxxxx#8 nsp=1 mass=-400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=225: sxxxxx#8 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=225: sxxxxx#8 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=225: sxxxxx#8 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=225: sxxxxx#8 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=226: oxxxxx#8 nsp=1 mass=400 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=226: oxxxxx#8 nsp=1 mass=400 - 2.000000000000000e+01, 0.000000000000000e+00, // itest=226: oxxxxx#8 nsp=1 mass=400 - 1.200000000000000e+01, -1.600000000000000e+01, // itest=226: oxxxxx#8 nsp=1 mass=400 - 1.000000000000000e+01, 0.000000000000000e+00, // itest=226: oxxxxx#8 nsp=1 mass=400 - 5.999999999999999e+00, -7.999999999999999e+00 } ); // itest=226: oxxxxx#8 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=227: oxxxxx#8 nsp=1 mass=-400 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=227: oxxxxx#8 nsp=1 mass=-400 - 2.000000000000000e+01, 0.000000000000000e+00, // itest=227: oxxxxx#8 nsp=1 mass=-400 - 1.200000000000000e+01, -1.600000000000000e+01, // itest=227: oxxxxx#8 nsp=1 mass=-400 - -1.000000000000000e+01, -0.000000000000000e+00, // itest=227: oxxxxx#8 nsp=1 mass=-400 - -5.999999999999999e+00, 7.999999999999999e+00 } ); // itest=227: oxxxxx#8 nsp=1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=228: ixxxxx#9 nsp=1 mass=400 - 2.400000000000000e+02, 1.800000000000000e+02, // itest=228: ixxxxx#9 nsp=1 mass=400 - 1.000000000000000e+01, 0.000000000000000e+00, // itest=228: ixxxxx#9 nsp=1 mass=400 - -7.999999999999999e+00, -5.999999999999999e+00, // itest=228: ixxxxx#9 nsp=1 mass=400 - 2.000000000000000e+01, 0.000000000000000e+00, // itest=228: ixxxxx#9 nsp=1 mass=400 - -1.600000000000000e+01, -1.200000000000000e+01 } ); // itest=228: ixxxxx#9 nsp=1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=229: ixxxxx#9 nsp=1 mass=-400 - 2.400000000000000e+02, 1.800000000000000e+02, // itest=229: ixxxxx#9 nsp=1 mass=-400 - -1.000000000000000e+01, -0.000000000000000e+00, // itest=229: ixxxxx#9 nsp=1 mass=-400 - 7.999999999999999e+00, 5.999999999999999e+00, // itest=229: ixxxxx#9 nsp=1 mass=-400 - 2.000000000000000e+01, 0.000000000000000e+00, // itest=229: ixxxxx#9 nsp=1 mass=-400 - -1.600000000000000e+01, -1.200000000000000e+01 } ); // itest=229: ixxxxx#9 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=230: vxxxxx#9 nsp=1 mass=400 - -2.400000000000000e+02, -1.800000000000000e+02, // itest=230: vxxxxx#9 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=230: vxxxxx#9 nsp=1 mass=400 - 0.000000000000000e+00, 4.242640687119285e-01, // itest=230: vxxxxx#9 nsp=1 mass=400 - 0.000000000000000e+00, -5.656854249492381e-01, // itest=230: vxxxxx#9 nsp=1 mass=400 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=230: vxxxxx#9 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=231: vxxxxx#9 nsp=1 mass=-400 - -2.400000000000000e+02, -1.800000000000000e+02, // itest=231: vxxxxx#9 nsp=1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=231: vxxxxx#9 nsp=1 mass=-400 - 0.000000000000000e+00, 4.242640687119285e-01, // itest=231: vxxxxx#9 nsp=1 mass=-400 - 0.000000000000000e+00, -5.656854249492381e-01, // itest=231: vxxxxx#9 nsp=1 mass=-400 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=231: vxxxxx#9 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=232: sxxxxx#9 nsp=1 mass=400 - -2.400000000000000e+02, -1.800000000000000e+02, // itest=232: sxxxxx#9 nsp=1 mass=400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=232: sxxxxx#9 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=232: sxxxxx#9 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=232: sxxxxx#9 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=232: sxxxxx#9 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=233: sxxxxx#9 nsp=1 mass=-400 - -2.400000000000000e+02, -1.800000000000000e+02, // itest=233: sxxxxx#9 nsp=1 mass=-400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=233: sxxxxx#9 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=233: sxxxxx#9 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=233: sxxxxx#9 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=233: sxxxxx#9 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=234: oxxxxx#9 nsp=1 mass=400 - -2.400000000000000e+02, -1.800000000000000e+02, // itest=234: oxxxxx#9 nsp=1 mass=400 - 2.000000000000000e+01, 0.000000000000000e+00, // itest=234: oxxxxx#9 nsp=1 mass=400 - -1.600000000000000e+01, 1.200000000000000e+01, // itest=234: oxxxxx#9 nsp=1 mass=400 - 1.000000000000000e+01, 0.000000000000000e+00, // itest=234: oxxxxx#9 nsp=1 mass=400 - -7.999999999999999e+00, 5.999999999999999e+00 } ); // itest=234: oxxxxx#9 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=235: oxxxxx#9 nsp=1 mass=-400 - -2.400000000000000e+02, -1.800000000000000e+02, // itest=235: oxxxxx#9 nsp=1 mass=-400 - 2.000000000000000e+01, 0.000000000000000e+00, // itest=235: oxxxxx#9 nsp=1 mass=-400 - -1.600000000000000e+01, 1.200000000000000e+01, // itest=235: oxxxxx#9 nsp=1 mass=-400 - -1.000000000000000e+01, -0.000000000000000e+00, // itest=235: oxxxxx#9 nsp=1 mass=-400 - 7.999999999999999e+00, -5.999999999999999e+00 } ); // itest=235: oxxxxx#9 nsp=1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -1.440000000000000e+02, // itest=236: ixxxxx#10 nsp=1 mass=400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=236: ixxxxx#10 nsp=1 mass=400 - 1.216552506059644e+01, 0.000000000000000e+00, // itest=236: ixxxxx#10 nsp=1 mass=400 - 4.931969619160719e+00, 5.260767593771432e+00, // itest=236: ixxxxx#10 nsp=1 mass=400 - 2.433105012119288e+01, 0.000000000000000e+00, // itest=236: ixxxxx#10 nsp=1 mass=400 - 9.863939238321439e+00, 1.052153518754287e+01 } ); // itest=236: ixxxxx#10 nsp=1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -1.440000000000000e+02, // itest=237: ixxxxx#10 nsp=1 mass=-400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=237: ixxxxx#10 nsp=1 mass=-400 - -1.216552506059644e+01, -0.000000000000000e+00, // itest=237: ixxxxx#10 nsp=1 mass=-400 - -4.931969619160719e+00, -5.260767593771432e+00, // itest=237: ixxxxx#10 nsp=1 mass=-400 - 2.433105012119288e+01, 0.000000000000000e+00, // itest=237: ixxxxx#10 nsp=1 mass=-400 - 9.863939238321439e+00, 1.052153518754287e+01 } ); // itest=237: ixxxxx#10 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 1.440000000000000e+02, // itest=238: vxxxxx#10 nsp=1 mass=400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=238: vxxxxx#10 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=238: vxxxxx#10 nsp=1 mass=400 - -2.321373168788980e-01, -5.158607041753289e-01, // itest=238: vxxxxx#10 nsp=1 mass=400 - -2.476131380041579e-01, 4.836194101643708e-01, // itest=238: vxxxxx#10 nsp=1 mass=400 - 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=238: vxxxxx#10 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 1.440000000000000e+02, // itest=239: vxxxxx#10 nsp=1 mass=-400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=239: vxxxxx#10 nsp=1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=239: vxxxxx#10 nsp=1 mass=-400 - -2.321373168788980e-01, -5.158607041753289e-01, // itest=239: vxxxxx#10 nsp=1 mass=-400 - -2.476131380041579e-01, 4.836194101643708e-01, // itest=239: vxxxxx#10 nsp=1 mass=-400 - 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=239: vxxxxx#10 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 1.440000000000000e+02, // itest=240: sxxxxx#10 nsp=1 mass=400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=240: sxxxxx#10 nsp=1 mass=400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=240: sxxxxx#10 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=240: sxxxxx#10 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=240: sxxxxx#10 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=240: sxxxxx#10 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 1.440000000000000e+02, // itest=241: sxxxxx#10 nsp=1 mass=-400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=241: sxxxxx#10 nsp=1 mass=-400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=241: sxxxxx#10 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=241: sxxxxx#10 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=241: sxxxxx#10 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=241: sxxxxx#10 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 1.440000000000000e+02, // itest=242: oxxxxx#10 nsp=1 mass=400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=242: oxxxxx#10 nsp=1 mass=400 - 2.433105012119288e+01, 0.000000000000000e+00, // itest=242: oxxxxx#10 nsp=1 mass=400 - 9.863939238321439e+00, -1.052153518754287e+01, // itest=242: oxxxxx#10 nsp=1 mass=400 - 1.216552506059644e+01, 0.000000000000000e+00, // itest=242: oxxxxx#10 nsp=1 mass=400 - 4.931969619160719e+00, -5.260767593771432e+00 } ); // itest=242: oxxxxx#10 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 1.440000000000000e+02, // itest=243: oxxxxx#10 nsp=1 mass=-400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=243: oxxxxx#10 nsp=1 mass=-400 - 2.433105012119288e+01, 0.000000000000000e+00, // itest=243: oxxxxx#10 nsp=1 mass=-400 - 9.863939238321439e+00, -1.052153518754287e+01, // itest=243: oxxxxx#10 nsp=1 mass=-400 - -1.216552506059644e+01, -0.000000000000000e+00, // itest=243: oxxxxx#10 nsp=1 mass=-400 - -4.931969619160719e+00, 5.260767593771432e+00 } ); // itest=243: oxxxxx#10 nsp=1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 1.440000000000000e+02, // itest=244: ixxxxx#11 nsp=1 mass=400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=244: ixxxxx#11 nsp=1 mass=400 - 7.211102550927978e+00, 0.000000000000000e+00, // itest=244: ixxxxx#11 nsp=1 mass=400 - 8.320502943378436e+00, 8.875203139603666e+00, // itest=244: ixxxxx#11 nsp=1 mass=400 - 1.442220510185596e+01, 0.000000000000000e+00, // itest=244: ixxxxx#11 nsp=1 mass=400 - 1.664100588675688e+01, 1.775040627920733e+01 } ); // itest=244: ixxxxx#11 nsp=1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 1.440000000000000e+02, // itest=245: ixxxxx#11 nsp=1 mass=-400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=245: ixxxxx#11 nsp=1 mass=-400 - -7.211102550927978e+00, -0.000000000000000e+00, // itest=245: ixxxxx#11 nsp=1 mass=-400 - -8.320502943378436e+00, -8.875203139603666e+00, // itest=245: ixxxxx#11 nsp=1 mass=-400 - 1.442220510185596e+01, 0.000000000000000e+00, // itest=245: ixxxxx#11 nsp=1 mass=-400 - 1.664100588675688e+01, 1.775040627920733e+01 } ); // itest=245: ixxxxx#11 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -1.440000000000000e+02, // itest=246: vxxxxx#11 nsp=1 mass=400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=246: vxxxxx#11 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=246: vxxxxx#11 nsp=1 mass=400 - 2.321373168788980e-01, -5.158607041753289e-01, // itest=246: vxxxxx#11 nsp=1 mass=400 - 2.476131380041579e-01, 4.836194101643708e-01, // itest=246: vxxxxx#11 nsp=1 mass=400 - 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=246: vxxxxx#11 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -1.440000000000000e+02, // itest=247: vxxxxx#11 nsp=1 mass=-400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=247: vxxxxx#11 nsp=1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=247: vxxxxx#11 nsp=1 mass=-400 - 2.321373168788980e-01, -5.158607041753289e-01, // itest=247: vxxxxx#11 nsp=1 mass=-400 - 2.476131380041579e-01, 4.836194101643708e-01, // itest=247: vxxxxx#11 nsp=1 mass=-400 - 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=247: vxxxxx#11 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -1.440000000000000e+02, // itest=248: sxxxxx#11 nsp=1 mass=400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=248: sxxxxx#11 nsp=1 mass=400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=248: sxxxxx#11 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=248: sxxxxx#11 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=248: sxxxxx#11 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=248: sxxxxx#11 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -1.440000000000000e+02, // itest=249: sxxxxx#11 nsp=1 mass=-400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=249: sxxxxx#11 nsp=1 mass=-400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=249: sxxxxx#11 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=249: sxxxxx#11 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=249: sxxxxx#11 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=249: sxxxxx#11 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -1.440000000000000e+02, // itest=250: oxxxxx#11 nsp=1 mass=400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=250: oxxxxx#11 nsp=1 mass=400 - 1.442220510185596e+01, 0.000000000000000e+00, // itest=250: oxxxxx#11 nsp=1 mass=400 - 1.664100588675688e+01, -1.775040627920733e+01, // itest=250: oxxxxx#11 nsp=1 mass=400 - 7.211102550927978e+00, 0.000000000000000e+00, // itest=250: oxxxxx#11 nsp=1 mass=400 - 8.320502943378436e+00, -8.875203139603666e+00 } ); // itest=250: oxxxxx#11 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -1.440000000000000e+02, // itest=251: oxxxxx#11 nsp=1 mass=-400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=251: oxxxxx#11 nsp=1 mass=-400 - 1.442220510185596e+01, 0.000000000000000e+00, // itest=251: oxxxxx#11 nsp=1 mass=-400 - 1.664100588675688e+01, -1.775040627920733e+01, // itest=251: oxxxxx#11 nsp=1 mass=-400 - -7.211102550927978e+00, -0.000000000000000e+00, // itest=251: oxxxxx#11 nsp=1 mass=-400 - -8.320502943378436e+00, 8.875203139603666e+00 } ); // itest=251: oxxxxx#11 nsp=1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=252: ixxxxx#12 nsp=1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=252: ixxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=252: ixxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=252: ixxxxx#12 nsp=1 mass=0 - 3.162277660168379e+01, 0.000000000000000e+00, // itest=252: ixxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=252: ixxxxx#12 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=253: ixxxxx#12 nsp=1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=253: ixxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=253: ixxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=253: ixxxxx#12 nsp=1 mass=0 - 3.162277660168379e+01, 0.000000000000000e+00, // itest=253: ixxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=253: ixxxxx#12 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=254: ipzxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=254: ipzxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=254: ipzxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=254: ipzxxx#12 nsp=1 mass=0 - 3.162277660168379e+01, 0.000000000000000e+00, // itest=254: ipzxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=254: ipzxxx#12 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=255: vxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=255: vxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=255: vxxxxx#12 nsp=1 mass=0 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=255: vxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 7.071067811865476e-01, // itest=255: vxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=255: vxxxxx#12 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=256: vxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=256: vxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=256: vxxxxx#12 nsp=1 mass=0 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=256: vxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 7.071067811865476e-01, // itest=256: vxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=256: vxxxxx#12 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=257: sxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=257: sxxxxx#12 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=257: sxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=257: sxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=257: sxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=257: sxxxxx#12 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=258: sxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=258: sxxxxx#12 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=258: sxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=258: sxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=258: sxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=258: sxxxxx#12 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=259: oxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=259: oxxxxx#12 nsp=1 mass=0 - 3.162277660168379e+01, 0.000000000000000e+00, // itest=259: oxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=259: oxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=259: oxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=259: oxxxxx#12 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=260: oxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=260: oxxxxx#12 nsp=1 mass=0 - 3.162277660168379e+01, 0.000000000000000e+00, // itest=260: oxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=260: oxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=260: oxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=260: oxxxxx#12 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=261: opzxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=261: opzxxx#12 nsp=1 mass=0 - 3.162277660168379e+01, 0.000000000000000e+00, // itest=261: opzxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=261: opzxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=261: opzxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=261: opzxxx#12 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=262: ixxxxx#13 nsp=1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=262: ixxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=262: ixxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=262: ixxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=262: ixxxxx#13 nsp=1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=262: ixxxxx#13 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=263: ixxxxx#13 nsp=1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=263: ixxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=263: ixxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=263: ixxxxx#13 nsp=1 mass=0 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=263: ixxxxx#13 nsp=1 mass=0 - -3.162277660168379e+01, -0.000000000000000e+00 } ); // itest=263: ixxxxx#13 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=264: imzxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=264: imzxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=264: imzxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=264: imzxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=264: imzxxx#13 nsp=1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=264: imzxxx#13 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=265: vxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=265: vxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=265: vxxxxx#13 nsp=1 mass=0 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=265: vxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, -7.071067811865476e-01, // itest=265: vxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=265: vxxxxx#13 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=266: vxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=266: vxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=266: vxxxxx#13 nsp=1 mass=0 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=266: vxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, -7.071067811865476e-01, // itest=266: vxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=266: vxxxxx#13 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=267: sxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=267: sxxxxx#13 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=267: sxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=267: sxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=267: sxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=267: sxxxxx#13 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=268: sxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=268: sxxxxx#13 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=268: sxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=268: sxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=268: sxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=268: sxxxxx#13 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=269: oxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=269: oxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=269: oxxxxx#13 nsp=1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00, // itest=269: oxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=269: oxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=269: oxxxxx#13 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=270: oxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=270: oxxxxx#13 nsp=1 mass=0 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=270: oxxxxx#13 nsp=1 mass=0 - -3.162277660168379e+01, -0.000000000000000e+00, // itest=270: oxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=270: oxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=270: oxxxxx#13 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=271: omzxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=271: omzxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=271: omzxxx#13 nsp=1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00, // itest=271: omzxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=271: omzxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=271: omzxxx#13 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=272: ixxxxx#14 nsp=1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=272: ixxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=272: ixxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=272: ixxxxx#14 nsp=1 mass=0 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=272: ixxxxx#14 nsp=1 mass=0 - 1.341640786499874e+01, 1.788854381999832e+01 } ); // itest=272: ixxxxx#14 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=273: ixxxxx#14 nsp=1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=273: ixxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=273: ixxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=273: ixxxxx#14 nsp=1 mass=0 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=273: ixxxxx#14 nsp=1 mass=0 - 1.341640786499874e+01, 1.788854381999832e+01 } ); // itest=273: ixxxxx#14 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=274: ixzxxx#14 nsp=1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=274: ixzxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=274: ixzxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=274: ixzxxx#14 nsp=1 mass=0 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=274: ixzxxx#14 nsp=1 mass=0 - 1.341640786499874e+01, 1.788854381999832e+01 } ); // itest=274: ixzxxx#14 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=275: vxxxxx#14 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=275: vxxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=275: vxxxxx#14 nsp=1 mass=0 - -0.000000000000000e+00, -5.656854249492381e-01, // itest=275: vxxxxx#14 nsp=1 mass=0 - -0.000000000000000e+00, 4.242640687119285e-01, // itest=275: vxxxxx#14 nsp=1 mass=0 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=275: vxxxxx#14 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=276: vxxxxx#14 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=276: vxxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=276: vxxxxx#14 nsp=1 mass=0 - -0.000000000000000e+00, -5.656854249492381e-01, // itest=276: vxxxxx#14 nsp=1 mass=0 - -0.000000000000000e+00, 4.242640687119285e-01, // itest=276: vxxxxx#14 nsp=1 mass=0 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=276: vxxxxx#14 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=277: sxxxxx#14 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=277: sxxxxx#14 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=277: sxxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=277: sxxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=277: sxxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=277: sxxxxx#14 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=278: sxxxxx#14 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=278: sxxxxx#14 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=278: sxxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=278: sxxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=278: sxxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=278: sxxxxx#14 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=279: oxxxxx#14 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=279: oxxxxx#14 nsp=1 mass=0 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=279: oxxxxx#14 nsp=1 mass=0 - 1.341640786499874e+01, -1.788854381999832e+01, // itest=279: oxxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=279: oxxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=279: oxxxxx#14 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=280: oxxxxx#14 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=280: oxxxxx#14 nsp=1 mass=0 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=280: oxxxxx#14 nsp=1 mass=0 - 1.341640786499874e+01, -1.788854381999832e+01, // itest=280: oxxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=280: oxxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=280: oxxxxx#14 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=281: oxzxxx#14 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=281: oxzxxx#14 nsp=1 mass=0 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=281: oxzxxx#14 nsp=1 mass=0 - 1.341640786499874e+01, -1.788854381999832e+01, // itest=281: oxzxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=281: oxzxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=281: oxzxxx#14 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=282: ixxxxx#15 nsp=1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=282: ixxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=282: ixxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=282: ixxxxx#15 nsp=1 mass=0 - 3.000000000000000e+01, 0.000000000000000e+00, // itest=282: ixxxxx#15 nsp=1 mass=0 - 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=282: ixxxxx#15 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=283: ixxxxx#15 nsp=1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=283: ixxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=283: ixxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=283: ixxxxx#15 nsp=1 mass=0 - 3.000000000000000e+01, 0.000000000000000e+00, // itest=283: ixxxxx#15 nsp=1 mass=0 - 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=283: ixxxxx#15 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=284: ixzxxx#15 nsp=1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=284: ixzxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=284: ixzxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=284: ixzxxx#15 nsp=1 mass=0 - 3.000000000000000e+01, 0.000000000000000e+00, // itest=284: ixzxxx#15 nsp=1 mass=0 - 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=284: ixzxxx#15 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=285: vxxxxx#15 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=285: vxxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=285: vxxxxx#15 nsp=1 mass=0 - -3.394112549695428e-01, -5.656854249492381e-01, // itest=285: vxxxxx#15 nsp=1 mass=0 - -4.525483399593904e-01, 4.242640687119285e-01, // itest=285: vxxxxx#15 nsp=1 mass=0 - 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=285: vxxxxx#15 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=286: vxxxxx#15 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=286: vxxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=286: vxxxxx#15 nsp=1 mass=0 - -3.394112549695428e-01, -5.656854249492381e-01, // itest=286: vxxxxx#15 nsp=1 mass=0 - -4.525483399593904e-01, 4.242640687119285e-01, // itest=286: vxxxxx#15 nsp=1 mass=0 - 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=286: vxxxxx#15 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=287: sxxxxx#15 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=287: sxxxxx#15 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=287: sxxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=287: sxxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=287: sxxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=287: sxxxxx#15 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=288: sxxxxx#15 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=288: sxxxxx#15 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=288: sxxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=288: sxxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=288: sxxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=288: sxxxxx#15 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=289: oxxxxx#15 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=289: oxxxxx#15 nsp=1 mass=0 - 3.000000000000000e+01, 0.000000000000000e+00, // itest=289: oxxxxx#15 nsp=1 mass=0 - 6.000000000000000e+00, -8.000000000000000e+00, // itest=289: oxxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=289: oxxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=289: oxxxxx#15 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=290: oxxxxx#15 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=290: oxxxxx#15 nsp=1 mass=0 - 3.000000000000000e+01, 0.000000000000000e+00, // itest=290: oxxxxx#15 nsp=1 mass=0 - 6.000000000000000e+00, -8.000000000000000e+00, // itest=290: oxxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=290: oxxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=290: oxxxxx#15 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=291: oxzxxx#15 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=291: oxzxxx#15 nsp=1 mass=0 - 3.000000000000000e+01, 0.000000000000000e+00, // itest=291: oxzxxx#15 nsp=1 mass=0 - 6.000000000000000e+00, -8.000000000000000e+00, // itest=291: oxzxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=291: oxzxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=291: oxzxxx#15 nsp=1 mass=0 + 5.000000000000000e+02, 5.000000000000000e+02, // itest=50: ixxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=50: ixxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=50: ixxxxx#5 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=50: ixxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=50: ixxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=50: ixxxxx#5 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=51: ixxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=51: ixxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=51: ixxxxx#5 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=51: ixxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=51: ixxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=51: ixxxxx#5 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=52: ipzxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=52: ipzxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=52: ipzxxx#5 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=52: ipzxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=52: ipzxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=52: ipzxxx#5 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=53: vxxxxx#5 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=53: vxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=53: vxxxxx#5 nsp=-1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=53: vxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=53: vxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=53: vxxxxx#5 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=54: vxxxxx#5 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=54: vxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=54: vxxxxx#5 nsp=-1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=54: vxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=54: vxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=54: vxxxxx#5 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=55: sxxxxx#5 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=55: sxxxxx#5 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=55: sxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=55: sxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=55: sxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=55: sxxxxx#5 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=56: sxxxxx#5 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=56: sxxxxx#5 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=56: sxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=56: sxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=56: sxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=56: sxxxxx#5 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=57: oxxxxx#5 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=57: oxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=57: oxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=57: oxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=57: oxxxxx#5 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=57: oxxxxx#5 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=58: oxxxxx#5 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=58: oxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=58: oxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=58: oxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=58: oxxxxx#5 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=58: oxxxxx#5 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=59: opzxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=59: opzxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=59: opzxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=59: opzxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=59: opzxxx#5 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=59: opzxxx#5 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=60: ixxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=60: ixxxxx#6 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=60: ixxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=60: ixxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=60: ixxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=60: ixxxxx#6 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=61: ixxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=61: ixxxxx#6 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=61: ixxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=61: ixxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=61: ixxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=61: ixxxxx#6 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=62: imzxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=62: imzxxx#6 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=62: imzxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=62: imzxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=62: imzxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=62: imzxxx#6 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=63: vxxxxx#6 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=63: vxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=63: vxxxxx#6 nsp=-1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=63: vxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=63: vxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=63: vxxxxx#6 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=64: vxxxxx#6 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=64: vxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=64: vxxxxx#6 nsp=-1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=64: vxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=64: vxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=64: vxxxxx#6 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=65: sxxxxx#6 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=65: sxxxxx#6 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=65: sxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=65: sxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=65: sxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=65: sxxxxx#6 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=66: sxxxxx#6 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=66: sxxxxx#6 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=66: sxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=66: sxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=66: sxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=66: sxxxxx#6 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=67: oxxxxx#6 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=67: oxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=67: oxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=67: oxxxxx#6 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=67: oxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=67: oxxxxx#6 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=68: oxxxxx#6 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=68: oxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=68: oxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=68: oxxxxx#6 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=68: oxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=68: oxxxxx#6 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=69: omzxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=69: omzxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=69: omzxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=69: omzxxx#6 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=69: omzxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=69: omzxxx#6 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=70: ixxxxx#7 nsp=-1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=70: ixxxxx#7 nsp=-1 mass=0 + 1.341640786499874e+01, -1.788854381999831e+01, // itest=70: ixxxxx#7 nsp=-1 mass=0 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=70: ixxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=70: ixxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=70: ixxxxx#7 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=71: ixxxxx#7 nsp=-1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=71: ixxxxx#7 nsp=-1 mass=0 + 1.341640786499874e+01, -1.788854381999831e+01, // itest=71: ixxxxx#7 nsp=-1 mass=0 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=71: ixxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=71: ixxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=71: ixxxxx#7 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=72: ixzxxx#7 nsp=-1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=72: ixzxxx#7 nsp=-1 mass=0 + 1.341640786499874e+01, -1.788854381999832e+01, // itest=72: ixzxxx#7 nsp=-1 mass=0 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=72: ixzxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=72: ixzxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=72: ixzxxx#7 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=73: vxxxxx#7 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=73: vxxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=73: vxxxxx#7 nsp=-1 mass=0 + -0.000000000000000e+00, 5.656854249492381e-01, // itest=73: vxxxxx#7 nsp=-1 mass=0 + -0.000000000000000e+00, -4.242640687119285e-01, // itest=73: vxxxxx#7 nsp=-1 mass=0 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=73: vxxxxx#7 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=74: vxxxxx#7 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=74: vxxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=74: vxxxxx#7 nsp=-1 mass=0 + -0.000000000000000e+00, 5.656854249492381e-01, // itest=74: vxxxxx#7 nsp=-1 mass=0 + -0.000000000000000e+00, -4.242640687119285e-01, // itest=74: vxxxxx#7 nsp=-1 mass=0 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=74: vxxxxx#7 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=75: sxxxxx#7 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=75: sxxxxx#7 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=75: sxxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=75: sxxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=75: sxxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=75: sxxxxx#7 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=76: sxxxxx#7 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=76: sxxxxx#7 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=76: sxxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=76: sxxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=76: sxxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=76: sxxxxx#7 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=77: oxxxxx#7 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=77: oxxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=77: oxxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=77: oxxxxx#7 nsp=-1 mass=0 + 1.341640786499874e+01, 1.788854381999831e+01, // itest=77: oxxxxx#7 nsp=-1 mass=0 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=77: oxxxxx#7 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=78: oxxxxx#7 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=78: oxxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=78: oxxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=78: oxxxxx#7 nsp=-1 mass=0 + 1.341640786499874e+01, 1.788854381999831e+01, // itest=78: oxxxxx#7 nsp=-1 mass=0 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=78: oxxxxx#7 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=79: oxzxxx#7 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=79: oxzxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=79: oxzxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=79: oxzxxx#7 nsp=-1 mass=0 + 1.341640786499874e+01, 1.788854381999832e+01, // itest=79: oxzxxx#7 nsp=-1 mass=0 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=79: oxzxxx#7 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=80: ixxxxx#8 nsp=-1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=80: ixxxxx#8 nsp=-1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=80: ixxxxx#8 nsp=-1 mass=0 + -3.000000000000000e+01, 0.000000000000000e+00, // itest=80: ixxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=80: ixxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=80: ixxxxx#8 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=81: ixxxxx#8 nsp=-1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=81: ixxxxx#8 nsp=-1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=81: ixxxxx#8 nsp=-1 mass=0 + -3.000000000000000e+01, 0.000000000000000e+00, // itest=81: ixxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=81: ixxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=81: ixxxxx#8 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=82: ixzxxx#8 nsp=-1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=82: ixzxxx#8 nsp=-1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=82: ixzxxx#8 nsp=-1 mass=0 + -3.000000000000000e+01, 0.000000000000000e+00, // itest=82: ixzxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=82: ixzxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=82: ixzxxx#8 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=83: vxxxxx#8 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=83: vxxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=83: vxxxxx#8 nsp=-1 mass=0 + -3.394112549695428e-01, 5.656854249492381e-01, // itest=83: vxxxxx#8 nsp=-1 mass=0 + -4.525483399593904e-01, -4.242640687119285e-01, // itest=83: vxxxxx#8 nsp=-1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=83: vxxxxx#8 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=84: vxxxxx#8 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=84: vxxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=84: vxxxxx#8 nsp=-1 mass=0 + -3.394112549695428e-01, 5.656854249492381e-01, // itest=84: vxxxxx#8 nsp=-1 mass=0 + -4.525483399593904e-01, -4.242640687119285e-01, // itest=84: vxxxxx#8 nsp=-1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=84: vxxxxx#8 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=85: sxxxxx#8 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=85: sxxxxx#8 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=85: sxxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=85: sxxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=85: sxxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=85: sxxxxx#8 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=86: sxxxxx#8 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=86: sxxxxx#8 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=86: sxxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=86: sxxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=86: sxxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=86: sxxxxx#8 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=87: oxxxxx#8 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=87: oxxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=87: oxxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=87: oxxxxx#8 nsp=-1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00, // itest=87: oxxxxx#8 nsp=-1 mass=0 + -3.000000000000000e+01, 0.000000000000000e+00 } ); // itest=87: oxxxxx#8 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=88: oxxxxx#8 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=88: oxxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=88: oxxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=88: oxxxxx#8 nsp=-1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00, // itest=88: oxxxxx#8 nsp=-1 mass=0 + -3.000000000000000e+01, 0.000000000000000e+00 } ); // itest=88: oxxxxx#8 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=89: oxzxxx#8 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=89: oxzxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=89: oxzxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=89: oxzxxx#8 nsp=-1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00, // itest=89: oxzxxx#8 nsp=-1 mass=0 + -3.000000000000000e+01, 0.000000000000000e+00 } ); // itest=89: oxzxxx#8 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=90: ixxxxx#9 nsp=-1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=90: ixxxxx#9 nsp=-1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=90: ixxxxx#9 nsp=-1 mass=0 + -1.000000000000000e+01, 0.000000000000000e+00, // itest=90: ixxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=90: ixxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=90: ixxxxx#9 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=91: ixxxxx#9 nsp=-1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=91: ixxxxx#9 nsp=-1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=91: ixxxxx#9 nsp=-1 mass=0 + -1.000000000000000e+01, 0.000000000000000e+00, // itest=91: ixxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=91: ixxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=91: ixxxxx#9 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=92: ixzxxx#9 nsp=-1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=92: ixzxxx#9 nsp=-1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=92: ixzxxx#9 nsp=-1 mass=0 + -1.000000000000000e+01, 0.000000000000000e+00, // itest=92: ixzxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=92: ixzxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=92: ixzxxx#9 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=93: vxxxxx#9 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=93: vxxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=93: vxxxxx#9 nsp=-1 mass=0 + 3.394112549695428e-01, 5.656854249492381e-01, // itest=93: vxxxxx#9 nsp=-1 mass=0 + 4.525483399593904e-01, -4.242640687119285e-01, // itest=93: vxxxxx#9 nsp=-1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=93: vxxxxx#9 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=94: vxxxxx#9 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=94: vxxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=94: vxxxxx#9 nsp=-1 mass=0 + 3.394112549695428e-01, 5.656854249492381e-01, // itest=94: vxxxxx#9 nsp=-1 mass=0 + 4.525483399593904e-01, -4.242640687119285e-01, // itest=94: vxxxxx#9 nsp=-1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=94: vxxxxx#9 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=95: sxxxxx#9 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=95: sxxxxx#9 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=95: sxxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=95: sxxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=95: sxxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=95: sxxxxx#9 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=96: sxxxxx#9 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=96: sxxxxx#9 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=96: sxxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=96: sxxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=96: sxxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=96: sxxxxx#9 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=97: oxxxxx#9 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=97: oxxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=97: oxxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=97: oxxxxx#9 nsp=-1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01, // itest=97: oxxxxx#9 nsp=-1 mass=0 + -1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=97: oxxxxx#9 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=98: oxxxxx#9 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=98: oxxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=98: oxxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=98: oxxxxx#9 nsp=-1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01, // itest=98: oxxxxx#9 nsp=-1 mass=0 + -1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=98: oxxxxx#9 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=99: oxzxxx#9 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=99: oxzxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=99: oxzxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=99: oxzxxx#9 nsp=-1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01, // itest=99: oxzxxx#9 nsp=-1 mass=0 + -1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=99: oxzxxx#9 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=100: ixxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=100: ixxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=100: ixxxxx#10 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=100: ixxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=100: ixxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=100: ixxxxx#10 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=101: ixxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=101: ixxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=101: ixxxxx#10 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=101: ixxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=101: ixxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=101: ixxxxx#10 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=102: ipzxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=102: ipzxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=102: ipzxxx#10 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=102: ipzxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=102: ipzxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=102: ipzxxx#10 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=103: vxxxxx#10 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=103: vxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=103: vxxxxx#10 nsp=-1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=103: vxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=103: vxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=103: vxxxxx#10 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=104: vxxxxx#10 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=104: vxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=104: vxxxxx#10 nsp=-1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=104: vxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=104: vxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=104: vxxxxx#10 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=105: sxxxxx#10 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=105: sxxxxx#10 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=105: sxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=105: sxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=105: sxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=105: sxxxxx#10 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=106: sxxxxx#10 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=106: sxxxxx#10 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=106: sxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=106: sxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=106: sxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=106: sxxxxx#10 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=107: oxxxxx#10 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=107: oxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=107: oxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=107: oxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=107: oxxxxx#10 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=107: oxxxxx#10 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=108: oxxxxx#10 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=108: oxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=108: oxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=108: oxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=108: oxxxxx#10 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=108: oxxxxx#10 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=109: opzxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=109: opzxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=109: opzxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=109: opzxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=109: opzxxx#10 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=109: opzxxx#10 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=110: ixxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=110: ixxxxx#11 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=110: ixxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=110: ixxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=110: ixxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=110: ixxxxx#11 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=111: ixxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=111: ixxxxx#11 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=111: ixxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=111: ixxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=111: ixxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=111: ixxxxx#11 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=112: imzxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=112: imzxxx#11 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=112: imzxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=112: imzxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=112: imzxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=112: imzxxx#11 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=113: vxxxxx#11 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=113: vxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=113: vxxxxx#11 nsp=-1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=113: vxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=113: vxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=113: vxxxxx#11 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=114: vxxxxx#11 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=114: vxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=114: vxxxxx#11 nsp=-1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=114: vxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=114: vxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=114: vxxxxx#11 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=115: sxxxxx#11 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=115: sxxxxx#11 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=115: sxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=115: sxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=115: sxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=115: sxxxxx#11 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=116: sxxxxx#11 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=116: sxxxxx#11 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=116: sxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=116: sxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=116: sxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=116: sxxxxx#11 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=117: oxxxxx#11 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=117: oxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=117: oxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=117: oxxxxx#11 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=117: oxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=117: oxxxxx#11 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=118: oxxxxx#11 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=118: oxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=118: oxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=118: oxxxxx#11 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=118: oxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=118: oxxxxx#11 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=119: omzxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=119: omzxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=119: omzxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=119: omzxxx#11 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=119: omzxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=119: omzxxx#11 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=120: ixxxxx#12 nsp=-1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=120: ixxxxx#12 nsp=-1 mass=0 + 1.341640786499874e+01, -1.788854381999831e+01, // itest=120: ixxxxx#12 nsp=-1 mass=0 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=120: ixxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=120: ixxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=120: ixxxxx#12 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=121: ixxxxx#12 nsp=-1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=121: ixxxxx#12 nsp=-1 mass=0 + 1.341640786499874e+01, -1.788854381999831e+01, // itest=121: ixxxxx#12 nsp=-1 mass=0 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=121: ixxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=121: ixxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=121: ixxxxx#12 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=122: ixzxxx#12 nsp=-1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=122: ixzxxx#12 nsp=-1 mass=0 + 1.341640786499874e+01, -1.788854381999832e+01, // itest=122: ixzxxx#12 nsp=-1 mass=0 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=122: ixzxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=122: ixzxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=122: ixzxxx#12 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=123: vxxxxx#12 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=123: vxxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=123: vxxxxx#12 nsp=-1 mass=0 + -0.000000000000000e+00, 5.656854249492381e-01, // itest=123: vxxxxx#12 nsp=-1 mass=0 + -0.000000000000000e+00, -4.242640687119285e-01, // itest=123: vxxxxx#12 nsp=-1 mass=0 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=123: vxxxxx#12 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=124: vxxxxx#12 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=124: vxxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=124: vxxxxx#12 nsp=-1 mass=0 + -0.000000000000000e+00, 5.656854249492381e-01, // itest=124: vxxxxx#12 nsp=-1 mass=0 + -0.000000000000000e+00, -4.242640687119285e-01, // itest=124: vxxxxx#12 nsp=-1 mass=0 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=124: vxxxxx#12 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=125: sxxxxx#12 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=125: sxxxxx#12 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=125: sxxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=125: sxxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=125: sxxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=125: sxxxxx#12 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=126: sxxxxx#12 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=126: sxxxxx#12 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=126: sxxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=126: sxxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=126: sxxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=126: sxxxxx#12 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=127: oxxxxx#12 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=127: oxxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=127: oxxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=127: oxxxxx#12 nsp=-1 mass=0 + 1.341640786499874e+01, 1.788854381999831e+01, // itest=127: oxxxxx#12 nsp=-1 mass=0 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=127: oxxxxx#12 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=128: oxxxxx#12 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=128: oxxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=128: oxxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=128: oxxxxx#12 nsp=-1 mass=0 + 1.341640786499874e+01, 1.788854381999831e+01, // itest=128: oxxxxx#12 nsp=-1 mass=0 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=128: oxxxxx#12 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=129: oxzxxx#12 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=129: oxzxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=129: oxzxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=129: oxzxxx#12 nsp=-1 mass=0 + 1.341640786499874e+01, 1.788854381999832e+01, // itest=129: oxzxxx#12 nsp=-1 mass=0 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=129: oxzxxx#12 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=130: ixxxxx#13 nsp=-1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=130: ixxxxx#13 nsp=-1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=130: ixxxxx#13 nsp=-1 mass=0 + -3.000000000000000e+01, 0.000000000000000e+00, // itest=130: ixxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=130: ixxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=130: ixxxxx#13 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=131: ixxxxx#13 nsp=-1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=131: ixxxxx#13 nsp=-1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=131: ixxxxx#13 nsp=-1 mass=0 + -3.000000000000000e+01, 0.000000000000000e+00, // itest=131: ixxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=131: ixxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=131: ixxxxx#13 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=132: ixzxxx#13 nsp=-1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=132: ixzxxx#13 nsp=-1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=132: ixzxxx#13 nsp=-1 mass=0 + -3.000000000000000e+01, 0.000000000000000e+00, // itest=132: ixzxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=132: ixzxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=132: ixzxxx#13 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=133: vxxxxx#13 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=133: vxxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=133: vxxxxx#13 nsp=-1 mass=0 + -3.394112549695428e-01, 5.656854249492381e-01, // itest=133: vxxxxx#13 nsp=-1 mass=0 + -4.525483399593904e-01, -4.242640687119285e-01, // itest=133: vxxxxx#13 nsp=-1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=133: vxxxxx#13 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=134: vxxxxx#13 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=134: vxxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=134: vxxxxx#13 nsp=-1 mass=0 + -3.394112549695428e-01, 5.656854249492381e-01, // itest=134: vxxxxx#13 nsp=-1 mass=0 + -4.525483399593904e-01, -4.242640687119285e-01, // itest=134: vxxxxx#13 nsp=-1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=134: vxxxxx#13 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=135: sxxxxx#13 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=135: sxxxxx#13 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=135: sxxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=135: sxxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=135: sxxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=135: sxxxxx#13 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=136: sxxxxx#13 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=136: sxxxxx#13 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=136: sxxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=136: sxxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=136: sxxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=136: sxxxxx#13 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=137: oxxxxx#13 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=137: oxxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=137: oxxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=137: oxxxxx#13 nsp=-1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00, // itest=137: oxxxxx#13 nsp=-1 mass=0 + -3.000000000000000e+01, 0.000000000000000e+00 } ); // itest=137: oxxxxx#13 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=138: oxxxxx#13 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=138: oxxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=138: oxxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=138: oxxxxx#13 nsp=-1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00, // itest=138: oxxxxx#13 nsp=-1 mass=0 + -3.000000000000000e+01, 0.000000000000000e+00 } ); // itest=138: oxxxxx#13 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=139: oxzxxx#13 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=139: oxzxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=139: oxzxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=139: oxzxxx#13 nsp=-1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00, // itest=139: oxzxxx#13 nsp=-1 mass=0 + -3.000000000000000e+01, 0.000000000000000e+00 } ); // itest=139: oxzxxx#13 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=140: ixxxxx#14 nsp=-1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=140: ixxxxx#14 nsp=-1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=140: ixxxxx#14 nsp=-1 mass=0 + -1.000000000000000e+01, 0.000000000000000e+00, // itest=140: ixxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=140: ixxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=140: ixxxxx#14 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=141: ixxxxx#14 nsp=-1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=141: ixxxxx#14 nsp=-1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=141: ixxxxx#14 nsp=-1 mass=0 + -1.000000000000000e+01, 0.000000000000000e+00, // itest=141: ixxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=141: ixxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=141: ixxxxx#14 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=142: ixzxxx#14 nsp=-1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=142: ixzxxx#14 nsp=-1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=142: ixzxxx#14 nsp=-1 mass=0 + -1.000000000000000e+01, 0.000000000000000e+00, // itest=142: ixzxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=142: ixzxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=142: ixzxxx#14 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=143: vxxxxx#14 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=143: vxxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=143: vxxxxx#14 nsp=-1 mass=0 + 3.394112549695428e-01, 5.656854249492381e-01, // itest=143: vxxxxx#14 nsp=-1 mass=0 + 4.525483399593904e-01, -4.242640687119285e-01, // itest=143: vxxxxx#14 nsp=-1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=143: vxxxxx#14 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=144: vxxxxx#14 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=144: vxxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=144: vxxxxx#14 nsp=-1 mass=0 + 3.394112549695428e-01, 5.656854249492381e-01, // itest=144: vxxxxx#14 nsp=-1 mass=0 + 4.525483399593904e-01, -4.242640687119285e-01, // itest=144: vxxxxx#14 nsp=-1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=144: vxxxxx#14 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=145: sxxxxx#14 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=145: sxxxxx#14 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=145: sxxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=145: sxxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=145: sxxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=145: sxxxxx#14 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=146: sxxxxx#14 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=146: sxxxxx#14 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=146: sxxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=146: sxxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=146: sxxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=146: sxxxxx#14 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=147: oxxxxx#14 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=147: oxxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=147: oxxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=147: oxxxxx#14 nsp=-1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01, // itest=147: oxxxxx#14 nsp=-1 mass=0 + -1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=147: oxxxxx#14 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=148: oxxxxx#14 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=148: oxxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=148: oxxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=148: oxxxxx#14 nsp=-1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01, // itest=148: oxxxxx#14 nsp=-1 mass=0 + -1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=148: oxxxxx#14 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=149: oxzxxx#14 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=149: oxzxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=149: oxzxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=149: oxzxxx#14 nsp=-1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01, // itest=149: oxzxxx#14 nsp=-1 mass=0 + -1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=149: oxzxxx#14 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=150: ixxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=150: ixxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=150: ixxxxx#15 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=150: ixxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=150: ixxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=150: ixxxxx#15 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=151: ixxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=151: ixxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=151: ixxxxx#15 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=151: ixxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=151: ixxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=151: ixxxxx#15 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=152: ipzxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=152: ipzxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=152: ipzxxx#15 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=152: ipzxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=152: ipzxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=152: ipzxxx#15 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=153: vxxxxx#15 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=153: vxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=153: vxxxxx#15 nsp=-1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=153: vxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=153: vxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=153: vxxxxx#15 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=154: vxxxxx#15 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=154: vxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=154: vxxxxx#15 nsp=-1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=154: vxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=154: vxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=154: vxxxxx#15 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=155: sxxxxx#15 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=155: sxxxxx#15 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=155: sxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=155: sxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=155: sxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=155: sxxxxx#15 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=156: sxxxxx#15 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=156: sxxxxx#15 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=156: sxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=156: sxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=156: sxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=156: sxxxxx#15 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=157: oxxxxx#15 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=157: oxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=157: oxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=157: oxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=157: oxxxxx#15 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=157: oxxxxx#15 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=158: oxxxxx#15 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=158: oxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=158: oxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=158: oxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=158: oxxxxx#15 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=158: oxxxxx#15 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=159: opzxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=159: opzxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=159: opzxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=159: opzxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=159: opzxxx#15 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=159: opzxxx#15 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=160: ixxxxx#16 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=160: ixxxxx#16 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=160: ixxxxx#16 nsp=-1 mass=500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=160: ixxxxx#16 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=160: ixxxxx#16 nsp=-1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=160: ixxxxx#16 nsp=-1 mass=500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=161: ixxxxx#16 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=161: ixxxxx#16 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=161: ixxxxx#16 nsp=-1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=161: ixxxxx#16 nsp=-1 mass=-500 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=161: ixxxxx#16 nsp=-1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=161: ixxxxx#16 nsp=-1 mass=-500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=162: vxxxxx#16 nsp=-1 mass=500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=162: vxxxxx#16 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=162: vxxxxx#16 nsp=-1 mass=500 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=162: vxxxxx#16 nsp=-1 mass=500 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=162: vxxxxx#16 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=162: vxxxxx#16 nsp=-1 mass=500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=163: vxxxxx#16 nsp=-1 mass=-500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=163: vxxxxx#16 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=163: vxxxxx#16 nsp=-1 mass=-500 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=163: vxxxxx#16 nsp=-1 mass=-500 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=163: vxxxxx#16 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=163: vxxxxx#16 nsp=-1 mass=-500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=164: sxxxxx#16 nsp=-1 mass=500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=164: sxxxxx#16 nsp=-1 mass=500 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=164: sxxxxx#16 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=164: sxxxxx#16 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=164: sxxxxx#16 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=164: sxxxxx#16 nsp=-1 mass=500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=165: sxxxxx#16 nsp=-1 mass=-500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=165: sxxxxx#16 nsp=-1 mass=-500 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=165: sxxxxx#16 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=165: sxxxxx#16 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=165: sxxxxx#16 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=165: sxxxxx#16 nsp=-1 mass=-500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=166: oxxxxx#16 nsp=-1 mass=500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=166: oxxxxx#16 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=166: oxxxxx#16 nsp=-1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=166: oxxxxx#16 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=166: oxxxxx#16 nsp=-1 mass=500 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=166: oxxxxx#16 nsp=-1 mass=500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=167: oxxxxx#16 nsp=-1 mass=-500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=167: oxxxxx#16 nsp=-1 mass=-500 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=167: oxxxxx#16 nsp=-1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=167: oxxxxx#16 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=167: oxxxxx#16 nsp=-1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=167: oxxxxx#16 nsp=-1 mass=-500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=168: ixxxxx#17 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=168: ixxxxx#17 nsp=-1 mass=400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=168: ixxxxx#17 nsp=-1 mass=400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=168: ixxxxx#17 nsp=-1 mass=400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=168: ixxxxx#17 nsp=-1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00 } ); // itest=168: ixxxxx#17 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=169: ixxxxx#17 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=169: ixxxxx#17 nsp=-1 mass=-400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=169: ixxxxx#17 nsp=-1 mass=-400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=169: ixxxxx#17 nsp=-1 mass=-400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=169: ixxxxx#17 nsp=-1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00 } ); // itest=169: ixxxxx#17 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=170: vxxxxx#17 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=170: vxxxxx#17 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=170: vxxxxx#17 nsp=-1 mass=400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=170: vxxxxx#17 nsp=-1 mass=400 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=170: vxxxxx#17 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=170: vxxxxx#17 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=171: vxxxxx#17 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=171: vxxxxx#17 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=171: vxxxxx#17 nsp=-1 mass=-400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=171: vxxxxx#17 nsp=-1 mass=-400 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=171: vxxxxx#17 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=171: vxxxxx#17 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=172: sxxxxx#17 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=172: sxxxxx#17 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=172: sxxxxx#17 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=172: sxxxxx#17 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=172: sxxxxx#17 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=172: sxxxxx#17 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=173: sxxxxx#17 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=173: sxxxxx#17 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=173: sxxxxx#17 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=173: sxxxxx#17 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=173: sxxxxx#17 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=173: sxxxxx#17 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=174: oxxxxx#17 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=174: oxxxxx#17 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=174: oxxxxx#17 nsp=-1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=174: oxxxxx#17 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=174: oxxxxx#17 nsp=-1 mass=400 + -2.828427124746190e+01, -0.000000000000000e+00 } ); // itest=174: oxxxxx#17 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=175: oxxxxx#17 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=175: oxxxxx#17 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=175: oxxxxx#17 nsp=-1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=175: oxxxxx#17 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=175: oxxxxx#17 nsp=-1 mass=-400 + -2.828427124746190e+01, -0.000000000000000e+00 } ); // itest=175: oxxxxx#17 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=176: ixxxxx#18 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=176: ixxxxx#18 nsp=-1 mass=400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=176: ixxxxx#18 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=176: ixxxxx#18 nsp=-1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=176: ixxxxx#18 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=176: ixxxxx#18 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=177: ixxxxx#18 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=177: ixxxxx#18 nsp=-1 mass=-400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=177: ixxxxx#18 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=177: ixxxxx#18 nsp=-1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=177: ixxxxx#18 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=177: ixxxxx#18 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=178: vxxxxx#18 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=178: vxxxxx#18 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=178: vxxxxx#18 nsp=-1 mass=400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=178: vxxxxx#18 nsp=-1 mass=400 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=178: vxxxxx#18 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=178: vxxxxx#18 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=179: vxxxxx#18 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=179: vxxxxx#18 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=179: vxxxxx#18 nsp=-1 mass=-400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=179: vxxxxx#18 nsp=-1 mass=-400 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=179: vxxxxx#18 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=179: vxxxxx#18 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=180: sxxxxx#18 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=180: sxxxxx#18 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=180: sxxxxx#18 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=180: sxxxxx#18 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=180: sxxxxx#18 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=180: sxxxxx#18 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=181: sxxxxx#18 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=181: sxxxxx#18 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=181: sxxxxx#18 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=181: sxxxxx#18 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=181: sxxxxx#18 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=181: sxxxxx#18 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=182: oxxxxx#18 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=182: oxxxxx#18 nsp=-1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=182: oxxxxx#18 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=182: oxxxxx#18 nsp=-1 mass=400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=182: oxxxxx#18 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=182: oxxxxx#18 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=183: oxxxxx#18 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=183: oxxxxx#18 nsp=-1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=183: oxxxxx#18 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=183: oxxxxx#18 nsp=-1 mass=-400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=183: oxxxxx#18 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=183: oxxxxx#18 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=184: ixxxxx#19 nsp=-1 mass=400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=184: ixxxxx#19 nsp=-1 mass=400 + 1.200000000000000e+01, -1.600000000000000e+01, // itest=184: ixxxxx#19 nsp=-1 mass=400 + -2.000000000000000e+01, -0.000000000000000e+00, // itest=184: ixxxxx#19 nsp=-1 mass=400 + -5.999999999999999e+00, 7.999999999999999e+00, // itest=184: ixxxxx#19 nsp=-1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=184: ixxxxx#19 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=185: ixxxxx#19 nsp=-1 mass=-400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=185: ixxxxx#19 nsp=-1 mass=-400 + 1.200000000000000e+01, -1.600000000000000e+01, // itest=185: ixxxxx#19 nsp=-1 mass=-400 + -2.000000000000000e+01, -0.000000000000000e+00, // itest=185: ixxxxx#19 nsp=-1 mass=-400 + 5.999999999999999e+00, -7.999999999999999e+00, // itest=185: ixxxxx#19 nsp=-1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00 } ); // itest=185: ixxxxx#19 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=186: vxxxxx#19 nsp=-1 mass=400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=186: vxxxxx#19 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=186: vxxxxx#19 nsp=-1 mass=400 + 0.000000000000000e+00, 5.656854249492381e-01, // itest=186: vxxxxx#19 nsp=-1 mass=400 + 0.000000000000000e+00, -4.242640687119285e-01, // itest=186: vxxxxx#19 nsp=-1 mass=400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=186: vxxxxx#19 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=187: vxxxxx#19 nsp=-1 mass=-400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=187: vxxxxx#19 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=187: vxxxxx#19 nsp=-1 mass=-400 + -0.000000000000000e+00, 5.656854249492381e-01, // itest=187: vxxxxx#19 nsp=-1 mass=-400 + -0.000000000000000e+00, -4.242640687119285e-01, // itest=187: vxxxxx#19 nsp=-1 mass=-400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=187: vxxxxx#19 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=188: sxxxxx#19 nsp=-1 mass=400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=188: sxxxxx#19 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=188: sxxxxx#19 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=188: sxxxxx#19 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=188: sxxxxx#19 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=188: sxxxxx#19 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=189: sxxxxx#19 nsp=-1 mass=-400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=189: sxxxxx#19 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=189: sxxxxx#19 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=189: sxxxxx#19 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=189: sxxxxx#19 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=189: sxxxxx#19 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=190: oxxxxx#19 nsp=-1 mass=400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=190: oxxxxx#19 nsp=-1 mass=400 + -5.999999999999999e+00, -7.999999999999999e+00, // itest=190: oxxxxx#19 nsp=-1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=190: oxxxxx#19 nsp=-1 mass=400 + 1.200000000000000e+01, 1.600000000000000e+01, // itest=190: oxxxxx#19 nsp=-1 mass=400 + -2.000000000000000e+01, -0.000000000000000e+00 } ); // itest=190: oxxxxx#19 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=191: oxxxxx#19 nsp=-1 mass=-400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=191: oxxxxx#19 nsp=-1 mass=-400 + 5.999999999999999e+00, 7.999999999999999e+00, // itest=191: oxxxxx#19 nsp=-1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00, // itest=191: oxxxxx#19 nsp=-1 mass=-400 + 1.200000000000000e+01, 1.600000000000000e+01, // itest=191: oxxxxx#19 nsp=-1 mass=-400 + -2.000000000000000e+01, -0.000000000000000e+00 } ); // itest=191: oxxxxx#19 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=192: ixxxxx#20 nsp=-1 mass=400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=192: ixxxxx#20 nsp=-1 mass=400 + -1.600000000000000e+01, 1.200000000000000e+01, // itest=192: ixxxxx#20 nsp=-1 mass=400 + -2.000000000000000e+01, -0.000000000000000e+00, // itest=192: ixxxxx#20 nsp=-1 mass=400 + 7.999999999999999e+00, -5.999999999999999e+00, // itest=192: ixxxxx#20 nsp=-1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=192: ixxxxx#20 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=193: ixxxxx#20 nsp=-1 mass=-400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=193: ixxxxx#20 nsp=-1 mass=-400 + -1.600000000000000e+01, 1.200000000000000e+01, // itest=193: ixxxxx#20 nsp=-1 mass=-400 + -2.000000000000000e+01, -0.000000000000000e+00, // itest=193: ixxxxx#20 nsp=-1 mass=-400 + -7.999999999999999e+00, 5.999999999999999e+00, // itest=193: ixxxxx#20 nsp=-1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00 } ); // itest=193: ixxxxx#20 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=194: vxxxxx#20 nsp=-1 mass=400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=194: vxxxxx#20 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=194: vxxxxx#20 nsp=-1 mass=400 + 0.000000000000000e+00, -4.242640687119285e-01, // itest=194: vxxxxx#20 nsp=-1 mass=400 + 0.000000000000000e+00, 5.656854249492381e-01, // itest=194: vxxxxx#20 nsp=-1 mass=400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=194: vxxxxx#20 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=195: vxxxxx#20 nsp=-1 mass=-400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=195: vxxxxx#20 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=195: vxxxxx#20 nsp=-1 mass=-400 + 0.000000000000000e+00, -4.242640687119285e-01, // itest=195: vxxxxx#20 nsp=-1 mass=-400 + 0.000000000000000e+00, 5.656854249492381e-01, // itest=195: vxxxxx#20 nsp=-1 mass=-400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=195: vxxxxx#20 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=196: sxxxxx#20 nsp=-1 mass=400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=196: sxxxxx#20 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=196: sxxxxx#20 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=196: sxxxxx#20 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=196: sxxxxx#20 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=196: sxxxxx#20 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=197: sxxxxx#20 nsp=-1 mass=-400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=197: sxxxxx#20 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=197: sxxxxx#20 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=197: sxxxxx#20 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=197: sxxxxx#20 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=197: sxxxxx#20 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=198: oxxxxx#20 nsp=-1 mass=400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=198: oxxxxx#20 nsp=-1 mass=400 + 7.999999999999999e+00, 5.999999999999999e+00, // itest=198: oxxxxx#20 nsp=-1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=198: oxxxxx#20 nsp=-1 mass=400 + -1.600000000000000e+01, -1.200000000000000e+01, // itest=198: oxxxxx#20 nsp=-1 mass=400 + -2.000000000000000e+01, -0.000000000000000e+00 } ); // itest=198: oxxxxx#20 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=199: oxxxxx#20 nsp=-1 mass=-400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=199: oxxxxx#20 nsp=-1 mass=-400 + -7.999999999999999e+00, -5.999999999999999e+00, // itest=199: oxxxxx#20 nsp=-1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00, // itest=199: oxxxxx#20 nsp=-1 mass=-400 + -1.600000000000000e+01, -1.200000000000000e+01, // itest=199: oxxxxx#20 nsp=-1 mass=-400 + -2.000000000000000e+01, -0.000000000000000e+00 } ); // itest=199: oxxxxx#20 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=200: ixxxxx#21 nsp=-1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=200: ixxxxx#21 nsp=-1 mass=400 + 9.863939238321439e+00, -1.052153518754287e+01, // itest=200: ixxxxx#21 nsp=-1 mass=400 + -2.433105012119288e+01, -0.000000000000000e+00, // itest=200: ixxxxx#21 nsp=-1 mass=400 + -4.931969619160719e+00, 5.260767593771432e+00, // itest=200: ixxxxx#21 nsp=-1 mass=400 + 1.216552506059644e+01, 0.000000000000000e+00 } ); // itest=200: ixxxxx#21 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=201: ixxxxx#21 nsp=-1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=201: ixxxxx#21 nsp=-1 mass=-400 + 9.863939238321439e+00, -1.052153518754287e+01, // itest=201: ixxxxx#21 nsp=-1 mass=-400 + -2.433105012119288e+01, -0.000000000000000e+00, // itest=201: ixxxxx#21 nsp=-1 mass=-400 + 4.931969619160719e+00, -5.260767593771432e+00, // itest=201: ixxxxx#21 nsp=-1 mass=-400 + -1.216552506059644e+01, -0.000000000000000e+00 } ); // itest=201: ixxxxx#21 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=202: vxxxxx#21 nsp=-1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=202: vxxxxx#21 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=202: vxxxxx#21 nsp=-1 mass=400 + -2.321373168788980e-01, 5.158607041753289e-01, // itest=202: vxxxxx#21 nsp=-1 mass=400 + -2.476131380041579e-01, -4.836194101643708e-01, // itest=202: vxxxxx#21 nsp=-1 mass=400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=202: vxxxxx#21 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=203: vxxxxx#21 nsp=-1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=203: vxxxxx#21 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=203: vxxxxx#21 nsp=-1 mass=-400 + -2.321373168788980e-01, 5.158607041753289e-01, // itest=203: vxxxxx#21 nsp=-1 mass=-400 + -2.476131380041579e-01, -4.836194101643708e-01, // itest=203: vxxxxx#21 nsp=-1 mass=-400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=203: vxxxxx#21 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=204: sxxxxx#21 nsp=-1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=204: sxxxxx#21 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=204: sxxxxx#21 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=204: sxxxxx#21 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=204: sxxxxx#21 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=204: sxxxxx#21 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=205: sxxxxx#21 nsp=-1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=205: sxxxxx#21 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=205: sxxxxx#21 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=205: sxxxxx#21 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=205: sxxxxx#21 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=205: sxxxxx#21 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=206: oxxxxx#21 nsp=-1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=206: oxxxxx#21 nsp=-1 mass=400 + -4.931969619160719e+00, -5.260767593771432e+00, // itest=206: oxxxxx#21 nsp=-1 mass=400 + 1.216552506059644e+01, 0.000000000000000e+00, // itest=206: oxxxxx#21 nsp=-1 mass=400 + 9.863939238321439e+00, 1.052153518754287e+01, // itest=206: oxxxxx#21 nsp=-1 mass=400 + -2.433105012119288e+01, -0.000000000000000e+00 } ); // itest=206: oxxxxx#21 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=207: oxxxxx#21 nsp=-1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=207: oxxxxx#21 nsp=-1 mass=-400 + 4.931969619160719e+00, 5.260767593771432e+00, // itest=207: oxxxxx#21 nsp=-1 mass=-400 + -1.216552506059644e+01, -0.000000000000000e+00, // itest=207: oxxxxx#21 nsp=-1 mass=-400 + 9.863939238321439e+00, 1.052153518754287e+01, // itest=207: oxxxxx#21 nsp=-1 mass=-400 + -2.433105012119288e+01, -0.000000000000000e+00 } ); // itest=207: oxxxxx#21 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=208: ixxxxx#22 nsp=-1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=208: ixxxxx#22 nsp=-1 mass=400 + 1.664100588675688e+01, -1.775040627920733e+01, // itest=208: ixxxxx#22 nsp=-1 mass=400 + -1.442220510185596e+01, -0.000000000000000e+00, // itest=208: ixxxxx#22 nsp=-1 mass=400 + -8.320502943378436e+00, 8.875203139603666e+00, // itest=208: ixxxxx#22 nsp=-1 mass=400 + 7.211102550927978e+00, 0.000000000000000e+00 } ); // itest=208: ixxxxx#22 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=209: ixxxxx#22 nsp=-1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=209: ixxxxx#22 nsp=-1 mass=-400 + 1.664100588675688e+01, -1.775040627920733e+01, // itest=209: ixxxxx#22 nsp=-1 mass=-400 + -1.442220510185596e+01, -0.000000000000000e+00, // itest=209: ixxxxx#22 nsp=-1 mass=-400 + 8.320502943378436e+00, -8.875203139603666e+00, // itest=209: ixxxxx#22 nsp=-1 mass=-400 + -7.211102550927978e+00, -0.000000000000000e+00 } ); // itest=209: ixxxxx#22 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=210: vxxxxx#22 nsp=-1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=210: vxxxxx#22 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=210: vxxxxx#22 nsp=-1 mass=400 + 2.321373168788980e-01, 5.158607041753289e-01, // itest=210: vxxxxx#22 nsp=-1 mass=400 + 2.476131380041579e-01, -4.836194101643708e-01, // itest=210: vxxxxx#22 nsp=-1 mass=400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=210: vxxxxx#22 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=211: vxxxxx#22 nsp=-1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=211: vxxxxx#22 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=211: vxxxxx#22 nsp=-1 mass=-400 + 2.321373168788980e-01, 5.158607041753289e-01, // itest=211: vxxxxx#22 nsp=-1 mass=-400 + 2.476131380041579e-01, -4.836194101643708e-01, // itest=211: vxxxxx#22 nsp=-1 mass=-400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=211: vxxxxx#22 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=212: sxxxxx#22 nsp=-1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=212: sxxxxx#22 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=212: sxxxxx#22 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=212: sxxxxx#22 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=212: sxxxxx#22 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=212: sxxxxx#22 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=213: sxxxxx#22 nsp=-1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=213: sxxxxx#22 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=213: sxxxxx#22 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=213: sxxxxx#22 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=213: sxxxxx#22 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=213: sxxxxx#22 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=214: oxxxxx#22 nsp=-1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=214: oxxxxx#22 nsp=-1 mass=400 + -8.320502943378436e+00, -8.875203139603666e+00, // itest=214: oxxxxx#22 nsp=-1 mass=400 + 7.211102550927978e+00, 0.000000000000000e+00, // itest=214: oxxxxx#22 nsp=-1 mass=400 + 1.664100588675688e+01, 1.775040627920733e+01, // itest=214: oxxxxx#22 nsp=-1 mass=400 + -1.442220510185596e+01, -0.000000000000000e+00 } ); // itest=214: oxxxxx#22 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=215: oxxxxx#22 nsp=-1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=215: oxxxxx#22 nsp=-1 mass=-400 + 8.320502943378436e+00, 8.875203139603666e+00, // itest=215: oxxxxx#22 nsp=-1 mass=-400 + -7.211102550927978e+00, -0.000000000000000e+00, // itest=215: oxxxxx#22 nsp=-1 mass=-400 + 1.664100588675688e+01, 1.775040627920733e+01, // itest=215: oxxxxx#22 nsp=-1 mass=-400 + -1.442220510185596e+01, -0.000000000000000e+00 } ); // itest=215: oxxxxx#22 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=216: ixxxxx#23 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=216: ixxxxx#23 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=216: ixxxxx#23 nsp=-1 mass=500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=216: ixxxxx#23 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=216: ixxxxx#23 nsp=-1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=216: ixxxxx#23 nsp=-1 mass=500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=217: ixxxxx#23 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=217: ixxxxx#23 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=217: ixxxxx#23 nsp=-1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=217: ixxxxx#23 nsp=-1 mass=-500 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=217: ixxxxx#23 nsp=-1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=217: ixxxxx#23 nsp=-1 mass=-500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=218: vxxxxx#23 nsp=-1 mass=500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=218: vxxxxx#23 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=218: vxxxxx#23 nsp=-1 mass=500 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=218: vxxxxx#23 nsp=-1 mass=500 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=218: vxxxxx#23 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=218: vxxxxx#23 nsp=-1 mass=500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=219: vxxxxx#23 nsp=-1 mass=-500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=219: vxxxxx#23 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=219: vxxxxx#23 nsp=-1 mass=-500 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=219: vxxxxx#23 nsp=-1 mass=-500 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=219: vxxxxx#23 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=219: vxxxxx#23 nsp=-1 mass=-500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=220: sxxxxx#23 nsp=-1 mass=500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=220: sxxxxx#23 nsp=-1 mass=500 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=220: sxxxxx#23 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=220: sxxxxx#23 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=220: sxxxxx#23 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=220: sxxxxx#23 nsp=-1 mass=500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=221: sxxxxx#23 nsp=-1 mass=-500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=221: sxxxxx#23 nsp=-1 mass=-500 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=221: sxxxxx#23 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=221: sxxxxx#23 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=221: sxxxxx#23 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=221: sxxxxx#23 nsp=-1 mass=-500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=222: oxxxxx#23 nsp=-1 mass=500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=222: oxxxxx#23 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=222: oxxxxx#23 nsp=-1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=222: oxxxxx#23 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=222: oxxxxx#23 nsp=-1 mass=500 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=222: oxxxxx#23 nsp=-1 mass=500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=223: oxxxxx#23 nsp=-1 mass=-500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=223: oxxxxx#23 nsp=-1 mass=-500 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=223: oxxxxx#23 nsp=-1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=223: oxxxxx#23 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=223: oxxxxx#23 nsp=-1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=223: oxxxxx#23 nsp=-1 mass=-500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=224: ixxxxx#24 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=224: ixxxxx#24 nsp=-1 mass=400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=224: ixxxxx#24 nsp=-1 mass=400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=224: ixxxxx#24 nsp=-1 mass=400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=224: ixxxxx#24 nsp=-1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00 } ); // itest=224: ixxxxx#24 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=225: ixxxxx#24 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=225: ixxxxx#24 nsp=-1 mass=-400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=225: ixxxxx#24 nsp=-1 mass=-400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=225: ixxxxx#24 nsp=-1 mass=-400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=225: ixxxxx#24 nsp=-1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00 } ); // itest=225: ixxxxx#24 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=226: vxxxxx#24 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=226: vxxxxx#24 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=226: vxxxxx#24 nsp=-1 mass=400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=226: vxxxxx#24 nsp=-1 mass=400 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=226: vxxxxx#24 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=226: vxxxxx#24 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=227: vxxxxx#24 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=227: vxxxxx#24 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=227: vxxxxx#24 nsp=-1 mass=-400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=227: vxxxxx#24 nsp=-1 mass=-400 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=227: vxxxxx#24 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=227: vxxxxx#24 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=228: sxxxxx#24 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=228: sxxxxx#24 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=228: sxxxxx#24 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=228: sxxxxx#24 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=228: sxxxxx#24 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=228: sxxxxx#24 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=229: sxxxxx#24 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=229: sxxxxx#24 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=229: sxxxxx#24 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=229: sxxxxx#24 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=229: sxxxxx#24 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=229: sxxxxx#24 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=230: oxxxxx#24 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=230: oxxxxx#24 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=230: oxxxxx#24 nsp=-1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=230: oxxxxx#24 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=230: oxxxxx#24 nsp=-1 mass=400 + -2.828427124746190e+01, -0.000000000000000e+00 } ); // itest=230: oxxxxx#24 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=231: oxxxxx#24 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=231: oxxxxx#24 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=231: oxxxxx#24 nsp=-1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=231: oxxxxx#24 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=231: oxxxxx#24 nsp=-1 mass=-400 + -2.828427124746190e+01, -0.000000000000000e+00 } ); // itest=231: oxxxxx#24 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=232: ixxxxx#25 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=232: ixxxxx#25 nsp=-1 mass=400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=232: ixxxxx#25 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=232: ixxxxx#25 nsp=-1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=232: ixxxxx#25 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=232: ixxxxx#25 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=233: ixxxxx#25 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=233: ixxxxx#25 nsp=-1 mass=-400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=233: ixxxxx#25 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=233: ixxxxx#25 nsp=-1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=233: ixxxxx#25 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=233: ixxxxx#25 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=234: vxxxxx#25 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=234: vxxxxx#25 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=234: vxxxxx#25 nsp=-1 mass=400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=234: vxxxxx#25 nsp=-1 mass=400 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=234: vxxxxx#25 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=234: vxxxxx#25 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=235: vxxxxx#25 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=235: vxxxxx#25 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=235: vxxxxx#25 nsp=-1 mass=-400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=235: vxxxxx#25 nsp=-1 mass=-400 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=235: vxxxxx#25 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=235: vxxxxx#25 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=236: sxxxxx#25 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=236: sxxxxx#25 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=236: sxxxxx#25 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=236: sxxxxx#25 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=236: sxxxxx#25 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=236: sxxxxx#25 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=237: sxxxxx#25 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=237: sxxxxx#25 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=237: sxxxxx#25 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=237: sxxxxx#25 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=237: sxxxxx#25 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=237: sxxxxx#25 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=238: oxxxxx#25 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=238: oxxxxx#25 nsp=-1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=238: oxxxxx#25 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=238: oxxxxx#25 nsp=-1 mass=400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=238: oxxxxx#25 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=238: oxxxxx#25 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=239: oxxxxx#25 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=239: oxxxxx#25 nsp=-1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=239: oxxxxx#25 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=239: oxxxxx#25 nsp=-1 mass=-400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=239: oxxxxx#25 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=239: oxxxxx#25 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=240: ixxxxx#26 nsp=-1 mass=400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=240: ixxxxx#26 nsp=-1 mass=400 + 1.200000000000000e+01, -1.600000000000000e+01, // itest=240: ixxxxx#26 nsp=-1 mass=400 + -2.000000000000000e+01, -0.000000000000000e+00, // itest=240: ixxxxx#26 nsp=-1 mass=400 + -5.999999999999999e+00, 7.999999999999999e+00, // itest=240: ixxxxx#26 nsp=-1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=240: ixxxxx#26 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=241: ixxxxx#26 nsp=-1 mass=-400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=241: ixxxxx#26 nsp=-1 mass=-400 + 1.200000000000000e+01, -1.600000000000000e+01, // itest=241: ixxxxx#26 nsp=-1 mass=-400 + -2.000000000000000e+01, -0.000000000000000e+00, // itest=241: ixxxxx#26 nsp=-1 mass=-400 + 5.999999999999999e+00, -7.999999999999999e+00, // itest=241: ixxxxx#26 nsp=-1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00 } ); // itest=241: ixxxxx#26 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=242: vxxxxx#26 nsp=-1 mass=400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=242: vxxxxx#26 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=242: vxxxxx#26 nsp=-1 mass=400 + 0.000000000000000e+00, 5.656854249492381e-01, // itest=242: vxxxxx#26 nsp=-1 mass=400 + 0.000000000000000e+00, -4.242640687119285e-01, // itest=242: vxxxxx#26 nsp=-1 mass=400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=242: vxxxxx#26 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=243: vxxxxx#26 nsp=-1 mass=-400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=243: vxxxxx#26 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=243: vxxxxx#26 nsp=-1 mass=-400 + -0.000000000000000e+00, 5.656854249492381e-01, // itest=243: vxxxxx#26 nsp=-1 mass=-400 + -0.000000000000000e+00, -4.242640687119285e-01, // itest=243: vxxxxx#26 nsp=-1 mass=-400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=243: vxxxxx#26 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=244: sxxxxx#26 nsp=-1 mass=400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=244: sxxxxx#26 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=244: sxxxxx#26 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=244: sxxxxx#26 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=244: sxxxxx#26 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=244: sxxxxx#26 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=245: sxxxxx#26 nsp=-1 mass=-400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=245: sxxxxx#26 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=245: sxxxxx#26 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=245: sxxxxx#26 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=245: sxxxxx#26 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=245: sxxxxx#26 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=246: oxxxxx#26 nsp=-1 mass=400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=246: oxxxxx#26 nsp=-1 mass=400 + -5.999999999999999e+00, -7.999999999999999e+00, // itest=246: oxxxxx#26 nsp=-1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=246: oxxxxx#26 nsp=-1 mass=400 + 1.200000000000000e+01, 1.600000000000000e+01, // itest=246: oxxxxx#26 nsp=-1 mass=400 + -2.000000000000000e+01, -0.000000000000000e+00 } ); // itest=246: oxxxxx#26 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=247: oxxxxx#26 nsp=-1 mass=-400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=247: oxxxxx#26 nsp=-1 mass=-400 + 5.999999999999999e+00, 7.999999999999999e+00, // itest=247: oxxxxx#26 nsp=-1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00, // itest=247: oxxxxx#26 nsp=-1 mass=-400 + 1.200000000000000e+01, 1.600000000000000e+01, // itest=247: oxxxxx#26 nsp=-1 mass=-400 + -2.000000000000000e+01, -0.000000000000000e+00 } ); // itest=247: oxxxxx#26 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=248: ixxxxx#27 nsp=-1 mass=400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=248: ixxxxx#27 nsp=-1 mass=400 + -1.600000000000000e+01, 1.200000000000000e+01, // itest=248: ixxxxx#27 nsp=-1 mass=400 + -2.000000000000000e+01, -0.000000000000000e+00, // itest=248: ixxxxx#27 nsp=-1 mass=400 + 7.999999999999999e+00, -5.999999999999999e+00, // itest=248: ixxxxx#27 nsp=-1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=248: ixxxxx#27 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=249: ixxxxx#27 nsp=-1 mass=-400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=249: ixxxxx#27 nsp=-1 mass=-400 + -1.600000000000000e+01, 1.200000000000000e+01, // itest=249: ixxxxx#27 nsp=-1 mass=-400 + -2.000000000000000e+01, -0.000000000000000e+00, // itest=249: ixxxxx#27 nsp=-1 mass=-400 + -7.999999999999999e+00, 5.999999999999999e+00, // itest=249: ixxxxx#27 nsp=-1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00 } ); // itest=249: ixxxxx#27 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=250: vxxxxx#27 nsp=-1 mass=400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=250: vxxxxx#27 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=250: vxxxxx#27 nsp=-1 mass=400 + 0.000000000000000e+00, -4.242640687119285e-01, // itest=250: vxxxxx#27 nsp=-1 mass=400 + 0.000000000000000e+00, 5.656854249492381e-01, // itest=250: vxxxxx#27 nsp=-1 mass=400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=250: vxxxxx#27 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=251: vxxxxx#27 nsp=-1 mass=-400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=251: vxxxxx#27 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=251: vxxxxx#27 nsp=-1 mass=-400 + 0.000000000000000e+00, -4.242640687119285e-01, // itest=251: vxxxxx#27 nsp=-1 mass=-400 + 0.000000000000000e+00, 5.656854249492381e-01, // itest=251: vxxxxx#27 nsp=-1 mass=-400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=251: vxxxxx#27 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=252: sxxxxx#27 nsp=-1 mass=400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=252: sxxxxx#27 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=252: sxxxxx#27 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=252: sxxxxx#27 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=252: sxxxxx#27 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=252: sxxxxx#27 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=253: sxxxxx#27 nsp=-1 mass=-400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=253: sxxxxx#27 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=253: sxxxxx#27 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=253: sxxxxx#27 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=253: sxxxxx#27 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=253: sxxxxx#27 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=254: oxxxxx#27 nsp=-1 mass=400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=254: oxxxxx#27 nsp=-1 mass=400 + 7.999999999999999e+00, 5.999999999999999e+00, // itest=254: oxxxxx#27 nsp=-1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=254: oxxxxx#27 nsp=-1 mass=400 + -1.600000000000000e+01, -1.200000000000000e+01, // itest=254: oxxxxx#27 nsp=-1 mass=400 + -2.000000000000000e+01, -0.000000000000000e+00 } ); // itest=254: oxxxxx#27 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=255: oxxxxx#27 nsp=-1 mass=-400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=255: oxxxxx#27 nsp=-1 mass=-400 + -7.999999999999999e+00, -5.999999999999999e+00, // itest=255: oxxxxx#27 nsp=-1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00, // itest=255: oxxxxx#27 nsp=-1 mass=-400 + -1.600000000000000e+01, -1.200000000000000e+01, // itest=255: oxxxxx#27 nsp=-1 mass=-400 + -2.000000000000000e+01, -0.000000000000000e+00 } ); // itest=255: oxxxxx#27 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=256: ixxxxx#28 nsp=-1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=256: ixxxxx#28 nsp=-1 mass=400 + 9.863939238321439e+00, -1.052153518754287e+01, // itest=256: ixxxxx#28 nsp=-1 mass=400 + -2.433105012119288e+01, -0.000000000000000e+00, // itest=256: ixxxxx#28 nsp=-1 mass=400 + -4.931969619160719e+00, 5.260767593771432e+00, // itest=256: ixxxxx#28 nsp=-1 mass=400 + 1.216552506059644e+01, 0.000000000000000e+00 } ); // itest=256: ixxxxx#28 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=257: ixxxxx#28 nsp=-1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=257: ixxxxx#28 nsp=-1 mass=-400 + 9.863939238321439e+00, -1.052153518754287e+01, // itest=257: ixxxxx#28 nsp=-1 mass=-400 + -2.433105012119288e+01, -0.000000000000000e+00, // itest=257: ixxxxx#28 nsp=-1 mass=-400 + 4.931969619160719e+00, -5.260767593771432e+00, // itest=257: ixxxxx#28 nsp=-1 mass=-400 + -1.216552506059644e+01, -0.000000000000000e+00 } ); // itest=257: ixxxxx#28 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=258: vxxxxx#28 nsp=-1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=258: vxxxxx#28 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=258: vxxxxx#28 nsp=-1 mass=400 + -2.321373168788980e-01, 5.158607041753289e-01, // itest=258: vxxxxx#28 nsp=-1 mass=400 + -2.476131380041579e-01, -4.836194101643708e-01, // itest=258: vxxxxx#28 nsp=-1 mass=400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=258: vxxxxx#28 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=259: vxxxxx#28 nsp=-1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=259: vxxxxx#28 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=259: vxxxxx#28 nsp=-1 mass=-400 + -2.321373168788980e-01, 5.158607041753289e-01, // itest=259: vxxxxx#28 nsp=-1 mass=-400 + -2.476131380041579e-01, -4.836194101643708e-01, // itest=259: vxxxxx#28 nsp=-1 mass=-400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=259: vxxxxx#28 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=260: sxxxxx#28 nsp=-1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=260: sxxxxx#28 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=260: sxxxxx#28 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=260: sxxxxx#28 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=260: sxxxxx#28 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=260: sxxxxx#28 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=261: sxxxxx#28 nsp=-1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=261: sxxxxx#28 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=261: sxxxxx#28 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=261: sxxxxx#28 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=261: sxxxxx#28 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=261: sxxxxx#28 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=262: oxxxxx#28 nsp=-1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=262: oxxxxx#28 nsp=-1 mass=400 + -4.931969619160719e+00, -5.260767593771432e+00, // itest=262: oxxxxx#28 nsp=-1 mass=400 + 1.216552506059644e+01, 0.000000000000000e+00, // itest=262: oxxxxx#28 nsp=-1 mass=400 + 9.863939238321439e+00, 1.052153518754287e+01, // itest=262: oxxxxx#28 nsp=-1 mass=400 + -2.433105012119288e+01, -0.000000000000000e+00 } ); // itest=262: oxxxxx#28 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=263: oxxxxx#28 nsp=-1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=263: oxxxxx#28 nsp=-1 mass=-400 + 4.931969619160719e+00, 5.260767593771432e+00, // itest=263: oxxxxx#28 nsp=-1 mass=-400 + -1.216552506059644e+01, -0.000000000000000e+00, // itest=263: oxxxxx#28 nsp=-1 mass=-400 + 9.863939238321439e+00, 1.052153518754287e+01, // itest=263: oxxxxx#28 nsp=-1 mass=-400 + -2.433105012119288e+01, -0.000000000000000e+00 } ); // itest=263: oxxxxx#28 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=264: ixxxxx#29 nsp=-1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=264: ixxxxx#29 nsp=-1 mass=400 + 1.664100588675688e+01, -1.775040627920733e+01, // itest=264: ixxxxx#29 nsp=-1 mass=400 + -1.442220510185596e+01, -0.000000000000000e+00, // itest=264: ixxxxx#29 nsp=-1 mass=400 + -8.320502943378436e+00, 8.875203139603666e+00, // itest=264: ixxxxx#29 nsp=-1 mass=400 + 7.211102550927978e+00, 0.000000000000000e+00 } ); // itest=264: ixxxxx#29 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=265: ixxxxx#29 nsp=-1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=265: ixxxxx#29 nsp=-1 mass=-400 + 1.664100588675688e+01, -1.775040627920733e+01, // itest=265: ixxxxx#29 nsp=-1 mass=-400 + -1.442220510185596e+01, -0.000000000000000e+00, // itest=265: ixxxxx#29 nsp=-1 mass=-400 + 8.320502943378436e+00, -8.875203139603666e+00, // itest=265: ixxxxx#29 nsp=-1 mass=-400 + -7.211102550927978e+00, -0.000000000000000e+00 } ); // itest=265: ixxxxx#29 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=266: vxxxxx#29 nsp=-1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=266: vxxxxx#29 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=266: vxxxxx#29 nsp=-1 mass=400 + 2.321373168788980e-01, 5.158607041753289e-01, // itest=266: vxxxxx#29 nsp=-1 mass=400 + 2.476131380041579e-01, -4.836194101643708e-01, // itest=266: vxxxxx#29 nsp=-1 mass=400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=266: vxxxxx#29 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=267: vxxxxx#29 nsp=-1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=267: vxxxxx#29 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=267: vxxxxx#29 nsp=-1 mass=-400 + 2.321373168788980e-01, 5.158607041753289e-01, // itest=267: vxxxxx#29 nsp=-1 mass=-400 + 2.476131380041579e-01, -4.836194101643708e-01, // itest=267: vxxxxx#29 nsp=-1 mass=-400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=267: vxxxxx#29 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=268: sxxxxx#29 nsp=-1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=268: sxxxxx#29 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=268: sxxxxx#29 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=268: sxxxxx#29 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=268: sxxxxx#29 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=268: sxxxxx#29 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=269: sxxxxx#29 nsp=-1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=269: sxxxxx#29 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=269: sxxxxx#29 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=269: sxxxxx#29 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=269: sxxxxx#29 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=269: sxxxxx#29 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=270: oxxxxx#29 nsp=-1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=270: oxxxxx#29 nsp=-1 mass=400 + -8.320502943378436e+00, -8.875203139603666e+00, // itest=270: oxxxxx#29 nsp=-1 mass=400 + 7.211102550927978e+00, 0.000000000000000e+00, // itest=270: oxxxxx#29 nsp=-1 mass=400 + 1.664100588675688e+01, 1.775040627920733e+01, // itest=270: oxxxxx#29 nsp=-1 mass=400 + -1.442220510185596e+01, -0.000000000000000e+00 } ); // itest=270: oxxxxx#29 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=271: oxxxxx#29 nsp=-1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=271: oxxxxx#29 nsp=-1 mass=-400 + 8.320502943378436e+00, 8.875203139603666e+00, // itest=271: oxxxxx#29 nsp=-1 mass=-400 + -7.211102550927978e+00, -0.000000000000000e+00, // itest=271: oxxxxx#29 nsp=-1 mass=-400 + 1.664100588675688e+01, 1.775040627920733e+01, // itest=271: oxxxxx#29 nsp=-1 mass=-400 + -1.442220510185596e+01, -0.000000000000000e+00 } ); // itest=271: oxxxxx#29 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=272: ixxxxx#30 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=272: ixxxxx#30 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=272: ixxxxx#30 nsp=-1 mass=500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=272: ixxxxx#30 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=272: ixxxxx#30 nsp=-1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=272: ixxxxx#30 nsp=-1 mass=500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=273: ixxxxx#30 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=273: ixxxxx#30 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=273: ixxxxx#30 nsp=-1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=273: ixxxxx#30 nsp=-1 mass=-500 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=273: ixxxxx#30 nsp=-1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=273: ixxxxx#30 nsp=-1 mass=-500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=274: vxxxxx#30 nsp=-1 mass=500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=274: vxxxxx#30 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=274: vxxxxx#30 nsp=-1 mass=500 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=274: vxxxxx#30 nsp=-1 mass=500 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=274: vxxxxx#30 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=274: vxxxxx#30 nsp=-1 mass=500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=275: vxxxxx#30 nsp=-1 mass=-500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=275: vxxxxx#30 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=275: vxxxxx#30 nsp=-1 mass=-500 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=275: vxxxxx#30 nsp=-1 mass=-500 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=275: vxxxxx#30 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=275: vxxxxx#30 nsp=-1 mass=-500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=276: sxxxxx#30 nsp=-1 mass=500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=276: sxxxxx#30 nsp=-1 mass=500 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=276: sxxxxx#30 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=276: sxxxxx#30 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=276: sxxxxx#30 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=276: sxxxxx#30 nsp=-1 mass=500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=277: sxxxxx#30 nsp=-1 mass=-500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=277: sxxxxx#30 nsp=-1 mass=-500 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=277: sxxxxx#30 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=277: sxxxxx#30 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=277: sxxxxx#30 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=277: sxxxxx#30 nsp=-1 mass=-500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=278: oxxxxx#30 nsp=-1 mass=500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=278: oxxxxx#30 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=278: oxxxxx#30 nsp=-1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=278: oxxxxx#30 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=278: oxxxxx#30 nsp=-1 mass=500 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=278: oxxxxx#30 nsp=-1 mass=500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=279: oxxxxx#30 nsp=-1 mass=-500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=279: oxxxxx#30 nsp=-1 mass=-500 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=279: oxxxxx#30 nsp=-1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=279: oxxxxx#30 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=279: oxxxxx#30 nsp=-1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=279: oxxxxx#30 nsp=-1 mass=-500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=280: ixxxxx#31 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=280: ixxxxx#31 nsp=-1 mass=400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=280: ixxxxx#31 nsp=-1 mass=400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=280: ixxxxx#31 nsp=-1 mass=400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=280: ixxxxx#31 nsp=-1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00 } ); // itest=280: ixxxxx#31 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=281: ixxxxx#31 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=281: ixxxxx#31 nsp=-1 mass=-400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=281: ixxxxx#31 nsp=-1 mass=-400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=281: ixxxxx#31 nsp=-1 mass=-400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=281: ixxxxx#31 nsp=-1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00 } ); // itest=281: ixxxxx#31 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=282: vxxxxx#31 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=282: vxxxxx#31 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=282: vxxxxx#31 nsp=-1 mass=400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=282: vxxxxx#31 nsp=-1 mass=400 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=282: vxxxxx#31 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=282: vxxxxx#31 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=283: vxxxxx#31 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=283: vxxxxx#31 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=283: vxxxxx#31 nsp=-1 mass=-400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=283: vxxxxx#31 nsp=-1 mass=-400 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=283: vxxxxx#31 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=283: vxxxxx#31 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=284: sxxxxx#31 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=284: sxxxxx#31 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=284: sxxxxx#31 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=284: sxxxxx#31 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=284: sxxxxx#31 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=284: sxxxxx#31 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=285: sxxxxx#31 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=285: sxxxxx#31 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=285: sxxxxx#31 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=285: sxxxxx#31 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=285: sxxxxx#31 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=285: sxxxxx#31 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=286: oxxxxx#31 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=286: oxxxxx#31 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=286: oxxxxx#31 nsp=-1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=286: oxxxxx#31 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=286: oxxxxx#31 nsp=-1 mass=400 + -2.828427124746190e+01, -0.000000000000000e+00 } ); // itest=286: oxxxxx#31 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=287: oxxxxx#31 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=287: oxxxxx#31 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=287: oxxxxx#31 nsp=-1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=287: oxxxxx#31 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=287: oxxxxx#31 nsp=-1 mass=-400 + -2.828427124746190e+01, -0.000000000000000e+00 } ); // itest=287: oxxxxx#31 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=288: ixxxxx#0 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=288: ixxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=288: ixxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=288: ixxxxx#0 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=288: ixxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=288: ixxxxx#0 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=289: ixxxxx#0 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=289: ixxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=289: ixxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=289: ixxxxx#0 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=289: ixxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=289: ixxxxx#0 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=290: ipzxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=290: ipzxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=290: ipzxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=290: ipzxxx#0 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=290: ipzxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=290: ipzxxx#0 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=291: vxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=291: vxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=291: vxxxxx#0 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=291: vxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=291: vxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=291: vxxxxx#0 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=292: vxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=292: vxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=292: vxxxxx#0 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=292: vxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=292: vxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=292: vxxxxx#0 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=293: sxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=293: sxxxxx#0 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=293: sxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=293: sxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=293: sxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=293: sxxxxx#0 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=294: sxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=294: sxxxxx#0 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=294: sxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=294: sxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=294: sxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=294: sxxxxx#0 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=295: oxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=295: oxxxxx#0 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=295: oxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=295: oxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=295: oxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=295: oxxxxx#0 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=296: oxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=296: oxxxxx#0 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=296: oxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=296: oxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=296: oxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=296: oxxxxx#0 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=297: opzxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=297: opzxxx#0 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=297: opzxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=297: opzxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=297: opzxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=297: opzxxx#0 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=298: ixxxxx#1 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=298: ixxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=298: ixxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=298: ixxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=298: ixxxxx#1 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=298: ixxxxx#1 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=299: ixxxxx#1 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=299: ixxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=299: ixxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=299: ixxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=299: ixxxxx#1 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=299: ixxxxx#1 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=300: imzxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=300: imzxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=300: imzxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=300: imzxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=300: imzxxx#1 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=300: imzxxx#1 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=301: vxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=301: vxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=301: vxxxxx#1 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=301: vxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=301: vxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=301: vxxxxx#1 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=302: vxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=302: vxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=302: vxxxxx#1 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=302: vxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=302: vxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=302: vxxxxx#1 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=303: sxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=303: sxxxxx#1 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=303: sxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=303: sxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=303: sxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=303: sxxxxx#1 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=304: sxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=304: sxxxxx#1 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=304: sxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=304: sxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=304: sxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=304: sxxxxx#1 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=305: oxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=305: oxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=305: oxxxxx#1 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=305: oxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=305: oxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=305: oxxxxx#1 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=306: oxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=306: oxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=306: oxxxxx#1 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=306: oxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=306: oxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=306: oxxxxx#1 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=307: omzxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=307: omzxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=307: omzxxx#1 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=307: omzxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=307: omzxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=307: omzxxx#1 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=308: ixxxxx#2 nsp=1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=308: ixxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=308: ixxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=308: ixxxxx#2 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=308: ixxxxx#2 nsp=1 mass=0 + 1.341640786499874e+01, 1.788854381999831e+01 } ); // itest=308: ixxxxx#2 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=309: ixxxxx#2 nsp=1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=309: ixxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=309: ixxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=309: ixxxxx#2 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=309: ixxxxx#2 nsp=1 mass=0 + 1.341640786499874e+01, 1.788854381999831e+01 } ); // itest=309: ixxxxx#2 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=310: ixzxxx#2 nsp=1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=310: ixzxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=310: ixzxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=310: ixzxxx#2 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=310: ixzxxx#2 nsp=1 mass=0 + 1.341640786499874e+01, 1.788854381999832e+01 } ); // itest=310: ixzxxx#2 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=311: vxxxxx#2 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=311: vxxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=311: vxxxxx#2 nsp=1 mass=0 + -0.000000000000000e+00, -5.656854249492381e-01, // itest=311: vxxxxx#2 nsp=1 mass=0 + -0.000000000000000e+00, 4.242640687119285e-01, // itest=311: vxxxxx#2 nsp=1 mass=0 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=311: vxxxxx#2 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=312: vxxxxx#2 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=312: vxxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=312: vxxxxx#2 nsp=1 mass=0 + -0.000000000000000e+00, -5.656854249492381e-01, // itest=312: vxxxxx#2 nsp=1 mass=0 + -0.000000000000000e+00, 4.242640687119285e-01, // itest=312: vxxxxx#2 nsp=1 mass=0 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=312: vxxxxx#2 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=313: sxxxxx#2 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=313: sxxxxx#2 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=313: sxxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=313: sxxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=313: sxxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=313: sxxxxx#2 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=314: sxxxxx#2 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=314: sxxxxx#2 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=314: sxxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=314: sxxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=314: sxxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=314: sxxxxx#2 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=315: oxxxxx#2 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=315: oxxxxx#2 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=315: oxxxxx#2 nsp=1 mass=0 + 1.341640786499874e+01, -1.788854381999831e+01, // itest=315: oxxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=315: oxxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=315: oxxxxx#2 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=316: oxxxxx#2 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=316: oxxxxx#2 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=316: oxxxxx#2 nsp=1 mass=0 + 1.341640786499874e+01, -1.788854381999831e+01, // itest=316: oxxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=316: oxxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=316: oxxxxx#2 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=317: oxzxxx#2 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=317: oxzxxx#2 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=317: oxzxxx#2 nsp=1 mass=0 + 1.341640786499874e+01, -1.788854381999832e+01, // itest=317: oxzxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=317: oxzxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=317: oxzxxx#2 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=318: ixxxxx#3 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=318: ixxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=318: ixxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=318: ixxxxx#3 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=318: ixxxxx#3 nsp=1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=318: ixxxxx#3 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=319: ixxxxx#3 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=319: ixxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=319: ixxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=319: ixxxxx#3 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=319: ixxxxx#3 nsp=1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=319: ixxxxx#3 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=320: ixzxxx#3 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=320: ixzxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=320: ixzxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=320: ixzxxx#3 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=320: ixzxxx#3 nsp=1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=320: ixzxxx#3 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=321: vxxxxx#3 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=321: vxxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=321: vxxxxx#3 nsp=1 mass=0 + -3.394112549695428e-01, -5.656854249492381e-01, // itest=321: vxxxxx#3 nsp=1 mass=0 + -4.525483399593904e-01, 4.242640687119285e-01, // itest=321: vxxxxx#3 nsp=1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=321: vxxxxx#3 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=322: vxxxxx#3 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=322: vxxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=322: vxxxxx#3 nsp=1 mass=0 + -3.394112549695428e-01, -5.656854249492381e-01, // itest=322: vxxxxx#3 nsp=1 mass=0 + -4.525483399593904e-01, 4.242640687119285e-01, // itest=322: vxxxxx#3 nsp=1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=322: vxxxxx#3 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=323: sxxxxx#3 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=323: sxxxxx#3 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=323: sxxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=323: sxxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=323: sxxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=323: sxxxxx#3 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=324: sxxxxx#3 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=324: sxxxxx#3 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=324: sxxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=324: sxxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=324: sxxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=324: sxxxxx#3 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=325: oxxxxx#3 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=325: oxxxxx#3 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=325: oxxxxx#3 nsp=1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=325: oxxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=325: oxxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=325: oxxxxx#3 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=326: oxxxxx#3 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=326: oxxxxx#3 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=326: oxxxxx#3 nsp=1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=326: oxxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=326: oxxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=326: oxxxxx#3 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=327: oxzxxx#3 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=327: oxzxxx#3 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=327: oxzxxx#3 nsp=1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=327: oxzxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=327: oxzxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=327: oxzxxx#3 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=328: ixxxxx#4 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=328: ixxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=328: ixxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=328: ixxxxx#4 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=328: ixxxxx#4 nsp=1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01 } ); // itest=328: ixxxxx#4 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=329: ixxxxx#4 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=329: ixxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=329: ixxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=329: ixxxxx#4 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=329: ixxxxx#4 nsp=1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01 } ); // itest=329: ixxxxx#4 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=330: ixzxxx#4 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=330: ixzxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=330: ixzxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=330: ixzxxx#4 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=330: ixzxxx#4 nsp=1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01 } ); // itest=330: ixzxxx#4 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=331: vxxxxx#4 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=331: vxxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=331: vxxxxx#4 nsp=1 mass=0 + 3.394112549695428e-01, -5.656854249492381e-01, // itest=331: vxxxxx#4 nsp=1 mass=0 + 4.525483399593904e-01, 4.242640687119285e-01, // itest=331: vxxxxx#4 nsp=1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=331: vxxxxx#4 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=332: vxxxxx#4 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=332: vxxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=332: vxxxxx#4 nsp=1 mass=0 + 3.394112549695428e-01, -5.656854249492381e-01, // itest=332: vxxxxx#4 nsp=1 mass=0 + 4.525483399593904e-01, 4.242640687119285e-01, // itest=332: vxxxxx#4 nsp=1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=332: vxxxxx#4 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=333: sxxxxx#4 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=333: sxxxxx#4 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=333: sxxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=333: sxxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=333: sxxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=333: sxxxxx#4 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=334: sxxxxx#4 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=334: sxxxxx#4 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=334: sxxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=334: sxxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=334: sxxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=334: sxxxxx#4 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=335: oxxxxx#4 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=335: oxxxxx#4 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=335: oxxxxx#4 nsp=1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=335: oxxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=335: oxxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=335: oxxxxx#4 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=336: oxxxxx#4 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=336: oxxxxx#4 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=336: oxxxxx#4 nsp=1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=336: oxxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=336: oxxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=336: oxxxxx#4 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=337: oxzxxx#4 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=337: oxzxxx#4 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=337: oxzxxx#4 nsp=1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=337: oxzxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=337: oxzxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=337: oxzxxx#4 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=338: ixxxxx#5 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=338: ixxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=338: ixxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=338: ixxxxx#5 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=338: ixxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=338: ixxxxx#5 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=339: ixxxxx#5 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=339: ixxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=339: ixxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=339: ixxxxx#5 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=339: ixxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=339: ixxxxx#5 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=340: ipzxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=340: ipzxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=340: ipzxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=340: ipzxxx#5 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=340: ipzxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=340: ipzxxx#5 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=341: vxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=341: vxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=341: vxxxxx#5 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=341: vxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=341: vxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=341: vxxxxx#5 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=342: vxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=342: vxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=342: vxxxxx#5 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=342: vxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=342: vxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=342: vxxxxx#5 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=343: sxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=343: sxxxxx#5 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=343: sxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=343: sxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=343: sxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=343: sxxxxx#5 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=344: sxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=344: sxxxxx#5 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=344: sxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=344: sxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=344: sxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=344: sxxxxx#5 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=345: oxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=345: oxxxxx#5 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=345: oxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=345: oxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=345: oxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=345: oxxxxx#5 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=346: oxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=346: oxxxxx#5 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=346: oxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=346: oxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=346: oxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=346: oxxxxx#5 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=347: opzxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=347: opzxxx#5 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=347: opzxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=347: opzxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=347: opzxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=347: opzxxx#5 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=348: ixxxxx#6 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=348: ixxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=348: ixxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=348: ixxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=348: ixxxxx#6 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=348: ixxxxx#6 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=349: ixxxxx#6 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=349: ixxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=349: ixxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=349: ixxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=349: ixxxxx#6 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=349: ixxxxx#6 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=350: imzxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=350: imzxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=350: imzxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=350: imzxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=350: imzxxx#6 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=350: imzxxx#6 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=351: vxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=351: vxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=351: vxxxxx#6 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=351: vxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=351: vxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=351: vxxxxx#6 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=352: vxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=352: vxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=352: vxxxxx#6 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=352: vxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=352: vxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=352: vxxxxx#6 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=353: sxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=353: sxxxxx#6 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=353: sxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=353: sxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=353: sxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=353: sxxxxx#6 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=354: sxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=354: sxxxxx#6 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=354: sxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=354: sxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=354: sxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=354: sxxxxx#6 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=355: oxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=355: oxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=355: oxxxxx#6 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=355: oxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=355: oxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=355: oxxxxx#6 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=356: oxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=356: oxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=356: oxxxxx#6 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=356: oxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=356: oxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=356: oxxxxx#6 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=357: omzxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=357: omzxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=357: omzxxx#6 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=357: omzxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=357: omzxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=357: omzxxx#6 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=358: ixxxxx#7 nsp=1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=358: ixxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=358: ixxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=358: ixxxxx#7 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=358: ixxxxx#7 nsp=1 mass=0 + 1.341640786499874e+01, 1.788854381999831e+01 } ); // itest=358: ixxxxx#7 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=359: ixxxxx#7 nsp=1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=359: ixxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=359: ixxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=359: ixxxxx#7 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=359: ixxxxx#7 nsp=1 mass=0 + 1.341640786499874e+01, 1.788854381999831e+01 } ); // itest=359: ixxxxx#7 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=360: ixzxxx#7 nsp=1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=360: ixzxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=360: ixzxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=360: ixzxxx#7 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=360: ixzxxx#7 nsp=1 mass=0 + 1.341640786499874e+01, 1.788854381999832e+01 } ); // itest=360: ixzxxx#7 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=361: vxxxxx#7 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=361: vxxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=361: vxxxxx#7 nsp=1 mass=0 + -0.000000000000000e+00, -5.656854249492381e-01, // itest=361: vxxxxx#7 nsp=1 mass=0 + -0.000000000000000e+00, 4.242640687119285e-01, // itest=361: vxxxxx#7 nsp=1 mass=0 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=361: vxxxxx#7 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=362: vxxxxx#7 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=362: vxxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=362: vxxxxx#7 nsp=1 mass=0 + -0.000000000000000e+00, -5.656854249492381e-01, // itest=362: vxxxxx#7 nsp=1 mass=0 + -0.000000000000000e+00, 4.242640687119285e-01, // itest=362: vxxxxx#7 nsp=1 mass=0 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=362: vxxxxx#7 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=363: sxxxxx#7 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=363: sxxxxx#7 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=363: sxxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=363: sxxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=363: sxxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=363: sxxxxx#7 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=364: sxxxxx#7 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=364: sxxxxx#7 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=364: sxxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=364: sxxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=364: sxxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=364: sxxxxx#7 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=365: oxxxxx#7 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=365: oxxxxx#7 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=365: oxxxxx#7 nsp=1 mass=0 + 1.341640786499874e+01, -1.788854381999831e+01, // itest=365: oxxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=365: oxxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=365: oxxxxx#7 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=366: oxxxxx#7 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=366: oxxxxx#7 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=366: oxxxxx#7 nsp=1 mass=0 + 1.341640786499874e+01, -1.788854381999831e+01, // itest=366: oxxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=366: oxxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=366: oxxxxx#7 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=367: oxzxxx#7 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=367: oxzxxx#7 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=367: oxzxxx#7 nsp=1 mass=0 + 1.341640786499874e+01, -1.788854381999832e+01, // itest=367: oxzxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=367: oxzxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=367: oxzxxx#7 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=368: ixxxxx#8 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=368: ixxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=368: ixxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=368: ixxxxx#8 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=368: ixxxxx#8 nsp=1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=368: ixxxxx#8 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=369: ixxxxx#8 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=369: ixxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=369: ixxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=369: ixxxxx#8 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=369: ixxxxx#8 nsp=1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=369: ixxxxx#8 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=370: ixzxxx#8 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=370: ixzxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=370: ixzxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=370: ixzxxx#8 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=370: ixzxxx#8 nsp=1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=370: ixzxxx#8 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=371: vxxxxx#8 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=371: vxxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=371: vxxxxx#8 nsp=1 mass=0 + -3.394112549695428e-01, -5.656854249492381e-01, // itest=371: vxxxxx#8 nsp=1 mass=0 + -4.525483399593904e-01, 4.242640687119285e-01, // itest=371: vxxxxx#8 nsp=1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=371: vxxxxx#8 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=372: vxxxxx#8 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=372: vxxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=372: vxxxxx#8 nsp=1 mass=0 + -3.394112549695428e-01, -5.656854249492381e-01, // itest=372: vxxxxx#8 nsp=1 mass=0 + -4.525483399593904e-01, 4.242640687119285e-01, // itest=372: vxxxxx#8 nsp=1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=372: vxxxxx#8 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=373: sxxxxx#8 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=373: sxxxxx#8 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=373: sxxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=373: sxxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=373: sxxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=373: sxxxxx#8 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=374: sxxxxx#8 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=374: sxxxxx#8 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=374: sxxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=374: sxxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=374: sxxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=374: sxxxxx#8 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=375: oxxxxx#8 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=375: oxxxxx#8 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=375: oxxxxx#8 nsp=1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=375: oxxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=375: oxxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=375: oxxxxx#8 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=376: oxxxxx#8 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=376: oxxxxx#8 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=376: oxxxxx#8 nsp=1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=376: oxxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=376: oxxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=376: oxxxxx#8 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=377: oxzxxx#8 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=377: oxzxxx#8 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=377: oxzxxx#8 nsp=1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=377: oxzxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=377: oxzxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=377: oxzxxx#8 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=378: ixxxxx#9 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=378: ixxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=378: ixxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=378: ixxxxx#9 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=378: ixxxxx#9 nsp=1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01 } ); // itest=378: ixxxxx#9 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=379: ixxxxx#9 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=379: ixxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=379: ixxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=379: ixxxxx#9 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=379: ixxxxx#9 nsp=1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01 } ); // itest=379: ixxxxx#9 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=380: ixzxxx#9 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=380: ixzxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=380: ixzxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=380: ixzxxx#9 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=380: ixzxxx#9 nsp=1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01 } ); // itest=380: ixzxxx#9 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=381: vxxxxx#9 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=381: vxxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=381: vxxxxx#9 nsp=1 mass=0 + 3.394112549695428e-01, -5.656854249492381e-01, // itest=381: vxxxxx#9 nsp=1 mass=0 + 4.525483399593904e-01, 4.242640687119285e-01, // itest=381: vxxxxx#9 nsp=1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=381: vxxxxx#9 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=382: vxxxxx#9 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=382: vxxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=382: vxxxxx#9 nsp=1 mass=0 + 3.394112549695428e-01, -5.656854249492381e-01, // itest=382: vxxxxx#9 nsp=1 mass=0 + 4.525483399593904e-01, 4.242640687119285e-01, // itest=382: vxxxxx#9 nsp=1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=382: vxxxxx#9 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=383: sxxxxx#9 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=383: sxxxxx#9 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=383: sxxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=383: sxxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=383: sxxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=383: sxxxxx#9 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=384: sxxxxx#9 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=384: sxxxxx#9 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=384: sxxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=384: sxxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=384: sxxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=384: sxxxxx#9 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=385: oxxxxx#9 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=385: oxxxxx#9 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=385: oxxxxx#9 nsp=1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=385: oxxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=385: oxxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=385: oxxxxx#9 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=386: oxxxxx#9 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=386: oxxxxx#9 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=386: oxxxxx#9 nsp=1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=386: oxxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=386: oxxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=386: oxxxxx#9 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=387: oxzxxx#9 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=387: oxzxxx#9 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=387: oxzxxx#9 nsp=1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=387: oxzxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=387: oxzxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=387: oxzxxx#9 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=388: ixxxxx#10 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=388: ixxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=388: ixxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=388: ixxxxx#10 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=388: ixxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=388: ixxxxx#10 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=389: ixxxxx#10 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=389: ixxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=389: ixxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=389: ixxxxx#10 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=389: ixxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=389: ixxxxx#10 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=390: ipzxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=390: ipzxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=390: ipzxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=390: ipzxxx#10 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=390: ipzxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=390: ipzxxx#10 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=391: vxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=391: vxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=391: vxxxxx#10 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=391: vxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=391: vxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=391: vxxxxx#10 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=392: vxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=392: vxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=392: vxxxxx#10 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=392: vxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=392: vxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=392: vxxxxx#10 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=393: sxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=393: sxxxxx#10 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=393: sxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=393: sxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=393: sxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=393: sxxxxx#10 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=394: sxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=394: sxxxxx#10 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=394: sxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=394: sxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=394: sxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=394: sxxxxx#10 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=395: oxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=395: oxxxxx#10 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=395: oxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=395: oxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=395: oxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=395: oxxxxx#10 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=396: oxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=396: oxxxxx#10 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=396: oxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=396: oxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=396: oxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=396: oxxxxx#10 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=397: opzxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=397: opzxxx#10 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=397: opzxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=397: opzxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=397: opzxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=397: opzxxx#10 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=398: ixxxxx#11 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=398: ixxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=398: ixxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=398: ixxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=398: ixxxxx#11 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=398: ixxxxx#11 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=399: ixxxxx#11 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=399: ixxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=399: ixxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=399: ixxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=399: ixxxxx#11 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=399: ixxxxx#11 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=400: imzxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=400: imzxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=400: imzxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=400: imzxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=400: imzxxx#11 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=400: imzxxx#11 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=401: vxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=401: vxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=401: vxxxxx#11 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=401: vxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=401: vxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=401: vxxxxx#11 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=402: vxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=402: vxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=402: vxxxxx#11 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=402: vxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=402: vxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=402: vxxxxx#11 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=403: sxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=403: sxxxxx#11 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=403: sxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=403: sxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=403: sxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=403: sxxxxx#11 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=404: sxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=404: sxxxxx#11 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=404: sxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=404: sxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=404: sxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=404: sxxxxx#11 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=405: oxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=405: oxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=405: oxxxxx#11 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=405: oxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=405: oxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=405: oxxxxx#11 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=406: oxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=406: oxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=406: oxxxxx#11 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=406: oxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=406: oxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=406: oxxxxx#11 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=407: omzxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=407: omzxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=407: omzxxx#11 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=407: omzxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=407: omzxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=407: omzxxx#11 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=408: ixxxxx#12 nsp=1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=408: ixxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=408: ixxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=408: ixxxxx#12 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=408: ixxxxx#12 nsp=1 mass=0 + 1.341640786499874e+01, 1.788854381999831e+01 } ); // itest=408: ixxxxx#12 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=409: ixxxxx#12 nsp=1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=409: ixxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=409: ixxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=409: ixxxxx#12 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=409: ixxxxx#12 nsp=1 mass=0 + 1.341640786499874e+01, 1.788854381999831e+01 } ); // itest=409: ixxxxx#12 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=410: ixzxxx#12 nsp=1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=410: ixzxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=410: ixzxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=410: ixzxxx#12 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=410: ixzxxx#12 nsp=1 mass=0 + 1.341640786499874e+01, 1.788854381999832e+01 } ); // itest=410: ixzxxx#12 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=411: vxxxxx#12 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=411: vxxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=411: vxxxxx#12 nsp=1 mass=0 + -0.000000000000000e+00, -5.656854249492381e-01, // itest=411: vxxxxx#12 nsp=1 mass=0 + -0.000000000000000e+00, 4.242640687119285e-01, // itest=411: vxxxxx#12 nsp=1 mass=0 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=411: vxxxxx#12 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=412: vxxxxx#12 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=412: vxxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=412: vxxxxx#12 nsp=1 mass=0 + -0.000000000000000e+00, -5.656854249492381e-01, // itest=412: vxxxxx#12 nsp=1 mass=0 + -0.000000000000000e+00, 4.242640687119285e-01, // itest=412: vxxxxx#12 nsp=1 mass=0 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=412: vxxxxx#12 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=413: sxxxxx#12 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=413: sxxxxx#12 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=413: sxxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=413: sxxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=413: sxxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=413: sxxxxx#12 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=414: sxxxxx#12 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=414: sxxxxx#12 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=414: sxxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=414: sxxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=414: sxxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=414: sxxxxx#12 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=415: oxxxxx#12 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=415: oxxxxx#12 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=415: oxxxxx#12 nsp=1 mass=0 + 1.341640786499874e+01, -1.788854381999831e+01, // itest=415: oxxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=415: oxxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=415: oxxxxx#12 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=416: oxxxxx#12 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=416: oxxxxx#12 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=416: oxxxxx#12 nsp=1 mass=0 + 1.341640786499874e+01, -1.788854381999831e+01, // itest=416: oxxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=416: oxxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=416: oxxxxx#12 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=417: oxzxxx#12 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=417: oxzxxx#12 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=417: oxzxxx#12 nsp=1 mass=0 + 1.341640786499874e+01, -1.788854381999832e+01, // itest=417: oxzxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=417: oxzxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=417: oxzxxx#12 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=418: ixxxxx#13 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=418: ixxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=418: ixxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=418: ixxxxx#13 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=418: ixxxxx#13 nsp=1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=418: ixxxxx#13 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=419: ixxxxx#13 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=419: ixxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=419: ixxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=419: ixxxxx#13 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=419: ixxxxx#13 nsp=1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=419: ixxxxx#13 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=420: ixzxxx#13 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=420: ixzxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=420: ixzxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=420: ixzxxx#13 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=420: ixzxxx#13 nsp=1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=420: ixzxxx#13 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=421: vxxxxx#13 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=421: vxxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=421: vxxxxx#13 nsp=1 mass=0 + -3.394112549695428e-01, -5.656854249492381e-01, // itest=421: vxxxxx#13 nsp=1 mass=0 + -4.525483399593904e-01, 4.242640687119285e-01, // itest=421: vxxxxx#13 nsp=1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=421: vxxxxx#13 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=422: vxxxxx#13 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=422: vxxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=422: vxxxxx#13 nsp=1 mass=0 + -3.394112549695428e-01, -5.656854249492381e-01, // itest=422: vxxxxx#13 nsp=1 mass=0 + -4.525483399593904e-01, 4.242640687119285e-01, // itest=422: vxxxxx#13 nsp=1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=422: vxxxxx#13 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=423: sxxxxx#13 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=423: sxxxxx#13 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=423: sxxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=423: sxxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=423: sxxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=423: sxxxxx#13 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=424: sxxxxx#13 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=424: sxxxxx#13 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=424: sxxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=424: sxxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=424: sxxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=424: sxxxxx#13 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=425: oxxxxx#13 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=425: oxxxxx#13 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=425: oxxxxx#13 nsp=1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=425: oxxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=425: oxxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=425: oxxxxx#13 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=426: oxxxxx#13 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=426: oxxxxx#13 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=426: oxxxxx#13 nsp=1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=426: oxxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=426: oxxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=426: oxxxxx#13 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=427: oxzxxx#13 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=427: oxzxxx#13 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=427: oxzxxx#13 nsp=1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=427: oxzxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=427: oxzxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=427: oxzxxx#13 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=428: ixxxxx#14 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=428: ixxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=428: ixxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=428: ixxxxx#14 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=428: ixxxxx#14 nsp=1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01 } ); // itest=428: ixxxxx#14 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=429: ixxxxx#14 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=429: ixxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=429: ixxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=429: ixxxxx#14 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=429: ixxxxx#14 nsp=1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01 } ); // itest=429: ixxxxx#14 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=430: ixzxxx#14 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=430: ixzxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=430: ixzxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=430: ixzxxx#14 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=430: ixzxxx#14 nsp=1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01 } ); // itest=430: ixzxxx#14 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=431: vxxxxx#14 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=431: vxxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=431: vxxxxx#14 nsp=1 mass=0 + 3.394112549695428e-01, -5.656854249492381e-01, // itest=431: vxxxxx#14 nsp=1 mass=0 + 4.525483399593904e-01, 4.242640687119285e-01, // itest=431: vxxxxx#14 nsp=1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=431: vxxxxx#14 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=432: vxxxxx#14 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=432: vxxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=432: vxxxxx#14 nsp=1 mass=0 + 3.394112549695428e-01, -5.656854249492381e-01, // itest=432: vxxxxx#14 nsp=1 mass=0 + 4.525483399593904e-01, 4.242640687119285e-01, // itest=432: vxxxxx#14 nsp=1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=432: vxxxxx#14 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=433: sxxxxx#14 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=433: sxxxxx#14 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=433: sxxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=433: sxxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=433: sxxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=433: sxxxxx#14 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=434: sxxxxx#14 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=434: sxxxxx#14 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=434: sxxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=434: sxxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=434: sxxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=434: sxxxxx#14 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=435: oxxxxx#14 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=435: oxxxxx#14 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=435: oxxxxx#14 nsp=1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=435: oxxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=435: oxxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=435: oxxxxx#14 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=436: oxxxxx#14 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=436: oxxxxx#14 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=436: oxxxxx#14 nsp=1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=436: oxxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=436: oxxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=436: oxxxxx#14 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=437: oxzxxx#14 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=437: oxzxxx#14 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=437: oxzxxx#14 nsp=1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=437: oxzxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=437: oxzxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=437: oxzxxx#14 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=438: ixxxxx#15 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=438: ixxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=438: ixxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=438: ixxxxx#15 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=438: ixxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=438: ixxxxx#15 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=439: ixxxxx#15 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=439: ixxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=439: ixxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=439: ixxxxx#15 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=439: ixxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=439: ixxxxx#15 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=440: ipzxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=440: ipzxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=440: ipzxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=440: ipzxxx#15 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=440: ipzxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=440: ipzxxx#15 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=441: vxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=441: vxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=441: vxxxxx#15 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=441: vxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=441: vxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=441: vxxxxx#15 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=442: vxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=442: vxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=442: vxxxxx#15 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=442: vxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=442: vxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=442: vxxxxx#15 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=443: sxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=443: sxxxxx#15 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=443: sxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=443: sxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=443: sxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=443: sxxxxx#15 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=444: sxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=444: sxxxxx#15 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=444: sxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=444: sxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=444: sxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=444: sxxxxx#15 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=445: oxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=445: oxxxxx#15 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=445: oxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=445: oxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=445: oxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=445: oxxxxx#15 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=446: oxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=446: oxxxxx#15 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=446: oxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=446: oxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=446: oxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=446: oxxxxx#15 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=447: opzxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=447: opzxxx#15 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=447: opzxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=447: opzxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=447: opzxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=447: opzxxx#15 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=448: ixxxxx#16 nsp=1 mass=500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=448: ixxxxx#16 nsp=1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=448: ixxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=448: ixxxxx#16 nsp=1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=448: ixxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=448: ixxxxx#16 nsp=1 mass=500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=449: ixxxxx#16 nsp=1 mass=-500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=449: ixxxxx#16 nsp=1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=449: ixxxxx#16 nsp=1 mass=-500 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=449: ixxxxx#16 nsp=1 mass=-500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=449: ixxxxx#16 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=449: ixxxxx#16 nsp=1 mass=-500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=450: vxxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=450: vxxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=450: vxxxxx#16 nsp=1 mass=500 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=450: vxxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=450: vxxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=450: vxxxxx#16 nsp=1 mass=500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=451: vxxxxx#16 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=451: vxxxxx#16 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=451: vxxxxx#16 nsp=1 mass=-500 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=451: vxxxxx#16 nsp=1 mass=-500 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=451: vxxxxx#16 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=451: vxxxxx#16 nsp=1 mass=-500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=452: sxxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=452: sxxxxx#16 nsp=1 mass=500 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=452: sxxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=452: sxxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=452: sxxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=452: sxxxxx#16 nsp=1 mass=500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=453: sxxxxx#16 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=453: sxxxxx#16 nsp=1 mass=-500 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=453: sxxxxx#16 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=453: sxxxxx#16 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=453: sxxxxx#16 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=453: sxxxxx#16 nsp=1 mass=-500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=454: oxxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=454: oxxxxx#16 nsp=1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=454: oxxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=454: oxxxxx#16 nsp=1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=454: oxxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=454: oxxxxx#16 nsp=1 mass=500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=455: oxxxxx#16 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=455: oxxxxx#16 nsp=1 mass=-500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=455: oxxxxx#16 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=455: oxxxxx#16 nsp=1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=455: oxxxxx#16 nsp=1 mass=-500 + -0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=455: oxxxxx#16 nsp=1 mass=-500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=456: ixxxxx#17 nsp=1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=456: ixxxxx#17 nsp=1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=456: ixxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=456: ixxxxx#17 nsp=1 mass=400 + 2.828427124746190e+01, 0.000000000000000e+00, // itest=456: ixxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=456: ixxxxx#17 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=457: ixxxxx#17 nsp=1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=457: ixxxxx#17 nsp=1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=457: ixxxxx#17 nsp=1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=457: ixxxxx#17 nsp=1 mass=-400 + 2.828427124746190e+01, 0.000000000000000e+00, // itest=457: ixxxxx#17 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=457: ixxxxx#17 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=458: vxxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=458: vxxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=458: vxxxxx#17 nsp=1 mass=400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=458: vxxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=458: vxxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=458: vxxxxx#17 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=459: vxxxxx#17 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=459: vxxxxx#17 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=459: vxxxxx#17 nsp=1 mass=-400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=459: vxxxxx#17 nsp=1 mass=-400 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=459: vxxxxx#17 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=459: vxxxxx#17 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=460: sxxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=460: sxxxxx#17 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=460: sxxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=460: sxxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=460: sxxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=460: sxxxxx#17 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=461: sxxxxx#17 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=461: sxxxxx#17 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=461: sxxxxx#17 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=461: sxxxxx#17 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=461: sxxxxx#17 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=461: sxxxxx#17 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=462: oxxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=462: oxxxxx#17 nsp=1 mass=400 + 2.828427124746190e+01, 0.000000000000000e+00, // itest=462: oxxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=462: oxxxxx#17 nsp=1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=462: oxxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=462: oxxxxx#17 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=463: oxxxxx#17 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=463: oxxxxx#17 nsp=1 mass=-400 + 2.828427124746190e+01, 0.000000000000000e+00, // itest=463: oxxxxx#17 nsp=1 mass=-400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=463: oxxxxx#17 nsp=1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=463: oxxxxx#17 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=463: oxxxxx#17 nsp=1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=464: ixxxxx#18 nsp=1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=464: ixxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=464: ixxxxx#18 nsp=1 mass=400 + -1.414213562373095e+01, 0.000000000000000e+00, // itest=464: ixxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=464: ixxxxx#18 nsp=1 mass=400 + -2.828427124746190e+01, 0.000000000000000e+00 } ); // itest=464: ixxxxx#18 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=465: ixxxxx#18 nsp=1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=465: ixxxxx#18 nsp=1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=465: ixxxxx#18 nsp=1 mass=-400 + 1.414213562373095e+01, -0.000000000000000e+00, // itest=465: ixxxxx#18 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=465: ixxxxx#18 nsp=1 mass=-400 + -2.828427124746190e+01, 0.000000000000000e+00 } ); // itest=465: ixxxxx#18 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=466: vxxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=466: vxxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=466: vxxxxx#18 nsp=1 mass=400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=466: vxxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=466: vxxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=466: vxxxxx#18 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=467: vxxxxx#18 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=467: vxxxxx#18 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=467: vxxxxx#18 nsp=1 mass=-400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=467: vxxxxx#18 nsp=1 mass=-400 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=467: vxxxxx#18 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=467: vxxxxx#18 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=468: sxxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=468: sxxxxx#18 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=468: sxxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=468: sxxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=468: sxxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=468: sxxxxx#18 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=469: sxxxxx#18 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=469: sxxxxx#18 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=469: sxxxxx#18 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=469: sxxxxx#18 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=469: sxxxxx#18 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=469: sxxxxx#18 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=470: oxxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=470: oxxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=470: oxxxxx#18 nsp=1 mass=400 + -2.828427124746190e+01, 0.000000000000000e+00, // itest=470: oxxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=470: oxxxxx#18 nsp=1 mass=400 + -1.414213562373095e+01, 0.000000000000000e+00 } ); // itest=470: oxxxxx#18 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=471: oxxxxx#18 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=471: oxxxxx#18 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=471: oxxxxx#18 nsp=1 mass=-400 + -2.828427124746190e+01, 0.000000000000000e+00, // itest=471: oxxxxx#18 nsp=1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=471: oxxxxx#18 nsp=1 mass=-400 + 1.414213562373095e+01, -0.000000000000000e+00 } ); // itest=471: oxxxxx#18 nsp=1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=472: ixxxxx#19 nsp=1 mass=400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=472: ixxxxx#19 nsp=1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=472: ixxxxx#19 nsp=1 mass=400 + 5.999999999999999e+00, 7.999999999999999e+00, // itest=472: ixxxxx#19 nsp=1 mass=400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=472: ixxxxx#19 nsp=1 mass=400 + 1.200000000000000e+01, 1.600000000000000e+01 } ); // itest=472: ixxxxx#19 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=473: ixxxxx#19 nsp=1 mass=-400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=473: ixxxxx#19 nsp=1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00, // itest=473: ixxxxx#19 nsp=1 mass=-400 + -5.999999999999999e+00, -7.999999999999999e+00, // itest=473: ixxxxx#19 nsp=1 mass=-400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=473: ixxxxx#19 nsp=1 mass=-400 + 1.200000000000000e+01, 1.600000000000000e+01 } ); // itest=473: ixxxxx#19 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=474: vxxxxx#19 nsp=1 mass=400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=474: vxxxxx#19 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=474: vxxxxx#19 nsp=1 mass=400 + 0.000000000000000e+00, -5.656854249492381e-01, // itest=474: vxxxxx#19 nsp=1 mass=400 + 0.000000000000000e+00, 4.242640687119285e-01, // itest=474: vxxxxx#19 nsp=1 mass=400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=474: vxxxxx#19 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=475: vxxxxx#19 nsp=1 mass=-400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=475: vxxxxx#19 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=475: vxxxxx#19 nsp=1 mass=-400 + -0.000000000000000e+00, -5.656854249492381e-01, // itest=475: vxxxxx#19 nsp=1 mass=-400 + -0.000000000000000e+00, 4.242640687119285e-01, // itest=475: vxxxxx#19 nsp=1 mass=-400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=475: vxxxxx#19 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=476: sxxxxx#19 nsp=1 mass=400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=476: sxxxxx#19 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=476: sxxxxx#19 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=476: sxxxxx#19 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=476: sxxxxx#19 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=476: sxxxxx#19 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=477: sxxxxx#19 nsp=1 mass=-400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=477: sxxxxx#19 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=477: sxxxxx#19 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=477: sxxxxx#19 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=477: sxxxxx#19 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=477: sxxxxx#19 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=478: oxxxxx#19 nsp=1 mass=400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=478: oxxxxx#19 nsp=1 mass=400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=478: oxxxxx#19 nsp=1 mass=400 + 1.200000000000000e+01, -1.600000000000000e+01, // itest=478: oxxxxx#19 nsp=1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=478: oxxxxx#19 nsp=1 mass=400 + 5.999999999999999e+00, -7.999999999999999e+00 } ); // itest=478: oxxxxx#19 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=479: oxxxxx#19 nsp=1 mass=-400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=479: oxxxxx#19 nsp=1 mass=-400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=479: oxxxxx#19 nsp=1 mass=-400 + 1.200000000000000e+01, -1.600000000000000e+01, // itest=479: oxxxxx#19 nsp=1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00, // itest=479: oxxxxx#19 nsp=1 mass=-400 + -5.999999999999999e+00, 7.999999999999999e+00 } ); // itest=479: oxxxxx#19 nsp=1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=480: ixxxxx#20 nsp=1 mass=400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=480: ixxxxx#20 nsp=1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=480: ixxxxx#20 nsp=1 mass=400 + -7.999999999999999e+00, -5.999999999999999e+00, // itest=480: ixxxxx#20 nsp=1 mass=400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=480: ixxxxx#20 nsp=1 mass=400 + -1.600000000000000e+01, -1.200000000000000e+01 } ); // itest=480: ixxxxx#20 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=481: ixxxxx#20 nsp=1 mass=-400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=481: ixxxxx#20 nsp=1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00, // itest=481: ixxxxx#20 nsp=1 mass=-400 + 7.999999999999999e+00, 5.999999999999999e+00, // itest=481: ixxxxx#20 nsp=1 mass=-400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=481: ixxxxx#20 nsp=1 mass=-400 + -1.600000000000000e+01, -1.200000000000000e+01 } ); // itest=481: ixxxxx#20 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=482: vxxxxx#20 nsp=1 mass=400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=482: vxxxxx#20 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=482: vxxxxx#20 nsp=1 mass=400 + 0.000000000000000e+00, 4.242640687119285e-01, // itest=482: vxxxxx#20 nsp=1 mass=400 + 0.000000000000000e+00, -5.656854249492381e-01, // itest=482: vxxxxx#20 nsp=1 mass=400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=482: vxxxxx#20 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=483: vxxxxx#20 nsp=1 mass=-400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=483: vxxxxx#20 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=483: vxxxxx#20 nsp=1 mass=-400 + 0.000000000000000e+00, 4.242640687119285e-01, // itest=483: vxxxxx#20 nsp=1 mass=-400 + 0.000000000000000e+00, -5.656854249492381e-01, // itest=483: vxxxxx#20 nsp=1 mass=-400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=483: vxxxxx#20 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=484: sxxxxx#20 nsp=1 mass=400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=484: sxxxxx#20 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=484: sxxxxx#20 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=484: sxxxxx#20 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=484: sxxxxx#20 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=484: sxxxxx#20 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=485: sxxxxx#20 nsp=1 mass=-400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=485: sxxxxx#20 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=485: sxxxxx#20 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=485: sxxxxx#20 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=485: sxxxxx#20 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=485: sxxxxx#20 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=486: oxxxxx#20 nsp=1 mass=400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=486: oxxxxx#20 nsp=1 mass=400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=486: oxxxxx#20 nsp=1 mass=400 + -1.600000000000000e+01, 1.200000000000000e+01, // itest=486: oxxxxx#20 nsp=1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=486: oxxxxx#20 nsp=1 mass=400 + -7.999999999999999e+00, 5.999999999999999e+00 } ); // itest=486: oxxxxx#20 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=487: oxxxxx#20 nsp=1 mass=-400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=487: oxxxxx#20 nsp=1 mass=-400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=487: oxxxxx#20 nsp=1 mass=-400 + -1.600000000000000e+01, 1.200000000000000e+01, // itest=487: oxxxxx#20 nsp=1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00, // itest=487: oxxxxx#20 nsp=1 mass=-400 + 7.999999999999999e+00, -5.999999999999999e+00 } ); // itest=487: oxxxxx#20 nsp=1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=488: ixxxxx#21 nsp=1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=488: ixxxxx#21 nsp=1 mass=400 + 1.216552506059644e+01, 0.000000000000000e+00, // itest=488: ixxxxx#21 nsp=1 mass=400 + 4.931969619160719e+00, 5.260767593771432e+00, // itest=488: ixxxxx#21 nsp=1 mass=400 + 2.433105012119288e+01, 0.000000000000000e+00, // itest=488: ixxxxx#21 nsp=1 mass=400 + 9.863939238321439e+00, 1.052153518754287e+01 } ); // itest=488: ixxxxx#21 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=489: ixxxxx#21 nsp=1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=489: ixxxxx#21 nsp=1 mass=-400 + -1.216552506059644e+01, -0.000000000000000e+00, // itest=489: ixxxxx#21 nsp=1 mass=-400 + -4.931969619160719e+00, -5.260767593771432e+00, // itest=489: ixxxxx#21 nsp=1 mass=-400 + 2.433105012119288e+01, 0.000000000000000e+00, // itest=489: ixxxxx#21 nsp=1 mass=-400 + 9.863939238321439e+00, 1.052153518754287e+01 } ); // itest=489: ixxxxx#21 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=490: vxxxxx#21 nsp=1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=490: vxxxxx#21 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=490: vxxxxx#21 nsp=1 mass=400 + -2.321373168788980e-01, -5.158607041753289e-01, // itest=490: vxxxxx#21 nsp=1 mass=400 + -2.476131380041579e-01, 4.836194101643708e-01, // itest=490: vxxxxx#21 nsp=1 mass=400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=490: vxxxxx#21 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=491: vxxxxx#21 nsp=1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=491: vxxxxx#21 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=491: vxxxxx#21 nsp=1 mass=-400 + -2.321373168788980e-01, -5.158607041753289e-01, // itest=491: vxxxxx#21 nsp=1 mass=-400 + -2.476131380041579e-01, 4.836194101643708e-01, // itest=491: vxxxxx#21 nsp=1 mass=-400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=491: vxxxxx#21 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=492: sxxxxx#21 nsp=1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=492: sxxxxx#21 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=492: sxxxxx#21 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=492: sxxxxx#21 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=492: sxxxxx#21 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=492: sxxxxx#21 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=493: sxxxxx#21 nsp=1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=493: sxxxxx#21 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=493: sxxxxx#21 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=493: sxxxxx#21 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=493: sxxxxx#21 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=493: sxxxxx#21 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=494: oxxxxx#21 nsp=1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=494: oxxxxx#21 nsp=1 mass=400 + 2.433105012119288e+01, 0.000000000000000e+00, // itest=494: oxxxxx#21 nsp=1 mass=400 + 9.863939238321439e+00, -1.052153518754287e+01, // itest=494: oxxxxx#21 nsp=1 mass=400 + 1.216552506059644e+01, 0.000000000000000e+00, // itest=494: oxxxxx#21 nsp=1 mass=400 + 4.931969619160719e+00, -5.260767593771432e+00 } ); // itest=494: oxxxxx#21 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=495: oxxxxx#21 nsp=1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=495: oxxxxx#21 nsp=1 mass=-400 + 2.433105012119288e+01, 0.000000000000000e+00, // itest=495: oxxxxx#21 nsp=1 mass=-400 + 9.863939238321439e+00, -1.052153518754287e+01, // itest=495: oxxxxx#21 nsp=1 mass=-400 + -1.216552506059644e+01, -0.000000000000000e+00, // itest=495: oxxxxx#21 nsp=1 mass=-400 + -4.931969619160719e+00, 5.260767593771432e+00 } ); // itest=495: oxxxxx#21 nsp=1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=496: ixxxxx#22 nsp=1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=496: ixxxxx#22 nsp=1 mass=400 + 7.211102550927978e+00, 0.000000000000000e+00, // itest=496: ixxxxx#22 nsp=1 mass=400 + 8.320502943378436e+00, 8.875203139603666e+00, // itest=496: ixxxxx#22 nsp=1 mass=400 + 1.442220510185596e+01, 0.000000000000000e+00, // itest=496: ixxxxx#22 nsp=1 mass=400 + 1.664100588675688e+01, 1.775040627920733e+01 } ); // itest=496: ixxxxx#22 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=497: ixxxxx#22 nsp=1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=497: ixxxxx#22 nsp=1 mass=-400 + -7.211102550927978e+00, -0.000000000000000e+00, // itest=497: ixxxxx#22 nsp=1 mass=-400 + -8.320502943378436e+00, -8.875203139603666e+00, // itest=497: ixxxxx#22 nsp=1 mass=-400 + 1.442220510185596e+01, 0.000000000000000e+00, // itest=497: ixxxxx#22 nsp=1 mass=-400 + 1.664100588675688e+01, 1.775040627920733e+01 } ); // itest=497: ixxxxx#22 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=498: vxxxxx#22 nsp=1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=498: vxxxxx#22 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=498: vxxxxx#22 nsp=1 mass=400 + 2.321373168788980e-01, -5.158607041753289e-01, // itest=498: vxxxxx#22 nsp=1 mass=400 + 2.476131380041579e-01, 4.836194101643708e-01, // itest=498: vxxxxx#22 nsp=1 mass=400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=498: vxxxxx#22 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=499: vxxxxx#22 nsp=1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=499: vxxxxx#22 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=499: vxxxxx#22 nsp=1 mass=-400 + 2.321373168788980e-01, -5.158607041753289e-01, // itest=499: vxxxxx#22 nsp=1 mass=-400 + 2.476131380041579e-01, 4.836194101643708e-01, // itest=499: vxxxxx#22 nsp=1 mass=-400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=499: vxxxxx#22 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=500: sxxxxx#22 nsp=1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=500: sxxxxx#22 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=500: sxxxxx#22 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=500: sxxxxx#22 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=500: sxxxxx#22 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=500: sxxxxx#22 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=501: sxxxxx#22 nsp=1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=501: sxxxxx#22 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=501: sxxxxx#22 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=501: sxxxxx#22 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=501: sxxxxx#22 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=501: sxxxxx#22 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=502: oxxxxx#22 nsp=1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=502: oxxxxx#22 nsp=1 mass=400 + 1.442220510185596e+01, 0.000000000000000e+00, // itest=502: oxxxxx#22 nsp=1 mass=400 + 1.664100588675688e+01, -1.775040627920733e+01, // itest=502: oxxxxx#22 nsp=1 mass=400 + 7.211102550927978e+00, 0.000000000000000e+00, // itest=502: oxxxxx#22 nsp=1 mass=400 + 8.320502943378436e+00, -8.875203139603666e+00 } ); // itest=502: oxxxxx#22 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=503: oxxxxx#22 nsp=1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=503: oxxxxx#22 nsp=1 mass=-400 + 1.442220510185596e+01, 0.000000000000000e+00, // itest=503: oxxxxx#22 nsp=1 mass=-400 + 1.664100588675688e+01, -1.775040627920733e+01, // itest=503: oxxxxx#22 nsp=1 mass=-400 + -7.211102550927978e+00, -0.000000000000000e+00, // itest=503: oxxxxx#22 nsp=1 mass=-400 + -8.320502943378436e+00, 8.875203139603666e+00 } ); // itest=503: oxxxxx#22 nsp=1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=504: ixxxxx#23 nsp=1 mass=500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=504: ixxxxx#23 nsp=1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=504: ixxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=504: ixxxxx#23 nsp=1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=504: ixxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=504: ixxxxx#23 nsp=1 mass=500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=505: ixxxxx#23 nsp=1 mass=-500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=505: ixxxxx#23 nsp=1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=505: ixxxxx#23 nsp=1 mass=-500 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=505: ixxxxx#23 nsp=1 mass=-500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=505: ixxxxx#23 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=505: ixxxxx#23 nsp=1 mass=-500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=506: vxxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=506: vxxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=506: vxxxxx#23 nsp=1 mass=500 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=506: vxxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=506: vxxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=506: vxxxxx#23 nsp=1 mass=500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=507: vxxxxx#23 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=507: vxxxxx#23 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=507: vxxxxx#23 nsp=1 mass=-500 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=507: vxxxxx#23 nsp=1 mass=-500 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=507: vxxxxx#23 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=507: vxxxxx#23 nsp=1 mass=-500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=508: sxxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=508: sxxxxx#23 nsp=1 mass=500 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=508: sxxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=508: sxxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=508: sxxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=508: sxxxxx#23 nsp=1 mass=500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=509: sxxxxx#23 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=509: sxxxxx#23 nsp=1 mass=-500 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=509: sxxxxx#23 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=509: sxxxxx#23 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=509: sxxxxx#23 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=509: sxxxxx#23 nsp=1 mass=-500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=510: oxxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=510: oxxxxx#23 nsp=1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=510: oxxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=510: oxxxxx#23 nsp=1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=510: oxxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=510: oxxxxx#23 nsp=1 mass=500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=511: oxxxxx#23 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=511: oxxxxx#23 nsp=1 mass=-500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=511: oxxxxx#23 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=511: oxxxxx#23 nsp=1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=511: oxxxxx#23 nsp=1 mass=-500 + -0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=511: oxxxxx#23 nsp=1 mass=-500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=512: ixxxxx#24 nsp=1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=512: ixxxxx#24 nsp=1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=512: ixxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=512: ixxxxx#24 nsp=1 mass=400 + 2.828427124746190e+01, 0.000000000000000e+00, // itest=512: ixxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=512: ixxxxx#24 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=513: ixxxxx#24 nsp=1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=513: ixxxxx#24 nsp=1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=513: ixxxxx#24 nsp=1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=513: ixxxxx#24 nsp=1 mass=-400 + 2.828427124746190e+01, 0.000000000000000e+00, // itest=513: ixxxxx#24 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=513: ixxxxx#24 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=514: vxxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=514: vxxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=514: vxxxxx#24 nsp=1 mass=400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=514: vxxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=514: vxxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=514: vxxxxx#24 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=515: vxxxxx#24 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=515: vxxxxx#24 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=515: vxxxxx#24 nsp=1 mass=-400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=515: vxxxxx#24 nsp=1 mass=-400 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=515: vxxxxx#24 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=515: vxxxxx#24 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=516: sxxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=516: sxxxxx#24 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=516: sxxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=516: sxxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=516: sxxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=516: sxxxxx#24 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=517: sxxxxx#24 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=517: sxxxxx#24 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=517: sxxxxx#24 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=517: sxxxxx#24 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=517: sxxxxx#24 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=517: sxxxxx#24 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=518: oxxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=518: oxxxxx#24 nsp=1 mass=400 + 2.828427124746190e+01, 0.000000000000000e+00, // itest=518: oxxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=518: oxxxxx#24 nsp=1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=518: oxxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=518: oxxxxx#24 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=519: oxxxxx#24 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=519: oxxxxx#24 nsp=1 mass=-400 + 2.828427124746190e+01, 0.000000000000000e+00, // itest=519: oxxxxx#24 nsp=1 mass=-400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=519: oxxxxx#24 nsp=1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=519: oxxxxx#24 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=519: oxxxxx#24 nsp=1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=520: ixxxxx#25 nsp=1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=520: ixxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=520: ixxxxx#25 nsp=1 mass=400 + -1.414213562373095e+01, 0.000000000000000e+00, // itest=520: ixxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=520: ixxxxx#25 nsp=1 mass=400 + -2.828427124746190e+01, 0.000000000000000e+00 } ); // itest=520: ixxxxx#25 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=521: ixxxxx#25 nsp=1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=521: ixxxxx#25 nsp=1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=521: ixxxxx#25 nsp=1 mass=-400 + 1.414213562373095e+01, -0.000000000000000e+00, // itest=521: ixxxxx#25 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=521: ixxxxx#25 nsp=1 mass=-400 + -2.828427124746190e+01, 0.000000000000000e+00 } ); // itest=521: ixxxxx#25 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=522: vxxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=522: vxxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=522: vxxxxx#25 nsp=1 mass=400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=522: vxxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=522: vxxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=522: vxxxxx#25 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=523: vxxxxx#25 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=523: vxxxxx#25 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=523: vxxxxx#25 nsp=1 mass=-400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=523: vxxxxx#25 nsp=1 mass=-400 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=523: vxxxxx#25 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=523: vxxxxx#25 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=524: sxxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=524: sxxxxx#25 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=524: sxxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=524: sxxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=524: sxxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=524: sxxxxx#25 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=525: sxxxxx#25 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=525: sxxxxx#25 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=525: sxxxxx#25 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=525: sxxxxx#25 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=525: sxxxxx#25 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=525: sxxxxx#25 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=526: oxxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=526: oxxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=526: oxxxxx#25 nsp=1 mass=400 + -2.828427124746190e+01, 0.000000000000000e+00, // itest=526: oxxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=526: oxxxxx#25 nsp=1 mass=400 + -1.414213562373095e+01, 0.000000000000000e+00 } ); // itest=526: oxxxxx#25 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=527: oxxxxx#25 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=527: oxxxxx#25 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=527: oxxxxx#25 nsp=1 mass=-400 + -2.828427124746190e+01, 0.000000000000000e+00, // itest=527: oxxxxx#25 nsp=1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=527: oxxxxx#25 nsp=1 mass=-400 + 1.414213562373095e+01, -0.000000000000000e+00 } ); // itest=527: oxxxxx#25 nsp=1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=528: ixxxxx#26 nsp=1 mass=400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=528: ixxxxx#26 nsp=1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=528: ixxxxx#26 nsp=1 mass=400 + 5.999999999999999e+00, 7.999999999999999e+00, // itest=528: ixxxxx#26 nsp=1 mass=400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=528: ixxxxx#26 nsp=1 mass=400 + 1.200000000000000e+01, 1.600000000000000e+01 } ); // itest=528: ixxxxx#26 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=529: ixxxxx#26 nsp=1 mass=-400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=529: ixxxxx#26 nsp=1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00, // itest=529: ixxxxx#26 nsp=1 mass=-400 + -5.999999999999999e+00, -7.999999999999999e+00, // itest=529: ixxxxx#26 nsp=1 mass=-400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=529: ixxxxx#26 nsp=1 mass=-400 + 1.200000000000000e+01, 1.600000000000000e+01 } ); // itest=529: ixxxxx#26 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=530: vxxxxx#26 nsp=1 mass=400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=530: vxxxxx#26 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=530: vxxxxx#26 nsp=1 mass=400 + 0.000000000000000e+00, -5.656854249492381e-01, // itest=530: vxxxxx#26 nsp=1 mass=400 + 0.000000000000000e+00, 4.242640687119285e-01, // itest=530: vxxxxx#26 nsp=1 mass=400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=530: vxxxxx#26 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=531: vxxxxx#26 nsp=1 mass=-400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=531: vxxxxx#26 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=531: vxxxxx#26 nsp=1 mass=-400 + -0.000000000000000e+00, -5.656854249492381e-01, // itest=531: vxxxxx#26 nsp=1 mass=-400 + -0.000000000000000e+00, 4.242640687119285e-01, // itest=531: vxxxxx#26 nsp=1 mass=-400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=531: vxxxxx#26 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=532: sxxxxx#26 nsp=1 mass=400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=532: sxxxxx#26 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=532: sxxxxx#26 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=532: sxxxxx#26 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=532: sxxxxx#26 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=532: sxxxxx#26 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=533: sxxxxx#26 nsp=1 mass=-400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=533: sxxxxx#26 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=533: sxxxxx#26 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=533: sxxxxx#26 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=533: sxxxxx#26 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=533: sxxxxx#26 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=534: oxxxxx#26 nsp=1 mass=400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=534: oxxxxx#26 nsp=1 mass=400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=534: oxxxxx#26 nsp=1 mass=400 + 1.200000000000000e+01, -1.600000000000000e+01, // itest=534: oxxxxx#26 nsp=1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=534: oxxxxx#26 nsp=1 mass=400 + 5.999999999999999e+00, -7.999999999999999e+00 } ); // itest=534: oxxxxx#26 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=535: oxxxxx#26 nsp=1 mass=-400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=535: oxxxxx#26 nsp=1 mass=-400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=535: oxxxxx#26 nsp=1 mass=-400 + 1.200000000000000e+01, -1.600000000000000e+01, // itest=535: oxxxxx#26 nsp=1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00, // itest=535: oxxxxx#26 nsp=1 mass=-400 + -5.999999999999999e+00, 7.999999999999999e+00 } ); // itest=535: oxxxxx#26 nsp=1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=536: ixxxxx#27 nsp=1 mass=400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=536: ixxxxx#27 nsp=1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=536: ixxxxx#27 nsp=1 mass=400 + -7.999999999999999e+00, -5.999999999999999e+00, // itest=536: ixxxxx#27 nsp=1 mass=400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=536: ixxxxx#27 nsp=1 mass=400 + -1.600000000000000e+01, -1.200000000000000e+01 } ); // itest=536: ixxxxx#27 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=537: ixxxxx#27 nsp=1 mass=-400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=537: ixxxxx#27 nsp=1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00, // itest=537: ixxxxx#27 nsp=1 mass=-400 + 7.999999999999999e+00, 5.999999999999999e+00, // itest=537: ixxxxx#27 nsp=1 mass=-400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=537: ixxxxx#27 nsp=1 mass=-400 + -1.600000000000000e+01, -1.200000000000000e+01 } ); // itest=537: ixxxxx#27 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=538: vxxxxx#27 nsp=1 mass=400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=538: vxxxxx#27 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=538: vxxxxx#27 nsp=1 mass=400 + 0.000000000000000e+00, 4.242640687119285e-01, // itest=538: vxxxxx#27 nsp=1 mass=400 + 0.000000000000000e+00, -5.656854249492381e-01, // itest=538: vxxxxx#27 nsp=1 mass=400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=538: vxxxxx#27 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=539: vxxxxx#27 nsp=1 mass=-400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=539: vxxxxx#27 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=539: vxxxxx#27 nsp=1 mass=-400 + 0.000000000000000e+00, 4.242640687119285e-01, // itest=539: vxxxxx#27 nsp=1 mass=-400 + 0.000000000000000e+00, -5.656854249492381e-01, // itest=539: vxxxxx#27 nsp=1 mass=-400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=539: vxxxxx#27 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=540: sxxxxx#27 nsp=1 mass=400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=540: sxxxxx#27 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=540: sxxxxx#27 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=540: sxxxxx#27 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=540: sxxxxx#27 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=540: sxxxxx#27 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=541: sxxxxx#27 nsp=1 mass=-400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=541: sxxxxx#27 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=541: sxxxxx#27 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=541: sxxxxx#27 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=541: sxxxxx#27 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=541: sxxxxx#27 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=542: oxxxxx#27 nsp=1 mass=400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=542: oxxxxx#27 nsp=1 mass=400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=542: oxxxxx#27 nsp=1 mass=400 + -1.600000000000000e+01, 1.200000000000000e+01, // itest=542: oxxxxx#27 nsp=1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=542: oxxxxx#27 nsp=1 mass=400 + -7.999999999999999e+00, 5.999999999999999e+00 } ); // itest=542: oxxxxx#27 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=543: oxxxxx#27 nsp=1 mass=-400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=543: oxxxxx#27 nsp=1 mass=-400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=543: oxxxxx#27 nsp=1 mass=-400 + -1.600000000000000e+01, 1.200000000000000e+01, // itest=543: oxxxxx#27 nsp=1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00, // itest=543: oxxxxx#27 nsp=1 mass=-400 + 7.999999999999999e+00, -5.999999999999999e+00 } ); // itest=543: oxxxxx#27 nsp=1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=544: ixxxxx#28 nsp=1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=544: ixxxxx#28 nsp=1 mass=400 + 1.216552506059644e+01, 0.000000000000000e+00, // itest=544: ixxxxx#28 nsp=1 mass=400 + 4.931969619160719e+00, 5.260767593771432e+00, // itest=544: ixxxxx#28 nsp=1 mass=400 + 2.433105012119288e+01, 0.000000000000000e+00, // itest=544: ixxxxx#28 nsp=1 mass=400 + 9.863939238321439e+00, 1.052153518754287e+01 } ); // itest=544: ixxxxx#28 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=545: ixxxxx#28 nsp=1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=545: ixxxxx#28 nsp=1 mass=-400 + -1.216552506059644e+01, -0.000000000000000e+00, // itest=545: ixxxxx#28 nsp=1 mass=-400 + -4.931969619160719e+00, -5.260767593771432e+00, // itest=545: ixxxxx#28 nsp=1 mass=-400 + 2.433105012119288e+01, 0.000000000000000e+00, // itest=545: ixxxxx#28 nsp=1 mass=-400 + 9.863939238321439e+00, 1.052153518754287e+01 } ); // itest=545: ixxxxx#28 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=546: vxxxxx#28 nsp=1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=546: vxxxxx#28 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=546: vxxxxx#28 nsp=1 mass=400 + -2.321373168788980e-01, -5.158607041753289e-01, // itest=546: vxxxxx#28 nsp=1 mass=400 + -2.476131380041579e-01, 4.836194101643708e-01, // itest=546: vxxxxx#28 nsp=1 mass=400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=546: vxxxxx#28 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=547: vxxxxx#28 nsp=1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=547: vxxxxx#28 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=547: vxxxxx#28 nsp=1 mass=-400 + -2.321373168788980e-01, -5.158607041753289e-01, // itest=547: vxxxxx#28 nsp=1 mass=-400 + -2.476131380041579e-01, 4.836194101643708e-01, // itest=547: vxxxxx#28 nsp=1 mass=-400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=547: vxxxxx#28 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=548: sxxxxx#28 nsp=1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=548: sxxxxx#28 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=548: sxxxxx#28 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=548: sxxxxx#28 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=548: sxxxxx#28 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=548: sxxxxx#28 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=549: sxxxxx#28 nsp=1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=549: sxxxxx#28 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=549: sxxxxx#28 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=549: sxxxxx#28 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=549: sxxxxx#28 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=549: sxxxxx#28 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=550: oxxxxx#28 nsp=1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=550: oxxxxx#28 nsp=1 mass=400 + 2.433105012119288e+01, 0.000000000000000e+00, // itest=550: oxxxxx#28 nsp=1 mass=400 + 9.863939238321439e+00, -1.052153518754287e+01, // itest=550: oxxxxx#28 nsp=1 mass=400 + 1.216552506059644e+01, 0.000000000000000e+00, // itest=550: oxxxxx#28 nsp=1 mass=400 + 4.931969619160719e+00, -5.260767593771432e+00 } ); // itest=550: oxxxxx#28 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=551: oxxxxx#28 nsp=1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=551: oxxxxx#28 nsp=1 mass=-400 + 2.433105012119288e+01, 0.000000000000000e+00, // itest=551: oxxxxx#28 nsp=1 mass=-400 + 9.863939238321439e+00, -1.052153518754287e+01, // itest=551: oxxxxx#28 nsp=1 mass=-400 + -1.216552506059644e+01, -0.000000000000000e+00, // itest=551: oxxxxx#28 nsp=1 mass=-400 + -4.931969619160719e+00, 5.260767593771432e+00 } ); // itest=551: oxxxxx#28 nsp=1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=552: ixxxxx#29 nsp=1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=552: ixxxxx#29 nsp=1 mass=400 + 7.211102550927978e+00, 0.000000000000000e+00, // itest=552: ixxxxx#29 nsp=1 mass=400 + 8.320502943378436e+00, 8.875203139603666e+00, // itest=552: ixxxxx#29 nsp=1 mass=400 + 1.442220510185596e+01, 0.000000000000000e+00, // itest=552: ixxxxx#29 nsp=1 mass=400 + 1.664100588675688e+01, 1.775040627920733e+01 } ); // itest=552: ixxxxx#29 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=553: ixxxxx#29 nsp=1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=553: ixxxxx#29 nsp=1 mass=-400 + -7.211102550927978e+00, -0.000000000000000e+00, // itest=553: ixxxxx#29 nsp=1 mass=-400 + -8.320502943378436e+00, -8.875203139603666e+00, // itest=553: ixxxxx#29 nsp=1 mass=-400 + 1.442220510185596e+01, 0.000000000000000e+00, // itest=553: ixxxxx#29 nsp=1 mass=-400 + 1.664100588675688e+01, 1.775040627920733e+01 } ); // itest=553: ixxxxx#29 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=554: vxxxxx#29 nsp=1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=554: vxxxxx#29 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=554: vxxxxx#29 nsp=1 mass=400 + 2.321373168788980e-01, -5.158607041753289e-01, // itest=554: vxxxxx#29 nsp=1 mass=400 + 2.476131380041579e-01, 4.836194101643708e-01, // itest=554: vxxxxx#29 nsp=1 mass=400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=554: vxxxxx#29 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=555: vxxxxx#29 nsp=1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=555: vxxxxx#29 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=555: vxxxxx#29 nsp=1 mass=-400 + 2.321373168788980e-01, -5.158607041753289e-01, // itest=555: vxxxxx#29 nsp=1 mass=-400 + 2.476131380041579e-01, 4.836194101643708e-01, // itest=555: vxxxxx#29 nsp=1 mass=-400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=555: vxxxxx#29 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=556: sxxxxx#29 nsp=1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=556: sxxxxx#29 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=556: sxxxxx#29 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=556: sxxxxx#29 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=556: sxxxxx#29 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=556: sxxxxx#29 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=557: sxxxxx#29 nsp=1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=557: sxxxxx#29 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=557: sxxxxx#29 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=557: sxxxxx#29 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=557: sxxxxx#29 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=557: sxxxxx#29 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=558: oxxxxx#29 nsp=1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=558: oxxxxx#29 nsp=1 mass=400 + 1.442220510185596e+01, 0.000000000000000e+00, // itest=558: oxxxxx#29 nsp=1 mass=400 + 1.664100588675688e+01, -1.775040627920733e+01, // itest=558: oxxxxx#29 nsp=1 mass=400 + 7.211102550927978e+00, 0.000000000000000e+00, // itest=558: oxxxxx#29 nsp=1 mass=400 + 8.320502943378436e+00, -8.875203139603666e+00 } ); // itest=558: oxxxxx#29 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=559: oxxxxx#29 nsp=1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=559: oxxxxx#29 nsp=1 mass=-400 + 1.442220510185596e+01, 0.000000000000000e+00, // itest=559: oxxxxx#29 nsp=1 mass=-400 + 1.664100588675688e+01, -1.775040627920733e+01, // itest=559: oxxxxx#29 nsp=1 mass=-400 + -7.211102550927978e+00, -0.000000000000000e+00, // itest=559: oxxxxx#29 nsp=1 mass=-400 + -8.320502943378436e+00, 8.875203139603666e+00 } ); // itest=559: oxxxxx#29 nsp=1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=560: ixxxxx#30 nsp=1 mass=500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=560: ixxxxx#30 nsp=1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=560: ixxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=560: ixxxxx#30 nsp=1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=560: ixxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=560: ixxxxx#30 nsp=1 mass=500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=561: ixxxxx#30 nsp=1 mass=-500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=561: ixxxxx#30 nsp=1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=561: ixxxxx#30 nsp=1 mass=-500 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=561: ixxxxx#30 nsp=1 mass=-500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=561: ixxxxx#30 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=561: ixxxxx#30 nsp=1 mass=-500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=562: vxxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=562: vxxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=562: vxxxxx#30 nsp=1 mass=500 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=562: vxxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=562: vxxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=562: vxxxxx#30 nsp=1 mass=500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=563: vxxxxx#30 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=563: vxxxxx#30 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=563: vxxxxx#30 nsp=1 mass=-500 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=563: vxxxxx#30 nsp=1 mass=-500 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=563: vxxxxx#30 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=563: vxxxxx#30 nsp=1 mass=-500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=564: sxxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=564: sxxxxx#30 nsp=1 mass=500 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=564: sxxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=564: sxxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=564: sxxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=564: sxxxxx#30 nsp=1 mass=500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=565: sxxxxx#30 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=565: sxxxxx#30 nsp=1 mass=-500 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=565: sxxxxx#30 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=565: sxxxxx#30 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=565: sxxxxx#30 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=565: sxxxxx#30 nsp=1 mass=-500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=566: oxxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=566: oxxxxx#30 nsp=1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=566: oxxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=566: oxxxxx#30 nsp=1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=566: oxxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=566: oxxxxx#30 nsp=1 mass=500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=567: oxxxxx#30 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=567: oxxxxx#30 nsp=1 mass=-500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=567: oxxxxx#30 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=567: oxxxxx#30 nsp=1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=567: oxxxxx#30 nsp=1 mass=-500 + -0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=567: oxxxxx#30 nsp=1 mass=-500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=568: ixxxxx#31 nsp=1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=568: ixxxxx#31 nsp=1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=568: ixxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=568: ixxxxx#31 nsp=1 mass=400 + 2.828427124746190e+01, 0.000000000000000e+00, // itest=568: ixxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=568: ixxxxx#31 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=569: ixxxxx#31 nsp=1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=569: ixxxxx#31 nsp=1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=569: ixxxxx#31 nsp=1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=569: ixxxxx#31 nsp=1 mass=-400 + 2.828427124746190e+01, 0.000000000000000e+00, // itest=569: ixxxxx#31 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=569: ixxxxx#31 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=570: vxxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=570: vxxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=570: vxxxxx#31 nsp=1 mass=400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=570: vxxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=570: vxxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=570: vxxxxx#31 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=571: vxxxxx#31 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=571: vxxxxx#31 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=571: vxxxxx#31 nsp=1 mass=-400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=571: vxxxxx#31 nsp=1 mass=-400 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=571: vxxxxx#31 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=571: vxxxxx#31 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=572: sxxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=572: sxxxxx#31 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=572: sxxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=572: sxxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=572: sxxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=572: sxxxxx#31 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=573: sxxxxx#31 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=573: sxxxxx#31 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=573: sxxxxx#31 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=573: sxxxxx#31 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=573: sxxxxx#31 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=573: sxxxxx#31 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=574: oxxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=574: oxxxxx#31 nsp=1 mass=400 + 2.828427124746190e+01, 0.000000000000000e+00, // itest=574: oxxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=574: oxxxxx#31 nsp=1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=574: oxxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=574: oxxxxx#31 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=575: oxxxxx#31 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=575: oxxxxx#31 nsp=1 mass=-400 + 2.828427124746190e+01, 0.000000000000000e+00, // itest=575: oxxxxx#31 nsp=1 mass=-400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=575: oxxxxx#31 nsp=1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=575: oxxxxx#31 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=575: oxxxxx#31 nsp=1 mass=-400 diff --git a/epochX/cudacpp/gg_tt.sa/src/HelAmps_sm.h b/epochX/cudacpp/gg_tt.sa/src/HelAmps_sm.h index bc2adb6258..a6f1b62e82 100644 --- a/epochX/cudacpp/gg_tt.sa/src/HelAmps_sm.h +++ b/epochX/cudacpp/gg_tt.sa/src/HelAmps_sm.h @@ -1,3 +1,4 @@ +// Copyright (C) 2010 The ALOHA Development team and Contributors. // Copyright (C) 2010 The MadGraph5_aMC@NLO development team and contributors. // Created by: J. Alwall (Sep 2010) for the MG5aMC backend. //========================================================================== @@ -21,6 +22,7 @@ #include "Parameters_sm.h" +#include //#include //#include //#include @@ -190,6 +192,9 @@ namespace mg5amcCpu const int ipar ) // input: particle# out of npar { mgDebug( 0, __FUNCTION__ ); + // NEW IMPLEMENTATION FIXING FLOATING POINT EXCEPTIONS IN SIMD CODE (#701) + // Variables xxxDENOM are a hack to avoid division-by-0 FPE while preserving speed (#701 and #727) + // Variables xxxDENOM are declared as 'volatile' to make sure they are not optimized away on clang! (#724) const fptype_sv& pvec0 = M_ACCESS::kernelAccessIp4IparConst( momenta, 0, ipar ); const fptype_sv& pvec1 = M_ACCESS::kernelAccessIp4IparConst( momenta, 1, ipar ); const fptype_sv& pvec2 = M_ACCESS::kernelAccessIp4IparConst( momenta, 2, ipar ); @@ -201,6 +206,11 @@ namespace mg5amcCpu if( fmass != 0. ) { const fptype_sv pp = fpmin( pvec0, fpsqrt( pvec1 * pvec1 + pvec2 * pvec2 + pvec3 * pvec3 ) ); + // In C++ ixxxxx, use a single ip/im numbering that is valid both for pp==0 and pp>0, which have two numbering schemes in Fortran ixxxxx: + // for pp==0, Fortran sqm(0:1) has indexes 0,1 as in C++; but for Fortran pp>0, omega(2) has indexes 1,2 and not 0,1 + // NB: this is only possible in ixxxx, but in oxxxxx two different numbering schemes must be used + const int ip = ( 1 + nh ) / 2; // NB: same as in Fortran pp==0, differs from Fortran pp>0, which is (3+nh)/2 because omega(2) has indexes 1,2 + const int im = ( 1 - nh ) / 2; // NB: same as in Fortran pp==0, differs from Fortran pp>0, which is (3-nh)/2 because omega(2) has indexes 1,2 #ifndef MGONGPU_CPPSIMD if( pp == 0. ) { @@ -208,8 +218,6 @@ namespace mg5amcCpu fptype sqm[2] = { fpsqrt( std::abs( fmass ) ), 0. }; // possibility of negative fermion masses //sqm[1] = ( fmass < 0. ? -abs( sqm[0] ) : abs( sqm[0] ) ); // AV: why abs here? sqm[1] = ( fmass < 0. ? -sqm[0] : sqm[0] ); // AV: removed an abs here - const int ip = ( 1 + nh ) / 2; // NB: Fortran sqm(0:1) also has indexes 0,1 as in C++ - const int im = ( 1 - nh ) / 2; // NB: Fortran sqm(0:1) also has indexes 0,1 as in C++ fi[2] = cxmake( ip * sqm[ip], 0 ); fi[3] = cxmake( im * nsf * sqm[ip], 0 ); fi[4] = cxmake( ip * nsf * sqm[im], 0 ); @@ -221,8 +229,6 @@ namespace mg5amcCpu fptype( 1 + nsf - ( 1 - nsf ) * nh ) * (fptype)0.5 }; fptype omega[2] = { fpsqrt( pvec0 + pp ), 0. }; omega[1] = fmass / omega[0]; - const int ip = ( 1 + nh ) / 2; // NB: Fortran is (3+nh)/2 because omega(2) has indexes 1,2 and not 0,1 - const int im = ( 1 - nh ) / 2; // NB: Fortran is (3-nh)/2 because omega(2) has indexes 1,2 and not 0,1 const fptype sfomega[2] = { sf[0] * omega[ip], sf[1] * omega[im] }; const fptype pp3 = fpmax( pp + pvec3, 0. ); const cxtype chi[2] = { cxmake( fpsqrt( pp3 * (fptype)0.5 / pp ), 0. ), @@ -233,8 +239,6 @@ namespace mg5amcCpu fi[5] = sfomega[1] * chi[ip]; } #else - const int ip = ( 1 + nh ) / 2; - const int im = ( 1 - nh ) / 2; // Branch A: pp == 0. // NB: Do not use "abs" for floats! It returns an integer with no build warning! Use std::abs! fptype sqm[2] = { fpsqrt( std::abs( fmass ) ), 0 }; // possibility of negative fermion masses (NB: SCALAR!) @@ -250,10 +254,12 @@ namespace mg5amcCpu omega[1] = fmass / omega[0]; const fptype_v sfomega[2] = { sf[0] * omega[ip], sf[1] * omega[im] }; const fptype_v pp3 = fpmax( pp + pvec3, 0 ); - const cxtype_v chi[2] = { cxmake( fpsqrt( pp3 * 0.5 / pp ), 0 ), + volatile fptype_v ppDENOM = fpternary( pp != 0, pp, 1. ); // hack: ppDENOM[ieppV]=1 if pp[ieppV]==0 + volatile fptype_v pp3DENOM = fpternary( pp3 != 0, pp3, 1. ); // hack: pp3DENOM[ieppV]=1 if pp3[ieppV]==0 + const cxtype_v chi[2] = { cxmake( fpsqrt( pp3 * 0.5 / ppDENOM ), 0 ), // hack: dummy[ieppV] is not used if pp[ieppV]==0 cxternary( ( pp3 == 0. ), cxmake( -nh, 0 ), - cxmake( (fptype)nh * pvec1, pvec2 ) / fpsqrt( 2. * pp * pp3 ) ) }; + cxmake( (fptype)nh * pvec1, pvec2 ) / fpsqrt( 2. * ppDENOM * pp3DENOM ) ) }; // hack: dummy[ieppV] is not used if pp[ieppV]==0 const cxtype_v fiB_2 = sfomega[0] * chi[im]; const cxtype_v fiB_3 = sfomega[0] * chi[ip]; const cxtype_v fiB_4 = sfomega[1] * chi[im]; @@ -271,7 +277,16 @@ namespace mg5amcCpu const fptype_sv sqp0p3 = fpternary( ( pvec1 == 0. and pvec2 == 0. and pvec3 < 0. ), fptype_sv{ 0 }, fpsqrt( fpmax( pvec0 + pvec3, 0. ) ) * (fptype)nsf ); - const cxtype_sv chi[2] = { cxmake( sqp0p3, 0. ), cxternary( ( sqp0p3 == 0. ), cxmake( -(fptype)nhel * fpsqrt( 2. * pvec0 ), 0. ), cxmake( (fptype)nh * pvec1, pvec2 ) / sqp0p3 ) }; +#ifdef MGONGPU_CPPSIMD + volatile fptype_v sqp0p3DENOM = fpternary( sqp0p3 != 0, sqp0p3, 1. ); // hack: dummy sqp0p3DENOM[ieppV]=1 if sqp0p3[ieppV]==0 + cxtype_sv chi[2] = { cxmake( sqp0p3, 0. ), + cxternary( sqp0p3 == 0, + cxmake( -(fptype)nhel * fpsqrt( 2. * pvec0 ), 0. ), + cxmake( (fptype)nh * pvec1, pvec2 ) / (const fptype_v)sqp0p3DENOM ) }; // hack: dummy[ieppV] is not used if sqp0p3[ieppV]==0 +#else + const cxtype_sv chi[2] = { cxmake( sqp0p3, 0. ), + ( sqp0p3 == 0. ? cxmake( -(fptype)nhel * fpsqrt( 2. * pvec0 ), 0. ) : cxmake( (fptype)nh * pvec1, pvec2 ) / sqp0p3 ) }; +#endif if( nh == 1 ) { fi[2] = cxzero_sv(); @@ -422,6 +437,9 @@ namespace mg5amcCpu const int ipar ) // input: particle# out of npar { mgDebug( 0, __FUNCTION__ ); + // NEW IMPLEMENTATION FIXING FLOATING POINT EXCEPTIONS IN SIMD CODE (#701) + // Variables xxxDENOM are a hack to avoid division-by-0 FPE while preserving speed (#701 and #727) + // Variables xxxDENOM are declared as 'volatile' to make sure they are not optimized away on clang! (#724) const fptype_sv& pvec0 = M_ACCESS::kernelAccessIp4IparConst( momenta, 0, ipar ); const fptype_sv& pvec1 = M_ACCESS::kernelAccessIp4IparConst( momenta, 1, ipar ); const fptype_sv& pvec2 = M_ACCESS::kernelAccessIp4IparConst( momenta, 2, ipar ); @@ -472,13 +490,15 @@ namespace mg5amcCpu const cxtype vcA_4 = cxmake( 0, nsvahl * sqh ); const cxtype vcA_5 = cxmake( hel0, 0 ); // Branch B: pp != 0. - const fptype_v emp = pvec0 / ( vmass * pp ); + volatile fptype_v ppDENOM = fpternary( pp != 0, pp, 1. ); // hack: ppDENOM[ieppV]=1 if pp[ieppV]==0 + const fptype_v emp = pvec0 / ( vmass * ppDENOM ); // hack: dummy[ieppV] is not used if pp[ieppV]==0 const cxtype_v vcB_2 = cxmake( hel0 * pp / vmass, 0 ); - const cxtype_v vcB_5 = cxmake( hel0 * pvec3 * emp + hel * pt / pp * sqh, 0 ); + const cxtype_v vcB_5 = cxmake( hel0 * pvec3 * emp + hel * pt / ppDENOM * sqh, 0 ); // hack: dummy[ieppV] is not used if pp[ieppV]==0 // Branch B1: pp != 0. and pt != 0. - const fptype_v pzpt = pvec3 / ( pp * pt ) * sqh * hel; - const cxtype_v vcB1_3 = cxmake( hel0 * pvec1 * emp - pvec1 * pzpt, -(fptype)nsvahl * pvec2 / pt * sqh ); - const cxtype_v vcB1_4 = cxmake( hel0 * pvec2 * emp - pvec2 * pzpt, (fptype)nsvahl * pvec1 / pt * sqh ); + volatile fptype_v ptDENOM = fpternary( pt != 0, pt, 1. ); // hack: ptDENOM[ieppV]=1 if pt[ieppV]==0 + const fptype_v pzpt = pvec3 / ( ppDENOM * ptDENOM ) * sqh * hel; // hack: dummy[ieppV] is not used if pp[ieppV]==0 + const cxtype_v vcB1_3 = cxmake( hel0 * pvec1 * emp - pvec1 * pzpt, -(fptype)nsvahl * pvec2 / ptDENOM * sqh ); // hack: dummy[ieppV] is not used if pt[ieppV]==0 + const cxtype_v vcB1_4 = cxmake( hel0 * pvec2 * emp - pvec2 * pzpt, (fptype)nsvahl * pvec1 / ptDENOM * sqh ); // hack: dummy[ieppV] is not used if pt[ieppV]==0 // Branch B2: pp != 0. and pt == 0. const cxtype vcB2_3 = cxmake( -hel * sqh, 0. ); const cxtype_v vcB2_4 = cxmake( 0., (fptype)nsvahl * fpternary( ( pvec3 < 0 ), -sqh, sqh ) ); // AV: removed an abs here @@ -513,9 +533,10 @@ namespace mg5amcCpu } #else // Branch A: pt != 0. - const fptype_v pzpt = pvec3 / ( pp * pt ) * sqh * hel; - const cxtype_v vcA_3 = cxmake( -pvec1 * pzpt, -(fptype)nsv * pvec2 / pt * sqh ); - const cxtype_v vcA_4 = cxmake( -pvec2 * pzpt, (fptype)nsv * pvec1 / pt * sqh ); + volatile fptype_v ptDENOM = fpternary( pt != 0, pt, 1. ); // hack: ptDENOM[ieppV]=1 if pt[ieppV]==0 + const fptype_v pzpt = pvec3 / ( pp * ptDENOM ) * sqh * hel; // hack: dummy[ieppV] is not used if pt[ieppV]==0 + const cxtype_v vcA_3 = cxmake( -pvec1 * pzpt, -(fptype)nsv * pvec2 / ptDENOM * sqh ); // hack: dummy[ieppV] is not used if pt[ieppV]==0 + const cxtype_v vcA_4 = cxmake( -pvec2 * pzpt, (fptype)nsv * pvec1 / ptDENOM * sqh ); // hack: dummy[ieppV] is not used if pt[ieppV]==0 // Branch B: pt == 0. const cxtype vcB_3 = cxmake( -(fptype)hel * sqh, 0 ); const cxtype_v vcB_4 = cxmake( 0, (fptype)nsv * fpternary( ( pvec3 < 0 ), -sqh, sqh ) ); // AV: removed an abs here @@ -567,6 +588,9 @@ namespace mg5amcCpu const int ipar ) // input: particle# out of npar { mgDebug( 0, __FUNCTION__ ); + // NEW IMPLEMENTATION FIXING FLOATING POINT EXCEPTIONS IN SIMD CODE (#701) + // Variables xxxDENOM are a hack to avoid division-by-0 FPE while preserving speed (#701 and #727) + // Variables xxxDENOM are declared as 'volatile' to make sure they are not optimized away on clang! (#724) const fptype_sv& pvec0 = M_ACCESS::kernelAccessIp4IparConst( momenta, 0, ipar ); const fptype_sv& pvec1 = M_ACCESS::kernelAccessIp4IparConst( momenta, 1, ipar ); const fptype_sv& pvec2 = M_ACCESS::kernelAccessIp4IparConst( momenta, 2, ipar ); @@ -630,10 +654,12 @@ namespace mg5amcCpu const int imB = ( 1 - nh ) / 2; const fptype_v sfomeg[2] = { sf[0] * omega[ipB], sf[1] * omega[imB] }; const fptype_v pp3 = fpmax( pp + pvec3, 0. ); - const cxtype_v chi[2] = { cxmake( fpsqrt( pp3 * 0.5 / pp ), 0. ), + volatile fptype_v ppDENOM = fpternary( pp != 0, pp, 1. ); // hack: ppDENOM[ieppV]=1 if pp[ieppV]==0 + volatile fptype_v pp3DENOM = fpternary( pp3 != 0, pp3, 1. ); // hack: pp3DENOM[ieppV]=1 if pp3[ieppV]==0 + const cxtype_v chi[2] = { cxmake( fpsqrt( pp3 * 0.5 / ppDENOM ), 0. ), // hack: dummy[ieppV] is not used if pp[ieppV]==0 ( cxternary( ( pp3 == 0. ), cxmake( -nh, 0. ), - cxmake( (fptype)nh * pvec1, -pvec2 ) / fpsqrt( 2. * pp * pp3 ) ) ) }; + cxmake( (fptype)nh * pvec1, -pvec2 ) / fpsqrt( 2. * ppDENOM * pp3DENOM ) ) ) }; // hack: dummy[ieppV] is not used if pp[ieppV]==0 const cxtype_v foB_2 = sfomeg[1] * chi[imB]; const cxtype_v foB_3 = sfomeg[1] * chi[ipB]; const cxtype_v foB_4 = sfomeg[0] * chi[imB]; @@ -651,10 +677,16 @@ namespace mg5amcCpu const fptype_sv sqp0p3 = fpternary( ( pvec1 == 0. ) and ( pvec2 == 0. ) and ( pvec3 < 0. ), 0, fpsqrt( fpmax( pvec0 + pvec3, 0. ) ) * (fptype)nsf ); +#ifdef MGONGPU_CPPSIMD + volatile fptype_v sqp0p3DENOM = fpternary( sqp0p3 != 0, sqp0p3, 1. ); // hack: sqp0p3DENOM[ieppV]=1 if sqp0p3[ieppV]==0 + const cxtype_v chi[2] = { cxmake( sqp0p3, 0. ), + cxternary( ( sqp0p3 == 0. ), + cxmake( -nhel, 0. ) * fpsqrt( 2. * pvec0 ), + cxmake( (fptype)nh * pvec1, -pvec2 ) / (const fptype_sv)sqp0p3DENOM ) }; // hack: dummy[ieppV] is not used if sqp0p3[ieppV]==0 +#else const cxtype_sv chi[2] = { cxmake( sqp0p3, 0. ), - cxternary( ( sqp0p3 == 0. ), - cxmake( -nhel, 0. ) * fpsqrt( 2. * pvec0 ), - cxmake( (fptype)nh * pvec1, -pvec2 ) / sqp0p3 ) }; + ( sqp0p3 == 0. ? cxmake( -nhel, 0. ) * fpsqrt( 2. * pvec0 ) : cxmake( (fptype)nh * pvec1, -pvec2 ) / sqp0p3 ) }; +#endif if( nh == 1 ) { fo[2] = chi[0]; diff --git a/epochX/cudacpp/gg_tt.sa/src/Parameters_sm.cc b/epochX/cudacpp/gg_tt.sa/src/Parameters_sm.cc index 7255e49119..b9668e2a87 100644 --- a/epochX/cudacpp/gg_tt.sa/src/Parameters_sm.cc +++ b/epochX/cudacpp/gg_tt.sa/src/Parameters_sm.cc @@ -17,6 +17,12 @@ #include #include +#ifdef __CUDACC__ +using namespace mg5amcGpu; +#else +using namespace mg5amcCpu; +#endif + #ifndef MGONGPU_HARDCODE_PARAM // Initialize static instance diff --git a/epochX/cudacpp/gg_tt.sa/src/Parameters_sm.h b/epochX/cudacpp/gg_tt.sa/src/Parameters_sm.h index c935779eb3..69241c2b3b 100644 --- a/epochX/cudacpp/gg_tt.sa/src/Parameters_sm.h +++ b/epochX/cudacpp/gg_tt.sa/src/Parameters_sm.h @@ -26,188 +26,213 @@ #include "read_slha.h" -class Parameters_sm +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { -public: + class Parameters_sm + { + public: - static Parameters_sm* getInstance(); + static Parameters_sm* getInstance(); - // Define "zero" - double zero, ZERO; + // Define "zero" + double zero, ZERO; - // Model parameters independent of aS - //double aS; // now retrieved event-by-event (as G) from Fortran (running alphas #373) - double mdl_WH, mdl_WW, mdl_WZ, mdl_WT, mdl_ymtau, mdl_ymt, mdl_ymb, mdl_Gf, aEWM1, mdl_MH, mdl_MZ, mdl_MTA, mdl_MT, mdl_MB, mdl_conjg__CKM3x3, mdl_conjg__CKM1x1, mdl_CKM3x3, mdl_MZ__exp__2, mdl_MZ__exp__4, mdl_sqrt__2, mdl_MH__exp__2, mdl_aEW, mdl_MW, mdl_sqrt__aEW, mdl_ee, mdl_MW__exp__2, mdl_sw2, mdl_cw, mdl_sqrt__sw2, mdl_sw, mdl_g1, mdl_gw, mdl_vev, mdl_vev__exp__2, mdl_lam, mdl_yb, mdl_yt, mdl_ytau, mdl_muH, mdl_ee__exp__2, mdl_sw__exp__2, mdl_cw__exp__2; - cxsmpl mdl_complexi, mdl_I1x33, mdl_I2x33, mdl_I3x33, mdl_I4x33; + // Model parameters independent of aS + //double aS; // now retrieved event-by-event (as G) from Fortran (running alphas #373) + double mdl_WH, mdl_WW, mdl_WZ, mdl_WT, mdl_ymtau, mdl_ymt, mdl_ymb, mdl_Gf, aEWM1, mdl_MH, mdl_MZ, mdl_MTA, mdl_MT, mdl_MB, mdl_conjg__CKM3x3, mdl_conjg__CKM1x1, mdl_CKM3x3, mdl_MZ__exp__2, mdl_MZ__exp__4, mdl_sqrt__2, mdl_MH__exp__2, mdl_aEW, mdl_MW, mdl_sqrt__aEW, mdl_ee, mdl_MW__exp__2, mdl_sw2, mdl_cw, mdl_sqrt__sw2, mdl_sw, mdl_g1, mdl_gw, mdl_vev, mdl_vev__exp__2, mdl_lam, mdl_yb, mdl_yt, mdl_ytau, mdl_muH, mdl_ee__exp__2, mdl_sw__exp__2, mdl_cw__exp__2; + cxsmpl mdl_complexi, mdl_I1x33, mdl_I2x33, mdl_I3x33, mdl_I4x33; - // Model couplings independent of aS - // (none) + // Model couplings independent of aS + // (none) - // Model parameters dependent on aS - //double mdl_sqrt__aS, G, mdl_G__exp__2; // now computed event-by-event (running alphas #373) + // Model parameters dependent on aS + //double mdl_sqrt__aS, G, mdl_G__exp__2; // now computed event-by-event (running alphas #373) - // Model couplings dependent on aS - //cxsmpl GC_10, GC_11; // now computed event-by-event (running alphas #373) + // Model couplings dependent on aS + //cxsmpl GC_10, GC_11; // now computed event-by-event (running alphas #373) - // Set parameters that are unchanged during the run - void setIndependentParameters( SLHAReader& slha ); + // Set parameters that are unchanged during the run + void setIndependentParameters( SLHAReader& slha ); - // Set couplings that are unchanged during the run - void setIndependentCouplings(); + // Set couplings that are unchanged during the run + void setIndependentCouplings(); - // Set parameters that are changed event by event - //void setDependentParameters(); // now computed event-by-event (running alphas #373) + // Set parameters that are changed event by event + //void setDependentParameters(); // now computed event-by-event (running alphas #373) - // Set couplings that are changed event by event - //void setDependentCouplings(); // now computed event-by-event (running alphas #373) + // Set couplings that are changed event by event + //void setDependentCouplings(); // now computed event-by-event (running alphas #373) - // Print parameters that are unchanged during the run - void printIndependentParameters(); + // Print parameters that are unchanged during the run + void printIndependentParameters(); - // Print couplings that are unchanged during the run - void printIndependentCouplings(); + // Print couplings that are unchanged during the run + void printIndependentCouplings(); - // Print parameters that are changed event by event - //void printDependentParameters(); // now computed event-by-event (running alphas #373) + // Print parameters that are changed event by event + //void printDependentParameters(); // now computed event-by-event (running alphas #373) - // Print couplings that are changed event by event - //void printDependentCouplings(); // now computed event-by-event (running alphas #373) + // Print couplings that are changed event by event + //void printDependentCouplings(); // now computed event-by-event (running alphas #373) -private: + private: - static Parameters_sm* instance; -}; + static Parameters_sm* instance; + }; + +} // end namespace mg5amcGpu/mg5amcCpu #else #include #include -// Hardcoded constexpr physics parameters -namespace Parameters_sm // keep the same name rather than HardcodedParameters_sm for simplicity +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { - // Constexpr implementation of sqrt (see https://stackoverflow.com/a/34134071) - double constexpr sqrtNewtonRaphson( double x, double curr, double prev ) + // Hardcoded constexpr physics parameters + namespace Parameters_sm // keep the same name rather than HardcodedParameters_sm for simplicity { - return curr == prev ? curr : sqrtNewtonRaphson( x, 0.5 * ( curr + x / curr ), curr ); - } - double constexpr constexpr_sqrt( double x ) - { - return x >= 0 // && x < std::numeric_limits::infinity() // avoid -Wtautological-constant-compare warning in fast math - ? sqrtNewtonRaphson( x, x, 0 ) - : std::numeric_limits::quiet_NaN(); - } + // Constexpr implementation of sqrt (see https://stackoverflow.com/a/34134071) + double constexpr sqrtNewtonRaphson( double x, double curr, double prev ) + { + return curr == prev ? curr : sqrtNewtonRaphson( x, 0.5 * ( curr + x / curr ), curr ); + } + double constexpr constexpr_sqrt( double x ) + { + return x >= 0 // && x < std::numeric_limits::infinity() // avoid -Wtautological-constant-compare warning in fast math + ? sqrtNewtonRaphson( x, x, 0 ) + : std::numeric_limits::quiet_NaN(); + } - // Constexpr implementation of floor (see https://stackoverflow.com/a/66146159) - constexpr int constexpr_floor( double d ) - { - const int i = static_cast( d ); - return d < i ? i - 1 : i; - } + // Constexpr implementation of floor (see https://stackoverflow.com/a/66146159) + constexpr int constexpr_floor( double d ) + { + const int i = static_cast( d ); + return d < i ? i - 1 : i; + } - // Constexpr implementation of pow - constexpr double constexpr_pow( double base, double exp ) - { - // NB(1): this implementation of constexpr_pow requires exponent >= 0 - assert( exp >= 0 ); // NB would fail at compile time with "error: call to non-‘constexpr’ function ‘void __assert_fail'" - // NB(2): this implementation of constexpr_pow requires an integer exponent - const int iexp = constexpr_floor( exp ); - assert( static_cast( iexp ) == exp ); // NB would fail at compile time with "error: call to non-‘constexpr’ function ‘void __assert_fail'" - // Iterative implementation of pow if exp is a non negative integer - return iexp == 0 ? 1 : base * constexpr_pow( base, iexp - 1 ); + // Constexpr implementation of pow + constexpr double constexpr_pow( double base, double exp ) + { + // NB(1): this implementation of constexpr_pow requires exponent >= 0 + assert( exp >= 0 ); // NB would fail at compile time with "error: call to non-‘constexpr’ function ‘void __assert_fail'" + // NB(2): this implementation of constexpr_pow requires an integer exponent + const int iexp = constexpr_floor( exp ); + assert( static_cast( iexp ) == exp ); // NB would fail at compile time with "error: call to non-‘constexpr’ function ‘void __assert_fail'" + // Iterative implementation of pow if exp is a non negative integer + return iexp == 0 ? 1 : base * constexpr_pow( base, iexp - 1 ); + } + + // Model parameters independent of aS + constexpr double zero = 0; + constexpr double ZERO = 0; + constexpr double mdl_WH = 6.382339e-03; + constexpr double mdl_WW = 2.047600e+00; + constexpr double mdl_WZ = 2.441404e+00; + constexpr double mdl_WT = 1.491500e+00; + constexpr double mdl_ymtau = 1.777000e+00; + constexpr double mdl_ymt = 1.730000e+02; + constexpr double mdl_ymb = 4.700000e+00; + //constexpr double aS = 1.180000e-01; // now retrieved event-by-event (as G) from Fortran (running alphas #373) + constexpr double mdl_Gf = 1.166390e-05; + constexpr double aEWM1 = 1.325070e+02; + constexpr double mdl_MH = 1.250000e+02; + constexpr double mdl_MZ = 9.118800e+01; + constexpr double mdl_MTA = 1.777000e+00; + constexpr double mdl_MT = 1.730000e+02; + constexpr double mdl_MB = 4.700000e+00; + constexpr double mdl_conjg__CKM3x3 = 1.; + constexpr double mdl_conjg__CKM1x1 = 1.; + constexpr double mdl_CKM3x3 = 1.; + constexpr cxsmpl mdl_complexi = cxsmpl( 0., 1. ); + constexpr double mdl_MZ__exp__2 = ( ( mdl_MZ ) * ( mdl_MZ ) ); + constexpr double mdl_MZ__exp__4 = ( ( mdl_MZ ) * ( mdl_MZ ) * ( mdl_MZ ) * ( mdl_MZ ) ); + constexpr double mdl_sqrt__2 = constexpr_sqrt( 2. ); + constexpr double mdl_MH__exp__2 = ( ( mdl_MH ) * ( mdl_MH ) ); + constexpr double mdl_aEW = 1. / aEWM1; + constexpr double mdl_MW = constexpr_sqrt( mdl_MZ__exp__2 / 2. + constexpr_sqrt( mdl_MZ__exp__4 / 4. - ( mdl_aEW * M_PI * mdl_MZ__exp__2 ) / ( mdl_Gf * mdl_sqrt__2 ) ) ); + constexpr double mdl_sqrt__aEW = constexpr_sqrt( mdl_aEW ); + constexpr double mdl_ee = 2. * mdl_sqrt__aEW * constexpr_sqrt( M_PI ); + constexpr double mdl_MW__exp__2 = ( ( mdl_MW ) * ( mdl_MW ) ); + constexpr double mdl_sw2 = 1. - mdl_MW__exp__2 / mdl_MZ__exp__2; + constexpr double mdl_cw = constexpr_sqrt( 1. - mdl_sw2 ); + constexpr double mdl_sqrt__sw2 = constexpr_sqrt( mdl_sw2 ); + constexpr double mdl_sw = mdl_sqrt__sw2; + constexpr double mdl_g1 = mdl_ee / mdl_cw; + constexpr double mdl_gw = mdl_ee / mdl_sw; + constexpr double mdl_vev = ( 2. * mdl_MW * mdl_sw ) / mdl_ee; + constexpr double mdl_vev__exp__2 = ( ( mdl_vev ) * ( mdl_vev ) ); + constexpr double mdl_lam = mdl_MH__exp__2 / ( 2. * mdl_vev__exp__2 ); + constexpr double mdl_yb = ( mdl_ymb * mdl_sqrt__2 ) / mdl_vev; + constexpr double mdl_yt = ( mdl_ymt * mdl_sqrt__2 ) / mdl_vev; + constexpr double mdl_ytau = ( mdl_ymtau * mdl_sqrt__2 ) / mdl_vev; + constexpr double mdl_muH = constexpr_sqrt( mdl_lam * mdl_vev__exp__2 ); + constexpr cxsmpl mdl_I1x33 = mdl_yb * mdl_conjg__CKM3x3; + constexpr cxsmpl mdl_I2x33 = mdl_yt * mdl_conjg__CKM3x3; + constexpr cxsmpl mdl_I3x33 = mdl_CKM3x3 * mdl_yt; + constexpr cxsmpl mdl_I4x33 = mdl_CKM3x3 * mdl_yb; + constexpr double mdl_ee__exp__2 = ( ( mdl_ee ) * ( mdl_ee ) ); + constexpr double mdl_sw__exp__2 = ( ( mdl_sw ) * ( mdl_sw ) ); + constexpr double mdl_cw__exp__2 = ( ( mdl_cw ) * ( mdl_cw ) ); + + // Model couplings independent of aS + // (none) + + // Model parameters dependent on aS + //constexpr double mdl_sqrt__aS = //constexpr_sqrt( aS ); // now computed event-by-event (running alphas #373) + //constexpr double G = 2. * mdl_sqrt__aS * //constexpr_sqrt( M_PI ); // now computed event-by-event (running alphas #373) + //constexpr double mdl_G__exp__2 = ( ( G ) * ( G ) ); // now computed event-by-event (running alphas #373) + + // Model couplings dependent on aS + //constexpr cxsmpl GC_10 = -G; // now computed event-by-event (running alphas #373) + //constexpr cxsmpl GC_11 = mdl_complexi * G; // now computed event-by-event (running alphas #373) + + // Print parameters that are unchanged during the run + void printIndependentParameters(); + + // Print couplings that are unchanged during the run + void printIndependentCouplings(); + + // Print parameters that are changed event by event + //void printDependentParameters(); // now computed event-by-event (running alphas #373) + + // Print couplings that are changed event by event + //void printDependentCouplings(); // now computed event-by-event (running alphas #373) } - // Model parameters independent of aS - constexpr double zero = 0; - constexpr double ZERO = 0; - constexpr double mdl_WH = 6.382339e-03; - constexpr double mdl_WW = 2.047600e+00; - constexpr double mdl_WZ = 2.441404e+00; - constexpr double mdl_WT = 1.491500e+00; - constexpr double mdl_ymtau = 1.777000e+00; - constexpr double mdl_ymt = 1.730000e+02; - constexpr double mdl_ymb = 4.700000e+00; - //constexpr double aS = 1.180000e-01; // now retrieved event-by-event (as G) from Fortran (running alphas #373) - constexpr double mdl_Gf = 1.166390e-05; - constexpr double aEWM1 = 1.325070e+02; - constexpr double mdl_MH = 1.250000e+02; - constexpr double mdl_MZ = 9.118800e+01; - constexpr double mdl_MTA = 1.777000e+00; - constexpr double mdl_MT = 1.730000e+02; - constexpr double mdl_MB = 4.700000e+00; - constexpr double mdl_conjg__CKM3x3 = 1.; - constexpr double mdl_conjg__CKM1x1 = 1.; - constexpr double mdl_CKM3x3 = 1.; - constexpr cxsmpl mdl_complexi = cxsmpl( 0., 1. ); - constexpr double mdl_MZ__exp__2 = ( ( mdl_MZ ) * ( mdl_MZ ) ); - constexpr double mdl_MZ__exp__4 = ( ( mdl_MZ ) * ( mdl_MZ ) * ( mdl_MZ ) * ( mdl_MZ ) ); - constexpr double mdl_sqrt__2 = constexpr_sqrt( 2. ); - constexpr double mdl_MH__exp__2 = ( ( mdl_MH ) * ( mdl_MH ) ); - constexpr double mdl_aEW = 1. / aEWM1; - constexpr double mdl_MW = constexpr_sqrt( mdl_MZ__exp__2 / 2. + constexpr_sqrt( mdl_MZ__exp__4 / 4. - ( mdl_aEW * M_PI * mdl_MZ__exp__2 ) / ( mdl_Gf * mdl_sqrt__2 ) ) ); - constexpr double mdl_sqrt__aEW = constexpr_sqrt( mdl_aEW ); - constexpr double mdl_ee = 2. * mdl_sqrt__aEW * constexpr_sqrt( M_PI ); - constexpr double mdl_MW__exp__2 = ( ( mdl_MW ) * ( mdl_MW ) ); - constexpr double mdl_sw2 = 1. - mdl_MW__exp__2 / mdl_MZ__exp__2; - constexpr double mdl_cw = constexpr_sqrt( 1. - mdl_sw2 ); - constexpr double mdl_sqrt__sw2 = constexpr_sqrt( mdl_sw2 ); - constexpr double mdl_sw = mdl_sqrt__sw2; - constexpr double mdl_g1 = mdl_ee / mdl_cw; - constexpr double mdl_gw = mdl_ee / mdl_sw; - constexpr double mdl_vev = ( 2. * mdl_MW * mdl_sw ) / mdl_ee; - constexpr double mdl_vev__exp__2 = ( ( mdl_vev ) * ( mdl_vev ) ); - constexpr double mdl_lam = mdl_MH__exp__2 / ( 2. * mdl_vev__exp__2 ); - constexpr double mdl_yb = ( mdl_ymb * mdl_sqrt__2 ) / mdl_vev; - constexpr double mdl_yt = ( mdl_ymt * mdl_sqrt__2 ) / mdl_vev; - constexpr double mdl_ytau = ( mdl_ymtau * mdl_sqrt__2 ) / mdl_vev; - constexpr double mdl_muH = constexpr_sqrt( mdl_lam * mdl_vev__exp__2 ); - constexpr cxsmpl mdl_I1x33 = mdl_yb * mdl_conjg__CKM3x3; - constexpr cxsmpl mdl_I2x33 = mdl_yt * mdl_conjg__CKM3x3; - constexpr cxsmpl mdl_I3x33 = mdl_CKM3x3 * mdl_yt; - constexpr cxsmpl mdl_I4x33 = mdl_CKM3x3 * mdl_yb; - constexpr double mdl_ee__exp__2 = ( ( mdl_ee ) * ( mdl_ee ) ); - constexpr double mdl_sw__exp__2 = ( ( mdl_sw ) * ( mdl_sw ) ); - constexpr double mdl_cw__exp__2 = ( ( mdl_cw ) * ( mdl_cw ) ); - - // Model couplings independent of aS - // (none) - - // Model parameters dependent on aS - //constexpr double mdl_sqrt__aS = //constexpr_sqrt( aS ); // now computed event-by-event (running alphas #373) - //constexpr double G = 2. * mdl_sqrt__aS * //constexpr_sqrt( M_PI ); // now computed event-by-event (running alphas #373) - //constexpr double mdl_G__exp__2 = ( ( G ) * ( G ) ); // now computed event-by-event (running alphas #373) - - // Model couplings dependent on aS - //constexpr cxsmpl GC_10 = -G; // now computed event-by-event (running alphas #373) - //constexpr cxsmpl GC_11 = mdl_complexi * G; // now computed event-by-event (running alphas #373) - - // Print parameters that are unchanged during the run - void printIndependentParameters(); - - // Print couplings that are unchanged during the run - void printIndependentCouplings(); - - // Print parameters that are changed event by event - //void printDependentParameters(); // now computed event-by-event (running alphas #373) - - // Print couplings that are changed event by event - //void printDependentCouplings(); // now computed event-by-event (running alphas #373) -} +} // end namespace mg5amcGpu/mg5amcCpu #endif //========================================================================== -namespace Parameters_sm_dependentCouplings +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { - constexpr size_t ndcoup = 2; // #couplings that vary event by event because they depend on the running alphas QCD - constexpr size_t idcoup_GC_10 = 0; - constexpr size_t idcoup_GC_11 = 1; - struct DependentCouplings_sv + namespace Parameters_sm_dependentCouplings { - cxtype_sv GC_10; - cxtype_sv GC_11; - }; + constexpr size_t ndcoup = 2; // #couplings that vary event by event because they depend on the running alphas QCD + constexpr size_t idcoup_GC_10 = 0; + constexpr size_t idcoup_GC_11 = 1; + struct DependentCouplings_sv + { + cxtype_sv GC_10; + cxtype_sv GC_11; + }; #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wunused-variable" // e.g. <> #pragma GCC diagnostic ignored "-Wunused-parameter" // e.g. <> @@ -215,51 +240,45 @@ namespace Parameters_sm_dependentCouplings #pragma nv_diagnostic push #pragma nv_diag_suppress 177 // e.g. <> #endif - __host__ __device__ inline const DependentCouplings_sv computeDependentCouplings_fromG( const fptype_sv& G_sv ) - { + __host__ __device__ inline const DependentCouplings_sv computeDependentCouplings_fromG( const fptype_sv& G_sv ) + { #ifdef MGONGPU_HARDCODE_PARAM - using namespace Parameters_sm; + using namespace Parameters_sm; #endif - // NB: hardcode cxtype cI(0,1) instead of cxtype (or hardcoded cxsmpl) mdl_complexi (which exists in Parameters_sm) because: - // (1) mdl_complexi is always (0,1); (2) mdl_complexi is undefined in device code; (3) need cxsmpl conversion to cxtype in code below - const cxtype cI( 0., 1. ); - DependentCouplings_sv out; - // Begin SM implementation - no special handling of vectors of floats as in EFT (#439) - { - const fptype_sv& G = G_sv; - // Model parameters dependent on aS - //const fptype_sv mdl_sqrt__aS = constexpr_sqrt( aS ); - //const fptype_sv G = 2. * mdl_sqrt__aS * constexpr_sqrt( M_PI ); - const fptype_sv mdl_G__exp__2 = ( ( G ) * ( G ) ); - // Model couplings dependent on aS - out.GC_10 = -G; - out.GC_11 = cI * G; + // NB: hardcode cxtype cI(0,1) instead of cxtype (or hardcoded cxsmpl) mdl_complexi (which exists in Parameters_sm) because: + // (1) mdl_complexi is always (0,1); (2) mdl_complexi is undefined in device code; (3) need cxsmpl conversion to cxtype in code below + const cxtype cI( 0., 1. ); + DependentCouplings_sv out; + // Begin SM implementation - no special handling of vectors of floats as in EFT (#439) + { + const fptype_sv& G = G_sv; + // Model parameters dependent on aS + //const fptype_sv mdl_sqrt__aS = constexpr_sqrt( aS ); + //const fptype_sv G = 2. * mdl_sqrt__aS * constexpr_sqrt( M_PI ); + const fptype_sv mdl_G__exp__2 = ( ( G ) * ( G ) ); + // Model couplings dependent on aS + out.GC_10 = -G; + out.GC_11 = cI * G; + } + // End SM implementation - no special handling of vectors of floats as in EFT (#439) + return out; } - // End SM implementation - no special handling of vectors of floats as in EFT (#439) - return out; - } #ifdef __CUDACC__ #pragma GCC diagnostic pop #pragma nv_diagnostic pop #endif -} + } -//========================================================================== + //========================================================================== -namespace Parameters_sm_independentCouplings -{ - constexpr size_t nicoup = 0; // #couplings that are fixed for all events because they do not depend on the running alphas QCD - // NB: there are no aS-independent couplings in this physics process -} + namespace Parameters_sm_independentCouplings + { + constexpr size_t nicoup = 0; // #couplings that are fixed for all events because they do not depend on the running alphas QCD + // NB: there are no aS-independent couplings in this physics process + } -//========================================================================== + //========================================================================== -#ifdef __CUDACC__ -namespace mg5amcGpu -#else -namespace mg5amcCpu -#endif -{ #pragma GCC diagnostic push #ifndef __clang__ #pragma GCC diagnostic ignored "-Wunused-but-set-variable" // e.g. <> @@ -284,7 +303,8 @@ namespace mg5amcCpu return; } #pragma GCC diagnostic pop -} + +} // end namespace mg5amcGpu/mg5amcCpu //========================================================================== diff --git a/epochX/cudacpp/gg_tt.sa/src/cudacpp_src.mk b/epochX/cudacpp/gg_tt.sa/src/cudacpp_src.mk index 21b6d924ff..554d7a704c 100644 --- a/epochX/cudacpp/gg_tt.sa/src/cudacpp_src.mk +++ b/epochX/cudacpp/gg_tt.sa/src/cudacpp_src.mk @@ -38,7 +38,13 @@ endif #------------------------------------------------------------------------------- -#=== Configure ccache for CUDA and C++ builds +#=== Configure the CUDA compiler (note: NVCC is already exported including ccache) + +###$(info NVCC=$(NVCC)) + +#------------------------------------------------------------------------------- + +#=== Configure ccache for C++ builds (note: NVCC is already exported including ccache) # Enable ccache if USECCACHE=1 ifeq ($(USECCACHE)$(shell echo $(CXX) | grep ccache),1) @@ -47,11 +53,6 @@ endif #ifeq ($(USECCACHE)$(shell echo $(AR) | grep ccache),1) # override AR:=ccache $(AR) #endif -#ifneq ($(NVCC),) -# ifeq ($(USECCACHE)$(shell echo $(NVCC) | grep ccache),1) -# override NVCC:=ccache $(NVCC) -# endif -#endif #------------------------------------------------------------------------------- @@ -115,7 +116,9 @@ else ifneq ($(shell $(CXX) --version | grep ^nvc++),) # support nvc++ #531 $(error Unknown AVX='$(AVX)': only 'none', 'sse4', 'avx2', '512y' and '512z' are supported) endif else - ifeq ($(AVX),sse4) + ifeq ($(AVX),none) + override AVXFLAGS = -march=x86-64 # no SIMD (see #588) + else ifeq ($(AVX),sse4) override AVXFLAGS = -march=nehalem # SSE4.2 with 128 width (xmm registers) else ifeq ($(AVX),avx2) override AVXFLAGS = -march=haswell # AVX2 with 256 width (ymm registers) [DEFAULT for clang] @@ -216,7 +219,7 @@ MG5AMC_COMMONLIB = mg5amc_common all.$(TAG): $(BUILDDIR)/.build.$(TAG) $(LIBDIR)/.build.$(TAG) $(LIBDIR)/lib$(MG5AMC_COMMONLIB).so # Target (and build options): debug -debug: OPTFLAGS = -g -O0 -DDEBUG2 +debug: OPTFLAGS = -g -O0 debug: all.$(TAG) # Target: tag-specific build lockfiles @@ -237,17 +240,31 @@ $(LIBDIR)/.build.$(TAG): # Generic target and build rules: objects from C++ compilation $(BUILDDIR)/%.o : %.cc *.h $(BUILDDIR)/.build.$(TAG) - @if [ ! -d $(BUILDDIR) ]; then mkdir -p $(BUILDDIR); fi - $(CXX) $(CPPFLAGS) $(CXXFLAGS) -c $< -o $@ + @if [ ! -d $(BUILDDIR) ]; then echo "mkdir -p $(BUILDDIR)"; mkdir -p $(BUILDDIR); fi + $(CXX) $(CPPFLAGS) $(CXXFLAGS) -fPIC -c $< -o $@ + +# Generic target and build rules: objects from CUDA compilation +$(BUILDDIR)/%_cu.o : %.cc *.h $(BUILDDIR)/.build.$(TAG) + @if [ ! -d $(BUILDDIR) ]; then echo "mkdir -p $(BUILDDIR)"; mkdir -p $(BUILDDIR); fi + $(NVCC) $(CPPFLAGS) $(CUFLAGS) -Xcompiler -fPIC -c -x cu $< -o $@ #------------------------------------------------------------------------------- cxx_objects=$(addprefix $(BUILDDIR)/, Parameters_sm.o read_slha.o) +ifneq ($(NVCC),) +cu_objects=$(addprefix $(BUILDDIR)/, Parameters_sm_cu.o) +endif # Target (and build rules): common (src) library +ifneq ($(NVCC),) +$(LIBDIR)/lib$(MG5AMC_COMMONLIB).so : $(cxx_objects) $(cu_objects) + @if [ ! -d $(LIBDIR) ]; then echo "mkdir -p $(LIBDIR)"; mkdir -p $(LIBDIR); fi + $(NVCC) -shared -o $@ $(cxx_objects) $(cu_objects) +else $(LIBDIR)/lib$(MG5AMC_COMMONLIB).so : $(cxx_objects) @if [ ! -d $(LIBDIR) ]; then echo "mkdir -p $(LIBDIR)"; mkdir -p $(LIBDIR); fi - $(CXX) -shared -o$@ $(cxx_objects) + $(CXX) -shared -o $@ $(cxx_objects) +endif #------------------------------------------------------------------------------- diff --git a/epochX/cudacpp/gg_tt.sa/src/mgOnGpuConfig.h b/epochX/cudacpp/gg_tt.sa/src/mgOnGpuConfig.h index 6c0c4919e9..c0f067f1d8 100644 --- a/epochX/cudacpp/gg_tt.sa/src/mgOnGpuConfig.h +++ b/epochX/cudacpp/gg_tt.sa/src/mgOnGpuConfig.h @@ -98,6 +98,7 @@ #endif #endif +// NB: namespace mgOnGpu includes types which are defined in exactly the same way for CPU and GPU builds (see #318 and #725) namespace mgOnGpu { diff --git a/epochX/cudacpp/gg_tt.sa/src/mgOnGpuCxtypes.h b/epochX/cudacpp/gg_tt.sa/src/mgOnGpuCxtypes.h index 0cb2f1db7e..b56348bc58 100644 --- a/epochX/cudacpp/gg_tt.sa/src/mgOnGpuCxtypes.h +++ b/epochX/cudacpp/gg_tt.sa/src/mgOnGpuCxtypes.h @@ -43,8 +43,12 @@ // COMPLEX TYPES: SIMPLE COMPLEX CLASS (cxsmpl) //========================================================================== +// NB: namespace mgOnGpu includes types which are defined in exactly the same way for CPU and GPU builds (see #318 and #725) namespace mgOnGpu /* clang-format off */ { + // The number of floating point types in a complex type (real, imaginary) + constexpr int nx2 = 2; + // --- Type definition (simple complex type derived from cxtype_v) template class cxsmpl @@ -78,128 +82,139 @@ namespace mgOnGpu /* clang-format off */ using mgOnGpu::cxsmpl; // Printout to stream for user defined types -template -inline __host__ __device__ std::ostream& -operator<<( std::ostream& out, const cxsmpl& c ) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { - out << std::complex( c.real(), c.imag() ); - return out; -} + template + inline __host__ std::ostream& + operator<<( std::ostream& out, const cxsmpl& c ) + { + out << std::complex( c.real(), c.imag() ); + return out; + } -// Operators for cxsmpl -template -inline __host__ __device__ constexpr cxsmpl -operator+( const cxsmpl a ) -{ - return a; -} + // Operators for cxsmpl + template + inline __host__ __device__ constexpr cxsmpl + operator+( const cxsmpl a ) + { + return a; + } -template -inline __host__ __device__ constexpr cxsmpl -operator-( const cxsmpl& a ) -{ - return cxsmpl( -a.real(), -a.imag() ); -} + template + inline __host__ __device__ constexpr cxsmpl + operator-( const cxsmpl& a ) + { + return cxsmpl( -a.real(), -a.imag() ); + } -template -inline __host__ __device__ constexpr cxsmpl -operator+( const cxsmpl& a, const cxsmpl& b ) -{ - return cxsmpl( a.real() + b.real(), a.imag() + b.imag() ); -} + template + inline __host__ __device__ constexpr cxsmpl + operator+( const cxsmpl& a, const cxsmpl& b ) + { + return cxsmpl( a.real() + b.real(), a.imag() + b.imag() ); + } -template -inline __host__ __device__ constexpr cxsmpl -operator+( const FP& a, const cxsmpl& b ) -{ - return cxsmpl( a, 0 ) + b; -} + template + inline __host__ __device__ constexpr cxsmpl + operator+( const FP& a, const cxsmpl& b ) + { + return cxsmpl( a, 0 ) + b; + } -template -inline __host__ __device__ constexpr cxsmpl -operator-( const cxsmpl& a, const cxsmpl& b ) -{ - return cxsmpl( a.real() - b.real(), a.imag() - b.imag() ); -} + template + inline __host__ __device__ constexpr cxsmpl + operator-( const cxsmpl& a, const cxsmpl& b ) + { + return cxsmpl( a.real() - b.real(), a.imag() - b.imag() ); + } -template -inline __host__ __device__ constexpr cxsmpl -operator-( const FP& a, const cxsmpl& b ) -{ - return cxsmpl( a, 0 ) - b; -} + template + inline __host__ __device__ constexpr cxsmpl + operator-( const FP& a, const cxsmpl& b ) + { + return cxsmpl( a, 0 ) - b; + } -template -inline __host__ __device__ constexpr cxsmpl -operator*( const cxsmpl& a, const cxsmpl& b ) -{ - return cxsmpl( a.real() * b.real() - a.imag() * b.imag(), a.imag() * b.real() + a.real() * b.imag() ); -} + template + inline __host__ __device__ constexpr cxsmpl + operator*( const cxsmpl& a, const cxsmpl& b ) + { + return cxsmpl( a.real() * b.real() - a.imag() * b.imag(), a.imag() * b.real() + a.real() * b.imag() ); + } -template -inline __host__ __device__ constexpr cxsmpl -operator*( const FP& a, const cxsmpl& b ) -{ - return cxsmpl( a, 0 ) * b; -} + template + inline __host__ __device__ constexpr cxsmpl + operator*( const FP& a, const cxsmpl& b ) + { + return cxsmpl( a, 0 ) * b; + } -inline __host__ __device__ constexpr cxsmpl -operator*( const double& a, const cxsmpl& b ) -{ - return cxsmpl( a, 0 ) * b; -} + inline __host__ __device__ constexpr cxsmpl + operator*( const double& a, const cxsmpl& b ) + { + return cxsmpl( a, 0 ) * b; + } -template -inline __host__ __device__ constexpr cxsmpl -operator/( const cxsmpl& a, const cxsmpl& b ) -{ - FP bnorm = b.real() * b.real() + b.imag() * b.imag(); - return cxsmpl( ( a.real() * b.real() + a.imag() * b.imag() ) / bnorm, - ( a.imag() * b.real() - a.real() * b.imag() ) / bnorm ); -} + template + inline __host__ __device__ constexpr cxsmpl + operator/( const cxsmpl& a, const cxsmpl& b ) + { + FP bnorm = b.real() * b.real() + b.imag() * b.imag(); + return cxsmpl( ( a.real() * b.real() + a.imag() * b.imag() ) / bnorm, + ( a.imag() * b.real() - a.real() * b.imag() ) / bnorm ); + } -template -inline __host__ __device__ constexpr cxsmpl -operator/( const FP& a, const cxsmpl& b ) -{ - return cxsmpl( a, 0 ) / b; -} + template + inline __host__ __device__ constexpr cxsmpl + operator/( const FP& a, const cxsmpl& b ) + { + return cxsmpl( a, 0 ) / b; + } -template -inline __host__ __device__ constexpr cxsmpl -operator+( const cxsmpl& a, const FP& b ) -{ - return a + cxsmpl( b, 0 ); -} + template + inline __host__ __device__ constexpr cxsmpl + operator+( const cxsmpl& a, const FP& b ) + { + return a + cxsmpl( b, 0 ); + } -template -inline __host__ __device__ constexpr cxsmpl -operator-( const cxsmpl& a, const FP& b ) -{ - return a - cxsmpl( b, 0 ); -} + template + inline __host__ __device__ constexpr cxsmpl + operator-( const cxsmpl& a, const FP& b ) + { + return a - cxsmpl( b, 0 ); + } -template -inline __host__ __device__ constexpr cxsmpl -operator*( const cxsmpl& a, const FP& b ) -{ - return a * cxsmpl( b, 0 ); -} + template + inline __host__ __device__ constexpr cxsmpl + operator*( const cxsmpl& a, const FP& b ) + { + return a * cxsmpl( b, 0 ); + } -template -inline __host__ __device__ constexpr cxsmpl -operator/( const cxsmpl& a, const FP& b ) -{ - return a / cxsmpl( b, 0 ); + template + inline __host__ __device__ constexpr cxsmpl + operator/( const cxsmpl& a, const FP& b ) + { + return a / cxsmpl( b, 0 ); + } } //========================================================================== // COMPLEX TYPES: (PLATFORM-SPECIFIC) TYPEDEFS //========================================================================== -namespace mgOnGpu +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { - // --- Type definitions (complex type: cxtype) #ifdef __CUDACC__ // cuda #if defined MGONGPU_CUCXTYPE_THRUST @@ -221,390 +236,402 @@ namespace mgOnGpu #endif #endif - // The number of floating point types in a complex type (real, imaginary) - constexpr int nx2 = 2; - // SANITY CHECK: memory access may be based on casts of fptype[2] to cxtype (e.g. for wavefunctions) - static_assert( sizeof( cxtype ) == nx2 * sizeof( fptype ), "sizeof(cxtype) is not 2*sizeof(fptype)" ); + static_assert( sizeof( cxtype ) == mgOnGpu::nx2 * sizeof( fptype ), "sizeof(cxtype) is not 2*sizeof(fptype)" ); } -// Expose typedefs and operators outside the namespace -using mgOnGpu::cxtype; +// DANGEROUS! this was mixing different cxtype definitions for CPU and GPU builds (see #318 and #725) +// DO NOT expose typedefs and operators outside the namespace +//using mgOnGpu::cxtype; //========================================================================== // COMPLEX TYPES: (PLATFORM-SPECIFIC) FUNCTIONS AND OPERATORS //========================================================================== +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif +{ #if defined MGONGPU_CUCXTYPE_CXSMPL or defined MGONGPU_CPPCXTYPE_CXSMPL -//------------------------------ -// CUDA or C++ - using cxsmpl -//------------------------------ + //------------------------------ + // CUDA or C++ - using cxsmpl + //------------------------------ -inline __host__ __device__ cxtype -cxmake( const fptype& r, const fptype& i ) -{ - return cxtype( r, i ); // cxsmpl constructor -} + inline __host__ __device__ cxtype + cxmake( const fptype& r, const fptype& i ) + { + return cxtype( r, i ); // cxsmpl constructor + } -inline __host__ __device__ fptype -cxreal( const cxtype& c ) -{ - return c.real(); // cxsmpl::real() -} + inline __host__ __device__ fptype + cxreal( const cxtype& c ) + { + return c.real(); // cxsmpl::real() + } -inline __host__ __device__ fptype -cximag( const cxtype& c ) -{ - return c.imag(); // cxsmpl::imag() -} + inline __host__ __device__ fptype + cximag( const cxtype& c ) + { + return c.imag(); // cxsmpl::imag() + } -inline __host__ __device__ cxtype -cxconj( const cxtype& c ) -{ - return conj( c ); // conj( cxsmpl ) -} + inline __host__ __device__ cxtype + cxconj( const cxtype& c ) + { + return conj( c ); // conj( cxsmpl ) + } -inline __host__ cxtype // NOT __device__ -cxmake( const std::complex& c ) // std::complex to cxsmpl (float-to-float or float-to-double) -{ - return cxmake( c.real(), c.imag() ); -} + inline __host__ cxtype // NOT __device__ + cxmake( const std::complex& c ) // std::complex to cxsmpl (float-to-float or float-to-double) + { + return cxmake( c.real(), c.imag() ); + } -inline __host__ cxtype // NOT __device__ -cxmake( const std::complex& c ) // std::complex to cxsmpl (double-to-float or double-to-double) -{ - return cxmake( c.real(), c.imag() ); -} + inline __host__ cxtype // NOT __device__ + cxmake( const std::complex& c ) // std::complex to cxsmpl (double-to-float or double-to-double) + { + return cxmake( c.real(), c.imag() ); + } #endif // #if defined MGONGPU_CUCXTYPE_CXSMPL or defined MGONGPU_CPPCXTYPE_CXSMPL -//========================================================================== + //========================================================================== #if defined __CUDACC__ and defined MGONGPU_CUCXTYPE_THRUST // cuda + thrust -//------------------------------ -// CUDA - using thrust::complex -//------------------------------ + //------------------------------ + // CUDA - using thrust::complex + //------------------------------ -inline __host__ __device__ cxtype -cxmake( const fptype& r, const fptype& i ) -{ - return cxtype( r, i ); // thrust::complex constructor -} + inline __host__ __device__ cxtype + cxmake( const fptype& r, const fptype& i ) + { + return cxtype( r, i ); // thrust::complex constructor + } -inline __host__ __device__ fptype -cxreal( const cxtype& c ) -{ - return c.real(); // thrust::complex::real() -} + inline __host__ __device__ fptype + cxreal( const cxtype& c ) + { + return c.real(); // thrust::complex::real() + } -inline __host__ __device__ fptype -cximag( const cxtype& c ) -{ - return c.imag(); // thrust::complex::imag() -} + inline __host__ __device__ fptype + cximag( const cxtype& c ) + { + return c.imag(); // thrust::complex::imag() + } -inline __host__ __device__ cxtype -cxconj( const cxtype& c ) -{ - return conj( c ); // conj( thrust::complex ) -} + inline __host__ __device__ cxtype + cxconj( const cxtype& c ) + { + return conj( c ); // conj( thrust::complex ) + } -inline __host__ __device__ const cxtype& -cxmake( const cxtype& c ) -{ - return c; -} + inline __host__ __device__ const cxtype& + cxmake( const cxtype& c ) + { + return c; + } #endif // #if defined __CUDACC__ and defined MGONGPU_CUCXTYPE_THRUST -//========================================================================== + //========================================================================== #if defined __CUDACC__ and defined MGONGPU_CUCXTYPE_CUCOMPLEX // cuda + cucomplex -//------------------------------ -// CUDA - using cuComplex -//------------------------------ + //------------------------------ + // CUDA - using cuComplex + //------------------------------ #if defined MGONGPU_FPTYPE_DOUBLE // cuda + cucomplex + double -//+++++++++++++++++++++++++ -// cuDoubleComplex ONLY -//+++++++++++++++++++++++++ + //+++++++++++++++++++++++++ + // cuDoubleComplex ONLY + //+++++++++++++++++++++++++ -inline __host__ __device__ cxtype -cxmake( const fptype& r, const fptype& i ) -{ - return make_cuDoubleComplex( r, i ); -} + inline __host__ __device__ cxtype + cxmake( const fptype& r, const fptype& i ) + { + return make_cuDoubleComplex( r, i ); + } -inline __host__ __device__ fptype -cxreal( const cxtype& c ) -{ - return cuCreal( c ); // returns by value -} + inline __host__ __device__ fptype + cxreal( const cxtype& c ) + { + return cuCreal( c ); // returns by value + } -inline __host__ __device__ fptype -cximag( const cxtype& c ) -{ - return cuCimag( c ); // returns by value -} + inline __host__ __device__ fptype + cximag( const cxtype& c ) + { + return cuCimag( c ); // returns by value + } -inline __host__ __device__ cxtype -operator+( const cxtype& a, const cxtype& b ) -{ - return cuCadd( a, b ); -} + inline __host__ __device__ cxtype + operator+( const cxtype& a, const cxtype& b ) + { + return cuCadd( a, b ); + } -inline __host__ __device__ cxtype& -operator+=( cxtype& a, const cxtype& b ) -{ - a = cuCadd( a, b ); - return a; -} + inline __host__ __device__ cxtype& + operator+=( cxtype& a, const cxtype& b ) + { + a = cuCadd( a, b ); + return a; + } -inline __host__ __device__ cxtype -operator-( const cxtype& a, const cxtype& b ) -{ - return cuCsub( a, b ); -} + inline __host__ __device__ cxtype + operator-( const cxtype& a, const cxtype& b ) + { + return cuCsub( a, b ); + } -inline __host__ __device__ cxtype& -operator-=( cxtype& a, const cxtype& b ) -{ - a = cuCsub( a, b ); - return a; -} + inline __host__ __device__ cxtype& + operator-=( cxtype& a, const cxtype& b ) + { + a = cuCsub( a, b ); + return a; + } -inline __host__ __device__ cxtype -operator*( const cxtype& a, const cxtype& b ) -{ - return cuCmul( a, b ); -} + inline __host__ __device__ cxtype + operator*( const cxtype& a, const cxtype& b ) + { + return cuCmul( a, b ); + } -inline __host__ __device__ cxtype -operator/( const cxtype& a, const cxtype& b ) -{ - return cuCdiv( a, b ); -} + inline __host__ __device__ cxtype + operator/( const cxtype& a, const cxtype& b ) + { + return cuCdiv( a, b ); + } #elif defined MGONGPU_FPTYPE_FLOAT // cuda + cucomplex + float -//+++++++++++++++++++++++++ -// cuFloatComplex ONLY -//+++++++++++++++++++++++++ + //+++++++++++++++++++++++++ + // cuFloatComplex ONLY + //+++++++++++++++++++++++++ -inline __host__ __device__ cxtype -cxmake( const fptype& r, const fptype& i ) -{ - return make_cuFloatComplex( r, i ); -} + inline __host__ __device__ cxtype + cxmake( const fptype& r, const fptype& i ) + { + return make_cuFloatComplex( r, i ); + } -inline __host__ __device__ fptype -cxreal( const cxtype& c ) -{ - return cuCrealf( c ); // returns by value -} + inline __host__ __device__ fptype + cxreal( const cxtype& c ) + { + return cuCrealf( c ); // returns by value + } -inline __host__ __device__ fptype -cximag( const cxtype& c ) -{ - return cuCimagf( c ); // returns by value -} + inline __host__ __device__ fptype + cximag( const cxtype& c ) + { + return cuCimagf( c ); // returns by value + } -inline __host__ __device__ cxtype -operator+( const cxtype& a, const cxtype& b ) -{ - return cuCaddf( a, b ); -} + inline __host__ __device__ cxtype + operator+( const cxtype& a, const cxtype& b ) + { + return cuCaddf( a, b ); + } -inline __host__ __device__ cxtype& -operator+=( cxtype& a, const cxtype& b ) -{ - a = cuCaddf( a, b ); - return a; -} + inline __host__ __device__ cxtype& + operator+=( cxtype& a, const cxtype& b ) + { + a = cuCaddf( a, b ); + return a; + } -inline __host__ __device__ cxtype -operator-( const cxtype& a, const cxtype& b ) -{ - return cuCsubf( a, b ); -} + inline __host__ __device__ cxtype + operator-( const cxtype& a, const cxtype& b ) + { + return cuCsubf( a, b ); + } -inline __host__ __device__ cxtype& -operator-=( cxtype& a, const cxtype& b ) -{ - a = cuCsubf( a, b ); - return a; -} + inline __host__ __device__ cxtype& + operator-=( cxtype& a, const cxtype& b ) + { + a = cuCsubf( a, b ); + return a; + } -inline __host__ __device__ cxtype -operator*( const cxtype& a, const cxtype& b ) -{ - return cuCmulf( a, b ); -} + inline __host__ __device__ cxtype + operator*( const cxtype& a, const cxtype& b ) + { + return cuCmulf( a, b ); + } -inline __host__ __device__ cxtype -operator/( const cxtype& a, const cxtype& b ) -{ - return cuCdivf( a, b ); -} + inline __host__ __device__ cxtype + operator/( const cxtype& a, const cxtype& b ) + { + return cuCdivf( a, b ); + } -inline __host__ cxtype // NOT __device__ -cxmake( const std::complex& c ) // std::complex to cucomplex (cast double-to-float) -{ - return cxmake( (fptype)c.real(), (fptype)c.imag() ); -} + inline __host__ cxtype // NOT __device__ + cxmake( const std::complex& c ) // std::complex to cucomplex (cast double-to-float) + { + return cxmake( (fptype)c.real(), (fptype)c.imag() ); + } #endif -//+++++++++++++++++++++++++ -// cuDoubleComplex OR -// cuFloatComplex -//+++++++++++++++++++++++++ + //+++++++++++++++++++++++++ + // cuDoubleComplex OR + // cuFloatComplex + //+++++++++++++++++++++++++ -inline __host__ __device__ cxtype -operator+( const cxtype a ) -{ - return a; -} + inline __host__ __device__ cxtype + operator+( const cxtype a ) + { + return a; + } -inline __host__ __device__ cxtype -operator-( const cxtype& a ) -{ - return cxmake( -cxreal( a ), -cximag( a ) ); -} + inline __host__ __device__ cxtype + operator-( const cxtype& a ) + { + return cxmake( -cxreal( a ), -cximag( a ) ); + } -inline __host__ __device__ cxtype -operator+( const fptype& a, const cxtype& b ) -{ - return cxmake( a, 0 ) + b; -} + inline __host__ __device__ cxtype + operator+( const fptype& a, const cxtype& b ) + { + return cxmake( a, 0 ) + b; + } -inline __host__ __device__ cxtype -operator-( const fptype& a, const cxtype& b ) -{ - return cxmake( a, 0 ) - b; -} + inline __host__ __device__ cxtype + operator-( const fptype& a, const cxtype& b ) + { + return cxmake( a, 0 ) - b; + } -inline __host__ __device__ cxtype -operator*( const fptype& a, const cxtype& b ) -{ - return cxmake( a, 0 ) * b; -} + inline __host__ __device__ cxtype + operator*( const fptype& a, const cxtype& b ) + { + return cxmake( a, 0 ) * b; + } -inline __host__ __device__ cxtype -operator/( const fptype& a, const cxtype& b ) -{ - return cxmake( a, 0 ) / b; -} + inline __host__ __device__ cxtype + operator/( const fptype& a, const cxtype& b ) + { + return cxmake( a, 0 ) / b; + } -inline __host__ __device__ cxtype -operator+( const cxtype& a, const fptype& b ) -{ - return a + cxmake( b, 0 ); -} + inline __host__ __device__ cxtype + operator+( const cxtype& a, const fptype& b ) + { + return a + cxmake( b, 0 ); + } -inline __host__ __device__ cxtype -operator-( const cxtype& a, const fptype& b ) -{ - return a - cxmake( b, 0 ); -} + inline __host__ __device__ cxtype + operator-( const cxtype& a, const fptype& b ) + { + return a - cxmake( b, 0 ); + } -inline __host__ __device__ cxtype -operator*( const cxtype& a, const fptype& b ) -{ - return a * cxmake( b, 0 ); -} + inline __host__ __device__ cxtype + operator*( const cxtype& a, const fptype& b ) + { + return a * cxmake( b, 0 ); + } -inline __host__ __device__ cxtype -operator/( const cxtype& a, const fptype& b ) -{ - return a / cxmake( b, 0 ); -} + inline __host__ __device__ cxtype + operator/( const cxtype& a, const fptype& b ) + { + return a / cxmake( b, 0 ); + } -inline __host__ __device__ cxtype -cxconj( const cxtype& c ) -{ - return cxmake( cxreal( c ), -cximag( c ) ); -} + inline __host__ __device__ cxtype + cxconj( const cxtype& c ) + { + return cxmake( cxreal( c ), -cximag( c ) ); + } -inline __host__ cxtype // NOT __device__ -cxmake( const std::complex& c ) // std::complex to cucomplex (float-to-float or double-to-double) -{ - return cxmake( c.real(), c.imag() ); -} + inline __host__ cxtype // NOT __device__ + cxmake( const std::complex& c ) // std::complex to cucomplex (float-to-float or double-to-double) + { + return cxmake( c.real(), c.imag() ); + } #endif // #if defined __CUDACC__ and defined MGONGPU_CUCXTYPE_CUCOMPLEX -//========================================================================== + //========================================================================== #if not defined __CUDACC__ and defined MGONGPU_CPPCXTYPE_STDCOMPLEX // c++ + stdcomplex -//------------------------------ -// C++ - using std::complex -//------------------------------ + //------------------------------ + // C++ - using std::complex + //------------------------------ -inline cxtype -cxmake( const fptype& r, const fptype& i ) -{ - return cxtype( r, i ); // std::complex constructor -} + inline cxtype + cxmake( const fptype& r, const fptype& i ) + { + return cxtype( r, i ); // std::complex constructor + } -inline fptype -cxreal( const cxtype& c ) -{ - return c.real(); // std::complex::real() -} + inline fptype + cxreal( const cxtype& c ) + { + return c.real(); // std::complex::real() + } -inline fptype -cximag( const cxtype& c ) -{ - return c.imag(); // std::complex::imag() -} + inline fptype + cximag( const cxtype& c ) + { + return c.imag(); // std::complex::imag() + } -inline cxtype -cxconj( const cxtype& c ) -{ - return conj( c ); // conj( std::complex ) -} + inline cxtype + cxconj( const cxtype& c ) + { + return conj( c ); // conj( std::complex ) + } -inline const cxtype& -cxmake( const cxtype& c ) // std::complex to std::complex (float-to-float or double-to-double) -{ - return c; -} + inline const cxtype& + cxmake( const cxtype& c ) // std::complex to std::complex (float-to-float or double-to-double) + { + return c; + } #if defined MGONGPU_FPTYPE_FLOAT -inline cxtype -cxmake( const std::complex& c ) // std::complex to std::complex (cast double-to-float) -{ - return cxmake( (fptype)c.real(), (fptype)c.imag() ); -} + inline cxtype + cxmake( const std::complex& c ) // std::complex to std::complex (cast double-to-float) + { + return cxmake( (fptype)c.real(), (fptype)c.imag() ); + } #endif #endif // #if not defined __CUDACC__ and defined MGONGPU_CPPCXTYPE_STDCOMPLEX -//========================================================================== + //========================================================================== -inline __host__ __device__ const cxtype -cxmake( const cxsmpl& c ) // cxsmpl to cxtype (float-to-float or float-to-double) -{ - return cxmake( c.real(), c.imag() ); -} + inline __host__ __device__ const cxtype + cxmake( const cxsmpl& c ) // cxsmpl to cxtype (float-to-float or float-to-double) + { + return cxmake( c.real(), c.imag() ); + } -inline __host__ __device__ const cxtype -cxmake( const cxsmpl& c ) // cxsmpl to cxtype (double-to-float or double-to-double) -{ - return cxmake( c.real(), c.imag() ); -} + inline __host__ __device__ const cxtype + cxmake( const cxsmpl& c ) // cxsmpl to cxtype (double-to-float or double-to-double) + { + return cxmake( c.real(), c.imag() ); + } + +} // end namespace mg5amcGpu/mg5amcCpu //========================================================================== // COMPLEX TYPES: WRAPPER OVER RI FLOATING POINT PAIR (cxtype_ref) //========================================================================== -namespace mgOnGpu /* clang-format off */ +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { // The cxtype_ref class (a non-const reference to two fp variables) was originally designed for cxtype_v::operator[] // It used to be included in the code only when MGONGPU_HAS_CPPCXTYPEV_BRK (originally MGONGPU_HAS_CPPCXTYPE_REF) is defined @@ -615,23 +642,30 @@ namespace mgOnGpu /* clang-format off */ cxtype_ref() = delete; cxtype_ref( const cxtype_ref& ) = delete; cxtype_ref( cxtype_ref&& ) = default; // copy refs - __host__ __device__ cxtype_ref( fptype& r, fptype& i ) : m_preal( &r ), m_pimag( &i ) {} // copy refs + __host__ __device__ cxtype_ref( fptype& r, fptype& i ) + : m_preal( &r ), m_pimag( &i ) {} // copy refs cxtype_ref& operator=( const cxtype_ref& ) = delete; //__host__ __device__ cxtype_ref& operator=( cxtype_ref&& c ) {...} // REMOVED! Should copy refs or copy values? No longer needed in cxternary - __host__ __device__ cxtype_ref& operator=( const cxtype& c ) { *m_preal = cxreal( c ); *m_pimag = cximag( c ); return *this; } // copy values + __host__ __device__ cxtype_ref& operator=( const cxtype& c ) + { + *m_preal = cxreal( c ); + *m_pimag = cximag( c ); + return *this; + } // copy values __host__ __device__ operator cxtype() const { return cxmake( *m_preal, *m_pimag ); } private: fptype *m_preal, *m_pimag; // RI }; -} /* clang-format on */ -// Printout to stream for user defined types -inline __host__ __device__ std::ostream& -operator<<( std::ostream& out, const mgOnGpu::cxtype_ref& c ) -{ - out << (cxtype)c; - return out; -} + // Printout to stream for user defined types + inline __host__ __device__ std::ostream& + operator<<( std::ostream& out, const cxtype_ref& c ) + { + out << (cxtype)c; + return out; + } + +} // end namespace mg5amcGpu/mg5amcCpu //========================================================================== diff --git a/epochX/cudacpp/gg_tt.sa/src/mgOnGpuFptypes.h b/epochX/cudacpp/gg_tt.sa/src/mgOnGpuFptypes.h index a1cde16a67..905c97d700 100644 --- a/epochX/cudacpp/gg_tt.sa/src/mgOnGpuFptypes.h +++ b/epochX/cudacpp/gg_tt.sa/src/mgOnGpuFptypes.h @@ -11,82 +11,91 @@ #include #include -//========================================================================== - -#ifdef __CUDACC__ // cuda - -//------------------------------ -// Floating point types - Cuda -//------------------------------ - -/* -inline __host__ __device__ fptype -fpmax( const fptype& a, const fptype& b ) -{ - return max( a, b ); -} - -inline __host__ __device__ fptype -fpmin( const fptype& a, const fptype& b ) -{ - return min( a, b ); -} -*/ - -inline __host__ __device__ const fptype& -fpmax( const fptype& a, const fptype& b ) +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { - return ( ( b < a ) ? a : b ); -} + //========================================================================== -inline __host__ __device__ const fptype& -fpmin( const fptype& a, const fptype& b ) -{ - return ( ( a < b ) ? a : b ); -} +#ifdef __CUDACC__ // cuda -inline __host__ __device__ fptype -fpsqrt( const fptype& f ) -{ + //------------------------------ + // Floating point types - Cuda + //------------------------------ + + /* + inline __host__ __device__ fptype + fpmax( const fptype& a, const fptype& b ) + { + return max( a, b ); + } + + inline __host__ __device__ fptype + fpmin( const fptype& a, const fptype& b ) + { + return min( a, b ); + } + */ + + inline __host__ __device__ const fptype& + fpmax( const fptype& a, const fptype& b ) + { + return ( ( b < a ) ? a : b ); + } + + inline __host__ __device__ const fptype& + fpmin( const fptype& a, const fptype& b ) + { + return ( ( a < b ) ? a : b ); + } + + inline __host__ __device__ fptype + fpsqrt( const fptype& f ) + { #if defined MGONGPU_FPTYPE_FLOAT - // See https://docs.nvidia.com/cuda/cuda-math-api/group__CUDA__MATH__SINGLE.html - return sqrtf( f ); + // See https://docs.nvidia.com/cuda/cuda-math-api/group__CUDA__MATH__SINGLE.html + return sqrtf( f ); #else - // See https://docs.nvidia.com/cuda/cuda-math-api/group__CUDA__MATH__DOUBLE.html - return sqrt( f ); + // See https://docs.nvidia.com/cuda/cuda-math-api/group__CUDA__MATH__DOUBLE.html + return sqrt( f ); #endif -} + } #endif // #ifdef __CUDACC__ -//========================================================================== + //========================================================================== #ifndef __CUDACC__ -//------------------------------ -// Floating point types - C++ -//------------------------------ + //------------------------------ + // Floating point types - C++ + //------------------------------ -inline const fptype& -fpmax( const fptype& a, const fptype& b ) -{ - return std::max( a, b ); -} + inline const fptype& + fpmax( const fptype& a, const fptype& b ) + { + return std::max( a, b ); + } -inline const fptype& -fpmin( const fptype& a, const fptype& b ) -{ - return std::min( a, b ); -} + inline const fptype& + fpmin( const fptype& a, const fptype& b ) + { + return std::min( a, b ); + } -inline fptype -fpsqrt( const fptype& f ) -{ - return std::sqrt( f ); -} + inline fptype + fpsqrt( const fptype& f ) + { + return std::sqrt( f ); + } #endif // #ifndef __CUDACC__ -//========================================================================== + //========================================================================== + +} // end namespace mg5amcGpu/mg5amcCpu #endif // MGONGPUFPTYPES_H diff --git a/epochX/cudacpp/gg_tt.sa/src/mgOnGpuVectors.h b/epochX/cudacpp/gg_tt.sa/src/mgOnGpuVectors.h index 9d3e82b1e3..0d3892d026 100644 --- a/epochX/cudacpp/gg_tt.sa/src/mgOnGpuVectors.h +++ b/epochX/cudacpp/gg_tt.sa/src/mgOnGpuVectors.h @@ -31,7 +31,12 @@ //#undef MGONGPU_HAS_CPPCXTYPEV_BRK // gcc test (very slightly slower? issue #172) #endif -namespace mgOnGpu /* clang-format off */ +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { #ifdef MGONGPU_CPPSIMD @@ -72,22 +77,40 @@ namespace mgOnGpu /* clang-format off */ public: // Array initialization: zero-out as "{0}" (C and C++) or as "{}" (C++ only) // See https://en.cppreference.com/w/c/language/array_initialization#Notes - cxtype_v() : m_real{ 0 }, m_imag{ 0 } {} // RRRR=0000 IIII=0000 + cxtype_v() + : m_real{ 0 }, m_imag{ 0 } {} // RRRR=0000 IIII=0000 cxtype_v( const cxtype_v& ) = default; cxtype_v( cxtype_v&& ) = default; - cxtype_v( const fptype_v& r, const fptype_v& i ) : m_real( r ), m_imag( i ) {} - cxtype_v( const fptype_v& r ) : m_real( r ), m_imag{ 0 } {} // IIII=0000 + cxtype_v( const fptype_v& r, const fptype_v& i ) + : m_real( r ), m_imag( i ) {} + cxtype_v( const fptype_v& r ) + : m_real( r ), m_imag{ 0 } {} // IIII=0000 + cxtype_v( const fptype& r ) + : m_real( fptype_v{} + r ), m_imag{ 0 } {} // IIII=0000 cxtype_v& operator=( const cxtype_v& ) = default; cxtype_v& operator=( cxtype_v&& ) = default; - cxtype_v& operator+=( const cxtype_v& c ) { m_real += c.real(); m_imag += c.imag(); return *this; } - cxtype_v& operator-=( const cxtype_v& c ) { m_real -= c.real(); m_imag -= c.imag(); return *this; } + cxtype_v& operator+=( const cxtype_v& c ) + { + m_real += c.real(); + m_imag += c.imag(); + return *this; + } + cxtype_v& operator-=( const cxtype_v& c ) + { + m_real -= c.real(); + m_imag -= c.imag(); + return *this; + } #ifdef MGONGPU_HAS_CPPCXTYPEV_BRK // NB: THIS IS THE FUNDAMENTAL DIFFERENCE BETWEEN MGONGPU_HAS_CPPCXTYPEV_BRK DEFINED AND NOT DEFINED // NB: the alternative "clang" implementation is simpler: it simply does not have any bracket operator[] // NB: ** do NOT implement operator[] to return a value: it does not fail the build (why?) and gives unexpected results! ** cxtype_ref operator[]( size_t i ) const { return cxtype_ref( m_real[i], m_imag[i] ); } #endif - const fptype_v& real() const { return m_real; } + const fptype_v& real() const + { + return m_real; + } const fptype_v& imag() const { return m_imag; } private: fptype_v m_real, m_imag; // RRRRIIII @@ -98,7 +121,7 @@ namespace mgOnGpu /* clang-format off */ #if defined MGONGPU_FPTYPE_DOUBLE typedef long int bool_v __attribute__( ( ext_vector_type( neppV ) ) ); // bbbb #elif defined MGONGPU_FPTYPE_FLOAT - typedef int bool_v __attribute__( ( ext_vector_type( neppV ) ) ); // bbbb + typedef int bool_v __attribute__( ( ext_vector_type( neppV ) ) ); // bbbb #endif #else // gcc #if defined MGONGPU_FPTYPE_DOUBLE @@ -113,532 +136,551 @@ namespace mgOnGpu /* clang-format off */ const int neppV = 1; #endif // #ifdef MGONGPU_CPPSIMD - -} /* clang-format on */ +} //-------------------------------------------------------------------------- -// Expose typedefs outside the namespace -using mgOnGpu::neppV; -#ifdef MGONGPU_CPPSIMD -using mgOnGpu::fptype_v; -using mgOnGpu::fptype2_v; -using mgOnGpu::cxtype_v; -using mgOnGpu::bool_v; -#endif +// DANGEROUS! this was mixing different cxtype definitions for CPU and GPU builds (see #318 and #725) +// DO NOT expose typedefs outside the namespace +//using mgOnGpu::neppV; +//#ifdef MGONGPU_CPPSIMD +//using mgOnGpu::fptype_v; +//using mgOnGpu::fptype2_v; +//using mgOnGpu::cxtype_v; +//using mgOnGpu::bool_v; +//#endif -//-------------------------------------------------------------------------- +//========================================================================== +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif +{ #ifndef __CUDACC__ -// Printout to stream for user defined types + // Printout to stream for user defined types #ifndef MGONGPU_CPPCXTYPE_CXSMPL // operator<< for cxsmpl has already been defined! -inline std::ostream& -operator<<( std::ostream& out, const cxtype& c ) -{ - out << "[" << cxreal( c ) << "," << cximag( c ) << "]"; - //out << cxreal(c) << "+i" << cximag(c); - return out; -} + inline std::ostream& + operator<<( std::ostream& out, const cxtype& c ) + { + out << "[" << cxreal( c ) << "," << cximag( c ) << "]"; + //out << cxreal(c) << "+i" << cximag(c); + return out; + } #endif -/* + /* #ifdef MGONGPU_CPPSIMD -inline std::ostream& -operator<<( std::ostream& out, const bool_v& v ) -{ - out << "{ " << v[0]; - for ( int i=1; i t t~; add process g g > t t~ g No model currently active, so we import the Standard Model INFO: load particles INFO: load vertices -DEBUG: model prefixing takes 0.004670143127441406  +DEBUG: model prefixing takes 0.004668235778808594  INFO: Restrict model sm with file models/sm/restrict_default.dat . DEBUG: Simplifying conditional expressions  DEBUG: remove interactions: u s w+ at order: QED=1  @@ -155,7 +155,7 @@ INFO: Please specify coupling orders to bypass this step. INFO: Trying coupling order WEIGHTED<=2: WEIGTHED IS QCD+2*QED INFO: Trying process: g g > t t~ WEIGHTED<=2 @1 INFO: Process has 3 diagrams -1 processes with 3 diagrams generated in 0.008 s +1 processes with 3 diagrams generated in 0.007 s Total: 1 processes with 3 diagrams INFO: Checking for minimal orders which gives processes. INFO: Please specify coupling orders to bypass this step. @@ -183,41 +183,41 @@ INFO: Processing color information for process: g g > t t~ g @2 INFO: Generating Helas calls for process: g g > t t~ WEIGHTED<=2 @1 INFO: Processing color information for process: g g > t t~ @1 INFO: Creating files in directory P2_gg_ttxg -DEBUG: Entering PLUGIN_OneProcessExporter.__init__ [model_handling.py at line 1028]  -DEBUG: kwargs[prefix] = 0 [model_handling.py at line 1029]  -DEBUG: proc_id =  1 [model_handling.py at line 1034]  -DEBUG: process_exporter_cpp =  [export_v4.py at line 6174]  +DEBUG: Entering PLUGIN_OneProcessExporter.__init__ [model_handling.py at line 1039]  +DEBUG: kwargs[prefix] = 0 [model_handling.py at line 1040]  +DEBUG: proc_id =  1 [model_handling.py at line 1045]  +DEBUG: process_exporter_cpp =  [export_v4.py at line 6174]  INFO: Creating files in directory . -DEBUG: Entering PLUGIN_OneProcessExporter.generate_process_files [model_handling.py at line 1286]  -DEBUG: self.include_multi_channel is already defined: this is madevent+second_exporter mode [model_handling.py at line 1288]  +DEBUG: Entering PLUGIN_OneProcessExporter.generate_process_files [model_handling.py at line 1297]  +DEBUG: self.include_multi_channel is already defined: this is madevent+second_exporter mode [model_handling.py at line 1299]  FileWriter for ././CPPProcess.h -DEBUG: Entering PLUGIN_OneProcessExporter.write_process_h_file [model_handling.py at line 1442]  +DEBUG: Entering PLUGIN_OneProcessExporter.write_process_h_file [model_handling.py at line 1453]  FileWriter for ././CPPProcess.cc -DEBUG: Entering PLUGIN_OneProcessExporter.write_process_cc_file [model_handling.py at line 1464]  -DEBUG: Entering PLUGIN_OneProcessExporter.get_sigmaKin_lines [model_handling.py at line 1132]  -DEBUG: self.include_multi_channel =  [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 0] [model_handling.py at line 1133]  -DEBUG: self.support_multichannel =  True [model_handling.py at line 1134]  -DEBUG: type(self.helas_call_writer) =  [model_handling.py at line 1151]  -DEBUG: self.support_multichannel, self.include_multi_channel =  True [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 0] [model_handling.py at line 1152]  -DEBUG: multi_channel =  {1: [0], 2: [1], 3: [2], 4: [3], 5: [4], 6: [5], 7: [6], 8: [7], 9: [8], 10: [9], 11: [10], 12: [11], 13: [12], 14: [13], 15: [14]} [model_handling.py at line 1158]  -DEBUG: multi_channel_map =  {1: [0], 2: [1], 3: [2], 4: [3], 5: [4], 6: [5], 7: [6], 8: [7], 9: [8], 10: [9], 11: [10], 12: [11], 13: [12], 14: [13], 15: [14]} [model_handling.py at line 1643]  -DEBUG: diag_to_config =  {1: 1, 2: 2, 3: 3, 4: 4, 5: 5, 6: 6, 7: 7, 8: 8, 9: 9, 10: 10, 11: 11, 12: 12, 13: 13, 14: 14, 15: 15} [model_handling.py at line 1698]  -DEBUG: call =  vxxxxx( momenta,m_pars->%s, cHel[ihel][%d],%+d, w_sv[%d], %d ); [model_handling.py at line 1810]  -DEBUG: ('ZERO', 0, -1, 0, 0) [model_handling.py at line 1811]  -DEBUG: call =  vxxxxx( momenta,m_pars->%s, cHel[ihel][%d],%+d, w_sv[%d], %d ); [model_handling.py at line 1810]  -DEBUG: ('ZERO', 1, -1, 1, 1) [model_handling.py at line 1811]  -DEBUG: call =  vxxxxx( momenta,m_pars->%s, cHel[ihel][%d],%+d, w_sv[%d], %d ); [model_handling.py at line 1810]  -DEBUG: ('ZERO', 4, 1, 4, 4) [model_handling.py at line 1811]  +DEBUG: Entering PLUGIN_OneProcessExporter.write_process_cc_file [model_handling.py at line 1475]  +DEBUG: Entering PLUGIN_OneProcessExporter.get_sigmaKin_lines [model_handling.py at line 1143]  +DEBUG: self.include_multi_channel =  [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 0] [model_handling.py at line 1144]  +DEBUG: self.support_multichannel =  True [model_handling.py at line 1145]  +DEBUG: type(self.helas_call_writer) =  [model_handling.py at line 1162]  +DEBUG: self.support_multichannel, self.include_multi_channel =  True [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 0] [model_handling.py at line 1163]  +DEBUG: multi_channel =  {1: [0], 2: [1], 3: [2], 4: [3], 5: [4], 6: [5], 7: [6], 8: [7], 9: [8], 10: [9], 11: [10], 12: [11], 13: [12], 14: [13], 15: [14]} [model_handling.py at line 1169]  +DEBUG: multi_channel_map =  {1: [0], 2: [1], 3: [2], 4: [3], 5: [4], 6: [5], 7: [6], 8: [7], 9: [8], 10: [9], 11: [10], 12: [11], 13: [12], 14: [13], 15: [14]} [model_handling.py at line 1654]  +DEBUG: diag_to_config =  {1: 1, 2: 2, 3: 3, 4: 4, 5: 5, 6: 6, 7: 7, 8: 8, 9: 9, 10: 10, 11: 11, 12: 12, 13: 13, 14: 14, 15: 15} [model_handling.py at line 1709]  +DEBUG: call =  vxxxxx( momenta,m_pars->%s, cHel[ihel][%d],%+d, w_sv[%d], %d ); [model_handling.py at line 1821]  +DEBUG: ('ZERO', 0, -1, 0, 0) [model_handling.py at line 1822]  +DEBUG: call =  vxxxxx( momenta,m_pars->%s, cHel[ihel][%d],%+d, w_sv[%d], %d ); [model_handling.py at line 1821]  +DEBUG: ('ZERO', 1, -1, 1, 1) [model_handling.py at line 1822]  +DEBUG: call =  vxxxxx( momenta,m_pars->%s, cHel[ihel][%d],%+d, w_sv[%d], %d ); [model_handling.py at line 1821]  +DEBUG: ('ZERO', 4, 1, 4, 4) [model_handling.py at line 1822]  INFO: Created files CPPProcess.h and CPPProcess.cc in directory ./. -DEBUG: Entering PLUGIN_OneProcessExporter.edit_CMakeLists [model_handling.py at line 1332]  -DEBUG: Entering PLUGIN_OneProcessExporter.edit_check_sa [model_handling.py at line 1341]  -DEBUG: Entering PLUGIN_OneProcessExporter.edit_mgonGPU [model_handling.py at line 1358]  -DEBUG: Entering PLUGIN_OneProcessExporter.edit_processidfile [model_handling.py at line 1378]  -DEBUG: Entering PLUGIN_OneProcessExporter.edit_coloramps [model_handling.py at line 1390]  -DEBUG: Entering PLUGIN_OneProcessExporter.edit_testxxx [model_handling.py at line 1408]  -DEBUG: Entering PLUGIN_OneProcessExporter.edit_memorybuffers [model_handling.py at line 1419]  -DEBUG: Entering PLUGIN_OneProcessExporter.edit_memoryaccesscouplings [model_handling.py at line 1430]  -DEBUG: 'Copying test reference file: ', template_ref =  Copying test reference file: /data/avalassi/GPU2023/MG5aMC/ghav-mg5amcnlo/PLUGIN/CUDACPP_SA_OUTPUT/madgraph/iolibs/template_files/../../../test/ref/dump_CPUTest.Sigma_sm_gg_ttxg.txt [model_handling.py at line 1324]  +DEBUG: Entering PLUGIN_OneProcessExporter.edit_CMakeLists [model_handling.py at line 1343]  +DEBUG: Entering PLUGIN_OneProcessExporter.edit_check_sa [model_handling.py at line 1352]  +DEBUG: Entering PLUGIN_OneProcessExporter.edit_mgonGPU [model_handling.py at line 1369]  +DEBUG: Entering PLUGIN_OneProcessExporter.edit_processidfile [model_handling.py at line 1389]  +DEBUG: Entering PLUGIN_OneProcessExporter.edit_coloramps [model_handling.py at line 1401]  +DEBUG: Entering PLUGIN_OneProcessExporter.edit_testxxx [model_handling.py at line 1419]  +DEBUG: Entering PLUGIN_OneProcessExporter.edit_memorybuffers [model_handling.py at line 1430]  +DEBUG: Entering PLUGIN_OneProcessExporter.edit_memoryaccesscouplings [model_handling.py at line 1441]  +DEBUG: 'Copying test reference file: ', template_ref =  Copying test reference file: /data/avalassi/GPU2023/MG5aMC/ghav-mg5amcnlo/PLUGIN/CUDACPP_SA_OUTPUT/madgraph/iolibs/template_files/../../../test/ref/dump_CPUTest.Sigma_sm_gg_ttxg.txt [model_handling.py at line 1335]  DEBUG: proc_id =  1 [export_cpp.py at line 710]  DEBUG: config_map =  [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 0] [export_cpp.py at line 711]  DEBUG: subproc_number =  0 [export_cpp.py at line 712]  @@ -225,54 +225,54 @@ INFO: Created files CPPProcess.h and CPPProcess.cc in directory ./. INFO: Generating Feynman diagrams for Process: g g > t t~ g WEIGHTED<=3 @2 INFO: Finding symmetric diagrams for subprocess group gg_ttxg INFO: Creating files in directory P1_gg_ttx -DEBUG: Entering PLUGIN_OneProcessExporter.__init__ [model_handling.py at line 1028]  -DEBUG: kwargs[prefix] = 0 [model_handling.py at line 1029]  -DEBUG: proc_id =  1 [model_handling.py at line 1034]  -DEBUG: process_exporter_cpp =  [export_v4.py at line 6174]  +DEBUG: Entering PLUGIN_OneProcessExporter.__init__ [model_handling.py at line 1039]  +DEBUG: kwargs[prefix] = 0 [model_handling.py at line 1040]  +DEBUG: proc_id =  1 [model_handling.py at line 1045]  +DEBUG: process_exporter_cpp =  [export_v4.py at line 6174]  INFO: Creating files in directory . -DEBUG: Entering PLUGIN_OneProcessExporter.generate_process_files [model_handling.py at line 1286]  -DEBUG: self.include_multi_channel is already defined: this is madevent+second_exporter mode [model_handling.py at line 1288]  +DEBUG: Entering PLUGIN_OneProcessExporter.generate_process_files [model_handling.py at line 1297]  +DEBUG: self.include_multi_channel is already defined: this is madevent+second_exporter mode [model_handling.py at line 1299]  FileWriter for ././CPPProcess.h -DEBUG: Entering PLUGIN_OneProcessExporter.write_process_h_file [model_handling.py at line 1442]  +DEBUG: Entering PLUGIN_OneProcessExporter.write_process_h_file [model_handling.py at line 1453]  FileWriter for ././CPPProcess.cc -DEBUG: Entering PLUGIN_OneProcessExporter.write_process_cc_file [model_handling.py at line 1464]  -DEBUG: Entering PLUGIN_OneProcessExporter.get_sigmaKin_lines [model_handling.py at line 1132]  -DEBUG: self.include_multi_channel =  [1, 2, 3] [model_handling.py at line 1133]  -DEBUG: self.support_multichannel =  True [model_handling.py at line 1134]  -DEBUG: type(self.helas_call_writer) =  [model_handling.py at line 1151]  -DEBUG: self.support_multichannel, self.include_multi_channel =  True [1, 2, 3] [model_handling.py at line 1152]  -DEBUG: multi_channel =  {1: [0], 2: [1], 3: [2]} [model_handling.py at line 1158]  -DEBUG: multi_channel_map =  {1: [0], 2: [1], 3: [2]} [model_handling.py at line 1643]  -DEBUG: diag_to_config =  {1: 1, 2: 2, 3: 3} [model_handling.py at line 1698]  -DEBUG: call =  vxxxxx( momenta,m_pars->%s, cHel[ihel][%d],%+d, w_sv[%d], %d ); [model_handling.py at line 1810]  -DEBUG: ('ZERO', 0, -1, 0, 0) [model_handling.py at line 1811]  -DEBUG: call =  vxxxxx( momenta,m_pars->%s, cHel[ihel][%d],%+d, w_sv[%d], %d ); [model_handling.py at line 1810]  -DEBUG: ('ZERO', 1, -1, 1, 1) [model_handling.py at line 1811]  +DEBUG: Entering PLUGIN_OneProcessExporter.write_process_cc_file [model_handling.py at line 1475]  +DEBUG: Entering PLUGIN_OneProcessExporter.get_sigmaKin_lines [model_handling.py at line 1143]  +DEBUG: self.include_multi_channel =  [1, 2, 3] [model_handling.py at line 1144]  +DEBUG: self.support_multichannel =  True [model_handling.py at line 1145]  +DEBUG: type(self.helas_call_writer) =  [model_handling.py at line 1162]  +DEBUG: self.support_multichannel, self.include_multi_channel =  True [1, 2, 3] [model_handling.py at line 1163]  +DEBUG: multi_channel =  {1: [0], 2: [1], 3: [2]} [model_handling.py at line 1169]  +DEBUG: multi_channel_map =  {1: [0], 2: [1], 3: [2]} [model_handling.py at line 1654]  +DEBUG: diag_to_config =  {1: 1, 2: 2, 3: 3} [model_handling.py at line 1709]  +DEBUG: call =  vxxxxx( momenta,m_pars->%s, cHel[ihel][%d],%+d, w_sv[%d], %d ); [model_handling.py at line 1821]  +DEBUG: ('ZERO', 0, -1, 0, 0) [model_handling.py at line 1822]  +DEBUG: call =  vxxxxx( momenta,m_pars->%s, cHel[ihel][%d],%+d, w_sv[%d], %d ); [model_handling.py at line 1821]  +DEBUG: ('ZERO', 1, -1, 1, 1) [model_handling.py at line 1822]  INFO: Created files CPPProcess.h and CPPProcess.cc in directory ./. -DEBUG: Entering PLUGIN_OneProcessExporter.edit_CMakeLists [model_handling.py at line 1332]  -DEBUG: Entering PLUGIN_OneProcessExporter.edit_check_sa [model_handling.py at line 1341]  -DEBUG: Entering PLUGIN_OneProcessExporter.edit_mgonGPU [model_handling.py at line 1358]  -DEBUG: Entering PLUGIN_OneProcessExporter.edit_processidfile [model_handling.py at line 1378]  -DEBUG: Entering PLUGIN_OneProcessExporter.edit_coloramps [model_handling.py at line 1390]  -DEBUG: Entering PLUGIN_OneProcessExporter.edit_testxxx [model_handling.py at line 1408]  -DEBUG: Entering PLUGIN_OneProcessExporter.edit_memorybuffers [model_handling.py at line 1419]  -DEBUG: Entering PLUGIN_OneProcessExporter.edit_memoryaccesscouplings [model_handling.py at line 1430]  -DEBUG: 'Copying test reference file: ', template_ref =  Copying test reference file: /data/avalassi/GPU2023/MG5aMC/ghav-mg5amcnlo/PLUGIN/CUDACPP_SA_OUTPUT/madgraph/iolibs/template_files/../../../test/ref/dump_CPUTest.Sigma_sm_gg_ttx.txt [model_handling.py at line 1324]  +DEBUG: Entering PLUGIN_OneProcessExporter.edit_CMakeLists [model_handling.py at line 1343]  +DEBUG: Entering PLUGIN_OneProcessExporter.edit_check_sa [model_handling.py at line 1352]  +DEBUG: Entering PLUGIN_OneProcessExporter.edit_mgonGPU [model_handling.py at line 1369]  +DEBUG: Entering PLUGIN_OneProcessExporter.edit_processidfile [model_handling.py at line 1389]  +DEBUG: Entering PLUGIN_OneProcessExporter.edit_coloramps [model_handling.py at line 1401]  +DEBUG: Entering PLUGIN_OneProcessExporter.edit_testxxx [model_handling.py at line 1419]  +DEBUG: Entering PLUGIN_OneProcessExporter.edit_memorybuffers [model_handling.py at line 1430]  +DEBUG: Entering PLUGIN_OneProcessExporter.edit_memoryaccesscouplings [model_handling.py at line 1441]  +DEBUG: 'Copying test reference file: ', template_ref =  Copying test reference file: /data/avalassi/GPU2023/MG5aMC/ghav-mg5amcnlo/PLUGIN/CUDACPP_SA_OUTPUT/madgraph/iolibs/template_files/../../../test/ref/dump_CPUTest.Sigma_sm_gg_ttx.txt [model_handling.py at line 1335]  DEBUG: proc_id =  1 [export_cpp.py at line 710]  DEBUG: config_map =  [1, 2, 3] [export_cpp.py at line 711]  DEBUG: subproc_number =  1 [export_cpp.py at line 712]  DEBUG: Done [export_cpp.py at line 713]  INFO: Generating Feynman diagrams for Process: g g > t t~ WEIGHTED<=2 @1 INFO: Finding symmetric diagrams for subprocess group gg_ttx -Generated helas calls for 2 subprocesses (19 diagrams) in 0.039 s -Wrote files for 46 helas calls in 0.248 s +Generated helas calls for 2 subprocesses (19 diagrams) in 0.040 s +Wrote files for 46 helas calls in 0.249 s ALOHA: aloha starts to compute helicity amplitudes ALOHA: aloha creates VVV1 routines ALOHA: aloha creates FFV1 routines ALOHA: aloha creates VVVV1 set of routines with options: P0 ALOHA: aloha creates VVVV3 set of routines with options: P0 ALOHA: aloha creates VVVV4 set of routines with options: P0 -ALOHA: aloha creates 5 routines in 0.277 s +ALOHA: aloha creates 5 routines in 0.285 s DEBUG: Entering PLUGIN_ProcessExporter.convert_model (create the model) [output.py at line 194]  ALOHA: aloha starts to compute helicity amplitudes ALOHA: aloha creates VVV1 routines @@ -280,7 +280,7 @@ ALOHA: aloha creates FFV1 routines ALOHA: aloha creates VVVV1 set of routines with options: P0 ALOHA: aloha creates VVVV3 set of routines with options: P0 ALOHA: aloha creates VVVV4 set of routines with options: P0 -ALOHA: aloha creates 10 routines in 0.278 s +ALOHA: aloha creates 10 routines in 0.267 s VVV1 VVV1 FFV1 @@ -293,25 +293,13 @@ ALOHA: aloha creates 10 routines in 0.278 s FileWriter for /data/avalassi/GPU2023/MG5aMC/ghav-mg5amcnlo/CODEGEN_mad_gg_tt01g/src/./HelAmps_sm.h INFO: Created file HelAmps_sm.h in directory /data/avalassi/GPU2023/MG5aMC/ghav-mg5amcnlo/CODEGEN_mad_gg_tt01g/src/. super_write_set_parameters_onlyfixMajorana (hardcoded=False) -DEBUG: 'pardef_lines size =', len(pardef_lines), ', keys size =', len(pardef_lines.keys()) =  pardef_lines size = 48 , keys size = 48 [model_handling.py at line 724]  -DEBUG: 'parset_pars size =', len(parset_pars) =  parset_pars size = 48 [model_handling.py at line 740]  -DEBUG: 'parset_lines size =', len(parset_lines), ', keys size =', len(parset_lines.keys()) =  parset_lines size = 48 , keys size = 48 [model_handling.py at line 741]  +DEBUG: 'pardef_lines size =', len(pardef_lines), ', keys size =', len(pardef_lines.keys()) =  pardef_lines size = 48 , keys size = 48 [model_handling.py at line 729]  super_write_set_parameters_onlyfixMajorana (hardcoded=True) -DEBUG: 'pardef_lines size =', len(pardef_lines), ', keys size =', len(pardef_lines.keys()) =  pardef_lines size = 3 , keys size = 3 [model_handling.py at line 724]  -DEBUG: 'parset_pars size =', len(parset_pars) =  parset_pars size = 3 [model_handling.py at line 740]  -DEBUG: 'parset_lines size =', len(parset_lines), ', keys size =', len(parset_lines.keys()) =  parset_lines size = 3 , keys size = 3 [model_handling.py at line 741]  -DEBUG: 'pardef_lines size =', len(pardef_lines), ', keys size =', len(pardef_lines.keys()) =  pardef_lines size = 3 , keys size = 3 [model_handling.py at line 724]  -DEBUG: 'parset_pars size =', len(parset_pars) =  parset_pars size = 3 [model_handling.py at line 740]  -DEBUG: 'parset_lines size =', len(parset_lines), ', keys size =', len(parset_lines.keys()) =  parset_lines size = 3 , keys size = 3 [model_handling.py at line 741]  -DEBUG: 'pardef_lines size =', len(pardef_lines), ', keys size =', len(pardef_lines.keys()) =  pardef_lines size = 3 , keys size = 3 [model_handling.py at line 724]  -DEBUG: 'parset_pars size =', len(parset_pars) =  parset_pars size = 3 [model_handling.py at line 740]  -DEBUG: 'parset_lines size =', len(parset_lines), ', keys size =', len(parset_lines.keys()) =  parset_lines size = 3 , keys size = 3 [model_handling.py at line 741]  -DEBUG: 'pardef_lines size =', len(pardef_lines), ', keys size =', len(pardef_lines.keys()) =  pardef_lines size = 3 , keys size = 3 [model_handling.py at line 724]  -DEBUG: 'parset_pars size =', len(parset_pars) =  parset_pars size = 3 [model_handling.py at line 740]  -DEBUG: 'parset_lines size =', len(parset_lines), ', keys size =', len(parset_lines.keys()) =  parset_lines size = 3 , keys size = 3 [model_handling.py at line 741]  -DEBUG: 'pardef_lines size =', len(pardef_lines), ', keys size =', len(pardef_lines.keys()) =  pardef_lines size = 3 , keys size = 3 [model_handling.py at line 724]  -DEBUG: 'parset_pars size =', len(parset_pars) =  parset_pars size = 3 [model_handling.py at line 740]  -DEBUG: 'parset_lines size =', len(parset_lines), ', keys size =', len(parset_lines.keys()) =  parset_lines size = 3 , keys size = 3 [model_handling.py at line 741]  +DEBUG: 'pardef_lines size =', len(pardef_lines), ', keys size =', len(pardef_lines.keys()) =  pardef_lines size = 3 , keys size = 3 [model_handling.py at line 729]  +DEBUG: 'pardef_lines size =', len(pardef_lines), ', keys size =', len(pardef_lines.keys()) =  pardef_lines size = 3 , keys size = 3 [model_handling.py at line 729]  +DEBUG: 'pardef_lines size =', len(pardef_lines), ', keys size =', len(pardef_lines.keys()) =  pardef_lines size = 3 , keys size = 3 [model_handling.py at line 729]  +DEBUG: 'pardef_lines size =', len(pardef_lines), ', keys size =', len(pardef_lines.keys()) =  pardef_lines size = 3 , keys size = 3 [model_handling.py at line 729]  +DEBUG: 'pardef_lines size =', len(pardef_lines), ', keys size =', len(pardef_lines.keys()) =  pardef_lines size = 3 , keys size = 3 [model_handling.py at line 729]  FileWriter for /data/avalassi/GPU2023/MG5aMC/ghav-mg5amcnlo/CODEGEN_mad_gg_tt01g/src/./Parameters_sm.h FileWriter for /data/avalassi/GPU2023/MG5aMC/ghav-mg5amcnlo/CODEGEN_mad_gg_tt01g/src/./Parameters_sm.cc INFO: Created files Parameters_sm.h and Parameters_sm.cc in directory @@ -328,6 +316,6 @@ Type "launch" to generate events from this process, or see Run "open index.html" to see more information about this process. quit -real 0m2.229s -user 0m1.925s -sys 0m0.210s +real 0m2.128s +user 0m1.898s +sys 0m0.222s diff --git a/epochX/cudacpp/gg_tt01g.mad/SubProcesses/Bridge.h b/epochX/cudacpp/gg_tt01g.mad/SubProcesses/Bridge.h index 4cafe0c997..d7e629cacd 100644 --- a/epochX/cudacpp/gg_tt01g.mad/SubProcesses/Bridge.h +++ b/epochX/cudacpp/gg_tt01g.mad/SubProcesses/Bridge.h @@ -152,32 +152,32 @@ namespace mg5amcCpu #ifdef __CUDACC__ int m_gputhreads; // number of gpu threads (default set from number of events, can be modified) int m_gpublocks; // number of gpu blocks (default set from number of events, can be modified) - mg5amcGpu::DeviceBuffer m_devMomentaF; - mg5amcGpu::DeviceBufferMomenta m_devMomentaC; - mg5amcGpu::DeviceBufferGs m_devGs; - mg5amcGpu::DeviceBufferRndNumHelicity m_devRndHel; - mg5amcGpu::DeviceBufferRndNumColor m_devRndCol; - mg5amcGpu::DeviceBufferMatrixElements m_devMEs; - mg5amcGpu::DeviceBufferSelectedHelicity m_devSelHel; - mg5amcGpu::DeviceBufferSelectedColor m_devSelCol; - mg5amcGpu::PinnedHostBufferGs m_hstGs; - mg5amcGpu::PinnedHostBufferRndNumHelicity m_hstRndHel; - mg5amcGpu::PinnedHostBufferRndNumColor m_hstRndCol; - mg5amcGpu::PinnedHostBufferMatrixElements m_hstMEs; - mg5amcGpu::PinnedHostBufferSelectedHelicity m_hstSelHel; - mg5amcGpu::PinnedHostBufferSelectedColor m_hstSelCol; - std::unique_ptr m_pmek; + DeviceBuffer m_devMomentaF; + DeviceBufferMomenta m_devMomentaC; + DeviceBufferGs m_devGs; + DeviceBufferRndNumHelicity m_devRndHel; + DeviceBufferRndNumColor m_devRndCol; + DeviceBufferMatrixElements m_devMEs; + DeviceBufferSelectedHelicity m_devSelHel; + DeviceBufferSelectedColor m_devSelCol; + PinnedHostBufferGs m_hstGs; + PinnedHostBufferRndNumHelicity m_hstRndHel; + PinnedHostBufferRndNumColor m_hstRndCol; + PinnedHostBufferMatrixElements m_hstMEs; + PinnedHostBufferSelectedHelicity m_hstSelHel; + PinnedHostBufferSelectedColor m_hstSelCol; + std::unique_ptr m_pmek; //static constexpr int s_gputhreadsmin = 16; // minimum number of gpu threads (TEST VALUE FOR MADEVENT) static constexpr int s_gputhreadsmin = 32; // minimum number of gpu threads (DEFAULT) #else - mg5amcCpu::HostBufferMomenta m_hstMomentaC; - mg5amcCpu::HostBufferGs m_hstGs; - mg5amcCpu::HostBufferRndNumHelicity m_hstRndHel; - mg5amcCpu::HostBufferRndNumColor m_hstRndCol; - mg5amcCpu::HostBufferMatrixElements m_hstMEs; - mg5amcCpu::HostBufferSelectedHelicity m_hstSelHel; - mg5amcCpu::HostBufferSelectedColor m_hstSelCol; - std::unique_ptr m_pmek; + HostBufferMomenta m_hstMomentaC; + HostBufferGs m_hstGs; + HostBufferRndNumHelicity m_hstRndHel; + HostBufferRndNumColor m_hstRndCol; + HostBufferMatrixElements m_hstMEs; + HostBufferSelectedHelicity m_hstSelHel; + HostBufferSelectedColor m_hstSelCol; + std::unique_ptr m_pmek; #endif }; @@ -244,12 +244,12 @@ namespace mg5amcCpu } std::cout << "WARNING! Instantiate device Bridge (nevt=" << m_nevt << ", gpublocks=" << m_gpublocks << ", gputhreads=" << m_gputhreads << ", gpublocks*gputhreads=" << m_gpublocks * m_gputhreads << ")" << std::endl; - mg5amcGpu::CPPProcess process( /*verbose=*/false ); - m_pmek.reset( new mg5amcGpu::MatrixElementKernelDevice( m_devMomentaC, m_devGs, m_devRndHel, m_devRndCol, m_devMEs, m_devSelHel, m_devSelCol, m_gpublocks, m_gputhreads ) ); + CPPProcess process( /*verbose=*/false ); + m_pmek.reset( new MatrixElementKernelDevice( m_devMomentaC, m_devGs, m_devRndHel, m_devRndCol, m_devMEs, m_devSelHel, m_devSelCol, m_gpublocks, m_gputhreads ) ); #else std::cout << "WARNING! Instantiate host Bridge (nevt=" << m_nevt << ")" << std::endl; - mg5amcCpu::CPPProcess process( /*verbose=*/false ); - m_pmek.reset( new mg5amcCpu::MatrixElementKernelHost( m_hstMomentaC, m_hstGs, m_hstRndHel, m_hstRndCol, m_hstMEs, m_hstSelHel, m_hstSelCol, m_nevt ) ); + CPPProcess process( /*verbose=*/false ); + m_pmek.reset( new MatrixElementKernelHost( m_hstMomentaC, m_hstGs, m_hstRndHel, m_hstRndCol, m_hstMEs, m_hstSelHel, m_hstSelCol, m_nevt ) ); #endif // __CUDACC__ process.initProc( "../../Cards/param_card.dat" ); } diff --git a/epochX/cudacpp/gg_tt01g.mad/SubProcesses/BridgeKernels.cc b/epochX/cudacpp/gg_tt01g.mad/SubProcesses/BridgeKernels.cc index cef4cb3c71..d58066c9c1 100644 --- a/epochX/cudacpp/gg_tt01g.mad/SubProcesses/BridgeKernels.cc +++ b/epochX/cudacpp/gg_tt01g.mad/SubProcesses/BridgeKernels.cc @@ -9,9 +9,6 @@ #include -constexpr int np4 = CPPProcess::np4; // dimensions of 4-momenta (E,px,py,pz) -constexpr int npar = CPPProcess::npar; // #particles in total (external = initial + final): e.g. 4 for e+ e- -> mu+ mu- - //============================================================================ #ifdef __CUDACC__ @@ -20,6 +17,9 @@ namespace mg5amcGpu namespace mg5amcCpu #endif { + constexpr int np4 = CPPProcess::np4; // dimensions of 4-momenta (E,px,py,pz) + constexpr int npar = CPPProcess::npar; // #particles in total (external = initial + final): e.g. 4 for e+ e- -> mu+ mu- + //-------------------------------------------------------------------------- BridgeKernelBase::BridgeKernelBase( const BufferMomenta& momenta, // input: momenta diff --git a/epochX/cudacpp/gg_tt01g.mad/SubProcesses/MemoryAccessAmplitudes.h b/epochX/cudacpp/gg_tt01g.mad/SubProcesses/MemoryAccessAmplitudes.h index 68f6838b5c..573b3bbbc9 100644 --- a/epochX/cudacpp/gg_tt01g.mad/SubProcesses/MemoryAccessAmplitudes.h +++ b/epochX/cudacpp/gg_tt01g.mad/SubProcesses/MemoryAccessAmplitudes.h @@ -14,142 +14,151 @@ #define MGONGPU_TRIVIAL_AMPLITUDES 1 -//---------------------------------------------------------------------------- - -#ifndef MGONGPU_TRIVIAL_AMPLITUDES - -// A class describing the internal layout of memory buffers for amplitudes -// This implementation uses an AOSOA[npagA][nx2][neppA] where nevt=npagA*neppA -// [If many implementations are used, a suffix _AOSOAv1 should be appended to the class name] -class MemoryAccessAmplitudesBase //_AOSOAv1 +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { -public: - - // Number of Events Per Page in the amplitude AOSOA memory buffer layout - static constexpr int neppA = 1; // AOS (just a test...) + //---------------------------------------------------------------------------- -private: - - friend class MemoryAccessHelper; - friend class KernelAccessHelper; - friend class KernelAccessHelper; - - // The number of floating point components of a complex number - static constexpr int nx2 = mgOnGpu::nx2; - - //-------------------------------------------------------------------------- - // NB all KernelLaunchers assume that memory access can be decomposed as "accessField = decodeRecord( accessRecord )" - // (in other words: first locate the event record for a given event, then locate an element in that record) - //-------------------------------------------------------------------------- +#ifndef MGONGPU_TRIVIAL_AMPLITUDES - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] - static __host__ __device__ inline fptype* - ieventAccessRecord( fptype* buffer, - const int ievt ) + // A class describing the internal layout of memory buffers for amplitudes + // This implementation uses an AOSOA[npagA][nx2][neppA] where nevt=npagA*neppA + // [If many implementations are used, a suffix _AOSOAv1 should be appended to the class name] + class MemoryAccessAmplitudesBase //_AOSOAv1 { - const int ipagA = ievt / neppA; // #event "A-page" - const int ieppA = ievt % neppA; // #event in the current event A-page - constexpr int ix2 = 0; - return &( buffer[ipagA * nx2 * neppA + ix2 * neppA + ieppA] ); // AOSOA[ipagA][ix2][ieppA] - } - - //-------------------------------------------------------------------------- - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, Ts... args ) <===] - // [NB: expand variadic template "Ts... args" to "const int ix2" and rename "Field" as "Ix2"] - static __host__ __device__ inline fptype& - decodeRecord( fptype* buffer, - const int ix2 ) + public: + + // Number of Events Per Page in the amplitude AOSOA memory buffer layout + static constexpr int neppA = 1; // AOS (just a test...) + + private: + + friend class MemoryAccessHelper; + friend class KernelAccessHelper; + friend class KernelAccessHelper; + + // The number of floating point components of a complex number + static constexpr int nx2 = mgOnGpu::nx2; + + //-------------------------------------------------------------------------- + // NB all KernelLaunchers assume that memory access can be decomposed as "accessField = decodeRecord( accessRecord )" + // (in other words: first locate the event record for a given event, then locate an element in that record) + //-------------------------------------------------------------------------- + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] + static __host__ __device__ inline fptype* + ieventAccessRecord( fptype* buffer, + const int ievt ) + { + const int ipagA = ievt / neppA; // #event "A-page" + const int ieppA = ievt % neppA; // #event in the current event A-page + constexpr int ix2 = 0; + return &( buffer[ipagA * nx2 * neppA + ix2 * neppA + ieppA] ); // AOSOA[ipagA][ix2][ieppA] + } + + //-------------------------------------------------------------------------- + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, Ts... args ) <===] + // [NB: expand variadic template "Ts... args" to "const int ix2" and rename "Field" as "Ix2"] + static __host__ __device__ inline fptype& + decodeRecord( fptype* buffer, + const int ix2 ) + { + constexpr int ipagA = 0; + constexpr int ieppA = 0; + return buffer[ipagA * nx2 * neppA + ix2 * neppA + ieppA]; // AOSOA[ipagA][ix2][ieppA] + } + }; + + //---------------------------------------------------------------------------- + + // A class providing access to memory buffers for a given event, based on explicit event numbers + // Its methods use the MemoryAccessHelper templates - note the use of the template keyword in template function instantiations + class MemoryAccessAmplitudes : public MemoryAccessAmplitudesBase { - constexpr int ipagA = 0; - constexpr int ieppA = 0; - return buffer[ipagA * nx2 * neppA + ix2 * neppA + ieppA]; // AOSOA[ipagA][ix2][ieppA] - } -}; + public: -//---------------------------------------------------------------------------- + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] + static constexpr auto ieventAccessRecord = MemoryAccessHelper::ieventAccessRecord; -// A class providing access to memory buffers for a given event, based on explicit event numbers -// Its methods use the MemoryAccessHelper templates - note the use of the template keyword in template function instantiations -class MemoryAccessAmplitudes : public MemoryAccessAmplitudesBase -{ -public: - - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] - static constexpr auto ieventAccessRecord = MemoryAccessHelper::ieventAccessRecord; + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (const) ===> const fptype* ieventAccessRecordConst( const fptype* buffer, const int ievt ) <===] + static constexpr auto ieventAccessRecordConst = MemoryAccessHelper::ieventAccessRecordConst; - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (const) ===> const fptype* ieventAccessRecordConst( const fptype* buffer, const int ievt ) <===] - static constexpr auto ieventAccessRecordConst = MemoryAccessHelper::ieventAccessRecordConst; + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, const int ix2 ) <===] + static constexpr auto decodeRecordIx2 = MemoryAccessHelper::decodeRecord; - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, const int ix2 ) <===] - static constexpr auto decodeRecordIx2 = MemoryAccessHelper::decodeRecord; + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (const) ===> const fptype& decodeRecordConst( const fptype* buffer, const int ix2 ) <===] + static constexpr auto decodeRecordIx2Const = + MemoryAccessHelper::template decodeRecordConst; - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (const) ===> const fptype& decodeRecordConst( const fptype* buffer, const int ix2 ) <===] - static constexpr auto decodeRecordIx2Const = - MemoryAccessHelper::template decodeRecordConst; + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (non-const) ===> fptype& ieventAccessIx2( fptype* buffer, const ievt, const int ix2 ) <===] + static constexpr auto ieventAccessIx2 = + MemoryAccessHelper::template ieventAccessField; - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (non-const) ===> fptype& ieventAccessIx2( fptype* buffer, const ievt, const int ix2 ) <===] - static constexpr auto ieventAccessIx2 = - MemoryAccessHelper::template ieventAccessField; - - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (const) ===> const fptype& ieventAccessIx2Const( const fptype* buffer, const ievt, const int ix2 ) <===] - static constexpr auto ieventAccessIx2Const = - MemoryAccessHelper::template ieventAccessFieldConst; -}; + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (const) ===> const fptype& ieventAccessIx2Const( const fptype* buffer, const ievt, const int ix2 ) <===] + static constexpr auto ieventAccessIx2Const = + MemoryAccessHelper::template ieventAccessFieldConst; + }; #endif // #ifndef MGONGPU_TRIVIAL_AMPLITUDES -//---------------------------------------------------------------------------- + //---------------------------------------------------------------------------- -// A class providing access to memory buffers for a given event, based on implicit kernel rules -// Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations -template -class KernelAccessAmplitudes -{ -public: + // A class providing access to memory buffers for a given event, based on implicit kernel rules + // Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations + template + class KernelAccessAmplitudes + { + public: #ifndef MGONGPU_TRIVIAL_AMPLITUDES - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (non-const) ===> fptype& kernelAccessIx2( fptype* buffer, const int ix2 ) <===] - static constexpr auto kernelAccessIx2 = - KernelAccessHelper::template kernelAccessField; + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (non-const) ===> fptype& kernelAccessIx2( fptype* buffer, const int ix2 ) <===] + static constexpr auto kernelAccessIx2 = + KernelAccessHelper::template kernelAccessField; - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (const) ===> const fptype& kernelAccessIx2Const( const fptype* buffer, const int ix2 ) <===] - static constexpr auto kernelAccessIx2Const = - KernelAccessHelper::template kernelAccessFieldConst; + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (const) ===> const fptype& kernelAccessIx2Const( const fptype* buffer, const int ix2 ) <===] + static constexpr auto kernelAccessIx2Const = + KernelAccessHelper::template kernelAccessFieldConst; #else - static __host__ __device__ inline cxtype_sv* - kernelAccess( fptype* buffer ) - { - return reinterpret_cast( buffer ); - } + static __host__ __device__ inline cxtype_sv* + kernelAccess( fptype* buffer ) + { + return reinterpret_cast( buffer ); + } - static __host__ __device__ inline const cxtype_sv* - kernelAccessConst( const fptype* buffer ) - { - return reinterpret_cast( buffer ); - } + static __host__ __device__ inline const cxtype_sv* + kernelAccessConst( const fptype* buffer ) + { + return reinterpret_cast( buffer ); + } #endif // #ifndef MGONGPU_TRIVIAL_AMPLITUDES -}; + }; + + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- + typedef KernelAccessAmplitudes HostAccessAmplitudes; + typedef KernelAccessAmplitudes DeviceAccessAmplitudes; -typedef KernelAccessAmplitudes HostAccessAmplitudes; -typedef KernelAccessAmplitudes DeviceAccessAmplitudes; + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- +} // end namespace mg5amcGpu/mg5amcCpu #endif // MemoryAccessAmplitudes_H diff --git a/epochX/cudacpp/gg_tt01g.mad/SubProcesses/MemoryAccessCouplings.h b/epochX/cudacpp/gg_tt01g.mad/SubProcesses/MemoryAccessCouplings.h index 15793bbec3..35a3af42e0 100644 --- a/epochX/cudacpp/gg_tt01g.mad/SubProcesses/MemoryAccessCouplings.h +++ b/epochX/cudacpp/gg_tt01g.mad/SubProcesses/MemoryAccessCouplings.h @@ -14,248 +14,257 @@ #include "MemoryAccessMomenta.h" // for MemoryAccessMomentaBase::neppM #include "MemoryBuffers.h" // for HostBufferCouplings::isaligned -//---------------------------------------------------------------------------- - -// A class describing the internal layout of memory buffers for couplings -// This implementation uses an AOSOA[npagC][ndcoup][nx2][neppC] "super-buffer" where nevt=npagC*neppC -// From the "super-buffer" for ndcoup different couplings, use idcoupAccessBuffer to access the buffer for one specific coupling -// [If many implementations are used, a suffix _AOSOAv1 should be appended to the class name] -class MemoryAccessCouplingsBase //_AOSOAv1 +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { -public: - - // Number of Events Per Page in the coupling AOSOA memory buffer layout - static constexpr int neppC = MemoryAccessMomentaBase::neppM; // use the same AOSOA striding as for momenta - - // SANITY CHECK: check that neppC is a power of two - static_assert( ispoweroftwo( neppC ), "neppC is not a power of 2" ); - - //-------------------------------------------------------------------------- - // ** NB! A single super-buffer AOSOA[npagC][ndcoup][nx2][neppC] includes data for ndcoup different couplings ** - // ** NB! The ieventAccessRecord and kernelAccess functions refer to the buffer for one individual coupling ** - // ** NB! Use idcoupAccessBuffer to add a fixed offset and locate the buffer for one given individual coupling ** - //-------------------------------------------------------------------------- - - // Locate the buffer for a single coupling (output) in a memory super-buffer (input) from the given coupling index (input) - // [Signature (non-const) ===> fptype* idcoupAccessBuffer( fptype* buffer, const int idcoup ) <===] - // NB: keep this in public even if exposed through KernelAccessCouplings: nvcc says it is inaccesible otherwise? - static __host__ __device__ inline fptype* - idcoupAccessBuffer( fptype* buffer, // input "super-buffer" - const int idcoup ) - { - constexpr int ipagC = 0; - constexpr int ieppC = 0; - constexpr int ix2 = 0; - // NB! this effectively adds an offset "idcoup * nx2 * neppC" - return &( buffer[ipagC * ndcoup * nx2 * neppC + idcoup * nx2 * neppC + ix2 * neppC + ieppC] ); // AOSOA[ipagC][idcoup][ix2][ieppC] - } - - // Locate the buffer for a single coupling (output) in a memory super-buffer (input) from the given coupling index (input) - // [Signature (const) ===> const fptype* idcoupAccessBufferConst( const fptype* buffer, const int idcoup ) <===] - // NB: keep this in public even if exposed through KernelAccessCouplings: nvcc says it is inaccesible otherwise? - static __host__ __device__ inline const fptype* - idcoupAccessBufferConst( const fptype* buffer, // input "super-buffer" - const int idcoup ) - { - return idcoupAccessBuffer( const_cast( buffer ), idcoup ); - } - -private: + //---------------------------------------------------------------------------- - friend class MemoryAccessHelper; - friend class KernelAccessHelper; - friend class KernelAccessHelper; - - // The number of couplings that dependent on the running alphas QCD in this specific process - static constexpr size_t ndcoup = Parameters_sm_dependentCouplings::ndcoup; - - // The number of floating point components of a complex number - static constexpr int nx2 = mgOnGpu::nx2; - - //-------------------------------------------------------------------------- - // NB all KernelLaunchers assume that memory access can be decomposed as "accessField = decodeRecord( accessRecord )" - // (in other words: first locate the event record for a given event, then locate an element in that record) - //-------------------------------------------------------------------------- - - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] - static __host__ __device__ inline fptype* - ieventAccessRecord( fptype* buffer, - const int ievt ) + // A class describing the internal layout of memory buffers for couplings + // This implementation uses an AOSOA[npagC][ndcoup][nx2][neppC] "super-buffer" where nevt=npagC*neppC + // From the "super-buffer" for ndcoup different couplings, use idcoupAccessBuffer to access the buffer for one specific coupling + // [If many implementations are used, a suffix _AOSOAv1 should be appended to the class name] + class MemoryAccessCouplingsBase //_AOSOAv1 { - const int ipagC = ievt / neppC; // #event "C-page" - const int ieppC = ievt % neppC; // #event in the current event C-page - constexpr int idcoup = 0; - constexpr int ix2 = 0; - return &( buffer[ipagC * ndcoup * nx2 * neppC + idcoup * nx2 * neppC + ix2 * neppC + ieppC] ); // AOSOA[ipagC][idcoup][ix2][ieppC] - } - - //-------------------------------------------------------------------------- - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, Ts... args ) <===] - // [NB: expand variadic template "Ts... args" to "const int ix2" and rename "Field" as "Ix2"] - static __host__ __device__ inline fptype& - decodeRecord( fptype* buffer, - const int ix2 ) + public: + + // Number of Events Per Page in the coupling AOSOA memory buffer layout + static constexpr int neppC = MemoryAccessMomentaBase::neppM; // use the same AOSOA striding as for momenta + + // SANITY CHECK: check that neppC is a power of two + static_assert( ispoweroftwo( neppC ), "neppC is not a power of 2" ); + + //-------------------------------------------------------------------------- + // ** NB! A single super-buffer AOSOA[npagC][ndcoup][nx2][neppC] includes data for ndcoup different couplings ** + // ** NB! The ieventAccessRecord and kernelAccess functions refer to the buffer for one individual coupling ** + // ** NB! Use idcoupAccessBuffer to add a fixed offset and locate the buffer for one given individual coupling ** + //-------------------------------------------------------------------------- + + // Locate the buffer for a single coupling (output) in a memory super-buffer (input) from the given coupling index (input) + // [Signature (non-const) ===> fptype* idcoupAccessBuffer( fptype* buffer, const int idcoup ) <===] + // NB: keep this in public even if exposed through KernelAccessCouplings: nvcc says it is inaccesible otherwise? + static __host__ __device__ inline fptype* + idcoupAccessBuffer( fptype* buffer, // input "super-buffer" + const int idcoup ) + { + constexpr int ipagC = 0; + constexpr int ieppC = 0; + constexpr int ix2 = 0; + // NB! this effectively adds an offset "idcoup * nx2 * neppC" + return &( buffer[ipagC * ndcoup * nx2 * neppC + idcoup * nx2 * neppC + ix2 * neppC + ieppC] ); // AOSOA[ipagC][idcoup][ix2][ieppC] + } + + // Locate the buffer for a single coupling (output) in a memory super-buffer (input) from the given coupling index (input) + // [Signature (const) ===> const fptype* idcoupAccessBufferConst( const fptype* buffer, const int idcoup ) <===] + // NB: keep this in public even if exposed through KernelAccessCouplings: nvcc says it is inaccesible otherwise? + static __host__ __device__ inline const fptype* + idcoupAccessBufferConst( const fptype* buffer, // input "super-buffer" + const int idcoup ) + { + return idcoupAccessBuffer( const_cast( buffer ), idcoup ); + } + + private: + + friend class MemoryAccessHelper; + friend class KernelAccessHelper; + friend class KernelAccessHelper; + + // The number of couplings that dependent on the running alphas QCD in this specific process + static constexpr size_t ndcoup = Parameters_sm_dependentCouplings::ndcoup; + + // The number of floating point components of a complex number + static constexpr int nx2 = mgOnGpu::nx2; + + //-------------------------------------------------------------------------- + // NB all KernelLaunchers assume that memory access can be decomposed as "accessField = decodeRecord( accessRecord )" + // (in other words: first locate the event record for a given event, then locate an element in that record) + //-------------------------------------------------------------------------- + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] + static __host__ __device__ inline fptype* + ieventAccessRecord( fptype* buffer, + const int ievt ) + { + const int ipagC = ievt / neppC; // #event "C-page" + const int ieppC = ievt % neppC; // #event in the current event C-page + constexpr int idcoup = 0; + constexpr int ix2 = 0; + return &( buffer[ipagC * ndcoup * nx2 * neppC + idcoup * nx2 * neppC + ix2 * neppC + ieppC] ); // AOSOA[ipagC][idcoup][ix2][ieppC] + } + + //-------------------------------------------------------------------------- + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, Ts... args ) <===] + // [NB: expand variadic template "Ts... args" to "const int ix2" and rename "Field" as "Ix2"] + static __host__ __device__ inline fptype& + decodeRecord( fptype* buffer, + const int ix2 ) + { + constexpr int ipagC = 0; + constexpr int ieppC = 0; + // NB! the offset "idcoup * nx2 * neppC" has been added in idcoupAccessBuffer + constexpr int idcoup = 0; + return buffer[ipagC * ndcoup * nx2 * neppC + idcoup * nx2 * neppC + ix2 * neppC + ieppC]; // AOSOA[ipagC][idcoup][ix2][ieppC] + } + }; + + //---------------------------------------------------------------------------- + + // A class providing access to memory buffers for a given event, based on explicit event numbers + // Its methods use the MemoryAccessHelper templates - note the use of the template keyword in template function instantiations + class MemoryAccessCouplings : public MemoryAccessCouplingsBase { - constexpr int ipagC = 0; - constexpr int ieppC = 0; - // NB! the offset "idcoup * nx2 * neppC" has been added in idcoupAccessBuffer - constexpr int idcoup = 0; - return buffer[ipagC * ndcoup * nx2 * neppC + idcoup * nx2 * neppC + ix2 * neppC + ieppC]; // AOSOA[ipagC][idcoup][ix2][ieppC] - } -}; - -//---------------------------------------------------------------------------- - -// A class providing access to memory buffers for a given event, based on explicit event numbers -// Its methods use the MemoryAccessHelper templates - note the use of the template keyword in template function instantiations -class MemoryAccessCouplings : public MemoryAccessCouplingsBase -{ -public: - - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] - static constexpr auto ieventAccessRecord = MemoryAccessHelper::ieventAccessRecord; - - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (const) ===> const fptype* ieventAccessRecordConst( const fptype* buffer, const int ievt ) <===] - static constexpr auto ieventAccessRecordConst = MemoryAccessHelper::ieventAccessRecordConst; - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, const int ix2 ) <===] - static constexpr auto decodeRecordIx2 = MemoryAccessHelper::decodeRecord; - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (const) ===> const fptype& decodeRecordConst( const fptype* buffer, const int ix2 ) <===] - static constexpr auto decodeRecordIx2Const = - MemoryAccessHelper::template decodeRecordConst; - - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (non-const) ===> fptype& ieventAccessIx2( fptype* buffer, const ievt, const int ix2 ) <===] - static constexpr auto ieventAccessIx2 = - MemoryAccessHelper::template ieventAccessField; - - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (const) ===> const fptype& ieventAccessIx2Const( const fptype* buffer, const ievt, const int ix2 ) <===] - static constexpr auto ieventAccessIx2Const = - MemoryAccessHelper::template ieventAccessFieldConst; -}; - -//---------------------------------------------------------------------------- - -// A class providing access to memory buffers for a given event, based on implicit kernel rules -// Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations -template -class KernelAccessCouplings -{ -public: - - // Expose selected functions from MemoryAccessCouplingsBase - static constexpr auto idcoupAccessBuffer = MemoryAccessCouplingsBase::idcoupAccessBuffer; - static constexpr auto idcoupAccessBufferConst = MemoryAccessCouplingsBase::idcoupAccessBufferConst; - - // Expose selected functions from MemoryAccessCouplings - static constexpr auto ieventAccessRecordConst = MemoryAccessCouplings::ieventAccessRecordConst; - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (non-const, SCALAR) ===> fptype& kernelAccessIx2( fptype* buffer, const int ix2 ) <===] - static constexpr auto kernelAccessIx2_s = - KernelAccessHelper::template kernelAccessField; - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (const, SCALAR) ===> const fptype& kernelAccessIx2Const( const fptype* buffer, const int ix2 ) <===] - static constexpr auto kernelAccessIx2Const_s = - KernelAccessHelper::template kernelAccessFieldConst; - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (non const, SCALAR OR VECTOR) ===> fptype_sv& kernelAccessIx2( fptype* buffer, const int ix2 ) <===] - static __host__ __device__ inline fptype_sv& - kernelAccessIx2( fptype* buffer, - const int ix2 ) + public: + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] + static constexpr auto ieventAccessRecord = MemoryAccessHelper::ieventAccessRecord; + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (const) ===> const fptype* ieventAccessRecordConst( const fptype* buffer, const int ievt ) <===] + static constexpr auto ieventAccessRecordConst = MemoryAccessHelper::ieventAccessRecordConst; + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, const int ix2 ) <===] + static constexpr auto decodeRecordIx2 = MemoryAccessHelper::decodeRecord; + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (const) ===> const fptype& decodeRecordConst( const fptype* buffer, const int ix2 ) <===] + static constexpr auto decodeRecordIx2Const = + MemoryAccessHelper::template decodeRecordConst; + + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (non-const) ===> fptype& ieventAccessIx2( fptype* buffer, const ievt, const int ix2 ) <===] + static constexpr auto ieventAccessIx2 = + MemoryAccessHelper::template ieventAccessField; + + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (const) ===> const fptype& ieventAccessIx2Const( const fptype* buffer, const ievt, const int ix2 ) <===] + static constexpr auto ieventAccessIx2Const = + MemoryAccessHelper::template ieventAccessFieldConst; + }; + + //---------------------------------------------------------------------------- + + // A class providing access to memory buffers for a given event, based on implicit kernel rules + // Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations + template + class KernelAccessCouplings { - fptype& out = kernelAccessIx2_s( buffer, ix2 ); + public: + + // Expose selected functions from MemoryAccessCouplingsBase + static constexpr auto idcoupAccessBuffer = MemoryAccessCouplingsBase::idcoupAccessBuffer; + static constexpr auto idcoupAccessBufferConst = MemoryAccessCouplingsBase::idcoupAccessBufferConst; + + // Expose selected functions from MemoryAccessCouplings + static constexpr auto ieventAccessRecordConst = MemoryAccessCouplings::ieventAccessRecordConst; + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (non-const, SCALAR) ===> fptype& kernelAccessIx2( fptype* buffer, const int ix2 ) <===] + static constexpr auto kernelAccessIx2_s = + KernelAccessHelper::template kernelAccessField; + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (const, SCALAR) ===> const fptype& kernelAccessIx2Const( const fptype* buffer, const int ix2 ) <===] + static constexpr auto kernelAccessIx2Const_s = + KernelAccessHelper::template kernelAccessFieldConst; + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (non const, SCALAR OR VECTOR) ===> fptype_sv& kernelAccessIx2( fptype* buffer, const int ix2 ) <===] + static __host__ __device__ inline fptype_sv& + kernelAccessIx2( fptype* buffer, + const int ix2 ) + { + fptype& out = kernelAccessIx2_s( buffer, ix2 ); #ifndef MGONGPU_CPPSIMD - return out; + return out; #else - // NB: derived from MemoryAccessMomenta, restricting the implementation to contiguous aligned arrays - constexpr int neppC = MemoryAccessCouplingsBase::neppC; - static_assert( neppC >= neppV ); // ASSUME CONTIGUOUS ARRAYS - static_assert( neppC % neppV == 0 ); // ASSUME CONTIGUOUS ARRAYS - static_assert( mg5amcCpu::HostBufferCouplings::isaligned() ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) - //assert( (size_t)( buffer ) % mgOnGpu::cppAlign == 0 ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) - return mg5amcCpu::fptypevFromAlignedArray( out ); // SIMD bulk load of neppV, use reinterpret_cast + // NB: derived from MemoryAccessMomenta, restricting the implementation to contiguous aligned arrays + constexpr int neppC = MemoryAccessCouplingsBase::neppC; + static_assert( neppC >= neppV ); // ASSUME CONTIGUOUS ARRAYS + static_assert( neppC % neppV == 0 ); // ASSUME CONTIGUOUS ARRAYS + static_assert( mg5amcCpu::HostBufferCouplings::isaligned() ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) + //assert( (size_t)( buffer ) % mgOnGpu::cppAlign == 0 ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) + return mg5amcCpu::fptypevFromAlignedArray( out ); // SIMD bulk load of neppV, use reinterpret_cast #endif - } + } - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (const, SCALAR OR VECTOR) ===> const fptype_sv& kernelAccessIx2Const( const fptype* buffer, const int ix2 ) <===] - static __host__ __device__ inline const fptype_sv& - kernelAccessIx2Const( const fptype* buffer, - const int ix2 ) - { - return kernelAccessIx2( const_cast( buffer ), ix2 ); - } - - /* - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (const, SCALAR OR VECTOR) ===> const fptype_sv& kernelAccessIx2Const( const fptype* buffer, const int ix2 ) <===] - static __host__ __device__ inline const fptype_sv& - kernelAccessIx2Const( const fptype* buffer, - const int ix2 ) - { - const fptype& out = kernelAccessIx2Const_s( buffer, ix2 ); + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (const, SCALAR OR VECTOR) ===> const fptype_sv& kernelAccessIx2Const( const fptype* buffer, const int ix2 ) <===] + static __host__ __device__ inline const fptype_sv& + kernelAccessIx2Const( const fptype* buffer, + const int ix2 ) + { + return kernelAccessIx2( const_cast( buffer ), ix2 ); + } + + /* + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (const, SCALAR OR VECTOR) ===> const fptype_sv& kernelAccessIx2Const( const fptype* buffer, const int ix2 ) <===] + static __host__ __device__ inline const fptype_sv& + kernelAccessIx2Const( const fptype* buffer, + const int ix2 ) + { + const fptype& out = kernelAccessIx2Const_s( buffer, ix2 ); #ifndef MGONGPU_CPPSIMD - return out; + return out; #else - // NB: derived from MemoryAccessMomenta, restricting the implementation to contiguous aligned arrays - constexpr int neppC = MemoryAccessCouplingsBase::neppC; - static_assert( neppC >= neppV ); // ASSUME CONTIGUOUS ARRAYS - static_assert( neppC % neppV == 0 ); // ASSUME CONTIGUOUS ARRAYS - static_assert( mg5amcCpu::HostBufferCouplings::isaligned() ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) - //assert( (size_t)( buffer ) % mgOnGpu::cppAlign == 0 ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) - return mg5amcCpu::fptypevFromAlignedArray( out ); // SIMD bulk load of neppV, use reinterpret_cast + // NB: derived from MemoryAccessMomenta, restricting the implementation to contiguous aligned arrays + constexpr int neppC = MemoryAccessCouplingsBase::neppC; + static_assert( neppC >= neppV ); // ASSUME CONTIGUOUS ARRAYS + static_assert( neppC % neppV == 0 ); // ASSUME CONTIGUOUS ARRAYS + static_assert( mg5amcCpu::HostBufferCouplings::isaligned() ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) + //assert( (size_t)( buffer ) % mgOnGpu::cppAlign == 0 ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) + return mg5amcCpu::fptypevFromAlignedArray( out ); // SIMD bulk load of neppV, use reinterpret_cast #endif - } - */ - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (non const, SCALAR OR VECTOR) ===> cxtype_sv_ref kernelAccess( fptype* buffer ) <===] - static __host__ __device__ inline cxtype_sv_ref - kernelAccess( fptype* buffer ) - { - /* - fptype_sv& real = kernelAccessIx2( buffer, 0 ); - fptype_sv& imag = kernelAccessIx2( buffer, 1 ); - printf( "C_ACCESS::kernelAccess: pbuffer=%p pr=%p pi=%p\n", buffer, &real, &imag ); - return cxtype_sv_ref( real, imag ); - */ - return cxtype_sv_ref( kernelAccessIx2( buffer, 0 ), - kernelAccessIx2( buffer, 1 ) ); - } - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (const, SCALAR OR VECTOR) ===> cxtype_sv kernelAccessConst( const fptype* buffer ) <===] - static __host__ __device__ inline cxtype_sv - kernelAccessConst( const fptype* buffer ) - { - /* - const fptype_sv& real = kernelAccessIx2Const( buffer, 0 ); - const fptype_sv& imag = kernelAccessIx2Const( buffer, 1 ); - printf( "C_ACCESS::kernelAccessConst: pbuffer=%p pr=%p pi=%p\n", buffer, &real, &imag ); - return cxtype_sv( real, imag ); + } */ - return cxtype_sv( kernelAccessIx2Const( buffer, 0 ), - kernelAccessIx2Const( buffer, 1 ) ); - } -}; - -//---------------------------------------------------------------------------- - -typedef KernelAccessCouplings HostAccessCouplings; -typedef KernelAccessCouplings DeviceAccessCouplings; -//---------------------------------------------------------------------------- + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (non const, SCALAR OR VECTOR) ===> cxtype_sv_ref kernelAccess( fptype* buffer ) <===] + static __host__ __device__ inline cxtype_sv_ref + kernelAccess( fptype* buffer ) + { + /* + fptype_sv& real = kernelAccessIx2( buffer, 0 ); + fptype_sv& imag = kernelAccessIx2( buffer, 1 ); + printf( "C_ACCESS::kernelAccess: pbuffer=%p pr=%p pi=%p\n", buffer, &real, &imag ); + return cxtype_sv_ref( real, imag ); + */ + return cxtype_sv_ref( kernelAccessIx2( buffer, 0 ), + kernelAccessIx2( buffer, 1 ) ); + } + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (const, SCALAR OR VECTOR) ===> cxtype_sv kernelAccessConst( const fptype* buffer ) <===] + static __host__ __device__ inline cxtype_sv + kernelAccessConst( const fptype* buffer ) + { + /* + const fptype_sv& real = kernelAccessIx2Const( buffer, 0 ); + const fptype_sv& imag = kernelAccessIx2Const( buffer, 1 ); + printf( "C_ACCESS::kernelAccessConst: pbuffer=%p pr=%p pi=%p\n", buffer, &real, &imag ); + return cxtype_sv( real, imag ); + */ + return cxtype_sv( kernelAccessIx2Const( buffer, 0 ), + kernelAccessIx2Const( buffer, 1 ) ); + } + }; + + //---------------------------------------------------------------------------- + + typedef KernelAccessCouplings HostAccessCouplings; + typedef KernelAccessCouplings DeviceAccessCouplings; + + //---------------------------------------------------------------------------- + +} // end namespace mg5amcGpu/mg5amcCpu #endif // MemoryAccessCouplings_H diff --git a/epochX/cudacpp/gg_tt01g.mad/SubProcesses/MemoryAccessCouplingsFixed.h b/epochX/cudacpp/gg_tt01g.mad/SubProcesses/MemoryAccessCouplingsFixed.h index 81193ab261..dc0d93afff 100644 --- a/epochX/cudacpp/gg_tt01g.mad/SubProcesses/MemoryAccessCouplingsFixed.h +++ b/epochX/cudacpp/gg_tt01g.mad/SubProcesses/MemoryAccessCouplingsFixed.h @@ -13,63 +13,72 @@ //#include "MemoryAccessHelpers.h" -//---------------------------------------------------------------------------- - -// A class describing the internal layout of memory buffers for fixed couplings -// This implementation uses a STRUCT[ndcoup][nx2] "super-buffer" layout: in practice, the cIPC global array -// From the "super-buffer" for ndcoup different couplings, use idcoupAccessBuffer to access the buffer for one specific coupling -// [If many implementations are used, a suffix _Sv1 should be appended to the class name] -class MemoryAccessCouplingsFixedBase //_Sv1 +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { -public: + //---------------------------------------------------------------------------- - // Locate the buffer for a single coupling (output) in a memory super-buffer (input) from the given coupling index (input) - // [Signature (const) ===> const fptype* iicoupAccessBufferConst( const fptype* buffer, const int iicoup ) <===] - static __host__ __device__ inline const fptype* - iicoupAccessBufferConst( const fptype* buffer, // input "super-buffer": in practice, the cIPC global array - const int iicoup ) + // A class describing the internal layout of memory buffers for fixed couplings + // This implementation uses a STRUCT[ndcoup][nx2] "super-buffer" layout: in practice, the cIPC global array + // From the "super-buffer" for ndcoup different couplings, use idcoupAccessBuffer to access the buffer for one specific coupling + // [If many implementations are used, a suffix _Sv1 should be appended to the class name] + class MemoryAccessCouplingsFixedBase //_Sv1 { - constexpr int ix2 = 0; - // NB! this effectively adds an offset "iicoup * nx2" - return &( buffer[iicoup * nx2 + ix2] ); // STRUCT[idcoup][ix2] - } - -private: - - // The number of floating point components of a complex number - static constexpr int nx2 = mgOnGpu::nx2; -}; - -//---------------------------------------------------------------------------- + public: + + // Locate the buffer for a single coupling (output) in a memory super-buffer (input) from the given coupling index (input) + // [Signature (const) ===> const fptype* iicoupAccessBufferConst( const fptype* buffer, const int iicoup ) <===] + static __host__ __device__ inline const fptype* + iicoupAccessBufferConst( const fptype* buffer, // input "super-buffer": in practice, the cIPC global array + const int iicoup ) + { + constexpr int ix2 = 0; + // NB! this effectively adds an offset "iicoup * nx2" + return &( buffer[iicoup * nx2 + ix2] ); // STRUCT[idcoup][ix2] + } + + private: + + // The number of floating point components of a complex number + static constexpr int nx2 = mgOnGpu::nx2; + }; + + //---------------------------------------------------------------------------- + + // A class providing access to memory buffers for a given event, based on implicit kernel rules + // Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations + template + class KernelAccessCouplingsFixed + { + public: -// A class providing access to memory buffers for a given event, based on implicit kernel rules -// Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations -template -class KernelAccessCouplingsFixed -{ -public: + // Expose selected functions from MemoryAccessCouplingsFixedBase + static constexpr auto iicoupAccessBufferConst = MemoryAccessCouplingsFixedBase::iicoupAccessBufferConst; - // Expose selected functions from MemoryAccessCouplingsFixedBase - static constexpr auto iicoupAccessBufferConst = MemoryAccessCouplingsFixedBase::iicoupAccessBufferConst; + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (const, SCALAR OR VECTOR) ===> cxtype_sv kernelAccessConst( const fptype* buffer ) <===] + static __host__ __device__ inline const cxtype_sv + kernelAccessConst( const fptype* buffer ) + { + // TRIVIAL ACCESS to fixed-couplings buffers! + //return cxmake( fptype_sv{ buffer[0] }, fptype_sv{ buffer[1] } ); // NO! BUG #339! + const fptype_sv r_sv = fptype_sv{ 0 } + buffer[0]; + const fptype_sv i_sv = fptype_sv{ 0 } + buffer[1]; + return cxmake( r_sv, i_sv ); // ugly but effective + } + }; - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (const, SCALAR OR VECTOR) ===> cxtype_sv kernelAccessConst( const fptype* buffer ) <===] - static __host__ __device__ inline const cxtype_sv - kernelAccessConst( const fptype* buffer ) - { - // TRIVIAL ACCESS to fixed-couplings buffers! - //return cxmake( fptype_sv{ buffer[0] }, fptype_sv{ buffer[1] } ); // NO! BUG #339! - const fptype_sv r_sv = fptype_sv{ 0 } + buffer[0]; - const fptype_sv i_sv = fptype_sv{ 0 } + buffer[1]; - return cxmake( r_sv, i_sv ); // ugly but effective - } -}; + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- + typedef KernelAccessCouplingsFixed HostAccessCouplingsFixed; + typedef KernelAccessCouplingsFixed DeviceAccessCouplingsFixed; -typedef KernelAccessCouplingsFixed HostAccessCouplingsFixed; -typedef KernelAccessCouplingsFixed DeviceAccessCouplingsFixed; + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- +} // end namespace mg5amcGpu/mg5amcCpu #endif // MemoryAccessCouplingsFixed_H diff --git a/epochX/cudacpp/gg_tt01g.mad/SubProcesses/MemoryAccessDenominators.h b/epochX/cudacpp/gg_tt01g.mad/SubProcesses/MemoryAccessDenominators.h index e76ae65ff9..3bce635718 100644 --- a/epochX/cudacpp/gg_tt01g.mad/SubProcesses/MemoryAccessDenominators.h +++ b/epochX/cudacpp/gg_tt01g.mad/SubProcesses/MemoryAccessDenominators.h @@ -9,15 +9,24 @@ #include "MemoryAccessGs.h" -//---------------------------------------------------------------------------- +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif +{ + //---------------------------------------------------------------------------- + + // A class describing the internal layout of memory buffers for denominators + // This implementation reuses the plain ARRAY[nevt] implementation of MemoryAccessGs -// A class describing the internal layout of memory buffers for denominators -// This implementation reuses the plain ARRAY[nevt] implementation of MemoryAccessGs + typedef KernelAccessGs HostAccessDenominators; + typedef KernelAccessGs DeviceAccessDenominators; -typedef KernelAccessGs HostAccessDenominators; -typedef KernelAccessGs DeviceAccessDenominators; + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- +} // end namespace mg5amcGpu/mg5amcCpu #endif #endif // MemoryAccessDenominators_H diff --git a/epochX/cudacpp/gg_tt01g.mad/SubProcesses/MemoryAccessGs.h b/epochX/cudacpp/gg_tt01g.mad/SubProcesses/MemoryAccessGs.h index 8996c0554c..31311aa375 100644 --- a/epochX/cudacpp/gg_tt01g.mad/SubProcesses/MemoryAccessGs.h +++ b/epochX/cudacpp/gg_tt01g.mad/SubProcesses/MemoryAccessGs.h @@ -12,142 +12,151 @@ #include "MemoryAccessVectors.h" #include "MemoryBuffers.h" // for HostBufferMatrixElements::isaligned -//---------------------------------------------------------------------------- - -// A class describing the internal layout of memory buffers for Gs -// This implementation uses a plain ARRAY[nevt] -// [If many implementations are used, a suffix _ARRAYv1 should be appended to the class name] -class MemoryAccessGsBase //_ARRAYv1 +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { -private: - - friend class MemoryAccessHelper; - friend class KernelAccessHelper; - friend class KernelAccessHelper; - - //-------------------------------------------------------------------------- - // NB all KernelLaunchers assume that memory access can be decomposed as "accessField = decodeRecord( accessRecord )" - // (in other words: first locate the event record for a given event, then locate an element in that record) - //-------------------------------------------------------------------------- - - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] - static __host__ __device__ inline fptype* - ieventAccessRecord( fptype* buffer, - const int ievt ) - { - return &( buffer[ievt] ); // ARRAY[nevt] - } - - //-------------------------------------------------------------------------- + //---------------------------------------------------------------------------- - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, Ts... args ) <===] - // [NB: expand variadic template "Ts... args" to empty and rename "Field" as empty] - static __host__ __device__ inline fptype& - decodeRecord( fptype* buffer ) + // A class describing the internal layout of memory buffers for Gs + // This implementation uses a plain ARRAY[nevt] + // [If many implementations are used, a suffix _ARRAYv1 should be appended to the class name] + class MemoryAccessGsBase //_ARRAYv1 { - constexpr int ievt = 0; - return buffer[ievt]; // ARRAY[nevt] - } -}; - -//---------------------------------------------------------------------------- - -// A class providing access to memory buffers for a given event, based on explicit event numbers -// Its methods use the MemoryAccessHelper templates - note the use of the template keyword in template function instantiations -class MemoryAccessGs : public MemoryAccessGsBase -{ -public: - - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] - static constexpr auto ieventAccessRecord = MemoryAccessHelper::ieventAccessRecord; - - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (const) ===> const fptype* ieventAccessRecordConst( const fptype* buffer, const int ievt ) <===] - static constexpr auto ieventAccessRecordConst = MemoryAccessHelper::ieventAccessRecordConst; - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer ) <===] - static constexpr auto decodeRecord = MemoryAccessHelper::decodeRecord; - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (const) ===> const fptype& decodeRecordConst( const fptype* buffer ) <===] - static constexpr auto decodeRecordConst = - MemoryAccessHelper::template decodeRecordConst<>; - - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (non-const) ===> fptype& ieventAccess( fptype* buffer, const ievt ) <===] - static constexpr auto ieventAccess = - MemoryAccessHelper::template ieventAccessField<>; - - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (const) ===> const fptype& ieventAccessConst( const fptype* buffer, const ievt ) <===] - static constexpr auto ieventAccessConst = - MemoryAccessHelper::template ieventAccessFieldConst<>; -}; - -//---------------------------------------------------------------------------- - -// A class providing access to memory buffers for a given event, based on implicit kernel rules -// Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations -template -class KernelAccessGs -{ -public: - - // Expose selected functions from MemoryAccessGs - static constexpr auto ieventAccessRecord = MemoryAccessGs::ieventAccessRecord; - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (non-const, SCALAR) ===> fptype& kernelAccess( fptype* buffer ) <===] - static constexpr auto kernelAccess_s = - KernelAccessHelper::template kernelAccessField<>; // requires cuda 11.4 - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) - // [Signature (non-const, SCALAR OR VECTOR) ===> fptype_sv& kernelAccess( fptype* buffer ) <===] - static __host__ __device__ inline fptype_sv& - kernelAccess( fptype* buffer ) + private: + + friend class MemoryAccessHelper; + friend class KernelAccessHelper; + friend class KernelAccessHelper; + + //-------------------------------------------------------------------------- + // NB all KernelLaunchers assume that memory access can be decomposed as "accessField = decodeRecord( accessRecord )" + // (in other words: first locate the event record for a given event, then locate an element in that record) + //-------------------------------------------------------------------------- + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] + static __host__ __device__ inline fptype* + ieventAccessRecord( fptype* buffer, + const int ievt ) + { + return &( buffer[ievt] ); // ARRAY[nevt] + } + + //-------------------------------------------------------------------------- + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, Ts... args ) <===] + // [NB: expand variadic template "Ts... args" to empty and rename "Field" as empty] + static __host__ __device__ inline fptype& + decodeRecord( fptype* buffer ) + { + constexpr int ievt = 0; + return buffer[ievt]; // ARRAY[nevt] + } + }; + + //---------------------------------------------------------------------------- + + // A class providing access to memory buffers for a given event, based on explicit event numbers + // Its methods use the MemoryAccessHelper templates - note the use of the template keyword in template function instantiations + class MemoryAccessGs : public MemoryAccessGsBase + { + public: + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] + static constexpr auto ieventAccessRecord = MemoryAccessHelper::ieventAccessRecord; + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (const) ===> const fptype* ieventAccessRecordConst( const fptype* buffer, const int ievt ) <===] + static constexpr auto ieventAccessRecordConst = MemoryAccessHelper::ieventAccessRecordConst; + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer ) <===] + static constexpr auto decodeRecord = MemoryAccessHelper::decodeRecord; + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (const) ===> const fptype& decodeRecordConst( const fptype* buffer ) <===] + static constexpr auto decodeRecordConst = + MemoryAccessHelper::template decodeRecordConst<>; + + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (non-const) ===> fptype& ieventAccess( fptype* buffer, const ievt ) <===] + static constexpr auto ieventAccess = + MemoryAccessHelper::template ieventAccessField<>; + + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (const) ===> const fptype& ieventAccessConst( const fptype* buffer, const ievt ) <===] + static constexpr auto ieventAccessConst = + MemoryAccessHelper::template ieventAccessFieldConst<>; + }; + + //---------------------------------------------------------------------------- + + // A class providing access to memory buffers for a given event, based on implicit kernel rules + // Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations + template + class KernelAccessGs { - fptype& out = kernelAccess_s( buffer ); + public: + + // Expose selected functions from MemoryAccessGs + static constexpr auto ieventAccessRecord = MemoryAccessGs::ieventAccessRecord; + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (non-const, SCALAR) ===> fptype& kernelAccess( fptype* buffer ) <===] + static constexpr auto kernelAccess_s = + KernelAccessHelper::template kernelAccessField<>; // requires cuda 11.4 + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) + // [Signature (non-const, SCALAR OR VECTOR) ===> fptype_sv& kernelAccess( fptype* buffer ) <===] + static __host__ __device__ inline fptype_sv& + kernelAccess( fptype* buffer ) + { + fptype& out = kernelAccess_s( buffer ); #ifndef MGONGPU_CPPSIMD - return out; + return out; #else - // NB: derived from MemoryAccessMomenta, restricting the implementation to contiguous aligned arrays (#435) - static_assert( mg5amcCpu::HostBufferGs::isaligned() ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) - //assert( (size_t)( buffer ) % mgOnGpu::cppAlign == 0 ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) - return mg5amcCpu::fptypevFromAlignedArray( out ); // SIMD bulk load of neppV, use reinterpret_cast + // NB: derived from MemoryAccessMomenta, restricting the implementation to contiguous aligned arrays (#435) + static_assert( mg5amcCpu::HostBufferGs::isaligned() ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) + //assert( (size_t)( buffer ) % mgOnGpu::cppAlign == 0 ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) + return mg5amcCpu::fptypevFromAlignedArray( out ); // SIMD bulk load of neppV, use reinterpret_cast #endif - } - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (const, SCALAR) ===> const fptype& kernelAccessConst( const fptype* buffer ) <===] - static constexpr auto kernelAccessConst_s = - KernelAccessHelper::template kernelAccessFieldConst<>; // requires cuda 11.4 - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) - // [Signature (const, SCALAR OR VECTOR) ===> const fptype_sv& kernelAccess( const fptype* buffer ) <===] - static __host__ __device__ inline const fptype_sv& - kernelAccessConst( const fptype* buffer ) - { - const fptype& out = kernelAccessConst_s( buffer ); + } + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (const, SCALAR) ===> const fptype& kernelAccessConst( const fptype* buffer ) <===] + static constexpr auto kernelAccessConst_s = + KernelAccessHelper::template kernelAccessFieldConst<>; // requires cuda 11.4 + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) + // [Signature (const, SCALAR OR VECTOR) ===> const fptype_sv& kernelAccess( const fptype* buffer ) <===] + static __host__ __device__ inline const fptype_sv& + kernelAccessConst( const fptype* buffer ) + { + const fptype& out = kernelAccessConst_s( buffer ); #ifndef MGONGPU_CPPSIMD - return out; + return out; #else - // NB: derived from MemoryAccessMomenta, restricting the implementation to contiguous aligned arrays (#435) - static_assert( mg5amcCpu::HostBufferGs::isaligned() ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) - //assert( (size_t)( buffer ) % mgOnGpu::cppAlign == 0 ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) - return mg5amcCpu::fptypevFromAlignedArray( out ); // SIMD bulk load of neppV, use reinterpret_cast + // NB: derived from MemoryAccessMomenta, restricting the implementation to contiguous aligned arrays (#435) + static_assert( mg5amcCpu::HostBufferGs::isaligned() ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) + //assert( (size_t)( buffer ) % mgOnGpu::cppAlign == 0 ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) + return mg5amcCpu::fptypevFromAlignedArray( out ); // SIMD bulk load of neppV, use reinterpret_cast #endif - } -}; + } + }; + + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- + typedef KernelAccessGs HostAccessGs; + typedef KernelAccessGs DeviceAccessGs; -typedef KernelAccessGs HostAccessGs; -typedef KernelAccessGs DeviceAccessGs; + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- +} // end namespace mg5amcGpu/mg5amcCpu #endif // MemoryAccessGs_H diff --git a/epochX/cudacpp/gg_tt01g.mad/SubProcesses/MemoryAccessMatrixElements.h b/epochX/cudacpp/gg_tt01g.mad/SubProcesses/MemoryAccessMatrixElements.h index b2a82d9acf..f32e6fea5b 100644 --- a/epochX/cudacpp/gg_tt01g.mad/SubProcesses/MemoryAccessMatrixElements.h +++ b/epochX/cudacpp/gg_tt01g.mad/SubProcesses/MemoryAccessMatrixElements.h @@ -12,126 +12,135 @@ #include "MemoryAccessVectors.h" #include "MemoryBuffers.h" // for HostBufferMatrixElements::isaligned -//---------------------------------------------------------------------------- - -// A class describing the internal layout of memory buffers for matrix elements -// This implementation uses a plain ARRAY[nevt] -// [If many implementations are used, a suffix _ARRAYv1 should be appended to the class name] -class MemoryAccessMatrixElementsBase //_ARRAYv1 +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { -private: - - friend class MemoryAccessHelper; - friend class KernelAccessHelper; - friend class KernelAccessHelper; - - //-------------------------------------------------------------------------- - // NB all KernelLaunchers assume that memory access can be decomposed as "accessField = decodeRecord( accessRecord )" - // (in other words: first locate the event record for a given event, then locate an element in that record) - //-------------------------------------------------------------------------- - - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] - static __host__ __device__ inline fptype* - ieventAccessRecord( fptype* buffer, - const int ievt ) - { - return &( buffer[ievt] ); // ARRAY[nevt] - } + //---------------------------------------------------------------------------- - //-------------------------------------------------------------------------- - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, Ts... args ) <===] - // [NB: expand variadic template "Ts... args" to empty and rename "Field" as empty] - static __host__ __device__ inline fptype& - decodeRecord( fptype* buffer ) + // A class describing the internal layout of memory buffers for matrix elements + // This implementation uses a plain ARRAY[nevt] + // [If many implementations are used, a suffix _ARRAYv1 should be appended to the class name] + class MemoryAccessMatrixElementsBase //_ARRAYv1 { - constexpr int ievt = 0; - return buffer[ievt]; // ARRAY[nevt] - } -}; - -//---------------------------------------------------------------------------- - -// A class providing access to memory buffers for a given event, based on explicit event numbers -// Its methods use the MemoryAccessHelper templates - note the use of the template keyword in template function instantiations -class MemoryAccessMatrixElements : public MemoryAccessMatrixElementsBase -{ -public: - - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] - static constexpr auto ieventAccessRecord = MemoryAccessHelper::ieventAccessRecord; - - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (const) ===> const fptype* ieventAccessRecordConst( const fptype* buffer, const int ievt ) <===] - static constexpr auto ieventAccessRecordConst = MemoryAccessHelper::ieventAccessRecordConst; - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer ) <===] - static constexpr auto decodeRecord = MemoryAccessHelper::decodeRecord; - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (const) ===> const fptype& decodeRecordConst( const fptype* buffer ) <===] - static constexpr auto decodeRecordConst = - MemoryAccessHelper::template decodeRecordConst<>; - - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (non-const) ===> fptype& ieventAccess( fptype* buffer, const ievt ) <===] - static constexpr auto ieventAccess = - MemoryAccessHelper::template ieventAccessField<>; - - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (const) ===> const fptype& ieventAccessConst( const fptype* buffer, const ievt ) <===] - static constexpr auto ieventAccessConst = - MemoryAccessHelper::template ieventAccessFieldConst<>; -}; - -//---------------------------------------------------------------------------- - -// A class providing access to memory buffers for a given event, based on implicit kernel rules -// Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations -template -class KernelAccessMatrixElements -{ -public: - - // Expose selected functions from MemoryAccessMatrixElements - static constexpr auto ieventAccessRecord = MemoryAccessMatrixElements::ieventAccessRecord; - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (non-const, SCALAR) ===> fptype& kernelAccess_s( fptype* buffer ) <===] - static constexpr auto kernelAccess_s = - KernelAccessHelper::template kernelAccessField<>; // requires cuda 11.4 - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) - // [Signature (non const, SCALAR OR VECTOR) ===> fptype_sv& kernelAccess( const fptype* buffer ) <===] - static __host__ __device__ inline fptype_sv& - kernelAccess( fptype* buffer ) + private: + + friend class MemoryAccessHelper; + friend class KernelAccessHelper; + friend class KernelAccessHelper; + + //-------------------------------------------------------------------------- + // NB all KernelLaunchers assume that memory access can be decomposed as "accessField = decodeRecord( accessRecord )" + // (in other words: first locate the event record for a given event, then locate an element in that record) + //-------------------------------------------------------------------------- + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] + static __host__ __device__ inline fptype* + ieventAccessRecord( fptype* buffer, + const int ievt ) + { + return &( buffer[ievt] ); // ARRAY[nevt] + } + + //-------------------------------------------------------------------------- + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, Ts... args ) <===] + // [NB: expand variadic template "Ts... args" to empty and rename "Field" as empty] + static __host__ __device__ inline fptype& + decodeRecord( fptype* buffer ) + { + constexpr int ievt = 0; + return buffer[ievt]; // ARRAY[nevt] + } + }; + + //---------------------------------------------------------------------------- + + // A class providing access to memory buffers for a given event, based on explicit event numbers + // Its methods use the MemoryAccessHelper templates - note the use of the template keyword in template function instantiations + class MemoryAccessMatrixElements : public MemoryAccessMatrixElementsBase + { + public: + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] + static constexpr auto ieventAccessRecord = MemoryAccessHelper::ieventAccessRecord; + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (const) ===> const fptype* ieventAccessRecordConst( const fptype* buffer, const int ievt ) <===] + static constexpr auto ieventAccessRecordConst = MemoryAccessHelper::ieventAccessRecordConst; + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer ) <===] + static constexpr auto decodeRecord = MemoryAccessHelper::decodeRecord; + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (const) ===> const fptype& decodeRecordConst( const fptype* buffer ) <===] + static constexpr auto decodeRecordConst = + MemoryAccessHelper::template decodeRecordConst<>; + + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (non-const) ===> fptype& ieventAccess( fptype* buffer, const ievt ) <===] + static constexpr auto ieventAccess = + MemoryAccessHelper::template ieventAccessField<>; + + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (const) ===> const fptype& ieventAccessConst( const fptype* buffer, const ievt ) <===] + static constexpr auto ieventAccessConst = + MemoryAccessHelper::template ieventAccessFieldConst<>; + }; + + //---------------------------------------------------------------------------- + + // A class providing access to memory buffers for a given event, based on implicit kernel rules + // Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations + template + class KernelAccessMatrixElements { - fptype& out = kernelAccess_s( buffer ); + public: + + // Expose selected functions from MemoryAccessMatrixElements + static constexpr auto ieventAccessRecord = MemoryAccessMatrixElements::ieventAccessRecord; + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (non-const, SCALAR) ===> fptype& kernelAccess_s( fptype* buffer ) <===] + static constexpr auto kernelAccess_s = + KernelAccessHelper::template kernelAccessField<>; // requires cuda 11.4 + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) + // [Signature (non const, SCALAR OR VECTOR) ===> fptype_sv& kernelAccess( const fptype* buffer ) <===] + static __host__ __device__ inline fptype_sv& + kernelAccess( fptype* buffer ) + { + fptype& out = kernelAccess_s( buffer ); #ifndef MGONGPU_CPPSIMD - return out; + return out; #else - // NB: derived from MemoryAccessMomenta, restricting the implementation to contiguous aligned arrays (#435) - static_assert( mg5amcCpu::HostBufferMatrixElements::isaligned() ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) - //assert( (size_t)( buffer ) % mgOnGpu::cppAlign == 0 ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) - return mg5amcCpu::fptypevFromAlignedArray( out ); // SIMD bulk load of neppV, use reinterpret_cast + // NB: derived from MemoryAccessMomenta, restricting the implementation to contiguous aligned arrays (#435) + static_assert( mg5amcCpu::HostBufferMatrixElements::isaligned() ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) + //assert( (size_t)( buffer ) % mgOnGpu::cppAlign == 0 ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) + return mg5amcCpu::fptypevFromAlignedArray( out ); // SIMD bulk load of neppV, use reinterpret_cast #endif - } + } + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (const) ===> const fptype& kernelAccessConst( const fptype* buffer ) <===] + static constexpr auto kernelAccessConst = + KernelAccessHelper::template kernelAccessFieldConst<>; // requires cuda 11.4 + }; - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (const) ===> const fptype& kernelAccessConst( const fptype* buffer ) <===] - static constexpr auto kernelAccessConst = - KernelAccessHelper::template kernelAccessFieldConst<>; // requires cuda 11.4 -}; + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- + typedef KernelAccessMatrixElements HostAccessMatrixElements; + typedef KernelAccessMatrixElements DeviceAccessMatrixElements; -typedef KernelAccessMatrixElements HostAccessMatrixElements; -typedef KernelAccessMatrixElements DeviceAccessMatrixElements; + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- +} // end namespace mg5amcGpu/mg5amcCpu #endif // MemoryAccessMatrixElements_H diff --git a/epochX/cudacpp/gg_tt01g.mad/SubProcesses/MemoryAccessMomenta.h b/epochX/cudacpp/gg_tt01g.mad/SubProcesses/MemoryAccessMomenta.h index 0ac4faa3c7..29266de32c 100644 --- a/epochX/cudacpp/gg_tt01g.mad/SubProcesses/MemoryAccessMomenta.h +++ b/epochX/cudacpp/gg_tt01g.mad/SubProcesses/MemoryAccessMomenta.h @@ -12,261 +12,264 @@ #include "MemoryAccessHelpers.h" #include "MemoryAccessVectors.h" +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) #ifdef __CUDACC__ -using mg5amcGpu::CPPProcess; +namespace mg5amcGpu #else -using mg5amcCpu::CPPProcess; +namespace mg5amcCpu #endif - -//---------------------------------------------------------------------------- - -// A class describing the internal layout of memory buffers for momenta -// This implementation uses an AOSOA[npagM][npar][np4][neppM] where nevt=npagM*neppM -// [If many implementations are used, a suffix _AOSOAv1 should be appended to the class name] -class MemoryAccessMomentaBase //_AOSOAv1 { -public: + //---------------------------------------------------------------------------- + + // A class describing the internal layout of memory buffers for momenta + // This implementation uses an AOSOA[npagM][npar][np4][neppM] where nevt=npagM*neppM + // [If many implementations are used, a suffix _AOSOAv1 should be appended to the class name] + class MemoryAccessMomentaBase //_AOSOAv1 + { + public: - // Number of Events Per Page in the momenta AOSOA memory buffer layout - // (these are all best kept as a compile-time constants: see issue #23) + // Number of Events Per Page in the momenta AOSOA memory buffer layout + // (these are all best kept as a compile-time constants: see issue #23) #ifdef __CUDACC__ /* clang-format off */ - // ----------------------------------------------------------------------------------------------- - // --- GPUs: neppM is best set to a power of 2 times the number of fptype's in a 32-byte cacheline - // --- This is relevant to ensure coalesced access to momenta in global memory - // --- Note that neppR is hardcoded and may differ from neppM and neppV on some platforms - // ----------------------------------------------------------------------------------------------- - //static constexpr int neppM = 64/sizeof(fptype); // 2x 32-byte GPU cache lines (512 bits): 8 (DOUBLE) or 16 (FLOAT) - static constexpr int neppM = 32/sizeof(fptype); // (DEFAULT) 32-byte GPU cache line (256 bits): 4 (DOUBLE) or 8 (FLOAT) - //static constexpr int neppM = 1; // *** NB: this is equivalent to AOS *** (slower: 1.03E9 instead of 1.11E9 in eemumu) + // ----------------------------------------------------------------------------------------------- + // --- GPUs: neppM is best set to a power of 2 times the number of fptype's in a 32-byte cacheline + // --- This is relevant to ensure coalesced access to momenta in global memory + // --- Note that neppR is hardcoded and may differ from neppM and neppV on some platforms + // ----------------------------------------------------------------------------------------------- + //static constexpr int neppM = 64/sizeof(fptype); // 2x 32-byte GPU cache lines (512 bits): 8 (DOUBLE) or 16 (FLOAT) + static constexpr int neppM = 32/sizeof(fptype); // (DEFAULT) 32-byte GPU cache line (256 bits): 4 (DOUBLE) or 8 (FLOAT) + //static constexpr int neppM = 1; // *** NB: this is equivalent to AOS *** (slower: 1.03E9 instead of 1.11E9 in eemumu) #else - // ----------------------------------------------------------------------------------------------- - // --- CPUs: neppM is best set equal to the number of fptype's (neppV) in a vector register - // --- This is relevant to ensure faster access to momenta from C++ memory cache lines - // --- However, neppM is now decoupled from neppV (issue #176) and can be separately hardcoded - // --- In practice, neppR, neppM and neppV could now (in principle) all be different - // ----------------------------------------------------------------------------------------------- + // ----------------------------------------------------------------------------------------------- + // --- CPUs: neppM is best set equal to the number of fptype's (neppV) in a vector register + // --- This is relevant to ensure faster access to momenta from C++ memory cache lines + // --- However, neppM is now decoupled from neppV (issue #176) and can be separately hardcoded + // --- In practice, neppR, neppM and neppV could now (in principle) all be different + // ----------------------------------------------------------------------------------------------- #ifdef MGONGPU_CPPSIMD - static constexpr int neppM = MGONGPU_CPPSIMD; // (DEFAULT) neppM=neppV for optimal performance - //static constexpr int neppM = 64/sizeof(fptype); // maximum CPU vector width (512 bits): 8 (DOUBLE) or 16 (FLOAT) - //static constexpr int neppM = 32/sizeof(fptype); // lower CPU vector width (256 bits): 4 (DOUBLE) or 8 (FLOAT) - //static constexpr int neppM = 1; // *** NB: this is equivalent to AOS *** (slower: 4.66E6 instead of 5.09E9 in eemumu) - //static constexpr int neppM = MGONGPU_CPPSIMD*2; // FOR TESTS + static constexpr int neppM = MGONGPU_CPPSIMD; // (DEFAULT) neppM=neppV for optimal performance + //static constexpr int neppM = 64/sizeof(fptype); // maximum CPU vector width (512 bits): 8 (DOUBLE) or 16 (FLOAT) + //static constexpr int neppM = 32/sizeof(fptype); // lower CPU vector width (256 bits): 4 (DOUBLE) or 8 (FLOAT) + //static constexpr int neppM = 1; // *** NB: this is equivalent to AOS *** (slower: 4.66E6 instead of 5.09E9 in eemumu) + //static constexpr int neppM = MGONGPU_CPPSIMD*2; // FOR TESTS #else - static constexpr int neppM = 1; // (DEFAULT) neppM=neppV for optimal performance (NB: this is equivalent to AOS) + static constexpr int neppM = 1; // (DEFAULT) neppM=neppV for optimal performance (NB: this is equivalent to AOS) #endif #endif /* clang-format on */ - // SANITY CHECK: check that neppM is a power of two - static_assert( ispoweroftwo( neppM ), "neppM is not a power of 2" ); + // SANITY CHECK: check that neppM is a power of two + static_assert( ispoweroftwo( neppM ), "neppM is not a power of 2" ); -private: + private: - friend class MemoryAccessHelper; - friend class KernelAccessHelper; - friend class KernelAccessHelper; + friend class MemoryAccessHelper; + friend class KernelAccessHelper; + friend class KernelAccessHelper; - // The number of components of a 4-momentum - static constexpr int np4 = CPPProcess::np4; + // The number of components of a 4-momentum + static constexpr int np4 = CPPProcess::np4; - // The number of particles in this physics process - static constexpr int npar = CPPProcess::npar; + // The number of particles in this physics process + static constexpr int npar = CPPProcess::npar; - //-------------------------------------------------------------------------- - // NB all KernelLaunchers assume that memory access can be decomposed as "accessField = decodeRecord( accessRecord )" - // (in other words: first locate the event record for a given event, then locate an element in that record) - //-------------------------------------------------------------------------- + //-------------------------------------------------------------------------- + // NB all KernelLaunchers assume that memory access can be decomposed as "accessField = decodeRecord( accessRecord )" + // (in other words: first locate the event record for a given event, then locate an element in that record) + //-------------------------------------------------------------------------- - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] - static __host__ __device__ inline fptype* - ieventAccessRecord( fptype* buffer, - const int ievt ) - { - const int ipagM = ievt / neppM; // #event "M-page" - const int ieppM = ievt % neppM; // #event in the current event M-page - constexpr int ip4 = 0; - constexpr int ipar = 0; - return &( buffer[ipagM * npar * np4 * neppM + ipar * np4 * neppM + ip4 * neppM + ieppM] ); // AOSOA[ipagM][ipar][ip4][ieppM] - } - - //-------------------------------------------------------------------------- - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, Ts... args ) <===] - // [NB: expand variadic template "Ts... args" to "const int ip4, const int ipar" and rename "Field" as "Ip4Ipar"] - static __host__ __device__ inline fptype& - decodeRecord( fptype* buffer, - const int ip4, - const int ipar ) + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] + static __host__ __device__ inline fptype* + ieventAccessRecord( fptype* buffer, + const int ievt ) + { + const int ipagM = ievt / neppM; // #event "M-page" + const int ieppM = ievt % neppM; // #event in the current event M-page + constexpr int ip4 = 0; + constexpr int ipar = 0; + return &( buffer[ipagM * npar * np4 * neppM + ipar * np4 * neppM + ip4 * neppM + ieppM] ); // AOSOA[ipagM][ipar][ip4][ieppM] + } + + //-------------------------------------------------------------------------- + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, Ts... args ) <===] + // [NB: expand variadic template "Ts... args" to "const int ip4, const int ipar" and rename "Field" as "Ip4Ipar"] + static __host__ __device__ inline fptype& + decodeRecord( fptype* buffer, + const int ip4, + const int ipar ) + { + constexpr int ipagM = 0; + constexpr int ieppM = 0; + return buffer[ipagM * npar * np4 * neppM + ipar * np4 * neppM + ip4 * neppM + ieppM]; // AOSOA[ipagM][ipar][ip4][ieppM] + } + }; + + //---------------------------------------------------------------------------- + + // A class providing access to memory buffers for a given event, based on explicit event numbers + // Its methods use the MemoryAccessHelper templates - note the use of the template keyword in template function instantiations + class MemoryAccessMomenta : public MemoryAccessMomentaBase { - constexpr int ipagM = 0; - constexpr int ieppM = 0; - return buffer[ipagM * npar * np4 * neppM + ipar * np4 * neppM + ip4 * neppM + ieppM]; // AOSOA[ipagM][ipar][ip4][ieppM] - } -}; + public: + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] + static constexpr auto ieventAccessRecord = MemoryAccessHelper::ieventAccessRecord; + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (const) ===> const fptype* ieventAccessRecordConst( const fptype* buffer, const int ievt ) <===] + static constexpr auto ieventAccessRecordConst = MemoryAccessHelper::ieventAccessRecordConst; + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, const int ipar, const int ipar ) <===] + static constexpr auto decodeRecordIp4Ipar = MemoryAccessHelper::decodeRecord; + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (const) ===> const fptype& decodeRecordConst( const fptype* buffer, const int ipar, const int ipar ) <===] + static constexpr auto decodeRecordIp4IparConst = + MemoryAccessHelper::template decodeRecordConst; + + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (non-const) ===> fptype& ieventAccessIp4Ipar( fptype* buffer, const ievt, const int ipar, const int ipar ) <===] + static constexpr auto ieventAccessIp4Ipar = + MemoryAccessHelper::template ieventAccessField; + + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (const) ===> const fptype& ieventAccessIp4IparConst( const fptype* buffer, const ievt, const int ipar, const int ipar ) <===] + // DEFAULT VERSION + static constexpr auto ieventAccessIp4IparConst = + MemoryAccessHelper::template ieventAccessFieldConst; + + /* + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (const) ===> const fptype& ieventAccessIp4IparConst( const fptype* buffer, const ievt, const int ipar, const int ipar ) <===] + // DEBUG VERSION WITH PRINTOUTS + static __host__ __device__ inline const fptype& + ieventAccessIp4IparConst( const fptype* buffer, + const int ievt, + const int ip4, + const int ipar ) + { + const fptype& out = MemoryAccessHelper::template ieventAccessFieldConst( buffer, ievt, ip4, ipar ); + printf( "ipar=%2d ip4=%2d ievt=%8d out=%8.3f\n", ipar, ip4, ievt, out ); + return out; + } + */ + }; -//---------------------------------------------------------------------------- + //---------------------------------------------------------------------------- -// A class providing access to memory buffers for a given event, based on explicit event numbers -// Its methods use the MemoryAccessHelper templates - note the use of the template keyword in template function instantiations -class MemoryAccessMomenta : public MemoryAccessMomentaBase -{ -public: - - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] - static constexpr auto ieventAccessRecord = MemoryAccessHelper::ieventAccessRecord; - - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (const) ===> const fptype* ieventAccessRecordConst( const fptype* buffer, const int ievt ) <===] - static constexpr auto ieventAccessRecordConst = MemoryAccessHelper::ieventAccessRecordConst; - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, const int ipar, const int ipar ) <===] - static constexpr auto decodeRecordIp4Ipar = MemoryAccessHelper::decodeRecord; - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (const) ===> const fptype& decodeRecordConst( const fptype* buffer, const int ipar, const int ipar ) <===] - static constexpr auto decodeRecordIp4IparConst = - MemoryAccessHelper::template decodeRecordConst; - - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (non-const) ===> fptype& ieventAccessIp4Ipar( fptype* buffer, const ievt, const int ipar, const int ipar ) <===] - static constexpr auto ieventAccessIp4Ipar = - MemoryAccessHelper::template ieventAccessField; - - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (const) ===> const fptype& ieventAccessIp4IparConst( const fptype* buffer, const ievt, const int ipar, const int ipar ) <===] - // DEFAULT VERSION - static constexpr auto ieventAccessIp4IparConst = - MemoryAccessHelper::template ieventAccessFieldConst; - - /* - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (const) ===> const fptype& ieventAccessIp4IparConst( const fptype* buffer, const ievt, const int ipar, const int ipar ) <===] - // DEBUG VERSION WITH PRINTOUTS - static __host__ __device__ inline const fptype& - ieventAccessIp4IparConst( const fptype* buffer, - const int ievt, - const int ip4, - const int ipar ) + // A class providing access to memory buffers for a given event, based on implicit kernel rules + // Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations + template + class KernelAccessMomenta { - const fptype& out = MemoryAccessHelper::template ieventAccessFieldConst( buffer, ievt, ip4, ipar ); - printf( "ipar=%2d ip4=%2d ievt=%8d out=%8.3f\n", ipar, ip4, ievt, out ); - return out; - } - */ -}; - -//---------------------------------------------------------------------------- - -// A class providing access to memory buffers for a given event, based on implicit kernel rules -// Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations -template -class KernelAccessMomenta -{ -public: - - // Expose selected functions from MemoryAccessMomenta - static constexpr auto ieventAccessRecordConst = MemoryAccessMomenta::ieventAccessRecordConst; - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (non-const, SCALAR) ===> fptype& kernelAccessIp4Ipar( fptype* buffer, const int ipar, const int ipar ) <===] - static constexpr auto kernelAccessIp4Ipar = - KernelAccessHelper::template kernelAccessField; - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (const, SCALAR) ===> const fptype& kernelAccessIp4IparConst( const fptype* buffer, const int ipar, const int ipar ) <===] - // DEFAULT VERSION - static constexpr auto kernelAccessIp4IparConst_s = - KernelAccessHelper::template kernelAccessFieldConst; - - /* - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (const, SCALAR) ===> const fptype& kernelAccessIp4IparConst( const fptype* buffer, const int ipar, const int ipar ) <===] - // DEBUG VERSION WITH PRINTOUTS - static __host__ __device__ inline const fptype& - kernelAccessIp4IparConst_s( const fptype* buffer, + public: + + // Expose selected functions from MemoryAccessMomenta + static constexpr auto ieventAccessRecordConst = MemoryAccessMomenta::ieventAccessRecordConst; + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (non-const, SCALAR) ===> fptype& kernelAccessIp4Ipar( fptype* buffer, const int ipar, const int ipar ) <===] + static constexpr auto kernelAccessIp4Ipar = + KernelAccessHelper::template kernelAccessField; + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (const, SCALAR) ===> const fptype& kernelAccessIp4IparConst( const fptype* buffer, const int ipar, const int ipar ) <===] + // DEFAULT VERSION + static constexpr auto kernelAccessIp4IparConst_s = + KernelAccessHelper::template kernelAccessFieldConst; + + /* + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (const, SCALAR) ===> const fptype& kernelAccessIp4IparConst( const fptype* buffer, const int ipar, const int ipar ) <===] + // DEBUG VERSION WITH PRINTOUTS + static __host__ __device__ inline const fptype& + kernelAccessIp4IparConst_s( const fptype* buffer, + const int ip4, + const int ipar ) + { + const fptype& out = KernelAccessHelper::template kernelAccessFieldConst( buffer, ip4, ipar ); + printf( "ipar=%2d ip4=%2d ievt='kernel' out=%8.3f\n", ipar, ip4, out ); + return out; + } + */ + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (const, SCALAR OR VECTOR) ===> fptype_sv kernelAccessIp4IparConst( const fptype* buffer, const int ipar, const int ipar ) <===] + // FIXME? Eventually return by const reference and support aligned arrays only? + // FIXME? Currently return by value to support also unaligned and arbitrary arrays + static __host__ __device__ inline fptype_sv + kernelAccessIp4IparConst( const fptype* buffer, const int ip4, const int ipar ) - { - const fptype& out = KernelAccessHelper::template kernelAccessFieldConst( buffer, ip4, ipar ); - printf( "ipar=%2d ip4=%2d ievt='kernel' out=%8.3f\n", ipar, ip4, out ); - return out; - } - */ - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (const, SCALAR OR VECTOR) ===> fptype_sv kernelAccessIp4IparConst( const fptype* buffer, const int ipar, const int ipar ) <===] - // FIXME? Eventually return by const reference and support aligned arrays only? - // FIXME? Currently return by value to support also unaligned and arbitrary arrays - static __host__ __device__ inline fptype_sv - kernelAccessIp4IparConst( const fptype* buffer, - const int ip4, - const int ipar ) - { - const fptype& out = kernelAccessIp4IparConst_s( buffer, ip4, ipar ); + { + const fptype& out = kernelAccessIp4IparConst_s( buffer, ip4, ipar ); #ifndef MGONGPU_CPPSIMD - return out; + return out; #else - constexpr int neppM = MemoryAccessMomentaBase::neppM; - constexpr bool useContiguousEventsIfPossible = true; // DEFAULT - //constexpr bool useContiguousEventsIfPossible = false; // FOR PERFORMANCE TESTS (treat as arbitrary array even if it is an AOSOA) - // Use c++17 "if constexpr": compile-time branching - if constexpr( useContiguousEventsIfPossible && ( neppM >= neppV ) && ( neppM % neppV == 0 ) ) - { - //constexpr bool skipAlignmentCheck = true; // FASTEST (SEGFAULTS IF MISALIGNED ACCESS, NEEDS A SANITY CHECK ELSEWHERE!) - constexpr bool skipAlignmentCheck = false; // DEFAULT: A BIT SLOWER BUT SAFER [ALLOWS MISALIGNED ACCESS] - if constexpr( skipAlignmentCheck ) - { - //static bool first=true; if( first ){ std::cout << "WARNING! assume aligned AOSOA, skip check" << std::endl; first=false; } // SLOWER (5.06E6) - // FASTEST? (5.09E6 in eemumu 512y) - // This assumes alignment for momenta1d without checking - causes segmentation fault in reinterpret_cast if not aligned! - return mg5amcCpu::fptypevFromAlignedArray( out ); // use reinterpret_cast - } - else if( (size_t)( buffer ) % mgOnGpu::cppAlign == 0 ) + constexpr int neppM = MemoryAccessMomentaBase::neppM; + constexpr bool useContiguousEventsIfPossible = true; // DEFAULT + //constexpr bool useContiguousEventsIfPossible = false; // FOR PERFORMANCE TESTS (treat as arbitrary array even if it is an AOSOA) + // Use c++17 "if constexpr": compile-time branching + if constexpr( useContiguousEventsIfPossible && ( neppM >= neppV ) && ( neppM % neppV == 0 ) ) { - //static bool first=true; if( first ){ std::cout << "WARNING! aligned AOSOA, reinterpret cast" << std::endl; first=false; } // SLOWER (5.00E6) - // DEFAULT! A tiny bit (<1%) slower because of the alignment check (5.07E6 in eemumu 512y) - // This explicitly checks buffer alignment to avoid segmentation faults in reinterpret_cast - return mg5amcCpu::fptypevFromAlignedArray( out ); // SIMD bulk load of neppV, use reinterpret_cast + //constexpr bool skipAlignmentCheck = true; // FASTEST (SEGFAULTS IF MISALIGNED ACCESS, NEEDS A SANITY CHECK ELSEWHERE!) + constexpr bool skipAlignmentCheck = false; // DEFAULT: A BIT SLOWER BUT SAFER [ALLOWS MISALIGNED ACCESS] + if constexpr( skipAlignmentCheck ) + { + //static bool first=true; if( first ){ std::cout << "WARNING! assume aligned AOSOA, skip check" << std::endl; first=false; } // SLOWER (5.06E6) + // FASTEST? (5.09E6 in eemumu 512y) + // This assumes alignment for momenta1d without checking - causes segmentation fault in reinterpret_cast if not aligned! + return mg5amcCpu::fptypevFromAlignedArray( out ); // use reinterpret_cast + } + else if( (size_t)( buffer ) % mgOnGpu::cppAlign == 0 ) + { + //static bool first=true; if( first ){ std::cout << "WARNING! aligned AOSOA, reinterpret cast" << std::endl; first=false; } // SLOWER (5.00E6) + // DEFAULT! A tiny bit (<1%) slower because of the alignment check (5.07E6 in eemumu 512y) + // This explicitly checks buffer alignment to avoid segmentation faults in reinterpret_cast + return mg5amcCpu::fptypevFromAlignedArray( out ); // SIMD bulk load of neppV, use reinterpret_cast + } + else + { + //static bool first=true; if( first ){ std::cout << "WARNING! AOSOA but no reinterpret cast" << std::endl; first=false; } // SLOWER (4.93E6) + // A bit (1%) slower (5.05E6 in eemumu 512y) + // This does not require buffer alignment, but it requires AOSOA with neppM>=neppV and neppM%neppV==0 + return mg5amcCpu::fptypevFromUnalignedArray( out ); // SIMD bulk load of neppV, do not use reinterpret_cast (fewer SIMD operations) + } } else { - //static bool first=true; if( first ){ std::cout << "WARNING! AOSOA but no reinterpret cast" << std::endl; first=false; } // SLOWER (4.93E6) - // A bit (1%) slower (5.05E6 in eemumu 512y) - // This does not require buffer alignment, but it requires AOSOA with neppM>=neppV and neppM%neppV==0 - return mg5amcCpu::fptypevFromUnalignedArray( out ); // SIMD bulk load of neppV, do not use reinterpret_cast (fewer SIMD operations) + //static bool first=true; if( first ){ std::cout << "WARNING! arbitrary array" << std::endl; first=false; } // SLOWER (5.08E6) + // ?!Used to be much slower, now a tiny bit faster for AOSOA?! (5.11E6 for AOSOA, 4.64E6 for AOS in eemumu 512y) + // This does not even require AOSOA with neppM>=neppV and neppM%neppV==0 (e.g. can be used with AOS neppM==1) + constexpr int ievt0 = 0; // just make it explicit in the code that buffer refers to a given ievt0 and decoderIeppV fetches event ievt0+ieppV + auto decoderIeppv = [buffer, ip4, ipar]( int ieppV ) + -> const fptype& + { return MemoryAccessMomenta::ieventAccessIp4IparConst( buffer, ievt0 + ieppV, ip4, ipar ); }; + return mg5amcCpu::fptypevFromArbitraryArray( decoderIeppv ); // iterate over ieppV in neppV (no SIMD) } +#endif } - else + + // Is this a HostAccess or DeviceAccess class? + // [this is only needed for a warning printout in rambo.h for nparf==1 #358] + static __host__ __device__ inline constexpr bool + isOnDevice() { - //static bool first=true; if( first ){ std::cout << "WARNING! arbitrary array" << std::endl; first=false; } // SLOWER (5.08E6) - // ?!Used to be much slower, now a tiny bit faster for AOSOA?! (5.11E6 for AOSOA, 4.64E6 for AOS in eemumu 512y) - // This does not even require AOSOA with neppM>=neppV and neppM%neppV==0 (e.g. can be used with AOS neppM==1) - constexpr int ievt0 = 0; // just make it explicit in the code that buffer refers to a given ievt0 and decoderIeppV fetches event ievt0+ieppV - auto decoderIeppv = [buffer, ip4, ipar]( int ieppV ) - -> const fptype& - { return MemoryAccessMomenta::ieventAccessIp4IparConst( buffer, ievt0 + ieppV, ip4, ipar ); }; - return mg5amcCpu::fptypevFromArbitraryArray( decoderIeppv ); // iterate over ieppV in neppV (no SIMD) + return onDevice; } -#endif - } + }; - // Is this a HostAccess or DeviceAccess class? - // [this is only needed for a warning printout in rambo.h for nparf==1 #358] - static __host__ __device__ inline constexpr bool - isOnDevice() - { - return onDevice; - } -}; + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- + typedef KernelAccessMomenta HostAccessMomenta; + typedef KernelAccessMomenta DeviceAccessMomenta; -typedef KernelAccessMomenta HostAccessMomenta; -typedef KernelAccessMomenta DeviceAccessMomenta; + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- +} // end namespace mg5amcGpu/mg5amcCpu #endif // MemoryAccessMomenta_H diff --git a/epochX/cudacpp/gg_tt01g.mad/SubProcesses/MemoryAccessNumerators.h b/epochX/cudacpp/gg_tt01g.mad/SubProcesses/MemoryAccessNumerators.h index b373fd6048..b152183b28 100644 --- a/epochX/cudacpp/gg_tt01g.mad/SubProcesses/MemoryAccessNumerators.h +++ b/epochX/cudacpp/gg_tt01g.mad/SubProcesses/MemoryAccessNumerators.h @@ -9,15 +9,24 @@ #include "MemoryAccessGs.h" -//---------------------------------------------------------------------------- +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif +{ + //---------------------------------------------------------------------------- + + // A class describing the internal layout of memory buffers for numerators + // This implementation reuses the plain ARRAY[nevt] implementation of MemoryAccessGs -// A class describing the internal layout of memory buffers for numerators -// This implementation reuses the plain ARRAY[nevt] implementation of MemoryAccessGs + typedef KernelAccessGs HostAccessNumerators; + typedef KernelAccessGs DeviceAccessNumerators; -typedef KernelAccessGs HostAccessNumerators; -typedef KernelAccessGs DeviceAccessNumerators; + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- +} // end namespace mg5amcGpu/mg5amcCpu #endif #endif // MemoryAccessNumerators_H diff --git a/epochX/cudacpp/gg_tt01g.mad/SubProcesses/MemoryAccessWavefunctions.h b/epochX/cudacpp/gg_tt01g.mad/SubProcesses/MemoryAccessWavefunctions.h index f42f0d34ed..5428aaf933 100644 --- a/epochX/cudacpp/gg_tt01g.mad/SubProcesses/MemoryAccessWavefunctions.h +++ b/epochX/cudacpp/gg_tt01g.mad/SubProcesses/MemoryAccessWavefunctions.h @@ -14,147 +14,156 @@ #define MGONGPU_TRIVIAL_WAVEFUNCTIONS 1 -//---------------------------------------------------------------------------- - -#ifndef MGONGPU_TRIVIAL_WAVEFUNCTIONS - -// A class describing the internal layout of memory buffers for wavefunctions -// This implementation uses an AOSOA[npagW][nw6][nx2][neppW] where nevt=npagW*neppW -// [If many implementations are used, a suffix _AOSOAv1 should be appended to the class name] -class MemoryAccessWavefunctionsBase //_AOSOAv1 +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { -public: - - // Number of Events Per Page in the wavefunction AOSOA memory buffer layout - static constexpr int neppW = 1; // AOS (just a test...) - -private: - - friend class MemoryAccessHelper; - friend class KernelAccessHelper; - friend class KernelAccessHelper; - - // The number of components of a (fermion or vector) wavefunction - static constexpr int nw6 = mgOnGpu::nw6; - - // The number of floating point components of a complex number - static constexpr int nx2 = mgOnGpu::nx2; + //---------------------------------------------------------------------------- - //-------------------------------------------------------------------------- - // NB all KernelLaunchers assume that memory access can be decomposed as "accessField = decodeRecord( accessRecord )" - // (in other words: first locate the event record for a given event, then locate an element in that record) - //-------------------------------------------------------------------------- +#ifndef MGONGPU_TRIVIAL_WAVEFUNCTIONS - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] - static __host__ __device__ inline fptype* - ieventAccessRecord( fptype* buffer, - const int ievt ) + // A class describing the internal layout of memory buffers for wavefunctions + // This implementation uses an AOSOA[npagW][nw6][nx2][neppW] where nevt=npagW*neppW + // [If many implementations are used, a suffix _AOSOAv1 should be appended to the class name] + class MemoryAccessWavefunctionsBase //_AOSOAv1 { - const int ipagW = ievt / neppW; // #event "W-page" - const int ieppW = ievt % neppW; // #event in the current event W-page - constexpr int iw6 = 0; - constexpr int ix2 = 0; - return &( buffer[ipagW * nw6 * nx2 * neppW + iw6 * nx2 * neppW + ix2 * neppW + ieppW] ); // AOSOA[ipagW][iw6][ix2][ieppW] - } - - //-------------------------------------------------------------------------- - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, Ts... args ) <===] - // [NB: expand variadic template "Ts... args" to "const int iw6, const int ix2" and rename "Field" as "Iw6Ix2"] - static __host__ __device__ inline fptype& - decodeRecord( fptype* buffer, - const int iw6, - const int ix2 ) + public: + + // Number of Events Per Page in the wavefunction AOSOA memory buffer layout + static constexpr int neppW = 1; // AOS (just a test...) + + private: + + friend class MemoryAccessHelper; + friend class KernelAccessHelper; + friend class KernelAccessHelper; + + // The number of components of a (fermion or vector) wavefunction + static constexpr int nw6 = mgOnGpu::nw6; + + // The number of floating point components of a complex number + static constexpr int nx2 = mgOnGpu::nx2; + + //-------------------------------------------------------------------------- + // NB all KernelLaunchers assume that memory access can be decomposed as "accessField = decodeRecord( accessRecord )" + // (in other words: first locate the event record for a given event, then locate an element in that record) + //-------------------------------------------------------------------------- + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] + static __host__ __device__ inline fptype* + ieventAccessRecord( fptype* buffer, + const int ievt ) + { + const int ipagW = ievt / neppW; // #event "W-page" + const int ieppW = ievt % neppW; // #event in the current event W-page + constexpr int iw6 = 0; + constexpr int ix2 = 0; + return &( buffer[ipagW * nw6 * nx2 * neppW + iw6 * nx2 * neppW + ix2 * neppW + ieppW] ); // AOSOA[ipagW][iw6][ix2][ieppW] + } + + //-------------------------------------------------------------------------- + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, Ts... args ) <===] + // [NB: expand variadic template "Ts... args" to "const int iw6, const int ix2" and rename "Field" as "Iw6Ix2"] + static __host__ __device__ inline fptype& + decodeRecord( fptype* buffer, + const int iw6, + const int ix2 ) + { + constexpr int ipagW = 0; + constexpr int ieppW = 0; + return buffer[ipagW * nw6 * nx2 * neppW + iw6 * nx2 * neppW + ix2 * neppW + ieppW]; // AOSOA[ipagW][iw6][ix2][ieppW] + } + }; + + //---------------------------------------------------------------------------- + + // A class providing access to memory buffers for a given event, based on explicit event numbers + // Its methods use the MemoryAccessHelper templates - note the use of the template keyword in template function instantiations + class MemoryAccessWavefunctions : public MemoryAccessWavefunctionsBase { - constexpr int ipagW = 0; - constexpr int ieppW = 0; - return buffer[ipagW * nw6 * nx2 * neppW + iw6 * nx2 * neppW + ix2 * neppW + ieppW]; // AOSOA[ipagW][iw6][ix2][ieppW] - } -}; - -//---------------------------------------------------------------------------- + public: -// A class providing access to memory buffers for a given event, based on explicit event numbers -// Its methods use the MemoryAccessHelper templates - note the use of the template keyword in template function instantiations -class MemoryAccessWavefunctions : public MemoryAccessWavefunctionsBase -{ -public: + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] + static constexpr auto ieventAccessRecord = MemoryAccessHelper::ieventAccessRecord; - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] - static constexpr auto ieventAccessRecord = MemoryAccessHelper::ieventAccessRecord; + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (const) ===> const fptype* ieventAccessRecordConst( const fptype* buffer, const int ievt ) <===] + static constexpr auto ieventAccessRecordConst = MemoryAccessHelper::ieventAccessRecordConst; - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (const) ===> const fptype* ieventAccessRecordConst( const fptype* buffer, const int ievt ) <===] - static constexpr auto ieventAccessRecordConst = MemoryAccessHelper::ieventAccessRecordConst; + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, const int iw6, const int ix2 ) <===] + static constexpr auto decodeRecordIw6Ix2 = MemoryAccessHelper::decodeRecord; - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, const int iw6, const int ix2 ) <===] - static constexpr auto decodeRecordIw6Ix2 = MemoryAccessHelper::decodeRecord; + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (const) ===> const fptype& decodeRecordConst( const fptype* buffer, const int iw6, const int ix2 ) <===] + static constexpr auto decodeRecordIw6Ix2Const = + MemoryAccessHelper::template decodeRecordConst; - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (const) ===> const fptype& decodeRecordConst( const fptype* buffer, const int iw6, const int ix2 ) <===] - static constexpr auto decodeRecordIw6Ix2Const = - MemoryAccessHelper::template decodeRecordConst; + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (non-const) ===> fptype& ieventAccessIw6Ix2( fptype* buffer, const ievt, const int iw6, const int ix2 ) <===] + static constexpr auto ieventAccessIw6Ix2 = + MemoryAccessHelper::template ieventAccessField; - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (non-const) ===> fptype& ieventAccessIw6Ix2( fptype* buffer, const ievt, const int iw6, const int ix2 ) <===] - static constexpr auto ieventAccessIw6Ix2 = - MemoryAccessHelper::template ieventAccessField; - - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (const) ===> const fptype& ieventAccessIw6Ix2Const( const fptype* buffer, const ievt, const int iw6, const int ix2 ) <===] - static constexpr auto ieventAccessIw6Ix2Const = - MemoryAccessHelper::template ieventAccessFieldConst; -}; + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (const) ===> const fptype& ieventAccessIw6Ix2Const( const fptype* buffer, const ievt, const int iw6, const int ix2 ) <===] + static constexpr auto ieventAccessIw6Ix2Const = + MemoryAccessHelper::template ieventAccessFieldConst; + }; #endif // #ifndef MGONGPU_TRIVIAL_WAVEFUNCTIONS -//---------------------------------------------------------------------------- + //---------------------------------------------------------------------------- -// A class providing access to memory buffers for a given event, based on implicit kernel rules -// Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations -template -class KernelAccessWavefunctions -{ -public: + // A class providing access to memory buffers for a given event, based on implicit kernel rules + // Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations + template + class KernelAccessWavefunctions + { + public: #ifndef MGONGPU_TRIVIAL_WAVEFUNCTIONS - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (non-const) ===> fptype& kernelAccessIw6Ix2( fptype* buffer, const int iw6, const int ix2 ) <===] - static constexpr auto kernelAccessIw6Ix2 = - KernelAccessHelper::template kernelAccessField; + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (non-const) ===> fptype& kernelAccessIw6Ix2( fptype* buffer, const int iw6, const int ix2 ) <===] + static constexpr auto kernelAccessIw6Ix2 = + KernelAccessHelper::template kernelAccessField; - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (const) ===> const fptype& kernelAccessIw6Ix2Const( const fptype* buffer, const int iw6, const int ix2 ) <===] - static constexpr auto kernelAccessIw6Ix2Const = - KernelAccessHelper::template kernelAccessFieldConst; + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (const) ===> const fptype& kernelAccessIw6Ix2Const( const fptype* buffer, const int iw6, const int ix2 ) <===] + static constexpr auto kernelAccessIw6Ix2Const = + KernelAccessHelper::template kernelAccessFieldConst; #else - static __host__ __device__ inline cxtype_sv* - kernelAccess( fptype* buffer ) - { - return reinterpret_cast( buffer ); - } + static __host__ __device__ inline cxtype_sv* + kernelAccess( fptype* buffer ) + { + return reinterpret_cast( buffer ); + } - static __host__ __device__ inline const cxtype_sv* - kernelAccessConst( const fptype* buffer ) - { - return reinterpret_cast( buffer ); - } + static __host__ __device__ inline const cxtype_sv* + kernelAccessConst( const fptype* buffer ) + { + return reinterpret_cast( buffer ); + } #endif // #ifndef MGONGPU_TRIVIAL_WAVEFUNCTIONS -}; + }; + + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- + typedef KernelAccessWavefunctions HostAccessWavefunctions; + typedef KernelAccessWavefunctions DeviceAccessWavefunctions; -typedef KernelAccessWavefunctions HostAccessWavefunctions; -typedef KernelAccessWavefunctions DeviceAccessWavefunctions; + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- +} // end namespace mg5amcGpu/mg5amcCpu #endif // MemoryAccessWavefunctions_H diff --git a/epochX/cudacpp/gg_tt01g.mad/SubProcesses/cudacpp.mk b/epochX/cudacpp/gg_tt01g.mad/SubProcesses/cudacpp.mk index a0397e9ecc..c2f7b8e0f6 100644 --- a/epochX/cudacpp/gg_tt01g.mad/SubProcesses/cudacpp.mk +++ b/epochX/cudacpp/gg_tt01g.mad/SubProcesses/cudacpp.mk @@ -76,7 +76,7 @@ endif CXXFLAGS = $(OPTFLAGS) -std=c++17 $(INCFLAGS) -Wall -Wshadow -Wextra ifeq ($(shell $(CXX) --version | grep ^nvc++),) -CXXFLAGS+= -ffast-math # see issue #117 +CXXFLAGS += -ffast-math # see issue #117 endif ###CXXFLAGS+= -Ofast # performance is not different from --fast-math ###CXXFLAGS+= -g # FOR DEBUGGING ONLY @@ -122,7 +122,7 @@ ifneq ($(wildcard $(CUDA_HOME)/bin/nvcc),) CUINC = -I$(CUDA_HOME)/include/ CURANDLIBFLAGS = -L$(CUDA_HOME)/lib64/ -lcurand # NB: -lcuda is not needed here! CUOPTFLAGS = -lineinfo - CUFLAGS = $(OPTFLAGS) $(CUOPTFLAGS) $(INCFLAGS) $(CUINC) $(USE_NVTX) $(CUARCHFLAGS) -use_fast_math + CUFLAGS = $(foreach opt, $(OPTFLAGS), -Xcompiler $(opt)) $(CUOPTFLAGS) $(INCFLAGS) $(CUINC) $(USE_NVTX) $(CUARCHFLAGS) -use_fast_math ###CUFLAGS += -Xcompiler -Wall -Xcompiler -Wextra -Xcompiler -Wshadow ###NVCC_VERSION = $(shell $(NVCC) --version | grep 'Cuda compilation tools' | cut -d' ' -f5 | cut -d, -f1) CUFLAGS += -std=c++17 # need CUDA >= 11.2 (see #333): this is enforced in mgOnGpuConfig.h @@ -142,6 +142,8 @@ else override CUINC= override CURANDLIBFLAGS= endif +export NVCC +export CUFLAGS # Set the host C++ compiler for nvcc via "-ccbin " # (NB issue #505: this must be a single word, "clang++ --gcc-toolchain..." is not supported) @@ -439,7 +441,7 @@ endif # Target (and build options): debug MAKEDEBUG= -debug: OPTFLAGS = -g -O0 -DDEBUG2 +debug: OPTFLAGS = -g -O0 debug: CUOPTFLAGS = -G debug: MAKEDEBUG := debug debug: all.$(TAG) @@ -468,9 +470,9 @@ $(BUILDDIR)/%.o : %.cc *.h ../../src/*.h $(BUILDDIR)/.build.$(TAG) @if [ ! -d $(BUILDDIR) ]; then echo "mkdir -p $(BUILDDIR)"; mkdir -p $(BUILDDIR); fi $(CXX) $(CPPFLAGS) $(CXXFLAGS) -fPIC -c $< -o $@ -# Apply special build flags only to CrossSectionKernel.cc and gCrossSectionKernel.cu (no fast math, see #117) +# Apply special build flags only to CrossSectionKernel.cc and gCrossSectionKernel.cu (no fast math, see #117 and #516) ifeq ($(shell $(CXX) --version | grep ^nvc++),) -$(BUILDDIR)/CrossSectionKernels.o: CXXFLAGS += -fno-fast-math +$(BUILDDIR)/CrossSectionKernels.o: CXXFLAGS := $(filter-out -ffast-math,$(CXXFLAGS)) $(BUILDDIR)/CrossSectionKernels.o: CXXFLAGS += -fno-fast-math ifneq ($(NVCC),) $(BUILDDIR)/gCrossSectionKernels.o: CUFLAGS += -Xcompiler -fno-fast-math diff --git a/epochX/cudacpp/gg_tt01g.mad/SubProcesses/runTest.cc b/epochX/cudacpp/gg_tt01g.mad/SubProcesses/runTest.cc index 572e28aaea..df7488178e 100644 --- a/epochX/cudacpp/gg_tt01g.mad/SubProcesses/runTest.cc +++ b/epochX/cudacpp/gg_tt01g.mad/SubProcesses/runTest.cc @@ -2,6 +2,9 @@ // Licensed under the GNU Lesser General Public License (version 3 or later). // Created by: S. Hageboeck (Nov 2020) for the MG5aMC CUDACPP plugin. // Further modified by: S. Hageboeck, O. Mattelaer, S. Roiser, A. Valassi (2020-2023) for the MG5aMC CUDACPP plugin. +//---------------------------------------------------------------------------- +// Use ./runTest.exe --gtest_filter=*xxx to run only testxxx.cc tests +//---------------------------------------------------------------------------- #include "mgOnGpuConfig.h" diff --git a/epochX/cudacpp/gg_tt01g.mad/SubProcesses/testmisc.cc b/epochX/cudacpp/gg_tt01g.mad/SubProcesses/testmisc.cc index 989aba1fdc..895d6eeb56 100644 --- a/epochX/cudacpp/gg_tt01g.mad/SubProcesses/testmisc.cc +++ b/epochX/cudacpp/gg_tt01g.mad/SubProcesses/testmisc.cc @@ -3,7 +3,7 @@ // Created by: A. Valassi (Jan 2022) for the MG5aMC CUDACPP plugin. // Further modified by: A. Valassi (2022-2023) for the MG5aMC CUDACPP plugin. //---------------------------------------------------------------------------- -// Use ./runTest.exe --gtest_filter=*misc to run only this test +// Use ./runTest.exe --gtest_filter=*misc to run only testmisc.cc tests //---------------------------------------------------------------------------- #include "mgOnGpuConfig.h" @@ -25,33 +25,48 @@ #define XTESTID( s ) TESTID( s ) +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif +{ #ifdef MGONGPU_CPPSIMD /* clang-format off */ -bool maskand( const bool_v& mask ){ bool out = true; for ( int i=0; i #include +#include // debug #701 (see https://stackoverflow.com/a/17473528) #include #include #include @@ -28,16 +32,47 @@ #define XTESTID( s ) TESTID( s ) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif +{ + std::string FPEhandlerMessage = "unknown"; + int FPEhandlerIevt = -1; + inline void FPEhandler( int sig ) + { +#ifdef __CUDACC__ + std::cerr << "Floating Point Exception (GPU): '" << FPEhandlerMessage << "' ievt=" << FPEhandlerIevt << std::endl; +#else + std::cerr << "Floating Point Exception (CPU neppV=" << neppV << "): '" << FPEhandlerMessage << "' ievt=" << FPEhandlerIevt << std::endl; +#endif + exit( 0 ); + } +} + TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) { +#ifdef __CUDACC__ + using namespace mg5amcGpu; +#else + using namespace mg5amcCpu; +#endif +#ifndef __APPLE__ // test #701 (except on MacOS where feenableexcept is not defined #730) + const bool enableFPE = !getenv( "CUDACPP_RUNTIME_DISABLEFPE" ); + if( enableFPE ) + { + feenableexcept( FE_INVALID | FE_DIVBYZERO | FE_OVERFLOW | FE_UNDERFLOW ); // debug #701 + signal( SIGFPE, FPEhandler ); + } +#endif constexpr bool dumpEvents = false; // dump the expected output of the test? constexpr bool testEvents = !dumpEvents; // run the test? constexpr fptype toleranceXXXs = std::is_same::value ? 1.E-15 : 1.E-5; // Constant parameters constexpr int neppM = MemoryAccessMomenta::neppM; // AOSOA layout - using mgOnGpu::neppV; constexpr int np4 = CPPProcess::np4; - const int nevt = 16; // 12 independent tests plus 4 duplicates (need a multiple of 8 for floats or for '512z') + const int nevt = 32; // 12 independent tests plus 20 duplicates (need a multiple of 16 for floats '512z') assert( nevt % neppM == 0 ); // nevt must be a multiple of neppM assert( nevt % neppV == 0 ); // nevt must be a multiple of neppV // Fill in the input momenta @@ -46,24 +81,41 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) #else mg5amcCpu::HostBufferMomenta hstMomenta( nevt ); // AOSOA[npagM][npar=4][np4=4][neppM] #endif /* clang-format off */ + // NB NEW TESTS FOR DEBUGGING #701: KEEP TWO SEPARATE SETS (16-SIMD-VECTORS!) OF TESTS FOR M==0 AND M!=0! const fptype par0[np4 * nevt] = // AOS[nevt][np4] { - 500, 0, 0, 500, // #0 (m=0 pT=0 E=pz>0) - 500, 0, 0, -500, // #1 (m=0 pT=0 -E=pz<0) - 500, 300, 400, 0, // #2 (m=0 pT>0 pz=0) - 500, 180, 240, 400, // #3 (m=0 pT>0 pz>0) - 500, 180, 240, -400, // #4 (m=0 pT>0 pz<0) - 500, 0, 0, 0, // #5 (m=50>0 pT=0 pz=0) - 500, 0, 0, 300, // #6 (m=40>0 pT=0 pz>0) - 500, 0, 0, -300, // #7 (m=40>0 pT=0 pz<0) - 500, 180, 240, 0, // #8 (m=40>0 pT>0 pz=0) - 500, -240, -180, 0, // #9 (m=40>0 pT>0 pz=0) - 500, 180, 192, 144, // #10 (m=40>0 pT>0 pz>0) - 500, 180, 192, -144, // #11 (m=40>0 pT>0 pz<0) - 500, 0, 0, 500, // DUPLICATE #12 == #0 (m=0 pT=0 E=pz>0) - 500, 0, 0, -500, // DUPLICATE #13 == #1 (m=0 pT=0 -E=pz<0) - 500, 300, 400, 0, // DUPLICATE #14 == #2 (m=0 pT>0 pz=0) - 500, 180, 240, 400 // DUPLICATE #15 == #3 (m=0 pT>0 pz>0) + 500, 0, 0, 500, // #0 (m=0 pT=0 E=pz>0) + 500, 0, 0, -500, // #1 (m=0 pT=0 -E=pz<0) + 500, 300, 400, 0, // #2 (m=0 pT>0 pz=0) + 500, 180, 240, 400, // #3 (m=0 pT>0 pz>0) + 500, 180, 240, -400, // #4 (m=0 pT>0 pz<0) + 500, 0, 0, 500, // #5 DUPLICATE == #0 (m=0 pT=0 E=pz>0) + 500, 0, 0, -500, // #6 DUPLICATE == #1 (m=0 pT=0 -E=pz<0) + 500, 300, 400, 0, // #7 DUPLICATE == #2 (m=0 pT>0 pz=0) + 500, 180, 240, 400, // #8 DUPLICATE == #3 (m=0 pT>0 pz>0) + 500, 180, 240, -400, // #9 DUPLICATE == #4 (m=0 pT>0 pz<0) + 500, 0, 0, 500, // #10 DUPLICATE == #0 (m=0 pT=0 E=pz>0) + 500, 0, 0, -500, // #11 DUPLICATE == #1 (m=0 pT=0 -E=pz<0) + 500, 300, 400, 0, // #12 DUPLICATE == #2 (m=0 pT>0 pz=0) + 500, 180, 240, 400, // #13 DUPLICATE == #3 (m=0 pT>0 pz>0) + 500, 180, 240, -400, // #14 DUPLICATE == #4 (m=0 pT>0 pz<0) + 500, 0, 0, 500, // #15 DUPLICATE == #0 (m=0 pT=0 E=pz>0) + 500, 0, 0, 0, // #16 (m=50>0 pT=0 pz=0) + 500, 0, 0, 300, // #17 (m=40>0 pT=0 pz>0) + 500, 0, 0, -300, // #18 (m=40>0 pT=0 pz<0) + 500, 180, 240, 0, // #19 (m=40>0 pT>0 pz=0) + 500, -240, -180, 0, // #20 (m=40>0 pT>0 pz=0) + 500, 180, 192, 144, // #21 (m=40>0 pT>0 pz>0) + 500, 180, 192, -144, // #22 (m=40>0 pT>0 pz<0) + 500, 0, 0, 0, // #23 DUPLICATE == #16 (m=50>0 pT=0 pz=0) + 500, 0, 0, 300, // #24 DUPLICATE == #17 (m=40>0 pT=0 pz>0) + 500, 0, 0, -300, // #25 DUPLICATE == #18 (m=40>0 pT=0 pz<0) + 500, 180, 240, 0, // #26 DUPLICATE == #19 (m=40>0 pT>0 pz=0) + 500, -240, -180, 0, // #27 DUPLICATE == #20 (m=40>0 pT>0 pz=0) + 500, 180, 192, 144, // #28 DUPLICATE == #21 (m=40>0 pT>0 pz>0) + 500, 180, 192, -144, // #29 DUPLICATE == #22 (m=40>0 pT>0 pz<0) + 500, 0, 0, 0, // #30 DUPLICATE == #16 (m=50>0 pT=0 pz=0) + 500, 0, 0, 300 // #31 DUPLICATE == #17 (m=40>0 pT=0 pz>0) }; /* clang-format on */ // Array initialization: zero-out as "{0}" (C and C++) or as "{}" (C++ only) // See https://en.cppreference.com/w/c/language/array_initialization#Notes @@ -99,7 +151,15 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) constexpr int nw6 = CPPProcess::nw6; // dimensions of each wavefunction (HELAS KEK 91-11): e.g. 6 for e+ e- -> mu+ mu- (fermions and vectors) int itest = 0; // index on the expected output vector std::ofstream dumpFile; - if( dumpEvents ) dumpFile.open( dumpFileName, std::ios::trunc ); + if( dumpEvents ) + { + dumpFile.open( dumpFileName, std::ios::trunc ); + dumpFile << " // Copyright (C) 2020-2023 CERN and UCLouvain." << std::endl + << " // Licensed under the GNU Lesser General Public License (version 3 or later)." << std::endl + << " // Created by: A. Valassi (Apr 2021) for the MG5aMC CUDACPP plugin." << std::endl + << " // Further modified by: A. Valassi (2021-2023) for the MG5aMC CUDACPP plugin." << std::endl; + } + // Lambda function for dumping wavefunctions auto dumpwf6 = [&]( std::ostream& out, const cxtype_sv wf[6], const char* xxx, int ievt, int nsp, fptype mass ) { out << std::setprecision( 15 ) << std::scientific; @@ -129,6 +189,7 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) } out << std::defaultfloat; }; + // Lambda function for testing wavefunctions (1) auto testwf6 = [&]( const cxtype_sv wf[6], const char* xxx, int ievt, int nsp, fptype mass ) { if( dumpEvents ) dumpwf6( dumpFile, wf, xxx, ievt, nsp, mass ); @@ -170,6 +231,7 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) } itest++; }; + // Lambda function for testing wavefunctions (2) auto testwf6two = [&]( const cxtype_sv wf[6], const cxtype_sv expwf[6], const char* xxx, int ievt ) { if( testEvents ) @@ -213,6 +275,32 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) } } }; + // Lambda function for resetting hstMomenta to the values of par0 + // This is needed in each test because hstMomenta may have been modified to ensure a function like ipzxxx can be used (#701) + auto resetHstMomentaToPar0 = [&]() + { + for( int ievt = 0; ievt < nevt; ievt++ ) + for( int ip4 = 0; ip4 < np4; ip4++ ) + MemoryAccessMomenta::ieventAccessIp4Ipar( hstMomenta.data(), ievt, ip4, ipar0 ) = par0[ievt * np4 + ip4]; // AOS to AOSOA + }; + // Lambda function for preparing the test of one specific function + const bool debug = false; + auto prepareTest = [&]( const char* xxx, int ievt ) + { + if( debug ) std::cout << "Prepare test " << xxx << " ievt=" << ievt << std::endl; + resetHstMomentaToPar0(); + FPEhandlerMessage = xxx; + FPEhandlerIevt = ievt; + if( std::string( xxx ) == "ipzxxx" || std::string( xxx ) == "opzxxx" || std::string( xxx ) == "imzxxx" || std::string( xxx ) == "omzxxx" || std::string( xxx ) == "ixzxxx" || std::string( xxx ) == "oxzxxx" ) + { + // Modify hstMomenta so that ALL events have the momenta of a single ievt + // This ensures that a function like ipzxxx (which assumes pZ>0) can be used without triggering FPEs (#701) + // This is done by filling the full SIMD vector with the value of ievt, which was already tested to respect the relevant assumptions + for( int jevt = 0; jevt < nevt; jevt++ ) + for( int ip4 = 0; ip4 < np4; ip4++ ) + MemoryAccessMomenta::ieventAccessIp4Ipar( hstMomenta.data(), jevt, ip4, ipar0 ) = par0[ievt * np4 + ip4]; // AOS to AOSOA + } + }; // Array initialization: zero-out as "{0}" (C and C++) or as "{}" (C++ only) // See https://en.cppreference.com/w/c/language/array_initialization#Notes cxtype_sv outwfI[6] = {}; // last result of ixxxxx (mass==0) @@ -224,6 +312,7 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) fptype* fp_outwf = reinterpret_cast( outwf ); // proof of concept for using fptype* in the interface fptype* fp_outwf3 = reinterpret_cast( outwf3 ); // proof of concept for using fptype* in the interface const int nhel = 1; + // *** START OF TESTING LOOP for( auto nsp: { -1, +1 } ) // antifermion/fermion (or initial/final for scalar and vector) { for( int ievt = 0; ievt < nevt; ievt++ ) @@ -233,9 +322,10 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) #else using namespace mg5amcCpu; #endif - if( false ) + if( debug ) { std::cout << std::endl; + std::cout << "nsp=" << nsp << " ievt=" << ievt << ": "; for( int ip4 = 0; ip4 < np4; ip4++ ) std::cout << par0[ievt * np4 + ip4] << ", "; std::cout << std::endl; } @@ -243,6 +333,7 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) const fptype* ievt0Momenta = MemoryAccessMomenta::ieventAccessRecordConst( hstMomenta.data(), ipagV * neppV ); // Test ixxxxx - NO ASSUMPTIONS { + prepareTest( "ixxxxx", ievt ); const fptype fmass = mass0[ievt]; ixxxxx( ievt0Momenta, fmass, nhel, nsp, fp_outwfI, ipar0 ); testwf6( outwfI, "ixxxxx", ievt, nsp, fmass ); @@ -252,6 +343,7 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) // Test ipzxxx - ASSUMPTIONS: (FMASS == 0) and (PX == PY == 0 and E == +PZ > 0) if( mass0[ievt] == 0 && !isptgt0[ievt] && ispzgt0[ievt] ) { + prepareTest( "ipzxxx", ievt ); ipzxxx( ievt0Momenta, nhel, nsp, fp_outwf, ipar0 ); testwf6two( outwf, outwfI, "ipzxxx", ievt ); testwf6( outwf, "ipzxxx", ievt, nsp, 0 ); @@ -259,6 +351,7 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) // Test imzxxx - ASSUMPTIONS: (FMASS == 0) and (PX == PY == 0 and E == -PZ > 0) if( mass0[ievt] == 0 && !isptgt0[ievt] && ispzlt0[ievt] ) { + prepareTest( "imzxxx", ievt ); imzxxx( ievt0Momenta, nhel, nsp, fp_outwf, ipar0 ); testwf6two( outwf, outwfI, "imzxxx", ievt ); testwf6( outwf, "imzxxx", ievt, nsp, 0 ); @@ -266,12 +359,14 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) // Test ixzxxx - ASSUMPTIONS: (FMASS == 0) and (PT > 0) if( mass0[ievt] == 0 && isptgt0[ievt] ) { + prepareTest( "ixzxxx", ievt ); ixzxxx( ievt0Momenta, nhel, nsp, fp_outwf, ipar0 ); testwf6two( outwf, outwfI, "ixzxxx", ievt ); testwf6( outwf, "ixzxxx", ievt, nsp, 0 ); } // Test vxxxxx - NO ASSUMPTIONS { + prepareTest( "vxxxxx", ievt ); const fptype vmass = mass0[ievt]; vxxxxx( ievt0Momenta, vmass, nhel, nsp, fp_outwf, ipar0 ); testwf6( outwf, "vxxxxx", ievt, nsp, vmass ); @@ -280,6 +375,7 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) } // Test sxxxxx - NO ASSUMPTIONS { + prepareTest( "sxxxxx", ievt ); const fptype smass = mass0[ievt]; sxxxxx( ievt0Momenta, nsp, fp_outwf3, ipar0 ); // no mass, no helicity (was "smass>0") testwf6( outwf3, "sxxxxx", ievt, nsp, smass ); @@ -288,6 +384,7 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) } // Test oxxxxx - NO ASSUMPTIONS { + prepareTest( "oxxxxx", ievt ); const fptype fmass = mass0[ievt]; oxxxxx( ievt0Momenta, fmass, nhel, nsp, fp_outwfO, ipar0 ); testwf6( outwfO, "oxxxxx", ievt, nsp, fmass ); @@ -297,6 +394,7 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) // Test opzxxx - ASSUMPTIONS: (FMASS == 0) and (PX == PY == 0 and E == +PZ > 0) if( mass0[ievt] == 0 && !isptgt0[ievt] && ispzgt0[ievt] ) { + prepareTest( "opzxxx", ievt ); opzxxx( ievt0Momenta, nhel, nsp, fp_outwf, ipar0 ); testwf6two( outwf, outwfO, "opzxxx", ievt ); testwf6( outwf, "opzxxx", ievt, nsp, 0 ); @@ -304,6 +402,7 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) // Test omzxxx - ASSUMPTIONS: (FMASS == 0) and (PX == PY == 0 and E == -PZ > 0) if( mass0[ievt] == 0 && !isptgt0[ievt] && ispzlt0[ievt] ) { + prepareTest( "omzxxx", ievt ); omzxxx( ievt0Momenta, nhel, nsp, fp_outwf, ipar0 ); testwf6two( outwf, outwfO, "omzxxx", ievt ); testwf6( outwf, "omzxxx", ievt, nsp, 0 ); @@ -311,17 +410,25 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) // Test oxzxxx - ASSUMPTIONS: (FMASS == 0) and (PT > 0) if( mass0[ievt] == 0 && isptgt0[ievt] ) { - oxzxxx( ievt0Momenta, nhel, nsp, reinterpret_cast( outwf ), ipar0 ); + prepareTest( "oxzxxx", ievt ); + oxzxxx( ievt0Momenta, nhel, nsp, fp_outwf, ipar0 ); testwf6two( outwf, outwfO, "oxzxxx", ievt ); testwf6( outwf, "oxzxxx", ievt, nsp, 0 ); } } } + // *** END OF TESTING LOOP if( dumpEvents ) { dumpFile.close(); std::cout << "INFO: New reference data dumped to file '" << dumpFileName << "'" << std::endl; } +#ifndef __APPLE__ // test #701 (except on MacOS where fedisableexcept is not defined #730) + if( enableFPE ) + { + fedisableexcept( FE_INVALID | FE_DIVBYZERO | FE_OVERFLOW | FE_UNDERFLOW ); // debug #701 + } +#endif } //========================================================================== diff --git a/epochX/cudacpp/gg_tt01g.mad/SubProcesses/testxxx_cc_ref.txt b/epochX/cudacpp/gg_tt01g.mad/SubProcesses/testxxx_cc_ref.txt index acb9bde918..637530d1f5 100644 --- a/epochX/cudacpp/gg_tt01g.mad/SubProcesses/testxxx_cc_ref.txt +++ b/epochX/cudacpp/gg_tt01g.mad/SubProcesses/testxxx_cc_ref.txt @@ -5,14 +5,14 @@ expwfs.push_back( { // --------- 5.000000000000000e+02, 5.000000000000000e+02, // itest=0: ixxxxx#0 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=0: ixxxxx#0 nsp=-1 mass=0 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=0: ixxxxx#0 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=0: ixxxxx#0 nsp=-1 mass=0 -3.162277660168379e+01, 0.000000000000000e+00, // itest=0: ixxxxx#0 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=0: ixxxxx#0 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=0: ixxxxx#0 nsp=-1 mass=0 expwfs.push_back( { // --------- 5.000000000000000e+02, 5.000000000000000e+02, // itest=1: ixxxxx#0 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=1: ixxxxx#0 nsp=-1 mass=0 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=1: ixxxxx#0 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=1: ixxxxx#0 nsp=-1 mass=0 -3.162277660168379e+01, 0.000000000000000e+00, // itest=1: ixxxxx#0 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=1: ixxxxx#0 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=1: ixxxxx#0 nsp=-1 mass=0 @@ -82,8 +82,8 @@ expwfs.push_back( { // --------- 5.000000000000000e+02, -5.000000000000000e+02, // itest=11: ixxxxx#1 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=11: ixxxxx#1 nsp=-1 mass=0 - -3.162277660168379e+01, -0.000000000000000e+00, // itest=11: ixxxxx#1 nsp=-1 mass=0 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=11: ixxxxx#1 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=11: ixxxxx#1 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=11: ixxxxx#1 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=11: ixxxxx#1 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=11: ixxxxx#1 nsp=-1 mass=0 expwfs.push_back( { // --------- @@ -133,8 +133,8 @@ -0.000000000000000e+00, -0.000000000000000e+00, // itest=18: oxxxxx#1 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=18: oxxxxx#1 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=18: oxxxxx#1 nsp=-1 mass=0 - -3.162277660168379e+01, -0.000000000000000e+00, // itest=18: oxxxxx#1 nsp=-1 mass=0 - -0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=18: oxxxxx#1 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=18: oxxxxx#1 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=18: oxxxxx#1 nsp=-1 mass=0 expwfs.push_back( { // --------- -5.000000000000000e+02, 5.000000000000000e+02, // itest=19: omzxxx#1 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=19: omzxxx#1 nsp=-1 mass=0 @@ -145,14 +145,14 @@ expwfs.push_back( { // --------- 5.000000000000000e+02, 0.000000000000000e+00, // itest=20: ixxxxx#2 nsp=-1 mass=0 3.000000000000000e+02, 4.000000000000000e+02, // itest=20: ixxxxx#2 nsp=-1 mass=0 - 1.341640786499874e+01, -1.788854381999832e+01, // itest=20: ixxxxx#2 nsp=-1 mass=0 + 1.341640786499874e+01, -1.788854381999831e+01, // itest=20: ixxxxx#2 nsp=-1 mass=0 -2.236067977499790e+01, 0.000000000000000e+00, // itest=20: ixxxxx#2 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=20: ixxxxx#2 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=20: ixxxxx#2 nsp=-1 mass=0 expwfs.push_back( { // --------- 5.000000000000000e+02, 0.000000000000000e+00, // itest=21: ixxxxx#2 nsp=-1 mass=0 3.000000000000000e+02, 4.000000000000000e+02, // itest=21: ixxxxx#2 nsp=-1 mass=0 - 1.341640786499874e+01, -1.788854381999832e+01, // itest=21: ixxxxx#2 nsp=-1 mass=0 + 1.341640786499874e+01, -1.788854381999831e+01, // itest=21: ixxxxx#2 nsp=-1 mass=0 -2.236067977499790e+01, 0.000000000000000e+00, // itest=21: ixxxxx#2 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=21: ixxxxx#2 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=21: ixxxxx#2 nsp=-1 mass=0 @@ -196,14 +196,14 @@ -3.000000000000000e+02, -4.000000000000000e+02, // itest=27: oxxxxx#2 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=27: oxxxxx#2 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=27: oxxxxx#2 nsp=-1 mass=0 - 1.341640786499874e+01, 1.788854381999832e+01, // itest=27: oxxxxx#2 nsp=-1 mass=0 + 1.341640786499874e+01, 1.788854381999831e+01, // itest=27: oxxxxx#2 nsp=-1 mass=0 -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=27: oxxxxx#2 nsp=-1 mass=0 expwfs.push_back( { // --------- -5.000000000000000e+02, -0.000000000000000e+00, // itest=28: oxxxxx#2 nsp=-1 mass=0 -3.000000000000000e+02, -4.000000000000000e+02, // itest=28: oxxxxx#2 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=28: oxxxxx#2 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=28: oxxxxx#2 nsp=-1 mass=0 - 1.341640786499874e+01, 1.788854381999832e+01, // itest=28: oxxxxx#2 nsp=-1 mass=0 + 1.341640786499874e+01, 1.788854381999831e+01, // itest=28: oxxxxx#2 nsp=-1 mass=0 -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=28: oxxxxx#2 nsp=-1 mass=0 expwfs.push_back( { // --------- -5.000000000000000e+02, -0.000000000000000e+00, // itest=29: oxzxxx#2 nsp=-1 mass=0 @@ -353,1696 +353,3684 @@ 1.800000000000000e+01, 2.400000000000000e+01, // itest=49: oxzxxx#4 nsp=-1 mass=0 -1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=49: oxzxxx#4 nsp=-1 mass=0 expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=50: ixxxxx#5 nsp=-1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=50: ixxxxx#5 nsp=-1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=50: ixxxxx#5 nsp=-1 mass=500 - -2.236067977499790e+01, 0.000000000000000e+00, // itest=50: ixxxxx#5 nsp=-1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=50: ixxxxx#5 nsp=-1 mass=500 - 2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=50: ixxxxx#5 nsp=-1 mass=500 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=51: ixxxxx#5 nsp=-1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=51: ixxxxx#5 nsp=-1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=51: ixxxxx#5 nsp=-1 mass=-500 - -2.236067977499790e+01, 0.000000000000000e+00, // itest=51: ixxxxx#5 nsp=-1 mass=-500 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=51: ixxxxx#5 nsp=-1 mass=-500 - -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=51: ixxxxx#5 nsp=-1 mass=-500 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=52: vxxxxx#5 nsp=-1 mass=500 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=52: vxxxxx#5 nsp=-1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=52: vxxxxx#5 nsp=-1 mass=500 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=52: vxxxxx#5 nsp=-1 mass=500 - 0.000000000000000e+00, -7.071067811865476e-01, // itest=52: vxxxxx#5 nsp=-1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=52: vxxxxx#5 nsp=-1 mass=500 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=53: vxxxxx#5 nsp=-1 mass=-500 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=53: vxxxxx#5 nsp=-1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=53: vxxxxx#5 nsp=-1 mass=-500 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=53: vxxxxx#5 nsp=-1 mass=-500 - 0.000000000000000e+00, -7.071067811865476e-01, // itest=53: vxxxxx#5 nsp=-1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=53: vxxxxx#5 nsp=-1 mass=-500 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=54: sxxxxx#5 nsp=-1 mass=500 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=54: sxxxxx#5 nsp=-1 mass=500 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=54: sxxxxx#5 nsp=-1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=54: sxxxxx#5 nsp=-1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=54: sxxxxx#5 nsp=-1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=54: sxxxxx#5 nsp=-1 mass=500 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=55: sxxxxx#5 nsp=-1 mass=-500 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=55: sxxxxx#5 nsp=-1 mass=-500 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=55: sxxxxx#5 nsp=-1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=55: sxxxxx#5 nsp=-1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=55: sxxxxx#5 nsp=-1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=55: sxxxxx#5 nsp=-1 mass=-500 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=56: oxxxxx#5 nsp=-1 mass=500 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=56: oxxxxx#5 nsp=-1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=56: oxxxxx#5 nsp=-1 mass=500 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=56: oxxxxx#5 nsp=-1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=56: oxxxxx#5 nsp=-1 mass=500 - -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=56: oxxxxx#5 nsp=-1 mass=500 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=57: oxxxxx#5 nsp=-1 mass=-500 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=57: oxxxxx#5 nsp=-1 mass=-500 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=57: oxxxxx#5 nsp=-1 mass=-500 - -2.236067977499790e+01, 0.000000000000000e+00, // itest=57: oxxxxx#5 nsp=-1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=57: oxxxxx#5 nsp=-1 mass=-500 - -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=57: oxxxxx#5 nsp=-1 mass=-500 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 3.000000000000000e+02, // itest=58: ixxxxx#6 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=58: ixxxxx#6 nsp=-1 mass=400 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=58: ixxxxx#6 nsp=-1 mass=400 - -2.828427124746190e+01, -0.000000000000000e+00, // itest=58: ixxxxx#6 nsp=-1 mass=400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=58: ixxxxx#6 nsp=-1 mass=400 - 1.414213562373095e+01, 0.000000000000000e+00 } ); // itest=58: ixxxxx#6 nsp=-1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 3.000000000000000e+02, // itest=59: ixxxxx#6 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=59: ixxxxx#6 nsp=-1 mass=-400 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=59: ixxxxx#6 nsp=-1 mass=-400 - -2.828427124746190e+01, -0.000000000000000e+00, // itest=59: ixxxxx#6 nsp=-1 mass=-400 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=59: ixxxxx#6 nsp=-1 mass=-400 - -1.414213562373095e+01, -0.000000000000000e+00 } ); // itest=59: ixxxxx#6 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -3.000000000000000e+02, // itest=60: vxxxxx#6 nsp=-1 mass=400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=60: vxxxxx#6 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=60: vxxxxx#6 nsp=-1 mass=400 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=60: vxxxxx#6 nsp=-1 mass=400 - 0.000000000000000e+00, -7.071067811865476e-01, // itest=60: vxxxxx#6 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=60: vxxxxx#6 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -3.000000000000000e+02, // itest=61: vxxxxx#6 nsp=-1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=61: vxxxxx#6 nsp=-1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=61: vxxxxx#6 nsp=-1 mass=-400 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=61: vxxxxx#6 nsp=-1 mass=-400 - 0.000000000000000e+00, -7.071067811865476e-01, // itest=61: vxxxxx#6 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=61: vxxxxx#6 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -3.000000000000000e+02, // itest=62: sxxxxx#6 nsp=-1 mass=400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=62: sxxxxx#6 nsp=-1 mass=400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=62: sxxxxx#6 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=62: sxxxxx#6 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=62: sxxxxx#6 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=62: sxxxxx#6 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -3.000000000000000e+02, // itest=63: sxxxxx#6 nsp=-1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=63: sxxxxx#6 nsp=-1 mass=-400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=63: sxxxxx#6 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=63: sxxxxx#6 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=63: sxxxxx#6 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=63: sxxxxx#6 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -3.000000000000000e+02, // itest=64: oxxxxx#6 nsp=-1 mass=400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=64: oxxxxx#6 nsp=-1 mass=400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=64: oxxxxx#6 nsp=-1 mass=400 - 1.414213562373095e+01, 0.000000000000000e+00, // itest=64: oxxxxx#6 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=64: oxxxxx#6 nsp=-1 mass=400 - -2.828427124746190e+01, -0.000000000000000e+00 } ); // itest=64: oxxxxx#6 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -3.000000000000000e+02, // itest=65: oxxxxx#6 nsp=-1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=65: oxxxxx#6 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=65: oxxxxx#6 nsp=-1 mass=-400 - -1.414213562373095e+01, -0.000000000000000e+00, // itest=65: oxxxxx#6 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=65: oxxxxx#6 nsp=-1 mass=-400 - -2.828427124746190e+01, -0.000000000000000e+00 } ); // itest=65: oxxxxx#6 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -3.000000000000000e+02, // itest=66: ixxxxx#7 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=66: ixxxxx#7 nsp=-1 mass=400 - -2.828427124746190e+01, -0.000000000000000e+00, // itest=66: ixxxxx#7 nsp=-1 mass=400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=66: ixxxxx#7 nsp=-1 mass=400 - 1.414213562373095e+01, 0.000000000000000e+00, // itest=66: ixxxxx#7 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=66: ixxxxx#7 nsp=-1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -3.000000000000000e+02, // itest=67: ixxxxx#7 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=67: ixxxxx#7 nsp=-1 mass=-400 - -2.828427124746190e+01, -0.000000000000000e+00, // itest=67: ixxxxx#7 nsp=-1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=67: ixxxxx#7 nsp=-1 mass=-400 - -1.414213562373095e+01, -0.000000000000000e+00, // itest=67: ixxxxx#7 nsp=-1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=67: ixxxxx#7 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 3.000000000000000e+02, // itest=68: vxxxxx#7 nsp=-1 mass=400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=68: vxxxxx#7 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=68: vxxxxx#7 nsp=-1 mass=400 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=68: vxxxxx#7 nsp=-1 mass=400 - 0.000000000000000e+00, 7.071067811865476e-01, // itest=68: vxxxxx#7 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=68: vxxxxx#7 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 3.000000000000000e+02, // itest=69: vxxxxx#7 nsp=-1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=69: vxxxxx#7 nsp=-1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=69: vxxxxx#7 nsp=-1 mass=-400 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=69: vxxxxx#7 nsp=-1 mass=-400 - 0.000000000000000e+00, 7.071067811865476e-01, // itest=69: vxxxxx#7 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=69: vxxxxx#7 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 3.000000000000000e+02, // itest=70: sxxxxx#7 nsp=-1 mass=400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=70: sxxxxx#7 nsp=-1 mass=400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=70: sxxxxx#7 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=70: sxxxxx#7 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=70: sxxxxx#7 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=70: sxxxxx#7 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 3.000000000000000e+02, // itest=71: sxxxxx#7 nsp=-1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=71: sxxxxx#7 nsp=-1 mass=-400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=71: sxxxxx#7 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=71: sxxxxx#7 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=71: sxxxxx#7 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=71: sxxxxx#7 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 3.000000000000000e+02, // itest=72: oxxxxx#7 nsp=-1 mass=400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=72: oxxxxx#7 nsp=-1 mass=400 - 1.414213562373095e+01, 0.000000000000000e+00, // itest=72: oxxxxx#7 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=72: oxxxxx#7 nsp=-1 mass=400 - -2.828427124746190e+01, -0.000000000000000e+00, // itest=72: oxxxxx#7 nsp=-1 mass=400 - -0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=72: oxxxxx#7 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 3.000000000000000e+02, // itest=73: oxxxxx#7 nsp=-1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=73: oxxxxx#7 nsp=-1 mass=-400 - -1.414213562373095e+01, -0.000000000000000e+00, // itest=73: oxxxxx#7 nsp=-1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=73: oxxxxx#7 nsp=-1 mass=-400 - -2.828427124746190e+01, -0.000000000000000e+00, // itest=73: oxxxxx#7 nsp=-1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=73: oxxxxx#7 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=74: ixxxxx#8 nsp=-1 mass=400 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=74: ixxxxx#8 nsp=-1 mass=400 - 1.200000000000000e+01, -1.600000000000000e+01, // itest=74: ixxxxx#8 nsp=-1 mass=400 - -2.000000000000000e+01, -0.000000000000000e+00, // itest=74: ixxxxx#8 nsp=-1 mass=400 - -5.999999999999999e+00, 7.999999999999999e+00, // itest=74: ixxxxx#8 nsp=-1 mass=400 - 1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=74: ixxxxx#8 nsp=-1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=75: ixxxxx#8 nsp=-1 mass=-400 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=75: ixxxxx#8 nsp=-1 mass=-400 - 1.200000000000000e+01, -1.600000000000000e+01, // itest=75: ixxxxx#8 nsp=-1 mass=-400 - -2.000000000000000e+01, -0.000000000000000e+00, // itest=75: ixxxxx#8 nsp=-1 mass=-400 - 5.999999999999999e+00, -7.999999999999999e+00, // itest=75: ixxxxx#8 nsp=-1 mass=-400 - -1.000000000000000e+01, -0.000000000000000e+00 } ); // itest=75: ixxxxx#8 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=76: vxxxxx#8 nsp=-1 mass=400 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=76: vxxxxx#8 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=76: vxxxxx#8 nsp=-1 mass=400 - 0.000000000000000e+00, 5.656854249492381e-01, // itest=76: vxxxxx#8 nsp=-1 mass=400 - 0.000000000000000e+00, -4.242640687119285e-01, // itest=76: vxxxxx#8 nsp=-1 mass=400 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=76: vxxxxx#8 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=77: vxxxxx#8 nsp=-1 mass=-400 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=77: vxxxxx#8 nsp=-1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=77: vxxxxx#8 nsp=-1 mass=-400 - -0.000000000000000e+00, 5.656854249492381e-01, // itest=77: vxxxxx#8 nsp=-1 mass=-400 - -0.000000000000000e+00, -4.242640687119285e-01, // itest=77: vxxxxx#8 nsp=-1 mass=-400 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=77: vxxxxx#8 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=78: sxxxxx#8 nsp=-1 mass=400 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=78: sxxxxx#8 nsp=-1 mass=400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=78: sxxxxx#8 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=78: sxxxxx#8 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=78: sxxxxx#8 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=78: sxxxxx#8 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=79: sxxxxx#8 nsp=-1 mass=-400 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=79: sxxxxx#8 nsp=-1 mass=-400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=79: sxxxxx#8 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=79: sxxxxx#8 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=79: sxxxxx#8 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=79: sxxxxx#8 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=80: oxxxxx#8 nsp=-1 mass=400 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=80: oxxxxx#8 nsp=-1 mass=400 - -5.999999999999999e+00, -7.999999999999999e+00, // itest=80: oxxxxx#8 nsp=-1 mass=400 - 1.000000000000000e+01, 0.000000000000000e+00, // itest=80: oxxxxx#8 nsp=-1 mass=400 - 1.200000000000000e+01, 1.600000000000000e+01, // itest=80: oxxxxx#8 nsp=-1 mass=400 - -2.000000000000000e+01, -0.000000000000000e+00 } ); // itest=80: oxxxxx#8 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=81: oxxxxx#8 nsp=-1 mass=-400 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=81: oxxxxx#8 nsp=-1 mass=-400 - 5.999999999999999e+00, 7.999999999999999e+00, // itest=81: oxxxxx#8 nsp=-1 mass=-400 - -1.000000000000000e+01, -0.000000000000000e+00, // itest=81: oxxxxx#8 nsp=-1 mass=-400 - 1.200000000000000e+01, 1.600000000000000e+01, // itest=81: oxxxxx#8 nsp=-1 mass=-400 - -2.000000000000000e+01, -0.000000000000000e+00 } ); // itest=81: oxxxxx#8 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=82: ixxxxx#9 nsp=-1 mass=400 - -2.400000000000000e+02, -1.800000000000000e+02, // itest=82: ixxxxx#9 nsp=-1 mass=400 - -1.600000000000000e+01, 1.200000000000000e+01, // itest=82: ixxxxx#9 nsp=-1 mass=400 - -2.000000000000000e+01, -0.000000000000000e+00, // itest=82: ixxxxx#9 nsp=-1 mass=400 - 7.999999999999999e+00, -5.999999999999999e+00, // itest=82: ixxxxx#9 nsp=-1 mass=400 - 1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=82: ixxxxx#9 nsp=-1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=83: ixxxxx#9 nsp=-1 mass=-400 - -2.400000000000000e+02, -1.800000000000000e+02, // itest=83: ixxxxx#9 nsp=-1 mass=-400 - -1.600000000000000e+01, 1.200000000000000e+01, // itest=83: ixxxxx#9 nsp=-1 mass=-400 - -2.000000000000000e+01, -0.000000000000000e+00, // itest=83: ixxxxx#9 nsp=-1 mass=-400 - -7.999999999999999e+00, 5.999999999999999e+00, // itest=83: ixxxxx#9 nsp=-1 mass=-400 - -1.000000000000000e+01, -0.000000000000000e+00 } ); // itest=83: ixxxxx#9 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=84: vxxxxx#9 nsp=-1 mass=400 - 2.400000000000000e+02, 1.800000000000000e+02, // itest=84: vxxxxx#9 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=84: vxxxxx#9 nsp=-1 mass=400 - 0.000000000000000e+00, -4.242640687119285e-01, // itest=84: vxxxxx#9 nsp=-1 mass=400 - 0.000000000000000e+00, 5.656854249492381e-01, // itest=84: vxxxxx#9 nsp=-1 mass=400 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=84: vxxxxx#9 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=85: vxxxxx#9 nsp=-1 mass=-400 - 2.400000000000000e+02, 1.800000000000000e+02, // itest=85: vxxxxx#9 nsp=-1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=85: vxxxxx#9 nsp=-1 mass=-400 - 0.000000000000000e+00, -4.242640687119285e-01, // itest=85: vxxxxx#9 nsp=-1 mass=-400 - 0.000000000000000e+00, 5.656854249492381e-01, // itest=85: vxxxxx#9 nsp=-1 mass=-400 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=85: vxxxxx#9 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=86: sxxxxx#9 nsp=-1 mass=400 - 2.400000000000000e+02, 1.800000000000000e+02, // itest=86: sxxxxx#9 nsp=-1 mass=400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=86: sxxxxx#9 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=86: sxxxxx#9 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=86: sxxxxx#9 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=86: sxxxxx#9 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=87: sxxxxx#9 nsp=-1 mass=-400 - 2.400000000000000e+02, 1.800000000000000e+02, // itest=87: sxxxxx#9 nsp=-1 mass=-400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=87: sxxxxx#9 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=87: sxxxxx#9 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=87: sxxxxx#9 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=87: sxxxxx#9 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=88: oxxxxx#9 nsp=-1 mass=400 - 2.400000000000000e+02, 1.800000000000000e+02, // itest=88: oxxxxx#9 nsp=-1 mass=400 - 7.999999999999999e+00, 5.999999999999999e+00, // itest=88: oxxxxx#9 nsp=-1 mass=400 - 1.000000000000000e+01, 0.000000000000000e+00, // itest=88: oxxxxx#9 nsp=-1 mass=400 - -1.600000000000000e+01, -1.200000000000000e+01, // itest=88: oxxxxx#9 nsp=-1 mass=400 - -2.000000000000000e+01, -0.000000000000000e+00 } ); // itest=88: oxxxxx#9 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=89: oxxxxx#9 nsp=-1 mass=-400 - 2.400000000000000e+02, 1.800000000000000e+02, // itest=89: oxxxxx#9 nsp=-1 mass=-400 - -7.999999999999999e+00, -5.999999999999999e+00, // itest=89: oxxxxx#9 nsp=-1 mass=-400 - -1.000000000000000e+01, -0.000000000000000e+00, // itest=89: oxxxxx#9 nsp=-1 mass=-400 - -1.600000000000000e+01, -1.200000000000000e+01, // itest=89: oxxxxx#9 nsp=-1 mass=-400 - -2.000000000000000e+01, -0.000000000000000e+00 } ); // itest=89: oxxxxx#9 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 1.440000000000000e+02, // itest=90: ixxxxx#10 nsp=-1 mass=400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=90: ixxxxx#10 nsp=-1 mass=400 - 9.863939238321439e+00, -1.052153518754287e+01, // itest=90: ixxxxx#10 nsp=-1 mass=400 - -2.433105012119288e+01, -0.000000000000000e+00, // itest=90: ixxxxx#10 nsp=-1 mass=400 - -4.931969619160719e+00, 5.260767593771432e+00, // itest=90: ixxxxx#10 nsp=-1 mass=400 - 1.216552506059644e+01, 0.000000000000000e+00 } ); // itest=90: ixxxxx#10 nsp=-1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 1.440000000000000e+02, // itest=91: ixxxxx#10 nsp=-1 mass=-400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=91: ixxxxx#10 nsp=-1 mass=-400 - 9.863939238321439e+00, -1.052153518754287e+01, // itest=91: ixxxxx#10 nsp=-1 mass=-400 - -2.433105012119288e+01, -0.000000000000000e+00, // itest=91: ixxxxx#10 nsp=-1 mass=-400 - 4.931969619160719e+00, -5.260767593771432e+00, // itest=91: ixxxxx#10 nsp=-1 mass=-400 - -1.216552506059644e+01, -0.000000000000000e+00 } ); // itest=91: ixxxxx#10 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -1.440000000000000e+02, // itest=92: vxxxxx#10 nsp=-1 mass=400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=92: vxxxxx#10 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=92: vxxxxx#10 nsp=-1 mass=400 - -2.321373168788980e-01, 5.158607041753289e-01, // itest=92: vxxxxx#10 nsp=-1 mass=400 - -2.476131380041579e-01, -4.836194101643708e-01, // itest=92: vxxxxx#10 nsp=-1 mass=400 - 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=92: vxxxxx#10 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -1.440000000000000e+02, // itest=93: vxxxxx#10 nsp=-1 mass=-400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=93: vxxxxx#10 nsp=-1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=93: vxxxxx#10 nsp=-1 mass=-400 - -2.321373168788980e-01, 5.158607041753289e-01, // itest=93: vxxxxx#10 nsp=-1 mass=-400 - -2.476131380041579e-01, -4.836194101643708e-01, // itest=93: vxxxxx#10 nsp=-1 mass=-400 - 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=93: vxxxxx#10 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -1.440000000000000e+02, // itest=94: sxxxxx#10 nsp=-1 mass=400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=94: sxxxxx#10 nsp=-1 mass=400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=94: sxxxxx#10 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=94: sxxxxx#10 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=94: sxxxxx#10 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=94: sxxxxx#10 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -1.440000000000000e+02, // itest=95: sxxxxx#10 nsp=-1 mass=-400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=95: sxxxxx#10 nsp=-1 mass=-400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=95: sxxxxx#10 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=95: sxxxxx#10 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=95: sxxxxx#10 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=95: sxxxxx#10 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -1.440000000000000e+02, // itest=96: oxxxxx#10 nsp=-1 mass=400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=96: oxxxxx#10 nsp=-1 mass=400 - -4.931969619160719e+00, -5.260767593771432e+00, // itest=96: oxxxxx#10 nsp=-1 mass=400 - 1.216552506059644e+01, 0.000000000000000e+00, // itest=96: oxxxxx#10 nsp=-1 mass=400 - 9.863939238321439e+00, 1.052153518754287e+01, // itest=96: oxxxxx#10 nsp=-1 mass=400 - -2.433105012119288e+01, -0.000000000000000e+00 } ); // itest=96: oxxxxx#10 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -1.440000000000000e+02, // itest=97: oxxxxx#10 nsp=-1 mass=-400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=97: oxxxxx#10 nsp=-1 mass=-400 - 4.931969619160719e+00, 5.260767593771432e+00, // itest=97: oxxxxx#10 nsp=-1 mass=-400 - -1.216552506059644e+01, -0.000000000000000e+00, // itest=97: oxxxxx#10 nsp=-1 mass=-400 - 9.863939238321439e+00, 1.052153518754287e+01, // itest=97: oxxxxx#10 nsp=-1 mass=-400 - -2.433105012119288e+01, -0.000000000000000e+00 } ); // itest=97: oxxxxx#10 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -1.440000000000000e+02, // itest=98: ixxxxx#11 nsp=-1 mass=400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=98: ixxxxx#11 nsp=-1 mass=400 - 1.664100588675688e+01, -1.775040627920733e+01, // itest=98: ixxxxx#11 nsp=-1 mass=400 - -1.442220510185596e+01, -0.000000000000000e+00, // itest=98: ixxxxx#11 nsp=-1 mass=400 - -8.320502943378436e+00, 8.875203139603666e+00, // itest=98: ixxxxx#11 nsp=-1 mass=400 - 7.211102550927978e+00, 0.000000000000000e+00 } ); // itest=98: ixxxxx#11 nsp=-1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -1.440000000000000e+02, // itest=99: ixxxxx#11 nsp=-1 mass=-400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=99: ixxxxx#11 nsp=-1 mass=-400 - 1.664100588675688e+01, -1.775040627920733e+01, // itest=99: ixxxxx#11 nsp=-1 mass=-400 - -1.442220510185596e+01, -0.000000000000000e+00, // itest=99: ixxxxx#11 nsp=-1 mass=-400 - 8.320502943378436e+00, -8.875203139603666e+00, // itest=99: ixxxxx#11 nsp=-1 mass=-400 - -7.211102550927978e+00, -0.000000000000000e+00 } ); // itest=99: ixxxxx#11 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 1.440000000000000e+02, // itest=100: vxxxxx#11 nsp=-1 mass=400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=100: vxxxxx#11 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=100: vxxxxx#11 nsp=-1 mass=400 - 2.321373168788980e-01, 5.158607041753289e-01, // itest=100: vxxxxx#11 nsp=-1 mass=400 - 2.476131380041579e-01, -4.836194101643708e-01, // itest=100: vxxxxx#11 nsp=-1 mass=400 - 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=100: vxxxxx#11 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 1.440000000000000e+02, // itest=101: vxxxxx#11 nsp=-1 mass=-400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=101: vxxxxx#11 nsp=-1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=101: vxxxxx#11 nsp=-1 mass=-400 - 2.321373168788980e-01, 5.158607041753289e-01, // itest=101: vxxxxx#11 nsp=-1 mass=-400 - 2.476131380041579e-01, -4.836194101643708e-01, // itest=101: vxxxxx#11 nsp=-1 mass=-400 - 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=101: vxxxxx#11 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 1.440000000000000e+02, // itest=102: sxxxxx#11 nsp=-1 mass=400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=102: sxxxxx#11 nsp=-1 mass=400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=102: sxxxxx#11 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=102: sxxxxx#11 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=102: sxxxxx#11 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=102: sxxxxx#11 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 1.440000000000000e+02, // itest=103: sxxxxx#11 nsp=-1 mass=-400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=103: sxxxxx#11 nsp=-1 mass=-400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=103: sxxxxx#11 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=103: sxxxxx#11 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=103: sxxxxx#11 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=103: sxxxxx#11 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 1.440000000000000e+02, // itest=104: oxxxxx#11 nsp=-1 mass=400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=104: oxxxxx#11 nsp=-1 mass=400 - -8.320502943378436e+00, -8.875203139603666e+00, // itest=104: oxxxxx#11 nsp=-1 mass=400 - 7.211102550927978e+00, 0.000000000000000e+00, // itest=104: oxxxxx#11 nsp=-1 mass=400 - 1.664100588675688e+01, 1.775040627920733e+01, // itest=104: oxxxxx#11 nsp=-1 mass=400 - -1.442220510185596e+01, -0.000000000000000e+00 } ); // itest=104: oxxxxx#11 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 1.440000000000000e+02, // itest=105: oxxxxx#11 nsp=-1 mass=-400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=105: oxxxxx#11 nsp=-1 mass=-400 - 8.320502943378436e+00, 8.875203139603666e+00, // itest=105: oxxxxx#11 nsp=-1 mass=-400 - -7.211102550927978e+00, -0.000000000000000e+00, // itest=105: oxxxxx#11 nsp=-1 mass=-400 - 1.664100588675688e+01, 1.775040627920733e+01, // itest=105: oxxxxx#11 nsp=-1 mass=-400 - -1.442220510185596e+01, -0.000000000000000e+00 } ); // itest=105: oxxxxx#11 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=106: ixxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=106: ixxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=106: ixxxxx#12 nsp=-1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00, // itest=106: ixxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=106: ixxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=106: ixxxxx#12 nsp=-1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=107: ixxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=107: ixxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=107: ixxxxx#12 nsp=-1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00, // itest=107: ixxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=107: ixxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=107: ixxxxx#12 nsp=-1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=108: ipzxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=108: ipzxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=108: ipzxxx#12 nsp=-1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00, // itest=108: ipzxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=108: ipzxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=108: ipzxxx#12 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=109: vxxxxx#12 nsp=-1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=109: vxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=109: vxxxxx#12 nsp=-1 mass=0 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=109: vxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, -7.071067811865476e-01, // itest=109: vxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=109: vxxxxx#12 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=110: vxxxxx#12 nsp=-1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=110: vxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=110: vxxxxx#12 nsp=-1 mass=0 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=110: vxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, -7.071067811865476e-01, // itest=110: vxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=110: vxxxxx#12 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=111: sxxxxx#12 nsp=-1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=111: sxxxxx#12 nsp=-1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=111: sxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=111: sxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=111: sxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=111: sxxxxx#12 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=112: sxxxxx#12 nsp=-1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=112: sxxxxx#12 nsp=-1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=112: sxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=112: sxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=112: sxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=112: sxxxxx#12 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=113: oxxxxx#12 nsp=-1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=113: oxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=113: oxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=113: oxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=113: oxxxxx#12 nsp=-1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=113: oxxxxx#12 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=114: oxxxxx#12 nsp=-1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=114: oxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=114: oxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=114: oxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=114: oxxxxx#12 nsp=-1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=114: oxxxxx#12 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=115: opzxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=115: opzxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=115: opzxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=115: opzxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=115: opzxxx#12 nsp=-1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=115: opzxxx#12 nsp=-1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=116: ixxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=116: ixxxxx#13 nsp=-1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00, // itest=116: ixxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=116: ixxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=116: ixxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=116: ixxxxx#13 nsp=-1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=117: ixxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=117: ixxxxx#13 nsp=-1 mass=0 - -3.162277660168379e+01, -0.000000000000000e+00, // itest=117: ixxxxx#13 nsp=-1 mass=0 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=117: ixxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=117: ixxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=117: ixxxxx#13 nsp=-1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=118: imzxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=118: imzxxx#13 nsp=-1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00, // itest=118: imzxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=118: imzxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=118: imzxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=118: imzxxx#13 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=119: vxxxxx#13 nsp=-1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=119: vxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=119: vxxxxx#13 nsp=-1 mass=0 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=119: vxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 7.071067811865476e-01, // itest=119: vxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=119: vxxxxx#13 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=120: vxxxxx#13 nsp=-1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=120: vxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=120: vxxxxx#13 nsp=-1 mass=0 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=120: vxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 7.071067811865476e-01, // itest=120: vxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=120: vxxxxx#13 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=121: sxxxxx#13 nsp=-1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=121: sxxxxx#13 nsp=-1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=121: sxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=121: sxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=121: sxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=121: sxxxxx#13 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=122: sxxxxx#13 nsp=-1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=122: sxxxxx#13 nsp=-1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=122: sxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=122: sxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=122: sxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=122: sxxxxx#13 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=123: oxxxxx#13 nsp=-1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=123: oxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=123: oxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=123: oxxxxx#13 nsp=-1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00, // itest=123: oxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=123: oxxxxx#13 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=124: oxxxxx#13 nsp=-1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=124: oxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=124: oxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=124: oxxxxx#13 nsp=-1 mass=0 - -3.162277660168379e+01, -0.000000000000000e+00, // itest=124: oxxxxx#13 nsp=-1 mass=0 - -0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=124: oxxxxx#13 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=125: omzxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=125: omzxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=125: omzxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=125: omzxxx#13 nsp=-1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00, // itest=125: omzxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=125: omzxxx#13 nsp=-1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=126: ixxxxx#14 nsp=-1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=126: ixxxxx#14 nsp=-1 mass=0 - 1.341640786499874e+01, -1.788854381999832e+01, // itest=126: ixxxxx#14 nsp=-1 mass=0 - -2.236067977499790e+01, 0.000000000000000e+00, // itest=126: ixxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=126: ixxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=126: ixxxxx#14 nsp=-1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=127: ixxxxx#14 nsp=-1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=127: ixxxxx#14 nsp=-1 mass=0 - 1.341640786499874e+01, -1.788854381999832e+01, // itest=127: ixxxxx#14 nsp=-1 mass=0 - -2.236067977499790e+01, 0.000000000000000e+00, // itest=127: ixxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=127: ixxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=127: ixxxxx#14 nsp=-1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=128: ixzxxx#14 nsp=-1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=128: ixzxxx#14 nsp=-1 mass=0 - 1.341640786499874e+01, -1.788854381999832e+01, // itest=128: ixzxxx#14 nsp=-1 mass=0 - -2.236067977499790e+01, 0.000000000000000e+00, // itest=128: ixzxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=128: ixzxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=128: ixzxxx#14 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=129: vxxxxx#14 nsp=-1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=129: vxxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=129: vxxxxx#14 nsp=-1 mass=0 - -0.000000000000000e+00, 5.656854249492381e-01, // itest=129: vxxxxx#14 nsp=-1 mass=0 - -0.000000000000000e+00, -4.242640687119285e-01, // itest=129: vxxxxx#14 nsp=-1 mass=0 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=129: vxxxxx#14 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=130: vxxxxx#14 nsp=-1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=130: vxxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=130: vxxxxx#14 nsp=-1 mass=0 - -0.000000000000000e+00, 5.656854249492381e-01, // itest=130: vxxxxx#14 nsp=-1 mass=0 - -0.000000000000000e+00, -4.242640687119285e-01, // itest=130: vxxxxx#14 nsp=-1 mass=0 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=130: vxxxxx#14 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=131: sxxxxx#14 nsp=-1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=131: sxxxxx#14 nsp=-1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=131: sxxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=131: sxxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=131: sxxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=131: sxxxxx#14 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=132: sxxxxx#14 nsp=-1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=132: sxxxxx#14 nsp=-1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=132: sxxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=132: sxxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=132: sxxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=132: sxxxxx#14 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=133: oxxxxx#14 nsp=-1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=133: oxxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=133: oxxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=133: oxxxxx#14 nsp=-1 mass=0 - 1.341640786499874e+01, 1.788854381999832e+01, // itest=133: oxxxxx#14 nsp=-1 mass=0 - -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=133: oxxxxx#14 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=134: oxxxxx#14 nsp=-1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=134: oxxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=134: oxxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=134: oxxxxx#14 nsp=-1 mass=0 - 1.341640786499874e+01, 1.788854381999832e+01, // itest=134: oxxxxx#14 nsp=-1 mass=0 - -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=134: oxxxxx#14 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=135: oxzxxx#14 nsp=-1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=135: oxzxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=135: oxzxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=135: oxzxxx#14 nsp=-1 mass=0 - 1.341640786499874e+01, 1.788854381999832e+01, // itest=135: oxzxxx#14 nsp=-1 mass=0 - -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=135: oxzxxx#14 nsp=-1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=136: ixxxxx#15 nsp=-1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=136: ixxxxx#15 nsp=-1 mass=0 - 6.000000000000000e+00, -8.000000000000000e+00, // itest=136: ixxxxx#15 nsp=-1 mass=0 - -3.000000000000000e+01, 0.000000000000000e+00, // itest=136: ixxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=136: ixxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=136: ixxxxx#15 nsp=-1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=137: ixxxxx#15 nsp=-1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=137: ixxxxx#15 nsp=-1 mass=0 - 6.000000000000000e+00, -8.000000000000000e+00, // itest=137: ixxxxx#15 nsp=-1 mass=0 - -3.000000000000000e+01, 0.000000000000000e+00, // itest=137: ixxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=137: ixxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=137: ixxxxx#15 nsp=-1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=138: ixzxxx#15 nsp=-1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=138: ixzxxx#15 nsp=-1 mass=0 - 6.000000000000000e+00, -8.000000000000000e+00, // itest=138: ixzxxx#15 nsp=-1 mass=0 - -3.000000000000000e+01, 0.000000000000000e+00, // itest=138: ixzxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=138: ixzxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=138: ixzxxx#15 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=139: vxxxxx#15 nsp=-1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=139: vxxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=139: vxxxxx#15 nsp=-1 mass=0 - -3.394112549695428e-01, 5.656854249492381e-01, // itest=139: vxxxxx#15 nsp=-1 mass=0 - -4.525483399593904e-01, -4.242640687119285e-01, // itest=139: vxxxxx#15 nsp=-1 mass=0 - 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=139: vxxxxx#15 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=140: vxxxxx#15 nsp=-1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=140: vxxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=140: vxxxxx#15 nsp=-1 mass=0 - -3.394112549695428e-01, 5.656854249492381e-01, // itest=140: vxxxxx#15 nsp=-1 mass=0 - -4.525483399593904e-01, -4.242640687119285e-01, // itest=140: vxxxxx#15 nsp=-1 mass=0 - 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=140: vxxxxx#15 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=141: sxxxxx#15 nsp=-1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=141: sxxxxx#15 nsp=-1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=141: sxxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=141: sxxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=141: sxxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=141: sxxxxx#15 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=142: sxxxxx#15 nsp=-1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=142: sxxxxx#15 nsp=-1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=142: sxxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=142: sxxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=142: sxxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=142: sxxxxx#15 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=143: oxxxxx#15 nsp=-1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=143: oxxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=143: oxxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=143: oxxxxx#15 nsp=-1 mass=0 - 6.000000000000000e+00, 8.000000000000000e+00, // itest=143: oxxxxx#15 nsp=-1 mass=0 - -3.000000000000000e+01, 0.000000000000000e+00 } ); // itest=143: oxxxxx#15 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=144: oxxxxx#15 nsp=-1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=144: oxxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=144: oxxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=144: oxxxxx#15 nsp=-1 mass=0 - 6.000000000000000e+00, 8.000000000000000e+00, // itest=144: oxxxxx#15 nsp=-1 mass=0 - -3.000000000000000e+01, 0.000000000000000e+00 } ); // itest=144: oxxxxx#15 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=145: oxzxxx#15 nsp=-1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=145: oxzxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=145: oxzxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=145: oxzxxx#15 nsp=-1 mass=0 - 6.000000000000000e+00, 8.000000000000000e+00, // itest=145: oxzxxx#15 nsp=-1 mass=0 - -3.000000000000000e+01, 0.000000000000000e+00 } ); // itest=145: oxzxxx#15 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=146: ixxxxx#0 nsp=1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=146: ixxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=146: ixxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=146: ixxxxx#0 nsp=1 mass=0 - 3.162277660168379e+01, 0.000000000000000e+00, // itest=146: ixxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=146: ixxxxx#0 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=147: ixxxxx#0 nsp=1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=147: ixxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=147: ixxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=147: ixxxxx#0 nsp=1 mass=0 - 3.162277660168379e+01, 0.000000000000000e+00, // itest=147: ixxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=147: ixxxxx#0 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=148: ipzxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=148: ipzxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=148: ipzxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=148: ipzxxx#0 nsp=1 mass=0 - 3.162277660168379e+01, 0.000000000000000e+00, // itest=148: ipzxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=148: ipzxxx#0 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=149: vxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=149: vxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=149: vxxxxx#0 nsp=1 mass=0 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=149: vxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 7.071067811865476e-01, // itest=149: vxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=149: vxxxxx#0 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=150: vxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=150: vxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=150: vxxxxx#0 nsp=1 mass=0 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=150: vxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 7.071067811865476e-01, // itest=150: vxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=150: vxxxxx#0 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=151: sxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=151: sxxxxx#0 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=151: sxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=151: sxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=151: sxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=151: sxxxxx#0 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=152: sxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=152: sxxxxx#0 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=152: sxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=152: sxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=152: sxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=152: sxxxxx#0 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=153: oxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=153: oxxxxx#0 nsp=1 mass=0 - 3.162277660168379e+01, 0.000000000000000e+00, // itest=153: oxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=153: oxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=153: oxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=153: oxxxxx#0 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=154: oxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=154: oxxxxx#0 nsp=1 mass=0 - 3.162277660168379e+01, 0.000000000000000e+00, // itest=154: oxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=154: oxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=154: oxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=154: oxxxxx#0 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=155: opzxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=155: opzxxx#0 nsp=1 mass=0 - 3.162277660168379e+01, 0.000000000000000e+00, // itest=155: opzxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=155: opzxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=155: opzxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=155: opzxxx#0 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=156: ixxxxx#1 nsp=1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=156: ixxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=156: ixxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=156: ixxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=156: ixxxxx#1 nsp=1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=156: ixxxxx#1 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=157: ixxxxx#1 nsp=1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=157: ixxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=157: ixxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=157: ixxxxx#1 nsp=1 mass=0 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=157: ixxxxx#1 nsp=1 mass=0 - -3.162277660168379e+01, -0.000000000000000e+00 } ); // itest=157: ixxxxx#1 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=158: imzxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=158: imzxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=158: imzxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=158: imzxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=158: imzxxx#1 nsp=1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=158: imzxxx#1 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=159: vxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=159: vxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=159: vxxxxx#1 nsp=1 mass=0 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=159: vxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, -7.071067811865476e-01, // itest=159: vxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=159: vxxxxx#1 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=160: vxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=160: vxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=160: vxxxxx#1 nsp=1 mass=0 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=160: vxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, -7.071067811865476e-01, // itest=160: vxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=160: vxxxxx#1 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=161: sxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=161: sxxxxx#1 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=161: sxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=161: sxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=161: sxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=161: sxxxxx#1 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=162: sxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=162: sxxxxx#1 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=162: sxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=162: sxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=162: sxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=162: sxxxxx#1 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=163: oxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=163: oxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=163: oxxxxx#1 nsp=1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00, // itest=163: oxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=163: oxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=163: oxxxxx#1 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=164: oxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=164: oxxxxx#1 nsp=1 mass=0 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=164: oxxxxx#1 nsp=1 mass=0 - -3.162277660168379e+01, -0.000000000000000e+00, // itest=164: oxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=164: oxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=164: oxxxxx#1 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=165: omzxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=165: omzxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=165: omzxxx#1 nsp=1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00, // itest=165: omzxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=165: omzxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=165: omzxxx#1 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=166: ixxxxx#2 nsp=1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=166: ixxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=166: ixxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=166: ixxxxx#2 nsp=1 mass=0 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=166: ixxxxx#2 nsp=1 mass=0 - 1.341640786499874e+01, 1.788854381999832e+01 } ); // itest=166: ixxxxx#2 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=167: ixxxxx#2 nsp=1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=167: ixxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=167: ixxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=167: ixxxxx#2 nsp=1 mass=0 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=167: ixxxxx#2 nsp=1 mass=0 - 1.341640786499874e+01, 1.788854381999832e+01 } ); // itest=167: ixxxxx#2 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=168: ixzxxx#2 nsp=1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=168: ixzxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=168: ixzxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=168: ixzxxx#2 nsp=1 mass=0 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=168: ixzxxx#2 nsp=1 mass=0 - 1.341640786499874e+01, 1.788854381999832e+01 } ); // itest=168: ixzxxx#2 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=169: vxxxxx#2 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=169: vxxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=169: vxxxxx#2 nsp=1 mass=0 - -0.000000000000000e+00, -5.656854249492381e-01, // itest=169: vxxxxx#2 nsp=1 mass=0 - -0.000000000000000e+00, 4.242640687119285e-01, // itest=169: vxxxxx#2 nsp=1 mass=0 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=169: vxxxxx#2 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=170: vxxxxx#2 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=170: vxxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=170: vxxxxx#2 nsp=1 mass=0 - -0.000000000000000e+00, -5.656854249492381e-01, // itest=170: vxxxxx#2 nsp=1 mass=0 - -0.000000000000000e+00, 4.242640687119285e-01, // itest=170: vxxxxx#2 nsp=1 mass=0 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=170: vxxxxx#2 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=171: sxxxxx#2 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=171: sxxxxx#2 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=171: sxxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=171: sxxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=171: sxxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=171: sxxxxx#2 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=172: sxxxxx#2 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=172: sxxxxx#2 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=172: sxxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=172: sxxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=172: sxxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=172: sxxxxx#2 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=173: oxxxxx#2 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=173: oxxxxx#2 nsp=1 mass=0 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=173: oxxxxx#2 nsp=1 mass=0 - 1.341640786499874e+01, -1.788854381999832e+01, // itest=173: oxxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=173: oxxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=173: oxxxxx#2 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=174: oxxxxx#2 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=174: oxxxxx#2 nsp=1 mass=0 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=174: oxxxxx#2 nsp=1 mass=0 - 1.341640786499874e+01, -1.788854381999832e+01, // itest=174: oxxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=174: oxxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=174: oxxxxx#2 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=175: oxzxxx#2 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=175: oxzxxx#2 nsp=1 mass=0 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=175: oxzxxx#2 nsp=1 mass=0 - 1.341640786499874e+01, -1.788854381999832e+01, // itest=175: oxzxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=175: oxzxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=175: oxzxxx#2 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=176: ixxxxx#3 nsp=1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=176: ixxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=176: ixxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=176: ixxxxx#3 nsp=1 mass=0 - 3.000000000000000e+01, 0.000000000000000e+00, // itest=176: ixxxxx#3 nsp=1 mass=0 - 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=176: ixxxxx#3 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=177: ixxxxx#3 nsp=1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=177: ixxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=177: ixxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=177: ixxxxx#3 nsp=1 mass=0 - 3.000000000000000e+01, 0.000000000000000e+00, // itest=177: ixxxxx#3 nsp=1 mass=0 - 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=177: ixxxxx#3 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=178: ixzxxx#3 nsp=1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=178: ixzxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=178: ixzxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=178: ixzxxx#3 nsp=1 mass=0 - 3.000000000000000e+01, 0.000000000000000e+00, // itest=178: ixzxxx#3 nsp=1 mass=0 - 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=178: ixzxxx#3 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=179: vxxxxx#3 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=179: vxxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=179: vxxxxx#3 nsp=1 mass=0 - -3.394112549695428e-01, -5.656854249492381e-01, // itest=179: vxxxxx#3 nsp=1 mass=0 - -4.525483399593904e-01, 4.242640687119285e-01, // itest=179: vxxxxx#3 nsp=1 mass=0 - 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=179: vxxxxx#3 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=180: vxxxxx#3 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=180: vxxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=180: vxxxxx#3 nsp=1 mass=0 - -3.394112549695428e-01, -5.656854249492381e-01, // itest=180: vxxxxx#3 nsp=1 mass=0 - -4.525483399593904e-01, 4.242640687119285e-01, // itest=180: vxxxxx#3 nsp=1 mass=0 - 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=180: vxxxxx#3 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=181: sxxxxx#3 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=181: sxxxxx#3 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=181: sxxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=181: sxxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=181: sxxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=181: sxxxxx#3 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=182: sxxxxx#3 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=182: sxxxxx#3 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=182: sxxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=182: sxxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=182: sxxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=182: sxxxxx#3 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=183: oxxxxx#3 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=183: oxxxxx#3 nsp=1 mass=0 - 3.000000000000000e+01, 0.000000000000000e+00, // itest=183: oxxxxx#3 nsp=1 mass=0 - 6.000000000000000e+00, -8.000000000000000e+00, // itest=183: oxxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=183: oxxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=183: oxxxxx#3 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=184: oxxxxx#3 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=184: oxxxxx#3 nsp=1 mass=0 - 3.000000000000000e+01, 0.000000000000000e+00, // itest=184: oxxxxx#3 nsp=1 mass=0 - 6.000000000000000e+00, -8.000000000000000e+00, // itest=184: oxxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=184: oxxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=184: oxxxxx#3 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=185: oxzxxx#3 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=185: oxzxxx#3 nsp=1 mass=0 - 3.000000000000000e+01, 0.000000000000000e+00, // itest=185: oxzxxx#3 nsp=1 mass=0 - 6.000000000000000e+00, -8.000000000000000e+00, // itest=185: oxzxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=185: oxzxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=185: oxzxxx#3 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 4.000000000000000e+02, // itest=186: ixxxxx#4 nsp=1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=186: ixxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=186: ixxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=186: ixxxxx#4 nsp=1 mass=0 - 1.000000000000000e+01, 0.000000000000000e+00, // itest=186: ixxxxx#4 nsp=1 mass=0 - 1.800000000000000e+01, 2.400000000000000e+01 } ); // itest=186: ixxxxx#4 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 4.000000000000000e+02, // itest=187: ixxxxx#4 nsp=1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=187: ixxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=187: ixxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=187: ixxxxx#4 nsp=1 mass=0 - 1.000000000000000e+01, 0.000000000000000e+00, // itest=187: ixxxxx#4 nsp=1 mass=0 - 1.800000000000000e+01, 2.400000000000000e+01 } ); // itest=187: ixxxxx#4 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 4.000000000000000e+02, // itest=188: ixzxxx#4 nsp=1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=188: ixzxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=188: ixzxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=188: ixzxxx#4 nsp=1 mass=0 - 1.000000000000000e+01, 0.000000000000000e+00, // itest=188: ixzxxx#4 nsp=1 mass=0 - 1.800000000000000e+01, 2.400000000000000e+01 } ); // itest=188: ixzxxx#4 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -4.000000000000000e+02, // itest=189: vxxxxx#4 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=189: vxxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=189: vxxxxx#4 nsp=1 mass=0 - 3.394112549695428e-01, -5.656854249492381e-01, // itest=189: vxxxxx#4 nsp=1 mass=0 - 4.525483399593904e-01, 4.242640687119285e-01, // itest=189: vxxxxx#4 nsp=1 mass=0 - 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=189: vxxxxx#4 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -4.000000000000000e+02, // itest=190: vxxxxx#4 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=190: vxxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=190: vxxxxx#4 nsp=1 mass=0 - 3.394112549695428e-01, -5.656854249492381e-01, // itest=190: vxxxxx#4 nsp=1 mass=0 - 4.525483399593904e-01, 4.242640687119285e-01, // itest=190: vxxxxx#4 nsp=1 mass=0 - 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=190: vxxxxx#4 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -4.000000000000000e+02, // itest=191: sxxxxx#4 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=191: sxxxxx#4 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=191: sxxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=191: sxxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=191: sxxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=191: sxxxxx#4 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -4.000000000000000e+02, // itest=192: sxxxxx#4 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=192: sxxxxx#4 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=192: sxxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=192: sxxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=192: sxxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=192: sxxxxx#4 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -4.000000000000000e+02, // itest=193: oxxxxx#4 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=193: oxxxxx#4 nsp=1 mass=0 - 1.000000000000000e+01, 0.000000000000000e+00, // itest=193: oxxxxx#4 nsp=1 mass=0 - 1.800000000000000e+01, -2.400000000000000e+01, // itest=193: oxxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=193: oxxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=193: oxxxxx#4 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -4.000000000000000e+02, // itest=194: oxxxxx#4 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=194: oxxxxx#4 nsp=1 mass=0 - 1.000000000000000e+01, 0.000000000000000e+00, // itest=194: oxxxxx#4 nsp=1 mass=0 - 1.800000000000000e+01, -2.400000000000000e+01, // itest=194: oxxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=194: oxxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=194: oxxxxx#4 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -4.000000000000000e+02, // itest=195: oxzxxx#4 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=195: oxzxxx#4 nsp=1 mass=0 - 1.000000000000000e+01, 0.000000000000000e+00, // itest=195: oxzxxx#4 nsp=1 mass=0 - 1.800000000000000e+01, -2.400000000000000e+01, // itest=195: oxzxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=195: oxzxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=195: oxzxxx#4 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=196: ixxxxx#5 nsp=1 mass=500 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=196: ixxxxx#5 nsp=1 mass=500 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=196: ixxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=196: ixxxxx#5 nsp=1 mass=500 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=196: ixxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=196: ixxxxx#5 nsp=1 mass=500 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=197: ixxxxx#5 nsp=1 mass=-500 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=197: ixxxxx#5 nsp=1 mass=-500 - -2.236067977499790e+01, 0.000000000000000e+00, // itest=197: ixxxxx#5 nsp=1 mass=-500 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=197: ixxxxx#5 nsp=1 mass=-500 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=197: ixxxxx#5 nsp=1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=197: ixxxxx#5 nsp=1 mass=-500 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=198: vxxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=198: vxxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=198: vxxxxx#5 nsp=1 mass=500 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=198: vxxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 7.071067811865476e-01, // itest=198: vxxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=198: vxxxxx#5 nsp=1 mass=500 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=199: vxxxxx#5 nsp=1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=199: vxxxxx#5 nsp=1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=199: vxxxxx#5 nsp=1 mass=-500 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=199: vxxxxx#5 nsp=1 mass=-500 - 0.000000000000000e+00, 7.071067811865476e-01, // itest=199: vxxxxx#5 nsp=1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=199: vxxxxx#5 nsp=1 mass=-500 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=200: sxxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=200: sxxxxx#5 nsp=1 mass=500 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=200: sxxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=200: sxxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=200: sxxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=200: sxxxxx#5 nsp=1 mass=500 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=201: sxxxxx#5 nsp=1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=201: sxxxxx#5 nsp=1 mass=-500 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=201: sxxxxx#5 nsp=1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=201: sxxxxx#5 nsp=1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=201: sxxxxx#5 nsp=1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=201: sxxxxx#5 nsp=1 mass=-500 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=202: oxxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=202: oxxxxx#5 nsp=1 mass=500 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=202: oxxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=202: oxxxxx#5 nsp=1 mass=500 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=202: oxxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=202: oxxxxx#5 nsp=1 mass=500 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=203: oxxxxx#5 nsp=1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=203: oxxxxx#5 nsp=1 mass=-500 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=203: oxxxxx#5 nsp=1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=203: oxxxxx#5 nsp=1 mass=-500 - -2.236067977499790e+01, 0.000000000000000e+00, // itest=203: oxxxxx#5 nsp=1 mass=-500 - -0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=203: oxxxxx#5 nsp=1 mass=-500 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -3.000000000000000e+02, // itest=204: ixxxxx#6 nsp=1 mass=400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=204: ixxxxx#6 nsp=1 mass=400 - 1.414213562373095e+01, 0.000000000000000e+00, // itest=204: ixxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=204: ixxxxx#6 nsp=1 mass=400 - 2.828427124746190e+01, 0.000000000000000e+00, // itest=204: ixxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=204: ixxxxx#6 nsp=1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -3.000000000000000e+02, // itest=205: ixxxxx#6 nsp=1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=205: ixxxxx#6 nsp=1 mass=-400 - -1.414213562373095e+01, -0.000000000000000e+00, // itest=205: ixxxxx#6 nsp=1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=205: ixxxxx#6 nsp=1 mass=-400 - 2.828427124746190e+01, 0.000000000000000e+00, // itest=205: ixxxxx#6 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=205: ixxxxx#6 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 3.000000000000000e+02, // itest=206: vxxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=206: vxxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=206: vxxxxx#6 nsp=1 mass=400 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=206: vxxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, 7.071067811865476e-01, // itest=206: vxxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=206: vxxxxx#6 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 3.000000000000000e+02, // itest=207: vxxxxx#6 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=207: vxxxxx#6 nsp=1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=207: vxxxxx#6 nsp=1 mass=-400 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=207: vxxxxx#6 nsp=1 mass=-400 - 0.000000000000000e+00, 7.071067811865476e-01, // itest=207: vxxxxx#6 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=207: vxxxxx#6 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 3.000000000000000e+02, // itest=208: sxxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=208: sxxxxx#6 nsp=1 mass=400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=208: sxxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=208: sxxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=208: sxxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=208: sxxxxx#6 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 3.000000000000000e+02, // itest=209: sxxxxx#6 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=209: sxxxxx#6 nsp=1 mass=-400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=209: sxxxxx#6 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=209: sxxxxx#6 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=209: sxxxxx#6 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=209: sxxxxx#6 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 3.000000000000000e+02, // itest=210: oxxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=210: oxxxxx#6 nsp=1 mass=400 - 2.828427124746190e+01, 0.000000000000000e+00, // itest=210: oxxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=210: oxxxxx#6 nsp=1 mass=400 - 1.414213562373095e+01, 0.000000000000000e+00, // itest=210: oxxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=210: oxxxxx#6 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 3.000000000000000e+02, // itest=211: oxxxxx#6 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=211: oxxxxx#6 nsp=1 mass=-400 - 2.828427124746190e+01, 0.000000000000000e+00, // itest=211: oxxxxx#6 nsp=1 mass=-400 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=211: oxxxxx#6 nsp=1 mass=-400 - -1.414213562373095e+01, -0.000000000000000e+00, // itest=211: oxxxxx#6 nsp=1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=211: oxxxxx#6 nsp=1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 3.000000000000000e+02, // itest=212: ixxxxx#7 nsp=1 mass=400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=212: ixxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=212: ixxxxx#7 nsp=1 mass=400 - -1.414213562373095e+01, 0.000000000000000e+00, // itest=212: ixxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=212: ixxxxx#7 nsp=1 mass=400 - -2.828427124746190e+01, 0.000000000000000e+00 } ); // itest=212: ixxxxx#7 nsp=1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 3.000000000000000e+02, // itest=213: ixxxxx#7 nsp=1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=213: ixxxxx#7 nsp=1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=213: ixxxxx#7 nsp=1 mass=-400 - 1.414213562373095e+01, -0.000000000000000e+00, // itest=213: ixxxxx#7 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=213: ixxxxx#7 nsp=1 mass=-400 - -2.828427124746190e+01, 0.000000000000000e+00 } ); // itest=213: ixxxxx#7 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -3.000000000000000e+02, // itest=214: vxxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=214: vxxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=214: vxxxxx#7 nsp=1 mass=400 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=214: vxxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, -7.071067811865476e-01, // itest=214: vxxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=214: vxxxxx#7 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -3.000000000000000e+02, // itest=215: vxxxxx#7 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=215: vxxxxx#7 nsp=1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=215: vxxxxx#7 nsp=1 mass=-400 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=215: vxxxxx#7 nsp=1 mass=-400 - 0.000000000000000e+00, -7.071067811865476e-01, // itest=215: vxxxxx#7 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=215: vxxxxx#7 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -3.000000000000000e+02, // itest=216: sxxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=216: sxxxxx#7 nsp=1 mass=400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=216: sxxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=216: sxxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=216: sxxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=216: sxxxxx#7 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -3.000000000000000e+02, // itest=217: sxxxxx#7 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=217: sxxxxx#7 nsp=1 mass=-400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=217: sxxxxx#7 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=217: sxxxxx#7 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=217: sxxxxx#7 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=217: sxxxxx#7 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -3.000000000000000e+02, // itest=218: oxxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=218: oxxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=218: oxxxxx#7 nsp=1 mass=400 - -2.828427124746190e+01, 0.000000000000000e+00, // itest=218: oxxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=218: oxxxxx#7 nsp=1 mass=400 - -1.414213562373095e+01, 0.000000000000000e+00 } ); // itest=218: oxxxxx#7 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -3.000000000000000e+02, // itest=219: oxxxxx#7 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=219: oxxxxx#7 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=219: oxxxxx#7 nsp=1 mass=-400 - -2.828427124746190e+01, 0.000000000000000e+00, // itest=219: oxxxxx#7 nsp=1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=219: oxxxxx#7 nsp=1 mass=-400 - 1.414213562373095e+01, -0.000000000000000e+00 } ); // itest=219: oxxxxx#7 nsp=1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=220: ixxxxx#8 nsp=1 mass=400 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=220: ixxxxx#8 nsp=1 mass=400 - 1.000000000000000e+01, 0.000000000000000e+00, // itest=220: ixxxxx#8 nsp=1 mass=400 - 5.999999999999999e+00, 7.999999999999999e+00, // itest=220: ixxxxx#8 nsp=1 mass=400 - 2.000000000000000e+01, 0.000000000000000e+00, // itest=220: ixxxxx#8 nsp=1 mass=400 - 1.200000000000000e+01, 1.600000000000000e+01 } ); // itest=220: ixxxxx#8 nsp=1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=221: ixxxxx#8 nsp=1 mass=-400 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=221: ixxxxx#8 nsp=1 mass=-400 - -1.000000000000000e+01, -0.000000000000000e+00, // itest=221: ixxxxx#8 nsp=1 mass=-400 - -5.999999999999999e+00, -7.999999999999999e+00, // itest=221: ixxxxx#8 nsp=1 mass=-400 - 2.000000000000000e+01, 0.000000000000000e+00, // itest=221: ixxxxx#8 nsp=1 mass=-400 - 1.200000000000000e+01, 1.600000000000000e+01 } ); // itest=221: ixxxxx#8 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=222: vxxxxx#8 nsp=1 mass=400 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=222: vxxxxx#8 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=222: vxxxxx#8 nsp=1 mass=400 - 0.000000000000000e+00, -5.656854249492381e-01, // itest=222: vxxxxx#8 nsp=1 mass=400 - 0.000000000000000e+00, 4.242640687119285e-01, // itest=222: vxxxxx#8 nsp=1 mass=400 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=222: vxxxxx#8 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=223: vxxxxx#8 nsp=1 mass=-400 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=223: vxxxxx#8 nsp=1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=223: vxxxxx#8 nsp=1 mass=-400 - -0.000000000000000e+00, -5.656854249492381e-01, // itest=223: vxxxxx#8 nsp=1 mass=-400 - -0.000000000000000e+00, 4.242640687119285e-01, // itest=223: vxxxxx#8 nsp=1 mass=-400 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=223: vxxxxx#8 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=224: sxxxxx#8 nsp=1 mass=400 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=224: sxxxxx#8 nsp=1 mass=400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=224: sxxxxx#8 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=224: sxxxxx#8 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=224: sxxxxx#8 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=224: sxxxxx#8 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=225: sxxxxx#8 nsp=1 mass=-400 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=225: sxxxxx#8 nsp=1 mass=-400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=225: sxxxxx#8 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=225: sxxxxx#8 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=225: sxxxxx#8 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=225: sxxxxx#8 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=226: oxxxxx#8 nsp=1 mass=400 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=226: oxxxxx#8 nsp=1 mass=400 - 2.000000000000000e+01, 0.000000000000000e+00, // itest=226: oxxxxx#8 nsp=1 mass=400 - 1.200000000000000e+01, -1.600000000000000e+01, // itest=226: oxxxxx#8 nsp=1 mass=400 - 1.000000000000000e+01, 0.000000000000000e+00, // itest=226: oxxxxx#8 nsp=1 mass=400 - 5.999999999999999e+00, -7.999999999999999e+00 } ); // itest=226: oxxxxx#8 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=227: oxxxxx#8 nsp=1 mass=-400 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=227: oxxxxx#8 nsp=1 mass=-400 - 2.000000000000000e+01, 0.000000000000000e+00, // itest=227: oxxxxx#8 nsp=1 mass=-400 - 1.200000000000000e+01, -1.600000000000000e+01, // itest=227: oxxxxx#8 nsp=1 mass=-400 - -1.000000000000000e+01, -0.000000000000000e+00, // itest=227: oxxxxx#8 nsp=1 mass=-400 - -5.999999999999999e+00, 7.999999999999999e+00 } ); // itest=227: oxxxxx#8 nsp=1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=228: ixxxxx#9 nsp=1 mass=400 - 2.400000000000000e+02, 1.800000000000000e+02, // itest=228: ixxxxx#9 nsp=1 mass=400 - 1.000000000000000e+01, 0.000000000000000e+00, // itest=228: ixxxxx#9 nsp=1 mass=400 - -7.999999999999999e+00, -5.999999999999999e+00, // itest=228: ixxxxx#9 nsp=1 mass=400 - 2.000000000000000e+01, 0.000000000000000e+00, // itest=228: ixxxxx#9 nsp=1 mass=400 - -1.600000000000000e+01, -1.200000000000000e+01 } ); // itest=228: ixxxxx#9 nsp=1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=229: ixxxxx#9 nsp=1 mass=-400 - 2.400000000000000e+02, 1.800000000000000e+02, // itest=229: ixxxxx#9 nsp=1 mass=-400 - -1.000000000000000e+01, -0.000000000000000e+00, // itest=229: ixxxxx#9 nsp=1 mass=-400 - 7.999999999999999e+00, 5.999999999999999e+00, // itest=229: ixxxxx#9 nsp=1 mass=-400 - 2.000000000000000e+01, 0.000000000000000e+00, // itest=229: ixxxxx#9 nsp=1 mass=-400 - -1.600000000000000e+01, -1.200000000000000e+01 } ); // itest=229: ixxxxx#9 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=230: vxxxxx#9 nsp=1 mass=400 - -2.400000000000000e+02, -1.800000000000000e+02, // itest=230: vxxxxx#9 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=230: vxxxxx#9 nsp=1 mass=400 - 0.000000000000000e+00, 4.242640687119285e-01, // itest=230: vxxxxx#9 nsp=1 mass=400 - 0.000000000000000e+00, -5.656854249492381e-01, // itest=230: vxxxxx#9 nsp=1 mass=400 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=230: vxxxxx#9 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=231: vxxxxx#9 nsp=1 mass=-400 - -2.400000000000000e+02, -1.800000000000000e+02, // itest=231: vxxxxx#9 nsp=1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=231: vxxxxx#9 nsp=1 mass=-400 - 0.000000000000000e+00, 4.242640687119285e-01, // itest=231: vxxxxx#9 nsp=1 mass=-400 - 0.000000000000000e+00, -5.656854249492381e-01, // itest=231: vxxxxx#9 nsp=1 mass=-400 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=231: vxxxxx#9 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=232: sxxxxx#9 nsp=1 mass=400 - -2.400000000000000e+02, -1.800000000000000e+02, // itest=232: sxxxxx#9 nsp=1 mass=400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=232: sxxxxx#9 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=232: sxxxxx#9 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=232: sxxxxx#9 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=232: sxxxxx#9 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=233: sxxxxx#9 nsp=1 mass=-400 - -2.400000000000000e+02, -1.800000000000000e+02, // itest=233: sxxxxx#9 nsp=1 mass=-400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=233: sxxxxx#9 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=233: sxxxxx#9 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=233: sxxxxx#9 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=233: sxxxxx#9 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=234: oxxxxx#9 nsp=1 mass=400 - -2.400000000000000e+02, -1.800000000000000e+02, // itest=234: oxxxxx#9 nsp=1 mass=400 - 2.000000000000000e+01, 0.000000000000000e+00, // itest=234: oxxxxx#9 nsp=1 mass=400 - -1.600000000000000e+01, 1.200000000000000e+01, // itest=234: oxxxxx#9 nsp=1 mass=400 - 1.000000000000000e+01, 0.000000000000000e+00, // itest=234: oxxxxx#9 nsp=1 mass=400 - -7.999999999999999e+00, 5.999999999999999e+00 } ); // itest=234: oxxxxx#9 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=235: oxxxxx#9 nsp=1 mass=-400 - -2.400000000000000e+02, -1.800000000000000e+02, // itest=235: oxxxxx#9 nsp=1 mass=-400 - 2.000000000000000e+01, 0.000000000000000e+00, // itest=235: oxxxxx#9 nsp=1 mass=-400 - -1.600000000000000e+01, 1.200000000000000e+01, // itest=235: oxxxxx#9 nsp=1 mass=-400 - -1.000000000000000e+01, -0.000000000000000e+00, // itest=235: oxxxxx#9 nsp=1 mass=-400 - 7.999999999999999e+00, -5.999999999999999e+00 } ); // itest=235: oxxxxx#9 nsp=1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -1.440000000000000e+02, // itest=236: ixxxxx#10 nsp=1 mass=400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=236: ixxxxx#10 nsp=1 mass=400 - 1.216552506059644e+01, 0.000000000000000e+00, // itest=236: ixxxxx#10 nsp=1 mass=400 - 4.931969619160719e+00, 5.260767593771432e+00, // itest=236: ixxxxx#10 nsp=1 mass=400 - 2.433105012119288e+01, 0.000000000000000e+00, // itest=236: ixxxxx#10 nsp=1 mass=400 - 9.863939238321439e+00, 1.052153518754287e+01 } ); // itest=236: ixxxxx#10 nsp=1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -1.440000000000000e+02, // itest=237: ixxxxx#10 nsp=1 mass=-400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=237: ixxxxx#10 nsp=1 mass=-400 - -1.216552506059644e+01, -0.000000000000000e+00, // itest=237: ixxxxx#10 nsp=1 mass=-400 - -4.931969619160719e+00, -5.260767593771432e+00, // itest=237: ixxxxx#10 nsp=1 mass=-400 - 2.433105012119288e+01, 0.000000000000000e+00, // itest=237: ixxxxx#10 nsp=1 mass=-400 - 9.863939238321439e+00, 1.052153518754287e+01 } ); // itest=237: ixxxxx#10 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 1.440000000000000e+02, // itest=238: vxxxxx#10 nsp=1 mass=400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=238: vxxxxx#10 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=238: vxxxxx#10 nsp=1 mass=400 - -2.321373168788980e-01, -5.158607041753289e-01, // itest=238: vxxxxx#10 nsp=1 mass=400 - -2.476131380041579e-01, 4.836194101643708e-01, // itest=238: vxxxxx#10 nsp=1 mass=400 - 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=238: vxxxxx#10 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 1.440000000000000e+02, // itest=239: vxxxxx#10 nsp=1 mass=-400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=239: vxxxxx#10 nsp=1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=239: vxxxxx#10 nsp=1 mass=-400 - -2.321373168788980e-01, -5.158607041753289e-01, // itest=239: vxxxxx#10 nsp=1 mass=-400 - -2.476131380041579e-01, 4.836194101643708e-01, // itest=239: vxxxxx#10 nsp=1 mass=-400 - 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=239: vxxxxx#10 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 1.440000000000000e+02, // itest=240: sxxxxx#10 nsp=1 mass=400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=240: sxxxxx#10 nsp=1 mass=400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=240: sxxxxx#10 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=240: sxxxxx#10 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=240: sxxxxx#10 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=240: sxxxxx#10 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 1.440000000000000e+02, // itest=241: sxxxxx#10 nsp=1 mass=-400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=241: sxxxxx#10 nsp=1 mass=-400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=241: sxxxxx#10 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=241: sxxxxx#10 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=241: sxxxxx#10 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=241: sxxxxx#10 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 1.440000000000000e+02, // itest=242: oxxxxx#10 nsp=1 mass=400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=242: oxxxxx#10 nsp=1 mass=400 - 2.433105012119288e+01, 0.000000000000000e+00, // itest=242: oxxxxx#10 nsp=1 mass=400 - 9.863939238321439e+00, -1.052153518754287e+01, // itest=242: oxxxxx#10 nsp=1 mass=400 - 1.216552506059644e+01, 0.000000000000000e+00, // itest=242: oxxxxx#10 nsp=1 mass=400 - 4.931969619160719e+00, -5.260767593771432e+00 } ); // itest=242: oxxxxx#10 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 1.440000000000000e+02, // itest=243: oxxxxx#10 nsp=1 mass=-400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=243: oxxxxx#10 nsp=1 mass=-400 - 2.433105012119288e+01, 0.000000000000000e+00, // itest=243: oxxxxx#10 nsp=1 mass=-400 - 9.863939238321439e+00, -1.052153518754287e+01, // itest=243: oxxxxx#10 nsp=1 mass=-400 - -1.216552506059644e+01, -0.000000000000000e+00, // itest=243: oxxxxx#10 nsp=1 mass=-400 - -4.931969619160719e+00, 5.260767593771432e+00 } ); // itest=243: oxxxxx#10 nsp=1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 1.440000000000000e+02, // itest=244: ixxxxx#11 nsp=1 mass=400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=244: ixxxxx#11 nsp=1 mass=400 - 7.211102550927978e+00, 0.000000000000000e+00, // itest=244: ixxxxx#11 nsp=1 mass=400 - 8.320502943378436e+00, 8.875203139603666e+00, // itest=244: ixxxxx#11 nsp=1 mass=400 - 1.442220510185596e+01, 0.000000000000000e+00, // itest=244: ixxxxx#11 nsp=1 mass=400 - 1.664100588675688e+01, 1.775040627920733e+01 } ); // itest=244: ixxxxx#11 nsp=1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 1.440000000000000e+02, // itest=245: ixxxxx#11 nsp=1 mass=-400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=245: ixxxxx#11 nsp=1 mass=-400 - -7.211102550927978e+00, -0.000000000000000e+00, // itest=245: ixxxxx#11 nsp=1 mass=-400 - -8.320502943378436e+00, -8.875203139603666e+00, // itest=245: ixxxxx#11 nsp=1 mass=-400 - 1.442220510185596e+01, 0.000000000000000e+00, // itest=245: ixxxxx#11 nsp=1 mass=-400 - 1.664100588675688e+01, 1.775040627920733e+01 } ); // itest=245: ixxxxx#11 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -1.440000000000000e+02, // itest=246: vxxxxx#11 nsp=1 mass=400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=246: vxxxxx#11 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=246: vxxxxx#11 nsp=1 mass=400 - 2.321373168788980e-01, -5.158607041753289e-01, // itest=246: vxxxxx#11 nsp=1 mass=400 - 2.476131380041579e-01, 4.836194101643708e-01, // itest=246: vxxxxx#11 nsp=1 mass=400 - 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=246: vxxxxx#11 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -1.440000000000000e+02, // itest=247: vxxxxx#11 nsp=1 mass=-400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=247: vxxxxx#11 nsp=1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=247: vxxxxx#11 nsp=1 mass=-400 - 2.321373168788980e-01, -5.158607041753289e-01, // itest=247: vxxxxx#11 nsp=1 mass=-400 - 2.476131380041579e-01, 4.836194101643708e-01, // itest=247: vxxxxx#11 nsp=1 mass=-400 - 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=247: vxxxxx#11 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -1.440000000000000e+02, // itest=248: sxxxxx#11 nsp=1 mass=400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=248: sxxxxx#11 nsp=1 mass=400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=248: sxxxxx#11 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=248: sxxxxx#11 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=248: sxxxxx#11 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=248: sxxxxx#11 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -1.440000000000000e+02, // itest=249: sxxxxx#11 nsp=1 mass=-400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=249: sxxxxx#11 nsp=1 mass=-400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=249: sxxxxx#11 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=249: sxxxxx#11 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=249: sxxxxx#11 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=249: sxxxxx#11 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -1.440000000000000e+02, // itest=250: oxxxxx#11 nsp=1 mass=400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=250: oxxxxx#11 nsp=1 mass=400 - 1.442220510185596e+01, 0.000000000000000e+00, // itest=250: oxxxxx#11 nsp=1 mass=400 - 1.664100588675688e+01, -1.775040627920733e+01, // itest=250: oxxxxx#11 nsp=1 mass=400 - 7.211102550927978e+00, 0.000000000000000e+00, // itest=250: oxxxxx#11 nsp=1 mass=400 - 8.320502943378436e+00, -8.875203139603666e+00 } ); // itest=250: oxxxxx#11 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -1.440000000000000e+02, // itest=251: oxxxxx#11 nsp=1 mass=-400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=251: oxxxxx#11 nsp=1 mass=-400 - 1.442220510185596e+01, 0.000000000000000e+00, // itest=251: oxxxxx#11 nsp=1 mass=-400 - 1.664100588675688e+01, -1.775040627920733e+01, // itest=251: oxxxxx#11 nsp=1 mass=-400 - -7.211102550927978e+00, -0.000000000000000e+00, // itest=251: oxxxxx#11 nsp=1 mass=-400 - -8.320502943378436e+00, 8.875203139603666e+00 } ); // itest=251: oxxxxx#11 nsp=1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=252: ixxxxx#12 nsp=1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=252: ixxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=252: ixxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=252: ixxxxx#12 nsp=1 mass=0 - 3.162277660168379e+01, 0.000000000000000e+00, // itest=252: ixxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=252: ixxxxx#12 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=253: ixxxxx#12 nsp=1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=253: ixxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=253: ixxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=253: ixxxxx#12 nsp=1 mass=0 - 3.162277660168379e+01, 0.000000000000000e+00, // itest=253: ixxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=253: ixxxxx#12 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=254: ipzxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=254: ipzxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=254: ipzxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=254: ipzxxx#12 nsp=1 mass=0 - 3.162277660168379e+01, 0.000000000000000e+00, // itest=254: ipzxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=254: ipzxxx#12 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=255: vxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=255: vxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=255: vxxxxx#12 nsp=1 mass=0 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=255: vxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 7.071067811865476e-01, // itest=255: vxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=255: vxxxxx#12 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=256: vxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=256: vxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=256: vxxxxx#12 nsp=1 mass=0 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=256: vxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 7.071067811865476e-01, // itest=256: vxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=256: vxxxxx#12 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=257: sxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=257: sxxxxx#12 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=257: sxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=257: sxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=257: sxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=257: sxxxxx#12 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=258: sxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=258: sxxxxx#12 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=258: sxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=258: sxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=258: sxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=258: sxxxxx#12 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=259: oxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=259: oxxxxx#12 nsp=1 mass=0 - 3.162277660168379e+01, 0.000000000000000e+00, // itest=259: oxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=259: oxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=259: oxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=259: oxxxxx#12 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=260: oxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=260: oxxxxx#12 nsp=1 mass=0 - 3.162277660168379e+01, 0.000000000000000e+00, // itest=260: oxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=260: oxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=260: oxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=260: oxxxxx#12 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=261: opzxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=261: opzxxx#12 nsp=1 mass=0 - 3.162277660168379e+01, 0.000000000000000e+00, // itest=261: opzxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=261: opzxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=261: opzxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=261: opzxxx#12 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=262: ixxxxx#13 nsp=1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=262: ixxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=262: ixxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=262: ixxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=262: ixxxxx#13 nsp=1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=262: ixxxxx#13 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=263: ixxxxx#13 nsp=1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=263: ixxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=263: ixxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=263: ixxxxx#13 nsp=1 mass=0 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=263: ixxxxx#13 nsp=1 mass=0 - -3.162277660168379e+01, -0.000000000000000e+00 } ); // itest=263: ixxxxx#13 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=264: imzxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=264: imzxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=264: imzxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=264: imzxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=264: imzxxx#13 nsp=1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=264: imzxxx#13 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=265: vxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=265: vxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=265: vxxxxx#13 nsp=1 mass=0 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=265: vxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, -7.071067811865476e-01, // itest=265: vxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=265: vxxxxx#13 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=266: vxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=266: vxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=266: vxxxxx#13 nsp=1 mass=0 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=266: vxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, -7.071067811865476e-01, // itest=266: vxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=266: vxxxxx#13 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=267: sxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=267: sxxxxx#13 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=267: sxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=267: sxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=267: sxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=267: sxxxxx#13 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=268: sxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=268: sxxxxx#13 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=268: sxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=268: sxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=268: sxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=268: sxxxxx#13 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=269: oxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=269: oxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=269: oxxxxx#13 nsp=1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00, // itest=269: oxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=269: oxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=269: oxxxxx#13 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=270: oxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=270: oxxxxx#13 nsp=1 mass=0 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=270: oxxxxx#13 nsp=1 mass=0 - -3.162277660168379e+01, -0.000000000000000e+00, // itest=270: oxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=270: oxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=270: oxxxxx#13 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=271: omzxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=271: omzxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=271: omzxxx#13 nsp=1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00, // itest=271: omzxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=271: omzxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=271: omzxxx#13 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=272: ixxxxx#14 nsp=1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=272: ixxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=272: ixxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=272: ixxxxx#14 nsp=1 mass=0 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=272: ixxxxx#14 nsp=1 mass=0 - 1.341640786499874e+01, 1.788854381999832e+01 } ); // itest=272: ixxxxx#14 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=273: ixxxxx#14 nsp=1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=273: ixxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=273: ixxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=273: ixxxxx#14 nsp=1 mass=0 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=273: ixxxxx#14 nsp=1 mass=0 - 1.341640786499874e+01, 1.788854381999832e+01 } ); // itest=273: ixxxxx#14 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=274: ixzxxx#14 nsp=1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=274: ixzxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=274: ixzxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=274: ixzxxx#14 nsp=1 mass=0 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=274: ixzxxx#14 nsp=1 mass=0 - 1.341640786499874e+01, 1.788854381999832e+01 } ); // itest=274: ixzxxx#14 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=275: vxxxxx#14 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=275: vxxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=275: vxxxxx#14 nsp=1 mass=0 - -0.000000000000000e+00, -5.656854249492381e-01, // itest=275: vxxxxx#14 nsp=1 mass=0 - -0.000000000000000e+00, 4.242640687119285e-01, // itest=275: vxxxxx#14 nsp=1 mass=0 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=275: vxxxxx#14 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=276: vxxxxx#14 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=276: vxxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=276: vxxxxx#14 nsp=1 mass=0 - -0.000000000000000e+00, -5.656854249492381e-01, // itest=276: vxxxxx#14 nsp=1 mass=0 - -0.000000000000000e+00, 4.242640687119285e-01, // itest=276: vxxxxx#14 nsp=1 mass=0 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=276: vxxxxx#14 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=277: sxxxxx#14 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=277: sxxxxx#14 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=277: sxxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=277: sxxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=277: sxxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=277: sxxxxx#14 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=278: sxxxxx#14 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=278: sxxxxx#14 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=278: sxxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=278: sxxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=278: sxxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=278: sxxxxx#14 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=279: oxxxxx#14 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=279: oxxxxx#14 nsp=1 mass=0 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=279: oxxxxx#14 nsp=1 mass=0 - 1.341640786499874e+01, -1.788854381999832e+01, // itest=279: oxxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=279: oxxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=279: oxxxxx#14 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=280: oxxxxx#14 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=280: oxxxxx#14 nsp=1 mass=0 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=280: oxxxxx#14 nsp=1 mass=0 - 1.341640786499874e+01, -1.788854381999832e+01, // itest=280: oxxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=280: oxxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=280: oxxxxx#14 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=281: oxzxxx#14 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=281: oxzxxx#14 nsp=1 mass=0 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=281: oxzxxx#14 nsp=1 mass=0 - 1.341640786499874e+01, -1.788854381999832e+01, // itest=281: oxzxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=281: oxzxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=281: oxzxxx#14 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=282: ixxxxx#15 nsp=1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=282: ixxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=282: ixxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=282: ixxxxx#15 nsp=1 mass=0 - 3.000000000000000e+01, 0.000000000000000e+00, // itest=282: ixxxxx#15 nsp=1 mass=0 - 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=282: ixxxxx#15 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=283: ixxxxx#15 nsp=1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=283: ixxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=283: ixxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=283: ixxxxx#15 nsp=1 mass=0 - 3.000000000000000e+01, 0.000000000000000e+00, // itest=283: ixxxxx#15 nsp=1 mass=0 - 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=283: ixxxxx#15 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=284: ixzxxx#15 nsp=1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=284: ixzxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=284: ixzxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=284: ixzxxx#15 nsp=1 mass=0 - 3.000000000000000e+01, 0.000000000000000e+00, // itest=284: ixzxxx#15 nsp=1 mass=0 - 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=284: ixzxxx#15 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=285: vxxxxx#15 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=285: vxxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=285: vxxxxx#15 nsp=1 mass=0 - -3.394112549695428e-01, -5.656854249492381e-01, // itest=285: vxxxxx#15 nsp=1 mass=0 - -4.525483399593904e-01, 4.242640687119285e-01, // itest=285: vxxxxx#15 nsp=1 mass=0 - 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=285: vxxxxx#15 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=286: vxxxxx#15 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=286: vxxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=286: vxxxxx#15 nsp=1 mass=0 - -3.394112549695428e-01, -5.656854249492381e-01, // itest=286: vxxxxx#15 nsp=1 mass=0 - -4.525483399593904e-01, 4.242640687119285e-01, // itest=286: vxxxxx#15 nsp=1 mass=0 - 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=286: vxxxxx#15 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=287: sxxxxx#15 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=287: sxxxxx#15 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=287: sxxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=287: sxxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=287: sxxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=287: sxxxxx#15 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=288: sxxxxx#15 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=288: sxxxxx#15 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=288: sxxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=288: sxxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=288: sxxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=288: sxxxxx#15 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=289: oxxxxx#15 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=289: oxxxxx#15 nsp=1 mass=0 - 3.000000000000000e+01, 0.000000000000000e+00, // itest=289: oxxxxx#15 nsp=1 mass=0 - 6.000000000000000e+00, -8.000000000000000e+00, // itest=289: oxxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=289: oxxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=289: oxxxxx#15 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=290: oxxxxx#15 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=290: oxxxxx#15 nsp=1 mass=0 - 3.000000000000000e+01, 0.000000000000000e+00, // itest=290: oxxxxx#15 nsp=1 mass=0 - 6.000000000000000e+00, -8.000000000000000e+00, // itest=290: oxxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=290: oxxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=290: oxxxxx#15 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=291: oxzxxx#15 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=291: oxzxxx#15 nsp=1 mass=0 - 3.000000000000000e+01, 0.000000000000000e+00, // itest=291: oxzxxx#15 nsp=1 mass=0 - 6.000000000000000e+00, -8.000000000000000e+00, // itest=291: oxzxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=291: oxzxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=291: oxzxxx#15 nsp=1 mass=0 + 5.000000000000000e+02, 5.000000000000000e+02, // itest=50: ixxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=50: ixxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=50: ixxxxx#5 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=50: ixxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=50: ixxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=50: ixxxxx#5 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=51: ixxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=51: ixxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=51: ixxxxx#5 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=51: ixxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=51: ixxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=51: ixxxxx#5 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=52: ipzxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=52: ipzxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=52: ipzxxx#5 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=52: ipzxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=52: ipzxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=52: ipzxxx#5 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=53: vxxxxx#5 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=53: vxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=53: vxxxxx#5 nsp=-1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=53: vxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=53: vxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=53: vxxxxx#5 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=54: vxxxxx#5 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=54: vxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=54: vxxxxx#5 nsp=-1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=54: vxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=54: vxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=54: vxxxxx#5 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=55: sxxxxx#5 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=55: sxxxxx#5 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=55: sxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=55: sxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=55: sxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=55: sxxxxx#5 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=56: sxxxxx#5 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=56: sxxxxx#5 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=56: sxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=56: sxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=56: sxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=56: sxxxxx#5 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=57: oxxxxx#5 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=57: oxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=57: oxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=57: oxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=57: oxxxxx#5 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=57: oxxxxx#5 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=58: oxxxxx#5 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=58: oxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=58: oxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=58: oxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=58: oxxxxx#5 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=58: oxxxxx#5 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=59: opzxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=59: opzxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=59: opzxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=59: opzxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=59: opzxxx#5 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=59: opzxxx#5 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=60: ixxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=60: ixxxxx#6 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=60: ixxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=60: ixxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=60: ixxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=60: ixxxxx#6 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=61: ixxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=61: ixxxxx#6 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=61: ixxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=61: ixxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=61: ixxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=61: ixxxxx#6 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=62: imzxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=62: imzxxx#6 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=62: imzxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=62: imzxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=62: imzxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=62: imzxxx#6 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=63: vxxxxx#6 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=63: vxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=63: vxxxxx#6 nsp=-1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=63: vxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=63: vxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=63: vxxxxx#6 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=64: vxxxxx#6 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=64: vxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=64: vxxxxx#6 nsp=-1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=64: vxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=64: vxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=64: vxxxxx#6 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=65: sxxxxx#6 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=65: sxxxxx#6 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=65: sxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=65: sxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=65: sxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=65: sxxxxx#6 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=66: sxxxxx#6 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=66: sxxxxx#6 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=66: sxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=66: sxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=66: sxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=66: sxxxxx#6 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=67: oxxxxx#6 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=67: oxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=67: oxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=67: oxxxxx#6 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=67: oxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=67: oxxxxx#6 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=68: oxxxxx#6 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=68: oxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=68: oxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=68: oxxxxx#6 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=68: oxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=68: oxxxxx#6 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=69: omzxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=69: omzxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=69: omzxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=69: omzxxx#6 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=69: omzxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=69: omzxxx#6 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=70: ixxxxx#7 nsp=-1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=70: ixxxxx#7 nsp=-1 mass=0 + 1.341640786499874e+01, -1.788854381999831e+01, // itest=70: ixxxxx#7 nsp=-1 mass=0 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=70: ixxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=70: ixxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=70: ixxxxx#7 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=71: ixxxxx#7 nsp=-1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=71: ixxxxx#7 nsp=-1 mass=0 + 1.341640786499874e+01, -1.788854381999831e+01, // itest=71: ixxxxx#7 nsp=-1 mass=0 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=71: ixxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=71: ixxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=71: ixxxxx#7 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=72: ixzxxx#7 nsp=-1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=72: ixzxxx#7 nsp=-1 mass=0 + 1.341640786499874e+01, -1.788854381999832e+01, // itest=72: ixzxxx#7 nsp=-1 mass=0 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=72: ixzxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=72: ixzxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=72: ixzxxx#7 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=73: vxxxxx#7 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=73: vxxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=73: vxxxxx#7 nsp=-1 mass=0 + -0.000000000000000e+00, 5.656854249492381e-01, // itest=73: vxxxxx#7 nsp=-1 mass=0 + -0.000000000000000e+00, -4.242640687119285e-01, // itest=73: vxxxxx#7 nsp=-1 mass=0 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=73: vxxxxx#7 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=74: vxxxxx#7 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=74: vxxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=74: vxxxxx#7 nsp=-1 mass=0 + -0.000000000000000e+00, 5.656854249492381e-01, // itest=74: vxxxxx#7 nsp=-1 mass=0 + -0.000000000000000e+00, -4.242640687119285e-01, // itest=74: vxxxxx#7 nsp=-1 mass=0 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=74: vxxxxx#7 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=75: sxxxxx#7 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=75: sxxxxx#7 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=75: sxxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=75: sxxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=75: sxxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=75: sxxxxx#7 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=76: sxxxxx#7 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=76: sxxxxx#7 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=76: sxxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=76: sxxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=76: sxxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=76: sxxxxx#7 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=77: oxxxxx#7 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=77: oxxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=77: oxxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=77: oxxxxx#7 nsp=-1 mass=0 + 1.341640786499874e+01, 1.788854381999831e+01, // itest=77: oxxxxx#7 nsp=-1 mass=0 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=77: oxxxxx#7 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=78: oxxxxx#7 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=78: oxxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=78: oxxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=78: oxxxxx#7 nsp=-1 mass=0 + 1.341640786499874e+01, 1.788854381999831e+01, // itest=78: oxxxxx#7 nsp=-1 mass=0 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=78: oxxxxx#7 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=79: oxzxxx#7 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=79: oxzxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=79: oxzxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=79: oxzxxx#7 nsp=-1 mass=0 + 1.341640786499874e+01, 1.788854381999832e+01, // itest=79: oxzxxx#7 nsp=-1 mass=0 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=79: oxzxxx#7 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=80: ixxxxx#8 nsp=-1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=80: ixxxxx#8 nsp=-1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=80: ixxxxx#8 nsp=-1 mass=0 + -3.000000000000000e+01, 0.000000000000000e+00, // itest=80: ixxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=80: ixxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=80: ixxxxx#8 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=81: ixxxxx#8 nsp=-1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=81: ixxxxx#8 nsp=-1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=81: ixxxxx#8 nsp=-1 mass=0 + -3.000000000000000e+01, 0.000000000000000e+00, // itest=81: ixxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=81: ixxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=81: ixxxxx#8 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=82: ixzxxx#8 nsp=-1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=82: ixzxxx#8 nsp=-1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=82: ixzxxx#8 nsp=-1 mass=0 + -3.000000000000000e+01, 0.000000000000000e+00, // itest=82: ixzxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=82: ixzxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=82: ixzxxx#8 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=83: vxxxxx#8 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=83: vxxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=83: vxxxxx#8 nsp=-1 mass=0 + -3.394112549695428e-01, 5.656854249492381e-01, // itest=83: vxxxxx#8 nsp=-1 mass=0 + -4.525483399593904e-01, -4.242640687119285e-01, // itest=83: vxxxxx#8 nsp=-1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=83: vxxxxx#8 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=84: vxxxxx#8 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=84: vxxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=84: vxxxxx#8 nsp=-1 mass=0 + -3.394112549695428e-01, 5.656854249492381e-01, // itest=84: vxxxxx#8 nsp=-1 mass=0 + -4.525483399593904e-01, -4.242640687119285e-01, // itest=84: vxxxxx#8 nsp=-1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=84: vxxxxx#8 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=85: sxxxxx#8 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=85: sxxxxx#8 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=85: sxxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=85: sxxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=85: sxxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=85: sxxxxx#8 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=86: sxxxxx#8 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=86: sxxxxx#8 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=86: sxxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=86: sxxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=86: sxxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=86: sxxxxx#8 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=87: oxxxxx#8 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=87: oxxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=87: oxxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=87: oxxxxx#8 nsp=-1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00, // itest=87: oxxxxx#8 nsp=-1 mass=0 + -3.000000000000000e+01, 0.000000000000000e+00 } ); // itest=87: oxxxxx#8 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=88: oxxxxx#8 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=88: oxxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=88: oxxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=88: oxxxxx#8 nsp=-1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00, // itest=88: oxxxxx#8 nsp=-1 mass=0 + -3.000000000000000e+01, 0.000000000000000e+00 } ); // itest=88: oxxxxx#8 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=89: oxzxxx#8 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=89: oxzxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=89: oxzxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=89: oxzxxx#8 nsp=-1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00, // itest=89: oxzxxx#8 nsp=-1 mass=0 + -3.000000000000000e+01, 0.000000000000000e+00 } ); // itest=89: oxzxxx#8 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=90: ixxxxx#9 nsp=-1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=90: ixxxxx#9 nsp=-1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=90: ixxxxx#9 nsp=-1 mass=0 + -1.000000000000000e+01, 0.000000000000000e+00, // itest=90: ixxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=90: ixxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=90: ixxxxx#9 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=91: ixxxxx#9 nsp=-1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=91: ixxxxx#9 nsp=-1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=91: ixxxxx#9 nsp=-1 mass=0 + -1.000000000000000e+01, 0.000000000000000e+00, // itest=91: ixxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=91: ixxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=91: ixxxxx#9 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=92: ixzxxx#9 nsp=-1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=92: ixzxxx#9 nsp=-1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=92: ixzxxx#9 nsp=-1 mass=0 + -1.000000000000000e+01, 0.000000000000000e+00, // itest=92: ixzxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=92: ixzxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=92: ixzxxx#9 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=93: vxxxxx#9 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=93: vxxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=93: vxxxxx#9 nsp=-1 mass=0 + 3.394112549695428e-01, 5.656854249492381e-01, // itest=93: vxxxxx#9 nsp=-1 mass=0 + 4.525483399593904e-01, -4.242640687119285e-01, // itest=93: vxxxxx#9 nsp=-1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=93: vxxxxx#9 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=94: vxxxxx#9 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=94: vxxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=94: vxxxxx#9 nsp=-1 mass=0 + 3.394112549695428e-01, 5.656854249492381e-01, // itest=94: vxxxxx#9 nsp=-1 mass=0 + 4.525483399593904e-01, -4.242640687119285e-01, // itest=94: vxxxxx#9 nsp=-1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=94: vxxxxx#9 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=95: sxxxxx#9 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=95: sxxxxx#9 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=95: sxxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=95: sxxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=95: sxxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=95: sxxxxx#9 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=96: sxxxxx#9 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=96: sxxxxx#9 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=96: sxxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=96: sxxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=96: sxxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=96: sxxxxx#9 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=97: oxxxxx#9 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=97: oxxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=97: oxxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=97: oxxxxx#9 nsp=-1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01, // itest=97: oxxxxx#9 nsp=-1 mass=0 + -1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=97: oxxxxx#9 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=98: oxxxxx#9 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=98: oxxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=98: oxxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=98: oxxxxx#9 nsp=-1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01, // itest=98: oxxxxx#9 nsp=-1 mass=0 + -1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=98: oxxxxx#9 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=99: oxzxxx#9 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=99: oxzxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=99: oxzxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=99: oxzxxx#9 nsp=-1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01, // itest=99: oxzxxx#9 nsp=-1 mass=0 + -1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=99: oxzxxx#9 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=100: ixxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=100: ixxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=100: ixxxxx#10 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=100: ixxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=100: ixxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=100: ixxxxx#10 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=101: ixxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=101: ixxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=101: ixxxxx#10 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=101: ixxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=101: ixxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=101: ixxxxx#10 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=102: ipzxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=102: ipzxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=102: ipzxxx#10 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=102: ipzxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=102: ipzxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=102: ipzxxx#10 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=103: vxxxxx#10 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=103: vxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=103: vxxxxx#10 nsp=-1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=103: vxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=103: vxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=103: vxxxxx#10 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=104: vxxxxx#10 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=104: vxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=104: vxxxxx#10 nsp=-1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=104: vxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=104: vxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=104: vxxxxx#10 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=105: sxxxxx#10 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=105: sxxxxx#10 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=105: sxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=105: sxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=105: sxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=105: sxxxxx#10 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=106: sxxxxx#10 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=106: sxxxxx#10 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=106: sxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=106: sxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=106: sxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=106: sxxxxx#10 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=107: oxxxxx#10 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=107: oxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=107: oxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=107: oxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=107: oxxxxx#10 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=107: oxxxxx#10 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=108: oxxxxx#10 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=108: oxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=108: oxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=108: oxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=108: oxxxxx#10 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=108: oxxxxx#10 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=109: opzxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=109: opzxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=109: opzxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=109: opzxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=109: opzxxx#10 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=109: opzxxx#10 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=110: ixxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=110: ixxxxx#11 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=110: ixxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=110: ixxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=110: ixxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=110: ixxxxx#11 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=111: ixxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=111: ixxxxx#11 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=111: ixxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=111: ixxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=111: ixxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=111: ixxxxx#11 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=112: imzxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=112: imzxxx#11 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=112: imzxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=112: imzxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=112: imzxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=112: imzxxx#11 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=113: vxxxxx#11 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=113: vxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=113: vxxxxx#11 nsp=-1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=113: vxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=113: vxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=113: vxxxxx#11 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=114: vxxxxx#11 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=114: vxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=114: vxxxxx#11 nsp=-1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=114: vxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=114: vxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=114: vxxxxx#11 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=115: sxxxxx#11 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=115: sxxxxx#11 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=115: sxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=115: sxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=115: sxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=115: sxxxxx#11 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=116: sxxxxx#11 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=116: sxxxxx#11 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=116: sxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=116: sxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=116: sxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=116: sxxxxx#11 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=117: oxxxxx#11 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=117: oxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=117: oxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=117: oxxxxx#11 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=117: oxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=117: oxxxxx#11 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=118: oxxxxx#11 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=118: oxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=118: oxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=118: oxxxxx#11 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=118: oxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=118: oxxxxx#11 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=119: omzxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=119: omzxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=119: omzxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=119: omzxxx#11 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=119: omzxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=119: omzxxx#11 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=120: ixxxxx#12 nsp=-1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=120: ixxxxx#12 nsp=-1 mass=0 + 1.341640786499874e+01, -1.788854381999831e+01, // itest=120: ixxxxx#12 nsp=-1 mass=0 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=120: ixxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=120: ixxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=120: ixxxxx#12 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=121: ixxxxx#12 nsp=-1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=121: ixxxxx#12 nsp=-1 mass=0 + 1.341640786499874e+01, -1.788854381999831e+01, // itest=121: ixxxxx#12 nsp=-1 mass=0 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=121: ixxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=121: ixxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=121: ixxxxx#12 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=122: ixzxxx#12 nsp=-1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=122: ixzxxx#12 nsp=-1 mass=0 + 1.341640786499874e+01, -1.788854381999832e+01, // itest=122: ixzxxx#12 nsp=-1 mass=0 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=122: ixzxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=122: ixzxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=122: ixzxxx#12 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=123: vxxxxx#12 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=123: vxxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=123: vxxxxx#12 nsp=-1 mass=0 + -0.000000000000000e+00, 5.656854249492381e-01, // itest=123: vxxxxx#12 nsp=-1 mass=0 + -0.000000000000000e+00, -4.242640687119285e-01, // itest=123: vxxxxx#12 nsp=-1 mass=0 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=123: vxxxxx#12 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=124: vxxxxx#12 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=124: vxxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=124: vxxxxx#12 nsp=-1 mass=0 + -0.000000000000000e+00, 5.656854249492381e-01, // itest=124: vxxxxx#12 nsp=-1 mass=0 + -0.000000000000000e+00, -4.242640687119285e-01, // itest=124: vxxxxx#12 nsp=-1 mass=0 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=124: vxxxxx#12 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=125: sxxxxx#12 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=125: sxxxxx#12 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=125: sxxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=125: sxxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=125: sxxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=125: sxxxxx#12 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=126: sxxxxx#12 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=126: sxxxxx#12 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=126: sxxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=126: sxxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=126: sxxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=126: sxxxxx#12 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=127: oxxxxx#12 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=127: oxxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=127: oxxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=127: oxxxxx#12 nsp=-1 mass=0 + 1.341640786499874e+01, 1.788854381999831e+01, // itest=127: oxxxxx#12 nsp=-1 mass=0 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=127: oxxxxx#12 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=128: oxxxxx#12 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=128: oxxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=128: oxxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=128: oxxxxx#12 nsp=-1 mass=0 + 1.341640786499874e+01, 1.788854381999831e+01, // itest=128: oxxxxx#12 nsp=-1 mass=0 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=128: oxxxxx#12 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=129: oxzxxx#12 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=129: oxzxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=129: oxzxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=129: oxzxxx#12 nsp=-1 mass=0 + 1.341640786499874e+01, 1.788854381999832e+01, // itest=129: oxzxxx#12 nsp=-1 mass=0 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=129: oxzxxx#12 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=130: ixxxxx#13 nsp=-1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=130: ixxxxx#13 nsp=-1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=130: ixxxxx#13 nsp=-1 mass=0 + -3.000000000000000e+01, 0.000000000000000e+00, // itest=130: ixxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=130: ixxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=130: ixxxxx#13 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=131: ixxxxx#13 nsp=-1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=131: ixxxxx#13 nsp=-1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=131: ixxxxx#13 nsp=-1 mass=0 + -3.000000000000000e+01, 0.000000000000000e+00, // itest=131: ixxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=131: ixxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=131: ixxxxx#13 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=132: ixzxxx#13 nsp=-1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=132: ixzxxx#13 nsp=-1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=132: ixzxxx#13 nsp=-1 mass=0 + -3.000000000000000e+01, 0.000000000000000e+00, // itest=132: ixzxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=132: ixzxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=132: ixzxxx#13 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=133: vxxxxx#13 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=133: vxxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=133: vxxxxx#13 nsp=-1 mass=0 + -3.394112549695428e-01, 5.656854249492381e-01, // itest=133: vxxxxx#13 nsp=-1 mass=0 + -4.525483399593904e-01, -4.242640687119285e-01, // itest=133: vxxxxx#13 nsp=-1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=133: vxxxxx#13 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=134: vxxxxx#13 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=134: vxxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=134: vxxxxx#13 nsp=-1 mass=0 + -3.394112549695428e-01, 5.656854249492381e-01, // itest=134: vxxxxx#13 nsp=-1 mass=0 + -4.525483399593904e-01, -4.242640687119285e-01, // itest=134: vxxxxx#13 nsp=-1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=134: vxxxxx#13 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=135: sxxxxx#13 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=135: sxxxxx#13 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=135: sxxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=135: sxxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=135: sxxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=135: sxxxxx#13 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=136: sxxxxx#13 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=136: sxxxxx#13 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=136: sxxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=136: sxxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=136: sxxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=136: sxxxxx#13 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=137: oxxxxx#13 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=137: oxxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=137: oxxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=137: oxxxxx#13 nsp=-1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00, // itest=137: oxxxxx#13 nsp=-1 mass=0 + -3.000000000000000e+01, 0.000000000000000e+00 } ); // itest=137: oxxxxx#13 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=138: oxxxxx#13 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=138: oxxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=138: oxxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=138: oxxxxx#13 nsp=-1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00, // itest=138: oxxxxx#13 nsp=-1 mass=0 + -3.000000000000000e+01, 0.000000000000000e+00 } ); // itest=138: oxxxxx#13 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=139: oxzxxx#13 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=139: oxzxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=139: oxzxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=139: oxzxxx#13 nsp=-1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00, // itest=139: oxzxxx#13 nsp=-1 mass=0 + -3.000000000000000e+01, 0.000000000000000e+00 } ); // itest=139: oxzxxx#13 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=140: ixxxxx#14 nsp=-1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=140: ixxxxx#14 nsp=-1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=140: ixxxxx#14 nsp=-1 mass=0 + -1.000000000000000e+01, 0.000000000000000e+00, // itest=140: ixxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=140: ixxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=140: ixxxxx#14 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=141: ixxxxx#14 nsp=-1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=141: ixxxxx#14 nsp=-1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=141: ixxxxx#14 nsp=-1 mass=0 + -1.000000000000000e+01, 0.000000000000000e+00, // itest=141: ixxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=141: ixxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=141: ixxxxx#14 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=142: ixzxxx#14 nsp=-1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=142: ixzxxx#14 nsp=-1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=142: ixzxxx#14 nsp=-1 mass=0 + -1.000000000000000e+01, 0.000000000000000e+00, // itest=142: ixzxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=142: ixzxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=142: ixzxxx#14 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=143: vxxxxx#14 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=143: vxxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=143: vxxxxx#14 nsp=-1 mass=0 + 3.394112549695428e-01, 5.656854249492381e-01, // itest=143: vxxxxx#14 nsp=-1 mass=0 + 4.525483399593904e-01, -4.242640687119285e-01, // itest=143: vxxxxx#14 nsp=-1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=143: vxxxxx#14 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=144: vxxxxx#14 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=144: vxxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=144: vxxxxx#14 nsp=-1 mass=0 + 3.394112549695428e-01, 5.656854249492381e-01, // itest=144: vxxxxx#14 nsp=-1 mass=0 + 4.525483399593904e-01, -4.242640687119285e-01, // itest=144: vxxxxx#14 nsp=-1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=144: vxxxxx#14 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=145: sxxxxx#14 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=145: sxxxxx#14 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=145: sxxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=145: sxxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=145: sxxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=145: sxxxxx#14 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=146: sxxxxx#14 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=146: sxxxxx#14 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=146: sxxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=146: sxxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=146: sxxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=146: sxxxxx#14 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=147: oxxxxx#14 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=147: oxxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=147: oxxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=147: oxxxxx#14 nsp=-1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01, // itest=147: oxxxxx#14 nsp=-1 mass=0 + -1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=147: oxxxxx#14 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=148: oxxxxx#14 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=148: oxxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=148: oxxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=148: oxxxxx#14 nsp=-1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01, // itest=148: oxxxxx#14 nsp=-1 mass=0 + -1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=148: oxxxxx#14 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=149: oxzxxx#14 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=149: oxzxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=149: oxzxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=149: oxzxxx#14 nsp=-1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01, // itest=149: oxzxxx#14 nsp=-1 mass=0 + -1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=149: oxzxxx#14 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=150: ixxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=150: ixxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=150: ixxxxx#15 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=150: ixxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=150: ixxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=150: ixxxxx#15 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=151: ixxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=151: ixxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=151: ixxxxx#15 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=151: ixxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=151: ixxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=151: ixxxxx#15 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=152: ipzxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=152: ipzxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=152: ipzxxx#15 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=152: ipzxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=152: ipzxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=152: ipzxxx#15 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=153: vxxxxx#15 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=153: vxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=153: vxxxxx#15 nsp=-1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=153: vxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=153: vxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=153: vxxxxx#15 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=154: vxxxxx#15 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=154: vxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=154: vxxxxx#15 nsp=-1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=154: vxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=154: vxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=154: vxxxxx#15 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=155: sxxxxx#15 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=155: sxxxxx#15 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=155: sxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=155: sxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=155: sxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=155: sxxxxx#15 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=156: sxxxxx#15 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=156: sxxxxx#15 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=156: sxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=156: sxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=156: sxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=156: sxxxxx#15 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=157: oxxxxx#15 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=157: oxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=157: oxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=157: oxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=157: oxxxxx#15 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=157: oxxxxx#15 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=158: oxxxxx#15 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=158: oxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=158: oxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=158: oxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=158: oxxxxx#15 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=158: oxxxxx#15 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=159: opzxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=159: opzxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=159: opzxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=159: opzxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=159: opzxxx#15 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=159: opzxxx#15 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=160: ixxxxx#16 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=160: ixxxxx#16 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=160: ixxxxx#16 nsp=-1 mass=500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=160: ixxxxx#16 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=160: ixxxxx#16 nsp=-1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=160: ixxxxx#16 nsp=-1 mass=500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=161: ixxxxx#16 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=161: ixxxxx#16 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=161: ixxxxx#16 nsp=-1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=161: ixxxxx#16 nsp=-1 mass=-500 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=161: ixxxxx#16 nsp=-1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=161: ixxxxx#16 nsp=-1 mass=-500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=162: vxxxxx#16 nsp=-1 mass=500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=162: vxxxxx#16 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=162: vxxxxx#16 nsp=-1 mass=500 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=162: vxxxxx#16 nsp=-1 mass=500 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=162: vxxxxx#16 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=162: vxxxxx#16 nsp=-1 mass=500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=163: vxxxxx#16 nsp=-1 mass=-500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=163: vxxxxx#16 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=163: vxxxxx#16 nsp=-1 mass=-500 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=163: vxxxxx#16 nsp=-1 mass=-500 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=163: vxxxxx#16 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=163: vxxxxx#16 nsp=-1 mass=-500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=164: sxxxxx#16 nsp=-1 mass=500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=164: sxxxxx#16 nsp=-1 mass=500 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=164: sxxxxx#16 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=164: sxxxxx#16 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=164: sxxxxx#16 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=164: sxxxxx#16 nsp=-1 mass=500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=165: sxxxxx#16 nsp=-1 mass=-500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=165: sxxxxx#16 nsp=-1 mass=-500 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=165: sxxxxx#16 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=165: sxxxxx#16 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=165: sxxxxx#16 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=165: sxxxxx#16 nsp=-1 mass=-500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=166: oxxxxx#16 nsp=-1 mass=500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=166: oxxxxx#16 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=166: oxxxxx#16 nsp=-1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=166: oxxxxx#16 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=166: oxxxxx#16 nsp=-1 mass=500 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=166: oxxxxx#16 nsp=-1 mass=500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=167: oxxxxx#16 nsp=-1 mass=-500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=167: oxxxxx#16 nsp=-1 mass=-500 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=167: oxxxxx#16 nsp=-1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=167: oxxxxx#16 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=167: oxxxxx#16 nsp=-1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=167: oxxxxx#16 nsp=-1 mass=-500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=168: ixxxxx#17 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=168: ixxxxx#17 nsp=-1 mass=400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=168: ixxxxx#17 nsp=-1 mass=400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=168: ixxxxx#17 nsp=-1 mass=400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=168: ixxxxx#17 nsp=-1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00 } ); // itest=168: ixxxxx#17 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=169: ixxxxx#17 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=169: ixxxxx#17 nsp=-1 mass=-400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=169: ixxxxx#17 nsp=-1 mass=-400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=169: ixxxxx#17 nsp=-1 mass=-400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=169: ixxxxx#17 nsp=-1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00 } ); // itest=169: ixxxxx#17 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=170: vxxxxx#17 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=170: vxxxxx#17 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=170: vxxxxx#17 nsp=-1 mass=400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=170: vxxxxx#17 nsp=-1 mass=400 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=170: vxxxxx#17 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=170: vxxxxx#17 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=171: vxxxxx#17 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=171: vxxxxx#17 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=171: vxxxxx#17 nsp=-1 mass=-400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=171: vxxxxx#17 nsp=-1 mass=-400 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=171: vxxxxx#17 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=171: vxxxxx#17 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=172: sxxxxx#17 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=172: sxxxxx#17 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=172: sxxxxx#17 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=172: sxxxxx#17 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=172: sxxxxx#17 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=172: sxxxxx#17 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=173: sxxxxx#17 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=173: sxxxxx#17 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=173: sxxxxx#17 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=173: sxxxxx#17 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=173: sxxxxx#17 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=173: sxxxxx#17 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=174: oxxxxx#17 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=174: oxxxxx#17 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=174: oxxxxx#17 nsp=-1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=174: oxxxxx#17 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=174: oxxxxx#17 nsp=-1 mass=400 + -2.828427124746190e+01, -0.000000000000000e+00 } ); // itest=174: oxxxxx#17 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=175: oxxxxx#17 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=175: oxxxxx#17 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=175: oxxxxx#17 nsp=-1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=175: oxxxxx#17 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=175: oxxxxx#17 nsp=-1 mass=-400 + -2.828427124746190e+01, -0.000000000000000e+00 } ); // itest=175: oxxxxx#17 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=176: ixxxxx#18 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=176: ixxxxx#18 nsp=-1 mass=400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=176: ixxxxx#18 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=176: ixxxxx#18 nsp=-1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=176: ixxxxx#18 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=176: ixxxxx#18 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=177: ixxxxx#18 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=177: ixxxxx#18 nsp=-1 mass=-400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=177: ixxxxx#18 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=177: ixxxxx#18 nsp=-1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=177: ixxxxx#18 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=177: ixxxxx#18 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=178: vxxxxx#18 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=178: vxxxxx#18 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=178: vxxxxx#18 nsp=-1 mass=400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=178: vxxxxx#18 nsp=-1 mass=400 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=178: vxxxxx#18 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=178: vxxxxx#18 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=179: vxxxxx#18 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=179: vxxxxx#18 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=179: vxxxxx#18 nsp=-1 mass=-400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=179: vxxxxx#18 nsp=-1 mass=-400 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=179: vxxxxx#18 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=179: vxxxxx#18 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=180: sxxxxx#18 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=180: sxxxxx#18 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=180: sxxxxx#18 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=180: sxxxxx#18 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=180: sxxxxx#18 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=180: sxxxxx#18 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=181: sxxxxx#18 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=181: sxxxxx#18 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=181: sxxxxx#18 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=181: sxxxxx#18 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=181: sxxxxx#18 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=181: sxxxxx#18 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=182: oxxxxx#18 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=182: oxxxxx#18 nsp=-1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=182: oxxxxx#18 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=182: oxxxxx#18 nsp=-1 mass=400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=182: oxxxxx#18 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=182: oxxxxx#18 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=183: oxxxxx#18 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=183: oxxxxx#18 nsp=-1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=183: oxxxxx#18 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=183: oxxxxx#18 nsp=-1 mass=-400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=183: oxxxxx#18 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=183: oxxxxx#18 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=184: ixxxxx#19 nsp=-1 mass=400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=184: ixxxxx#19 nsp=-1 mass=400 + 1.200000000000000e+01, -1.600000000000000e+01, // itest=184: ixxxxx#19 nsp=-1 mass=400 + -2.000000000000000e+01, -0.000000000000000e+00, // itest=184: ixxxxx#19 nsp=-1 mass=400 + -5.999999999999999e+00, 7.999999999999999e+00, // itest=184: ixxxxx#19 nsp=-1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=184: ixxxxx#19 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=185: ixxxxx#19 nsp=-1 mass=-400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=185: ixxxxx#19 nsp=-1 mass=-400 + 1.200000000000000e+01, -1.600000000000000e+01, // itest=185: ixxxxx#19 nsp=-1 mass=-400 + -2.000000000000000e+01, -0.000000000000000e+00, // itest=185: ixxxxx#19 nsp=-1 mass=-400 + 5.999999999999999e+00, -7.999999999999999e+00, // itest=185: ixxxxx#19 nsp=-1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00 } ); // itest=185: ixxxxx#19 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=186: vxxxxx#19 nsp=-1 mass=400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=186: vxxxxx#19 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=186: vxxxxx#19 nsp=-1 mass=400 + 0.000000000000000e+00, 5.656854249492381e-01, // itest=186: vxxxxx#19 nsp=-1 mass=400 + 0.000000000000000e+00, -4.242640687119285e-01, // itest=186: vxxxxx#19 nsp=-1 mass=400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=186: vxxxxx#19 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=187: vxxxxx#19 nsp=-1 mass=-400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=187: vxxxxx#19 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=187: vxxxxx#19 nsp=-1 mass=-400 + -0.000000000000000e+00, 5.656854249492381e-01, // itest=187: vxxxxx#19 nsp=-1 mass=-400 + -0.000000000000000e+00, -4.242640687119285e-01, // itest=187: vxxxxx#19 nsp=-1 mass=-400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=187: vxxxxx#19 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=188: sxxxxx#19 nsp=-1 mass=400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=188: sxxxxx#19 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=188: sxxxxx#19 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=188: sxxxxx#19 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=188: sxxxxx#19 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=188: sxxxxx#19 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=189: sxxxxx#19 nsp=-1 mass=-400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=189: sxxxxx#19 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=189: sxxxxx#19 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=189: sxxxxx#19 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=189: sxxxxx#19 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=189: sxxxxx#19 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=190: oxxxxx#19 nsp=-1 mass=400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=190: oxxxxx#19 nsp=-1 mass=400 + -5.999999999999999e+00, -7.999999999999999e+00, // itest=190: oxxxxx#19 nsp=-1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=190: oxxxxx#19 nsp=-1 mass=400 + 1.200000000000000e+01, 1.600000000000000e+01, // itest=190: oxxxxx#19 nsp=-1 mass=400 + -2.000000000000000e+01, -0.000000000000000e+00 } ); // itest=190: oxxxxx#19 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=191: oxxxxx#19 nsp=-1 mass=-400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=191: oxxxxx#19 nsp=-1 mass=-400 + 5.999999999999999e+00, 7.999999999999999e+00, // itest=191: oxxxxx#19 nsp=-1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00, // itest=191: oxxxxx#19 nsp=-1 mass=-400 + 1.200000000000000e+01, 1.600000000000000e+01, // itest=191: oxxxxx#19 nsp=-1 mass=-400 + -2.000000000000000e+01, -0.000000000000000e+00 } ); // itest=191: oxxxxx#19 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=192: ixxxxx#20 nsp=-1 mass=400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=192: ixxxxx#20 nsp=-1 mass=400 + -1.600000000000000e+01, 1.200000000000000e+01, // itest=192: ixxxxx#20 nsp=-1 mass=400 + -2.000000000000000e+01, -0.000000000000000e+00, // itest=192: ixxxxx#20 nsp=-1 mass=400 + 7.999999999999999e+00, -5.999999999999999e+00, // itest=192: ixxxxx#20 nsp=-1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=192: ixxxxx#20 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=193: ixxxxx#20 nsp=-1 mass=-400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=193: ixxxxx#20 nsp=-1 mass=-400 + -1.600000000000000e+01, 1.200000000000000e+01, // itest=193: ixxxxx#20 nsp=-1 mass=-400 + -2.000000000000000e+01, -0.000000000000000e+00, // itest=193: ixxxxx#20 nsp=-1 mass=-400 + -7.999999999999999e+00, 5.999999999999999e+00, // itest=193: ixxxxx#20 nsp=-1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00 } ); // itest=193: ixxxxx#20 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=194: vxxxxx#20 nsp=-1 mass=400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=194: vxxxxx#20 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=194: vxxxxx#20 nsp=-1 mass=400 + 0.000000000000000e+00, -4.242640687119285e-01, // itest=194: vxxxxx#20 nsp=-1 mass=400 + 0.000000000000000e+00, 5.656854249492381e-01, // itest=194: vxxxxx#20 nsp=-1 mass=400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=194: vxxxxx#20 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=195: vxxxxx#20 nsp=-1 mass=-400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=195: vxxxxx#20 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=195: vxxxxx#20 nsp=-1 mass=-400 + 0.000000000000000e+00, -4.242640687119285e-01, // itest=195: vxxxxx#20 nsp=-1 mass=-400 + 0.000000000000000e+00, 5.656854249492381e-01, // itest=195: vxxxxx#20 nsp=-1 mass=-400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=195: vxxxxx#20 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=196: sxxxxx#20 nsp=-1 mass=400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=196: sxxxxx#20 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=196: sxxxxx#20 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=196: sxxxxx#20 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=196: sxxxxx#20 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=196: sxxxxx#20 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=197: sxxxxx#20 nsp=-1 mass=-400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=197: sxxxxx#20 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=197: sxxxxx#20 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=197: sxxxxx#20 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=197: sxxxxx#20 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=197: sxxxxx#20 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=198: oxxxxx#20 nsp=-1 mass=400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=198: oxxxxx#20 nsp=-1 mass=400 + 7.999999999999999e+00, 5.999999999999999e+00, // itest=198: oxxxxx#20 nsp=-1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=198: oxxxxx#20 nsp=-1 mass=400 + -1.600000000000000e+01, -1.200000000000000e+01, // itest=198: oxxxxx#20 nsp=-1 mass=400 + -2.000000000000000e+01, -0.000000000000000e+00 } ); // itest=198: oxxxxx#20 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=199: oxxxxx#20 nsp=-1 mass=-400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=199: oxxxxx#20 nsp=-1 mass=-400 + -7.999999999999999e+00, -5.999999999999999e+00, // itest=199: oxxxxx#20 nsp=-1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00, // itest=199: oxxxxx#20 nsp=-1 mass=-400 + -1.600000000000000e+01, -1.200000000000000e+01, // itest=199: oxxxxx#20 nsp=-1 mass=-400 + -2.000000000000000e+01, -0.000000000000000e+00 } ); // itest=199: oxxxxx#20 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=200: ixxxxx#21 nsp=-1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=200: ixxxxx#21 nsp=-1 mass=400 + 9.863939238321439e+00, -1.052153518754287e+01, // itest=200: ixxxxx#21 nsp=-1 mass=400 + -2.433105012119288e+01, -0.000000000000000e+00, // itest=200: ixxxxx#21 nsp=-1 mass=400 + -4.931969619160719e+00, 5.260767593771432e+00, // itest=200: ixxxxx#21 nsp=-1 mass=400 + 1.216552506059644e+01, 0.000000000000000e+00 } ); // itest=200: ixxxxx#21 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=201: ixxxxx#21 nsp=-1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=201: ixxxxx#21 nsp=-1 mass=-400 + 9.863939238321439e+00, -1.052153518754287e+01, // itest=201: ixxxxx#21 nsp=-1 mass=-400 + -2.433105012119288e+01, -0.000000000000000e+00, // itest=201: ixxxxx#21 nsp=-1 mass=-400 + 4.931969619160719e+00, -5.260767593771432e+00, // itest=201: ixxxxx#21 nsp=-1 mass=-400 + -1.216552506059644e+01, -0.000000000000000e+00 } ); // itest=201: ixxxxx#21 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=202: vxxxxx#21 nsp=-1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=202: vxxxxx#21 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=202: vxxxxx#21 nsp=-1 mass=400 + -2.321373168788980e-01, 5.158607041753289e-01, // itest=202: vxxxxx#21 nsp=-1 mass=400 + -2.476131380041579e-01, -4.836194101643708e-01, // itest=202: vxxxxx#21 nsp=-1 mass=400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=202: vxxxxx#21 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=203: vxxxxx#21 nsp=-1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=203: vxxxxx#21 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=203: vxxxxx#21 nsp=-1 mass=-400 + -2.321373168788980e-01, 5.158607041753289e-01, // itest=203: vxxxxx#21 nsp=-1 mass=-400 + -2.476131380041579e-01, -4.836194101643708e-01, // itest=203: vxxxxx#21 nsp=-1 mass=-400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=203: vxxxxx#21 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=204: sxxxxx#21 nsp=-1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=204: sxxxxx#21 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=204: sxxxxx#21 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=204: sxxxxx#21 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=204: sxxxxx#21 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=204: sxxxxx#21 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=205: sxxxxx#21 nsp=-1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=205: sxxxxx#21 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=205: sxxxxx#21 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=205: sxxxxx#21 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=205: sxxxxx#21 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=205: sxxxxx#21 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=206: oxxxxx#21 nsp=-1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=206: oxxxxx#21 nsp=-1 mass=400 + -4.931969619160719e+00, -5.260767593771432e+00, // itest=206: oxxxxx#21 nsp=-1 mass=400 + 1.216552506059644e+01, 0.000000000000000e+00, // itest=206: oxxxxx#21 nsp=-1 mass=400 + 9.863939238321439e+00, 1.052153518754287e+01, // itest=206: oxxxxx#21 nsp=-1 mass=400 + -2.433105012119288e+01, -0.000000000000000e+00 } ); // itest=206: oxxxxx#21 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=207: oxxxxx#21 nsp=-1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=207: oxxxxx#21 nsp=-1 mass=-400 + 4.931969619160719e+00, 5.260767593771432e+00, // itest=207: oxxxxx#21 nsp=-1 mass=-400 + -1.216552506059644e+01, -0.000000000000000e+00, // itest=207: oxxxxx#21 nsp=-1 mass=-400 + 9.863939238321439e+00, 1.052153518754287e+01, // itest=207: oxxxxx#21 nsp=-1 mass=-400 + -2.433105012119288e+01, -0.000000000000000e+00 } ); // itest=207: oxxxxx#21 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=208: ixxxxx#22 nsp=-1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=208: ixxxxx#22 nsp=-1 mass=400 + 1.664100588675688e+01, -1.775040627920733e+01, // itest=208: ixxxxx#22 nsp=-1 mass=400 + -1.442220510185596e+01, -0.000000000000000e+00, // itest=208: ixxxxx#22 nsp=-1 mass=400 + -8.320502943378436e+00, 8.875203139603666e+00, // itest=208: ixxxxx#22 nsp=-1 mass=400 + 7.211102550927978e+00, 0.000000000000000e+00 } ); // itest=208: ixxxxx#22 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=209: ixxxxx#22 nsp=-1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=209: ixxxxx#22 nsp=-1 mass=-400 + 1.664100588675688e+01, -1.775040627920733e+01, // itest=209: ixxxxx#22 nsp=-1 mass=-400 + -1.442220510185596e+01, -0.000000000000000e+00, // itest=209: ixxxxx#22 nsp=-1 mass=-400 + 8.320502943378436e+00, -8.875203139603666e+00, // itest=209: ixxxxx#22 nsp=-1 mass=-400 + -7.211102550927978e+00, -0.000000000000000e+00 } ); // itest=209: ixxxxx#22 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=210: vxxxxx#22 nsp=-1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=210: vxxxxx#22 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=210: vxxxxx#22 nsp=-1 mass=400 + 2.321373168788980e-01, 5.158607041753289e-01, // itest=210: vxxxxx#22 nsp=-1 mass=400 + 2.476131380041579e-01, -4.836194101643708e-01, // itest=210: vxxxxx#22 nsp=-1 mass=400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=210: vxxxxx#22 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=211: vxxxxx#22 nsp=-1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=211: vxxxxx#22 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=211: vxxxxx#22 nsp=-1 mass=-400 + 2.321373168788980e-01, 5.158607041753289e-01, // itest=211: vxxxxx#22 nsp=-1 mass=-400 + 2.476131380041579e-01, -4.836194101643708e-01, // itest=211: vxxxxx#22 nsp=-1 mass=-400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=211: vxxxxx#22 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=212: sxxxxx#22 nsp=-1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=212: sxxxxx#22 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=212: sxxxxx#22 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=212: sxxxxx#22 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=212: sxxxxx#22 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=212: sxxxxx#22 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=213: sxxxxx#22 nsp=-1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=213: sxxxxx#22 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=213: sxxxxx#22 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=213: sxxxxx#22 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=213: sxxxxx#22 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=213: sxxxxx#22 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=214: oxxxxx#22 nsp=-1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=214: oxxxxx#22 nsp=-1 mass=400 + -8.320502943378436e+00, -8.875203139603666e+00, // itest=214: oxxxxx#22 nsp=-1 mass=400 + 7.211102550927978e+00, 0.000000000000000e+00, // itest=214: oxxxxx#22 nsp=-1 mass=400 + 1.664100588675688e+01, 1.775040627920733e+01, // itest=214: oxxxxx#22 nsp=-1 mass=400 + -1.442220510185596e+01, -0.000000000000000e+00 } ); // itest=214: oxxxxx#22 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=215: oxxxxx#22 nsp=-1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=215: oxxxxx#22 nsp=-1 mass=-400 + 8.320502943378436e+00, 8.875203139603666e+00, // itest=215: oxxxxx#22 nsp=-1 mass=-400 + -7.211102550927978e+00, -0.000000000000000e+00, // itest=215: oxxxxx#22 nsp=-1 mass=-400 + 1.664100588675688e+01, 1.775040627920733e+01, // itest=215: oxxxxx#22 nsp=-1 mass=-400 + -1.442220510185596e+01, -0.000000000000000e+00 } ); // itest=215: oxxxxx#22 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=216: ixxxxx#23 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=216: ixxxxx#23 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=216: ixxxxx#23 nsp=-1 mass=500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=216: ixxxxx#23 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=216: ixxxxx#23 nsp=-1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=216: ixxxxx#23 nsp=-1 mass=500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=217: ixxxxx#23 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=217: ixxxxx#23 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=217: ixxxxx#23 nsp=-1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=217: ixxxxx#23 nsp=-1 mass=-500 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=217: ixxxxx#23 nsp=-1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=217: ixxxxx#23 nsp=-1 mass=-500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=218: vxxxxx#23 nsp=-1 mass=500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=218: vxxxxx#23 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=218: vxxxxx#23 nsp=-1 mass=500 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=218: vxxxxx#23 nsp=-1 mass=500 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=218: vxxxxx#23 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=218: vxxxxx#23 nsp=-1 mass=500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=219: vxxxxx#23 nsp=-1 mass=-500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=219: vxxxxx#23 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=219: vxxxxx#23 nsp=-1 mass=-500 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=219: vxxxxx#23 nsp=-1 mass=-500 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=219: vxxxxx#23 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=219: vxxxxx#23 nsp=-1 mass=-500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=220: sxxxxx#23 nsp=-1 mass=500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=220: sxxxxx#23 nsp=-1 mass=500 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=220: sxxxxx#23 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=220: sxxxxx#23 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=220: sxxxxx#23 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=220: sxxxxx#23 nsp=-1 mass=500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=221: sxxxxx#23 nsp=-1 mass=-500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=221: sxxxxx#23 nsp=-1 mass=-500 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=221: sxxxxx#23 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=221: sxxxxx#23 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=221: sxxxxx#23 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=221: sxxxxx#23 nsp=-1 mass=-500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=222: oxxxxx#23 nsp=-1 mass=500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=222: oxxxxx#23 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=222: oxxxxx#23 nsp=-1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=222: oxxxxx#23 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=222: oxxxxx#23 nsp=-1 mass=500 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=222: oxxxxx#23 nsp=-1 mass=500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=223: oxxxxx#23 nsp=-1 mass=-500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=223: oxxxxx#23 nsp=-1 mass=-500 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=223: oxxxxx#23 nsp=-1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=223: oxxxxx#23 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=223: oxxxxx#23 nsp=-1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=223: oxxxxx#23 nsp=-1 mass=-500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=224: ixxxxx#24 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=224: ixxxxx#24 nsp=-1 mass=400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=224: ixxxxx#24 nsp=-1 mass=400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=224: ixxxxx#24 nsp=-1 mass=400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=224: ixxxxx#24 nsp=-1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00 } ); // itest=224: ixxxxx#24 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=225: ixxxxx#24 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=225: ixxxxx#24 nsp=-1 mass=-400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=225: ixxxxx#24 nsp=-1 mass=-400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=225: ixxxxx#24 nsp=-1 mass=-400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=225: ixxxxx#24 nsp=-1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00 } ); // itest=225: ixxxxx#24 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=226: vxxxxx#24 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=226: vxxxxx#24 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=226: vxxxxx#24 nsp=-1 mass=400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=226: vxxxxx#24 nsp=-1 mass=400 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=226: vxxxxx#24 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=226: vxxxxx#24 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=227: vxxxxx#24 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=227: vxxxxx#24 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=227: vxxxxx#24 nsp=-1 mass=-400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=227: vxxxxx#24 nsp=-1 mass=-400 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=227: vxxxxx#24 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=227: vxxxxx#24 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=228: sxxxxx#24 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=228: sxxxxx#24 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=228: sxxxxx#24 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=228: sxxxxx#24 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=228: sxxxxx#24 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=228: sxxxxx#24 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=229: sxxxxx#24 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=229: sxxxxx#24 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=229: sxxxxx#24 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=229: sxxxxx#24 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=229: sxxxxx#24 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=229: sxxxxx#24 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=230: oxxxxx#24 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=230: oxxxxx#24 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=230: oxxxxx#24 nsp=-1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=230: oxxxxx#24 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=230: oxxxxx#24 nsp=-1 mass=400 + -2.828427124746190e+01, -0.000000000000000e+00 } ); // itest=230: oxxxxx#24 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=231: oxxxxx#24 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=231: oxxxxx#24 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=231: oxxxxx#24 nsp=-1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=231: oxxxxx#24 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=231: oxxxxx#24 nsp=-1 mass=-400 + -2.828427124746190e+01, -0.000000000000000e+00 } ); // itest=231: oxxxxx#24 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=232: ixxxxx#25 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=232: ixxxxx#25 nsp=-1 mass=400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=232: ixxxxx#25 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=232: ixxxxx#25 nsp=-1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=232: ixxxxx#25 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=232: ixxxxx#25 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=233: ixxxxx#25 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=233: ixxxxx#25 nsp=-1 mass=-400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=233: ixxxxx#25 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=233: ixxxxx#25 nsp=-1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=233: ixxxxx#25 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=233: ixxxxx#25 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=234: vxxxxx#25 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=234: vxxxxx#25 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=234: vxxxxx#25 nsp=-1 mass=400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=234: vxxxxx#25 nsp=-1 mass=400 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=234: vxxxxx#25 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=234: vxxxxx#25 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=235: vxxxxx#25 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=235: vxxxxx#25 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=235: vxxxxx#25 nsp=-1 mass=-400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=235: vxxxxx#25 nsp=-1 mass=-400 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=235: vxxxxx#25 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=235: vxxxxx#25 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=236: sxxxxx#25 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=236: sxxxxx#25 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=236: sxxxxx#25 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=236: sxxxxx#25 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=236: sxxxxx#25 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=236: sxxxxx#25 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=237: sxxxxx#25 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=237: sxxxxx#25 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=237: sxxxxx#25 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=237: sxxxxx#25 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=237: sxxxxx#25 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=237: sxxxxx#25 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=238: oxxxxx#25 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=238: oxxxxx#25 nsp=-1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=238: oxxxxx#25 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=238: oxxxxx#25 nsp=-1 mass=400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=238: oxxxxx#25 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=238: oxxxxx#25 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=239: oxxxxx#25 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=239: oxxxxx#25 nsp=-1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=239: oxxxxx#25 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=239: oxxxxx#25 nsp=-1 mass=-400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=239: oxxxxx#25 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=239: oxxxxx#25 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=240: ixxxxx#26 nsp=-1 mass=400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=240: ixxxxx#26 nsp=-1 mass=400 + 1.200000000000000e+01, -1.600000000000000e+01, // itest=240: ixxxxx#26 nsp=-1 mass=400 + -2.000000000000000e+01, -0.000000000000000e+00, // itest=240: ixxxxx#26 nsp=-1 mass=400 + -5.999999999999999e+00, 7.999999999999999e+00, // itest=240: ixxxxx#26 nsp=-1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=240: ixxxxx#26 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=241: ixxxxx#26 nsp=-1 mass=-400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=241: ixxxxx#26 nsp=-1 mass=-400 + 1.200000000000000e+01, -1.600000000000000e+01, // itest=241: ixxxxx#26 nsp=-1 mass=-400 + -2.000000000000000e+01, -0.000000000000000e+00, // itest=241: ixxxxx#26 nsp=-1 mass=-400 + 5.999999999999999e+00, -7.999999999999999e+00, // itest=241: ixxxxx#26 nsp=-1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00 } ); // itest=241: ixxxxx#26 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=242: vxxxxx#26 nsp=-1 mass=400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=242: vxxxxx#26 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=242: vxxxxx#26 nsp=-1 mass=400 + 0.000000000000000e+00, 5.656854249492381e-01, // itest=242: vxxxxx#26 nsp=-1 mass=400 + 0.000000000000000e+00, -4.242640687119285e-01, // itest=242: vxxxxx#26 nsp=-1 mass=400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=242: vxxxxx#26 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=243: vxxxxx#26 nsp=-1 mass=-400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=243: vxxxxx#26 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=243: vxxxxx#26 nsp=-1 mass=-400 + -0.000000000000000e+00, 5.656854249492381e-01, // itest=243: vxxxxx#26 nsp=-1 mass=-400 + -0.000000000000000e+00, -4.242640687119285e-01, // itest=243: vxxxxx#26 nsp=-1 mass=-400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=243: vxxxxx#26 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=244: sxxxxx#26 nsp=-1 mass=400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=244: sxxxxx#26 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=244: sxxxxx#26 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=244: sxxxxx#26 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=244: sxxxxx#26 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=244: sxxxxx#26 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=245: sxxxxx#26 nsp=-1 mass=-400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=245: sxxxxx#26 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=245: sxxxxx#26 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=245: sxxxxx#26 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=245: sxxxxx#26 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=245: sxxxxx#26 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=246: oxxxxx#26 nsp=-1 mass=400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=246: oxxxxx#26 nsp=-1 mass=400 + -5.999999999999999e+00, -7.999999999999999e+00, // itest=246: oxxxxx#26 nsp=-1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=246: oxxxxx#26 nsp=-1 mass=400 + 1.200000000000000e+01, 1.600000000000000e+01, // itest=246: oxxxxx#26 nsp=-1 mass=400 + -2.000000000000000e+01, -0.000000000000000e+00 } ); // itest=246: oxxxxx#26 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=247: oxxxxx#26 nsp=-1 mass=-400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=247: oxxxxx#26 nsp=-1 mass=-400 + 5.999999999999999e+00, 7.999999999999999e+00, // itest=247: oxxxxx#26 nsp=-1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00, // itest=247: oxxxxx#26 nsp=-1 mass=-400 + 1.200000000000000e+01, 1.600000000000000e+01, // itest=247: oxxxxx#26 nsp=-1 mass=-400 + -2.000000000000000e+01, -0.000000000000000e+00 } ); // itest=247: oxxxxx#26 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=248: ixxxxx#27 nsp=-1 mass=400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=248: ixxxxx#27 nsp=-1 mass=400 + -1.600000000000000e+01, 1.200000000000000e+01, // itest=248: ixxxxx#27 nsp=-1 mass=400 + -2.000000000000000e+01, -0.000000000000000e+00, // itest=248: ixxxxx#27 nsp=-1 mass=400 + 7.999999999999999e+00, -5.999999999999999e+00, // itest=248: ixxxxx#27 nsp=-1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=248: ixxxxx#27 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=249: ixxxxx#27 nsp=-1 mass=-400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=249: ixxxxx#27 nsp=-1 mass=-400 + -1.600000000000000e+01, 1.200000000000000e+01, // itest=249: ixxxxx#27 nsp=-1 mass=-400 + -2.000000000000000e+01, -0.000000000000000e+00, // itest=249: ixxxxx#27 nsp=-1 mass=-400 + -7.999999999999999e+00, 5.999999999999999e+00, // itest=249: ixxxxx#27 nsp=-1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00 } ); // itest=249: ixxxxx#27 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=250: vxxxxx#27 nsp=-1 mass=400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=250: vxxxxx#27 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=250: vxxxxx#27 nsp=-1 mass=400 + 0.000000000000000e+00, -4.242640687119285e-01, // itest=250: vxxxxx#27 nsp=-1 mass=400 + 0.000000000000000e+00, 5.656854249492381e-01, // itest=250: vxxxxx#27 nsp=-1 mass=400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=250: vxxxxx#27 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=251: vxxxxx#27 nsp=-1 mass=-400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=251: vxxxxx#27 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=251: vxxxxx#27 nsp=-1 mass=-400 + 0.000000000000000e+00, -4.242640687119285e-01, // itest=251: vxxxxx#27 nsp=-1 mass=-400 + 0.000000000000000e+00, 5.656854249492381e-01, // itest=251: vxxxxx#27 nsp=-1 mass=-400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=251: vxxxxx#27 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=252: sxxxxx#27 nsp=-1 mass=400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=252: sxxxxx#27 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=252: sxxxxx#27 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=252: sxxxxx#27 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=252: sxxxxx#27 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=252: sxxxxx#27 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=253: sxxxxx#27 nsp=-1 mass=-400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=253: sxxxxx#27 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=253: sxxxxx#27 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=253: sxxxxx#27 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=253: sxxxxx#27 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=253: sxxxxx#27 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=254: oxxxxx#27 nsp=-1 mass=400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=254: oxxxxx#27 nsp=-1 mass=400 + 7.999999999999999e+00, 5.999999999999999e+00, // itest=254: oxxxxx#27 nsp=-1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=254: oxxxxx#27 nsp=-1 mass=400 + -1.600000000000000e+01, -1.200000000000000e+01, // itest=254: oxxxxx#27 nsp=-1 mass=400 + -2.000000000000000e+01, -0.000000000000000e+00 } ); // itest=254: oxxxxx#27 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=255: oxxxxx#27 nsp=-1 mass=-400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=255: oxxxxx#27 nsp=-1 mass=-400 + -7.999999999999999e+00, -5.999999999999999e+00, // itest=255: oxxxxx#27 nsp=-1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00, // itest=255: oxxxxx#27 nsp=-1 mass=-400 + -1.600000000000000e+01, -1.200000000000000e+01, // itest=255: oxxxxx#27 nsp=-1 mass=-400 + -2.000000000000000e+01, -0.000000000000000e+00 } ); // itest=255: oxxxxx#27 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=256: ixxxxx#28 nsp=-1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=256: ixxxxx#28 nsp=-1 mass=400 + 9.863939238321439e+00, -1.052153518754287e+01, // itest=256: ixxxxx#28 nsp=-1 mass=400 + -2.433105012119288e+01, -0.000000000000000e+00, // itest=256: ixxxxx#28 nsp=-1 mass=400 + -4.931969619160719e+00, 5.260767593771432e+00, // itest=256: ixxxxx#28 nsp=-1 mass=400 + 1.216552506059644e+01, 0.000000000000000e+00 } ); // itest=256: ixxxxx#28 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=257: ixxxxx#28 nsp=-1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=257: ixxxxx#28 nsp=-1 mass=-400 + 9.863939238321439e+00, -1.052153518754287e+01, // itest=257: ixxxxx#28 nsp=-1 mass=-400 + -2.433105012119288e+01, -0.000000000000000e+00, // itest=257: ixxxxx#28 nsp=-1 mass=-400 + 4.931969619160719e+00, -5.260767593771432e+00, // itest=257: ixxxxx#28 nsp=-1 mass=-400 + -1.216552506059644e+01, -0.000000000000000e+00 } ); // itest=257: ixxxxx#28 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=258: vxxxxx#28 nsp=-1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=258: vxxxxx#28 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=258: vxxxxx#28 nsp=-1 mass=400 + -2.321373168788980e-01, 5.158607041753289e-01, // itest=258: vxxxxx#28 nsp=-1 mass=400 + -2.476131380041579e-01, -4.836194101643708e-01, // itest=258: vxxxxx#28 nsp=-1 mass=400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=258: vxxxxx#28 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=259: vxxxxx#28 nsp=-1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=259: vxxxxx#28 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=259: vxxxxx#28 nsp=-1 mass=-400 + -2.321373168788980e-01, 5.158607041753289e-01, // itest=259: vxxxxx#28 nsp=-1 mass=-400 + -2.476131380041579e-01, -4.836194101643708e-01, // itest=259: vxxxxx#28 nsp=-1 mass=-400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=259: vxxxxx#28 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=260: sxxxxx#28 nsp=-1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=260: sxxxxx#28 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=260: sxxxxx#28 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=260: sxxxxx#28 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=260: sxxxxx#28 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=260: sxxxxx#28 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=261: sxxxxx#28 nsp=-1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=261: sxxxxx#28 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=261: sxxxxx#28 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=261: sxxxxx#28 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=261: sxxxxx#28 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=261: sxxxxx#28 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=262: oxxxxx#28 nsp=-1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=262: oxxxxx#28 nsp=-1 mass=400 + -4.931969619160719e+00, -5.260767593771432e+00, // itest=262: oxxxxx#28 nsp=-1 mass=400 + 1.216552506059644e+01, 0.000000000000000e+00, // itest=262: oxxxxx#28 nsp=-1 mass=400 + 9.863939238321439e+00, 1.052153518754287e+01, // itest=262: oxxxxx#28 nsp=-1 mass=400 + -2.433105012119288e+01, -0.000000000000000e+00 } ); // itest=262: oxxxxx#28 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=263: oxxxxx#28 nsp=-1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=263: oxxxxx#28 nsp=-1 mass=-400 + 4.931969619160719e+00, 5.260767593771432e+00, // itest=263: oxxxxx#28 nsp=-1 mass=-400 + -1.216552506059644e+01, -0.000000000000000e+00, // itest=263: oxxxxx#28 nsp=-1 mass=-400 + 9.863939238321439e+00, 1.052153518754287e+01, // itest=263: oxxxxx#28 nsp=-1 mass=-400 + -2.433105012119288e+01, -0.000000000000000e+00 } ); // itest=263: oxxxxx#28 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=264: ixxxxx#29 nsp=-1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=264: ixxxxx#29 nsp=-1 mass=400 + 1.664100588675688e+01, -1.775040627920733e+01, // itest=264: ixxxxx#29 nsp=-1 mass=400 + -1.442220510185596e+01, -0.000000000000000e+00, // itest=264: ixxxxx#29 nsp=-1 mass=400 + -8.320502943378436e+00, 8.875203139603666e+00, // itest=264: ixxxxx#29 nsp=-1 mass=400 + 7.211102550927978e+00, 0.000000000000000e+00 } ); // itest=264: ixxxxx#29 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=265: ixxxxx#29 nsp=-1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=265: ixxxxx#29 nsp=-1 mass=-400 + 1.664100588675688e+01, -1.775040627920733e+01, // itest=265: ixxxxx#29 nsp=-1 mass=-400 + -1.442220510185596e+01, -0.000000000000000e+00, // itest=265: ixxxxx#29 nsp=-1 mass=-400 + 8.320502943378436e+00, -8.875203139603666e+00, // itest=265: ixxxxx#29 nsp=-1 mass=-400 + -7.211102550927978e+00, -0.000000000000000e+00 } ); // itest=265: ixxxxx#29 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=266: vxxxxx#29 nsp=-1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=266: vxxxxx#29 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=266: vxxxxx#29 nsp=-1 mass=400 + 2.321373168788980e-01, 5.158607041753289e-01, // itest=266: vxxxxx#29 nsp=-1 mass=400 + 2.476131380041579e-01, -4.836194101643708e-01, // itest=266: vxxxxx#29 nsp=-1 mass=400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=266: vxxxxx#29 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=267: vxxxxx#29 nsp=-1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=267: vxxxxx#29 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=267: vxxxxx#29 nsp=-1 mass=-400 + 2.321373168788980e-01, 5.158607041753289e-01, // itest=267: vxxxxx#29 nsp=-1 mass=-400 + 2.476131380041579e-01, -4.836194101643708e-01, // itest=267: vxxxxx#29 nsp=-1 mass=-400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=267: vxxxxx#29 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=268: sxxxxx#29 nsp=-1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=268: sxxxxx#29 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=268: sxxxxx#29 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=268: sxxxxx#29 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=268: sxxxxx#29 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=268: sxxxxx#29 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=269: sxxxxx#29 nsp=-1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=269: sxxxxx#29 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=269: sxxxxx#29 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=269: sxxxxx#29 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=269: sxxxxx#29 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=269: sxxxxx#29 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=270: oxxxxx#29 nsp=-1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=270: oxxxxx#29 nsp=-1 mass=400 + -8.320502943378436e+00, -8.875203139603666e+00, // itest=270: oxxxxx#29 nsp=-1 mass=400 + 7.211102550927978e+00, 0.000000000000000e+00, // itest=270: oxxxxx#29 nsp=-1 mass=400 + 1.664100588675688e+01, 1.775040627920733e+01, // itest=270: oxxxxx#29 nsp=-1 mass=400 + -1.442220510185596e+01, -0.000000000000000e+00 } ); // itest=270: oxxxxx#29 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=271: oxxxxx#29 nsp=-1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=271: oxxxxx#29 nsp=-1 mass=-400 + 8.320502943378436e+00, 8.875203139603666e+00, // itest=271: oxxxxx#29 nsp=-1 mass=-400 + -7.211102550927978e+00, -0.000000000000000e+00, // itest=271: oxxxxx#29 nsp=-1 mass=-400 + 1.664100588675688e+01, 1.775040627920733e+01, // itest=271: oxxxxx#29 nsp=-1 mass=-400 + -1.442220510185596e+01, -0.000000000000000e+00 } ); // itest=271: oxxxxx#29 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=272: ixxxxx#30 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=272: ixxxxx#30 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=272: ixxxxx#30 nsp=-1 mass=500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=272: ixxxxx#30 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=272: ixxxxx#30 nsp=-1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=272: ixxxxx#30 nsp=-1 mass=500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=273: ixxxxx#30 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=273: ixxxxx#30 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=273: ixxxxx#30 nsp=-1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=273: ixxxxx#30 nsp=-1 mass=-500 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=273: ixxxxx#30 nsp=-1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=273: ixxxxx#30 nsp=-1 mass=-500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=274: vxxxxx#30 nsp=-1 mass=500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=274: vxxxxx#30 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=274: vxxxxx#30 nsp=-1 mass=500 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=274: vxxxxx#30 nsp=-1 mass=500 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=274: vxxxxx#30 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=274: vxxxxx#30 nsp=-1 mass=500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=275: vxxxxx#30 nsp=-1 mass=-500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=275: vxxxxx#30 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=275: vxxxxx#30 nsp=-1 mass=-500 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=275: vxxxxx#30 nsp=-1 mass=-500 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=275: vxxxxx#30 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=275: vxxxxx#30 nsp=-1 mass=-500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=276: sxxxxx#30 nsp=-1 mass=500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=276: sxxxxx#30 nsp=-1 mass=500 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=276: sxxxxx#30 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=276: sxxxxx#30 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=276: sxxxxx#30 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=276: sxxxxx#30 nsp=-1 mass=500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=277: sxxxxx#30 nsp=-1 mass=-500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=277: sxxxxx#30 nsp=-1 mass=-500 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=277: sxxxxx#30 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=277: sxxxxx#30 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=277: sxxxxx#30 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=277: sxxxxx#30 nsp=-1 mass=-500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=278: oxxxxx#30 nsp=-1 mass=500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=278: oxxxxx#30 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=278: oxxxxx#30 nsp=-1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=278: oxxxxx#30 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=278: oxxxxx#30 nsp=-1 mass=500 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=278: oxxxxx#30 nsp=-1 mass=500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=279: oxxxxx#30 nsp=-1 mass=-500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=279: oxxxxx#30 nsp=-1 mass=-500 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=279: oxxxxx#30 nsp=-1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=279: oxxxxx#30 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=279: oxxxxx#30 nsp=-1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=279: oxxxxx#30 nsp=-1 mass=-500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=280: ixxxxx#31 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=280: ixxxxx#31 nsp=-1 mass=400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=280: ixxxxx#31 nsp=-1 mass=400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=280: ixxxxx#31 nsp=-1 mass=400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=280: ixxxxx#31 nsp=-1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00 } ); // itest=280: ixxxxx#31 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=281: ixxxxx#31 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=281: ixxxxx#31 nsp=-1 mass=-400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=281: ixxxxx#31 nsp=-1 mass=-400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=281: ixxxxx#31 nsp=-1 mass=-400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=281: ixxxxx#31 nsp=-1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00 } ); // itest=281: ixxxxx#31 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=282: vxxxxx#31 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=282: vxxxxx#31 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=282: vxxxxx#31 nsp=-1 mass=400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=282: vxxxxx#31 nsp=-1 mass=400 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=282: vxxxxx#31 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=282: vxxxxx#31 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=283: vxxxxx#31 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=283: vxxxxx#31 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=283: vxxxxx#31 nsp=-1 mass=-400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=283: vxxxxx#31 nsp=-1 mass=-400 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=283: vxxxxx#31 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=283: vxxxxx#31 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=284: sxxxxx#31 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=284: sxxxxx#31 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=284: sxxxxx#31 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=284: sxxxxx#31 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=284: sxxxxx#31 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=284: sxxxxx#31 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=285: sxxxxx#31 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=285: sxxxxx#31 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=285: sxxxxx#31 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=285: sxxxxx#31 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=285: sxxxxx#31 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=285: sxxxxx#31 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=286: oxxxxx#31 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=286: oxxxxx#31 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=286: oxxxxx#31 nsp=-1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=286: oxxxxx#31 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=286: oxxxxx#31 nsp=-1 mass=400 + -2.828427124746190e+01, -0.000000000000000e+00 } ); // itest=286: oxxxxx#31 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=287: oxxxxx#31 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=287: oxxxxx#31 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=287: oxxxxx#31 nsp=-1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=287: oxxxxx#31 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=287: oxxxxx#31 nsp=-1 mass=-400 + -2.828427124746190e+01, -0.000000000000000e+00 } ); // itest=287: oxxxxx#31 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=288: ixxxxx#0 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=288: ixxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=288: ixxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=288: ixxxxx#0 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=288: ixxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=288: ixxxxx#0 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=289: ixxxxx#0 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=289: ixxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=289: ixxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=289: ixxxxx#0 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=289: ixxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=289: ixxxxx#0 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=290: ipzxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=290: ipzxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=290: ipzxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=290: ipzxxx#0 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=290: ipzxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=290: ipzxxx#0 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=291: vxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=291: vxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=291: vxxxxx#0 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=291: vxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=291: vxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=291: vxxxxx#0 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=292: vxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=292: vxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=292: vxxxxx#0 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=292: vxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=292: vxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=292: vxxxxx#0 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=293: sxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=293: sxxxxx#0 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=293: sxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=293: sxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=293: sxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=293: sxxxxx#0 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=294: sxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=294: sxxxxx#0 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=294: sxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=294: sxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=294: sxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=294: sxxxxx#0 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=295: oxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=295: oxxxxx#0 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=295: oxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=295: oxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=295: oxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=295: oxxxxx#0 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=296: oxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=296: oxxxxx#0 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=296: oxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=296: oxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=296: oxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=296: oxxxxx#0 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=297: opzxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=297: opzxxx#0 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=297: opzxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=297: opzxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=297: opzxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=297: opzxxx#0 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=298: ixxxxx#1 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=298: ixxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=298: ixxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=298: ixxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=298: ixxxxx#1 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=298: ixxxxx#1 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=299: ixxxxx#1 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=299: ixxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=299: ixxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=299: ixxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=299: ixxxxx#1 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=299: ixxxxx#1 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=300: imzxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=300: imzxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=300: imzxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=300: imzxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=300: imzxxx#1 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=300: imzxxx#1 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=301: vxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=301: vxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=301: vxxxxx#1 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=301: vxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=301: vxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=301: vxxxxx#1 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=302: vxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=302: vxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=302: vxxxxx#1 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=302: vxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=302: vxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=302: vxxxxx#1 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=303: sxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=303: sxxxxx#1 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=303: sxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=303: sxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=303: sxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=303: sxxxxx#1 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=304: sxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=304: sxxxxx#1 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=304: sxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=304: sxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=304: sxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=304: sxxxxx#1 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=305: oxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=305: oxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=305: oxxxxx#1 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=305: oxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=305: oxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=305: oxxxxx#1 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=306: oxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=306: oxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=306: oxxxxx#1 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=306: oxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=306: oxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=306: oxxxxx#1 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=307: omzxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=307: omzxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=307: omzxxx#1 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=307: omzxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=307: omzxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=307: omzxxx#1 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=308: ixxxxx#2 nsp=1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=308: ixxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=308: ixxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=308: ixxxxx#2 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=308: ixxxxx#2 nsp=1 mass=0 + 1.341640786499874e+01, 1.788854381999831e+01 } ); // itest=308: ixxxxx#2 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=309: ixxxxx#2 nsp=1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=309: ixxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=309: ixxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=309: ixxxxx#2 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=309: ixxxxx#2 nsp=1 mass=0 + 1.341640786499874e+01, 1.788854381999831e+01 } ); // itest=309: ixxxxx#2 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=310: ixzxxx#2 nsp=1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=310: ixzxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=310: ixzxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=310: ixzxxx#2 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=310: ixzxxx#2 nsp=1 mass=0 + 1.341640786499874e+01, 1.788854381999832e+01 } ); // itest=310: ixzxxx#2 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=311: vxxxxx#2 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=311: vxxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=311: vxxxxx#2 nsp=1 mass=0 + -0.000000000000000e+00, -5.656854249492381e-01, // itest=311: vxxxxx#2 nsp=1 mass=0 + -0.000000000000000e+00, 4.242640687119285e-01, // itest=311: vxxxxx#2 nsp=1 mass=0 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=311: vxxxxx#2 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=312: vxxxxx#2 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=312: vxxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=312: vxxxxx#2 nsp=1 mass=0 + -0.000000000000000e+00, -5.656854249492381e-01, // itest=312: vxxxxx#2 nsp=1 mass=0 + -0.000000000000000e+00, 4.242640687119285e-01, // itest=312: vxxxxx#2 nsp=1 mass=0 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=312: vxxxxx#2 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=313: sxxxxx#2 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=313: sxxxxx#2 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=313: sxxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=313: sxxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=313: sxxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=313: sxxxxx#2 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=314: sxxxxx#2 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=314: sxxxxx#2 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=314: sxxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=314: sxxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=314: sxxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=314: sxxxxx#2 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=315: oxxxxx#2 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=315: oxxxxx#2 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=315: oxxxxx#2 nsp=1 mass=0 + 1.341640786499874e+01, -1.788854381999831e+01, // itest=315: oxxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=315: oxxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=315: oxxxxx#2 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=316: oxxxxx#2 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=316: oxxxxx#2 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=316: oxxxxx#2 nsp=1 mass=0 + 1.341640786499874e+01, -1.788854381999831e+01, // itest=316: oxxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=316: oxxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=316: oxxxxx#2 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=317: oxzxxx#2 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=317: oxzxxx#2 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=317: oxzxxx#2 nsp=1 mass=0 + 1.341640786499874e+01, -1.788854381999832e+01, // itest=317: oxzxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=317: oxzxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=317: oxzxxx#2 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=318: ixxxxx#3 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=318: ixxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=318: ixxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=318: ixxxxx#3 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=318: ixxxxx#3 nsp=1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=318: ixxxxx#3 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=319: ixxxxx#3 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=319: ixxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=319: ixxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=319: ixxxxx#3 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=319: ixxxxx#3 nsp=1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=319: ixxxxx#3 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=320: ixzxxx#3 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=320: ixzxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=320: ixzxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=320: ixzxxx#3 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=320: ixzxxx#3 nsp=1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=320: ixzxxx#3 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=321: vxxxxx#3 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=321: vxxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=321: vxxxxx#3 nsp=1 mass=0 + -3.394112549695428e-01, -5.656854249492381e-01, // itest=321: vxxxxx#3 nsp=1 mass=0 + -4.525483399593904e-01, 4.242640687119285e-01, // itest=321: vxxxxx#3 nsp=1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=321: vxxxxx#3 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=322: vxxxxx#3 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=322: vxxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=322: vxxxxx#3 nsp=1 mass=0 + -3.394112549695428e-01, -5.656854249492381e-01, // itest=322: vxxxxx#3 nsp=1 mass=0 + -4.525483399593904e-01, 4.242640687119285e-01, // itest=322: vxxxxx#3 nsp=1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=322: vxxxxx#3 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=323: sxxxxx#3 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=323: sxxxxx#3 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=323: sxxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=323: sxxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=323: sxxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=323: sxxxxx#3 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=324: sxxxxx#3 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=324: sxxxxx#3 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=324: sxxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=324: sxxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=324: sxxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=324: sxxxxx#3 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=325: oxxxxx#3 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=325: oxxxxx#3 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=325: oxxxxx#3 nsp=1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=325: oxxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=325: oxxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=325: oxxxxx#3 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=326: oxxxxx#3 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=326: oxxxxx#3 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=326: oxxxxx#3 nsp=1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=326: oxxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=326: oxxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=326: oxxxxx#3 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=327: oxzxxx#3 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=327: oxzxxx#3 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=327: oxzxxx#3 nsp=1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=327: oxzxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=327: oxzxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=327: oxzxxx#3 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=328: ixxxxx#4 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=328: ixxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=328: ixxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=328: ixxxxx#4 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=328: ixxxxx#4 nsp=1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01 } ); // itest=328: ixxxxx#4 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=329: ixxxxx#4 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=329: ixxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=329: ixxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=329: ixxxxx#4 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=329: ixxxxx#4 nsp=1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01 } ); // itest=329: ixxxxx#4 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=330: ixzxxx#4 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=330: ixzxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=330: ixzxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=330: ixzxxx#4 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=330: ixzxxx#4 nsp=1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01 } ); // itest=330: ixzxxx#4 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=331: vxxxxx#4 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=331: vxxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=331: vxxxxx#4 nsp=1 mass=0 + 3.394112549695428e-01, -5.656854249492381e-01, // itest=331: vxxxxx#4 nsp=1 mass=0 + 4.525483399593904e-01, 4.242640687119285e-01, // itest=331: vxxxxx#4 nsp=1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=331: vxxxxx#4 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=332: vxxxxx#4 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=332: vxxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=332: vxxxxx#4 nsp=1 mass=0 + 3.394112549695428e-01, -5.656854249492381e-01, // itest=332: vxxxxx#4 nsp=1 mass=0 + 4.525483399593904e-01, 4.242640687119285e-01, // itest=332: vxxxxx#4 nsp=1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=332: vxxxxx#4 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=333: sxxxxx#4 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=333: sxxxxx#4 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=333: sxxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=333: sxxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=333: sxxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=333: sxxxxx#4 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=334: sxxxxx#4 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=334: sxxxxx#4 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=334: sxxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=334: sxxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=334: sxxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=334: sxxxxx#4 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=335: oxxxxx#4 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=335: oxxxxx#4 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=335: oxxxxx#4 nsp=1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=335: oxxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=335: oxxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=335: oxxxxx#4 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=336: oxxxxx#4 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=336: oxxxxx#4 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=336: oxxxxx#4 nsp=1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=336: oxxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=336: oxxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=336: oxxxxx#4 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=337: oxzxxx#4 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=337: oxzxxx#4 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=337: oxzxxx#4 nsp=1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=337: oxzxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=337: oxzxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=337: oxzxxx#4 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=338: ixxxxx#5 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=338: ixxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=338: ixxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=338: ixxxxx#5 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=338: ixxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=338: ixxxxx#5 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=339: ixxxxx#5 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=339: ixxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=339: ixxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=339: ixxxxx#5 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=339: ixxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=339: ixxxxx#5 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=340: ipzxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=340: ipzxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=340: ipzxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=340: ipzxxx#5 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=340: ipzxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=340: ipzxxx#5 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=341: vxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=341: vxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=341: vxxxxx#5 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=341: vxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=341: vxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=341: vxxxxx#5 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=342: vxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=342: vxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=342: vxxxxx#5 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=342: vxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=342: vxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=342: vxxxxx#5 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=343: sxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=343: sxxxxx#5 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=343: sxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=343: sxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=343: sxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=343: sxxxxx#5 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=344: sxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=344: sxxxxx#5 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=344: sxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=344: sxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=344: sxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=344: sxxxxx#5 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=345: oxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=345: oxxxxx#5 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=345: oxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=345: oxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=345: oxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=345: oxxxxx#5 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=346: oxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=346: oxxxxx#5 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=346: oxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=346: oxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=346: oxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=346: oxxxxx#5 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=347: opzxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=347: opzxxx#5 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=347: opzxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=347: opzxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=347: opzxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=347: opzxxx#5 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=348: ixxxxx#6 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=348: ixxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=348: ixxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=348: ixxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=348: ixxxxx#6 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=348: ixxxxx#6 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=349: ixxxxx#6 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=349: ixxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=349: ixxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=349: ixxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=349: ixxxxx#6 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=349: ixxxxx#6 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=350: imzxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=350: imzxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=350: imzxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=350: imzxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=350: imzxxx#6 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=350: imzxxx#6 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=351: vxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=351: vxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=351: vxxxxx#6 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=351: vxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=351: vxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=351: vxxxxx#6 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=352: vxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=352: vxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=352: vxxxxx#6 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=352: vxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=352: vxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=352: vxxxxx#6 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=353: sxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=353: sxxxxx#6 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=353: sxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=353: sxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=353: sxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=353: sxxxxx#6 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=354: sxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=354: sxxxxx#6 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=354: sxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=354: sxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=354: sxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=354: sxxxxx#6 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=355: oxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=355: oxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=355: oxxxxx#6 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=355: oxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=355: oxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=355: oxxxxx#6 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=356: oxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=356: oxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=356: oxxxxx#6 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=356: oxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=356: oxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=356: oxxxxx#6 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=357: omzxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=357: omzxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=357: omzxxx#6 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=357: omzxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=357: omzxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=357: omzxxx#6 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=358: ixxxxx#7 nsp=1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=358: ixxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=358: ixxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=358: ixxxxx#7 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=358: ixxxxx#7 nsp=1 mass=0 + 1.341640786499874e+01, 1.788854381999831e+01 } ); // itest=358: ixxxxx#7 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=359: ixxxxx#7 nsp=1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=359: ixxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=359: ixxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=359: ixxxxx#7 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=359: ixxxxx#7 nsp=1 mass=0 + 1.341640786499874e+01, 1.788854381999831e+01 } ); // itest=359: ixxxxx#7 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=360: ixzxxx#7 nsp=1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=360: ixzxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=360: ixzxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=360: ixzxxx#7 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=360: ixzxxx#7 nsp=1 mass=0 + 1.341640786499874e+01, 1.788854381999832e+01 } ); // itest=360: ixzxxx#7 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=361: vxxxxx#7 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=361: vxxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=361: vxxxxx#7 nsp=1 mass=0 + -0.000000000000000e+00, -5.656854249492381e-01, // itest=361: vxxxxx#7 nsp=1 mass=0 + -0.000000000000000e+00, 4.242640687119285e-01, // itest=361: vxxxxx#7 nsp=1 mass=0 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=361: vxxxxx#7 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=362: vxxxxx#7 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=362: vxxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=362: vxxxxx#7 nsp=1 mass=0 + -0.000000000000000e+00, -5.656854249492381e-01, // itest=362: vxxxxx#7 nsp=1 mass=0 + -0.000000000000000e+00, 4.242640687119285e-01, // itest=362: vxxxxx#7 nsp=1 mass=0 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=362: vxxxxx#7 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=363: sxxxxx#7 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=363: sxxxxx#7 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=363: sxxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=363: sxxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=363: sxxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=363: sxxxxx#7 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=364: sxxxxx#7 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=364: sxxxxx#7 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=364: sxxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=364: sxxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=364: sxxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=364: sxxxxx#7 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=365: oxxxxx#7 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=365: oxxxxx#7 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=365: oxxxxx#7 nsp=1 mass=0 + 1.341640786499874e+01, -1.788854381999831e+01, // itest=365: oxxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=365: oxxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=365: oxxxxx#7 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=366: oxxxxx#7 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=366: oxxxxx#7 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=366: oxxxxx#7 nsp=1 mass=0 + 1.341640786499874e+01, -1.788854381999831e+01, // itest=366: oxxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=366: oxxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=366: oxxxxx#7 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=367: oxzxxx#7 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=367: oxzxxx#7 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=367: oxzxxx#7 nsp=1 mass=0 + 1.341640786499874e+01, -1.788854381999832e+01, // itest=367: oxzxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=367: oxzxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=367: oxzxxx#7 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=368: ixxxxx#8 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=368: ixxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=368: ixxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=368: ixxxxx#8 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=368: ixxxxx#8 nsp=1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=368: ixxxxx#8 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=369: ixxxxx#8 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=369: ixxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=369: ixxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=369: ixxxxx#8 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=369: ixxxxx#8 nsp=1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=369: ixxxxx#8 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=370: ixzxxx#8 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=370: ixzxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=370: ixzxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=370: ixzxxx#8 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=370: ixzxxx#8 nsp=1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=370: ixzxxx#8 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=371: vxxxxx#8 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=371: vxxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=371: vxxxxx#8 nsp=1 mass=0 + -3.394112549695428e-01, -5.656854249492381e-01, // itest=371: vxxxxx#8 nsp=1 mass=0 + -4.525483399593904e-01, 4.242640687119285e-01, // itest=371: vxxxxx#8 nsp=1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=371: vxxxxx#8 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=372: vxxxxx#8 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=372: vxxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=372: vxxxxx#8 nsp=1 mass=0 + -3.394112549695428e-01, -5.656854249492381e-01, // itest=372: vxxxxx#8 nsp=1 mass=0 + -4.525483399593904e-01, 4.242640687119285e-01, // itest=372: vxxxxx#8 nsp=1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=372: vxxxxx#8 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=373: sxxxxx#8 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=373: sxxxxx#8 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=373: sxxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=373: sxxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=373: sxxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=373: sxxxxx#8 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=374: sxxxxx#8 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=374: sxxxxx#8 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=374: sxxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=374: sxxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=374: sxxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=374: sxxxxx#8 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=375: oxxxxx#8 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=375: oxxxxx#8 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=375: oxxxxx#8 nsp=1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=375: oxxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=375: oxxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=375: oxxxxx#8 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=376: oxxxxx#8 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=376: oxxxxx#8 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=376: oxxxxx#8 nsp=1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=376: oxxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=376: oxxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=376: oxxxxx#8 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=377: oxzxxx#8 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=377: oxzxxx#8 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=377: oxzxxx#8 nsp=1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=377: oxzxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=377: oxzxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=377: oxzxxx#8 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=378: ixxxxx#9 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=378: ixxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=378: ixxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=378: ixxxxx#9 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=378: ixxxxx#9 nsp=1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01 } ); // itest=378: ixxxxx#9 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=379: ixxxxx#9 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=379: ixxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=379: ixxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=379: ixxxxx#9 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=379: ixxxxx#9 nsp=1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01 } ); // itest=379: ixxxxx#9 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=380: ixzxxx#9 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=380: ixzxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=380: ixzxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=380: ixzxxx#9 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=380: ixzxxx#9 nsp=1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01 } ); // itest=380: ixzxxx#9 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=381: vxxxxx#9 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=381: vxxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=381: vxxxxx#9 nsp=1 mass=0 + 3.394112549695428e-01, -5.656854249492381e-01, // itest=381: vxxxxx#9 nsp=1 mass=0 + 4.525483399593904e-01, 4.242640687119285e-01, // itest=381: vxxxxx#9 nsp=1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=381: vxxxxx#9 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=382: vxxxxx#9 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=382: vxxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=382: vxxxxx#9 nsp=1 mass=0 + 3.394112549695428e-01, -5.656854249492381e-01, // itest=382: vxxxxx#9 nsp=1 mass=0 + 4.525483399593904e-01, 4.242640687119285e-01, // itest=382: vxxxxx#9 nsp=1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=382: vxxxxx#9 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=383: sxxxxx#9 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=383: sxxxxx#9 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=383: sxxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=383: sxxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=383: sxxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=383: sxxxxx#9 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=384: sxxxxx#9 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=384: sxxxxx#9 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=384: sxxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=384: sxxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=384: sxxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=384: sxxxxx#9 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=385: oxxxxx#9 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=385: oxxxxx#9 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=385: oxxxxx#9 nsp=1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=385: oxxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=385: oxxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=385: oxxxxx#9 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=386: oxxxxx#9 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=386: oxxxxx#9 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=386: oxxxxx#9 nsp=1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=386: oxxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=386: oxxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=386: oxxxxx#9 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=387: oxzxxx#9 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=387: oxzxxx#9 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=387: oxzxxx#9 nsp=1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=387: oxzxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=387: oxzxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=387: oxzxxx#9 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=388: ixxxxx#10 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=388: ixxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=388: ixxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=388: ixxxxx#10 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=388: ixxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=388: ixxxxx#10 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=389: ixxxxx#10 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=389: ixxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=389: ixxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=389: ixxxxx#10 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=389: ixxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=389: ixxxxx#10 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=390: ipzxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=390: ipzxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=390: ipzxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=390: ipzxxx#10 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=390: ipzxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=390: ipzxxx#10 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=391: vxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=391: vxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=391: vxxxxx#10 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=391: vxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=391: vxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=391: vxxxxx#10 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=392: vxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=392: vxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=392: vxxxxx#10 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=392: vxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=392: vxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=392: vxxxxx#10 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=393: sxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=393: sxxxxx#10 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=393: sxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=393: sxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=393: sxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=393: sxxxxx#10 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=394: sxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=394: sxxxxx#10 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=394: sxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=394: sxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=394: sxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=394: sxxxxx#10 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=395: oxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=395: oxxxxx#10 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=395: oxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=395: oxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=395: oxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=395: oxxxxx#10 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=396: oxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=396: oxxxxx#10 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=396: oxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=396: oxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=396: oxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=396: oxxxxx#10 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=397: opzxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=397: opzxxx#10 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=397: opzxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=397: opzxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=397: opzxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=397: opzxxx#10 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=398: ixxxxx#11 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=398: ixxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=398: ixxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=398: ixxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=398: ixxxxx#11 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=398: ixxxxx#11 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=399: ixxxxx#11 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=399: ixxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=399: ixxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=399: ixxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=399: ixxxxx#11 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=399: ixxxxx#11 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=400: imzxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=400: imzxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=400: imzxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=400: imzxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=400: imzxxx#11 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=400: imzxxx#11 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=401: vxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=401: vxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=401: vxxxxx#11 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=401: vxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=401: vxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=401: vxxxxx#11 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=402: vxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=402: vxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=402: vxxxxx#11 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=402: vxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=402: vxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=402: vxxxxx#11 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=403: sxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=403: sxxxxx#11 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=403: sxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=403: sxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=403: sxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=403: sxxxxx#11 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=404: sxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=404: sxxxxx#11 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=404: sxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=404: sxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=404: sxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=404: sxxxxx#11 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=405: oxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=405: oxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=405: oxxxxx#11 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=405: oxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=405: oxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=405: oxxxxx#11 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=406: oxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=406: oxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=406: oxxxxx#11 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=406: oxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=406: oxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=406: oxxxxx#11 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=407: omzxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=407: omzxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=407: omzxxx#11 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=407: omzxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=407: omzxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=407: omzxxx#11 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=408: ixxxxx#12 nsp=1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=408: ixxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=408: ixxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=408: ixxxxx#12 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=408: ixxxxx#12 nsp=1 mass=0 + 1.341640786499874e+01, 1.788854381999831e+01 } ); // itest=408: ixxxxx#12 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=409: ixxxxx#12 nsp=1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=409: ixxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=409: ixxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=409: ixxxxx#12 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=409: ixxxxx#12 nsp=1 mass=0 + 1.341640786499874e+01, 1.788854381999831e+01 } ); // itest=409: ixxxxx#12 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=410: ixzxxx#12 nsp=1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=410: ixzxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=410: ixzxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=410: ixzxxx#12 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=410: ixzxxx#12 nsp=1 mass=0 + 1.341640786499874e+01, 1.788854381999832e+01 } ); // itest=410: ixzxxx#12 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=411: vxxxxx#12 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=411: vxxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=411: vxxxxx#12 nsp=1 mass=0 + -0.000000000000000e+00, -5.656854249492381e-01, // itest=411: vxxxxx#12 nsp=1 mass=0 + -0.000000000000000e+00, 4.242640687119285e-01, // itest=411: vxxxxx#12 nsp=1 mass=0 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=411: vxxxxx#12 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=412: vxxxxx#12 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=412: vxxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=412: vxxxxx#12 nsp=1 mass=0 + -0.000000000000000e+00, -5.656854249492381e-01, // itest=412: vxxxxx#12 nsp=1 mass=0 + -0.000000000000000e+00, 4.242640687119285e-01, // itest=412: vxxxxx#12 nsp=1 mass=0 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=412: vxxxxx#12 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=413: sxxxxx#12 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=413: sxxxxx#12 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=413: sxxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=413: sxxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=413: sxxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=413: sxxxxx#12 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=414: sxxxxx#12 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=414: sxxxxx#12 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=414: sxxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=414: sxxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=414: sxxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=414: sxxxxx#12 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=415: oxxxxx#12 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=415: oxxxxx#12 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=415: oxxxxx#12 nsp=1 mass=0 + 1.341640786499874e+01, -1.788854381999831e+01, // itest=415: oxxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=415: oxxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=415: oxxxxx#12 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=416: oxxxxx#12 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=416: oxxxxx#12 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=416: oxxxxx#12 nsp=1 mass=0 + 1.341640786499874e+01, -1.788854381999831e+01, // itest=416: oxxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=416: oxxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=416: oxxxxx#12 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=417: oxzxxx#12 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=417: oxzxxx#12 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=417: oxzxxx#12 nsp=1 mass=0 + 1.341640786499874e+01, -1.788854381999832e+01, // itest=417: oxzxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=417: oxzxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=417: oxzxxx#12 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=418: ixxxxx#13 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=418: ixxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=418: ixxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=418: ixxxxx#13 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=418: ixxxxx#13 nsp=1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=418: ixxxxx#13 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=419: ixxxxx#13 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=419: ixxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=419: ixxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=419: ixxxxx#13 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=419: ixxxxx#13 nsp=1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=419: ixxxxx#13 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=420: ixzxxx#13 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=420: ixzxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=420: ixzxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=420: ixzxxx#13 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=420: ixzxxx#13 nsp=1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=420: ixzxxx#13 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=421: vxxxxx#13 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=421: vxxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=421: vxxxxx#13 nsp=1 mass=0 + -3.394112549695428e-01, -5.656854249492381e-01, // itest=421: vxxxxx#13 nsp=1 mass=0 + -4.525483399593904e-01, 4.242640687119285e-01, // itest=421: vxxxxx#13 nsp=1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=421: vxxxxx#13 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=422: vxxxxx#13 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=422: vxxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=422: vxxxxx#13 nsp=1 mass=0 + -3.394112549695428e-01, -5.656854249492381e-01, // itest=422: vxxxxx#13 nsp=1 mass=0 + -4.525483399593904e-01, 4.242640687119285e-01, // itest=422: vxxxxx#13 nsp=1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=422: vxxxxx#13 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=423: sxxxxx#13 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=423: sxxxxx#13 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=423: sxxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=423: sxxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=423: sxxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=423: sxxxxx#13 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=424: sxxxxx#13 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=424: sxxxxx#13 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=424: sxxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=424: sxxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=424: sxxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=424: sxxxxx#13 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=425: oxxxxx#13 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=425: oxxxxx#13 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=425: oxxxxx#13 nsp=1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=425: oxxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=425: oxxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=425: oxxxxx#13 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=426: oxxxxx#13 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=426: oxxxxx#13 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=426: oxxxxx#13 nsp=1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=426: oxxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=426: oxxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=426: oxxxxx#13 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=427: oxzxxx#13 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=427: oxzxxx#13 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=427: oxzxxx#13 nsp=1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=427: oxzxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=427: oxzxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=427: oxzxxx#13 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=428: ixxxxx#14 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=428: ixxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=428: ixxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=428: ixxxxx#14 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=428: ixxxxx#14 nsp=1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01 } ); // itest=428: ixxxxx#14 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=429: ixxxxx#14 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=429: ixxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=429: ixxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=429: ixxxxx#14 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=429: ixxxxx#14 nsp=1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01 } ); // itest=429: ixxxxx#14 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=430: ixzxxx#14 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=430: ixzxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=430: ixzxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=430: ixzxxx#14 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=430: ixzxxx#14 nsp=1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01 } ); // itest=430: ixzxxx#14 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=431: vxxxxx#14 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=431: vxxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=431: vxxxxx#14 nsp=1 mass=0 + 3.394112549695428e-01, -5.656854249492381e-01, // itest=431: vxxxxx#14 nsp=1 mass=0 + 4.525483399593904e-01, 4.242640687119285e-01, // itest=431: vxxxxx#14 nsp=1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=431: vxxxxx#14 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=432: vxxxxx#14 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=432: vxxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=432: vxxxxx#14 nsp=1 mass=0 + 3.394112549695428e-01, -5.656854249492381e-01, // itest=432: vxxxxx#14 nsp=1 mass=0 + 4.525483399593904e-01, 4.242640687119285e-01, // itest=432: vxxxxx#14 nsp=1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=432: vxxxxx#14 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=433: sxxxxx#14 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=433: sxxxxx#14 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=433: sxxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=433: sxxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=433: sxxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=433: sxxxxx#14 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=434: sxxxxx#14 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=434: sxxxxx#14 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=434: sxxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=434: sxxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=434: sxxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=434: sxxxxx#14 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=435: oxxxxx#14 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=435: oxxxxx#14 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=435: oxxxxx#14 nsp=1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=435: oxxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=435: oxxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=435: oxxxxx#14 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=436: oxxxxx#14 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=436: oxxxxx#14 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=436: oxxxxx#14 nsp=1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=436: oxxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=436: oxxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=436: oxxxxx#14 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=437: oxzxxx#14 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=437: oxzxxx#14 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=437: oxzxxx#14 nsp=1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=437: oxzxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=437: oxzxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=437: oxzxxx#14 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=438: ixxxxx#15 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=438: ixxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=438: ixxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=438: ixxxxx#15 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=438: ixxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=438: ixxxxx#15 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=439: ixxxxx#15 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=439: ixxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=439: ixxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=439: ixxxxx#15 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=439: ixxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=439: ixxxxx#15 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=440: ipzxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=440: ipzxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=440: ipzxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=440: ipzxxx#15 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=440: ipzxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=440: ipzxxx#15 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=441: vxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=441: vxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=441: vxxxxx#15 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=441: vxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=441: vxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=441: vxxxxx#15 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=442: vxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=442: vxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=442: vxxxxx#15 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=442: vxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=442: vxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=442: vxxxxx#15 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=443: sxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=443: sxxxxx#15 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=443: sxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=443: sxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=443: sxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=443: sxxxxx#15 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=444: sxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=444: sxxxxx#15 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=444: sxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=444: sxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=444: sxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=444: sxxxxx#15 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=445: oxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=445: oxxxxx#15 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=445: oxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=445: oxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=445: oxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=445: oxxxxx#15 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=446: oxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=446: oxxxxx#15 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=446: oxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=446: oxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=446: oxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=446: oxxxxx#15 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=447: opzxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=447: opzxxx#15 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=447: opzxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=447: opzxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=447: opzxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=447: opzxxx#15 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=448: ixxxxx#16 nsp=1 mass=500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=448: ixxxxx#16 nsp=1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=448: ixxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=448: ixxxxx#16 nsp=1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=448: ixxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=448: ixxxxx#16 nsp=1 mass=500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=449: ixxxxx#16 nsp=1 mass=-500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=449: ixxxxx#16 nsp=1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=449: ixxxxx#16 nsp=1 mass=-500 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=449: ixxxxx#16 nsp=1 mass=-500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=449: ixxxxx#16 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=449: ixxxxx#16 nsp=1 mass=-500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=450: vxxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=450: vxxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=450: vxxxxx#16 nsp=1 mass=500 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=450: vxxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=450: vxxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=450: vxxxxx#16 nsp=1 mass=500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=451: vxxxxx#16 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=451: vxxxxx#16 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=451: vxxxxx#16 nsp=1 mass=-500 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=451: vxxxxx#16 nsp=1 mass=-500 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=451: vxxxxx#16 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=451: vxxxxx#16 nsp=1 mass=-500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=452: sxxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=452: sxxxxx#16 nsp=1 mass=500 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=452: sxxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=452: sxxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=452: sxxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=452: sxxxxx#16 nsp=1 mass=500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=453: sxxxxx#16 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=453: sxxxxx#16 nsp=1 mass=-500 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=453: sxxxxx#16 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=453: sxxxxx#16 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=453: sxxxxx#16 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=453: sxxxxx#16 nsp=1 mass=-500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=454: oxxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=454: oxxxxx#16 nsp=1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=454: oxxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=454: oxxxxx#16 nsp=1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=454: oxxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=454: oxxxxx#16 nsp=1 mass=500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=455: oxxxxx#16 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=455: oxxxxx#16 nsp=1 mass=-500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=455: oxxxxx#16 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=455: oxxxxx#16 nsp=1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=455: oxxxxx#16 nsp=1 mass=-500 + -0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=455: oxxxxx#16 nsp=1 mass=-500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=456: ixxxxx#17 nsp=1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=456: ixxxxx#17 nsp=1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=456: ixxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=456: ixxxxx#17 nsp=1 mass=400 + 2.828427124746190e+01, 0.000000000000000e+00, // itest=456: ixxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=456: ixxxxx#17 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=457: ixxxxx#17 nsp=1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=457: ixxxxx#17 nsp=1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=457: ixxxxx#17 nsp=1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=457: ixxxxx#17 nsp=1 mass=-400 + 2.828427124746190e+01, 0.000000000000000e+00, // itest=457: ixxxxx#17 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=457: ixxxxx#17 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=458: vxxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=458: vxxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=458: vxxxxx#17 nsp=1 mass=400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=458: vxxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=458: vxxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=458: vxxxxx#17 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=459: vxxxxx#17 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=459: vxxxxx#17 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=459: vxxxxx#17 nsp=1 mass=-400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=459: vxxxxx#17 nsp=1 mass=-400 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=459: vxxxxx#17 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=459: vxxxxx#17 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=460: sxxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=460: sxxxxx#17 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=460: sxxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=460: sxxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=460: sxxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=460: sxxxxx#17 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=461: sxxxxx#17 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=461: sxxxxx#17 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=461: sxxxxx#17 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=461: sxxxxx#17 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=461: sxxxxx#17 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=461: sxxxxx#17 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=462: oxxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=462: oxxxxx#17 nsp=1 mass=400 + 2.828427124746190e+01, 0.000000000000000e+00, // itest=462: oxxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=462: oxxxxx#17 nsp=1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=462: oxxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=462: oxxxxx#17 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=463: oxxxxx#17 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=463: oxxxxx#17 nsp=1 mass=-400 + 2.828427124746190e+01, 0.000000000000000e+00, // itest=463: oxxxxx#17 nsp=1 mass=-400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=463: oxxxxx#17 nsp=1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=463: oxxxxx#17 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=463: oxxxxx#17 nsp=1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=464: ixxxxx#18 nsp=1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=464: ixxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=464: ixxxxx#18 nsp=1 mass=400 + -1.414213562373095e+01, 0.000000000000000e+00, // itest=464: ixxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=464: ixxxxx#18 nsp=1 mass=400 + -2.828427124746190e+01, 0.000000000000000e+00 } ); // itest=464: ixxxxx#18 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=465: ixxxxx#18 nsp=1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=465: ixxxxx#18 nsp=1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=465: ixxxxx#18 nsp=1 mass=-400 + 1.414213562373095e+01, -0.000000000000000e+00, // itest=465: ixxxxx#18 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=465: ixxxxx#18 nsp=1 mass=-400 + -2.828427124746190e+01, 0.000000000000000e+00 } ); // itest=465: ixxxxx#18 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=466: vxxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=466: vxxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=466: vxxxxx#18 nsp=1 mass=400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=466: vxxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=466: vxxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=466: vxxxxx#18 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=467: vxxxxx#18 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=467: vxxxxx#18 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=467: vxxxxx#18 nsp=1 mass=-400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=467: vxxxxx#18 nsp=1 mass=-400 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=467: vxxxxx#18 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=467: vxxxxx#18 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=468: sxxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=468: sxxxxx#18 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=468: sxxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=468: sxxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=468: sxxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=468: sxxxxx#18 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=469: sxxxxx#18 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=469: sxxxxx#18 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=469: sxxxxx#18 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=469: sxxxxx#18 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=469: sxxxxx#18 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=469: sxxxxx#18 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=470: oxxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=470: oxxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=470: oxxxxx#18 nsp=1 mass=400 + -2.828427124746190e+01, 0.000000000000000e+00, // itest=470: oxxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=470: oxxxxx#18 nsp=1 mass=400 + -1.414213562373095e+01, 0.000000000000000e+00 } ); // itest=470: oxxxxx#18 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=471: oxxxxx#18 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=471: oxxxxx#18 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=471: oxxxxx#18 nsp=1 mass=-400 + -2.828427124746190e+01, 0.000000000000000e+00, // itest=471: oxxxxx#18 nsp=1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=471: oxxxxx#18 nsp=1 mass=-400 + 1.414213562373095e+01, -0.000000000000000e+00 } ); // itest=471: oxxxxx#18 nsp=1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=472: ixxxxx#19 nsp=1 mass=400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=472: ixxxxx#19 nsp=1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=472: ixxxxx#19 nsp=1 mass=400 + 5.999999999999999e+00, 7.999999999999999e+00, // itest=472: ixxxxx#19 nsp=1 mass=400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=472: ixxxxx#19 nsp=1 mass=400 + 1.200000000000000e+01, 1.600000000000000e+01 } ); // itest=472: ixxxxx#19 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=473: ixxxxx#19 nsp=1 mass=-400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=473: ixxxxx#19 nsp=1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00, // itest=473: ixxxxx#19 nsp=1 mass=-400 + -5.999999999999999e+00, -7.999999999999999e+00, // itest=473: ixxxxx#19 nsp=1 mass=-400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=473: ixxxxx#19 nsp=1 mass=-400 + 1.200000000000000e+01, 1.600000000000000e+01 } ); // itest=473: ixxxxx#19 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=474: vxxxxx#19 nsp=1 mass=400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=474: vxxxxx#19 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=474: vxxxxx#19 nsp=1 mass=400 + 0.000000000000000e+00, -5.656854249492381e-01, // itest=474: vxxxxx#19 nsp=1 mass=400 + 0.000000000000000e+00, 4.242640687119285e-01, // itest=474: vxxxxx#19 nsp=1 mass=400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=474: vxxxxx#19 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=475: vxxxxx#19 nsp=1 mass=-400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=475: vxxxxx#19 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=475: vxxxxx#19 nsp=1 mass=-400 + -0.000000000000000e+00, -5.656854249492381e-01, // itest=475: vxxxxx#19 nsp=1 mass=-400 + -0.000000000000000e+00, 4.242640687119285e-01, // itest=475: vxxxxx#19 nsp=1 mass=-400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=475: vxxxxx#19 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=476: sxxxxx#19 nsp=1 mass=400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=476: sxxxxx#19 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=476: sxxxxx#19 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=476: sxxxxx#19 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=476: sxxxxx#19 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=476: sxxxxx#19 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=477: sxxxxx#19 nsp=1 mass=-400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=477: sxxxxx#19 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=477: sxxxxx#19 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=477: sxxxxx#19 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=477: sxxxxx#19 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=477: sxxxxx#19 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=478: oxxxxx#19 nsp=1 mass=400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=478: oxxxxx#19 nsp=1 mass=400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=478: oxxxxx#19 nsp=1 mass=400 + 1.200000000000000e+01, -1.600000000000000e+01, // itest=478: oxxxxx#19 nsp=1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=478: oxxxxx#19 nsp=1 mass=400 + 5.999999999999999e+00, -7.999999999999999e+00 } ); // itest=478: oxxxxx#19 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=479: oxxxxx#19 nsp=1 mass=-400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=479: oxxxxx#19 nsp=1 mass=-400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=479: oxxxxx#19 nsp=1 mass=-400 + 1.200000000000000e+01, -1.600000000000000e+01, // itest=479: oxxxxx#19 nsp=1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00, // itest=479: oxxxxx#19 nsp=1 mass=-400 + -5.999999999999999e+00, 7.999999999999999e+00 } ); // itest=479: oxxxxx#19 nsp=1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=480: ixxxxx#20 nsp=1 mass=400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=480: ixxxxx#20 nsp=1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=480: ixxxxx#20 nsp=1 mass=400 + -7.999999999999999e+00, -5.999999999999999e+00, // itest=480: ixxxxx#20 nsp=1 mass=400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=480: ixxxxx#20 nsp=1 mass=400 + -1.600000000000000e+01, -1.200000000000000e+01 } ); // itest=480: ixxxxx#20 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=481: ixxxxx#20 nsp=1 mass=-400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=481: ixxxxx#20 nsp=1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00, // itest=481: ixxxxx#20 nsp=1 mass=-400 + 7.999999999999999e+00, 5.999999999999999e+00, // itest=481: ixxxxx#20 nsp=1 mass=-400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=481: ixxxxx#20 nsp=1 mass=-400 + -1.600000000000000e+01, -1.200000000000000e+01 } ); // itest=481: ixxxxx#20 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=482: vxxxxx#20 nsp=1 mass=400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=482: vxxxxx#20 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=482: vxxxxx#20 nsp=1 mass=400 + 0.000000000000000e+00, 4.242640687119285e-01, // itest=482: vxxxxx#20 nsp=1 mass=400 + 0.000000000000000e+00, -5.656854249492381e-01, // itest=482: vxxxxx#20 nsp=1 mass=400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=482: vxxxxx#20 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=483: vxxxxx#20 nsp=1 mass=-400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=483: vxxxxx#20 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=483: vxxxxx#20 nsp=1 mass=-400 + 0.000000000000000e+00, 4.242640687119285e-01, // itest=483: vxxxxx#20 nsp=1 mass=-400 + 0.000000000000000e+00, -5.656854249492381e-01, // itest=483: vxxxxx#20 nsp=1 mass=-400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=483: vxxxxx#20 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=484: sxxxxx#20 nsp=1 mass=400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=484: sxxxxx#20 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=484: sxxxxx#20 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=484: sxxxxx#20 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=484: sxxxxx#20 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=484: sxxxxx#20 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=485: sxxxxx#20 nsp=1 mass=-400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=485: sxxxxx#20 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=485: sxxxxx#20 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=485: sxxxxx#20 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=485: sxxxxx#20 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=485: sxxxxx#20 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=486: oxxxxx#20 nsp=1 mass=400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=486: oxxxxx#20 nsp=1 mass=400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=486: oxxxxx#20 nsp=1 mass=400 + -1.600000000000000e+01, 1.200000000000000e+01, // itest=486: oxxxxx#20 nsp=1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=486: oxxxxx#20 nsp=1 mass=400 + -7.999999999999999e+00, 5.999999999999999e+00 } ); // itest=486: oxxxxx#20 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=487: oxxxxx#20 nsp=1 mass=-400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=487: oxxxxx#20 nsp=1 mass=-400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=487: oxxxxx#20 nsp=1 mass=-400 + -1.600000000000000e+01, 1.200000000000000e+01, // itest=487: oxxxxx#20 nsp=1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00, // itest=487: oxxxxx#20 nsp=1 mass=-400 + 7.999999999999999e+00, -5.999999999999999e+00 } ); // itest=487: oxxxxx#20 nsp=1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=488: ixxxxx#21 nsp=1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=488: ixxxxx#21 nsp=1 mass=400 + 1.216552506059644e+01, 0.000000000000000e+00, // itest=488: ixxxxx#21 nsp=1 mass=400 + 4.931969619160719e+00, 5.260767593771432e+00, // itest=488: ixxxxx#21 nsp=1 mass=400 + 2.433105012119288e+01, 0.000000000000000e+00, // itest=488: ixxxxx#21 nsp=1 mass=400 + 9.863939238321439e+00, 1.052153518754287e+01 } ); // itest=488: ixxxxx#21 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=489: ixxxxx#21 nsp=1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=489: ixxxxx#21 nsp=1 mass=-400 + -1.216552506059644e+01, -0.000000000000000e+00, // itest=489: ixxxxx#21 nsp=1 mass=-400 + -4.931969619160719e+00, -5.260767593771432e+00, // itest=489: ixxxxx#21 nsp=1 mass=-400 + 2.433105012119288e+01, 0.000000000000000e+00, // itest=489: ixxxxx#21 nsp=1 mass=-400 + 9.863939238321439e+00, 1.052153518754287e+01 } ); // itest=489: ixxxxx#21 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=490: vxxxxx#21 nsp=1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=490: vxxxxx#21 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=490: vxxxxx#21 nsp=1 mass=400 + -2.321373168788980e-01, -5.158607041753289e-01, // itest=490: vxxxxx#21 nsp=1 mass=400 + -2.476131380041579e-01, 4.836194101643708e-01, // itest=490: vxxxxx#21 nsp=1 mass=400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=490: vxxxxx#21 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=491: vxxxxx#21 nsp=1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=491: vxxxxx#21 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=491: vxxxxx#21 nsp=1 mass=-400 + -2.321373168788980e-01, -5.158607041753289e-01, // itest=491: vxxxxx#21 nsp=1 mass=-400 + -2.476131380041579e-01, 4.836194101643708e-01, // itest=491: vxxxxx#21 nsp=1 mass=-400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=491: vxxxxx#21 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=492: sxxxxx#21 nsp=1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=492: sxxxxx#21 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=492: sxxxxx#21 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=492: sxxxxx#21 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=492: sxxxxx#21 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=492: sxxxxx#21 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=493: sxxxxx#21 nsp=1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=493: sxxxxx#21 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=493: sxxxxx#21 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=493: sxxxxx#21 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=493: sxxxxx#21 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=493: sxxxxx#21 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=494: oxxxxx#21 nsp=1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=494: oxxxxx#21 nsp=1 mass=400 + 2.433105012119288e+01, 0.000000000000000e+00, // itest=494: oxxxxx#21 nsp=1 mass=400 + 9.863939238321439e+00, -1.052153518754287e+01, // itest=494: oxxxxx#21 nsp=1 mass=400 + 1.216552506059644e+01, 0.000000000000000e+00, // itest=494: oxxxxx#21 nsp=1 mass=400 + 4.931969619160719e+00, -5.260767593771432e+00 } ); // itest=494: oxxxxx#21 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=495: oxxxxx#21 nsp=1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=495: oxxxxx#21 nsp=1 mass=-400 + 2.433105012119288e+01, 0.000000000000000e+00, // itest=495: oxxxxx#21 nsp=1 mass=-400 + 9.863939238321439e+00, -1.052153518754287e+01, // itest=495: oxxxxx#21 nsp=1 mass=-400 + -1.216552506059644e+01, -0.000000000000000e+00, // itest=495: oxxxxx#21 nsp=1 mass=-400 + -4.931969619160719e+00, 5.260767593771432e+00 } ); // itest=495: oxxxxx#21 nsp=1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=496: ixxxxx#22 nsp=1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=496: ixxxxx#22 nsp=1 mass=400 + 7.211102550927978e+00, 0.000000000000000e+00, // itest=496: ixxxxx#22 nsp=1 mass=400 + 8.320502943378436e+00, 8.875203139603666e+00, // itest=496: ixxxxx#22 nsp=1 mass=400 + 1.442220510185596e+01, 0.000000000000000e+00, // itest=496: ixxxxx#22 nsp=1 mass=400 + 1.664100588675688e+01, 1.775040627920733e+01 } ); // itest=496: ixxxxx#22 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=497: ixxxxx#22 nsp=1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=497: ixxxxx#22 nsp=1 mass=-400 + -7.211102550927978e+00, -0.000000000000000e+00, // itest=497: ixxxxx#22 nsp=1 mass=-400 + -8.320502943378436e+00, -8.875203139603666e+00, // itest=497: ixxxxx#22 nsp=1 mass=-400 + 1.442220510185596e+01, 0.000000000000000e+00, // itest=497: ixxxxx#22 nsp=1 mass=-400 + 1.664100588675688e+01, 1.775040627920733e+01 } ); // itest=497: ixxxxx#22 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=498: vxxxxx#22 nsp=1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=498: vxxxxx#22 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=498: vxxxxx#22 nsp=1 mass=400 + 2.321373168788980e-01, -5.158607041753289e-01, // itest=498: vxxxxx#22 nsp=1 mass=400 + 2.476131380041579e-01, 4.836194101643708e-01, // itest=498: vxxxxx#22 nsp=1 mass=400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=498: vxxxxx#22 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=499: vxxxxx#22 nsp=1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=499: vxxxxx#22 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=499: vxxxxx#22 nsp=1 mass=-400 + 2.321373168788980e-01, -5.158607041753289e-01, // itest=499: vxxxxx#22 nsp=1 mass=-400 + 2.476131380041579e-01, 4.836194101643708e-01, // itest=499: vxxxxx#22 nsp=1 mass=-400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=499: vxxxxx#22 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=500: sxxxxx#22 nsp=1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=500: sxxxxx#22 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=500: sxxxxx#22 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=500: sxxxxx#22 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=500: sxxxxx#22 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=500: sxxxxx#22 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=501: sxxxxx#22 nsp=1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=501: sxxxxx#22 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=501: sxxxxx#22 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=501: sxxxxx#22 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=501: sxxxxx#22 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=501: sxxxxx#22 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=502: oxxxxx#22 nsp=1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=502: oxxxxx#22 nsp=1 mass=400 + 1.442220510185596e+01, 0.000000000000000e+00, // itest=502: oxxxxx#22 nsp=1 mass=400 + 1.664100588675688e+01, -1.775040627920733e+01, // itest=502: oxxxxx#22 nsp=1 mass=400 + 7.211102550927978e+00, 0.000000000000000e+00, // itest=502: oxxxxx#22 nsp=1 mass=400 + 8.320502943378436e+00, -8.875203139603666e+00 } ); // itest=502: oxxxxx#22 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=503: oxxxxx#22 nsp=1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=503: oxxxxx#22 nsp=1 mass=-400 + 1.442220510185596e+01, 0.000000000000000e+00, // itest=503: oxxxxx#22 nsp=1 mass=-400 + 1.664100588675688e+01, -1.775040627920733e+01, // itest=503: oxxxxx#22 nsp=1 mass=-400 + -7.211102550927978e+00, -0.000000000000000e+00, // itest=503: oxxxxx#22 nsp=1 mass=-400 + -8.320502943378436e+00, 8.875203139603666e+00 } ); // itest=503: oxxxxx#22 nsp=1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=504: ixxxxx#23 nsp=1 mass=500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=504: ixxxxx#23 nsp=1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=504: ixxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=504: ixxxxx#23 nsp=1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=504: ixxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=504: ixxxxx#23 nsp=1 mass=500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=505: ixxxxx#23 nsp=1 mass=-500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=505: ixxxxx#23 nsp=1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=505: ixxxxx#23 nsp=1 mass=-500 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=505: ixxxxx#23 nsp=1 mass=-500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=505: ixxxxx#23 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=505: ixxxxx#23 nsp=1 mass=-500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=506: vxxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=506: vxxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=506: vxxxxx#23 nsp=1 mass=500 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=506: vxxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=506: vxxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=506: vxxxxx#23 nsp=1 mass=500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=507: vxxxxx#23 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=507: vxxxxx#23 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=507: vxxxxx#23 nsp=1 mass=-500 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=507: vxxxxx#23 nsp=1 mass=-500 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=507: vxxxxx#23 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=507: vxxxxx#23 nsp=1 mass=-500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=508: sxxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=508: sxxxxx#23 nsp=1 mass=500 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=508: sxxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=508: sxxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=508: sxxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=508: sxxxxx#23 nsp=1 mass=500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=509: sxxxxx#23 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=509: sxxxxx#23 nsp=1 mass=-500 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=509: sxxxxx#23 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=509: sxxxxx#23 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=509: sxxxxx#23 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=509: sxxxxx#23 nsp=1 mass=-500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=510: oxxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=510: oxxxxx#23 nsp=1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=510: oxxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=510: oxxxxx#23 nsp=1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=510: oxxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=510: oxxxxx#23 nsp=1 mass=500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=511: oxxxxx#23 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=511: oxxxxx#23 nsp=1 mass=-500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=511: oxxxxx#23 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=511: oxxxxx#23 nsp=1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=511: oxxxxx#23 nsp=1 mass=-500 + -0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=511: oxxxxx#23 nsp=1 mass=-500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=512: ixxxxx#24 nsp=1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=512: ixxxxx#24 nsp=1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=512: ixxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=512: ixxxxx#24 nsp=1 mass=400 + 2.828427124746190e+01, 0.000000000000000e+00, // itest=512: ixxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=512: ixxxxx#24 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=513: ixxxxx#24 nsp=1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=513: ixxxxx#24 nsp=1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=513: ixxxxx#24 nsp=1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=513: ixxxxx#24 nsp=1 mass=-400 + 2.828427124746190e+01, 0.000000000000000e+00, // itest=513: ixxxxx#24 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=513: ixxxxx#24 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=514: vxxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=514: vxxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=514: vxxxxx#24 nsp=1 mass=400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=514: vxxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=514: vxxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=514: vxxxxx#24 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=515: vxxxxx#24 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=515: vxxxxx#24 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=515: vxxxxx#24 nsp=1 mass=-400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=515: vxxxxx#24 nsp=1 mass=-400 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=515: vxxxxx#24 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=515: vxxxxx#24 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=516: sxxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=516: sxxxxx#24 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=516: sxxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=516: sxxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=516: sxxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=516: sxxxxx#24 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=517: sxxxxx#24 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=517: sxxxxx#24 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=517: sxxxxx#24 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=517: sxxxxx#24 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=517: sxxxxx#24 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=517: sxxxxx#24 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=518: oxxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=518: oxxxxx#24 nsp=1 mass=400 + 2.828427124746190e+01, 0.000000000000000e+00, // itest=518: oxxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=518: oxxxxx#24 nsp=1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=518: oxxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=518: oxxxxx#24 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=519: oxxxxx#24 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=519: oxxxxx#24 nsp=1 mass=-400 + 2.828427124746190e+01, 0.000000000000000e+00, // itest=519: oxxxxx#24 nsp=1 mass=-400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=519: oxxxxx#24 nsp=1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=519: oxxxxx#24 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=519: oxxxxx#24 nsp=1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=520: ixxxxx#25 nsp=1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=520: ixxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=520: ixxxxx#25 nsp=1 mass=400 + -1.414213562373095e+01, 0.000000000000000e+00, // itest=520: ixxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=520: ixxxxx#25 nsp=1 mass=400 + -2.828427124746190e+01, 0.000000000000000e+00 } ); // itest=520: ixxxxx#25 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=521: ixxxxx#25 nsp=1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=521: ixxxxx#25 nsp=1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=521: ixxxxx#25 nsp=1 mass=-400 + 1.414213562373095e+01, -0.000000000000000e+00, // itest=521: ixxxxx#25 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=521: ixxxxx#25 nsp=1 mass=-400 + -2.828427124746190e+01, 0.000000000000000e+00 } ); // itest=521: ixxxxx#25 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=522: vxxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=522: vxxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=522: vxxxxx#25 nsp=1 mass=400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=522: vxxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=522: vxxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=522: vxxxxx#25 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=523: vxxxxx#25 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=523: vxxxxx#25 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=523: vxxxxx#25 nsp=1 mass=-400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=523: vxxxxx#25 nsp=1 mass=-400 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=523: vxxxxx#25 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=523: vxxxxx#25 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=524: sxxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=524: sxxxxx#25 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=524: sxxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=524: sxxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=524: sxxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=524: sxxxxx#25 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=525: sxxxxx#25 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=525: sxxxxx#25 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=525: sxxxxx#25 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=525: sxxxxx#25 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=525: sxxxxx#25 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=525: sxxxxx#25 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=526: oxxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=526: oxxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=526: oxxxxx#25 nsp=1 mass=400 + -2.828427124746190e+01, 0.000000000000000e+00, // itest=526: oxxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=526: oxxxxx#25 nsp=1 mass=400 + -1.414213562373095e+01, 0.000000000000000e+00 } ); // itest=526: oxxxxx#25 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=527: oxxxxx#25 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=527: oxxxxx#25 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=527: oxxxxx#25 nsp=1 mass=-400 + -2.828427124746190e+01, 0.000000000000000e+00, // itest=527: oxxxxx#25 nsp=1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=527: oxxxxx#25 nsp=1 mass=-400 + 1.414213562373095e+01, -0.000000000000000e+00 } ); // itest=527: oxxxxx#25 nsp=1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=528: ixxxxx#26 nsp=1 mass=400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=528: ixxxxx#26 nsp=1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=528: ixxxxx#26 nsp=1 mass=400 + 5.999999999999999e+00, 7.999999999999999e+00, // itest=528: ixxxxx#26 nsp=1 mass=400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=528: ixxxxx#26 nsp=1 mass=400 + 1.200000000000000e+01, 1.600000000000000e+01 } ); // itest=528: ixxxxx#26 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=529: ixxxxx#26 nsp=1 mass=-400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=529: ixxxxx#26 nsp=1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00, // itest=529: ixxxxx#26 nsp=1 mass=-400 + -5.999999999999999e+00, -7.999999999999999e+00, // itest=529: ixxxxx#26 nsp=1 mass=-400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=529: ixxxxx#26 nsp=1 mass=-400 + 1.200000000000000e+01, 1.600000000000000e+01 } ); // itest=529: ixxxxx#26 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=530: vxxxxx#26 nsp=1 mass=400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=530: vxxxxx#26 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=530: vxxxxx#26 nsp=1 mass=400 + 0.000000000000000e+00, -5.656854249492381e-01, // itest=530: vxxxxx#26 nsp=1 mass=400 + 0.000000000000000e+00, 4.242640687119285e-01, // itest=530: vxxxxx#26 nsp=1 mass=400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=530: vxxxxx#26 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=531: vxxxxx#26 nsp=1 mass=-400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=531: vxxxxx#26 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=531: vxxxxx#26 nsp=1 mass=-400 + -0.000000000000000e+00, -5.656854249492381e-01, // itest=531: vxxxxx#26 nsp=1 mass=-400 + -0.000000000000000e+00, 4.242640687119285e-01, // itest=531: vxxxxx#26 nsp=1 mass=-400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=531: vxxxxx#26 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=532: sxxxxx#26 nsp=1 mass=400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=532: sxxxxx#26 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=532: sxxxxx#26 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=532: sxxxxx#26 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=532: sxxxxx#26 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=532: sxxxxx#26 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=533: sxxxxx#26 nsp=1 mass=-400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=533: sxxxxx#26 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=533: sxxxxx#26 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=533: sxxxxx#26 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=533: sxxxxx#26 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=533: sxxxxx#26 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=534: oxxxxx#26 nsp=1 mass=400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=534: oxxxxx#26 nsp=1 mass=400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=534: oxxxxx#26 nsp=1 mass=400 + 1.200000000000000e+01, -1.600000000000000e+01, // itest=534: oxxxxx#26 nsp=1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=534: oxxxxx#26 nsp=1 mass=400 + 5.999999999999999e+00, -7.999999999999999e+00 } ); // itest=534: oxxxxx#26 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=535: oxxxxx#26 nsp=1 mass=-400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=535: oxxxxx#26 nsp=1 mass=-400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=535: oxxxxx#26 nsp=1 mass=-400 + 1.200000000000000e+01, -1.600000000000000e+01, // itest=535: oxxxxx#26 nsp=1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00, // itest=535: oxxxxx#26 nsp=1 mass=-400 + -5.999999999999999e+00, 7.999999999999999e+00 } ); // itest=535: oxxxxx#26 nsp=1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=536: ixxxxx#27 nsp=1 mass=400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=536: ixxxxx#27 nsp=1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=536: ixxxxx#27 nsp=1 mass=400 + -7.999999999999999e+00, -5.999999999999999e+00, // itest=536: ixxxxx#27 nsp=1 mass=400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=536: ixxxxx#27 nsp=1 mass=400 + -1.600000000000000e+01, -1.200000000000000e+01 } ); // itest=536: ixxxxx#27 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=537: ixxxxx#27 nsp=1 mass=-400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=537: ixxxxx#27 nsp=1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00, // itest=537: ixxxxx#27 nsp=1 mass=-400 + 7.999999999999999e+00, 5.999999999999999e+00, // itest=537: ixxxxx#27 nsp=1 mass=-400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=537: ixxxxx#27 nsp=1 mass=-400 + -1.600000000000000e+01, -1.200000000000000e+01 } ); // itest=537: ixxxxx#27 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=538: vxxxxx#27 nsp=1 mass=400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=538: vxxxxx#27 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=538: vxxxxx#27 nsp=1 mass=400 + 0.000000000000000e+00, 4.242640687119285e-01, // itest=538: vxxxxx#27 nsp=1 mass=400 + 0.000000000000000e+00, -5.656854249492381e-01, // itest=538: vxxxxx#27 nsp=1 mass=400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=538: vxxxxx#27 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=539: vxxxxx#27 nsp=1 mass=-400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=539: vxxxxx#27 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=539: vxxxxx#27 nsp=1 mass=-400 + 0.000000000000000e+00, 4.242640687119285e-01, // itest=539: vxxxxx#27 nsp=1 mass=-400 + 0.000000000000000e+00, -5.656854249492381e-01, // itest=539: vxxxxx#27 nsp=1 mass=-400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=539: vxxxxx#27 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=540: sxxxxx#27 nsp=1 mass=400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=540: sxxxxx#27 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=540: sxxxxx#27 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=540: sxxxxx#27 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=540: sxxxxx#27 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=540: sxxxxx#27 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=541: sxxxxx#27 nsp=1 mass=-400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=541: sxxxxx#27 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=541: sxxxxx#27 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=541: sxxxxx#27 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=541: sxxxxx#27 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=541: sxxxxx#27 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=542: oxxxxx#27 nsp=1 mass=400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=542: oxxxxx#27 nsp=1 mass=400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=542: oxxxxx#27 nsp=1 mass=400 + -1.600000000000000e+01, 1.200000000000000e+01, // itest=542: oxxxxx#27 nsp=1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=542: oxxxxx#27 nsp=1 mass=400 + -7.999999999999999e+00, 5.999999999999999e+00 } ); // itest=542: oxxxxx#27 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=543: oxxxxx#27 nsp=1 mass=-400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=543: oxxxxx#27 nsp=1 mass=-400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=543: oxxxxx#27 nsp=1 mass=-400 + -1.600000000000000e+01, 1.200000000000000e+01, // itest=543: oxxxxx#27 nsp=1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00, // itest=543: oxxxxx#27 nsp=1 mass=-400 + 7.999999999999999e+00, -5.999999999999999e+00 } ); // itest=543: oxxxxx#27 nsp=1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=544: ixxxxx#28 nsp=1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=544: ixxxxx#28 nsp=1 mass=400 + 1.216552506059644e+01, 0.000000000000000e+00, // itest=544: ixxxxx#28 nsp=1 mass=400 + 4.931969619160719e+00, 5.260767593771432e+00, // itest=544: ixxxxx#28 nsp=1 mass=400 + 2.433105012119288e+01, 0.000000000000000e+00, // itest=544: ixxxxx#28 nsp=1 mass=400 + 9.863939238321439e+00, 1.052153518754287e+01 } ); // itest=544: ixxxxx#28 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=545: ixxxxx#28 nsp=1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=545: ixxxxx#28 nsp=1 mass=-400 + -1.216552506059644e+01, -0.000000000000000e+00, // itest=545: ixxxxx#28 nsp=1 mass=-400 + -4.931969619160719e+00, -5.260767593771432e+00, // itest=545: ixxxxx#28 nsp=1 mass=-400 + 2.433105012119288e+01, 0.000000000000000e+00, // itest=545: ixxxxx#28 nsp=1 mass=-400 + 9.863939238321439e+00, 1.052153518754287e+01 } ); // itest=545: ixxxxx#28 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=546: vxxxxx#28 nsp=1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=546: vxxxxx#28 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=546: vxxxxx#28 nsp=1 mass=400 + -2.321373168788980e-01, -5.158607041753289e-01, // itest=546: vxxxxx#28 nsp=1 mass=400 + -2.476131380041579e-01, 4.836194101643708e-01, // itest=546: vxxxxx#28 nsp=1 mass=400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=546: vxxxxx#28 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=547: vxxxxx#28 nsp=1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=547: vxxxxx#28 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=547: vxxxxx#28 nsp=1 mass=-400 + -2.321373168788980e-01, -5.158607041753289e-01, // itest=547: vxxxxx#28 nsp=1 mass=-400 + -2.476131380041579e-01, 4.836194101643708e-01, // itest=547: vxxxxx#28 nsp=1 mass=-400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=547: vxxxxx#28 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=548: sxxxxx#28 nsp=1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=548: sxxxxx#28 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=548: sxxxxx#28 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=548: sxxxxx#28 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=548: sxxxxx#28 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=548: sxxxxx#28 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=549: sxxxxx#28 nsp=1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=549: sxxxxx#28 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=549: sxxxxx#28 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=549: sxxxxx#28 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=549: sxxxxx#28 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=549: sxxxxx#28 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=550: oxxxxx#28 nsp=1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=550: oxxxxx#28 nsp=1 mass=400 + 2.433105012119288e+01, 0.000000000000000e+00, // itest=550: oxxxxx#28 nsp=1 mass=400 + 9.863939238321439e+00, -1.052153518754287e+01, // itest=550: oxxxxx#28 nsp=1 mass=400 + 1.216552506059644e+01, 0.000000000000000e+00, // itest=550: oxxxxx#28 nsp=1 mass=400 + 4.931969619160719e+00, -5.260767593771432e+00 } ); // itest=550: oxxxxx#28 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=551: oxxxxx#28 nsp=1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=551: oxxxxx#28 nsp=1 mass=-400 + 2.433105012119288e+01, 0.000000000000000e+00, // itest=551: oxxxxx#28 nsp=1 mass=-400 + 9.863939238321439e+00, -1.052153518754287e+01, // itest=551: oxxxxx#28 nsp=1 mass=-400 + -1.216552506059644e+01, -0.000000000000000e+00, // itest=551: oxxxxx#28 nsp=1 mass=-400 + -4.931969619160719e+00, 5.260767593771432e+00 } ); // itest=551: oxxxxx#28 nsp=1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=552: ixxxxx#29 nsp=1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=552: ixxxxx#29 nsp=1 mass=400 + 7.211102550927978e+00, 0.000000000000000e+00, // itest=552: ixxxxx#29 nsp=1 mass=400 + 8.320502943378436e+00, 8.875203139603666e+00, // itest=552: ixxxxx#29 nsp=1 mass=400 + 1.442220510185596e+01, 0.000000000000000e+00, // itest=552: ixxxxx#29 nsp=1 mass=400 + 1.664100588675688e+01, 1.775040627920733e+01 } ); // itest=552: ixxxxx#29 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=553: ixxxxx#29 nsp=1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=553: ixxxxx#29 nsp=1 mass=-400 + -7.211102550927978e+00, -0.000000000000000e+00, // itest=553: ixxxxx#29 nsp=1 mass=-400 + -8.320502943378436e+00, -8.875203139603666e+00, // itest=553: ixxxxx#29 nsp=1 mass=-400 + 1.442220510185596e+01, 0.000000000000000e+00, // itest=553: ixxxxx#29 nsp=1 mass=-400 + 1.664100588675688e+01, 1.775040627920733e+01 } ); // itest=553: ixxxxx#29 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=554: vxxxxx#29 nsp=1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=554: vxxxxx#29 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=554: vxxxxx#29 nsp=1 mass=400 + 2.321373168788980e-01, -5.158607041753289e-01, // itest=554: vxxxxx#29 nsp=1 mass=400 + 2.476131380041579e-01, 4.836194101643708e-01, // itest=554: vxxxxx#29 nsp=1 mass=400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=554: vxxxxx#29 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=555: vxxxxx#29 nsp=1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=555: vxxxxx#29 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=555: vxxxxx#29 nsp=1 mass=-400 + 2.321373168788980e-01, -5.158607041753289e-01, // itest=555: vxxxxx#29 nsp=1 mass=-400 + 2.476131380041579e-01, 4.836194101643708e-01, // itest=555: vxxxxx#29 nsp=1 mass=-400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=555: vxxxxx#29 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=556: sxxxxx#29 nsp=1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=556: sxxxxx#29 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=556: sxxxxx#29 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=556: sxxxxx#29 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=556: sxxxxx#29 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=556: sxxxxx#29 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=557: sxxxxx#29 nsp=1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=557: sxxxxx#29 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=557: sxxxxx#29 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=557: sxxxxx#29 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=557: sxxxxx#29 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=557: sxxxxx#29 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=558: oxxxxx#29 nsp=1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=558: oxxxxx#29 nsp=1 mass=400 + 1.442220510185596e+01, 0.000000000000000e+00, // itest=558: oxxxxx#29 nsp=1 mass=400 + 1.664100588675688e+01, -1.775040627920733e+01, // itest=558: oxxxxx#29 nsp=1 mass=400 + 7.211102550927978e+00, 0.000000000000000e+00, // itest=558: oxxxxx#29 nsp=1 mass=400 + 8.320502943378436e+00, -8.875203139603666e+00 } ); // itest=558: oxxxxx#29 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=559: oxxxxx#29 nsp=1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=559: oxxxxx#29 nsp=1 mass=-400 + 1.442220510185596e+01, 0.000000000000000e+00, // itest=559: oxxxxx#29 nsp=1 mass=-400 + 1.664100588675688e+01, -1.775040627920733e+01, // itest=559: oxxxxx#29 nsp=1 mass=-400 + -7.211102550927978e+00, -0.000000000000000e+00, // itest=559: oxxxxx#29 nsp=1 mass=-400 + -8.320502943378436e+00, 8.875203139603666e+00 } ); // itest=559: oxxxxx#29 nsp=1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=560: ixxxxx#30 nsp=1 mass=500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=560: ixxxxx#30 nsp=1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=560: ixxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=560: ixxxxx#30 nsp=1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=560: ixxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=560: ixxxxx#30 nsp=1 mass=500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=561: ixxxxx#30 nsp=1 mass=-500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=561: ixxxxx#30 nsp=1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=561: ixxxxx#30 nsp=1 mass=-500 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=561: ixxxxx#30 nsp=1 mass=-500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=561: ixxxxx#30 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=561: ixxxxx#30 nsp=1 mass=-500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=562: vxxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=562: vxxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=562: vxxxxx#30 nsp=1 mass=500 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=562: vxxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=562: vxxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=562: vxxxxx#30 nsp=1 mass=500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=563: vxxxxx#30 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=563: vxxxxx#30 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=563: vxxxxx#30 nsp=1 mass=-500 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=563: vxxxxx#30 nsp=1 mass=-500 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=563: vxxxxx#30 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=563: vxxxxx#30 nsp=1 mass=-500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=564: sxxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=564: sxxxxx#30 nsp=1 mass=500 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=564: sxxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=564: sxxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=564: sxxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=564: sxxxxx#30 nsp=1 mass=500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=565: sxxxxx#30 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=565: sxxxxx#30 nsp=1 mass=-500 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=565: sxxxxx#30 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=565: sxxxxx#30 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=565: sxxxxx#30 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=565: sxxxxx#30 nsp=1 mass=-500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=566: oxxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=566: oxxxxx#30 nsp=1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=566: oxxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=566: oxxxxx#30 nsp=1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=566: oxxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=566: oxxxxx#30 nsp=1 mass=500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=567: oxxxxx#30 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=567: oxxxxx#30 nsp=1 mass=-500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=567: oxxxxx#30 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=567: oxxxxx#30 nsp=1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=567: oxxxxx#30 nsp=1 mass=-500 + -0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=567: oxxxxx#30 nsp=1 mass=-500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=568: ixxxxx#31 nsp=1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=568: ixxxxx#31 nsp=1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=568: ixxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=568: ixxxxx#31 nsp=1 mass=400 + 2.828427124746190e+01, 0.000000000000000e+00, // itest=568: ixxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=568: ixxxxx#31 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=569: ixxxxx#31 nsp=1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=569: ixxxxx#31 nsp=1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=569: ixxxxx#31 nsp=1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=569: ixxxxx#31 nsp=1 mass=-400 + 2.828427124746190e+01, 0.000000000000000e+00, // itest=569: ixxxxx#31 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=569: ixxxxx#31 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=570: vxxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=570: vxxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=570: vxxxxx#31 nsp=1 mass=400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=570: vxxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=570: vxxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=570: vxxxxx#31 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=571: vxxxxx#31 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=571: vxxxxx#31 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=571: vxxxxx#31 nsp=1 mass=-400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=571: vxxxxx#31 nsp=1 mass=-400 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=571: vxxxxx#31 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=571: vxxxxx#31 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=572: sxxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=572: sxxxxx#31 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=572: sxxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=572: sxxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=572: sxxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=572: sxxxxx#31 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=573: sxxxxx#31 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=573: sxxxxx#31 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=573: sxxxxx#31 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=573: sxxxxx#31 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=573: sxxxxx#31 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=573: sxxxxx#31 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=574: oxxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=574: oxxxxx#31 nsp=1 mass=400 + 2.828427124746190e+01, 0.000000000000000e+00, // itest=574: oxxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=574: oxxxxx#31 nsp=1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=574: oxxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=574: oxxxxx#31 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=575: oxxxxx#31 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=575: oxxxxx#31 nsp=1 mass=-400 + 2.828427124746190e+01, 0.000000000000000e+00, // itest=575: oxxxxx#31 nsp=1 mass=-400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=575: oxxxxx#31 nsp=1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=575: oxxxxx#31 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=575: oxxxxx#31 nsp=1 mass=-400 diff --git a/epochX/cudacpp/gg_tt01g.mad/src/HelAmps_sm.h b/epochX/cudacpp/gg_tt01g.mad/src/HelAmps_sm.h index 5a3a5dc76f..dd17387b4e 100644 --- a/epochX/cudacpp/gg_tt01g.mad/src/HelAmps_sm.h +++ b/epochX/cudacpp/gg_tt01g.mad/src/HelAmps_sm.h @@ -1,3 +1,4 @@ +// Copyright (C) 2010 The ALOHA Development team and Contributors. // Copyright (C) 2010 The MadGraph5_aMC@NLO development team and contributors. // Created by: J. Alwall (Sep 2010) for the MG5aMC backend. //========================================================================== @@ -21,6 +22,7 @@ #include "Parameters_sm.h" +#include //#include //#include //#include @@ -190,6 +192,9 @@ namespace mg5amcCpu const int ipar ) // input: particle# out of npar { mgDebug( 0, __FUNCTION__ ); + // NEW IMPLEMENTATION FIXING FLOATING POINT EXCEPTIONS IN SIMD CODE (#701) + // Variables xxxDENOM are a hack to avoid division-by-0 FPE while preserving speed (#701 and #727) + // Variables xxxDENOM are declared as 'volatile' to make sure they are not optimized away on clang! (#724) const fptype_sv& pvec0 = M_ACCESS::kernelAccessIp4IparConst( momenta, 0, ipar ); const fptype_sv& pvec1 = M_ACCESS::kernelAccessIp4IparConst( momenta, 1, ipar ); const fptype_sv& pvec2 = M_ACCESS::kernelAccessIp4IparConst( momenta, 2, ipar ); @@ -201,6 +206,11 @@ namespace mg5amcCpu if( fmass != 0. ) { const fptype_sv pp = fpmin( pvec0, fpsqrt( pvec1 * pvec1 + pvec2 * pvec2 + pvec3 * pvec3 ) ); + // In C++ ixxxxx, use a single ip/im numbering that is valid both for pp==0 and pp>0, which have two numbering schemes in Fortran ixxxxx: + // for pp==0, Fortran sqm(0:1) has indexes 0,1 as in C++; but for Fortran pp>0, omega(2) has indexes 1,2 and not 0,1 + // NB: this is only possible in ixxxx, but in oxxxxx two different numbering schemes must be used + const int ip = ( 1 + nh ) / 2; // NB: same as in Fortran pp==0, differs from Fortran pp>0, which is (3+nh)/2 because omega(2) has indexes 1,2 + const int im = ( 1 - nh ) / 2; // NB: same as in Fortran pp==0, differs from Fortran pp>0, which is (3-nh)/2 because omega(2) has indexes 1,2 #ifndef MGONGPU_CPPSIMD if( pp == 0. ) { @@ -208,8 +218,6 @@ namespace mg5amcCpu fptype sqm[2] = { fpsqrt( std::abs( fmass ) ), 0. }; // possibility of negative fermion masses //sqm[1] = ( fmass < 0. ? -abs( sqm[0] ) : abs( sqm[0] ) ); // AV: why abs here? sqm[1] = ( fmass < 0. ? -sqm[0] : sqm[0] ); // AV: removed an abs here - const int ip = ( 1 + nh ) / 2; // NB: Fortran sqm(0:1) also has indexes 0,1 as in C++ - const int im = ( 1 - nh ) / 2; // NB: Fortran sqm(0:1) also has indexes 0,1 as in C++ fi[2] = cxmake( ip * sqm[ip], 0 ); fi[3] = cxmake( im * nsf * sqm[ip], 0 ); fi[4] = cxmake( ip * nsf * sqm[im], 0 ); @@ -221,8 +229,6 @@ namespace mg5amcCpu fptype( 1 + nsf - ( 1 - nsf ) * nh ) * (fptype)0.5 }; fptype omega[2] = { fpsqrt( pvec0 + pp ), 0. }; omega[1] = fmass / omega[0]; - const int ip = ( 1 + nh ) / 2; // NB: Fortran is (3+nh)/2 because omega(2) has indexes 1,2 and not 0,1 - const int im = ( 1 - nh ) / 2; // NB: Fortran is (3-nh)/2 because omega(2) has indexes 1,2 and not 0,1 const fptype sfomega[2] = { sf[0] * omega[ip], sf[1] * omega[im] }; const fptype pp3 = fpmax( pp + pvec3, 0. ); const cxtype chi[2] = { cxmake( fpsqrt( pp3 * (fptype)0.5 / pp ), 0. ), @@ -233,8 +239,6 @@ namespace mg5amcCpu fi[5] = sfomega[1] * chi[ip]; } #else - const int ip = ( 1 + nh ) / 2; - const int im = ( 1 - nh ) / 2; // Branch A: pp == 0. // NB: Do not use "abs" for floats! It returns an integer with no build warning! Use std::abs! fptype sqm[2] = { fpsqrt( std::abs( fmass ) ), 0 }; // possibility of negative fermion masses (NB: SCALAR!) @@ -250,10 +254,12 @@ namespace mg5amcCpu omega[1] = fmass / omega[0]; const fptype_v sfomega[2] = { sf[0] * omega[ip], sf[1] * omega[im] }; const fptype_v pp3 = fpmax( pp + pvec3, 0 ); - const cxtype_v chi[2] = { cxmake( fpsqrt( pp3 * 0.5 / pp ), 0 ), + volatile fptype_v ppDENOM = fpternary( pp != 0, pp, 1. ); // hack: ppDENOM[ieppV]=1 if pp[ieppV]==0 + volatile fptype_v pp3DENOM = fpternary( pp3 != 0, pp3, 1. ); // hack: pp3DENOM[ieppV]=1 if pp3[ieppV]==0 + const cxtype_v chi[2] = { cxmake( fpsqrt( pp3 * 0.5 / ppDENOM ), 0 ), // hack: dummy[ieppV] is not used if pp[ieppV]==0 cxternary( ( pp3 == 0. ), cxmake( -nh, 0 ), - cxmake( (fptype)nh * pvec1, pvec2 ) / fpsqrt( 2. * pp * pp3 ) ) }; + cxmake( (fptype)nh * pvec1, pvec2 ) / fpsqrt( 2. * ppDENOM * pp3DENOM ) ) }; // hack: dummy[ieppV] is not used if pp[ieppV]==0 const cxtype_v fiB_2 = sfomega[0] * chi[im]; const cxtype_v fiB_3 = sfomega[0] * chi[ip]; const cxtype_v fiB_4 = sfomega[1] * chi[im]; @@ -271,7 +277,16 @@ namespace mg5amcCpu const fptype_sv sqp0p3 = fpternary( ( pvec1 == 0. and pvec2 == 0. and pvec3 < 0. ), fptype_sv{ 0 }, fpsqrt( fpmax( pvec0 + pvec3, 0. ) ) * (fptype)nsf ); - const cxtype_sv chi[2] = { cxmake( sqp0p3, 0. ), cxternary( ( sqp0p3 == 0. ), cxmake( -(fptype)nhel * fpsqrt( 2. * pvec0 ), 0. ), cxmake( (fptype)nh * pvec1, pvec2 ) / sqp0p3 ) }; +#ifdef MGONGPU_CPPSIMD + volatile fptype_v sqp0p3DENOM = fpternary( sqp0p3 != 0, sqp0p3, 1. ); // hack: dummy sqp0p3DENOM[ieppV]=1 if sqp0p3[ieppV]==0 + cxtype_sv chi[2] = { cxmake( sqp0p3, 0. ), + cxternary( sqp0p3 == 0, + cxmake( -(fptype)nhel * fpsqrt( 2. * pvec0 ), 0. ), + cxmake( (fptype)nh * pvec1, pvec2 ) / (const fptype_v)sqp0p3DENOM ) }; // hack: dummy[ieppV] is not used if sqp0p3[ieppV]==0 +#else + const cxtype_sv chi[2] = { cxmake( sqp0p3, 0. ), + ( sqp0p3 == 0. ? cxmake( -(fptype)nhel * fpsqrt( 2. * pvec0 ), 0. ) : cxmake( (fptype)nh * pvec1, pvec2 ) / sqp0p3 ) }; +#endif if( nh == 1 ) { fi[2] = cxzero_sv(); @@ -422,6 +437,9 @@ namespace mg5amcCpu const int ipar ) // input: particle# out of npar { mgDebug( 0, __FUNCTION__ ); + // NEW IMPLEMENTATION FIXING FLOATING POINT EXCEPTIONS IN SIMD CODE (#701) + // Variables xxxDENOM are a hack to avoid division-by-0 FPE while preserving speed (#701 and #727) + // Variables xxxDENOM are declared as 'volatile' to make sure they are not optimized away on clang! (#724) const fptype_sv& pvec0 = M_ACCESS::kernelAccessIp4IparConst( momenta, 0, ipar ); const fptype_sv& pvec1 = M_ACCESS::kernelAccessIp4IparConst( momenta, 1, ipar ); const fptype_sv& pvec2 = M_ACCESS::kernelAccessIp4IparConst( momenta, 2, ipar ); @@ -472,13 +490,15 @@ namespace mg5amcCpu const cxtype vcA_4 = cxmake( 0, nsvahl * sqh ); const cxtype vcA_5 = cxmake( hel0, 0 ); // Branch B: pp != 0. - const fptype_v emp = pvec0 / ( vmass * pp ); + volatile fptype_v ppDENOM = fpternary( pp != 0, pp, 1. ); // hack: ppDENOM[ieppV]=1 if pp[ieppV]==0 + const fptype_v emp = pvec0 / ( vmass * ppDENOM ); // hack: dummy[ieppV] is not used if pp[ieppV]==0 const cxtype_v vcB_2 = cxmake( hel0 * pp / vmass, 0 ); - const cxtype_v vcB_5 = cxmake( hel0 * pvec3 * emp + hel * pt / pp * sqh, 0 ); + const cxtype_v vcB_5 = cxmake( hel0 * pvec3 * emp + hel * pt / ppDENOM * sqh, 0 ); // hack: dummy[ieppV] is not used if pp[ieppV]==0 // Branch B1: pp != 0. and pt != 0. - const fptype_v pzpt = pvec3 / ( pp * pt ) * sqh * hel; - const cxtype_v vcB1_3 = cxmake( hel0 * pvec1 * emp - pvec1 * pzpt, -(fptype)nsvahl * pvec2 / pt * sqh ); - const cxtype_v vcB1_4 = cxmake( hel0 * pvec2 * emp - pvec2 * pzpt, (fptype)nsvahl * pvec1 / pt * sqh ); + volatile fptype_v ptDENOM = fpternary( pt != 0, pt, 1. ); // hack: ptDENOM[ieppV]=1 if pt[ieppV]==0 + const fptype_v pzpt = pvec3 / ( ppDENOM * ptDENOM ) * sqh * hel; // hack: dummy[ieppV] is not used if pp[ieppV]==0 + const cxtype_v vcB1_3 = cxmake( hel0 * pvec1 * emp - pvec1 * pzpt, -(fptype)nsvahl * pvec2 / ptDENOM * sqh ); // hack: dummy[ieppV] is not used if pt[ieppV]==0 + const cxtype_v vcB1_4 = cxmake( hel0 * pvec2 * emp - pvec2 * pzpt, (fptype)nsvahl * pvec1 / ptDENOM * sqh ); // hack: dummy[ieppV] is not used if pt[ieppV]==0 // Branch B2: pp != 0. and pt == 0. const cxtype vcB2_3 = cxmake( -hel * sqh, 0. ); const cxtype_v vcB2_4 = cxmake( 0., (fptype)nsvahl * fpternary( ( pvec3 < 0 ), -sqh, sqh ) ); // AV: removed an abs here @@ -513,9 +533,10 @@ namespace mg5amcCpu } #else // Branch A: pt != 0. - const fptype_v pzpt = pvec3 / ( pp * pt ) * sqh * hel; - const cxtype_v vcA_3 = cxmake( -pvec1 * pzpt, -(fptype)nsv * pvec2 / pt * sqh ); - const cxtype_v vcA_4 = cxmake( -pvec2 * pzpt, (fptype)nsv * pvec1 / pt * sqh ); + volatile fptype_v ptDENOM = fpternary( pt != 0, pt, 1. ); // hack: ptDENOM[ieppV]=1 if pt[ieppV]==0 + const fptype_v pzpt = pvec3 / ( pp * ptDENOM ) * sqh * hel; // hack: dummy[ieppV] is not used if pt[ieppV]==0 + const cxtype_v vcA_3 = cxmake( -pvec1 * pzpt, -(fptype)nsv * pvec2 / ptDENOM * sqh ); // hack: dummy[ieppV] is not used if pt[ieppV]==0 + const cxtype_v vcA_4 = cxmake( -pvec2 * pzpt, (fptype)nsv * pvec1 / ptDENOM * sqh ); // hack: dummy[ieppV] is not used if pt[ieppV]==0 // Branch B: pt == 0. const cxtype vcB_3 = cxmake( -(fptype)hel * sqh, 0 ); const cxtype_v vcB_4 = cxmake( 0, (fptype)nsv * fpternary( ( pvec3 < 0 ), -sqh, sqh ) ); // AV: removed an abs here @@ -567,6 +588,9 @@ namespace mg5amcCpu const int ipar ) // input: particle# out of npar { mgDebug( 0, __FUNCTION__ ); + // NEW IMPLEMENTATION FIXING FLOATING POINT EXCEPTIONS IN SIMD CODE (#701) + // Variables xxxDENOM are a hack to avoid division-by-0 FPE while preserving speed (#701 and #727) + // Variables xxxDENOM are declared as 'volatile' to make sure they are not optimized away on clang! (#724) const fptype_sv& pvec0 = M_ACCESS::kernelAccessIp4IparConst( momenta, 0, ipar ); const fptype_sv& pvec1 = M_ACCESS::kernelAccessIp4IparConst( momenta, 1, ipar ); const fptype_sv& pvec2 = M_ACCESS::kernelAccessIp4IparConst( momenta, 2, ipar ); @@ -630,10 +654,12 @@ namespace mg5amcCpu const int imB = ( 1 - nh ) / 2; const fptype_v sfomeg[2] = { sf[0] * omega[ipB], sf[1] * omega[imB] }; const fptype_v pp3 = fpmax( pp + pvec3, 0. ); - const cxtype_v chi[2] = { cxmake( fpsqrt( pp3 * 0.5 / pp ), 0. ), + volatile fptype_v ppDENOM = fpternary( pp != 0, pp, 1. ); // hack: ppDENOM[ieppV]=1 if pp[ieppV]==0 + volatile fptype_v pp3DENOM = fpternary( pp3 != 0, pp3, 1. ); // hack: pp3DENOM[ieppV]=1 if pp3[ieppV]==0 + const cxtype_v chi[2] = { cxmake( fpsqrt( pp3 * 0.5 / ppDENOM ), 0. ), // hack: dummy[ieppV] is not used if pp[ieppV]==0 ( cxternary( ( pp3 == 0. ), cxmake( -nh, 0. ), - cxmake( (fptype)nh * pvec1, -pvec2 ) / fpsqrt( 2. * pp * pp3 ) ) ) }; + cxmake( (fptype)nh * pvec1, -pvec2 ) / fpsqrt( 2. * ppDENOM * pp3DENOM ) ) ) }; // hack: dummy[ieppV] is not used if pp[ieppV]==0 const cxtype_v foB_2 = sfomeg[1] * chi[imB]; const cxtype_v foB_3 = sfomeg[1] * chi[ipB]; const cxtype_v foB_4 = sfomeg[0] * chi[imB]; @@ -651,10 +677,16 @@ namespace mg5amcCpu const fptype_sv sqp0p3 = fpternary( ( pvec1 == 0. ) and ( pvec2 == 0. ) and ( pvec3 < 0. ), 0, fpsqrt( fpmax( pvec0 + pvec3, 0. ) ) * (fptype)nsf ); +#ifdef MGONGPU_CPPSIMD + volatile fptype_v sqp0p3DENOM = fpternary( sqp0p3 != 0, sqp0p3, 1. ); // hack: sqp0p3DENOM[ieppV]=1 if sqp0p3[ieppV]==0 + const cxtype_v chi[2] = { cxmake( sqp0p3, 0. ), + cxternary( ( sqp0p3 == 0. ), + cxmake( -nhel, 0. ) * fpsqrt( 2. * pvec0 ), + cxmake( (fptype)nh * pvec1, -pvec2 ) / (const fptype_sv)sqp0p3DENOM ) }; // hack: dummy[ieppV] is not used if sqp0p3[ieppV]==0 +#else const cxtype_sv chi[2] = { cxmake( sqp0p3, 0. ), - cxternary( ( sqp0p3 == 0. ), - cxmake( -nhel, 0. ) * fpsqrt( 2. * pvec0 ), - cxmake( (fptype)nh * pvec1, -pvec2 ) / sqp0p3 ) }; + ( sqp0p3 == 0. ? cxmake( -nhel, 0. ) * fpsqrt( 2. * pvec0 ) : cxmake( (fptype)nh * pvec1, -pvec2 ) / sqp0p3 ) }; +#endif if( nh == 1 ) { fo[2] = chi[0]; diff --git a/epochX/cudacpp/gg_tt01g.mad/src/Parameters_sm.cc b/epochX/cudacpp/gg_tt01g.mad/src/Parameters_sm.cc index d3d01102fd..22fdd96a68 100644 --- a/epochX/cudacpp/gg_tt01g.mad/src/Parameters_sm.cc +++ b/epochX/cudacpp/gg_tt01g.mad/src/Parameters_sm.cc @@ -17,6 +17,12 @@ #include #include +#ifdef __CUDACC__ +using namespace mg5amcGpu; +#else +using namespace mg5amcCpu; +#endif + #ifndef MGONGPU_HARDCODE_PARAM // Initialize static instance diff --git a/epochX/cudacpp/gg_tt01g.mad/src/Parameters_sm.h b/epochX/cudacpp/gg_tt01g.mad/src/Parameters_sm.h index 6551d8da81..11fd9e3c74 100644 --- a/epochX/cudacpp/gg_tt01g.mad/src/Parameters_sm.h +++ b/epochX/cudacpp/gg_tt01g.mad/src/Parameters_sm.h @@ -26,191 +26,216 @@ #include "read_slha.h" -class Parameters_sm +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { -public: + class Parameters_sm + { + public: - static Parameters_sm* getInstance(); + static Parameters_sm* getInstance(); - // Define "zero" - double zero, ZERO; + // Define "zero" + double zero, ZERO; - // Model parameters independent of aS - //double aS; // now retrieved event-by-event (as G) from Fortran (running alphas #373) - double mdl_WH, mdl_WW, mdl_WZ, mdl_WT, mdl_ymtau, mdl_ymt, mdl_ymb, mdl_Gf, aEWM1, mdl_MH, mdl_MZ, mdl_MTA, mdl_MT, mdl_MB, mdl_conjg__CKM3x3, mdl_conjg__CKM1x1, mdl_CKM3x3, mdl_MZ__exp__2, mdl_MZ__exp__4, mdl_sqrt__2, mdl_MH__exp__2, mdl_aEW, mdl_MW, mdl_sqrt__aEW, mdl_ee, mdl_MW__exp__2, mdl_sw2, mdl_cw, mdl_sqrt__sw2, mdl_sw, mdl_g1, mdl_gw, mdl_vev, mdl_vev__exp__2, mdl_lam, mdl_yb, mdl_yt, mdl_ytau, mdl_muH, mdl_ee__exp__2, mdl_sw__exp__2, mdl_cw__exp__2; - cxsmpl mdl_complexi, mdl_I1x33, mdl_I2x33, mdl_I3x33, mdl_I4x33; + // Model parameters independent of aS + //double aS; // now retrieved event-by-event (as G) from Fortran (running alphas #373) + double mdl_WH, mdl_WW, mdl_WZ, mdl_WT, mdl_ymtau, mdl_ymt, mdl_ymb, mdl_Gf, aEWM1, mdl_MH, mdl_MZ, mdl_MTA, mdl_MT, mdl_MB, mdl_conjg__CKM3x3, mdl_conjg__CKM1x1, mdl_CKM3x3, mdl_MZ__exp__2, mdl_MZ__exp__4, mdl_sqrt__2, mdl_MH__exp__2, mdl_aEW, mdl_MW, mdl_sqrt__aEW, mdl_ee, mdl_MW__exp__2, mdl_sw2, mdl_cw, mdl_sqrt__sw2, mdl_sw, mdl_g1, mdl_gw, mdl_vev, mdl_vev__exp__2, mdl_lam, mdl_yb, mdl_yt, mdl_ytau, mdl_muH, mdl_ee__exp__2, mdl_sw__exp__2, mdl_cw__exp__2; + cxsmpl mdl_complexi, mdl_I1x33, mdl_I2x33, mdl_I3x33, mdl_I4x33; - // Model couplings independent of aS - // (none) + // Model couplings independent of aS + // (none) - // Model parameters dependent on aS - //double mdl_sqrt__aS, G, mdl_G__exp__2; // now computed event-by-event (running alphas #373) + // Model parameters dependent on aS + //double mdl_sqrt__aS, G, mdl_G__exp__2; // now computed event-by-event (running alphas #373) - // Model couplings dependent on aS - //cxsmpl GC_10, GC_11, GC_12; // now computed event-by-event (running alphas #373) + // Model couplings dependent on aS + //cxsmpl GC_10, GC_11, GC_12; // now computed event-by-event (running alphas #373) - // Set parameters that are unchanged during the run - void setIndependentParameters( SLHAReader& slha ); + // Set parameters that are unchanged during the run + void setIndependentParameters( SLHAReader& slha ); - // Set couplings that are unchanged during the run - void setIndependentCouplings(); + // Set couplings that are unchanged during the run + void setIndependentCouplings(); - // Set parameters that are changed event by event - //void setDependentParameters(); // now computed event-by-event (running alphas #373) + // Set parameters that are changed event by event + //void setDependentParameters(); // now computed event-by-event (running alphas #373) - // Set couplings that are changed event by event - //void setDependentCouplings(); // now computed event-by-event (running alphas #373) + // Set couplings that are changed event by event + //void setDependentCouplings(); // now computed event-by-event (running alphas #373) - // Print parameters that are unchanged during the run - void printIndependentParameters(); + // Print parameters that are unchanged during the run + void printIndependentParameters(); - // Print couplings that are unchanged during the run - void printIndependentCouplings(); + // Print couplings that are unchanged during the run + void printIndependentCouplings(); - // Print parameters that are changed event by event - //void printDependentParameters(); // now computed event-by-event (running alphas #373) + // Print parameters that are changed event by event + //void printDependentParameters(); // now computed event-by-event (running alphas #373) - // Print couplings that are changed event by event - //void printDependentCouplings(); // now computed event-by-event (running alphas #373) + // Print couplings that are changed event by event + //void printDependentCouplings(); // now computed event-by-event (running alphas #373) -private: + private: - static Parameters_sm* instance; -}; + static Parameters_sm* instance; + }; + +} // end namespace mg5amcGpu/mg5amcCpu #else #include #include -// Hardcoded constexpr physics parameters -namespace Parameters_sm // keep the same name rather than HardcodedParameters_sm for simplicity +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { - // Constexpr implementation of sqrt (see https://stackoverflow.com/a/34134071) - double constexpr sqrtNewtonRaphson( double x, double curr, double prev ) + // Hardcoded constexpr physics parameters + namespace Parameters_sm // keep the same name rather than HardcodedParameters_sm for simplicity { - return curr == prev ? curr : sqrtNewtonRaphson( x, 0.5 * ( curr + x / curr ), curr ); - } - double constexpr constexpr_sqrt( double x ) - { - return x >= 0 // && x < std::numeric_limits::infinity() // avoid -Wtautological-constant-compare warning in fast math - ? sqrtNewtonRaphson( x, x, 0 ) - : std::numeric_limits::quiet_NaN(); - } + // Constexpr implementation of sqrt (see https://stackoverflow.com/a/34134071) + double constexpr sqrtNewtonRaphson( double x, double curr, double prev ) + { + return curr == prev ? curr : sqrtNewtonRaphson( x, 0.5 * ( curr + x / curr ), curr ); + } + double constexpr constexpr_sqrt( double x ) + { + return x >= 0 // && x < std::numeric_limits::infinity() // avoid -Wtautological-constant-compare warning in fast math + ? sqrtNewtonRaphson( x, x, 0 ) + : std::numeric_limits::quiet_NaN(); + } - // Constexpr implementation of floor (see https://stackoverflow.com/a/66146159) - constexpr int constexpr_floor( double d ) - { - const int i = static_cast( d ); - return d < i ? i - 1 : i; - } + // Constexpr implementation of floor (see https://stackoverflow.com/a/66146159) + constexpr int constexpr_floor( double d ) + { + const int i = static_cast( d ); + return d < i ? i - 1 : i; + } - // Constexpr implementation of pow - constexpr double constexpr_pow( double base, double exp ) - { - // NB(1): this implementation of constexpr_pow requires exponent >= 0 - assert( exp >= 0 ); // NB would fail at compile time with "error: call to non-‘constexpr’ function ‘void __assert_fail'" - // NB(2): this implementation of constexpr_pow requires an integer exponent - const int iexp = constexpr_floor( exp ); - assert( static_cast( iexp ) == exp ); // NB would fail at compile time with "error: call to non-‘constexpr’ function ‘void __assert_fail'" - // Iterative implementation of pow if exp is a non negative integer - return iexp == 0 ? 1 : base * constexpr_pow( base, iexp - 1 ); + // Constexpr implementation of pow + constexpr double constexpr_pow( double base, double exp ) + { + // NB(1): this implementation of constexpr_pow requires exponent >= 0 + assert( exp >= 0 ); // NB would fail at compile time with "error: call to non-‘constexpr’ function ‘void __assert_fail'" + // NB(2): this implementation of constexpr_pow requires an integer exponent + const int iexp = constexpr_floor( exp ); + assert( static_cast( iexp ) == exp ); // NB would fail at compile time with "error: call to non-‘constexpr’ function ‘void __assert_fail'" + // Iterative implementation of pow if exp is a non negative integer + return iexp == 0 ? 1 : base * constexpr_pow( base, iexp - 1 ); + } + + // Model parameters independent of aS + constexpr double zero = 0; + constexpr double ZERO = 0; + constexpr double mdl_WH = 6.382339e-03; + constexpr double mdl_WW = 2.047600e+00; + constexpr double mdl_WZ = 2.441404e+00; + constexpr double mdl_WT = 1.491500e+00; + constexpr double mdl_ymtau = 1.777000e+00; + constexpr double mdl_ymt = 1.730000e+02; + constexpr double mdl_ymb = 4.700000e+00; + //constexpr double aS = 1.180000e-01; // now retrieved event-by-event (as G) from Fortran (running alphas #373) + constexpr double mdl_Gf = 1.166390e-05; + constexpr double aEWM1 = 1.325070e+02; + constexpr double mdl_MH = 1.250000e+02; + constexpr double mdl_MZ = 9.118800e+01; + constexpr double mdl_MTA = 1.777000e+00; + constexpr double mdl_MT = 1.730000e+02; + constexpr double mdl_MB = 4.700000e+00; + constexpr double mdl_conjg__CKM3x3 = 1.; + constexpr double mdl_conjg__CKM1x1 = 1.; + constexpr double mdl_CKM3x3 = 1.; + constexpr cxsmpl mdl_complexi = cxsmpl( 0., 1. ); + constexpr double mdl_MZ__exp__2 = ( ( mdl_MZ ) * ( mdl_MZ ) ); + constexpr double mdl_MZ__exp__4 = ( ( mdl_MZ ) * ( mdl_MZ ) * ( mdl_MZ ) * ( mdl_MZ ) ); + constexpr double mdl_sqrt__2 = constexpr_sqrt( 2. ); + constexpr double mdl_MH__exp__2 = ( ( mdl_MH ) * ( mdl_MH ) ); + constexpr double mdl_aEW = 1. / aEWM1; + constexpr double mdl_MW = constexpr_sqrt( mdl_MZ__exp__2 / 2. + constexpr_sqrt( mdl_MZ__exp__4 / 4. - ( mdl_aEW * M_PI * mdl_MZ__exp__2 ) / ( mdl_Gf * mdl_sqrt__2 ) ) ); + constexpr double mdl_sqrt__aEW = constexpr_sqrt( mdl_aEW ); + constexpr double mdl_ee = 2. * mdl_sqrt__aEW * constexpr_sqrt( M_PI ); + constexpr double mdl_MW__exp__2 = ( ( mdl_MW ) * ( mdl_MW ) ); + constexpr double mdl_sw2 = 1. - mdl_MW__exp__2 / mdl_MZ__exp__2; + constexpr double mdl_cw = constexpr_sqrt( 1. - mdl_sw2 ); + constexpr double mdl_sqrt__sw2 = constexpr_sqrt( mdl_sw2 ); + constexpr double mdl_sw = mdl_sqrt__sw2; + constexpr double mdl_g1 = mdl_ee / mdl_cw; + constexpr double mdl_gw = mdl_ee / mdl_sw; + constexpr double mdl_vev = ( 2. * mdl_MW * mdl_sw ) / mdl_ee; + constexpr double mdl_vev__exp__2 = ( ( mdl_vev ) * ( mdl_vev ) ); + constexpr double mdl_lam = mdl_MH__exp__2 / ( 2. * mdl_vev__exp__2 ); + constexpr double mdl_yb = ( mdl_ymb * mdl_sqrt__2 ) / mdl_vev; + constexpr double mdl_yt = ( mdl_ymt * mdl_sqrt__2 ) / mdl_vev; + constexpr double mdl_ytau = ( mdl_ymtau * mdl_sqrt__2 ) / mdl_vev; + constexpr double mdl_muH = constexpr_sqrt( mdl_lam * mdl_vev__exp__2 ); + constexpr cxsmpl mdl_I1x33 = mdl_yb * mdl_conjg__CKM3x3; + constexpr cxsmpl mdl_I2x33 = mdl_yt * mdl_conjg__CKM3x3; + constexpr cxsmpl mdl_I3x33 = mdl_CKM3x3 * mdl_yt; + constexpr cxsmpl mdl_I4x33 = mdl_CKM3x3 * mdl_yb; + constexpr double mdl_ee__exp__2 = ( ( mdl_ee ) * ( mdl_ee ) ); + constexpr double mdl_sw__exp__2 = ( ( mdl_sw ) * ( mdl_sw ) ); + constexpr double mdl_cw__exp__2 = ( ( mdl_cw ) * ( mdl_cw ) ); + + // Model couplings independent of aS + // (none) + + // Model parameters dependent on aS + //constexpr double mdl_sqrt__aS = //constexpr_sqrt( aS ); // now computed event-by-event (running alphas #373) + //constexpr double G = 2. * mdl_sqrt__aS * //constexpr_sqrt( M_PI ); // now computed event-by-event (running alphas #373) + //constexpr double mdl_G__exp__2 = ( ( G ) * ( G ) ); // now computed event-by-event (running alphas #373) + + // Model couplings dependent on aS + //constexpr cxsmpl GC_10 = -G; // now computed event-by-event (running alphas #373) + //constexpr cxsmpl GC_11 = mdl_complexi * G; // now computed event-by-event (running alphas #373) + //constexpr cxsmpl GC_12 = mdl_complexi * mdl_G__exp__2; // now computed event-by-event (running alphas #373) + + // Print parameters that are unchanged during the run + void printIndependentParameters(); + + // Print couplings that are unchanged during the run + void printIndependentCouplings(); + + // Print parameters that are changed event by event + //void printDependentParameters(); // now computed event-by-event (running alphas #373) + + // Print couplings that are changed event by event + //void printDependentCouplings(); // now computed event-by-event (running alphas #373) } - // Model parameters independent of aS - constexpr double zero = 0; - constexpr double ZERO = 0; - constexpr double mdl_WH = 6.382339e-03; - constexpr double mdl_WW = 2.047600e+00; - constexpr double mdl_WZ = 2.441404e+00; - constexpr double mdl_WT = 1.491500e+00; - constexpr double mdl_ymtau = 1.777000e+00; - constexpr double mdl_ymt = 1.730000e+02; - constexpr double mdl_ymb = 4.700000e+00; - //constexpr double aS = 1.180000e-01; // now retrieved event-by-event (as G) from Fortran (running alphas #373) - constexpr double mdl_Gf = 1.166390e-05; - constexpr double aEWM1 = 1.325070e+02; - constexpr double mdl_MH = 1.250000e+02; - constexpr double mdl_MZ = 9.118800e+01; - constexpr double mdl_MTA = 1.777000e+00; - constexpr double mdl_MT = 1.730000e+02; - constexpr double mdl_MB = 4.700000e+00; - constexpr double mdl_conjg__CKM3x3 = 1.; - constexpr double mdl_conjg__CKM1x1 = 1.; - constexpr double mdl_CKM3x3 = 1.; - constexpr cxsmpl mdl_complexi = cxsmpl( 0., 1. ); - constexpr double mdl_MZ__exp__2 = ( ( mdl_MZ ) * ( mdl_MZ ) ); - constexpr double mdl_MZ__exp__4 = ( ( mdl_MZ ) * ( mdl_MZ ) * ( mdl_MZ ) * ( mdl_MZ ) ); - constexpr double mdl_sqrt__2 = constexpr_sqrt( 2. ); - constexpr double mdl_MH__exp__2 = ( ( mdl_MH ) * ( mdl_MH ) ); - constexpr double mdl_aEW = 1. / aEWM1; - constexpr double mdl_MW = constexpr_sqrt( mdl_MZ__exp__2 / 2. + constexpr_sqrt( mdl_MZ__exp__4 / 4. - ( mdl_aEW * M_PI * mdl_MZ__exp__2 ) / ( mdl_Gf * mdl_sqrt__2 ) ) ); - constexpr double mdl_sqrt__aEW = constexpr_sqrt( mdl_aEW ); - constexpr double mdl_ee = 2. * mdl_sqrt__aEW * constexpr_sqrt( M_PI ); - constexpr double mdl_MW__exp__2 = ( ( mdl_MW ) * ( mdl_MW ) ); - constexpr double mdl_sw2 = 1. - mdl_MW__exp__2 / mdl_MZ__exp__2; - constexpr double mdl_cw = constexpr_sqrt( 1. - mdl_sw2 ); - constexpr double mdl_sqrt__sw2 = constexpr_sqrt( mdl_sw2 ); - constexpr double mdl_sw = mdl_sqrt__sw2; - constexpr double mdl_g1 = mdl_ee / mdl_cw; - constexpr double mdl_gw = mdl_ee / mdl_sw; - constexpr double mdl_vev = ( 2. * mdl_MW * mdl_sw ) / mdl_ee; - constexpr double mdl_vev__exp__2 = ( ( mdl_vev ) * ( mdl_vev ) ); - constexpr double mdl_lam = mdl_MH__exp__2 / ( 2. * mdl_vev__exp__2 ); - constexpr double mdl_yb = ( mdl_ymb * mdl_sqrt__2 ) / mdl_vev; - constexpr double mdl_yt = ( mdl_ymt * mdl_sqrt__2 ) / mdl_vev; - constexpr double mdl_ytau = ( mdl_ymtau * mdl_sqrt__2 ) / mdl_vev; - constexpr double mdl_muH = constexpr_sqrt( mdl_lam * mdl_vev__exp__2 ); - constexpr cxsmpl mdl_I1x33 = mdl_yb * mdl_conjg__CKM3x3; - constexpr cxsmpl mdl_I2x33 = mdl_yt * mdl_conjg__CKM3x3; - constexpr cxsmpl mdl_I3x33 = mdl_CKM3x3 * mdl_yt; - constexpr cxsmpl mdl_I4x33 = mdl_CKM3x3 * mdl_yb; - constexpr double mdl_ee__exp__2 = ( ( mdl_ee ) * ( mdl_ee ) ); - constexpr double mdl_sw__exp__2 = ( ( mdl_sw ) * ( mdl_sw ) ); - constexpr double mdl_cw__exp__2 = ( ( mdl_cw ) * ( mdl_cw ) ); - - // Model couplings independent of aS - // (none) - - // Model parameters dependent on aS - //constexpr double mdl_sqrt__aS = //constexpr_sqrt( aS ); // now computed event-by-event (running alphas #373) - //constexpr double G = 2. * mdl_sqrt__aS * //constexpr_sqrt( M_PI ); // now computed event-by-event (running alphas #373) - //constexpr double mdl_G__exp__2 = ( ( G ) * ( G ) ); // now computed event-by-event (running alphas #373) - - // Model couplings dependent on aS - //constexpr cxsmpl GC_10 = -G; // now computed event-by-event (running alphas #373) - //constexpr cxsmpl GC_11 = mdl_complexi * G; // now computed event-by-event (running alphas #373) - //constexpr cxsmpl GC_12 = mdl_complexi * mdl_G__exp__2; // now computed event-by-event (running alphas #373) - - // Print parameters that are unchanged during the run - void printIndependentParameters(); - - // Print couplings that are unchanged during the run - void printIndependentCouplings(); - - // Print parameters that are changed event by event - //void printDependentParameters(); // now computed event-by-event (running alphas #373) - - // Print couplings that are changed event by event - //void printDependentCouplings(); // now computed event-by-event (running alphas #373) -} +} // end namespace mg5amcGpu/mg5amcCpu #endif //========================================================================== -namespace Parameters_sm_dependentCouplings +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { - constexpr size_t ndcoup = 3; // #couplings that vary event by event because they depend on the running alphas QCD - constexpr size_t idcoup_GC_10 = 0; - constexpr size_t idcoup_GC_11 = 1; - constexpr size_t idcoup_GC_12 = 2; - struct DependentCouplings_sv + namespace Parameters_sm_dependentCouplings { - cxtype_sv GC_10; - cxtype_sv GC_11; - cxtype_sv GC_12; - }; + constexpr size_t ndcoup = 3; // #couplings that vary event by event because they depend on the running alphas QCD + constexpr size_t idcoup_GC_10 = 0; + constexpr size_t idcoup_GC_11 = 1; + constexpr size_t idcoup_GC_12 = 2; + struct DependentCouplings_sv + { + cxtype_sv GC_10; + cxtype_sv GC_11; + cxtype_sv GC_12; + }; #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wunused-variable" // e.g. <> #pragma GCC diagnostic ignored "-Wunused-parameter" // e.g. <> @@ -218,52 +243,46 @@ namespace Parameters_sm_dependentCouplings #pragma nv_diagnostic push #pragma nv_diag_suppress 177 // e.g. <> #endif - __host__ __device__ inline const DependentCouplings_sv computeDependentCouplings_fromG( const fptype_sv& G_sv ) - { + __host__ __device__ inline const DependentCouplings_sv computeDependentCouplings_fromG( const fptype_sv& G_sv ) + { #ifdef MGONGPU_HARDCODE_PARAM - using namespace Parameters_sm; + using namespace Parameters_sm; #endif - // NB: hardcode cxtype cI(0,1) instead of cxtype (or hardcoded cxsmpl) mdl_complexi (which exists in Parameters_sm) because: - // (1) mdl_complexi is always (0,1); (2) mdl_complexi is undefined in device code; (3) need cxsmpl conversion to cxtype in code below - const cxtype cI( 0., 1. ); - DependentCouplings_sv out; - // Begin SM implementation - no special handling of vectors of floats as in EFT (#439) - { - const fptype_sv& G = G_sv; - // Model parameters dependent on aS - //const fptype_sv mdl_sqrt__aS = constexpr_sqrt( aS ); - //const fptype_sv G = 2. * mdl_sqrt__aS * constexpr_sqrt( M_PI ); - const fptype_sv mdl_G__exp__2 = ( ( G ) * ( G ) ); - // Model couplings dependent on aS - out.GC_10 = -G; - out.GC_11 = cI * G; - out.GC_12 = cI * mdl_G__exp__2; + // NB: hardcode cxtype cI(0,1) instead of cxtype (or hardcoded cxsmpl) mdl_complexi (which exists in Parameters_sm) because: + // (1) mdl_complexi is always (0,1); (2) mdl_complexi is undefined in device code; (3) need cxsmpl conversion to cxtype in code below + const cxtype cI( 0., 1. ); + DependentCouplings_sv out; + // Begin SM implementation - no special handling of vectors of floats as in EFT (#439) + { + const fptype_sv& G = G_sv; + // Model parameters dependent on aS + //const fptype_sv mdl_sqrt__aS = constexpr_sqrt( aS ); + //const fptype_sv G = 2. * mdl_sqrt__aS * constexpr_sqrt( M_PI ); + const fptype_sv mdl_G__exp__2 = ( ( G ) * ( G ) ); + // Model couplings dependent on aS + out.GC_10 = -G; + out.GC_11 = cI * G; + out.GC_12 = cI * mdl_G__exp__2; + } + // End SM implementation - no special handling of vectors of floats as in EFT (#439) + return out; } - // End SM implementation - no special handling of vectors of floats as in EFT (#439) - return out; - } #ifdef __CUDACC__ #pragma GCC diagnostic pop #pragma nv_diagnostic pop #endif -} + } -//========================================================================== + //========================================================================== -namespace Parameters_sm_independentCouplings -{ - constexpr size_t nicoup = 0; // #couplings that are fixed for all events because they do not depend on the running alphas QCD - // NB: there are no aS-independent couplings in this physics process -} + namespace Parameters_sm_independentCouplings + { + constexpr size_t nicoup = 0; // #couplings that are fixed for all events because they do not depend on the running alphas QCD + // NB: there are no aS-independent couplings in this physics process + } -//========================================================================== + //========================================================================== -#ifdef __CUDACC__ -namespace mg5amcGpu -#else -namespace mg5amcCpu -#endif -{ #pragma GCC diagnostic push #ifndef __clang__ #pragma GCC diagnostic ignored "-Wunused-but-set-variable" // e.g. <> @@ -291,7 +310,8 @@ namespace mg5amcCpu return; } #pragma GCC diagnostic pop -} + +} // end namespace mg5amcGpu/mg5amcCpu //========================================================================== diff --git a/epochX/cudacpp/gg_tt01g.mad/src/cudacpp_src.mk b/epochX/cudacpp/gg_tt01g.mad/src/cudacpp_src.mk index 21b6d924ff..554d7a704c 100644 --- a/epochX/cudacpp/gg_tt01g.mad/src/cudacpp_src.mk +++ b/epochX/cudacpp/gg_tt01g.mad/src/cudacpp_src.mk @@ -38,7 +38,13 @@ endif #------------------------------------------------------------------------------- -#=== Configure ccache for CUDA and C++ builds +#=== Configure the CUDA compiler (note: NVCC is already exported including ccache) + +###$(info NVCC=$(NVCC)) + +#------------------------------------------------------------------------------- + +#=== Configure ccache for C++ builds (note: NVCC is already exported including ccache) # Enable ccache if USECCACHE=1 ifeq ($(USECCACHE)$(shell echo $(CXX) | grep ccache),1) @@ -47,11 +53,6 @@ endif #ifeq ($(USECCACHE)$(shell echo $(AR) | grep ccache),1) # override AR:=ccache $(AR) #endif -#ifneq ($(NVCC),) -# ifeq ($(USECCACHE)$(shell echo $(NVCC) | grep ccache),1) -# override NVCC:=ccache $(NVCC) -# endif -#endif #------------------------------------------------------------------------------- @@ -115,7 +116,9 @@ else ifneq ($(shell $(CXX) --version | grep ^nvc++),) # support nvc++ #531 $(error Unknown AVX='$(AVX)': only 'none', 'sse4', 'avx2', '512y' and '512z' are supported) endif else - ifeq ($(AVX),sse4) + ifeq ($(AVX),none) + override AVXFLAGS = -march=x86-64 # no SIMD (see #588) + else ifeq ($(AVX),sse4) override AVXFLAGS = -march=nehalem # SSE4.2 with 128 width (xmm registers) else ifeq ($(AVX),avx2) override AVXFLAGS = -march=haswell # AVX2 with 256 width (ymm registers) [DEFAULT for clang] @@ -216,7 +219,7 @@ MG5AMC_COMMONLIB = mg5amc_common all.$(TAG): $(BUILDDIR)/.build.$(TAG) $(LIBDIR)/.build.$(TAG) $(LIBDIR)/lib$(MG5AMC_COMMONLIB).so # Target (and build options): debug -debug: OPTFLAGS = -g -O0 -DDEBUG2 +debug: OPTFLAGS = -g -O0 debug: all.$(TAG) # Target: tag-specific build lockfiles @@ -237,17 +240,31 @@ $(LIBDIR)/.build.$(TAG): # Generic target and build rules: objects from C++ compilation $(BUILDDIR)/%.o : %.cc *.h $(BUILDDIR)/.build.$(TAG) - @if [ ! -d $(BUILDDIR) ]; then mkdir -p $(BUILDDIR); fi - $(CXX) $(CPPFLAGS) $(CXXFLAGS) -c $< -o $@ + @if [ ! -d $(BUILDDIR) ]; then echo "mkdir -p $(BUILDDIR)"; mkdir -p $(BUILDDIR); fi + $(CXX) $(CPPFLAGS) $(CXXFLAGS) -fPIC -c $< -o $@ + +# Generic target and build rules: objects from CUDA compilation +$(BUILDDIR)/%_cu.o : %.cc *.h $(BUILDDIR)/.build.$(TAG) + @if [ ! -d $(BUILDDIR) ]; then echo "mkdir -p $(BUILDDIR)"; mkdir -p $(BUILDDIR); fi + $(NVCC) $(CPPFLAGS) $(CUFLAGS) -Xcompiler -fPIC -c -x cu $< -o $@ #------------------------------------------------------------------------------- cxx_objects=$(addprefix $(BUILDDIR)/, Parameters_sm.o read_slha.o) +ifneq ($(NVCC),) +cu_objects=$(addprefix $(BUILDDIR)/, Parameters_sm_cu.o) +endif # Target (and build rules): common (src) library +ifneq ($(NVCC),) +$(LIBDIR)/lib$(MG5AMC_COMMONLIB).so : $(cxx_objects) $(cu_objects) + @if [ ! -d $(LIBDIR) ]; then echo "mkdir -p $(LIBDIR)"; mkdir -p $(LIBDIR); fi + $(NVCC) -shared -o $@ $(cxx_objects) $(cu_objects) +else $(LIBDIR)/lib$(MG5AMC_COMMONLIB).so : $(cxx_objects) @if [ ! -d $(LIBDIR) ]; then echo "mkdir -p $(LIBDIR)"; mkdir -p $(LIBDIR); fi - $(CXX) -shared -o$@ $(cxx_objects) + $(CXX) -shared -o $@ $(cxx_objects) +endif #------------------------------------------------------------------------------- diff --git a/epochX/cudacpp/gg_tt01g.mad/src/mgOnGpuConfig.h b/epochX/cudacpp/gg_tt01g.mad/src/mgOnGpuConfig.h index 881353abac..cacab1031a 100644 --- a/epochX/cudacpp/gg_tt01g.mad/src/mgOnGpuConfig.h +++ b/epochX/cudacpp/gg_tt01g.mad/src/mgOnGpuConfig.h @@ -98,6 +98,7 @@ #endif #endif +// NB: namespace mgOnGpu includes types which are defined in exactly the same way for CPU and GPU builds (see #318 and #725) namespace mgOnGpu { diff --git a/epochX/cudacpp/gg_tt01g.mad/src/mgOnGpuCxtypes.h b/epochX/cudacpp/gg_tt01g.mad/src/mgOnGpuCxtypes.h index 0cb2f1db7e..b56348bc58 100644 --- a/epochX/cudacpp/gg_tt01g.mad/src/mgOnGpuCxtypes.h +++ b/epochX/cudacpp/gg_tt01g.mad/src/mgOnGpuCxtypes.h @@ -43,8 +43,12 @@ // COMPLEX TYPES: SIMPLE COMPLEX CLASS (cxsmpl) //========================================================================== +// NB: namespace mgOnGpu includes types which are defined in exactly the same way for CPU and GPU builds (see #318 and #725) namespace mgOnGpu /* clang-format off */ { + // The number of floating point types in a complex type (real, imaginary) + constexpr int nx2 = 2; + // --- Type definition (simple complex type derived from cxtype_v) template class cxsmpl @@ -78,128 +82,139 @@ namespace mgOnGpu /* clang-format off */ using mgOnGpu::cxsmpl; // Printout to stream for user defined types -template -inline __host__ __device__ std::ostream& -operator<<( std::ostream& out, const cxsmpl& c ) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { - out << std::complex( c.real(), c.imag() ); - return out; -} + template + inline __host__ std::ostream& + operator<<( std::ostream& out, const cxsmpl& c ) + { + out << std::complex( c.real(), c.imag() ); + return out; + } -// Operators for cxsmpl -template -inline __host__ __device__ constexpr cxsmpl -operator+( const cxsmpl a ) -{ - return a; -} + // Operators for cxsmpl + template + inline __host__ __device__ constexpr cxsmpl + operator+( const cxsmpl a ) + { + return a; + } -template -inline __host__ __device__ constexpr cxsmpl -operator-( const cxsmpl& a ) -{ - return cxsmpl( -a.real(), -a.imag() ); -} + template + inline __host__ __device__ constexpr cxsmpl + operator-( const cxsmpl& a ) + { + return cxsmpl( -a.real(), -a.imag() ); + } -template -inline __host__ __device__ constexpr cxsmpl -operator+( const cxsmpl& a, const cxsmpl& b ) -{ - return cxsmpl( a.real() + b.real(), a.imag() + b.imag() ); -} + template + inline __host__ __device__ constexpr cxsmpl + operator+( const cxsmpl& a, const cxsmpl& b ) + { + return cxsmpl( a.real() + b.real(), a.imag() + b.imag() ); + } -template -inline __host__ __device__ constexpr cxsmpl -operator+( const FP& a, const cxsmpl& b ) -{ - return cxsmpl( a, 0 ) + b; -} + template + inline __host__ __device__ constexpr cxsmpl + operator+( const FP& a, const cxsmpl& b ) + { + return cxsmpl( a, 0 ) + b; + } -template -inline __host__ __device__ constexpr cxsmpl -operator-( const cxsmpl& a, const cxsmpl& b ) -{ - return cxsmpl( a.real() - b.real(), a.imag() - b.imag() ); -} + template + inline __host__ __device__ constexpr cxsmpl + operator-( const cxsmpl& a, const cxsmpl& b ) + { + return cxsmpl( a.real() - b.real(), a.imag() - b.imag() ); + } -template -inline __host__ __device__ constexpr cxsmpl -operator-( const FP& a, const cxsmpl& b ) -{ - return cxsmpl( a, 0 ) - b; -} + template + inline __host__ __device__ constexpr cxsmpl + operator-( const FP& a, const cxsmpl& b ) + { + return cxsmpl( a, 0 ) - b; + } -template -inline __host__ __device__ constexpr cxsmpl -operator*( const cxsmpl& a, const cxsmpl& b ) -{ - return cxsmpl( a.real() * b.real() - a.imag() * b.imag(), a.imag() * b.real() + a.real() * b.imag() ); -} + template + inline __host__ __device__ constexpr cxsmpl + operator*( const cxsmpl& a, const cxsmpl& b ) + { + return cxsmpl( a.real() * b.real() - a.imag() * b.imag(), a.imag() * b.real() + a.real() * b.imag() ); + } -template -inline __host__ __device__ constexpr cxsmpl -operator*( const FP& a, const cxsmpl& b ) -{ - return cxsmpl( a, 0 ) * b; -} + template + inline __host__ __device__ constexpr cxsmpl + operator*( const FP& a, const cxsmpl& b ) + { + return cxsmpl( a, 0 ) * b; + } -inline __host__ __device__ constexpr cxsmpl -operator*( const double& a, const cxsmpl& b ) -{ - return cxsmpl( a, 0 ) * b; -} + inline __host__ __device__ constexpr cxsmpl + operator*( const double& a, const cxsmpl& b ) + { + return cxsmpl( a, 0 ) * b; + } -template -inline __host__ __device__ constexpr cxsmpl -operator/( const cxsmpl& a, const cxsmpl& b ) -{ - FP bnorm = b.real() * b.real() + b.imag() * b.imag(); - return cxsmpl( ( a.real() * b.real() + a.imag() * b.imag() ) / bnorm, - ( a.imag() * b.real() - a.real() * b.imag() ) / bnorm ); -} + template + inline __host__ __device__ constexpr cxsmpl + operator/( const cxsmpl& a, const cxsmpl& b ) + { + FP bnorm = b.real() * b.real() + b.imag() * b.imag(); + return cxsmpl( ( a.real() * b.real() + a.imag() * b.imag() ) / bnorm, + ( a.imag() * b.real() - a.real() * b.imag() ) / bnorm ); + } -template -inline __host__ __device__ constexpr cxsmpl -operator/( const FP& a, const cxsmpl& b ) -{ - return cxsmpl( a, 0 ) / b; -} + template + inline __host__ __device__ constexpr cxsmpl + operator/( const FP& a, const cxsmpl& b ) + { + return cxsmpl( a, 0 ) / b; + } -template -inline __host__ __device__ constexpr cxsmpl -operator+( const cxsmpl& a, const FP& b ) -{ - return a + cxsmpl( b, 0 ); -} + template + inline __host__ __device__ constexpr cxsmpl + operator+( const cxsmpl& a, const FP& b ) + { + return a + cxsmpl( b, 0 ); + } -template -inline __host__ __device__ constexpr cxsmpl -operator-( const cxsmpl& a, const FP& b ) -{ - return a - cxsmpl( b, 0 ); -} + template + inline __host__ __device__ constexpr cxsmpl + operator-( const cxsmpl& a, const FP& b ) + { + return a - cxsmpl( b, 0 ); + } -template -inline __host__ __device__ constexpr cxsmpl -operator*( const cxsmpl& a, const FP& b ) -{ - return a * cxsmpl( b, 0 ); -} + template + inline __host__ __device__ constexpr cxsmpl + operator*( const cxsmpl& a, const FP& b ) + { + return a * cxsmpl( b, 0 ); + } -template -inline __host__ __device__ constexpr cxsmpl -operator/( const cxsmpl& a, const FP& b ) -{ - return a / cxsmpl( b, 0 ); + template + inline __host__ __device__ constexpr cxsmpl + operator/( const cxsmpl& a, const FP& b ) + { + return a / cxsmpl( b, 0 ); + } } //========================================================================== // COMPLEX TYPES: (PLATFORM-SPECIFIC) TYPEDEFS //========================================================================== -namespace mgOnGpu +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { - // --- Type definitions (complex type: cxtype) #ifdef __CUDACC__ // cuda #if defined MGONGPU_CUCXTYPE_THRUST @@ -221,390 +236,402 @@ namespace mgOnGpu #endif #endif - // The number of floating point types in a complex type (real, imaginary) - constexpr int nx2 = 2; - // SANITY CHECK: memory access may be based on casts of fptype[2] to cxtype (e.g. for wavefunctions) - static_assert( sizeof( cxtype ) == nx2 * sizeof( fptype ), "sizeof(cxtype) is not 2*sizeof(fptype)" ); + static_assert( sizeof( cxtype ) == mgOnGpu::nx2 * sizeof( fptype ), "sizeof(cxtype) is not 2*sizeof(fptype)" ); } -// Expose typedefs and operators outside the namespace -using mgOnGpu::cxtype; +// DANGEROUS! this was mixing different cxtype definitions for CPU and GPU builds (see #318 and #725) +// DO NOT expose typedefs and operators outside the namespace +//using mgOnGpu::cxtype; //========================================================================== // COMPLEX TYPES: (PLATFORM-SPECIFIC) FUNCTIONS AND OPERATORS //========================================================================== +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif +{ #if defined MGONGPU_CUCXTYPE_CXSMPL or defined MGONGPU_CPPCXTYPE_CXSMPL -//------------------------------ -// CUDA or C++ - using cxsmpl -//------------------------------ + //------------------------------ + // CUDA or C++ - using cxsmpl + //------------------------------ -inline __host__ __device__ cxtype -cxmake( const fptype& r, const fptype& i ) -{ - return cxtype( r, i ); // cxsmpl constructor -} + inline __host__ __device__ cxtype + cxmake( const fptype& r, const fptype& i ) + { + return cxtype( r, i ); // cxsmpl constructor + } -inline __host__ __device__ fptype -cxreal( const cxtype& c ) -{ - return c.real(); // cxsmpl::real() -} + inline __host__ __device__ fptype + cxreal( const cxtype& c ) + { + return c.real(); // cxsmpl::real() + } -inline __host__ __device__ fptype -cximag( const cxtype& c ) -{ - return c.imag(); // cxsmpl::imag() -} + inline __host__ __device__ fptype + cximag( const cxtype& c ) + { + return c.imag(); // cxsmpl::imag() + } -inline __host__ __device__ cxtype -cxconj( const cxtype& c ) -{ - return conj( c ); // conj( cxsmpl ) -} + inline __host__ __device__ cxtype + cxconj( const cxtype& c ) + { + return conj( c ); // conj( cxsmpl ) + } -inline __host__ cxtype // NOT __device__ -cxmake( const std::complex& c ) // std::complex to cxsmpl (float-to-float or float-to-double) -{ - return cxmake( c.real(), c.imag() ); -} + inline __host__ cxtype // NOT __device__ + cxmake( const std::complex& c ) // std::complex to cxsmpl (float-to-float or float-to-double) + { + return cxmake( c.real(), c.imag() ); + } -inline __host__ cxtype // NOT __device__ -cxmake( const std::complex& c ) // std::complex to cxsmpl (double-to-float or double-to-double) -{ - return cxmake( c.real(), c.imag() ); -} + inline __host__ cxtype // NOT __device__ + cxmake( const std::complex& c ) // std::complex to cxsmpl (double-to-float or double-to-double) + { + return cxmake( c.real(), c.imag() ); + } #endif // #if defined MGONGPU_CUCXTYPE_CXSMPL or defined MGONGPU_CPPCXTYPE_CXSMPL -//========================================================================== + //========================================================================== #if defined __CUDACC__ and defined MGONGPU_CUCXTYPE_THRUST // cuda + thrust -//------------------------------ -// CUDA - using thrust::complex -//------------------------------ + //------------------------------ + // CUDA - using thrust::complex + //------------------------------ -inline __host__ __device__ cxtype -cxmake( const fptype& r, const fptype& i ) -{ - return cxtype( r, i ); // thrust::complex constructor -} + inline __host__ __device__ cxtype + cxmake( const fptype& r, const fptype& i ) + { + return cxtype( r, i ); // thrust::complex constructor + } -inline __host__ __device__ fptype -cxreal( const cxtype& c ) -{ - return c.real(); // thrust::complex::real() -} + inline __host__ __device__ fptype + cxreal( const cxtype& c ) + { + return c.real(); // thrust::complex::real() + } -inline __host__ __device__ fptype -cximag( const cxtype& c ) -{ - return c.imag(); // thrust::complex::imag() -} + inline __host__ __device__ fptype + cximag( const cxtype& c ) + { + return c.imag(); // thrust::complex::imag() + } -inline __host__ __device__ cxtype -cxconj( const cxtype& c ) -{ - return conj( c ); // conj( thrust::complex ) -} + inline __host__ __device__ cxtype + cxconj( const cxtype& c ) + { + return conj( c ); // conj( thrust::complex ) + } -inline __host__ __device__ const cxtype& -cxmake( const cxtype& c ) -{ - return c; -} + inline __host__ __device__ const cxtype& + cxmake( const cxtype& c ) + { + return c; + } #endif // #if defined __CUDACC__ and defined MGONGPU_CUCXTYPE_THRUST -//========================================================================== + //========================================================================== #if defined __CUDACC__ and defined MGONGPU_CUCXTYPE_CUCOMPLEX // cuda + cucomplex -//------------------------------ -// CUDA - using cuComplex -//------------------------------ + //------------------------------ + // CUDA - using cuComplex + //------------------------------ #if defined MGONGPU_FPTYPE_DOUBLE // cuda + cucomplex + double -//+++++++++++++++++++++++++ -// cuDoubleComplex ONLY -//+++++++++++++++++++++++++ + //+++++++++++++++++++++++++ + // cuDoubleComplex ONLY + //+++++++++++++++++++++++++ -inline __host__ __device__ cxtype -cxmake( const fptype& r, const fptype& i ) -{ - return make_cuDoubleComplex( r, i ); -} + inline __host__ __device__ cxtype + cxmake( const fptype& r, const fptype& i ) + { + return make_cuDoubleComplex( r, i ); + } -inline __host__ __device__ fptype -cxreal( const cxtype& c ) -{ - return cuCreal( c ); // returns by value -} + inline __host__ __device__ fptype + cxreal( const cxtype& c ) + { + return cuCreal( c ); // returns by value + } -inline __host__ __device__ fptype -cximag( const cxtype& c ) -{ - return cuCimag( c ); // returns by value -} + inline __host__ __device__ fptype + cximag( const cxtype& c ) + { + return cuCimag( c ); // returns by value + } -inline __host__ __device__ cxtype -operator+( const cxtype& a, const cxtype& b ) -{ - return cuCadd( a, b ); -} + inline __host__ __device__ cxtype + operator+( const cxtype& a, const cxtype& b ) + { + return cuCadd( a, b ); + } -inline __host__ __device__ cxtype& -operator+=( cxtype& a, const cxtype& b ) -{ - a = cuCadd( a, b ); - return a; -} + inline __host__ __device__ cxtype& + operator+=( cxtype& a, const cxtype& b ) + { + a = cuCadd( a, b ); + return a; + } -inline __host__ __device__ cxtype -operator-( const cxtype& a, const cxtype& b ) -{ - return cuCsub( a, b ); -} + inline __host__ __device__ cxtype + operator-( const cxtype& a, const cxtype& b ) + { + return cuCsub( a, b ); + } -inline __host__ __device__ cxtype& -operator-=( cxtype& a, const cxtype& b ) -{ - a = cuCsub( a, b ); - return a; -} + inline __host__ __device__ cxtype& + operator-=( cxtype& a, const cxtype& b ) + { + a = cuCsub( a, b ); + return a; + } -inline __host__ __device__ cxtype -operator*( const cxtype& a, const cxtype& b ) -{ - return cuCmul( a, b ); -} + inline __host__ __device__ cxtype + operator*( const cxtype& a, const cxtype& b ) + { + return cuCmul( a, b ); + } -inline __host__ __device__ cxtype -operator/( const cxtype& a, const cxtype& b ) -{ - return cuCdiv( a, b ); -} + inline __host__ __device__ cxtype + operator/( const cxtype& a, const cxtype& b ) + { + return cuCdiv( a, b ); + } #elif defined MGONGPU_FPTYPE_FLOAT // cuda + cucomplex + float -//+++++++++++++++++++++++++ -// cuFloatComplex ONLY -//+++++++++++++++++++++++++ + //+++++++++++++++++++++++++ + // cuFloatComplex ONLY + //+++++++++++++++++++++++++ -inline __host__ __device__ cxtype -cxmake( const fptype& r, const fptype& i ) -{ - return make_cuFloatComplex( r, i ); -} + inline __host__ __device__ cxtype + cxmake( const fptype& r, const fptype& i ) + { + return make_cuFloatComplex( r, i ); + } -inline __host__ __device__ fptype -cxreal( const cxtype& c ) -{ - return cuCrealf( c ); // returns by value -} + inline __host__ __device__ fptype + cxreal( const cxtype& c ) + { + return cuCrealf( c ); // returns by value + } -inline __host__ __device__ fptype -cximag( const cxtype& c ) -{ - return cuCimagf( c ); // returns by value -} + inline __host__ __device__ fptype + cximag( const cxtype& c ) + { + return cuCimagf( c ); // returns by value + } -inline __host__ __device__ cxtype -operator+( const cxtype& a, const cxtype& b ) -{ - return cuCaddf( a, b ); -} + inline __host__ __device__ cxtype + operator+( const cxtype& a, const cxtype& b ) + { + return cuCaddf( a, b ); + } -inline __host__ __device__ cxtype& -operator+=( cxtype& a, const cxtype& b ) -{ - a = cuCaddf( a, b ); - return a; -} + inline __host__ __device__ cxtype& + operator+=( cxtype& a, const cxtype& b ) + { + a = cuCaddf( a, b ); + return a; + } -inline __host__ __device__ cxtype -operator-( const cxtype& a, const cxtype& b ) -{ - return cuCsubf( a, b ); -} + inline __host__ __device__ cxtype + operator-( const cxtype& a, const cxtype& b ) + { + return cuCsubf( a, b ); + } -inline __host__ __device__ cxtype& -operator-=( cxtype& a, const cxtype& b ) -{ - a = cuCsubf( a, b ); - return a; -} + inline __host__ __device__ cxtype& + operator-=( cxtype& a, const cxtype& b ) + { + a = cuCsubf( a, b ); + return a; + } -inline __host__ __device__ cxtype -operator*( const cxtype& a, const cxtype& b ) -{ - return cuCmulf( a, b ); -} + inline __host__ __device__ cxtype + operator*( const cxtype& a, const cxtype& b ) + { + return cuCmulf( a, b ); + } -inline __host__ __device__ cxtype -operator/( const cxtype& a, const cxtype& b ) -{ - return cuCdivf( a, b ); -} + inline __host__ __device__ cxtype + operator/( const cxtype& a, const cxtype& b ) + { + return cuCdivf( a, b ); + } -inline __host__ cxtype // NOT __device__ -cxmake( const std::complex& c ) // std::complex to cucomplex (cast double-to-float) -{ - return cxmake( (fptype)c.real(), (fptype)c.imag() ); -} + inline __host__ cxtype // NOT __device__ + cxmake( const std::complex& c ) // std::complex to cucomplex (cast double-to-float) + { + return cxmake( (fptype)c.real(), (fptype)c.imag() ); + } #endif -//+++++++++++++++++++++++++ -// cuDoubleComplex OR -// cuFloatComplex -//+++++++++++++++++++++++++ + //+++++++++++++++++++++++++ + // cuDoubleComplex OR + // cuFloatComplex + //+++++++++++++++++++++++++ -inline __host__ __device__ cxtype -operator+( const cxtype a ) -{ - return a; -} + inline __host__ __device__ cxtype + operator+( const cxtype a ) + { + return a; + } -inline __host__ __device__ cxtype -operator-( const cxtype& a ) -{ - return cxmake( -cxreal( a ), -cximag( a ) ); -} + inline __host__ __device__ cxtype + operator-( const cxtype& a ) + { + return cxmake( -cxreal( a ), -cximag( a ) ); + } -inline __host__ __device__ cxtype -operator+( const fptype& a, const cxtype& b ) -{ - return cxmake( a, 0 ) + b; -} + inline __host__ __device__ cxtype + operator+( const fptype& a, const cxtype& b ) + { + return cxmake( a, 0 ) + b; + } -inline __host__ __device__ cxtype -operator-( const fptype& a, const cxtype& b ) -{ - return cxmake( a, 0 ) - b; -} + inline __host__ __device__ cxtype + operator-( const fptype& a, const cxtype& b ) + { + return cxmake( a, 0 ) - b; + } -inline __host__ __device__ cxtype -operator*( const fptype& a, const cxtype& b ) -{ - return cxmake( a, 0 ) * b; -} + inline __host__ __device__ cxtype + operator*( const fptype& a, const cxtype& b ) + { + return cxmake( a, 0 ) * b; + } -inline __host__ __device__ cxtype -operator/( const fptype& a, const cxtype& b ) -{ - return cxmake( a, 0 ) / b; -} + inline __host__ __device__ cxtype + operator/( const fptype& a, const cxtype& b ) + { + return cxmake( a, 0 ) / b; + } -inline __host__ __device__ cxtype -operator+( const cxtype& a, const fptype& b ) -{ - return a + cxmake( b, 0 ); -} + inline __host__ __device__ cxtype + operator+( const cxtype& a, const fptype& b ) + { + return a + cxmake( b, 0 ); + } -inline __host__ __device__ cxtype -operator-( const cxtype& a, const fptype& b ) -{ - return a - cxmake( b, 0 ); -} + inline __host__ __device__ cxtype + operator-( const cxtype& a, const fptype& b ) + { + return a - cxmake( b, 0 ); + } -inline __host__ __device__ cxtype -operator*( const cxtype& a, const fptype& b ) -{ - return a * cxmake( b, 0 ); -} + inline __host__ __device__ cxtype + operator*( const cxtype& a, const fptype& b ) + { + return a * cxmake( b, 0 ); + } -inline __host__ __device__ cxtype -operator/( const cxtype& a, const fptype& b ) -{ - return a / cxmake( b, 0 ); -} + inline __host__ __device__ cxtype + operator/( const cxtype& a, const fptype& b ) + { + return a / cxmake( b, 0 ); + } -inline __host__ __device__ cxtype -cxconj( const cxtype& c ) -{ - return cxmake( cxreal( c ), -cximag( c ) ); -} + inline __host__ __device__ cxtype + cxconj( const cxtype& c ) + { + return cxmake( cxreal( c ), -cximag( c ) ); + } -inline __host__ cxtype // NOT __device__ -cxmake( const std::complex& c ) // std::complex to cucomplex (float-to-float or double-to-double) -{ - return cxmake( c.real(), c.imag() ); -} + inline __host__ cxtype // NOT __device__ + cxmake( const std::complex& c ) // std::complex to cucomplex (float-to-float or double-to-double) + { + return cxmake( c.real(), c.imag() ); + } #endif // #if defined __CUDACC__ and defined MGONGPU_CUCXTYPE_CUCOMPLEX -//========================================================================== + //========================================================================== #if not defined __CUDACC__ and defined MGONGPU_CPPCXTYPE_STDCOMPLEX // c++ + stdcomplex -//------------------------------ -// C++ - using std::complex -//------------------------------ + //------------------------------ + // C++ - using std::complex + //------------------------------ -inline cxtype -cxmake( const fptype& r, const fptype& i ) -{ - return cxtype( r, i ); // std::complex constructor -} + inline cxtype + cxmake( const fptype& r, const fptype& i ) + { + return cxtype( r, i ); // std::complex constructor + } -inline fptype -cxreal( const cxtype& c ) -{ - return c.real(); // std::complex::real() -} + inline fptype + cxreal( const cxtype& c ) + { + return c.real(); // std::complex::real() + } -inline fptype -cximag( const cxtype& c ) -{ - return c.imag(); // std::complex::imag() -} + inline fptype + cximag( const cxtype& c ) + { + return c.imag(); // std::complex::imag() + } -inline cxtype -cxconj( const cxtype& c ) -{ - return conj( c ); // conj( std::complex ) -} + inline cxtype + cxconj( const cxtype& c ) + { + return conj( c ); // conj( std::complex ) + } -inline const cxtype& -cxmake( const cxtype& c ) // std::complex to std::complex (float-to-float or double-to-double) -{ - return c; -} + inline const cxtype& + cxmake( const cxtype& c ) // std::complex to std::complex (float-to-float or double-to-double) + { + return c; + } #if defined MGONGPU_FPTYPE_FLOAT -inline cxtype -cxmake( const std::complex& c ) // std::complex to std::complex (cast double-to-float) -{ - return cxmake( (fptype)c.real(), (fptype)c.imag() ); -} + inline cxtype + cxmake( const std::complex& c ) // std::complex to std::complex (cast double-to-float) + { + return cxmake( (fptype)c.real(), (fptype)c.imag() ); + } #endif #endif // #if not defined __CUDACC__ and defined MGONGPU_CPPCXTYPE_STDCOMPLEX -//========================================================================== + //========================================================================== -inline __host__ __device__ const cxtype -cxmake( const cxsmpl& c ) // cxsmpl to cxtype (float-to-float or float-to-double) -{ - return cxmake( c.real(), c.imag() ); -} + inline __host__ __device__ const cxtype + cxmake( const cxsmpl& c ) // cxsmpl to cxtype (float-to-float or float-to-double) + { + return cxmake( c.real(), c.imag() ); + } -inline __host__ __device__ const cxtype -cxmake( const cxsmpl& c ) // cxsmpl to cxtype (double-to-float or double-to-double) -{ - return cxmake( c.real(), c.imag() ); -} + inline __host__ __device__ const cxtype + cxmake( const cxsmpl& c ) // cxsmpl to cxtype (double-to-float or double-to-double) + { + return cxmake( c.real(), c.imag() ); + } + +} // end namespace mg5amcGpu/mg5amcCpu //========================================================================== // COMPLEX TYPES: WRAPPER OVER RI FLOATING POINT PAIR (cxtype_ref) //========================================================================== -namespace mgOnGpu /* clang-format off */ +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { // The cxtype_ref class (a non-const reference to two fp variables) was originally designed for cxtype_v::operator[] // It used to be included in the code only when MGONGPU_HAS_CPPCXTYPEV_BRK (originally MGONGPU_HAS_CPPCXTYPE_REF) is defined @@ -615,23 +642,30 @@ namespace mgOnGpu /* clang-format off */ cxtype_ref() = delete; cxtype_ref( const cxtype_ref& ) = delete; cxtype_ref( cxtype_ref&& ) = default; // copy refs - __host__ __device__ cxtype_ref( fptype& r, fptype& i ) : m_preal( &r ), m_pimag( &i ) {} // copy refs + __host__ __device__ cxtype_ref( fptype& r, fptype& i ) + : m_preal( &r ), m_pimag( &i ) {} // copy refs cxtype_ref& operator=( const cxtype_ref& ) = delete; //__host__ __device__ cxtype_ref& operator=( cxtype_ref&& c ) {...} // REMOVED! Should copy refs or copy values? No longer needed in cxternary - __host__ __device__ cxtype_ref& operator=( const cxtype& c ) { *m_preal = cxreal( c ); *m_pimag = cximag( c ); return *this; } // copy values + __host__ __device__ cxtype_ref& operator=( const cxtype& c ) + { + *m_preal = cxreal( c ); + *m_pimag = cximag( c ); + return *this; + } // copy values __host__ __device__ operator cxtype() const { return cxmake( *m_preal, *m_pimag ); } private: fptype *m_preal, *m_pimag; // RI }; -} /* clang-format on */ -// Printout to stream for user defined types -inline __host__ __device__ std::ostream& -operator<<( std::ostream& out, const mgOnGpu::cxtype_ref& c ) -{ - out << (cxtype)c; - return out; -} + // Printout to stream for user defined types + inline __host__ __device__ std::ostream& + operator<<( std::ostream& out, const cxtype_ref& c ) + { + out << (cxtype)c; + return out; + } + +} // end namespace mg5amcGpu/mg5amcCpu //========================================================================== diff --git a/epochX/cudacpp/gg_tt01g.mad/src/mgOnGpuFptypes.h b/epochX/cudacpp/gg_tt01g.mad/src/mgOnGpuFptypes.h index a1cde16a67..905c97d700 100644 --- a/epochX/cudacpp/gg_tt01g.mad/src/mgOnGpuFptypes.h +++ b/epochX/cudacpp/gg_tt01g.mad/src/mgOnGpuFptypes.h @@ -11,82 +11,91 @@ #include #include -//========================================================================== - -#ifdef __CUDACC__ // cuda - -//------------------------------ -// Floating point types - Cuda -//------------------------------ - -/* -inline __host__ __device__ fptype -fpmax( const fptype& a, const fptype& b ) -{ - return max( a, b ); -} - -inline __host__ __device__ fptype -fpmin( const fptype& a, const fptype& b ) -{ - return min( a, b ); -} -*/ - -inline __host__ __device__ const fptype& -fpmax( const fptype& a, const fptype& b ) +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { - return ( ( b < a ) ? a : b ); -} + //========================================================================== -inline __host__ __device__ const fptype& -fpmin( const fptype& a, const fptype& b ) -{ - return ( ( a < b ) ? a : b ); -} +#ifdef __CUDACC__ // cuda -inline __host__ __device__ fptype -fpsqrt( const fptype& f ) -{ + //------------------------------ + // Floating point types - Cuda + //------------------------------ + + /* + inline __host__ __device__ fptype + fpmax( const fptype& a, const fptype& b ) + { + return max( a, b ); + } + + inline __host__ __device__ fptype + fpmin( const fptype& a, const fptype& b ) + { + return min( a, b ); + } + */ + + inline __host__ __device__ const fptype& + fpmax( const fptype& a, const fptype& b ) + { + return ( ( b < a ) ? a : b ); + } + + inline __host__ __device__ const fptype& + fpmin( const fptype& a, const fptype& b ) + { + return ( ( a < b ) ? a : b ); + } + + inline __host__ __device__ fptype + fpsqrt( const fptype& f ) + { #if defined MGONGPU_FPTYPE_FLOAT - // See https://docs.nvidia.com/cuda/cuda-math-api/group__CUDA__MATH__SINGLE.html - return sqrtf( f ); + // See https://docs.nvidia.com/cuda/cuda-math-api/group__CUDA__MATH__SINGLE.html + return sqrtf( f ); #else - // See https://docs.nvidia.com/cuda/cuda-math-api/group__CUDA__MATH__DOUBLE.html - return sqrt( f ); + // See https://docs.nvidia.com/cuda/cuda-math-api/group__CUDA__MATH__DOUBLE.html + return sqrt( f ); #endif -} + } #endif // #ifdef __CUDACC__ -//========================================================================== + //========================================================================== #ifndef __CUDACC__ -//------------------------------ -// Floating point types - C++ -//------------------------------ + //------------------------------ + // Floating point types - C++ + //------------------------------ -inline const fptype& -fpmax( const fptype& a, const fptype& b ) -{ - return std::max( a, b ); -} + inline const fptype& + fpmax( const fptype& a, const fptype& b ) + { + return std::max( a, b ); + } -inline const fptype& -fpmin( const fptype& a, const fptype& b ) -{ - return std::min( a, b ); -} + inline const fptype& + fpmin( const fptype& a, const fptype& b ) + { + return std::min( a, b ); + } -inline fptype -fpsqrt( const fptype& f ) -{ - return std::sqrt( f ); -} + inline fptype + fpsqrt( const fptype& f ) + { + return std::sqrt( f ); + } #endif // #ifndef __CUDACC__ -//========================================================================== + //========================================================================== + +} // end namespace mg5amcGpu/mg5amcCpu #endif // MGONGPUFPTYPES_H diff --git a/epochX/cudacpp/gg_tt01g.mad/src/mgOnGpuVectors.h b/epochX/cudacpp/gg_tt01g.mad/src/mgOnGpuVectors.h index 9d3e82b1e3..0d3892d026 100644 --- a/epochX/cudacpp/gg_tt01g.mad/src/mgOnGpuVectors.h +++ b/epochX/cudacpp/gg_tt01g.mad/src/mgOnGpuVectors.h @@ -31,7 +31,12 @@ //#undef MGONGPU_HAS_CPPCXTYPEV_BRK // gcc test (very slightly slower? issue #172) #endif -namespace mgOnGpu /* clang-format off */ +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { #ifdef MGONGPU_CPPSIMD @@ -72,22 +77,40 @@ namespace mgOnGpu /* clang-format off */ public: // Array initialization: zero-out as "{0}" (C and C++) or as "{}" (C++ only) // See https://en.cppreference.com/w/c/language/array_initialization#Notes - cxtype_v() : m_real{ 0 }, m_imag{ 0 } {} // RRRR=0000 IIII=0000 + cxtype_v() + : m_real{ 0 }, m_imag{ 0 } {} // RRRR=0000 IIII=0000 cxtype_v( const cxtype_v& ) = default; cxtype_v( cxtype_v&& ) = default; - cxtype_v( const fptype_v& r, const fptype_v& i ) : m_real( r ), m_imag( i ) {} - cxtype_v( const fptype_v& r ) : m_real( r ), m_imag{ 0 } {} // IIII=0000 + cxtype_v( const fptype_v& r, const fptype_v& i ) + : m_real( r ), m_imag( i ) {} + cxtype_v( const fptype_v& r ) + : m_real( r ), m_imag{ 0 } {} // IIII=0000 + cxtype_v( const fptype& r ) + : m_real( fptype_v{} + r ), m_imag{ 0 } {} // IIII=0000 cxtype_v& operator=( const cxtype_v& ) = default; cxtype_v& operator=( cxtype_v&& ) = default; - cxtype_v& operator+=( const cxtype_v& c ) { m_real += c.real(); m_imag += c.imag(); return *this; } - cxtype_v& operator-=( const cxtype_v& c ) { m_real -= c.real(); m_imag -= c.imag(); return *this; } + cxtype_v& operator+=( const cxtype_v& c ) + { + m_real += c.real(); + m_imag += c.imag(); + return *this; + } + cxtype_v& operator-=( const cxtype_v& c ) + { + m_real -= c.real(); + m_imag -= c.imag(); + return *this; + } #ifdef MGONGPU_HAS_CPPCXTYPEV_BRK // NB: THIS IS THE FUNDAMENTAL DIFFERENCE BETWEEN MGONGPU_HAS_CPPCXTYPEV_BRK DEFINED AND NOT DEFINED // NB: the alternative "clang" implementation is simpler: it simply does not have any bracket operator[] // NB: ** do NOT implement operator[] to return a value: it does not fail the build (why?) and gives unexpected results! ** cxtype_ref operator[]( size_t i ) const { return cxtype_ref( m_real[i], m_imag[i] ); } #endif - const fptype_v& real() const { return m_real; } + const fptype_v& real() const + { + return m_real; + } const fptype_v& imag() const { return m_imag; } private: fptype_v m_real, m_imag; // RRRRIIII @@ -98,7 +121,7 @@ namespace mgOnGpu /* clang-format off */ #if defined MGONGPU_FPTYPE_DOUBLE typedef long int bool_v __attribute__( ( ext_vector_type( neppV ) ) ); // bbbb #elif defined MGONGPU_FPTYPE_FLOAT - typedef int bool_v __attribute__( ( ext_vector_type( neppV ) ) ); // bbbb + typedef int bool_v __attribute__( ( ext_vector_type( neppV ) ) ); // bbbb #endif #else // gcc #if defined MGONGPU_FPTYPE_DOUBLE @@ -113,532 +136,551 @@ namespace mgOnGpu /* clang-format off */ const int neppV = 1; #endif // #ifdef MGONGPU_CPPSIMD - -} /* clang-format on */ +} //-------------------------------------------------------------------------- -// Expose typedefs outside the namespace -using mgOnGpu::neppV; -#ifdef MGONGPU_CPPSIMD -using mgOnGpu::fptype_v; -using mgOnGpu::fptype2_v; -using mgOnGpu::cxtype_v; -using mgOnGpu::bool_v; -#endif +// DANGEROUS! this was mixing different cxtype definitions for CPU and GPU builds (see #318 and #725) +// DO NOT expose typedefs outside the namespace +//using mgOnGpu::neppV; +//#ifdef MGONGPU_CPPSIMD +//using mgOnGpu::fptype_v; +//using mgOnGpu::fptype2_v; +//using mgOnGpu::cxtype_v; +//using mgOnGpu::bool_v; +//#endif -//-------------------------------------------------------------------------- +//========================================================================== +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif +{ #ifndef __CUDACC__ -// Printout to stream for user defined types + // Printout to stream for user defined types #ifndef MGONGPU_CPPCXTYPE_CXSMPL // operator<< for cxsmpl has already been defined! -inline std::ostream& -operator<<( std::ostream& out, const cxtype& c ) -{ - out << "[" << cxreal( c ) << "," << cximag( c ) << "]"; - //out << cxreal(c) << "+i" << cximag(c); - return out; -} + inline std::ostream& + operator<<( std::ostream& out, const cxtype& c ) + { + out << "[" << cxreal( c ) << "," << cximag( c ) << "]"; + //out << cxreal(c) << "+i" << cximag(c); + return out; + } #endif -/* + /* #ifdef MGONGPU_CPPSIMD -inline std::ostream& -operator<<( std::ostream& out, const bool_v& v ) -{ - out << "{ " << v[0]; - for ( int i=1; i t t~ g No model currently active, so we import the Standard Model INFO: load particles INFO: load vertices -DEBUG: model prefixing takes 0.004709720611572266  +DEBUG: model prefixing takes 0.004907846450805664  INFO: Restrict model sm with file models/sm/restrict_default.dat . DEBUG: Simplifying conditional expressions  DEBUG: remove interactions: u s w+ at order: QED=1  @@ -155,7 +155,7 @@ INFO: Please specify coupling orders to bypass this step. INFO: Trying coupling order WEIGHTED<=3: WEIGTHED IS QCD+2*QED INFO: Trying process: g g > t t~ g WEIGHTED<=3 @1 INFO: Process has 16 diagrams -1 processes with 16 diagrams generated in 0.019 s +1 processes with 16 diagrams generated in 0.020 s Total: 1 processes with 16 diagrams output madevent CODEGEN_mad_gg_ttg --hel_recycling=False --vector_size=16384 --me_exporter=standalone_cudacpp Load PLUGIN.CUDACPP_SA_OUTPUT @@ -174,48 +174,48 @@ INFO: Organizing processes into subprocess groups INFO: Generating Helas calls for process: g g > t t~ g WEIGHTED<=3 @1 INFO: Processing color information for process: g g > t t~ g @1 INFO: Creating files in directory P1_gg_ttxg -DEBUG: Entering PLUGIN_OneProcessExporter.__init__ [model_handling.py at line 1028]  -DEBUG: kwargs[prefix] = 0 [model_handling.py at line 1029]  -DEBUG: proc_id =  1 [model_handling.py at line 1034]  -DEBUG: process_exporter_cpp =  [export_v4.py at line 6174]  +DEBUG: Entering PLUGIN_OneProcessExporter.__init__ [model_handling.py at line 1039]  +DEBUG: kwargs[prefix] = 0 [model_handling.py at line 1040]  +DEBUG: proc_id =  1 [model_handling.py at line 1045]  +DEBUG: process_exporter_cpp =  [export_v4.py at line 6174]  INFO: Creating files in directory . -DEBUG: Entering PLUGIN_OneProcessExporter.generate_process_files [model_handling.py at line 1286]  -DEBUG: self.include_multi_channel is already defined: this is madevent+second_exporter mode [model_handling.py at line 1288]  +DEBUG: Entering PLUGIN_OneProcessExporter.generate_process_files [model_handling.py at line 1297]  +DEBUG: self.include_multi_channel is already defined: this is madevent+second_exporter mode [model_handling.py at line 1299]  FileWriter for ././CPPProcess.h -DEBUG: Entering PLUGIN_OneProcessExporter.write_process_h_file [model_handling.py at line 1442]  +DEBUG: Entering PLUGIN_OneProcessExporter.write_process_h_file [model_handling.py at line 1453]  FileWriter for ././CPPProcess.cc -DEBUG: Entering PLUGIN_OneProcessExporter.write_process_cc_file [model_handling.py at line 1464]  -DEBUG: Entering PLUGIN_OneProcessExporter.get_sigmaKin_lines [model_handling.py at line 1132]  -DEBUG: self.include_multi_channel =  [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 0] [model_handling.py at line 1133]  -DEBUG: self.support_multichannel =  True [model_handling.py at line 1134]  -DEBUG: type(self.helas_call_writer) =  [model_handling.py at line 1151]  -DEBUG: self.support_multichannel, self.include_multi_channel =  True [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 0] [model_handling.py at line 1152]  -DEBUG: multi_channel =  {1: [0], 2: [1], 3: [2], 4: [3], 5: [4], 6: [5], 7: [6], 8: [7], 9: [8], 10: [9], 11: [10], 12: [11], 13: [12], 14: [13], 15: [14]} [model_handling.py at line 1158]  -DEBUG: multi_channel_map =  {1: [0], 2: [1], 3: [2], 4: [3], 5: [4], 6: [5], 7: [6], 8: [7], 9: [8], 10: [9], 11: [10], 12: [11], 13: [12], 14: [13], 15: [14]} [model_handling.py at line 1643]  -DEBUG: diag_to_config =  {1: 1, 2: 2, 3: 3, 4: 4, 5: 5, 6: 6, 7: 7, 8: 8, 9: 9, 10: 10, 11: 11, 12: 12, 13: 13, 14: 14, 15: 15} [model_handling.py at line 1698]  -DEBUG: call =  vxxxxx( momenta,m_pars->%s, cHel[ihel][%d],%+d, w_sv[%d], %d ); [model_handling.py at line 1810]  -DEBUG: ('ZERO', 0, -1, 0, 0) [model_handling.py at line 1811]  -DEBUG: call =  vxxxxx( momenta,m_pars->%s, cHel[ihel][%d],%+d, w_sv[%d], %d ); [model_handling.py at line 1810]  -DEBUG: ('ZERO', 1, -1, 1, 1) [model_handling.py at line 1811]  -DEBUG: call =  vxxxxx( momenta,m_pars->%s, cHel[ihel][%d],%+d, w_sv[%d], %d ); [model_handling.py at line 1810]  -DEBUG: ('ZERO', 4, 1, 4, 4) [model_handling.py at line 1811]  +DEBUG: Entering PLUGIN_OneProcessExporter.write_process_cc_file [model_handling.py at line 1475]  +DEBUG: Entering PLUGIN_OneProcessExporter.get_sigmaKin_lines [model_handling.py at line 1143]  +DEBUG: self.include_multi_channel =  [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 0] [model_handling.py at line 1144]  +DEBUG: self.support_multichannel =  True [model_handling.py at line 1145]  +DEBUG: type(self.helas_call_writer) =  [model_handling.py at line 1162]  +DEBUG: self.support_multichannel, self.include_multi_channel =  True [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 0] [model_handling.py at line 1163]  +DEBUG: multi_channel =  {1: [0], 2: [1], 3: [2], 4: [3], 5: [4], 6: [5], 7: [6], 8: [7], 9: [8], 10: [9], 11: [10], 12: [11], 13: [12], 14: [13], 15: [14]} [model_handling.py at line 1169]  +DEBUG: multi_channel_map =  {1: [0], 2: [1], 3: [2], 4: [3], 5: [4], 6: [5], 7: [6], 8: [7], 9: [8], 10: [9], 11: [10], 12: [11], 13: [12], 14: [13], 15: [14]} [model_handling.py at line 1654]  +DEBUG: diag_to_config =  {1: 1, 2: 2, 3: 3, 4: 4, 5: 5, 6: 6, 7: 7, 8: 8, 9: 9, 10: 10, 11: 11, 12: 12, 13: 13, 14: 14, 15: 15} [model_handling.py at line 1709]  +DEBUG: call =  vxxxxx( momenta,m_pars->%s, cHel[ihel][%d],%+d, w_sv[%d], %d ); [model_handling.py at line 1821]  +DEBUG: ('ZERO', 0, -1, 0, 0) [model_handling.py at line 1822]  +DEBUG: call =  vxxxxx( momenta,m_pars->%s, cHel[ihel][%d],%+d, w_sv[%d], %d ); [model_handling.py at line 1821]  +DEBUG: ('ZERO', 1, -1, 1, 1) [model_handling.py at line 1822]  +DEBUG: call =  vxxxxx( momenta,m_pars->%s, cHel[ihel][%d],%+d, w_sv[%d], %d ); [model_handling.py at line 1821]  +DEBUG: ('ZERO', 4, 1, 4, 4) [model_handling.py at line 1822]  INFO: Created files CPPProcess.h and CPPProcess.cc in directory ./. -DEBUG: Entering PLUGIN_OneProcessExporter.edit_CMakeLists [model_handling.py at line 1332]  -DEBUG: Entering PLUGIN_OneProcessExporter.edit_check_sa [model_handling.py at line 1341]  -DEBUG: Entering PLUGIN_OneProcessExporter.edit_mgonGPU [model_handling.py at line 1358]  -DEBUG: Entering PLUGIN_OneProcessExporter.edit_processidfile [model_handling.py at line 1378]  -DEBUG: Entering PLUGIN_OneProcessExporter.edit_coloramps [model_handling.py at line 1390]  -DEBUG: Entering PLUGIN_OneProcessExporter.edit_testxxx [model_handling.py at line 1408]  -DEBUG: Entering PLUGIN_OneProcessExporter.edit_memorybuffers [model_handling.py at line 1419]  -DEBUG: Entering PLUGIN_OneProcessExporter.edit_memoryaccesscouplings [model_handling.py at line 1430]  -DEBUG: 'Copying test reference file: ', template_ref =  Copying test reference file: /data/avalassi/GPU2023/MG5aMC/ghav-mg5amcnlo/PLUGIN/CUDACPP_SA_OUTPUT/madgraph/iolibs/template_files/../../../test/ref/dump_CPUTest.Sigma_sm_gg_ttxg.txt [model_handling.py at line 1324]  +DEBUG: Entering PLUGIN_OneProcessExporter.edit_CMakeLists [model_handling.py at line 1343]  +DEBUG: Entering PLUGIN_OneProcessExporter.edit_check_sa [model_handling.py at line 1352]  +DEBUG: Entering PLUGIN_OneProcessExporter.edit_mgonGPU [model_handling.py at line 1369]  +DEBUG: Entering PLUGIN_OneProcessExporter.edit_processidfile [model_handling.py at line 1389]  +DEBUG: Entering PLUGIN_OneProcessExporter.edit_coloramps [model_handling.py at line 1401]  +DEBUG: Entering PLUGIN_OneProcessExporter.edit_testxxx [model_handling.py at line 1419]  +DEBUG: Entering PLUGIN_OneProcessExporter.edit_memorybuffers [model_handling.py at line 1430]  +DEBUG: Entering PLUGIN_OneProcessExporter.edit_memoryaccesscouplings [model_handling.py at line 1441]  +DEBUG: 'Copying test reference file: ', template_ref =  Copying test reference file: /data/avalassi/GPU2023/MG5aMC/ghav-mg5amcnlo/PLUGIN/CUDACPP_SA_OUTPUT/madgraph/iolibs/template_files/../../../test/ref/dump_CPUTest.Sigma_sm_gg_ttxg.txt [model_handling.py at line 1335]  DEBUG: proc_id =  1 [export_cpp.py at line 710]  DEBUG: config_map =  [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 0] [export_cpp.py at line 711]  DEBUG: subproc_number =  0 [export_cpp.py at line 712]  DEBUG: Done [export_cpp.py at line 713]  INFO: Generating Feynman diagrams for Process: g g > t t~ g WEIGHTED<=3 @1 INFO: Finding symmetric diagrams for subprocess group gg_ttxg -Generated helas calls for 1 subprocesses (16 diagrams) in 0.035 s +Generated helas calls for 1 subprocesses (16 diagrams) in 0.034 s Wrote files for 36 helas calls in 0.153 s ALOHA: aloha starts to compute helicity amplitudes ALOHA: aloha creates VVV1 routines @@ -223,7 +223,7 @@ ALOHA: aloha creates FFV1 routines ALOHA: aloha creates VVVV1 set of routines with options: P0 ALOHA: aloha creates VVVV3 set of routines with options: P0 ALOHA: aloha creates VVVV4 set of routines with options: P0 -ALOHA: aloha creates 5 routines in 0.290 s +ALOHA: aloha creates 5 routines in 0.277 s DEBUG: Entering PLUGIN_ProcessExporter.convert_model (create the model) [output.py at line 194]  ALOHA: aloha starts to compute helicity amplitudes ALOHA: aloha creates VVV1 routines @@ -231,7 +231,7 @@ ALOHA: aloha creates FFV1 routines ALOHA: aloha creates VVVV1 set of routines with options: P0 ALOHA: aloha creates VVVV3 set of routines with options: P0 ALOHA: aloha creates VVVV4 set of routines with options: P0 -ALOHA: aloha creates 10 routines in 0.267 s +ALOHA: aloha creates 10 routines in 0.261 s VVV1 VVV1 FFV1 @@ -244,25 +244,13 @@ ALOHA: aloha creates 10 routines in 0.267 s FileWriter for /data/avalassi/GPU2023/MG5aMC/ghav-mg5amcnlo/CODEGEN_mad_gg_ttg/src/./HelAmps_sm.h INFO: Created file HelAmps_sm.h in directory /data/avalassi/GPU2023/MG5aMC/ghav-mg5amcnlo/CODEGEN_mad_gg_ttg/src/. super_write_set_parameters_onlyfixMajorana (hardcoded=False) -DEBUG: 'pardef_lines size =', len(pardef_lines), ', keys size =', len(pardef_lines.keys()) =  pardef_lines size = 48 , keys size = 48 [model_handling.py at line 724]  -DEBUG: 'parset_pars size =', len(parset_pars) =  parset_pars size = 48 [model_handling.py at line 740]  -DEBUG: 'parset_lines size =', len(parset_lines), ', keys size =', len(parset_lines.keys()) =  parset_lines size = 48 , keys size = 48 [model_handling.py at line 741]  +DEBUG: 'pardef_lines size =', len(pardef_lines), ', keys size =', len(pardef_lines.keys()) =  pardef_lines size = 48 , keys size = 48 [model_handling.py at line 729]  super_write_set_parameters_onlyfixMajorana (hardcoded=True) -DEBUG: 'pardef_lines size =', len(pardef_lines), ', keys size =', len(pardef_lines.keys()) =  pardef_lines size = 3 , keys size = 3 [model_handling.py at line 724]  -DEBUG: 'parset_pars size =', len(parset_pars) =  parset_pars size = 3 [model_handling.py at line 740]  -DEBUG: 'parset_lines size =', len(parset_lines), ', keys size =', len(parset_lines.keys()) =  parset_lines size = 3 , keys size = 3 [model_handling.py at line 741]  -DEBUG: 'pardef_lines size =', len(pardef_lines), ', keys size =', len(pardef_lines.keys()) =  pardef_lines size = 3 , keys size = 3 [model_handling.py at line 724]  -DEBUG: 'parset_pars size =', len(parset_pars) =  parset_pars size = 3 [model_handling.py at line 740]  -DEBUG: 'parset_lines size =', len(parset_lines), ', keys size =', len(parset_lines.keys()) =  parset_lines size = 3 , keys size = 3 [model_handling.py at line 741]  -DEBUG: 'pardef_lines size =', len(pardef_lines), ', keys size =', len(pardef_lines.keys()) =  pardef_lines size = 3 , keys size = 3 [model_handling.py at line 724]  -DEBUG: 'parset_pars size =', len(parset_pars) =  parset_pars size = 3 [model_handling.py at line 740]  -DEBUG: 'parset_lines size =', len(parset_lines), ', keys size =', len(parset_lines.keys()) =  parset_lines size = 3 , keys size = 3 [model_handling.py at line 741]  -DEBUG: 'pardef_lines size =', len(pardef_lines), ', keys size =', len(pardef_lines.keys()) =  pardef_lines size = 3 , keys size = 3 [model_handling.py at line 724]  -DEBUG: 'parset_pars size =', len(parset_pars) =  parset_pars size = 3 [model_handling.py at line 740]  -DEBUG: 'parset_lines size =', len(parset_lines), ', keys size =', len(parset_lines.keys()) =  parset_lines size = 3 , keys size = 3 [model_handling.py at line 741]  -DEBUG: 'pardef_lines size =', len(pardef_lines), ', keys size =', len(pardef_lines.keys()) =  pardef_lines size = 3 , keys size = 3 [model_handling.py at line 724]  -DEBUG: 'parset_pars size =', len(parset_pars) =  parset_pars size = 3 [model_handling.py at line 740]  -DEBUG: 'parset_lines size =', len(parset_lines), ', keys size =', len(parset_lines.keys()) =  parset_lines size = 3 , keys size = 3 [model_handling.py at line 741]  +DEBUG: 'pardef_lines size =', len(pardef_lines), ', keys size =', len(pardef_lines.keys()) =  pardef_lines size = 3 , keys size = 3 [model_handling.py at line 729]  +DEBUG: 'pardef_lines size =', len(pardef_lines), ', keys size =', len(pardef_lines.keys()) =  pardef_lines size = 3 , keys size = 3 [model_handling.py at line 729]  +DEBUG: 'pardef_lines size =', len(pardef_lines), ', keys size =', len(pardef_lines.keys()) =  pardef_lines size = 3 , keys size = 3 [model_handling.py at line 729]  +DEBUG: 'pardef_lines size =', len(pardef_lines), ', keys size =', len(pardef_lines.keys()) =  pardef_lines size = 3 , keys size = 3 [model_handling.py at line 729]  +DEBUG: 'pardef_lines size =', len(pardef_lines), ', keys size =', len(pardef_lines.keys()) =  pardef_lines size = 3 , keys size = 3 [model_handling.py at line 729]  FileWriter for /data/avalassi/GPU2023/MG5aMC/ghav-mg5amcnlo/CODEGEN_mad_gg_ttg/src/./Parameters_sm.h FileWriter for /data/avalassi/GPU2023/MG5aMC/ghav-mg5amcnlo/CODEGEN_mad_gg_ttg/src/./Parameters_sm.cc INFO: Created files Parameters_sm.h and Parameters_sm.cc in directory @@ -279,6 +267,6 @@ Type "launch" to generate events from this process, or see Run "open index.html" to see more information about this process. quit -real 0m2.132s -user 0m1.824s -sys 0m0.213s +real 0m2.058s +user 0m1.793s +sys 0m0.205s diff --git a/epochX/cudacpp/gg_ttg.mad/SubProcesses/Bridge.h b/epochX/cudacpp/gg_ttg.mad/SubProcesses/Bridge.h index 4cafe0c997..d7e629cacd 100644 --- a/epochX/cudacpp/gg_ttg.mad/SubProcesses/Bridge.h +++ b/epochX/cudacpp/gg_ttg.mad/SubProcesses/Bridge.h @@ -152,32 +152,32 @@ namespace mg5amcCpu #ifdef __CUDACC__ int m_gputhreads; // number of gpu threads (default set from number of events, can be modified) int m_gpublocks; // number of gpu blocks (default set from number of events, can be modified) - mg5amcGpu::DeviceBuffer m_devMomentaF; - mg5amcGpu::DeviceBufferMomenta m_devMomentaC; - mg5amcGpu::DeviceBufferGs m_devGs; - mg5amcGpu::DeviceBufferRndNumHelicity m_devRndHel; - mg5amcGpu::DeviceBufferRndNumColor m_devRndCol; - mg5amcGpu::DeviceBufferMatrixElements m_devMEs; - mg5amcGpu::DeviceBufferSelectedHelicity m_devSelHel; - mg5amcGpu::DeviceBufferSelectedColor m_devSelCol; - mg5amcGpu::PinnedHostBufferGs m_hstGs; - mg5amcGpu::PinnedHostBufferRndNumHelicity m_hstRndHel; - mg5amcGpu::PinnedHostBufferRndNumColor m_hstRndCol; - mg5amcGpu::PinnedHostBufferMatrixElements m_hstMEs; - mg5amcGpu::PinnedHostBufferSelectedHelicity m_hstSelHel; - mg5amcGpu::PinnedHostBufferSelectedColor m_hstSelCol; - std::unique_ptr m_pmek; + DeviceBuffer m_devMomentaF; + DeviceBufferMomenta m_devMomentaC; + DeviceBufferGs m_devGs; + DeviceBufferRndNumHelicity m_devRndHel; + DeviceBufferRndNumColor m_devRndCol; + DeviceBufferMatrixElements m_devMEs; + DeviceBufferSelectedHelicity m_devSelHel; + DeviceBufferSelectedColor m_devSelCol; + PinnedHostBufferGs m_hstGs; + PinnedHostBufferRndNumHelicity m_hstRndHel; + PinnedHostBufferRndNumColor m_hstRndCol; + PinnedHostBufferMatrixElements m_hstMEs; + PinnedHostBufferSelectedHelicity m_hstSelHel; + PinnedHostBufferSelectedColor m_hstSelCol; + std::unique_ptr m_pmek; //static constexpr int s_gputhreadsmin = 16; // minimum number of gpu threads (TEST VALUE FOR MADEVENT) static constexpr int s_gputhreadsmin = 32; // minimum number of gpu threads (DEFAULT) #else - mg5amcCpu::HostBufferMomenta m_hstMomentaC; - mg5amcCpu::HostBufferGs m_hstGs; - mg5amcCpu::HostBufferRndNumHelicity m_hstRndHel; - mg5amcCpu::HostBufferRndNumColor m_hstRndCol; - mg5amcCpu::HostBufferMatrixElements m_hstMEs; - mg5amcCpu::HostBufferSelectedHelicity m_hstSelHel; - mg5amcCpu::HostBufferSelectedColor m_hstSelCol; - std::unique_ptr m_pmek; + HostBufferMomenta m_hstMomentaC; + HostBufferGs m_hstGs; + HostBufferRndNumHelicity m_hstRndHel; + HostBufferRndNumColor m_hstRndCol; + HostBufferMatrixElements m_hstMEs; + HostBufferSelectedHelicity m_hstSelHel; + HostBufferSelectedColor m_hstSelCol; + std::unique_ptr m_pmek; #endif }; @@ -244,12 +244,12 @@ namespace mg5amcCpu } std::cout << "WARNING! Instantiate device Bridge (nevt=" << m_nevt << ", gpublocks=" << m_gpublocks << ", gputhreads=" << m_gputhreads << ", gpublocks*gputhreads=" << m_gpublocks * m_gputhreads << ")" << std::endl; - mg5amcGpu::CPPProcess process( /*verbose=*/false ); - m_pmek.reset( new mg5amcGpu::MatrixElementKernelDevice( m_devMomentaC, m_devGs, m_devRndHel, m_devRndCol, m_devMEs, m_devSelHel, m_devSelCol, m_gpublocks, m_gputhreads ) ); + CPPProcess process( /*verbose=*/false ); + m_pmek.reset( new MatrixElementKernelDevice( m_devMomentaC, m_devGs, m_devRndHel, m_devRndCol, m_devMEs, m_devSelHel, m_devSelCol, m_gpublocks, m_gputhreads ) ); #else std::cout << "WARNING! Instantiate host Bridge (nevt=" << m_nevt << ")" << std::endl; - mg5amcCpu::CPPProcess process( /*verbose=*/false ); - m_pmek.reset( new mg5amcCpu::MatrixElementKernelHost( m_hstMomentaC, m_hstGs, m_hstRndHel, m_hstRndCol, m_hstMEs, m_hstSelHel, m_hstSelCol, m_nevt ) ); + CPPProcess process( /*verbose=*/false ); + m_pmek.reset( new MatrixElementKernelHost( m_hstMomentaC, m_hstGs, m_hstRndHel, m_hstRndCol, m_hstMEs, m_hstSelHel, m_hstSelCol, m_nevt ) ); #endif // __CUDACC__ process.initProc( "../../Cards/param_card.dat" ); } diff --git a/epochX/cudacpp/gg_ttg.mad/SubProcesses/BridgeKernels.cc b/epochX/cudacpp/gg_ttg.mad/SubProcesses/BridgeKernels.cc index cef4cb3c71..d58066c9c1 100644 --- a/epochX/cudacpp/gg_ttg.mad/SubProcesses/BridgeKernels.cc +++ b/epochX/cudacpp/gg_ttg.mad/SubProcesses/BridgeKernels.cc @@ -9,9 +9,6 @@ #include -constexpr int np4 = CPPProcess::np4; // dimensions of 4-momenta (E,px,py,pz) -constexpr int npar = CPPProcess::npar; // #particles in total (external = initial + final): e.g. 4 for e+ e- -> mu+ mu- - //============================================================================ #ifdef __CUDACC__ @@ -20,6 +17,9 @@ namespace mg5amcGpu namespace mg5amcCpu #endif { + constexpr int np4 = CPPProcess::np4; // dimensions of 4-momenta (E,px,py,pz) + constexpr int npar = CPPProcess::npar; // #particles in total (external = initial + final): e.g. 4 for e+ e- -> mu+ mu- + //-------------------------------------------------------------------------- BridgeKernelBase::BridgeKernelBase( const BufferMomenta& momenta, // input: momenta diff --git a/epochX/cudacpp/gg_ttg.mad/SubProcesses/MemoryAccessAmplitudes.h b/epochX/cudacpp/gg_ttg.mad/SubProcesses/MemoryAccessAmplitudes.h index 68f6838b5c..573b3bbbc9 100644 --- a/epochX/cudacpp/gg_ttg.mad/SubProcesses/MemoryAccessAmplitudes.h +++ b/epochX/cudacpp/gg_ttg.mad/SubProcesses/MemoryAccessAmplitudes.h @@ -14,142 +14,151 @@ #define MGONGPU_TRIVIAL_AMPLITUDES 1 -//---------------------------------------------------------------------------- - -#ifndef MGONGPU_TRIVIAL_AMPLITUDES - -// A class describing the internal layout of memory buffers for amplitudes -// This implementation uses an AOSOA[npagA][nx2][neppA] where nevt=npagA*neppA -// [If many implementations are used, a suffix _AOSOAv1 should be appended to the class name] -class MemoryAccessAmplitudesBase //_AOSOAv1 +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { -public: - - // Number of Events Per Page in the amplitude AOSOA memory buffer layout - static constexpr int neppA = 1; // AOS (just a test...) + //---------------------------------------------------------------------------- -private: - - friend class MemoryAccessHelper; - friend class KernelAccessHelper; - friend class KernelAccessHelper; - - // The number of floating point components of a complex number - static constexpr int nx2 = mgOnGpu::nx2; - - //-------------------------------------------------------------------------- - // NB all KernelLaunchers assume that memory access can be decomposed as "accessField = decodeRecord( accessRecord )" - // (in other words: first locate the event record for a given event, then locate an element in that record) - //-------------------------------------------------------------------------- +#ifndef MGONGPU_TRIVIAL_AMPLITUDES - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] - static __host__ __device__ inline fptype* - ieventAccessRecord( fptype* buffer, - const int ievt ) + // A class describing the internal layout of memory buffers for amplitudes + // This implementation uses an AOSOA[npagA][nx2][neppA] where nevt=npagA*neppA + // [If many implementations are used, a suffix _AOSOAv1 should be appended to the class name] + class MemoryAccessAmplitudesBase //_AOSOAv1 { - const int ipagA = ievt / neppA; // #event "A-page" - const int ieppA = ievt % neppA; // #event in the current event A-page - constexpr int ix2 = 0; - return &( buffer[ipagA * nx2 * neppA + ix2 * neppA + ieppA] ); // AOSOA[ipagA][ix2][ieppA] - } - - //-------------------------------------------------------------------------- - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, Ts... args ) <===] - // [NB: expand variadic template "Ts... args" to "const int ix2" and rename "Field" as "Ix2"] - static __host__ __device__ inline fptype& - decodeRecord( fptype* buffer, - const int ix2 ) + public: + + // Number of Events Per Page in the amplitude AOSOA memory buffer layout + static constexpr int neppA = 1; // AOS (just a test...) + + private: + + friend class MemoryAccessHelper; + friend class KernelAccessHelper; + friend class KernelAccessHelper; + + // The number of floating point components of a complex number + static constexpr int nx2 = mgOnGpu::nx2; + + //-------------------------------------------------------------------------- + // NB all KernelLaunchers assume that memory access can be decomposed as "accessField = decodeRecord( accessRecord )" + // (in other words: first locate the event record for a given event, then locate an element in that record) + //-------------------------------------------------------------------------- + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] + static __host__ __device__ inline fptype* + ieventAccessRecord( fptype* buffer, + const int ievt ) + { + const int ipagA = ievt / neppA; // #event "A-page" + const int ieppA = ievt % neppA; // #event in the current event A-page + constexpr int ix2 = 0; + return &( buffer[ipagA * nx2 * neppA + ix2 * neppA + ieppA] ); // AOSOA[ipagA][ix2][ieppA] + } + + //-------------------------------------------------------------------------- + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, Ts... args ) <===] + // [NB: expand variadic template "Ts... args" to "const int ix2" and rename "Field" as "Ix2"] + static __host__ __device__ inline fptype& + decodeRecord( fptype* buffer, + const int ix2 ) + { + constexpr int ipagA = 0; + constexpr int ieppA = 0; + return buffer[ipagA * nx2 * neppA + ix2 * neppA + ieppA]; // AOSOA[ipagA][ix2][ieppA] + } + }; + + //---------------------------------------------------------------------------- + + // A class providing access to memory buffers for a given event, based on explicit event numbers + // Its methods use the MemoryAccessHelper templates - note the use of the template keyword in template function instantiations + class MemoryAccessAmplitudes : public MemoryAccessAmplitudesBase { - constexpr int ipagA = 0; - constexpr int ieppA = 0; - return buffer[ipagA * nx2 * neppA + ix2 * neppA + ieppA]; // AOSOA[ipagA][ix2][ieppA] - } -}; + public: -//---------------------------------------------------------------------------- + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] + static constexpr auto ieventAccessRecord = MemoryAccessHelper::ieventAccessRecord; -// A class providing access to memory buffers for a given event, based on explicit event numbers -// Its methods use the MemoryAccessHelper templates - note the use of the template keyword in template function instantiations -class MemoryAccessAmplitudes : public MemoryAccessAmplitudesBase -{ -public: - - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] - static constexpr auto ieventAccessRecord = MemoryAccessHelper::ieventAccessRecord; + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (const) ===> const fptype* ieventAccessRecordConst( const fptype* buffer, const int ievt ) <===] + static constexpr auto ieventAccessRecordConst = MemoryAccessHelper::ieventAccessRecordConst; - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (const) ===> const fptype* ieventAccessRecordConst( const fptype* buffer, const int ievt ) <===] - static constexpr auto ieventAccessRecordConst = MemoryAccessHelper::ieventAccessRecordConst; + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, const int ix2 ) <===] + static constexpr auto decodeRecordIx2 = MemoryAccessHelper::decodeRecord; - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, const int ix2 ) <===] - static constexpr auto decodeRecordIx2 = MemoryAccessHelper::decodeRecord; + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (const) ===> const fptype& decodeRecordConst( const fptype* buffer, const int ix2 ) <===] + static constexpr auto decodeRecordIx2Const = + MemoryAccessHelper::template decodeRecordConst; - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (const) ===> const fptype& decodeRecordConst( const fptype* buffer, const int ix2 ) <===] - static constexpr auto decodeRecordIx2Const = - MemoryAccessHelper::template decodeRecordConst; + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (non-const) ===> fptype& ieventAccessIx2( fptype* buffer, const ievt, const int ix2 ) <===] + static constexpr auto ieventAccessIx2 = + MemoryAccessHelper::template ieventAccessField; - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (non-const) ===> fptype& ieventAccessIx2( fptype* buffer, const ievt, const int ix2 ) <===] - static constexpr auto ieventAccessIx2 = - MemoryAccessHelper::template ieventAccessField; - - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (const) ===> const fptype& ieventAccessIx2Const( const fptype* buffer, const ievt, const int ix2 ) <===] - static constexpr auto ieventAccessIx2Const = - MemoryAccessHelper::template ieventAccessFieldConst; -}; + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (const) ===> const fptype& ieventAccessIx2Const( const fptype* buffer, const ievt, const int ix2 ) <===] + static constexpr auto ieventAccessIx2Const = + MemoryAccessHelper::template ieventAccessFieldConst; + }; #endif // #ifndef MGONGPU_TRIVIAL_AMPLITUDES -//---------------------------------------------------------------------------- + //---------------------------------------------------------------------------- -// A class providing access to memory buffers for a given event, based on implicit kernel rules -// Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations -template -class KernelAccessAmplitudes -{ -public: + // A class providing access to memory buffers for a given event, based on implicit kernel rules + // Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations + template + class KernelAccessAmplitudes + { + public: #ifndef MGONGPU_TRIVIAL_AMPLITUDES - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (non-const) ===> fptype& kernelAccessIx2( fptype* buffer, const int ix2 ) <===] - static constexpr auto kernelAccessIx2 = - KernelAccessHelper::template kernelAccessField; + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (non-const) ===> fptype& kernelAccessIx2( fptype* buffer, const int ix2 ) <===] + static constexpr auto kernelAccessIx2 = + KernelAccessHelper::template kernelAccessField; - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (const) ===> const fptype& kernelAccessIx2Const( const fptype* buffer, const int ix2 ) <===] - static constexpr auto kernelAccessIx2Const = - KernelAccessHelper::template kernelAccessFieldConst; + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (const) ===> const fptype& kernelAccessIx2Const( const fptype* buffer, const int ix2 ) <===] + static constexpr auto kernelAccessIx2Const = + KernelAccessHelper::template kernelAccessFieldConst; #else - static __host__ __device__ inline cxtype_sv* - kernelAccess( fptype* buffer ) - { - return reinterpret_cast( buffer ); - } + static __host__ __device__ inline cxtype_sv* + kernelAccess( fptype* buffer ) + { + return reinterpret_cast( buffer ); + } - static __host__ __device__ inline const cxtype_sv* - kernelAccessConst( const fptype* buffer ) - { - return reinterpret_cast( buffer ); - } + static __host__ __device__ inline const cxtype_sv* + kernelAccessConst( const fptype* buffer ) + { + return reinterpret_cast( buffer ); + } #endif // #ifndef MGONGPU_TRIVIAL_AMPLITUDES -}; + }; + + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- + typedef KernelAccessAmplitudes HostAccessAmplitudes; + typedef KernelAccessAmplitudes DeviceAccessAmplitudes; -typedef KernelAccessAmplitudes HostAccessAmplitudes; -typedef KernelAccessAmplitudes DeviceAccessAmplitudes; + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- +} // end namespace mg5amcGpu/mg5amcCpu #endif // MemoryAccessAmplitudes_H diff --git a/epochX/cudacpp/gg_ttg.mad/SubProcesses/MemoryAccessCouplings.h b/epochX/cudacpp/gg_ttg.mad/SubProcesses/MemoryAccessCouplings.h index 15793bbec3..35a3af42e0 100644 --- a/epochX/cudacpp/gg_ttg.mad/SubProcesses/MemoryAccessCouplings.h +++ b/epochX/cudacpp/gg_ttg.mad/SubProcesses/MemoryAccessCouplings.h @@ -14,248 +14,257 @@ #include "MemoryAccessMomenta.h" // for MemoryAccessMomentaBase::neppM #include "MemoryBuffers.h" // for HostBufferCouplings::isaligned -//---------------------------------------------------------------------------- - -// A class describing the internal layout of memory buffers for couplings -// This implementation uses an AOSOA[npagC][ndcoup][nx2][neppC] "super-buffer" where nevt=npagC*neppC -// From the "super-buffer" for ndcoup different couplings, use idcoupAccessBuffer to access the buffer for one specific coupling -// [If many implementations are used, a suffix _AOSOAv1 should be appended to the class name] -class MemoryAccessCouplingsBase //_AOSOAv1 +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { -public: - - // Number of Events Per Page in the coupling AOSOA memory buffer layout - static constexpr int neppC = MemoryAccessMomentaBase::neppM; // use the same AOSOA striding as for momenta - - // SANITY CHECK: check that neppC is a power of two - static_assert( ispoweroftwo( neppC ), "neppC is not a power of 2" ); - - //-------------------------------------------------------------------------- - // ** NB! A single super-buffer AOSOA[npagC][ndcoup][nx2][neppC] includes data for ndcoup different couplings ** - // ** NB! The ieventAccessRecord and kernelAccess functions refer to the buffer for one individual coupling ** - // ** NB! Use idcoupAccessBuffer to add a fixed offset and locate the buffer for one given individual coupling ** - //-------------------------------------------------------------------------- - - // Locate the buffer for a single coupling (output) in a memory super-buffer (input) from the given coupling index (input) - // [Signature (non-const) ===> fptype* idcoupAccessBuffer( fptype* buffer, const int idcoup ) <===] - // NB: keep this in public even if exposed through KernelAccessCouplings: nvcc says it is inaccesible otherwise? - static __host__ __device__ inline fptype* - idcoupAccessBuffer( fptype* buffer, // input "super-buffer" - const int idcoup ) - { - constexpr int ipagC = 0; - constexpr int ieppC = 0; - constexpr int ix2 = 0; - // NB! this effectively adds an offset "idcoup * nx2 * neppC" - return &( buffer[ipagC * ndcoup * nx2 * neppC + idcoup * nx2 * neppC + ix2 * neppC + ieppC] ); // AOSOA[ipagC][idcoup][ix2][ieppC] - } - - // Locate the buffer for a single coupling (output) in a memory super-buffer (input) from the given coupling index (input) - // [Signature (const) ===> const fptype* idcoupAccessBufferConst( const fptype* buffer, const int idcoup ) <===] - // NB: keep this in public even if exposed through KernelAccessCouplings: nvcc says it is inaccesible otherwise? - static __host__ __device__ inline const fptype* - idcoupAccessBufferConst( const fptype* buffer, // input "super-buffer" - const int idcoup ) - { - return idcoupAccessBuffer( const_cast( buffer ), idcoup ); - } - -private: + //---------------------------------------------------------------------------- - friend class MemoryAccessHelper; - friend class KernelAccessHelper; - friend class KernelAccessHelper; - - // The number of couplings that dependent on the running alphas QCD in this specific process - static constexpr size_t ndcoup = Parameters_sm_dependentCouplings::ndcoup; - - // The number of floating point components of a complex number - static constexpr int nx2 = mgOnGpu::nx2; - - //-------------------------------------------------------------------------- - // NB all KernelLaunchers assume that memory access can be decomposed as "accessField = decodeRecord( accessRecord )" - // (in other words: first locate the event record for a given event, then locate an element in that record) - //-------------------------------------------------------------------------- - - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] - static __host__ __device__ inline fptype* - ieventAccessRecord( fptype* buffer, - const int ievt ) + // A class describing the internal layout of memory buffers for couplings + // This implementation uses an AOSOA[npagC][ndcoup][nx2][neppC] "super-buffer" where nevt=npagC*neppC + // From the "super-buffer" for ndcoup different couplings, use idcoupAccessBuffer to access the buffer for one specific coupling + // [If many implementations are used, a suffix _AOSOAv1 should be appended to the class name] + class MemoryAccessCouplingsBase //_AOSOAv1 { - const int ipagC = ievt / neppC; // #event "C-page" - const int ieppC = ievt % neppC; // #event in the current event C-page - constexpr int idcoup = 0; - constexpr int ix2 = 0; - return &( buffer[ipagC * ndcoup * nx2 * neppC + idcoup * nx2 * neppC + ix2 * neppC + ieppC] ); // AOSOA[ipagC][idcoup][ix2][ieppC] - } - - //-------------------------------------------------------------------------- - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, Ts... args ) <===] - // [NB: expand variadic template "Ts... args" to "const int ix2" and rename "Field" as "Ix2"] - static __host__ __device__ inline fptype& - decodeRecord( fptype* buffer, - const int ix2 ) + public: + + // Number of Events Per Page in the coupling AOSOA memory buffer layout + static constexpr int neppC = MemoryAccessMomentaBase::neppM; // use the same AOSOA striding as for momenta + + // SANITY CHECK: check that neppC is a power of two + static_assert( ispoweroftwo( neppC ), "neppC is not a power of 2" ); + + //-------------------------------------------------------------------------- + // ** NB! A single super-buffer AOSOA[npagC][ndcoup][nx2][neppC] includes data for ndcoup different couplings ** + // ** NB! The ieventAccessRecord and kernelAccess functions refer to the buffer for one individual coupling ** + // ** NB! Use idcoupAccessBuffer to add a fixed offset and locate the buffer for one given individual coupling ** + //-------------------------------------------------------------------------- + + // Locate the buffer for a single coupling (output) in a memory super-buffer (input) from the given coupling index (input) + // [Signature (non-const) ===> fptype* idcoupAccessBuffer( fptype* buffer, const int idcoup ) <===] + // NB: keep this in public even if exposed through KernelAccessCouplings: nvcc says it is inaccesible otherwise? + static __host__ __device__ inline fptype* + idcoupAccessBuffer( fptype* buffer, // input "super-buffer" + const int idcoup ) + { + constexpr int ipagC = 0; + constexpr int ieppC = 0; + constexpr int ix2 = 0; + // NB! this effectively adds an offset "idcoup * nx2 * neppC" + return &( buffer[ipagC * ndcoup * nx2 * neppC + idcoup * nx2 * neppC + ix2 * neppC + ieppC] ); // AOSOA[ipagC][idcoup][ix2][ieppC] + } + + // Locate the buffer for a single coupling (output) in a memory super-buffer (input) from the given coupling index (input) + // [Signature (const) ===> const fptype* idcoupAccessBufferConst( const fptype* buffer, const int idcoup ) <===] + // NB: keep this in public even if exposed through KernelAccessCouplings: nvcc says it is inaccesible otherwise? + static __host__ __device__ inline const fptype* + idcoupAccessBufferConst( const fptype* buffer, // input "super-buffer" + const int idcoup ) + { + return idcoupAccessBuffer( const_cast( buffer ), idcoup ); + } + + private: + + friend class MemoryAccessHelper; + friend class KernelAccessHelper; + friend class KernelAccessHelper; + + // The number of couplings that dependent on the running alphas QCD in this specific process + static constexpr size_t ndcoup = Parameters_sm_dependentCouplings::ndcoup; + + // The number of floating point components of a complex number + static constexpr int nx2 = mgOnGpu::nx2; + + //-------------------------------------------------------------------------- + // NB all KernelLaunchers assume that memory access can be decomposed as "accessField = decodeRecord( accessRecord )" + // (in other words: first locate the event record for a given event, then locate an element in that record) + //-------------------------------------------------------------------------- + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] + static __host__ __device__ inline fptype* + ieventAccessRecord( fptype* buffer, + const int ievt ) + { + const int ipagC = ievt / neppC; // #event "C-page" + const int ieppC = ievt % neppC; // #event in the current event C-page + constexpr int idcoup = 0; + constexpr int ix2 = 0; + return &( buffer[ipagC * ndcoup * nx2 * neppC + idcoup * nx2 * neppC + ix2 * neppC + ieppC] ); // AOSOA[ipagC][idcoup][ix2][ieppC] + } + + //-------------------------------------------------------------------------- + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, Ts... args ) <===] + // [NB: expand variadic template "Ts... args" to "const int ix2" and rename "Field" as "Ix2"] + static __host__ __device__ inline fptype& + decodeRecord( fptype* buffer, + const int ix2 ) + { + constexpr int ipagC = 0; + constexpr int ieppC = 0; + // NB! the offset "idcoup * nx2 * neppC" has been added in idcoupAccessBuffer + constexpr int idcoup = 0; + return buffer[ipagC * ndcoup * nx2 * neppC + idcoup * nx2 * neppC + ix2 * neppC + ieppC]; // AOSOA[ipagC][idcoup][ix2][ieppC] + } + }; + + //---------------------------------------------------------------------------- + + // A class providing access to memory buffers for a given event, based on explicit event numbers + // Its methods use the MemoryAccessHelper templates - note the use of the template keyword in template function instantiations + class MemoryAccessCouplings : public MemoryAccessCouplingsBase { - constexpr int ipagC = 0; - constexpr int ieppC = 0; - // NB! the offset "idcoup * nx2 * neppC" has been added in idcoupAccessBuffer - constexpr int idcoup = 0; - return buffer[ipagC * ndcoup * nx2 * neppC + idcoup * nx2 * neppC + ix2 * neppC + ieppC]; // AOSOA[ipagC][idcoup][ix2][ieppC] - } -}; - -//---------------------------------------------------------------------------- - -// A class providing access to memory buffers for a given event, based on explicit event numbers -// Its methods use the MemoryAccessHelper templates - note the use of the template keyword in template function instantiations -class MemoryAccessCouplings : public MemoryAccessCouplingsBase -{ -public: - - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] - static constexpr auto ieventAccessRecord = MemoryAccessHelper::ieventAccessRecord; - - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (const) ===> const fptype* ieventAccessRecordConst( const fptype* buffer, const int ievt ) <===] - static constexpr auto ieventAccessRecordConst = MemoryAccessHelper::ieventAccessRecordConst; - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, const int ix2 ) <===] - static constexpr auto decodeRecordIx2 = MemoryAccessHelper::decodeRecord; - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (const) ===> const fptype& decodeRecordConst( const fptype* buffer, const int ix2 ) <===] - static constexpr auto decodeRecordIx2Const = - MemoryAccessHelper::template decodeRecordConst; - - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (non-const) ===> fptype& ieventAccessIx2( fptype* buffer, const ievt, const int ix2 ) <===] - static constexpr auto ieventAccessIx2 = - MemoryAccessHelper::template ieventAccessField; - - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (const) ===> const fptype& ieventAccessIx2Const( const fptype* buffer, const ievt, const int ix2 ) <===] - static constexpr auto ieventAccessIx2Const = - MemoryAccessHelper::template ieventAccessFieldConst; -}; - -//---------------------------------------------------------------------------- - -// A class providing access to memory buffers for a given event, based on implicit kernel rules -// Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations -template -class KernelAccessCouplings -{ -public: - - // Expose selected functions from MemoryAccessCouplingsBase - static constexpr auto idcoupAccessBuffer = MemoryAccessCouplingsBase::idcoupAccessBuffer; - static constexpr auto idcoupAccessBufferConst = MemoryAccessCouplingsBase::idcoupAccessBufferConst; - - // Expose selected functions from MemoryAccessCouplings - static constexpr auto ieventAccessRecordConst = MemoryAccessCouplings::ieventAccessRecordConst; - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (non-const, SCALAR) ===> fptype& kernelAccessIx2( fptype* buffer, const int ix2 ) <===] - static constexpr auto kernelAccessIx2_s = - KernelAccessHelper::template kernelAccessField; - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (const, SCALAR) ===> const fptype& kernelAccessIx2Const( const fptype* buffer, const int ix2 ) <===] - static constexpr auto kernelAccessIx2Const_s = - KernelAccessHelper::template kernelAccessFieldConst; - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (non const, SCALAR OR VECTOR) ===> fptype_sv& kernelAccessIx2( fptype* buffer, const int ix2 ) <===] - static __host__ __device__ inline fptype_sv& - kernelAccessIx2( fptype* buffer, - const int ix2 ) + public: + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] + static constexpr auto ieventAccessRecord = MemoryAccessHelper::ieventAccessRecord; + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (const) ===> const fptype* ieventAccessRecordConst( const fptype* buffer, const int ievt ) <===] + static constexpr auto ieventAccessRecordConst = MemoryAccessHelper::ieventAccessRecordConst; + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, const int ix2 ) <===] + static constexpr auto decodeRecordIx2 = MemoryAccessHelper::decodeRecord; + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (const) ===> const fptype& decodeRecordConst( const fptype* buffer, const int ix2 ) <===] + static constexpr auto decodeRecordIx2Const = + MemoryAccessHelper::template decodeRecordConst; + + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (non-const) ===> fptype& ieventAccessIx2( fptype* buffer, const ievt, const int ix2 ) <===] + static constexpr auto ieventAccessIx2 = + MemoryAccessHelper::template ieventAccessField; + + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (const) ===> const fptype& ieventAccessIx2Const( const fptype* buffer, const ievt, const int ix2 ) <===] + static constexpr auto ieventAccessIx2Const = + MemoryAccessHelper::template ieventAccessFieldConst; + }; + + //---------------------------------------------------------------------------- + + // A class providing access to memory buffers for a given event, based on implicit kernel rules + // Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations + template + class KernelAccessCouplings { - fptype& out = kernelAccessIx2_s( buffer, ix2 ); + public: + + // Expose selected functions from MemoryAccessCouplingsBase + static constexpr auto idcoupAccessBuffer = MemoryAccessCouplingsBase::idcoupAccessBuffer; + static constexpr auto idcoupAccessBufferConst = MemoryAccessCouplingsBase::idcoupAccessBufferConst; + + // Expose selected functions from MemoryAccessCouplings + static constexpr auto ieventAccessRecordConst = MemoryAccessCouplings::ieventAccessRecordConst; + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (non-const, SCALAR) ===> fptype& kernelAccessIx2( fptype* buffer, const int ix2 ) <===] + static constexpr auto kernelAccessIx2_s = + KernelAccessHelper::template kernelAccessField; + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (const, SCALAR) ===> const fptype& kernelAccessIx2Const( const fptype* buffer, const int ix2 ) <===] + static constexpr auto kernelAccessIx2Const_s = + KernelAccessHelper::template kernelAccessFieldConst; + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (non const, SCALAR OR VECTOR) ===> fptype_sv& kernelAccessIx2( fptype* buffer, const int ix2 ) <===] + static __host__ __device__ inline fptype_sv& + kernelAccessIx2( fptype* buffer, + const int ix2 ) + { + fptype& out = kernelAccessIx2_s( buffer, ix2 ); #ifndef MGONGPU_CPPSIMD - return out; + return out; #else - // NB: derived from MemoryAccessMomenta, restricting the implementation to contiguous aligned arrays - constexpr int neppC = MemoryAccessCouplingsBase::neppC; - static_assert( neppC >= neppV ); // ASSUME CONTIGUOUS ARRAYS - static_assert( neppC % neppV == 0 ); // ASSUME CONTIGUOUS ARRAYS - static_assert( mg5amcCpu::HostBufferCouplings::isaligned() ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) - //assert( (size_t)( buffer ) % mgOnGpu::cppAlign == 0 ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) - return mg5amcCpu::fptypevFromAlignedArray( out ); // SIMD bulk load of neppV, use reinterpret_cast + // NB: derived from MemoryAccessMomenta, restricting the implementation to contiguous aligned arrays + constexpr int neppC = MemoryAccessCouplingsBase::neppC; + static_assert( neppC >= neppV ); // ASSUME CONTIGUOUS ARRAYS + static_assert( neppC % neppV == 0 ); // ASSUME CONTIGUOUS ARRAYS + static_assert( mg5amcCpu::HostBufferCouplings::isaligned() ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) + //assert( (size_t)( buffer ) % mgOnGpu::cppAlign == 0 ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) + return mg5amcCpu::fptypevFromAlignedArray( out ); // SIMD bulk load of neppV, use reinterpret_cast #endif - } + } - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (const, SCALAR OR VECTOR) ===> const fptype_sv& kernelAccessIx2Const( const fptype* buffer, const int ix2 ) <===] - static __host__ __device__ inline const fptype_sv& - kernelAccessIx2Const( const fptype* buffer, - const int ix2 ) - { - return kernelAccessIx2( const_cast( buffer ), ix2 ); - } - - /* - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (const, SCALAR OR VECTOR) ===> const fptype_sv& kernelAccessIx2Const( const fptype* buffer, const int ix2 ) <===] - static __host__ __device__ inline const fptype_sv& - kernelAccessIx2Const( const fptype* buffer, - const int ix2 ) - { - const fptype& out = kernelAccessIx2Const_s( buffer, ix2 ); + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (const, SCALAR OR VECTOR) ===> const fptype_sv& kernelAccessIx2Const( const fptype* buffer, const int ix2 ) <===] + static __host__ __device__ inline const fptype_sv& + kernelAccessIx2Const( const fptype* buffer, + const int ix2 ) + { + return kernelAccessIx2( const_cast( buffer ), ix2 ); + } + + /* + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (const, SCALAR OR VECTOR) ===> const fptype_sv& kernelAccessIx2Const( const fptype* buffer, const int ix2 ) <===] + static __host__ __device__ inline const fptype_sv& + kernelAccessIx2Const( const fptype* buffer, + const int ix2 ) + { + const fptype& out = kernelAccessIx2Const_s( buffer, ix2 ); #ifndef MGONGPU_CPPSIMD - return out; + return out; #else - // NB: derived from MemoryAccessMomenta, restricting the implementation to contiguous aligned arrays - constexpr int neppC = MemoryAccessCouplingsBase::neppC; - static_assert( neppC >= neppV ); // ASSUME CONTIGUOUS ARRAYS - static_assert( neppC % neppV == 0 ); // ASSUME CONTIGUOUS ARRAYS - static_assert( mg5amcCpu::HostBufferCouplings::isaligned() ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) - //assert( (size_t)( buffer ) % mgOnGpu::cppAlign == 0 ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) - return mg5amcCpu::fptypevFromAlignedArray( out ); // SIMD bulk load of neppV, use reinterpret_cast + // NB: derived from MemoryAccessMomenta, restricting the implementation to contiguous aligned arrays + constexpr int neppC = MemoryAccessCouplingsBase::neppC; + static_assert( neppC >= neppV ); // ASSUME CONTIGUOUS ARRAYS + static_assert( neppC % neppV == 0 ); // ASSUME CONTIGUOUS ARRAYS + static_assert( mg5amcCpu::HostBufferCouplings::isaligned() ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) + //assert( (size_t)( buffer ) % mgOnGpu::cppAlign == 0 ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) + return mg5amcCpu::fptypevFromAlignedArray( out ); // SIMD bulk load of neppV, use reinterpret_cast #endif - } - */ - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (non const, SCALAR OR VECTOR) ===> cxtype_sv_ref kernelAccess( fptype* buffer ) <===] - static __host__ __device__ inline cxtype_sv_ref - kernelAccess( fptype* buffer ) - { - /* - fptype_sv& real = kernelAccessIx2( buffer, 0 ); - fptype_sv& imag = kernelAccessIx2( buffer, 1 ); - printf( "C_ACCESS::kernelAccess: pbuffer=%p pr=%p pi=%p\n", buffer, &real, &imag ); - return cxtype_sv_ref( real, imag ); - */ - return cxtype_sv_ref( kernelAccessIx2( buffer, 0 ), - kernelAccessIx2( buffer, 1 ) ); - } - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (const, SCALAR OR VECTOR) ===> cxtype_sv kernelAccessConst( const fptype* buffer ) <===] - static __host__ __device__ inline cxtype_sv - kernelAccessConst( const fptype* buffer ) - { - /* - const fptype_sv& real = kernelAccessIx2Const( buffer, 0 ); - const fptype_sv& imag = kernelAccessIx2Const( buffer, 1 ); - printf( "C_ACCESS::kernelAccessConst: pbuffer=%p pr=%p pi=%p\n", buffer, &real, &imag ); - return cxtype_sv( real, imag ); + } */ - return cxtype_sv( kernelAccessIx2Const( buffer, 0 ), - kernelAccessIx2Const( buffer, 1 ) ); - } -}; - -//---------------------------------------------------------------------------- - -typedef KernelAccessCouplings HostAccessCouplings; -typedef KernelAccessCouplings DeviceAccessCouplings; -//---------------------------------------------------------------------------- + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (non const, SCALAR OR VECTOR) ===> cxtype_sv_ref kernelAccess( fptype* buffer ) <===] + static __host__ __device__ inline cxtype_sv_ref + kernelAccess( fptype* buffer ) + { + /* + fptype_sv& real = kernelAccessIx2( buffer, 0 ); + fptype_sv& imag = kernelAccessIx2( buffer, 1 ); + printf( "C_ACCESS::kernelAccess: pbuffer=%p pr=%p pi=%p\n", buffer, &real, &imag ); + return cxtype_sv_ref( real, imag ); + */ + return cxtype_sv_ref( kernelAccessIx2( buffer, 0 ), + kernelAccessIx2( buffer, 1 ) ); + } + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (const, SCALAR OR VECTOR) ===> cxtype_sv kernelAccessConst( const fptype* buffer ) <===] + static __host__ __device__ inline cxtype_sv + kernelAccessConst( const fptype* buffer ) + { + /* + const fptype_sv& real = kernelAccessIx2Const( buffer, 0 ); + const fptype_sv& imag = kernelAccessIx2Const( buffer, 1 ); + printf( "C_ACCESS::kernelAccessConst: pbuffer=%p pr=%p pi=%p\n", buffer, &real, &imag ); + return cxtype_sv( real, imag ); + */ + return cxtype_sv( kernelAccessIx2Const( buffer, 0 ), + kernelAccessIx2Const( buffer, 1 ) ); + } + }; + + //---------------------------------------------------------------------------- + + typedef KernelAccessCouplings HostAccessCouplings; + typedef KernelAccessCouplings DeviceAccessCouplings; + + //---------------------------------------------------------------------------- + +} // end namespace mg5amcGpu/mg5amcCpu #endif // MemoryAccessCouplings_H diff --git a/epochX/cudacpp/gg_ttg.mad/SubProcesses/MemoryAccessCouplingsFixed.h b/epochX/cudacpp/gg_ttg.mad/SubProcesses/MemoryAccessCouplingsFixed.h index 81193ab261..dc0d93afff 100644 --- a/epochX/cudacpp/gg_ttg.mad/SubProcesses/MemoryAccessCouplingsFixed.h +++ b/epochX/cudacpp/gg_ttg.mad/SubProcesses/MemoryAccessCouplingsFixed.h @@ -13,63 +13,72 @@ //#include "MemoryAccessHelpers.h" -//---------------------------------------------------------------------------- - -// A class describing the internal layout of memory buffers for fixed couplings -// This implementation uses a STRUCT[ndcoup][nx2] "super-buffer" layout: in practice, the cIPC global array -// From the "super-buffer" for ndcoup different couplings, use idcoupAccessBuffer to access the buffer for one specific coupling -// [If many implementations are used, a suffix _Sv1 should be appended to the class name] -class MemoryAccessCouplingsFixedBase //_Sv1 +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { -public: + //---------------------------------------------------------------------------- - // Locate the buffer for a single coupling (output) in a memory super-buffer (input) from the given coupling index (input) - // [Signature (const) ===> const fptype* iicoupAccessBufferConst( const fptype* buffer, const int iicoup ) <===] - static __host__ __device__ inline const fptype* - iicoupAccessBufferConst( const fptype* buffer, // input "super-buffer": in practice, the cIPC global array - const int iicoup ) + // A class describing the internal layout of memory buffers for fixed couplings + // This implementation uses a STRUCT[ndcoup][nx2] "super-buffer" layout: in practice, the cIPC global array + // From the "super-buffer" for ndcoup different couplings, use idcoupAccessBuffer to access the buffer for one specific coupling + // [If many implementations are used, a suffix _Sv1 should be appended to the class name] + class MemoryAccessCouplingsFixedBase //_Sv1 { - constexpr int ix2 = 0; - // NB! this effectively adds an offset "iicoup * nx2" - return &( buffer[iicoup * nx2 + ix2] ); // STRUCT[idcoup][ix2] - } - -private: - - // The number of floating point components of a complex number - static constexpr int nx2 = mgOnGpu::nx2; -}; - -//---------------------------------------------------------------------------- + public: + + // Locate the buffer for a single coupling (output) in a memory super-buffer (input) from the given coupling index (input) + // [Signature (const) ===> const fptype* iicoupAccessBufferConst( const fptype* buffer, const int iicoup ) <===] + static __host__ __device__ inline const fptype* + iicoupAccessBufferConst( const fptype* buffer, // input "super-buffer": in practice, the cIPC global array + const int iicoup ) + { + constexpr int ix2 = 0; + // NB! this effectively adds an offset "iicoup * nx2" + return &( buffer[iicoup * nx2 + ix2] ); // STRUCT[idcoup][ix2] + } + + private: + + // The number of floating point components of a complex number + static constexpr int nx2 = mgOnGpu::nx2; + }; + + //---------------------------------------------------------------------------- + + // A class providing access to memory buffers for a given event, based on implicit kernel rules + // Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations + template + class KernelAccessCouplingsFixed + { + public: -// A class providing access to memory buffers for a given event, based on implicit kernel rules -// Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations -template -class KernelAccessCouplingsFixed -{ -public: + // Expose selected functions from MemoryAccessCouplingsFixedBase + static constexpr auto iicoupAccessBufferConst = MemoryAccessCouplingsFixedBase::iicoupAccessBufferConst; - // Expose selected functions from MemoryAccessCouplingsFixedBase - static constexpr auto iicoupAccessBufferConst = MemoryAccessCouplingsFixedBase::iicoupAccessBufferConst; + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (const, SCALAR OR VECTOR) ===> cxtype_sv kernelAccessConst( const fptype* buffer ) <===] + static __host__ __device__ inline const cxtype_sv + kernelAccessConst( const fptype* buffer ) + { + // TRIVIAL ACCESS to fixed-couplings buffers! + //return cxmake( fptype_sv{ buffer[0] }, fptype_sv{ buffer[1] } ); // NO! BUG #339! + const fptype_sv r_sv = fptype_sv{ 0 } + buffer[0]; + const fptype_sv i_sv = fptype_sv{ 0 } + buffer[1]; + return cxmake( r_sv, i_sv ); // ugly but effective + } + }; - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (const, SCALAR OR VECTOR) ===> cxtype_sv kernelAccessConst( const fptype* buffer ) <===] - static __host__ __device__ inline const cxtype_sv - kernelAccessConst( const fptype* buffer ) - { - // TRIVIAL ACCESS to fixed-couplings buffers! - //return cxmake( fptype_sv{ buffer[0] }, fptype_sv{ buffer[1] } ); // NO! BUG #339! - const fptype_sv r_sv = fptype_sv{ 0 } + buffer[0]; - const fptype_sv i_sv = fptype_sv{ 0 } + buffer[1]; - return cxmake( r_sv, i_sv ); // ugly but effective - } -}; + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- + typedef KernelAccessCouplingsFixed HostAccessCouplingsFixed; + typedef KernelAccessCouplingsFixed DeviceAccessCouplingsFixed; -typedef KernelAccessCouplingsFixed HostAccessCouplingsFixed; -typedef KernelAccessCouplingsFixed DeviceAccessCouplingsFixed; + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- +} // end namespace mg5amcGpu/mg5amcCpu #endif // MemoryAccessCouplingsFixed_H diff --git a/epochX/cudacpp/gg_ttg.mad/SubProcesses/MemoryAccessDenominators.h b/epochX/cudacpp/gg_ttg.mad/SubProcesses/MemoryAccessDenominators.h index e76ae65ff9..3bce635718 100644 --- a/epochX/cudacpp/gg_ttg.mad/SubProcesses/MemoryAccessDenominators.h +++ b/epochX/cudacpp/gg_ttg.mad/SubProcesses/MemoryAccessDenominators.h @@ -9,15 +9,24 @@ #include "MemoryAccessGs.h" -//---------------------------------------------------------------------------- +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif +{ + //---------------------------------------------------------------------------- + + // A class describing the internal layout of memory buffers for denominators + // This implementation reuses the plain ARRAY[nevt] implementation of MemoryAccessGs -// A class describing the internal layout of memory buffers for denominators -// This implementation reuses the plain ARRAY[nevt] implementation of MemoryAccessGs + typedef KernelAccessGs HostAccessDenominators; + typedef KernelAccessGs DeviceAccessDenominators; -typedef KernelAccessGs HostAccessDenominators; -typedef KernelAccessGs DeviceAccessDenominators; + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- +} // end namespace mg5amcGpu/mg5amcCpu #endif #endif // MemoryAccessDenominators_H diff --git a/epochX/cudacpp/gg_ttg.mad/SubProcesses/MemoryAccessGs.h b/epochX/cudacpp/gg_ttg.mad/SubProcesses/MemoryAccessGs.h index 8996c0554c..31311aa375 100644 --- a/epochX/cudacpp/gg_ttg.mad/SubProcesses/MemoryAccessGs.h +++ b/epochX/cudacpp/gg_ttg.mad/SubProcesses/MemoryAccessGs.h @@ -12,142 +12,151 @@ #include "MemoryAccessVectors.h" #include "MemoryBuffers.h" // for HostBufferMatrixElements::isaligned -//---------------------------------------------------------------------------- - -// A class describing the internal layout of memory buffers for Gs -// This implementation uses a plain ARRAY[nevt] -// [If many implementations are used, a suffix _ARRAYv1 should be appended to the class name] -class MemoryAccessGsBase //_ARRAYv1 +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { -private: - - friend class MemoryAccessHelper; - friend class KernelAccessHelper; - friend class KernelAccessHelper; - - //-------------------------------------------------------------------------- - // NB all KernelLaunchers assume that memory access can be decomposed as "accessField = decodeRecord( accessRecord )" - // (in other words: first locate the event record for a given event, then locate an element in that record) - //-------------------------------------------------------------------------- - - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] - static __host__ __device__ inline fptype* - ieventAccessRecord( fptype* buffer, - const int ievt ) - { - return &( buffer[ievt] ); // ARRAY[nevt] - } - - //-------------------------------------------------------------------------- + //---------------------------------------------------------------------------- - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, Ts... args ) <===] - // [NB: expand variadic template "Ts... args" to empty and rename "Field" as empty] - static __host__ __device__ inline fptype& - decodeRecord( fptype* buffer ) + // A class describing the internal layout of memory buffers for Gs + // This implementation uses a plain ARRAY[nevt] + // [If many implementations are used, a suffix _ARRAYv1 should be appended to the class name] + class MemoryAccessGsBase //_ARRAYv1 { - constexpr int ievt = 0; - return buffer[ievt]; // ARRAY[nevt] - } -}; - -//---------------------------------------------------------------------------- - -// A class providing access to memory buffers for a given event, based on explicit event numbers -// Its methods use the MemoryAccessHelper templates - note the use of the template keyword in template function instantiations -class MemoryAccessGs : public MemoryAccessGsBase -{ -public: - - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] - static constexpr auto ieventAccessRecord = MemoryAccessHelper::ieventAccessRecord; - - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (const) ===> const fptype* ieventAccessRecordConst( const fptype* buffer, const int ievt ) <===] - static constexpr auto ieventAccessRecordConst = MemoryAccessHelper::ieventAccessRecordConst; - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer ) <===] - static constexpr auto decodeRecord = MemoryAccessHelper::decodeRecord; - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (const) ===> const fptype& decodeRecordConst( const fptype* buffer ) <===] - static constexpr auto decodeRecordConst = - MemoryAccessHelper::template decodeRecordConst<>; - - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (non-const) ===> fptype& ieventAccess( fptype* buffer, const ievt ) <===] - static constexpr auto ieventAccess = - MemoryAccessHelper::template ieventAccessField<>; - - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (const) ===> const fptype& ieventAccessConst( const fptype* buffer, const ievt ) <===] - static constexpr auto ieventAccessConst = - MemoryAccessHelper::template ieventAccessFieldConst<>; -}; - -//---------------------------------------------------------------------------- - -// A class providing access to memory buffers for a given event, based on implicit kernel rules -// Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations -template -class KernelAccessGs -{ -public: - - // Expose selected functions from MemoryAccessGs - static constexpr auto ieventAccessRecord = MemoryAccessGs::ieventAccessRecord; - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (non-const, SCALAR) ===> fptype& kernelAccess( fptype* buffer ) <===] - static constexpr auto kernelAccess_s = - KernelAccessHelper::template kernelAccessField<>; // requires cuda 11.4 - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) - // [Signature (non-const, SCALAR OR VECTOR) ===> fptype_sv& kernelAccess( fptype* buffer ) <===] - static __host__ __device__ inline fptype_sv& - kernelAccess( fptype* buffer ) + private: + + friend class MemoryAccessHelper; + friend class KernelAccessHelper; + friend class KernelAccessHelper; + + //-------------------------------------------------------------------------- + // NB all KernelLaunchers assume that memory access can be decomposed as "accessField = decodeRecord( accessRecord )" + // (in other words: first locate the event record for a given event, then locate an element in that record) + //-------------------------------------------------------------------------- + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] + static __host__ __device__ inline fptype* + ieventAccessRecord( fptype* buffer, + const int ievt ) + { + return &( buffer[ievt] ); // ARRAY[nevt] + } + + //-------------------------------------------------------------------------- + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, Ts... args ) <===] + // [NB: expand variadic template "Ts... args" to empty and rename "Field" as empty] + static __host__ __device__ inline fptype& + decodeRecord( fptype* buffer ) + { + constexpr int ievt = 0; + return buffer[ievt]; // ARRAY[nevt] + } + }; + + //---------------------------------------------------------------------------- + + // A class providing access to memory buffers for a given event, based on explicit event numbers + // Its methods use the MemoryAccessHelper templates - note the use of the template keyword in template function instantiations + class MemoryAccessGs : public MemoryAccessGsBase + { + public: + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] + static constexpr auto ieventAccessRecord = MemoryAccessHelper::ieventAccessRecord; + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (const) ===> const fptype* ieventAccessRecordConst( const fptype* buffer, const int ievt ) <===] + static constexpr auto ieventAccessRecordConst = MemoryAccessHelper::ieventAccessRecordConst; + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer ) <===] + static constexpr auto decodeRecord = MemoryAccessHelper::decodeRecord; + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (const) ===> const fptype& decodeRecordConst( const fptype* buffer ) <===] + static constexpr auto decodeRecordConst = + MemoryAccessHelper::template decodeRecordConst<>; + + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (non-const) ===> fptype& ieventAccess( fptype* buffer, const ievt ) <===] + static constexpr auto ieventAccess = + MemoryAccessHelper::template ieventAccessField<>; + + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (const) ===> const fptype& ieventAccessConst( const fptype* buffer, const ievt ) <===] + static constexpr auto ieventAccessConst = + MemoryAccessHelper::template ieventAccessFieldConst<>; + }; + + //---------------------------------------------------------------------------- + + // A class providing access to memory buffers for a given event, based on implicit kernel rules + // Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations + template + class KernelAccessGs { - fptype& out = kernelAccess_s( buffer ); + public: + + // Expose selected functions from MemoryAccessGs + static constexpr auto ieventAccessRecord = MemoryAccessGs::ieventAccessRecord; + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (non-const, SCALAR) ===> fptype& kernelAccess( fptype* buffer ) <===] + static constexpr auto kernelAccess_s = + KernelAccessHelper::template kernelAccessField<>; // requires cuda 11.4 + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) + // [Signature (non-const, SCALAR OR VECTOR) ===> fptype_sv& kernelAccess( fptype* buffer ) <===] + static __host__ __device__ inline fptype_sv& + kernelAccess( fptype* buffer ) + { + fptype& out = kernelAccess_s( buffer ); #ifndef MGONGPU_CPPSIMD - return out; + return out; #else - // NB: derived from MemoryAccessMomenta, restricting the implementation to contiguous aligned arrays (#435) - static_assert( mg5amcCpu::HostBufferGs::isaligned() ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) - //assert( (size_t)( buffer ) % mgOnGpu::cppAlign == 0 ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) - return mg5amcCpu::fptypevFromAlignedArray( out ); // SIMD bulk load of neppV, use reinterpret_cast + // NB: derived from MemoryAccessMomenta, restricting the implementation to contiguous aligned arrays (#435) + static_assert( mg5amcCpu::HostBufferGs::isaligned() ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) + //assert( (size_t)( buffer ) % mgOnGpu::cppAlign == 0 ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) + return mg5amcCpu::fptypevFromAlignedArray( out ); // SIMD bulk load of neppV, use reinterpret_cast #endif - } - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (const, SCALAR) ===> const fptype& kernelAccessConst( const fptype* buffer ) <===] - static constexpr auto kernelAccessConst_s = - KernelAccessHelper::template kernelAccessFieldConst<>; // requires cuda 11.4 - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) - // [Signature (const, SCALAR OR VECTOR) ===> const fptype_sv& kernelAccess( const fptype* buffer ) <===] - static __host__ __device__ inline const fptype_sv& - kernelAccessConst( const fptype* buffer ) - { - const fptype& out = kernelAccessConst_s( buffer ); + } + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (const, SCALAR) ===> const fptype& kernelAccessConst( const fptype* buffer ) <===] + static constexpr auto kernelAccessConst_s = + KernelAccessHelper::template kernelAccessFieldConst<>; // requires cuda 11.4 + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) + // [Signature (const, SCALAR OR VECTOR) ===> const fptype_sv& kernelAccess( const fptype* buffer ) <===] + static __host__ __device__ inline const fptype_sv& + kernelAccessConst( const fptype* buffer ) + { + const fptype& out = kernelAccessConst_s( buffer ); #ifndef MGONGPU_CPPSIMD - return out; + return out; #else - // NB: derived from MemoryAccessMomenta, restricting the implementation to contiguous aligned arrays (#435) - static_assert( mg5amcCpu::HostBufferGs::isaligned() ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) - //assert( (size_t)( buffer ) % mgOnGpu::cppAlign == 0 ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) - return mg5amcCpu::fptypevFromAlignedArray( out ); // SIMD bulk load of neppV, use reinterpret_cast + // NB: derived from MemoryAccessMomenta, restricting the implementation to contiguous aligned arrays (#435) + static_assert( mg5amcCpu::HostBufferGs::isaligned() ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) + //assert( (size_t)( buffer ) % mgOnGpu::cppAlign == 0 ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) + return mg5amcCpu::fptypevFromAlignedArray( out ); // SIMD bulk load of neppV, use reinterpret_cast #endif - } -}; + } + }; + + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- + typedef KernelAccessGs HostAccessGs; + typedef KernelAccessGs DeviceAccessGs; -typedef KernelAccessGs HostAccessGs; -typedef KernelAccessGs DeviceAccessGs; + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- +} // end namespace mg5amcGpu/mg5amcCpu #endif // MemoryAccessGs_H diff --git a/epochX/cudacpp/gg_ttg.mad/SubProcesses/MemoryAccessMatrixElements.h b/epochX/cudacpp/gg_ttg.mad/SubProcesses/MemoryAccessMatrixElements.h index b2a82d9acf..f32e6fea5b 100644 --- a/epochX/cudacpp/gg_ttg.mad/SubProcesses/MemoryAccessMatrixElements.h +++ b/epochX/cudacpp/gg_ttg.mad/SubProcesses/MemoryAccessMatrixElements.h @@ -12,126 +12,135 @@ #include "MemoryAccessVectors.h" #include "MemoryBuffers.h" // for HostBufferMatrixElements::isaligned -//---------------------------------------------------------------------------- - -// A class describing the internal layout of memory buffers for matrix elements -// This implementation uses a plain ARRAY[nevt] -// [If many implementations are used, a suffix _ARRAYv1 should be appended to the class name] -class MemoryAccessMatrixElementsBase //_ARRAYv1 +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { -private: - - friend class MemoryAccessHelper; - friend class KernelAccessHelper; - friend class KernelAccessHelper; - - //-------------------------------------------------------------------------- - // NB all KernelLaunchers assume that memory access can be decomposed as "accessField = decodeRecord( accessRecord )" - // (in other words: first locate the event record for a given event, then locate an element in that record) - //-------------------------------------------------------------------------- - - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] - static __host__ __device__ inline fptype* - ieventAccessRecord( fptype* buffer, - const int ievt ) - { - return &( buffer[ievt] ); // ARRAY[nevt] - } + //---------------------------------------------------------------------------- - //-------------------------------------------------------------------------- - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, Ts... args ) <===] - // [NB: expand variadic template "Ts... args" to empty and rename "Field" as empty] - static __host__ __device__ inline fptype& - decodeRecord( fptype* buffer ) + // A class describing the internal layout of memory buffers for matrix elements + // This implementation uses a plain ARRAY[nevt] + // [If many implementations are used, a suffix _ARRAYv1 should be appended to the class name] + class MemoryAccessMatrixElementsBase //_ARRAYv1 { - constexpr int ievt = 0; - return buffer[ievt]; // ARRAY[nevt] - } -}; - -//---------------------------------------------------------------------------- - -// A class providing access to memory buffers for a given event, based on explicit event numbers -// Its methods use the MemoryAccessHelper templates - note the use of the template keyword in template function instantiations -class MemoryAccessMatrixElements : public MemoryAccessMatrixElementsBase -{ -public: - - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] - static constexpr auto ieventAccessRecord = MemoryAccessHelper::ieventAccessRecord; - - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (const) ===> const fptype* ieventAccessRecordConst( const fptype* buffer, const int ievt ) <===] - static constexpr auto ieventAccessRecordConst = MemoryAccessHelper::ieventAccessRecordConst; - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer ) <===] - static constexpr auto decodeRecord = MemoryAccessHelper::decodeRecord; - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (const) ===> const fptype& decodeRecordConst( const fptype* buffer ) <===] - static constexpr auto decodeRecordConst = - MemoryAccessHelper::template decodeRecordConst<>; - - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (non-const) ===> fptype& ieventAccess( fptype* buffer, const ievt ) <===] - static constexpr auto ieventAccess = - MemoryAccessHelper::template ieventAccessField<>; - - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (const) ===> const fptype& ieventAccessConst( const fptype* buffer, const ievt ) <===] - static constexpr auto ieventAccessConst = - MemoryAccessHelper::template ieventAccessFieldConst<>; -}; - -//---------------------------------------------------------------------------- - -// A class providing access to memory buffers for a given event, based on implicit kernel rules -// Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations -template -class KernelAccessMatrixElements -{ -public: - - // Expose selected functions from MemoryAccessMatrixElements - static constexpr auto ieventAccessRecord = MemoryAccessMatrixElements::ieventAccessRecord; - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (non-const, SCALAR) ===> fptype& kernelAccess_s( fptype* buffer ) <===] - static constexpr auto kernelAccess_s = - KernelAccessHelper::template kernelAccessField<>; // requires cuda 11.4 - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) - // [Signature (non const, SCALAR OR VECTOR) ===> fptype_sv& kernelAccess( const fptype* buffer ) <===] - static __host__ __device__ inline fptype_sv& - kernelAccess( fptype* buffer ) + private: + + friend class MemoryAccessHelper; + friend class KernelAccessHelper; + friend class KernelAccessHelper; + + //-------------------------------------------------------------------------- + // NB all KernelLaunchers assume that memory access can be decomposed as "accessField = decodeRecord( accessRecord )" + // (in other words: first locate the event record for a given event, then locate an element in that record) + //-------------------------------------------------------------------------- + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] + static __host__ __device__ inline fptype* + ieventAccessRecord( fptype* buffer, + const int ievt ) + { + return &( buffer[ievt] ); // ARRAY[nevt] + } + + //-------------------------------------------------------------------------- + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, Ts... args ) <===] + // [NB: expand variadic template "Ts... args" to empty and rename "Field" as empty] + static __host__ __device__ inline fptype& + decodeRecord( fptype* buffer ) + { + constexpr int ievt = 0; + return buffer[ievt]; // ARRAY[nevt] + } + }; + + //---------------------------------------------------------------------------- + + // A class providing access to memory buffers for a given event, based on explicit event numbers + // Its methods use the MemoryAccessHelper templates - note the use of the template keyword in template function instantiations + class MemoryAccessMatrixElements : public MemoryAccessMatrixElementsBase + { + public: + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] + static constexpr auto ieventAccessRecord = MemoryAccessHelper::ieventAccessRecord; + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (const) ===> const fptype* ieventAccessRecordConst( const fptype* buffer, const int ievt ) <===] + static constexpr auto ieventAccessRecordConst = MemoryAccessHelper::ieventAccessRecordConst; + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer ) <===] + static constexpr auto decodeRecord = MemoryAccessHelper::decodeRecord; + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (const) ===> const fptype& decodeRecordConst( const fptype* buffer ) <===] + static constexpr auto decodeRecordConst = + MemoryAccessHelper::template decodeRecordConst<>; + + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (non-const) ===> fptype& ieventAccess( fptype* buffer, const ievt ) <===] + static constexpr auto ieventAccess = + MemoryAccessHelper::template ieventAccessField<>; + + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (const) ===> const fptype& ieventAccessConst( const fptype* buffer, const ievt ) <===] + static constexpr auto ieventAccessConst = + MemoryAccessHelper::template ieventAccessFieldConst<>; + }; + + //---------------------------------------------------------------------------- + + // A class providing access to memory buffers for a given event, based on implicit kernel rules + // Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations + template + class KernelAccessMatrixElements { - fptype& out = kernelAccess_s( buffer ); + public: + + // Expose selected functions from MemoryAccessMatrixElements + static constexpr auto ieventAccessRecord = MemoryAccessMatrixElements::ieventAccessRecord; + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (non-const, SCALAR) ===> fptype& kernelAccess_s( fptype* buffer ) <===] + static constexpr auto kernelAccess_s = + KernelAccessHelper::template kernelAccessField<>; // requires cuda 11.4 + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) + // [Signature (non const, SCALAR OR VECTOR) ===> fptype_sv& kernelAccess( const fptype* buffer ) <===] + static __host__ __device__ inline fptype_sv& + kernelAccess( fptype* buffer ) + { + fptype& out = kernelAccess_s( buffer ); #ifndef MGONGPU_CPPSIMD - return out; + return out; #else - // NB: derived from MemoryAccessMomenta, restricting the implementation to contiguous aligned arrays (#435) - static_assert( mg5amcCpu::HostBufferMatrixElements::isaligned() ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) - //assert( (size_t)( buffer ) % mgOnGpu::cppAlign == 0 ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) - return mg5amcCpu::fptypevFromAlignedArray( out ); // SIMD bulk load of neppV, use reinterpret_cast + // NB: derived from MemoryAccessMomenta, restricting the implementation to contiguous aligned arrays (#435) + static_assert( mg5amcCpu::HostBufferMatrixElements::isaligned() ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) + //assert( (size_t)( buffer ) % mgOnGpu::cppAlign == 0 ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) + return mg5amcCpu::fptypevFromAlignedArray( out ); // SIMD bulk load of neppV, use reinterpret_cast #endif - } + } + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (const) ===> const fptype& kernelAccessConst( const fptype* buffer ) <===] + static constexpr auto kernelAccessConst = + KernelAccessHelper::template kernelAccessFieldConst<>; // requires cuda 11.4 + }; - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (const) ===> const fptype& kernelAccessConst( const fptype* buffer ) <===] - static constexpr auto kernelAccessConst = - KernelAccessHelper::template kernelAccessFieldConst<>; // requires cuda 11.4 -}; + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- + typedef KernelAccessMatrixElements HostAccessMatrixElements; + typedef KernelAccessMatrixElements DeviceAccessMatrixElements; -typedef KernelAccessMatrixElements HostAccessMatrixElements; -typedef KernelAccessMatrixElements DeviceAccessMatrixElements; + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- +} // end namespace mg5amcGpu/mg5amcCpu #endif // MemoryAccessMatrixElements_H diff --git a/epochX/cudacpp/gg_ttg.mad/SubProcesses/MemoryAccessMomenta.h b/epochX/cudacpp/gg_ttg.mad/SubProcesses/MemoryAccessMomenta.h index 0ac4faa3c7..29266de32c 100644 --- a/epochX/cudacpp/gg_ttg.mad/SubProcesses/MemoryAccessMomenta.h +++ b/epochX/cudacpp/gg_ttg.mad/SubProcesses/MemoryAccessMomenta.h @@ -12,261 +12,264 @@ #include "MemoryAccessHelpers.h" #include "MemoryAccessVectors.h" +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) #ifdef __CUDACC__ -using mg5amcGpu::CPPProcess; +namespace mg5amcGpu #else -using mg5amcCpu::CPPProcess; +namespace mg5amcCpu #endif - -//---------------------------------------------------------------------------- - -// A class describing the internal layout of memory buffers for momenta -// This implementation uses an AOSOA[npagM][npar][np4][neppM] where nevt=npagM*neppM -// [If many implementations are used, a suffix _AOSOAv1 should be appended to the class name] -class MemoryAccessMomentaBase //_AOSOAv1 { -public: + //---------------------------------------------------------------------------- + + // A class describing the internal layout of memory buffers for momenta + // This implementation uses an AOSOA[npagM][npar][np4][neppM] where nevt=npagM*neppM + // [If many implementations are used, a suffix _AOSOAv1 should be appended to the class name] + class MemoryAccessMomentaBase //_AOSOAv1 + { + public: - // Number of Events Per Page in the momenta AOSOA memory buffer layout - // (these are all best kept as a compile-time constants: see issue #23) + // Number of Events Per Page in the momenta AOSOA memory buffer layout + // (these are all best kept as a compile-time constants: see issue #23) #ifdef __CUDACC__ /* clang-format off */ - // ----------------------------------------------------------------------------------------------- - // --- GPUs: neppM is best set to a power of 2 times the number of fptype's in a 32-byte cacheline - // --- This is relevant to ensure coalesced access to momenta in global memory - // --- Note that neppR is hardcoded and may differ from neppM and neppV on some platforms - // ----------------------------------------------------------------------------------------------- - //static constexpr int neppM = 64/sizeof(fptype); // 2x 32-byte GPU cache lines (512 bits): 8 (DOUBLE) or 16 (FLOAT) - static constexpr int neppM = 32/sizeof(fptype); // (DEFAULT) 32-byte GPU cache line (256 bits): 4 (DOUBLE) or 8 (FLOAT) - //static constexpr int neppM = 1; // *** NB: this is equivalent to AOS *** (slower: 1.03E9 instead of 1.11E9 in eemumu) + // ----------------------------------------------------------------------------------------------- + // --- GPUs: neppM is best set to a power of 2 times the number of fptype's in a 32-byte cacheline + // --- This is relevant to ensure coalesced access to momenta in global memory + // --- Note that neppR is hardcoded and may differ from neppM and neppV on some platforms + // ----------------------------------------------------------------------------------------------- + //static constexpr int neppM = 64/sizeof(fptype); // 2x 32-byte GPU cache lines (512 bits): 8 (DOUBLE) or 16 (FLOAT) + static constexpr int neppM = 32/sizeof(fptype); // (DEFAULT) 32-byte GPU cache line (256 bits): 4 (DOUBLE) or 8 (FLOAT) + //static constexpr int neppM = 1; // *** NB: this is equivalent to AOS *** (slower: 1.03E9 instead of 1.11E9 in eemumu) #else - // ----------------------------------------------------------------------------------------------- - // --- CPUs: neppM is best set equal to the number of fptype's (neppV) in a vector register - // --- This is relevant to ensure faster access to momenta from C++ memory cache lines - // --- However, neppM is now decoupled from neppV (issue #176) and can be separately hardcoded - // --- In practice, neppR, neppM and neppV could now (in principle) all be different - // ----------------------------------------------------------------------------------------------- + // ----------------------------------------------------------------------------------------------- + // --- CPUs: neppM is best set equal to the number of fptype's (neppV) in a vector register + // --- This is relevant to ensure faster access to momenta from C++ memory cache lines + // --- However, neppM is now decoupled from neppV (issue #176) and can be separately hardcoded + // --- In practice, neppR, neppM and neppV could now (in principle) all be different + // ----------------------------------------------------------------------------------------------- #ifdef MGONGPU_CPPSIMD - static constexpr int neppM = MGONGPU_CPPSIMD; // (DEFAULT) neppM=neppV for optimal performance - //static constexpr int neppM = 64/sizeof(fptype); // maximum CPU vector width (512 bits): 8 (DOUBLE) or 16 (FLOAT) - //static constexpr int neppM = 32/sizeof(fptype); // lower CPU vector width (256 bits): 4 (DOUBLE) or 8 (FLOAT) - //static constexpr int neppM = 1; // *** NB: this is equivalent to AOS *** (slower: 4.66E6 instead of 5.09E9 in eemumu) - //static constexpr int neppM = MGONGPU_CPPSIMD*2; // FOR TESTS + static constexpr int neppM = MGONGPU_CPPSIMD; // (DEFAULT) neppM=neppV for optimal performance + //static constexpr int neppM = 64/sizeof(fptype); // maximum CPU vector width (512 bits): 8 (DOUBLE) or 16 (FLOAT) + //static constexpr int neppM = 32/sizeof(fptype); // lower CPU vector width (256 bits): 4 (DOUBLE) or 8 (FLOAT) + //static constexpr int neppM = 1; // *** NB: this is equivalent to AOS *** (slower: 4.66E6 instead of 5.09E9 in eemumu) + //static constexpr int neppM = MGONGPU_CPPSIMD*2; // FOR TESTS #else - static constexpr int neppM = 1; // (DEFAULT) neppM=neppV for optimal performance (NB: this is equivalent to AOS) + static constexpr int neppM = 1; // (DEFAULT) neppM=neppV for optimal performance (NB: this is equivalent to AOS) #endif #endif /* clang-format on */ - // SANITY CHECK: check that neppM is a power of two - static_assert( ispoweroftwo( neppM ), "neppM is not a power of 2" ); + // SANITY CHECK: check that neppM is a power of two + static_assert( ispoweroftwo( neppM ), "neppM is not a power of 2" ); -private: + private: - friend class MemoryAccessHelper; - friend class KernelAccessHelper; - friend class KernelAccessHelper; + friend class MemoryAccessHelper; + friend class KernelAccessHelper; + friend class KernelAccessHelper; - // The number of components of a 4-momentum - static constexpr int np4 = CPPProcess::np4; + // The number of components of a 4-momentum + static constexpr int np4 = CPPProcess::np4; - // The number of particles in this physics process - static constexpr int npar = CPPProcess::npar; + // The number of particles in this physics process + static constexpr int npar = CPPProcess::npar; - //-------------------------------------------------------------------------- - // NB all KernelLaunchers assume that memory access can be decomposed as "accessField = decodeRecord( accessRecord )" - // (in other words: first locate the event record for a given event, then locate an element in that record) - //-------------------------------------------------------------------------- + //-------------------------------------------------------------------------- + // NB all KernelLaunchers assume that memory access can be decomposed as "accessField = decodeRecord( accessRecord )" + // (in other words: first locate the event record for a given event, then locate an element in that record) + //-------------------------------------------------------------------------- - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] - static __host__ __device__ inline fptype* - ieventAccessRecord( fptype* buffer, - const int ievt ) - { - const int ipagM = ievt / neppM; // #event "M-page" - const int ieppM = ievt % neppM; // #event in the current event M-page - constexpr int ip4 = 0; - constexpr int ipar = 0; - return &( buffer[ipagM * npar * np4 * neppM + ipar * np4 * neppM + ip4 * neppM + ieppM] ); // AOSOA[ipagM][ipar][ip4][ieppM] - } - - //-------------------------------------------------------------------------- - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, Ts... args ) <===] - // [NB: expand variadic template "Ts... args" to "const int ip4, const int ipar" and rename "Field" as "Ip4Ipar"] - static __host__ __device__ inline fptype& - decodeRecord( fptype* buffer, - const int ip4, - const int ipar ) + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] + static __host__ __device__ inline fptype* + ieventAccessRecord( fptype* buffer, + const int ievt ) + { + const int ipagM = ievt / neppM; // #event "M-page" + const int ieppM = ievt % neppM; // #event in the current event M-page + constexpr int ip4 = 0; + constexpr int ipar = 0; + return &( buffer[ipagM * npar * np4 * neppM + ipar * np4 * neppM + ip4 * neppM + ieppM] ); // AOSOA[ipagM][ipar][ip4][ieppM] + } + + //-------------------------------------------------------------------------- + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, Ts... args ) <===] + // [NB: expand variadic template "Ts... args" to "const int ip4, const int ipar" and rename "Field" as "Ip4Ipar"] + static __host__ __device__ inline fptype& + decodeRecord( fptype* buffer, + const int ip4, + const int ipar ) + { + constexpr int ipagM = 0; + constexpr int ieppM = 0; + return buffer[ipagM * npar * np4 * neppM + ipar * np4 * neppM + ip4 * neppM + ieppM]; // AOSOA[ipagM][ipar][ip4][ieppM] + } + }; + + //---------------------------------------------------------------------------- + + // A class providing access to memory buffers for a given event, based on explicit event numbers + // Its methods use the MemoryAccessHelper templates - note the use of the template keyword in template function instantiations + class MemoryAccessMomenta : public MemoryAccessMomentaBase { - constexpr int ipagM = 0; - constexpr int ieppM = 0; - return buffer[ipagM * npar * np4 * neppM + ipar * np4 * neppM + ip4 * neppM + ieppM]; // AOSOA[ipagM][ipar][ip4][ieppM] - } -}; + public: + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] + static constexpr auto ieventAccessRecord = MemoryAccessHelper::ieventAccessRecord; + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (const) ===> const fptype* ieventAccessRecordConst( const fptype* buffer, const int ievt ) <===] + static constexpr auto ieventAccessRecordConst = MemoryAccessHelper::ieventAccessRecordConst; + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, const int ipar, const int ipar ) <===] + static constexpr auto decodeRecordIp4Ipar = MemoryAccessHelper::decodeRecord; + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (const) ===> const fptype& decodeRecordConst( const fptype* buffer, const int ipar, const int ipar ) <===] + static constexpr auto decodeRecordIp4IparConst = + MemoryAccessHelper::template decodeRecordConst; + + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (non-const) ===> fptype& ieventAccessIp4Ipar( fptype* buffer, const ievt, const int ipar, const int ipar ) <===] + static constexpr auto ieventAccessIp4Ipar = + MemoryAccessHelper::template ieventAccessField; + + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (const) ===> const fptype& ieventAccessIp4IparConst( const fptype* buffer, const ievt, const int ipar, const int ipar ) <===] + // DEFAULT VERSION + static constexpr auto ieventAccessIp4IparConst = + MemoryAccessHelper::template ieventAccessFieldConst; + + /* + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (const) ===> const fptype& ieventAccessIp4IparConst( const fptype* buffer, const ievt, const int ipar, const int ipar ) <===] + // DEBUG VERSION WITH PRINTOUTS + static __host__ __device__ inline const fptype& + ieventAccessIp4IparConst( const fptype* buffer, + const int ievt, + const int ip4, + const int ipar ) + { + const fptype& out = MemoryAccessHelper::template ieventAccessFieldConst( buffer, ievt, ip4, ipar ); + printf( "ipar=%2d ip4=%2d ievt=%8d out=%8.3f\n", ipar, ip4, ievt, out ); + return out; + } + */ + }; -//---------------------------------------------------------------------------- + //---------------------------------------------------------------------------- -// A class providing access to memory buffers for a given event, based on explicit event numbers -// Its methods use the MemoryAccessHelper templates - note the use of the template keyword in template function instantiations -class MemoryAccessMomenta : public MemoryAccessMomentaBase -{ -public: - - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] - static constexpr auto ieventAccessRecord = MemoryAccessHelper::ieventAccessRecord; - - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (const) ===> const fptype* ieventAccessRecordConst( const fptype* buffer, const int ievt ) <===] - static constexpr auto ieventAccessRecordConst = MemoryAccessHelper::ieventAccessRecordConst; - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, const int ipar, const int ipar ) <===] - static constexpr auto decodeRecordIp4Ipar = MemoryAccessHelper::decodeRecord; - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (const) ===> const fptype& decodeRecordConst( const fptype* buffer, const int ipar, const int ipar ) <===] - static constexpr auto decodeRecordIp4IparConst = - MemoryAccessHelper::template decodeRecordConst; - - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (non-const) ===> fptype& ieventAccessIp4Ipar( fptype* buffer, const ievt, const int ipar, const int ipar ) <===] - static constexpr auto ieventAccessIp4Ipar = - MemoryAccessHelper::template ieventAccessField; - - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (const) ===> const fptype& ieventAccessIp4IparConst( const fptype* buffer, const ievt, const int ipar, const int ipar ) <===] - // DEFAULT VERSION - static constexpr auto ieventAccessIp4IparConst = - MemoryAccessHelper::template ieventAccessFieldConst; - - /* - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (const) ===> const fptype& ieventAccessIp4IparConst( const fptype* buffer, const ievt, const int ipar, const int ipar ) <===] - // DEBUG VERSION WITH PRINTOUTS - static __host__ __device__ inline const fptype& - ieventAccessIp4IparConst( const fptype* buffer, - const int ievt, - const int ip4, - const int ipar ) + // A class providing access to memory buffers for a given event, based on implicit kernel rules + // Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations + template + class KernelAccessMomenta { - const fptype& out = MemoryAccessHelper::template ieventAccessFieldConst( buffer, ievt, ip4, ipar ); - printf( "ipar=%2d ip4=%2d ievt=%8d out=%8.3f\n", ipar, ip4, ievt, out ); - return out; - } - */ -}; - -//---------------------------------------------------------------------------- - -// A class providing access to memory buffers for a given event, based on implicit kernel rules -// Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations -template -class KernelAccessMomenta -{ -public: - - // Expose selected functions from MemoryAccessMomenta - static constexpr auto ieventAccessRecordConst = MemoryAccessMomenta::ieventAccessRecordConst; - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (non-const, SCALAR) ===> fptype& kernelAccessIp4Ipar( fptype* buffer, const int ipar, const int ipar ) <===] - static constexpr auto kernelAccessIp4Ipar = - KernelAccessHelper::template kernelAccessField; - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (const, SCALAR) ===> const fptype& kernelAccessIp4IparConst( const fptype* buffer, const int ipar, const int ipar ) <===] - // DEFAULT VERSION - static constexpr auto kernelAccessIp4IparConst_s = - KernelAccessHelper::template kernelAccessFieldConst; - - /* - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (const, SCALAR) ===> const fptype& kernelAccessIp4IparConst( const fptype* buffer, const int ipar, const int ipar ) <===] - // DEBUG VERSION WITH PRINTOUTS - static __host__ __device__ inline const fptype& - kernelAccessIp4IparConst_s( const fptype* buffer, + public: + + // Expose selected functions from MemoryAccessMomenta + static constexpr auto ieventAccessRecordConst = MemoryAccessMomenta::ieventAccessRecordConst; + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (non-const, SCALAR) ===> fptype& kernelAccessIp4Ipar( fptype* buffer, const int ipar, const int ipar ) <===] + static constexpr auto kernelAccessIp4Ipar = + KernelAccessHelper::template kernelAccessField; + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (const, SCALAR) ===> const fptype& kernelAccessIp4IparConst( const fptype* buffer, const int ipar, const int ipar ) <===] + // DEFAULT VERSION + static constexpr auto kernelAccessIp4IparConst_s = + KernelAccessHelper::template kernelAccessFieldConst; + + /* + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (const, SCALAR) ===> const fptype& kernelAccessIp4IparConst( const fptype* buffer, const int ipar, const int ipar ) <===] + // DEBUG VERSION WITH PRINTOUTS + static __host__ __device__ inline const fptype& + kernelAccessIp4IparConst_s( const fptype* buffer, + const int ip4, + const int ipar ) + { + const fptype& out = KernelAccessHelper::template kernelAccessFieldConst( buffer, ip4, ipar ); + printf( "ipar=%2d ip4=%2d ievt='kernel' out=%8.3f\n", ipar, ip4, out ); + return out; + } + */ + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (const, SCALAR OR VECTOR) ===> fptype_sv kernelAccessIp4IparConst( const fptype* buffer, const int ipar, const int ipar ) <===] + // FIXME? Eventually return by const reference and support aligned arrays only? + // FIXME? Currently return by value to support also unaligned and arbitrary arrays + static __host__ __device__ inline fptype_sv + kernelAccessIp4IparConst( const fptype* buffer, const int ip4, const int ipar ) - { - const fptype& out = KernelAccessHelper::template kernelAccessFieldConst( buffer, ip4, ipar ); - printf( "ipar=%2d ip4=%2d ievt='kernel' out=%8.3f\n", ipar, ip4, out ); - return out; - } - */ - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (const, SCALAR OR VECTOR) ===> fptype_sv kernelAccessIp4IparConst( const fptype* buffer, const int ipar, const int ipar ) <===] - // FIXME? Eventually return by const reference and support aligned arrays only? - // FIXME? Currently return by value to support also unaligned and arbitrary arrays - static __host__ __device__ inline fptype_sv - kernelAccessIp4IparConst( const fptype* buffer, - const int ip4, - const int ipar ) - { - const fptype& out = kernelAccessIp4IparConst_s( buffer, ip4, ipar ); + { + const fptype& out = kernelAccessIp4IparConst_s( buffer, ip4, ipar ); #ifndef MGONGPU_CPPSIMD - return out; + return out; #else - constexpr int neppM = MemoryAccessMomentaBase::neppM; - constexpr bool useContiguousEventsIfPossible = true; // DEFAULT - //constexpr bool useContiguousEventsIfPossible = false; // FOR PERFORMANCE TESTS (treat as arbitrary array even if it is an AOSOA) - // Use c++17 "if constexpr": compile-time branching - if constexpr( useContiguousEventsIfPossible && ( neppM >= neppV ) && ( neppM % neppV == 0 ) ) - { - //constexpr bool skipAlignmentCheck = true; // FASTEST (SEGFAULTS IF MISALIGNED ACCESS, NEEDS A SANITY CHECK ELSEWHERE!) - constexpr bool skipAlignmentCheck = false; // DEFAULT: A BIT SLOWER BUT SAFER [ALLOWS MISALIGNED ACCESS] - if constexpr( skipAlignmentCheck ) - { - //static bool first=true; if( first ){ std::cout << "WARNING! assume aligned AOSOA, skip check" << std::endl; first=false; } // SLOWER (5.06E6) - // FASTEST? (5.09E6 in eemumu 512y) - // This assumes alignment for momenta1d without checking - causes segmentation fault in reinterpret_cast if not aligned! - return mg5amcCpu::fptypevFromAlignedArray( out ); // use reinterpret_cast - } - else if( (size_t)( buffer ) % mgOnGpu::cppAlign == 0 ) + constexpr int neppM = MemoryAccessMomentaBase::neppM; + constexpr bool useContiguousEventsIfPossible = true; // DEFAULT + //constexpr bool useContiguousEventsIfPossible = false; // FOR PERFORMANCE TESTS (treat as arbitrary array even if it is an AOSOA) + // Use c++17 "if constexpr": compile-time branching + if constexpr( useContiguousEventsIfPossible && ( neppM >= neppV ) && ( neppM % neppV == 0 ) ) { - //static bool first=true; if( first ){ std::cout << "WARNING! aligned AOSOA, reinterpret cast" << std::endl; first=false; } // SLOWER (5.00E6) - // DEFAULT! A tiny bit (<1%) slower because of the alignment check (5.07E6 in eemumu 512y) - // This explicitly checks buffer alignment to avoid segmentation faults in reinterpret_cast - return mg5amcCpu::fptypevFromAlignedArray( out ); // SIMD bulk load of neppV, use reinterpret_cast + //constexpr bool skipAlignmentCheck = true; // FASTEST (SEGFAULTS IF MISALIGNED ACCESS, NEEDS A SANITY CHECK ELSEWHERE!) + constexpr bool skipAlignmentCheck = false; // DEFAULT: A BIT SLOWER BUT SAFER [ALLOWS MISALIGNED ACCESS] + if constexpr( skipAlignmentCheck ) + { + //static bool first=true; if( first ){ std::cout << "WARNING! assume aligned AOSOA, skip check" << std::endl; first=false; } // SLOWER (5.06E6) + // FASTEST? (5.09E6 in eemumu 512y) + // This assumes alignment for momenta1d without checking - causes segmentation fault in reinterpret_cast if not aligned! + return mg5amcCpu::fptypevFromAlignedArray( out ); // use reinterpret_cast + } + else if( (size_t)( buffer ) % mgOnGpu::cppAlign == 0 ) + { + //static bool first=true; if( first ){ std::cout << "WARNING! aligned AOSOA, reinterpret cast" << std::endl; first=false; } // SLOWER (5.00E6) + // DEFAULT! A tiny bit (<1%) slower because of the alignment check (5.07E6 in eemumu 512y) + // This explicitly checks buffer alignment to avoid segmentation faults in reinterpret_cast + return mg5amcCpu::fptypevFromAlignedArray( out ); // SIMD bulk load of neppV, use reinterpret_cast + } + else + { + //static bool first=true; if( first ){ std::cout << "WARNING! AOSOA but no reinterpret cast" << std::endl; first=false; } // SLOWER (4.93E6) + // A bit (1%) slower (5.05E6 in eemumu 512y) + // This does not require buffer alignment, but it requires AOSOA with neppM>=neppV and neppM%neppV==0 + return mg5amcCpu::fptypevFromUnalignedArray( out ); // SIMD bulk load of neppV, do not use reinterpret_cast (fewer SIMD operations) + } } else { - //static bool first=true; if( first ){ std::cout << "WARNING! AOSOA but no reinterpret cast" << std::endl; first=false; } // SLOWER (4.93E6) - // A bit (1%) slower (5.05E6 in eemumu 512y) - // This does not require buffer alignment, but it requires AOSOA with neppM>=neppV and neppM%neppV==0 - return mg5amcCpu::fptypevFromUnalignedArray( out ); // SIMD bulk load of neppV, do not use reinterpret_cast (fewer SIMD operations) + //static bool first=true; if( first ){ std::cout << "WARNING! arbitrary array" << std::endl; first=false; } // SLOWER (5.08E6) + // ?!Used to be much slower, now a tiny bit faster for AOSOA?! (5.11E6 for AOSOA, 4.64E6 for AOS in eemumu 512y) + // This does not even require AOSOA with neppM>=neppV and neppM%neppV==0 (e.g. can be used with AOS neppM==1) + constexpr int ievt0 = 0; // just make it explicit in the code that buffer refers to a given ievt0 and decoderIeppV fetches event ievt0+ieppV + auto decoderIeppv = [buffer, ip4, ipar]( int ieppV ) + -> const fptype& + { return MemoryAccessMomenta::ieventAccessIp4IparConst( buffer, ievt0 + ieppV, ip4, ipar ); }; + return mg5amcCpu::fptypevFromArbitraryArray( decoderIeppv ); // iterate over ieppV in neppV (no SIMD) } +#endif } - else + + // Is this a HostAccess or DeviceAccess class? + // [this is only needed for a warning printout in rambo.h for nparf==1 #358] + static __host__ __device__ inline constexpr bool + isOnDevice() { - //static bool first=true; if( first ){ std::cout << "WARNING! arbitrary array" << std::endl; first=false; } // SLOWER (5.08E6) - // ?!Used to be much slower, now a tiny bit faster for AOSOA?! (5.11E6 for AOSOA, 4.64E6 for AOS in eemumu 512y) - // This does not even require AOSOA with neppM>=neppV and neppM%neppV==0 (e.g. can be used with AOS neppM==1) - constexpr int ievt0 = 0; // just make it explicit in the code that buffer refers to a given ievt0 and decoderIeppV fetches event ievt0+ieppV - auto decoderIeppv = [buffer, ip4, ipar]( int ieppV ) - -> const fptype& - { return MemoryAccessMomenta::ieventAccessIp4IparConst( buffer, ievt0 + ieppV, ip4, ipar ); }; - return mg5amcCpu::fptypevFromArbitraryArray( decoderIeppv ); // iterate over ieppV in neppV (no SIMD) + return onDevice; } -#endif - } + }; - // Is this a HostAccess or DeviceAccess class? - // [this is only needed for a warning printout in rambo.h for nparf==1 #358] - static __host__ __device__ inline constexpr bool - isOnDevice() - { - return onDevice; - } -}; + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- + typedef KernelAccessMomenta HostAccessMomenta; + typedef KernelAccessMomenta DeviceAccessMomenta; -typedef KernelAccessMomenta HostAccessMomenta; -typedef KernelAccessMomenta DeviceAccessMomenta; + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- +} // end namespace mg5amcGpu/mg5amcCpu #endif // MemoryAccessMomenta_H diff --git a/epochX/cudacpp/gg_ttg.mad/SubProcesses/MemoryAccessNumerators.h b/epochX/cudacpp/gg_ttg.mad/SubProcesses/MemoryAccessNumerators.h index b373fd6048..b152183b28 100644 --- a/epochX/cudacpp/gg_ttg.mad/SubProcesses/MemoryAccessNumerators.h +++ b/epochX/cudacpp/gg_ttg.mad/SubProcesses/MemoryAccessNumerators.h @@ -9,15 +9,24 @@ #include "MemoryAccessGs.h" -//---------------------------------------------------------------------------- +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif +{ + //---------------------------------------------------------------------------- + + // A class describing the internal layout of memory buffers for numerators + // This implementation reuses the plain ARRAY[nevt] implementation of MemoryAccessGs -// A class describing the internal layout of memory buffers for numerators -// This implementation reuses the plain ARRAY[nevt] implementation of MemoryAccessGs + typedef KernelAccessGs HostAccessNumerators; + typedef KernelAccessGs DeviceAccessNumerators; -typedef KernelAccessGs HostAccessNumerators; -typedef KernelAccessGs DeviceAccessNumerators; + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- +} // end namespace mg5amcGpu/mg5amcCpu #endif #endif // MemoryAccessNumerators_H diff --git a/epochX/cudacpp/gg_ttg.mad/SubProcesses/MemoryAccessWavefunctions.h b/epochX/cudacpp/gg_ttg.mad/SubProcesses/MemoryAccessWavefunctions.h index f42f0d34ed..5428aaf933 100644 --- a/epochX/cudacpp/gg_ttg.mad/SubProcesses/MemoryAccessWavefunctions.h +++ b/epochX/cudacpp/gg_ttg.mad/SubProcesses/MemoryAccessWavefunctions.h @@ -14,147 +14,156 @@ #define MGONGPU_TRIVIAL_WAVEFUNCTIONS 1 -//---------------------------------------------------------------------------- - -#ifndef MGONGPU_TRIVIAL_WAVEFUNCTIONS - -// A class describing the internal layout of memory buffers for wavefunctions -// This implementation uses an AOSOA[npagW][nw6][nx2][neppW] where nevt=npagW*neppW -// [If many implementations are used, a suffix _AOSOAv1 should be appended to the class name] -class MemoryAccessWavefunctionsBase //_AOSOAv1 +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { -public: - - // Number of Events Per Page in the wavefunction AOSOA memory buffer layout - static constexpr int neppW = 1; // AOS (just a test...) - -private: - - friend class MemoryAccessHelper; - friend class KernelAccessHelper; - friend class KernelAccessHelper; - - // The number of components of a (fermion or vector) wavefunction - static constexpr int nw6 = mgOnGpu::nw6; - - // The number of floating point components of a complex number - static constexpr int nx2 = mgOnGpu::nx2; + //---------------------------------------------------------------------------- - //-------------------------------------------------------------------------- - // NB all KernelLaunchers assume that memory access can be decomposed as "accessField = decodeRecord( accessRecord )" - // (in other words: first locate the event record for a given event, then locate an element in that record) - //-------------------------------------------------------------------------- +#ifndef MGONGPU_TRIVIAL_WAVEFUNCTIONS - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] - static __host__ __device__ inline fptype* - ieventAccessRecord( fptype* buffer, - const int ievt ) + // A class describing the internal layout of memory buffers for wavefunctions + // This implementation uses an AOSOA[npagW][nw6][nx2][neppW] where nevt=npagW*neppW + // [If many implementations are used, a suffix _AOSOAv1 should be appended to the class name] + class MemoryAccessWavefunctionsBase //_AOSOAv1 { - const int ipagW = ievt / neppW; // #event "W-page" - const int ieppW = ievt % neppW; // #event in the current event W-page - constexpr int iw6 = 0; - constexpr int ix2 = 0; - return &( buffer[ipagW * nw6 * nx2 * neppW + iw6 * nx2 * neppW + ix2 * neppW + ieppW] ); // AOSOA[ipagW][iw6][ix2][ieppW] - } - - //-------------------------------------------------------------------------- - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, Ts... args ) <===] - // [NB: expand variadic template "Ts... args" to "const int iw6, const int ix2" and rename "Field" as "Iw6Ix2"] - static __host__ __device__ inline fptype& - decodeRecord( fptype* buffer, - const int iw6, - const int ix2 ) + public: + + // Number of Events Per Page in the wavefunction AOSOA memory buffer layout + static constexpr int neppW = 1; // AOS (just a test...) + + private: + + friend class MemoryAccessHelper; + friend class KernelAccessHelper; + friend class KernelAccessHelper; + + // The number of components of a (fermion or vector) wavefunction + static constexpr int nw6 = mgOnGpu::nw6; + + // The number of floating point components of a complex number + static constexpr int nx2 = mgOnGpu::nx2; + + //-------------------------------------------------------------------------- + // NB all KernelLaunchers assume that memory access can be decomposed as "accessField = decodeRecord( accessRecord )" + // (in other words: first locate the event record for a given event, then locate an element in that record) + //-------------------------------------------------------------------------- + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] + static __host__ __device__ inline fptype* + ieventAccessRecord( fptype* buffer, + const int ievt ) + { + const int ipagW = ievt / neppW; // #event "W-page" + const int ieppW = ievt % neppW; // #event in the current event W-page + constexpr int iw6 = 0; + constexpr int ix2 = 0; + return &( buffer[ipagW * nw6 * nx2 * neppW + iw6 * nx2 * neppW + ix2 * neppW + ieppW] ); // AOSOA[ipagW][iw6][ix2][ieppW] + } + + //-------------------------------------------------------------------------- + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, Ts... args ) <===] + // [NB: expand variadic template "Ts... args" to "const int iw6, const int ix2" and rename "Field" as "Iw6Ix2"] + static __host__ __device__ inline fptype& + decodeRecord( fptype* buffer, + const int iw6, + const int ix2 ) + { + constexpr int ipagW = 0; + constexpr int ieppW = 0; + return buffer[ipagW * nw6 * nx2 * neppW + iw6 * nx2 * neppW + ix2 * neppW + ieppW]; // AOSOA[ipagW][iw6][ix2][ieppW] + } + }; + + //---------------------------------------------------------------------------- + + // A class providing access to memory buffers for a given event, based on explicit event numbers + // Its methods use the MemoryAccessHelper templates - note the use of the template keyword in template function instantiations + class MemoryAccessWavefunctions : public MemoryAccessWavefunctionsBase { - constexpr int ipagW = 0; - constexpr int ieppW = 0; - return buffer[ipagW * nw6 * nx2 * neppW + iw6 * nx2 * neppW + ix2 * neppW + ieppW]; // AOSOA[ipagW][iw6][ix2][ieppW] - } -}; - -//---------------------------------------------------------------------------- + public: -// A class providing access to memory buffers for a given event, based on explicit event numbers -// Its methods use the MemoryAccessHelper templates - note the use of the template keyword in template function instantiations -class MemoryAccessWavefunctions : public MemoryAccessWavefunctionsBase -{ -public: + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] + static constexpr auto ieventAccessRecord = MemoryAccessHelper::ieventAccessRecord; - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] - static constexpr auto ieventAccessRecord = MemoryAccessHelper::ieventAccessRecord; + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (const) ===> const fptype* ieventAccessRecordConst( const fptype* buffer, const int ievt ) <===] + static constexpr auto ieventAccessRecordConst = MemoryAccessHelper::ieventAccessRecordConst; - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (const) ===> const fptype* ieventAccessRecordConst( const fptype* buffer, const int ievt ) <===] - static constexpr auto ieventAccessRecordConst = MemoryAccessHelper::ieventAccessRecordConst; + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, const int iw6, const int ix2 ) <===] + static constexpr auto decodeRecordIw6Ix2 = MemoryAccessHelper::decodeRecord; - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, const int iw6, const int ix2 ) <===] - static constexpr auto decodeRecordIw6Ix2 = MemoryAccessHelper::decodeRecord; + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (const) ===> const fptype& decodeRecordConst( const fptype* buffer, const int iw6, const int ix2 ) <===] + static constexpr auto decodeRecordIw6Ix2Const = + MemoryAccessHelper::template decodeRecordConst; - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (const) ===> const fptype& decodeRecordConst( const fptype* buffer, const int iw6, const int ix2 ) <===] - static constexpr auto decodeRecordIw6Ix2Const = - MemoryAccessHelper::template decodeRecordConst; + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (non-const) ===> fptype& ieventAccessIw6Ix2( fptype* buffer, const ievt, const int iw6, const int ix2 ) <===] + static constexpr auto ieventAccessIw6Ix2 = + MemoryAccessHelper::template ieventAccessField; - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (non-const) ===> fptype& ieventAccessIw6Ix2( fptype* buffer, const ievt, const int iw6, const int ix2 ) <===] - static constexpr auto ieventAccessIw6Ix2 = - MemoryAccessHelper::template ieventAccessField; - - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (const) ===> const fptype& ieventAccessIw6Ix2Const( const fptype* buffer, const ievt, const int iw6, const int ix2 ) <===] - static constexpr auto ieventAccessIw6Ix2Const = - MemoryAccessHelper::template ieventAccessFieldConst; -}; + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (const) ===> const fptype& ieventAccessIw6Ix2Const( const fptype* buffer, const ievt, const int iw6, const int ix2 ) <===] + static constexpr auto ieventAccessIw6Ix2Const = + MemoryAccessHelper::template ieventAccessFieldConst; + }; #endif // #ifndef MGONGPU_TRIVIAL_WAVEFUNCTIONS -//---------------------------------------------------------------------------- + //---------------------------------------------------------------------------- -// A class providing access to memory buffers for a given event, based on implicit kernel rules -// Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations -template -class KernelAccessWavefunctions -{ -public: + // A class providing access to memory buffers for a given event, based on implicit kernel rules + // Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations + template + class KernelAccessWavefunctions + { + public: #ifndef MGONGPU_TRIVIAL_WAVEFUNCTIONS - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (non-const) ===> fptype& kernelAccessIw6Ix2( fptype* buffer, const int iw6, const int ix2 ) <===] - static constexpr auto kernelAccessIw6Ix2 = - KernelAccessHelper::template kernelAccessField; + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (non-const) ===> fptype& kernelAccessIw6Ix2( fptype* buffer, const int iw6, const int ix2 ) <===] + static constexpr auto kernelAccessIw6Ix2 = + KernelAccessHelper::template kernelAccessField; - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (const) ===> const fptype& kernelAccessIw6Ix2Const( const fptype* buffer, const int iw6, const int ix2 ) <===] - static constexpr auto kernelAccessIw6Ix2Const = - KernelAccessHelper::template kernelAccessFieldConst; + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (const) ===> const fptype& kernelAccessIw6Ix2Const( const fptype* buffer, const int iw6, const int ix2 ) <===] + static constexpr auto kernelAccessIw6Ix2Const = + KernelAccessHelper::template kernelAccessFieldConst; #else - static __host__ __device__ inline cxtype_sv* - kernelAccess( fptype* buffer ) - { - return reinterpret_cast( buffer ); - } + static __host__ __device__ inline cxtype_sv* + kernelAccess( fptype* buffer ) + { + return reinterpret_cast( buffer ); + } - static __host__ __device__ inline const cxtype_sv* - kernelAccessConst( const fptype* buffer ) - { - return reinterpret_cast( buffer ); - } + static __host__ __device__ inline const cxtype_sv* + kernelAccessConst( const fptype* buffer ) + { + return reinterpret_cast( buffer ); + } #endif // #ifndef MGONGPU_TRIVIAL_WAVEFUNCTIONS -}; + }; + + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- + typedef KernelAccessWavefunctions HostAccessWavefunctions; + typedef KernelAccessWavefunctions DeviceAccessWavefunctions; -typedef KernelAccessWavefunctions HostAccessWavefunctions; -typedef KernelAccessWavefunctions DeviceAccessWavefunctions; + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- +} // end namespace mg5amcGpu/mg5amcCpu #endif // MemoryAccessWavefunctions_H diff --git a/epochX/cudacpp/gg_ttg.mad/SubProcesses/cudacpp.mk b/epochX/cudacpp/gg_ttg.mad/SubProcesses/cudacpp.mk index a0397e9ecc..c2f7b8e0f6 100644 --- a/epochX/cudacpp/gg_ttg.mad/SubProcesses/cudacpp.mk +++ b/epochX/cudacpp/gg_ttg.mad/SubProcesses/cudacpp.mk @@ -76,7 +76,7 @@ endif CXXFLAGS = $(OPTFLAGS) -std=c++17 $(INCFLAGS) -Wall -Wshadow -Wextra ifeq ($(shell $(CXX) --version | grep ^nvc++),) -CXXFLAGS+= -ffast-math # see issue #117 +CXXFLAGS += -ffast-math # see issue #117 endif ###CXXFLAGS+= -Ofast # performance is not different from --fast-math ###CXXFLAGS+= -g # FOR DEBUGGING ONLY @@ -122,7 +122,7 @@ ifneq ($(wildcard $(CUDA_HOME)/bin/nvcc),) CUINC = -I$(CUDA_HOME)/include/ CURANDLIBFLAGS = -L$(CUDA_HOME)/lib64/ -lcurand # NB: -lcuda is not needed here! CUOPTFLAGS = -lineinfo - CUFLAGS = $(OPTFLAGS) $(CUOPTFLAGS) $(INCFLAGS) $(CUINC) $(USE_NVTX) $(CUARCHFLAGS) -use_fast_math + CUFLAGS = $(foreach opt, $(OPTFLAGS), -Xcompiler $(opt)) $(CUOPTFLAGS) $(INCFLAGS) $(CUINC) $(USE_NVTX) $(CUARCHFLAGS) -use_fast_math ###CUFLAGS += -Xcompiler -Wall -Xcompiler -Wextra -Xcompiler -Wshadow ###NVCC_VERSION = $(shell $(NVCC) --version | grep 'Cuda compilation tools' | cut -d' ' -f5 | cut -d, -f1) CUFLAGS += -std=c++17 # need CUDA >= 11.2 (see #333): this is enforced in mgOnGpuConfig.h @@ -142,6 +142,8 @@ else override CUINC= override CURANDLIBFLAGS= endif +export NVCC +export CUFLAGS # Set the host C++ compiler for nvcc via "-ccbin " # (NB issue #505: this must be a single word, "clang++ --gcc-toolchain..." is not supported) @@ -439,7 +441,7 @@ endif # Target (and build options): debug MAKEDEBUG= -debug: OPTFLAGS = -g -O0 -DDEBUG2 +debug: OPTFLAGS = -g -O0 debug: CUOPTFLAGS = -G debug: MAKEDEBUG := debug debug: all.$(TAG) @@ -468,9 +470,9 @@ $(BUILDDIR)/%.o : %.cc *.h ../../src/*.h $(BUILDDIR)/.build.$(TAG) @if [ ! -d $(BUILDDIR) ]; then echo "mkdir -p $(BUILDDIR)"; mkdir -p $(BUILDDIR); fi $(CXX) $(CPPFLAGS) $(CXXFLAGS) -fPIC -c $< -o $@ -# Apply special build flags only to CrossSectionKernel.cc and gCrossSectionKernel.cu (no fast math, see #117) +# Apply special build flags only to CrossSectionKernel.cc and gCrossSectionKernel.cu (no fast math, see #117 and #516) ifeq ($(shell $(CXX) --version | grep ^nvc++),) -$(BUILDDIR)/CrossSectionKernels.o: CXXFLAGS += -fno-fast-math +$(BUILDDIR)/CrossSectionKernels.o: CXXFLAGS := $(filter-out -ffast-math,$(CXXFLAGS)) $(BUILDDIR)/CrossSectionKernels.o: CXXFLAGS += -fno-fast-math ifneq ($(NVCC),) $(BUILDDIR)/gCrossSectionKernels.o: CUFLAGS += -Xcompiler -fno-fast-math diff --git a/epochX/cudacpp/gg_ttg.mad/SubProcesses/runTest.cc b/epochX/cudacpp/gg_ttg.mad/SubProcesses/runTest.cc index 572e28aaea..df7488178e 100644 --- a/epochX/cudacpp/gg_ttg.mad/SubProcesses/runTest.cc +++ b/epochX/cudacpp/gg_ttg.mad/SubProcesses/runTest.cc @@ -2,6 +2,9 @@ // Licensed under the GNU Lesser General Public License (version 3 or later). // Created by: S. Hageboeck (Nov 2020) for the MG5aMC CUDACPP plugin. // Further modified by: S. Hageboeck, O. Mattelaer, S. Roiser, A. Valassi (2020-2023) for the MG5aMC CUDACPP plugin. +//---------------------------------------------------------------------------- +// Use ./runTest.exe --gtest_filter=*xxx to run only testxxx.cc tests +//---------------------------------------------------------------------------- #include "mgOnGpuConfig.h" diff --git a/epochX/cudacpp/gg_ttg.mad/SubProcesses/testmisc.cc b/epochX/cudacpp/gg_ttg.mad/SubProcesses/testmisc.cc index 989aba1fdc..895d6eeb56 100644 --- a/epochX/cudacpp/gg_ttg.mad/SubProcesses/testmisc.cc +++ b/epochX/cudacpp/gg_ttg.mad/SubProcesses/testmisc.cc @@ -3,7 +3,7 @@ // Created by: A. Valassi (Jan 2022) for the MG5aMC CUDACPP plugin. // Further modified by: A. Valassi (2022-2023) for the MG5aMC CUDACPP plugin. //---------------------------------------------------------------------------- -// Use ./runTest.exe --gtest_filter=*misc to run only this test +// Use ./runTest.exe --gtest_filter=*misc to run only testmisc.cc tests //---------------------------------------------------------------------------- #include "mgOnGpuConfig.h" @@ -25,33 +25,48 @@ #define XTESTID( s ) TESTID( s ) +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif +{ #ifdef MGONGPU_CPPSIMD /* clang-format off */ -bool maskand( const bool_v& mask ){ bool out = true; for ( int i=0; i #include +#include // debug #701 (see https://stackoverflow.com/a/17473528) #include #include #include @@ -28,16 +32,47 @@ #define XTESTID( s ) TESTID( s ) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif +{ + std::string FPEhandlerMessage = "unknown"; + int FPEhandlerIevt = -1; + inline void FPEhandler( int sig ) + { +#ifdef __CUDACC__ + std::cerr << "Floating Point Exception (GPU): '" << FPEhandlerMessage << "' ievt=" << FPEhandlerIevt << std::endl; +#else + std::cerr << "Floating Point Exception (CPU neppV=" << neppV << "): '" << FPEhandlerMessage << "' ievt=" << FPEhandlerIevt << std::endl; +#endif + exit( 0 ); + } +} + TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) { +#ifdef __CUDACC__ + using namespace mg5amcGpu; +#else + using namespace mg5amcCpu; +#endif +#ifndef __APPLE__ // test #701 (except on MacOS where feenableexcept is not defined #730) + const bool enableFPE = !getenv( "CUDACPP_RUNTIME_DISABLEFPE" ); + if( enableFPE ) + { + feenableexcept( FE_INVALID | FE_DIVBYZERO | FE_OVERFLOW | FE_UNDERFLOW ); // debug #701 + signal( SIGFPE, FPEhandler ); + } +#endif constexpr bool dumpEvents = false; // dump the expected output of the test? constexpr bool testEvents = !dumpEvents; // run the test? constexpr fptype toleranceXXXs = std::is_same::value ? 1.E-15 : 1.E-5; // Constant parameters constexpr int neppM = MemoryAccessMomenta::neppM; // AOSOA layout - using mgOnGpu::neppV; constexpr int np4 = CPPProcess::np4; - const int nevt = 16; // 12 independent tests plus 4 duplicates (need a multiple of 8 for floats or for '512z') + const int nevt = 32; // 12 independent tests plus 20 duplicates (need a multiple of 16 for floats '512z') assert( nevt % neppM == 0 ); // nevt must be a multiple of neppM assert( nevt % neppV == 0 ); // nevt must be a multiple of neppV // Fill in the input momenta @@ -46,24 +81,41 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) #else mg5amcCpu::HostBufferMomenta hstMomenta( nevt ); // AOSOA[npagM][npar=4][np4=4][neppM] #endif /* clang-format off */ + // NB NEW TESTS FOR DEBUGGING #701: KEEP TWO SEPARATE SETS (16-SIMD-VECTORS!) OF TESTS FOR M==0 AND M!=0! const fptype par0[np4 * nevt] = // AOS[nevt][np4] { - 500, 0, 0, 500, // #0 (m=0 pT=0 E=pz>0) - 500, 0, 0, -500, // #1 (m=0 pT=0 -E=pz<0) - 500, 300, 400, 0, // #2 (m=0 pT>0 pz=0) - 500, 180, 240, 400, // #3 (m=0 pT>0 pz>0) - 500, 180, 240, -400, // #4 (m=0 pT>0 pz<0) - 500, 0, 0, 0, // #5 (m=50>0 pT=0 pz=0) - 500, 0, 0, 300, // #6 (m=40>0 pT=0 pz>0) - 500, 0, 0, -300, // #7 (m=40>0 pT=0 pz<0) - 500, 180, 240, 0, // #8 (m=40>0 pT>0 pz=0) - 500, -240, -180, 0, // #9 (m=40>0 pT>0 pz=0) - 500, 180, 192, 144, // #10 (m=40>0 pT>0 pz>0) - 500, 180, 192, -144, // #11 (m=40>0 pT>0 pz<0) - 500, 0, 0, 500, // DUPLICATE #12 == #0 (m=0 pT=0 E=pz>0) - 500, 0, 0, -500, // DUPLICATE #13 == #1 (m=0 pT=0 -E=pz<0) - 500, 300, 400, 0, // DUPLICATE #14 == #2 (m=0 pT>0 pz=0) - 500, 180, 240, 400 // DUPLICATE #15 == #3 (m=0 pT>0 pz>0) + 500, 0, 0, 500, // #0 (m=0 pT=0 E=pz>0) + 500, 0, 0, -500, // #1 (m=0 pT=0 -E=pz<0) + 500, 300, 400, 0, // #2 (m=0 pT>0 pz=0) + 500, 180, 240, 400, // #3 (m=0 pT>0 pz>0) + 500, 180, 240, -400, // #4 (m=0 pT>0 pz<0) + 500, 0, 0, 500, // #5 DUPLICATE == #0 (m=0 pT=0 E=pz>0) + 500, 0, 0, -500, // #6 DUPLICATE == #1 (m=0 pT=0 -E=pz<0) + 500, 300, 400, 0, // #7 DUPLICATE == #2 (m=0 pT>0 pz=0) + 500, 180, 240, 400, // #8 DUPLICATE == #3 (m=0 pT>0 pz>0) + 500, 180, 240, -400, // #9 DUPLICATE == #4 (m=0 pT>0 pz<0) + 500, 0, 0, 500, // #10 DUPLICATE == #0 (m=0 pT=0 E=pz>0) + 500, 0, 0, -500, // #11 DUPLICATE == #1 (m=0 pT=0 -E=pz<0) + 500, 300, 400, 0, // #12 DUPLICATE == #2 (m=0 pT>0 pz=0) + 500, 180, 240, 400, // #13 DUPLICATE == #3 (m=0 pT>0 pz>0) + 500, 180, 240, -400, // #14 DUPLICATE == #4 (m=0 pT>0 pz<0) + 500, 0, 0, 500, // #15 DUPLICATE == #0 (m=0 pT=0 E=pz>0) + 500, 0, 0, 0, // #16 (m=50>0 pT=0 pz=0) + 500, 0, 0, 300, // #17 (m=40>0 pT=0 pz>0) + 500, 0, 0, -300, // #18 (m=40>0 pT=0 pz<0) + 500, 180, 240, 0, // #19 (m=40>0 pT>0 pz=0) + 500, -240, -180, 0, // #20 (m=40>0 pT>0 pz=0) + 500, 180, 192, 144, // #21 (m=40>0 pT>0 pz>0) + 500, 180, 192, -144, // #22 (m=40>0 pT>0 pz<0) + 500, 0, 0, 0, // #23 DUPLICATE == #16 (m=50>0 pT=0 pz=0) + 500, 0, 0, 300, // #24 DUPLICATE == #17 (m=40>0 pT=0 pz>0) + 500, 0, 0, -300, // #25 DUPLICATE == #18 (m=40>0 pT=0 pz<0) + 500, 180, 240, 0, // #26 DUPLICATE == #19 (m=40>0 pT>0 pz=0) + 500, -240, -180, 0, // #27 DUPLICATE == #20 (m=40>0 pT>0 pz=0) + 500, 180, 192, 144, // #28 DUPLICATE == #21 (m=40>0 pT>0 pz>0) + 500, 180, 192, -144, // #29 DUPLICATE == #22 (m=40>0 pT>0 pz<0) + 500, 0, 0, 0, // #30 DUPLICATE == #16 (m=50>0 pT=0 pz=0) + 500, 0, 0, 300 // #31 DUPLICATE == #17 (m=40>0 pT=0 pz>0) }; /* clang-format on */ // Array initialization: zero-out as "{0}" (C and C++) or as "{}" (C++ only) // See https://en.cppreference.com/w/c/language/array_initialization#Notes @@ -99,7 +151,15 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) constexpr int nw6 = CPPProcess::nw6; // dimensions of each wavefunction (HELAS KEK 91-11): e.g. 6 for e+ e- -> mu+ mu- (fermions and vectors) int itest = 0; // index on the expected output vector std::ofstream dumpFile; - if( dumpEvents ) dumpFile.open( dumpFileName, std::ios::trunc ); + if( dumpEvents ) + { + dumpFile.open( dumpFileName, std::ios::trunc ); + dumpFile << " // Copyright (C) 2020-2023 CERN and UCLouvain." << std::endl + << " // Licensed under the GNU Lesser General Public License (version 3 or later)." << std::endl + << " // Created by: A. Valassi (Apr 2021) for the MG5aMC CUDACPP plugin." << std::endl + << " // Further modified by: A. Valassi (2021-2023) for the MG5aMC CUDACPP plugin." << std::endl; + } + // Lambda function for dumping wavefunctions auto dumpwf6 = [&]( std::ostream& out, const cxtype_sv wf[6], const char* xxx, int ievt, int nsp, fptype mass ) { out << std::setprecision( 15 ) << std::scientific; @@ -129,6 +189,7 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) } out << std::defaultfloat; }; + // Lambda function for testing wavefunctions (1) auto testwf6 = [&]( const cxtype_sv wf[6], const char* xxx, int ievt, int nsp, fptype mass ) { if( dumpEvents ) dumpwf6( dumpFile, wf, xxx, ievt, nsp, mass ); @@ -170,6 +231,7 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) } itest++; }; + // Lambda function for testing wavefunctions (2) auto testwf6two = [&]( const cxtype_sv wf[6], const cxtype_sv expwf[6], const char* xxx, int ievt ) { if( testEvents ) @@ -213,6 +275,32 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) } } }; + // Lambda function for resetting hstMomenta to the values of par0 + // This is needed in each test because hstMomenta may have been modified to ensure a function like ipzxxx can be used (#701) + auto resetHstMomentaToPar0 = [&]() + { + for( int ievt = 0; ievt < nevt; ievt++ ) + for( int ip4 = 0; ip4 < np4; ip4++ ) + MemoryAccessMomenta::ieventAccessIp4Ipar( hstMomenta.data(), ievt, ip4, ipar0 ) = par0[ievt * np4 + ip4]; // AOS to AOSOA + }; + // Lambda function for preparing the test of one specific function + const bool debug = false; + auto prepareTest = [&]( const char* xxx, int ievt ) + { + if( debug ) std::cout << "Prepare test " << xxx << " ievt=" << ievt << std::endl; + resetHstMomentaToPar0(); + FPEhandlerMessage = xxx; + FPEhandlerIevt = ievt; + if( std::string( xxx ) == "ipzxxx" || std::string( xxx ) == "opzxxx" || std::string( xxx ) == "imzxxx" || std::string( xxx ) == "omzxxx" || std::string( xxx ) == "ixzxxx" || std::string( xxx ) == "oxzxxx" ) + { + // Modify hstMomenta so that ALL events have the momenta of a single ievt + // This ensures that a function like ipzxxx (which assumes pZ>0) can be used without triggering FPEs (#701) + // This is done by filling the full SIMD vector with the value of ievt, which was already tested to respect the relevant assumptions + for( int jevt = 0; jevt < nevt; jevt++ ) + for( int ip4 = 0; ip4 < np4; ip4++ ) + MemoryAccessMomenta::ieventAccessIp4Ipar( hstMomenta.data(), jevt, ip4, ipar0 ) = par0[ievt * np4 + ip4]; // AOS to AOSOA + } + }; // Array initialization: zero-out as "{0}" (C and C++) or as "{}" (C++ only) // See https://en.cppreference.com/w/c/language/array_initialization#Notes cxtype_sv outwfI[6] = {}; // last result of ixxxxx (mass==0) @@ -224,6 +312,7 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) fptype* fp_outwf = reinterpret_cast( outwf ); // proof of concept for using fptype* in the interface fptype* fp_outwf3 = reinterpret_cast( outwf3 ); // proof of concept for using fptype* in the interface const int nhel = 1; + // *** START OF TESTING LOOP for( auto nsp: { -1, +1 } ) // antifermion/fermion (or initial/final for scalar and vector) { for( int ievt = 0; ievt < nevt; ievt++ ) @@ -233,9 +322,10 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) #else using namespace mg5amcCpu; #endif - if( false ) + if( debug ) { std::cout << std::endl; + std::cout << "nsp=" << nsp << " ievt=" << ievt << ": "; for( int ip4 = 0; ip4 < np4; ip4++ ) std::cout << par0[ievt * np4 + ip4] << ", "; std::cout << std::endl; } @@ -243,6 +333,7 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) const fptype* ievt0Momenta = MemoryAccessMomenta::ieventAccessRecordConst( hstMomenta.data(), ipagV * neppV ); // Test ixxxxx - NO ASSUMPTIONS { + prepareTest( "ixxxxx", ievt ); const fptype fmass = mass0[ievt]; ixxxxx( ievt0Momenta, fmass, nhel, nsp, fp_outwfI, ipar0 ); testwf6( outwfI, "ixxxxx", ievt, nsp, fmass ); @@ -252,6 +343,7 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) // Test ipzxxx - ASSUMPTIONS: (FMASS == 0) and (PX == PY == 0 and E == +PZ > 0) if( mass0[ievt] == 0 && !isptgt0[ievt] && ispzgt0[ievt] ) { + prepareTest( "ipzxxx", ievt ); ipzxxx( ievt0Momenta, nhel, nsp, fp_outwf, ipar0 ); testwf6two( outwf, outwfI, "ipzxxx", ievt ); testwf6( outwf, "ipzxxx", ievt, nsp, 0 ); @@ -259,6 +351,7 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) // Test imzxxx - ASSUMPTIONS: (FMASS == 0) and (PX == PY == 0 and E == -PZ > 0) if( mass0[ievt] == 0 && !isptgt0[ievt] && ispzlt0[ievt] ) { + prepareTest( "imzxxx", ievt ); imzxxx( ievt0Momenta, nhel, nsp, fp_outwf, ipar0 ); testwf6two( outwf, outwfI, "imzxxx", ievt ); testwf6( outwf, "imzxxx", ievt, nsp, 0 ); @@ -266,12 +359,14 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) // Test ixzxxx - ASSUMPTIONS: (FMASS == 0) and (PT > 0) if( mass0[ievt] == 0 && isptgt0[ievt] ) { + prepareTest( "ixzxxx", ievt ); ixzxxx( ievt0Momenta, nhel, nsp, fp_outwf, ipar0 ); testwf6two( outwf, outwfI, "ixzxxx", ievt ); testwf6( outwf, "ixzxxx", ievt, nsp, 0 ); } // Test vxxxxx - NO ASSUMPTIONS { + prepareTest( "vxxxxx", ievt ); const fptype vmass = mass0[ievt]; vxxxxx( ievt0Momenta, vmass, nhel, nsp, fp_outwf, ipar0 ); testwf6( outwf, "vxxxxx", ievt, nsp, vmass ); @@ -280,6 +375,7 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) } // Test sxxxxx - NO ASSUMPTIONS { + prepareTest( "sxxxxx", ievt ); const fptype smass = mass0[ievt]; sxxxxx( ievt0Momenta, nsp, fp_outwf3, ipar0 ); // no mass, no helicity (was "smass>0") testwf6( outwf3, "sxxxxx", ievt, nsp, smass ); @@ -288,6 +384,7 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) } // Test oxxxxx - NO ASSUMPTIONS { + prepareTest( "oxxxxx", ievt ); const fptype fmass = mass0[ievt]; oxxxxx( ievt0Momenta, fmass, nhel, nsp, fp_outwfO, ipar0 ); testwf6( outwfO, "oxxxxx", ievt, nsp, fmass ); @@ -297,6 +394,7 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) // Test opzxxx - ASSUMPTIONS: (FMASS == 0) and (PX == PY == 0 and E == +PZ > 0) if( mass0[ievt] == 0 && !isptgt0[ievt] && ispzgt0[ievt] ) { + prepareTest( "opzxxx", ievt ); opzxxx( ievt0Momenta, nhel, nsp, fp_outwf, ipar0 ); testwf6two( outwf, outwfO, "opzxxx", ievt ); testwf6( outwf, "opzxxx", ievt, nsp, 0 ); @@ -304,6 +402,7 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) // Test omzxxx - ASSUMPTIONS: (FMASS == 0) and (PX == PY == 0 and E == -PZ > 0) if( mass0[ievt] == 0 && !isptgt0[ievt] && ispzlt0[ievt] ) { + prepareTest( "omzxxx", ievt ); omzxxx( ievt0Momenta, nhel, nsp, fp_outwf, ipar0 ); testwf6two( outwf, outwfO, "omzxxx", ievt ); testwf6( outwf, "omzxxx", ievt, nsp, 0 ); @@ -311,17 +410,25 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) // Test oxzxxx - ASSUMPTIONS: (FMASS == 0) and (PT > 0) if( mass0[ievt] == 0 && isptgt0[ievt] ) { - oxzxxx( ievt0Momenta, nhel, nsp, reinterpret_cast( outwf ), ipar0 ); + prepareTest( "oxzxxx", ievt ); + oxzxxx( ievt0Momenta, nhel, nsp, fp_outwf, ipar0 ); testwf6two( outwf, outwfO, "oxzxxx", ievt ); testwf6( outwf, "oxzxxx", ievt, nsp, 0 ); } } } + // *** END OF TESTING LOOP if( dumpEvents ) { dumpFile.close(); std::cout << "INFO: New reference data dumped to file '" << dumpFileName << "'" << std::endl; } +#ifndef __APPLE__ // test #701 (except on MacOS where fedisableexcept is not defined #730) + if( enableFPE ) + { + fedisableexcept( FE_INVALID | FE_DIVBYZERO | FE_OVERFLOW | FE_UNDERFLOW ); // debug #701 + } +#endif } //========================================================================== diff --git a/epochX/cudacpp/gg_ttg.mad/SubProcesses/testxxx_cc_ref.txt b/epochX/cudacpp/gg_ttg.mad/SubProcesses/testxxx_cc_ref.txt index acb9bde918..637530d1f5 100644 --- a/epochX/cudacpp/gg_ttg.mad/SubProcesses/testxxx_cc_ref.txt +++ b/epochX/cudacpp/gg_ttg.mad/SubProcesses/testxxx_cc_ref.txt @@ -5,14 +5,14 @@ expwfs.push_back( { // --------- 5.000000000000000e+02, 5.000000000000000e+02, // itest=0: ixxxxx#0 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=0: ixxxxx#0 nsp=-1 mass=0 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=0: ixxxxx#0 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=0: ixxxxx#0 nsp=-1 mass=0 -3.162277660168379e+01, 0.000000000000000e+00, // itest=0: ixxxxx#0 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=0: ixxxxx#0 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=0: ixxxxx#0 nsp=-1 mass=0 expwfs.push_back( { // --------- 5.000000000000000e+02, 5.000000000000000e+02, // itest=1: ixxxxx#0 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=1: ixxxxx#0 nsp=-1 mass=0 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=1: ixxxxx#0 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=1: ixxxxx#0 nsp=-1 mass=0 -3.162277660168379e+01, 0.000000000000000e+00, // itest=1: ixxxxx#0 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=1: ixxxxx#0 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=1: ixxxxx#0 nsp=-1 mass=0 @@ -82,8 +82,8 @@ expwfs.push_back( { // --------- 5.000000000000000e+02, -5.000000000000000e+02, // itest=11: ixxxxx#1 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=11: ixxxxx#1 nsp=-1 mass=0 - -3.162277660168379e+01, -0.000000000000000e+00, // itest=11: ixxxxx#1 nsp=-1 mass=0 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=11: ixxxxx#1 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=11: ixxxxx#1 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=11: ixxxxx#1 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=11: ixxxxx#1 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=11: ixxxxx#1 nsp=-1 mass=0 expwfs.push_back( { // --------- @@ -133,8 +133,8 @@ -0.000000000000000e+00, -0.000000000000000e+00, // itest=18: oxxxxx#1 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=18: oxxxxx#1 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=18: oxxxxx#1 nsp=-1 mass=0 - -3.162277660168379e+01, -0.000000000000000e+00, // itest=18: oxxxxx#1 nsp=-1 mass=0 - -0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=18: oxxxxx#1 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=18: oxxxxx#1 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=18: oxxxxx#1 nsp=-1 mass=0 expwfs.push_back( { // --------- -5.000000000000000e+02, 5.000000000000000e+02, // itest=19: omzxxx#1 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=19: omzxxx#1 nsp=-1 mass=0 @@ -145,14 +145,14 @@ expwfs.push_back( { // --------- 5.000000000000000e+02, 0.000000000000000e+00, // itest=20: ixxxxx#2 nsp=-1 mass=0 3.000000000000000e+02, 4.000000000000000e+02, // itest=20: ixxxxx#2 nsp=-1 mass=0 - 1.341640786499874e+01, -1.788854381999832e+01, // itest=20: ixxxxx#2 nsp=-1 mass=0 + 1.341640786499874e+01, -1.788854381999831e+01, // itest=20: ixxxxx#2 nsp=-1 mass=0 -2.236067977499790e+01, 0.000000000000000e+00, // itest=20: ixxxxx#2 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=20: ixxxxx#2 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=20: ixxxxx#2 nsp=-1 mass=0 expwfs.push_back( { // --------- 5.000000000000000e+02, 0.000000000000000e+00, // itest=21: ixxxxx#2 nsp=-1 mass=0 3.000000000000000e+02, 4.000000000000000e+02, // itest=21: ixxxxx#2 nsp=-1 mass=0 - 1.341640786499874e+01, -1.788854381999832e+01, // itest=21: ixxxxx#2 nsp=-1 mass=0 + 1.341640786499874e+01, -1.788854381999831e+01, // itest=21: ixxxxx#2 nsp=-1 mass=0 -2.236067977499790e+01, 0.000000000000000e+00, // itest=21: ixxxxx#2 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=21: ixxxxx#2 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=21: ixxxxx#2 nsp=-1 mass=0 @@ -196,14 +196,14 @@ -3.000000000000000e+02, -4.000000000000000e+02, // itest=27: oxxxxx#2 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=27: oxxxxx#2 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=27: oxxxxx#2 nsp=-1 mass=0 - 1.341640786499874e+01, 1.788854381999832e+01, // itest=27: oxxxxx#2 nsp=-1 mass=0 + 1.341640786499874e+01, 1.788854381999831e+01, // itest=27: oxxxxx#2 nsp=-1 mass=0 -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=27: oxxxxx#2 nsp=-1 mass=0 expwfs.push_back( { // --------- -5.000000000000000e+02, -0.000000000000000e+00, // itest=28: oxxxxx#2 nsp=-1 mass=0 -3.000000000000000e+02, -4.000000000000000e+02, // itest=28: oxxxxx#2 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=28: oxxxxx#2 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=28: oxxxxx#2 nsp=-1 mass=0 - 1.341640786499874e+01, 1.788854381999832e+01, // itest=28: oxxxxx#2 nsp=-1 mass=0 + 1.341640786499874e+01, 1.788854381999831e+01, // itest=28: oxxxxx#2 nsp=-1 mass=0 -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=28: oxxxxx#2 nsp=-1 mass=0 expwfs.push_back( { // --------- -5.000000000000000e+02, -0.000000000000000e+00, // itest=29: oxzxxx#2 nsp=-1 mass=0 @@ -353,1696 +353,3684 @@ 1.800000000000000e+01, 2.400000000000000e+01, // itest=49: oxzxxx#4 nsp=-1 mass=0 -1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=49: oxzxxx#4 nsp=-1 mass=0 expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=50: ixxxxx#5 nsp=-1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=50: ixxxxx#5 nsp=-1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=50: ixxxxx#5 nsp=-1 mass=500 - -2.236067977499790e+01, 0.000000000000000e+00, // itest=50: ixxxxx#5 nsp=-1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=50: ixxxxx#5 nsp=-1 mass=500 - 2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=50: ixxxxx#5 nsp=-1 mass=500 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=51: ixxxxx#5 nsp=-1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=51: ixxxxx#5 nsp=-1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=51: ixxxxx#5 nsp=-1 mass=-500 - -2.236067977499790e+01, 0.000000000000000e+00, // itest=51: ixxxxx#5 nsp=-1 mass=-500 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=51: ixxxxx#5 nsp=-1 mass=-500 - -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=51: ixxxxx#5 nsp=-1 mass=-500 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=52: vxxxxx#5 nsp=-1 mass=500 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=52: vxxxxx#5 nsp=-1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=52: vxxxxx#5 nsp=-1 mass=500 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=52: vxxxxx#5 nsp=-1 mass=500 - 0.000000000000000e+00, -7.071067811865476e-01, // itest=52: vxxxxx#5 nsp=-1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=52: vxxxxx#5 nsp=-1 mass=500 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=53: vxxxxx#5 nsp=-1 mass=-500 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=53: vxxxxx#5 nsp=-1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=53: vxxxxx#5 nsp=-1 mass=-500 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=53: vxxxxx#5 nsp=-1 mass=-500 - 0.000000000000000e+00, -7.071067811865476e-01, // itest=53: vxxxxx#5 nsp=-1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=53: vxxxxx#5 nsp=-1 mass=-500 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=54: sxxxxx#5 nsp=-1 mass=500 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=54: sxxxxx#5 nsp=-1 mass=500 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=54: sxxxxx#5 nsp=-1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=54: sxxxxx#5 nsp=-1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=54: sxxxxx#5 nsp=-1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=54: sxxxxx#5 nsp=-1 mass=500 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=55: sxxxxx#5 nsp=-1 mass=-500 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=55: sxxxxx#5 nsp=-1 mass=-500 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=55: sxxxxx#5 nsp=-1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=55: sxxxxx#5 nsp=-1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=55: sxxxxx#5 nsp=-1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=55: sxxxxx#5 nsp=-1 mass=-500 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=56: oxxxxx#5 nsp=-1 mass=500 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=56: oxxxxx#5 nsp=-1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=56: oxxxxx#5 nsp=-1 mass=500 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=56: oxxxxx#5 nsp=-1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=56: oxxxxx#5 nsp=-1 mass=500 - -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=56: oxxxxx#5 nsp=-1 mass=500 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=57: oxxxxx#5 nsp=-1 mass=-500 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=57: oxxxxx#5 nsp=-1 mass=-500 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=57: oxxxxx#5 nsp=-1 mass=-500 - -2.236067977499790e+01, 0.000000000000000e+00, // itest=57: oxxxxx#5 nsp=-1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=57: oxxxxx#5 nsp=-1 mass=-500 - -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=57: oxxxxx#5 nsp=-1 mass=-500 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 3.000000000000000e+02, // itest=58: ixxxxx#6 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=58: ixxxxx#6 nsp=-1 mass=400 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=58: ixxxxx#6 nsp=-1 mass=400 - -2.828427124746190e+01, -0.000000000000000e+00, // itest=58: ixxxxx#6 nsp=-1 mass=400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=58: ixxxxx#6 nsp=-1 mass=400 - 1.414213562373095e+01, 0.000000000000000e+00 } ); // itest=58: ixxxxx#6 nsp=-1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 3.000000000000000e+02, // itest=59: ixxxxx#6 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=59: ixxxxx#6 nsp=-1 mass=-400 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=59: ixxxxx#6 nsp=-1 mass=-400 - -2.828427124746190e+01, -0.000000000000000e+00, // itest=59: ixxxxx#6 nsp=-1 mass=-400 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=59: ixxxxx#6 nsp=-1 mass=-400 - -1.414213562373095e+01, -0.000000000000000e+00 } ); // itest=59: ixxxxx#6 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -3.000000000000000e+02, // itest=60: vxxxxx#6 nsp=-1 mass=400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=60: vxxxxx#6 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=60: vxxxxx#6 nsp=-1 mass=400 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=60: vxxxxx#6 nsp=-1 mass=400 - 0.000000000000000e+00, -7.071067811865476e-01, // itest=60: vxxxxx#6 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=60: vxxxxx#6 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -3.000000000000000e+02, // itest=61: vxxxxx#6 nsp=-1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=61: vxxxxx#6 nsp=-1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=61: vxxxxx#6 nsp=-1 mass=-400 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=61: vxxxxx#6 nsp=-1 mass=-400 - 0.000000000000000e+00, -7.071067811865476e-01, // itest=61: vxxxxx#6 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=61: vxxxxx#6 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -3.000000000000000e+02, // itest=62: sxxxxx#6 nsp=-1 mass=400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=62: sxxxxx#6 nsp=-1 mass=400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=62: sxxxxx#6 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=62: sxxxxx#6 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=62: sxxxxx#6 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=62: sxxxxx#6 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -3.000000000000000e+02, // itest=63: sxxxxx#6 nsp=-1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=63: sxxxxx#6 nsp=-1 mass=-400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=63: sxxxxx#6 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=63: sxxxxx#6 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=63: sxxxxx#6 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=63: sxxxxx#6 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -3.000000000000000e+02, // itest=64: oxxxxx#6 nsp=-1 mass=400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=64: oxxxxx#6 nsp=-1 mass=400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=64: oxxxxx#6 nsp=-1 mass=400 - 1.414213562373095e+01, 0.000000000000000e+00, // itest=64: oxxxxx#6 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=64: oxxxxx#6 nsp=-1 mass=400 - -2.828427124746190e+01, -0.000000000000000e+00 } ); // itest=64: oxxxxx#6 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -3.000000000000000e+02, // itest=65: oxxxxx#6 nsp=-1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=65: oxxxxx#6 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=65: oxxxxx#6 nsp=-1 mass=-400 - -1.414213562373095e+01, -0.000000000000000e+00, // itest=65: oxxxxx#6 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=65: oxxxxx#6 nsp=-1 mass=-400 - -2.828427124746190e+01, -0.000000000000000e+00 } ); // itest=65: oxxxxx#6 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -3.000000000000000e+02, // itest=66: ixxxxx#7 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=66: ixxxxx#7 nsp=-1 mass=400 - -2.828427124746190e+01, -0.000000000000000e+00, // itest=66: ixxxxx#7 nsp=-1 mass=400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=66: ixxxxx#7 nsp=-1 mass=400 - 1.414213562373095e+01, 0.000000000000000e+00, // itest=66: ixxxxx#7 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=66: ixxxxx#7 nsp=-1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -3.000000000000000e+02, // itest=67: ixxxxx#7 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=67: ixxxxx#7 nsp=-1 mass=-400 - -2.828427124746190e+01, -0.000000000000000e+00, // itest=67: ixxxxx#7 nsp=-1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=67: ixxxxx#7 nsp=-1 mass=-400 - -1.414213562373095e+01, -0.000000000000000e+00, // itest=67: ixxxxx#7 nsp=-1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=67: ixxxxx#7 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 3.000000000000000e+02, // itest=68: vxxxxx#7 nsp=-1 mass=400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=68: vxxxxx#7 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=68: vxxxxx#7 nsp=-1 mass=400 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=68: vxxxxx#7 nsp=-1 mass=400 - 0.000000000000000e+00, 7.071067811865476e-01, // itest=68: vxxxxx#7 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=68: vxxxxx#7 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 3.000000000000000e+02, // itest=69: vxxxxx#7 nsp=-1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=69: vxxxxx#7 nsp=-1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=69: vxxxxx#7 nsp=-1 mass=-400 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=69: vxxxxx#7 nsp=-1 mass=-400 - 0.000000000000000e+00, 7.071067811865476e-01, // itest=69: vxxxxx#7 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=69: vxxxxx#7 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 3.000000000000000e+02, // itest=70: sxxxxx#7 nsp=-1 mass=400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=70: sxxxxx#7 nsp=-1 mass=400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=70: sxxxxx#7 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=70: sxxxxx#7 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=70: sxxxxx#7 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=70: sxxxxx#7 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 3.000000000000000e+02, // itest=71: sxxxxx#7 nsp=-1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=71: sxxxxx#7 nsp=-1 mass=-400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=71: sxxxxx#7 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=71: sxxxxx#7 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=71: sxxxxx#7 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=71: sxxxxx#7 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 3.000000000000000e+02, // itest=72: oxxxxx#7 nsp=-1 mass=400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=72: oxxxxx#7 nsp=-1 mass=400 - 1.414213562373095e+01, 0.000000000000000e+00, // itest=72: oxxxxx#7 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=72: oxxxxx#7 nsp=-1 mass=400 - -2.828427124746190e+01, -0.000000000000000e+00, // itest=72: oxxxxx#7 nsp=-1 mass=400 - -0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=72: oxxxxx#7 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 3.000000000000000e+02, // itest=73: oxxxxx#7 nsp=-1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=73: oxxxxx#7 nsp=-1 mass=-400 - -1.414213562373095e+01, -0.000000000000000e+00, // itest=73: oxxxxx#7 nsp=-1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=73: oxxxxx#7 nsp=-1 mass=-400 - -2.828427124746190e+01, -0.000000000000000e+00, // itest=73: oxxxxx#7 nsp=-1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=73: oxxxxx#7 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=74: ixxxxx#8 nsp=-1 mass=400 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=74: ixxxxx#8 nsp=-1 mass=400 - 1.200000000000000e+01, -1.600000000000000e+01, // itest=74: ixxxxx#8 nsp=-1 mass=400 - -2.000000000000000e+01, -0.000000000000000e+00, // itest=74: ixxxxx#8 nsp=-1 mass=400 - -5.999999999999999e+00, 7.999999999999999e+00, // itest=74: ixxxxx#8 nsp=-1 mass=400 - 1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=74: ixxxxx#8 nsp=-1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=75: ixxxxx#8 nsp=-1 mass=-400 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=75: ixxxxx#8 nsp=-1 mass=-400 - 1.200000000000000e+01, -1.600000000000000e+01, // itest=75: ixxxxx#8 nsp=-1 mass=-400 - -2.000000000000000e+01, -0.000000000000000e+00, // itest=75: ixxxxx#8 nsp=-1 mass=-400 - 5.999999999999999e+00, -7.999999999999999e+00, // itest=75: ixxxxx#8 nsp=-1 mass=-400 - -1.000000000000000e+01, -0.000000000000000e+00 } ); // itest=75: ixxxxx#8 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=76: vxxxxx#8 nsp=-1 mass=400 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=76: vxxxxx#8 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=76: vxxxxx#8 nsp=-1 mass=400 - 0.000000000000000e+00, 5.656854249492381e-01, // itest=76: vxxxxx#8 nsp=-1 mass=400 - 0.000000000000000e+00, -4.242640687119285e-01, // itest=76: vxxxxx#8 nsp=-1 mass=400 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=76: vxxxxx#8 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=77: vxxxxx#8 nsp=-1 mass=-400 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=77: vxxxxx#8 nsp=-1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=77: vxxxxx#8 nsp=-1 mass=-400 - -0.000000000000000e+00, 5.656854249492381e-01, // itest=77: vxxxxx#8 nsp=-1 mass=-400 - -0.000000000000000e+00, -4.242640687119285e-01, // itest=77: vxxxxx#8 nsp=-1 mass=-400 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=77: vxxxxx#8 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=78: sxxxxx#8 nsp=-1 mass=400 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=78: sxxxxx#8 nsp=-1 mass=400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=78: sxxxxx#8 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=78: sxxxxx#8 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=78: sxxxxx#8 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=78: sxxxxx#8 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=79: sxxxxx#8 nsp=-1 mass=-400 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=79: sxxxxx#8 nsp=-1 mass=-400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=79: sxxxxx#8 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=79: sxxxxx#8 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=79: sxxxxx#8 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=79: sxxxxx#8 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=80: oxxxxx#8 nsp=-1 mass=400 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=80: oxxxxx#8 nsp=-1 mass=400 - -5.999999999999999e+00, -7.999999999999999e+00, // itest=80: oxxxxx#8 nsp=-1 mass=400 - 1.000000000000000e+01, 0.000000000000000e+00, // itest=80: oxxxxx#8 nsp=-1 mass=400 - 1.200000000000000e+01, 1.600000000000000e+01, // itest=80: oxxxxx#8 nsp=-1 mass=400 - -2.000000000000000e+01, -0.000000000000000e+00 } ); // itest=80: oxxxxx#8 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=81: oxxxxx#8 nsp=-1 mass=-400 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=81: oxxxxx#8 nsp=-1 mass=-400 - 5.999999999999999e+00, 7.999999999999999e+00, // itest=81: oxxxxx#8 nsp=-1 mass=-400 - -1.000000000000000e+01, -0.000000000000000e+00, // itest=81: oxxxxx#8 nsp=-1 mass=-400 - 1.200000000000000e+01, 1.600000000000000e+01, // itest=81: oxxxxx#8 nsp=-1 mass=-400 - -2.000000000000000e+01, -0.000000000000000e+00 } ); // itest=81: oxxxxx#8 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=82: ixxxxx#9 nsp=-1 mass=400 - -2.400000000000000e+02, -1.800000000000000e+02, // itest=82: ixxxxx#9 nsp=-1 mass=400 - -1.600000000000000e+01, 1.200000000000000e+01, // itest=82: ixxxxx#9 nsp=-1 mass=400 - -2.000000000000000e+01, -0.000000000000000e+00, // itest=82: ixxxxx#9 nsp=-1 mass=400 - 7.999999999999999e+00, -5.999999999999999e+00, // itest=82: ixxxxx#9 nsp=-1 mass=400 - 1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=82: ixxxxx#9 nsp=-1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=83: ixxxxx#9 nsp=-1 mass=-400 - -2.400000000000000e+02, -1.800000000000000e+02, // itest=83: ixxxxx#9 nsp=-1 mass=-400 - -1.600000000000000e+01, 1.200000000000000e+01, // itest=83: ixxxxx#9 nsp=-1 mass=-400 - -2.000000000000000e+01, -0.000000000000000e+00, // itest=83: ixxxxx#9 nsp=-1 mass=-400 - -7.999999999999999e+00, 5.999999999999999e+00, // itest=83: ixxxxx#9 nsp=-1 mass=-400 - -1.000000000000000e+01, -0.000000000000000e+00 } ); // itest=83: ixxxxx#9 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=84: vxxxxx#9 nsp=-1 mass=400 - 2.400000000000000e+02, 1.800000000000000e+02, // itest=84: vxxxxx#9 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=84: vxxxxx#9 nsp=-1 mass=400 - 0.000000000000000e+00, -4.242640687119285e-01, // itest=84: vxxxxx#9 nsp=-1 mass=400 - 0.000000000000000e+00, 5.656854249492381e-01, // itest=84: vxxxxx#9 nsp=-1 mass=400 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=84: vxxxxx#9 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=85: vxxxxx#9 nsp=-1 mass=-400 - 2.400000000000000e+02, 1.800000000000000e+02, // itest=85: vxxxxx#9 nsp=-1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=85: vxxxxx#9 nsp=-1 mass=-400 - 0.000000000000000e+00, -4.242640687119285e-01, // itest=85: vxxxxx#9 nsp=-1 mass=-400 - 0.000000000000000e+00, 5.656854249492381e-01, // itest=85: vxxxxx#9 nsp=-1 mass=-400 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=85: vxxxxx#9 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=86: sxxxxx#9 nsp=-1 mass=400 - 2.400000000000000e+02, 1.800000000000000e+02, // itest=86: sxxxxx#9 nsp=-1 mass=400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=86: sxxxxx#9 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=86: sxxxxx#9 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=86: sxxxxx#9 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=86: sxxxxx#9 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=87: sxxxxx#9 nsp=-1 mass=-400 - 2.400000000000000e+02, 1.800000000000000e+02, // itest=87: sxxxxx#9 nsp=-1 mass=-400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=87: sxxxxx#9 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=87: sxxxxx#9 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=87: sxxxxx#9 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=87: sxxxxx#9 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=88: oxxxxx#9 nsp=-1 mass=400 - 2.400000000000000e+02, 1.800000000000000e+02, // itest=88: oxxxxx#9 nsp=-1 mass=400 - 7.999999999999999e+00, 5.999999999999999e+00, // itest=88: oxxxxx#9 nsp=-1 mass=400 - 1.000000000000000e+01, 0.000000000000000e+00, // itest=88: oxxxxx#9 nsp=-1 mass=400 - -1.600000000000000e+01, -1.200000000000000e+01, // itest=88: oxxxxx#9 nsp=-1 mass=400 - -2.000000000000000e+01, -0.000000000000000e+00 } ); // itest=88: oxxxxx#9 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=89: oxxxxx#9 nsp=-1 mass=-400 - 2.400000000000000e+02, 1.800000000000000e+02, // itest=89: oxxxxx#9 nsp=-1 mass=-400 - -7.999999999999999e+00, -5.999999999999999e+00, // itest=89: oxxxxx#9 nsp=-1 mass=-400 - -1.000000000000000e+01, -0.000000000000000e+00, // itest=89: oxxxxx#9 nsp=-1 mass=-400 - -1.600000000000000e+01, -1.200000000000000e+01, // itest=89: oxxxxx#9 nsp=-1 mass=-400 - -2.000000000000000e+01, -0.000000000000000e+00 } ); // itest=89: oxxxxx#9 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 1.440000000000000e+02, // itest=90: ixxxxx#10 nsp=-1 mass=400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=90: ixxxxx#10 nsp=-1 mass=400 - 9.863939238321439e+00, -1.052153518754287e+01, // itest=90: ixxxxx#10 nsp=-1 mass=400 - -2.433105012119288e+01, -0.000000000000000e+00, // itest=90: ixxxxx#10 nsp=-1 mass=400 - -4.931969619160719e+00, 5.260767593771432e+00, // itest=90: ixxxxx#10 nsp=-1 mass=400 - 1.216552506059644e+01, 0.000000000000000e+00 } ); // itest=90: ixxxxx#10 nsp=-1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 1.440000000000000e+02, // itest=91: ixxxxx#10 nsp=-1 mass=-400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=91: ixxxxx#10 nsp=-1 mass=-400 - 9.863939238321439e+00, -1.052153518754287e+01, // itest=91: ixxxxx#10 nsp=-1 mass=-400 - -2.433105012119288e+01, -0.000000000000000e+00, // itest=91: ixxxxx#10 nsp=-1 mass=-400 - 4.931969619160719e+00, -5.260767593771432e+00, // itest=91: ixxxxx#10 nsp=-1 mass=-400 - -1.216552506059644e+01, -0.000000000000000e+00 } ); // itest=91: ixxxxx#10 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -1.440000000000000e+02, // itest=92: vxxxxx#10 nsp=-1 mass=400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=92: vxxxxx#10 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=92: vxxxxx#10 nsp=-1 mass=400 - -2.321373168788980e-01, 5.158607041753289e-01, // itest=92: vxxxxx#10 nsp=-1 mass=400 - -2.476131380041579e-01, -4.836194101643708e-01, // itest=92: vxxxxx#10 nsp=-1 mass=400 - 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=92: vxxxxx#10 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -1.440000000000000e+02, // itest=93: vxxxxx#10 nsp=-1 mass=-400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=93: vxxxxx#10 nsp=-1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=93: vxxxxx#10 nsp=-1 mass=-400 - -2.321373168788980e-01, 5.158607041753289e-01, // itest=93: vxxxxx#10 nsp=-1 mass=-400 - -2.476131380041579e-01, -4.836194101643708e-01, // itest=93: vxxxxx#10 nsp=-1 mass=-400 - 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=93: vxxxxx#10 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -1.440000000000000e+02, // itest=94: sxxxxx#10 nsp=-1 mass=400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=94: sxxxxx#10 nsp=-1 mass=400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=94: sxxxxx#10 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=94: sxxxxx#10 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=94: sxxxxx#10 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=94: sxxxxx#10 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -1.440000000000000e+02, // itest=95: sxxxxx#10 nsp=-1 mass=-400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=95: sxxxxx#10 nsp=-1 mass=-400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=95: sxxxxx#10 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=95: sxxxxx#10 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=95: sxxxxx#10 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=95: sxxxxx#10 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -1.440000000000000e+02, // itest=96: oxxxxx#10 nsp=-1 mass=400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=96: oxxxxx#10 nsp=-1 mass=400 - -4.931969619160719e+00, -5.260767593771432e+00, // itest=96: oxxxxx#10 nsp=-1 mass=400 - 1.216552506059644e+01, 0.000000000000000e+00, // itest=96: oxxxxx#10 nsp=-1 mass=400 - 9.863939238321439e+00, 1.052153518754287e+01, // itest=96: oxxxxx#10 nsp=-1 mass=400 - -2.433105012119288e+01, -0.000000000000000e+00 } ); // itest=96: oxxxxx#10 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -1.440000000000000e+02, // itest=97: oxxxxx#10 nsp=-1 mass=-400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=97: oxxxxx#10 nsp=-1 mass=-400 - 4.931969619160719e+00, 5.260767593771432e+00, // itest=97: oxxxxx#10 nsp=-1 mass=-400 - -1.216552506059644e+01, -0.000000000000000e+00, // itest=97: oxxxxx#10 nsp=-1 mass=-400 - 9.863939238321439e+00, 1.052153518754287e+01, // itest=97: oxxxxx#10 nsp=-1 mass=-400 - -2.433105012119288e+01, -0.000000000000000e+00 } ); // itest=97: oxxxxx#10 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -1.440000000000000e+02, // itest=98: ixxxxx#11 nsp=-1 mass=400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=98: ixxxxx#11 nsp=-1 mass=400 - 1.664100588675688e+01, -1.775040627920733e+01, // itest=98: ixxxxx#11 nsp=-1 mass=400 - -1.442220510185596e+01, -0.000000000000000e+00, // itest=98: ixxxxx#11 nsp=-1 mass=400 - -8.320502943378436e+00, 8.875203139603666e+00, // itest=98: ixxxxx#11 nsp=-1 mass=400 - 7.211102550927978e+00, 0.000000000000000e+00 } ); // itest=98: ixxxxx#11 nsp=-1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -1.440000000000000e+02, // itest=99: ixxxxx#11 nsp=-1 mass=-400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=99: ixxxxx#11 nsp=-1 mass=-400 - 1.664100588675688e+01, -1.775040627920733e+01, // itest=99: ixxxxx#11 nsp=-1 mass=-400 - -1.442220510185596e+01, -0.000000000000000e+00, // itest=99: ixxxxx#11 nsp=-1 mass=-400 - 8.320502943378436e+00, -8.875203139603666e+00, // itest=99: ixxxxx#11 nsp=-1 mass=-400 - -7.211102550927978e+00, -0.000000000000000e+00 } ); // itest=99: ixxxxx#11 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 1.440000000000000e+02, // itest=100: vxxxxx#11 nsp=-1 mass=400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=100: vxxxxx#11 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=100: vxxxxx#11 nsp=-1 mass=400 - 2.321373168788980e-01, 5.158607041753289e-01, // itest=100: vxxxxx#11 nsp=-1 mass=400 - 2.476131380041579e-01, -4.836194101643708e-01, // itest=100: vxxxxx#11 nsp=-1 mass=400 - 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=100: vxxxxx#11 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 1.440000000000000e+02, // itest=101: vxxxxx#11 nsp=-1 mass=-400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=101: vxxxxx#11 nsp=-1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=101: vxxxxx#11 nsp=-1 mass=-400 - 2.321373168788980e-01, 5.158607041753289e-01, // itest=101: vxxxxx#11 nsp=-1 mass=-400 - 2.476131380041579e-01, -4.836194101643708e-01, // itest=101: vxxxxx#11 nsp=-1 mass=-400 - 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=101: vxxxxx#11 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 1.440000000000000e+02, // itest=102: sxxxxx#11 nsp=-1 mass=400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=102: sxxxxx#11 nsp=-1 mass=400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=102: sxxxxx#11 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=102: sxxxxx#11 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=102: sxxxxx#11 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=102: sxxxxx#11 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 1.440000000000000e+02, // itest=103: sxxxxx#11 nsp=-1 mass=-400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=103: sxxxxx#11 nsp=-1 mass=-400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=103: sxxxxx#11 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=103: sxxxxx#11 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=103: sxxxxx#11 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=103: sxxxxx#11 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 1.440000000000000e+02, // itest=104: oxxxxx#11 nsp=-1 mass=400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=104: oxxxxx#11 nsp=-1 mass=400 - -8.320502943378436e+00, -8.875203139603666e+00, // itest=104: oxxxxx#11 nsp=-1 mass=400 - 7.211102550927978e+00, 0.000000000000000e+00, // itest=104: oxxxxx#11 nsp=-1 mass=400 - 1.664100588675688e+01, 1.775040627920733e+01, // itest=104: oxxxxx#11 nsp=-1 mass=400 - -1.442220510185596e+01, -0.000000000000000e+00 } ); // itest=104: oxxxxx#11 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 1.440000000000000e+02, // itest=105: oxxxxx#11 nsp=-1 mass=-400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=105: oxxxxx#11 nsp=-1 mass=-400 - 8.320502943378436e+00, 8.875203139603666e+00, // itest=105: oxxxxx#11 nsp=-1 mass=-400 - -7.211102550927978e+00, -0.000000000000000e+00, // itest=105: oxxxxx#11 nsp=-1 mass=-400 - 1.664100588675688e+01, 1.775040627920733e+01, // itest=105: oxxxxx#11 nsp=-1 mass=-400 - -1.442220510185596e+01, -0.000000000000000e+00 } ); // itest=105: oxxxxx#11 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=106: ixxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=106: ixxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=106: ixxxxx#12 nsp=-1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00, // itest=106: ixxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=106: ixxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=106: ixxxxx#12 nsp=-1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=107: ixxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=107: ixxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=107: ixxxxx#12 nsp=-1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00, // itest=107: ixxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=107: ixxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=107: ixxxxx#12 nsp=-1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=108: ipzxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=108: ipzxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=108: ipzxxx#12 nsp=-1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00, // itest=108: ipzxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=108: ipzxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=108: ipzxxx#12 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=109: vxxxxx#12 nsp=-1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=109: vxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=109: vxxxxx#12 nsp=-1 mass=0 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=109: vxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, -7.071067811865476e-01, // itest=109: vxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=109: vxxxxx#12 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=110: vxxxxx#12 nsp=-1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=110: vxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=110: vxxxxx#12 nsp=-1 mass=0 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=110: vxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, -7.071067811865476e-01, // itest=110: vxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=110: vxxxxx#12 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=111: sxxxxx#12 nsp=-1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=111: sxxxxx#12 nsp=-1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=111: sxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=111: sxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=111: sxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=111: sxxxxx#12 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=112: sxxxxx#12 nsp=-1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=112: sxxxxx#12 nsp=-1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=112: sxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=112: sxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=112: sxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=112: sxxxxx#12 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=113: oxxxxx#12 nsp=-1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=113: oxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=113: oxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=113: oxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=113: oxxxxx#12 nsp=-1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=113: oxxxxx#12 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=114: oxxxxx#12 nsp=-1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=114: oxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=114: oxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=114: oxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=114: oxxxxx#12 nsp=-1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=114: oxxxxx#12 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=115: opzxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=115: opzxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=115: opzxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=115: opzxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=115: opzxxx#12 nsp=-1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=115: opzxxx#12 nsp=-1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=116: ixxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=116: ixxxxx#13 nsp=-1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00, // itest=116: ixxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=116: ixxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=116: ixxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=116: ixxxxx#13 nsp=-1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=117: ixxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=117: ixxxxx#13 nsp=-1 mass=0 - -3.162277660168379e+01, -0.000000000000000e+00, // itest=117: ixxxxx#13 nsp=-1 mass=0 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=117: ixxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=117: ixxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=117: ixxxxx#13 nsp=-1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=118: imzxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=118: imzxxx#13 nsp=-1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00, // itest=118: imzxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=118: imzxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=118: imzxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=118: imzxxx#13 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=119: vxxxxx#13 nsp=-1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=119: vxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=119: vxxxxx#13 nsp=-1 mass=0 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=119: vxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 7.071067811865476e-01, // itest=119: vxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=119: vxxxxx#13 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=120: vxxxxx#13 nsp=-1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=120: vxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=120: vxxxxx#13 nsp=-1 mass=0 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=120: vxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 7.071067811865476e-01, // itest=120: vxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=120: vxxxxx#13 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=121: sxxxxx#13 nsp=-1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=121: sxxxxx#13 nsp=-1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=121: sxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=121: sxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=121: sxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=121: sxxxxx#13 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=122: sxxxxx#13 nsp=-1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=122: sxxxxx#13 nsp=-1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=122: sxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=122: sxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=122: sxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=122: sxxxxx#13 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=123: oxxxxx#13 nsp=-1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=123: oxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=123: oxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=123: oxxxxx#13 nsp=-1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00, // itest=123: oxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=123: oxxxxx#13 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=124: oxxxxx#13 nsp=-1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=124: oxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=124: oxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=124: oxxxxx#13 nsp=-1 mass=0 - -3.162277660168379e+01, -0.000000000000000e+00, // itest=124: oxxxxx#13 nsp=-1 mass=0 - -0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=124: oxxxxx#13 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=125: omzxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=125: omzxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=125: omzxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=125: omzxxx#13 nsp=-1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00, // itest=125: omzxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=125: omzxxx#13 nsp=-1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=126: ixxxxx#14 nsp=-1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=126: ixxxxx#14 nsp=-1 mass=0 - 1.341640786499874e+01, -1.788854381999832e+01, // itest=126: ixxxxx#14 nsp=-1 mass=0 - -2.236067977499790e+01, 0.000000000000000e+00, // itest=126: ixxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=126: ixxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=126: ixxxxx#14 nsp=-1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=127: ixxxxx#14 nsp=-1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=127: ixxxxx#14 nsp=-1 mass=0 - 1.341640786499874e+01, -1.788854381999832e+01, // itest=127: ixxxxx#14 nsp=-1 mass=0 - -2.236067977499790e+01, 0.000000000000000e+00, // itest=127: ixxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=127: ixxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=127: ixxxxx#14 nsp=-1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=128: ixzxxx#14 nsp=-1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=128: ixzxxx#14 nsp=-1 mass=0 - 1.341640786499874e+01, -1.788854381999832e+01, // itest=128: ixzxxx#14 nsp=-1 mass=0 - -2.236067977499790e+01, 0.000000000000000e+00, // itest=128: ixzxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=128: ixzxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=128: ixzxxx#14 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=129: vxxxxx#14 nsp=-1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=129: vxxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=129: vxxxxx#14 nsp=-1 mass=0 - -0.000000000000000e+00, 5.656854249492381e-01, // itest=129: vxxxxx#14 nsp=-1 mass=0 - -0.000000000000000e+00, -4.242640687119285e-01, // itest=129: vxxxxx#14 nsp=-1 mass=0 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=129: vxxxxx#14 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=130: vxxxxx#14 nsp=-1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=130: vxxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=130: vxxxxx#14 nsp=-1 mass=0 - -0.000000000000000e+00, 5.656854249492381e-01, // itest=130: vxxxxx#14 nsp=-1 mass=0 - -0.000000000000000e+00, -4.242640687119285e-01, // itest=130: vxxxxx#14 nsp=-1 mass=0 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=130: vxxxxx#14 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=131: sxxxxx#14 nsp=-1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=131: sxxxxx#14 nsp=-1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=131: sxxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=131: sxxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=131: sxxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=131: sxxxxx#14 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=132: sxxxxx#14 nsp=-1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=132: sxxxxx#14 nsp=-1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=132: sxxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=132: sxxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=132: sxxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=132: sxxxxx#14 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=133: oxxxxx#14 nsp=-1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=133: oxxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=133: oxxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=133: oxxxxx#14 nsp=-1 mass=0 - 1.341640786499874e+01, 1.788854381999832e+01, // itest=133: oxxxxx#14 nsp=-1 mass=0 - -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=133: oxxxxx#14 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=134: oxxxxx#14 nsp=-1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=134: oxxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=134: oxxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=134: oxxxxx#14 nsp=-1 mass=0 - 1.341640786499874e+01, 1.788854381999832e+01, // itest=134: oxxxxx#14 nsp=-1 mass=0 - -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=134: oxxxxx#14 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=135: oxzxxx#14 nsp=-1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=135: oxzxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=135: oxzxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=135: oxzxxx#14 nsp=-1 mass=0 - 1.341640786499874e+01, 1.788854381999832e+01, // itest=135: oxzxxx#14 nsp=-1 mass=0 - -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=135: oxzxxx#14 nsp=-1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=136: ixxxxx#15 nsp=-1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=136: ixxxxx#15 nsp=-1 mass=0 - 6.000000000000000e+00, -8.000000000000000e+00, // itest=136: ixxxxx#15 nsp=-1 mass=0 - -3.000000000000000e+01, 0.000000000000000e+00, // itest=136: ixxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=136: ixxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=136: ixxxxx#15 nsp=-1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=137: ixxxxx#15 nsp=-1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=137: ixxxxx#15 nsp=-1 mass=0 - 6.000000000000000e+00, -8.000000000000000e+00, // itest=137: ixxxxx#15 nsp=-1 mass=0 - -3.000000000000000e+01, 0.000000000000000e+00, // itest=137: ixxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=137: ixxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=137: ixxxxx#15 nsp=-1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=138: ixzxxx#15 nsp=-1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=138: ixzxxx#15 nsp=-1 mass=0 - 6.000000000000000e+00, -8.000000000000000e+00, // itest=138: ixzxxx#15 nsp=-1 mass=0 - -3.000000000000000e+01, 0.000000000000000e+00, // itest=138: ixzxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=138: ixzxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=138: ixzxxx#15 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=139: vxxxxx#15 nsp=-1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=139: vxxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=139: vxxxxx#15 nsp=-1 mass=0 - -3.394112549695428e-01, 5.656854249492381e-01, // itest=139: vxxxxx#15 nsp=-1 mass=0 - -4.525483399593904e-01, -4.242640687119285e-01, // itest=139: vxxxxx#15 nsp=-1 mass=0 - 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=139: vxxxxx#15 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=140: vxxxxx#15 nsp=-1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=140: vxxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=140: vxxxxx#15 nsp=-1 mass=0 - -3.394112549695428e-01, 5.656854249492381e-01, // itest=140: vxxxxx#15 nsp=-1 mass=0 - -4.525483399593904e-01, -4.242640687119285e-01, // itest=140: vxxxxx#15 nsp=-1 mass=0 - 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=140: vxxxxx#15 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=141: sxxxxx#15 nsp=-1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=141: sxxxxx#15 nsp=-1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=141: sxxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=141: sxxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=141: sxxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=141: sxxxxx#15 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=142: sxxxxx#15 nsp=-1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=142: sxxxxx#15 nsp=-1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=142: sxxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=142: sxxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=142: sxxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=142: sxxxxx#15 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=143: oxxxxx#15 nsp=-1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=143: oxxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=143: oxxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=143: oxxxxx#15 nsp=-1 mass=0 - 6.000000000000000e+00, 8.000000000000000e+00, // itest=143: oxxxxx#15 nsp=-1 mass=0 - -3.000000000000000e+01, 0.000000000000000e+00 } ); // itest=143: oxxxxx#15 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=144: oxxxxx#15 nsp=-1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=144: oxxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=144: oxxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=144: oxxxxx#15 nsp=-1 mass=0 - 6.000000000000000e+00, 8.000000000000000e+00, // itest=144: oxxxxx#15 nsp=-1 mass=0 - -3.000000000000000e+01, 0.000000000000000e+00 } ); // itest=144: oxxxxx#15 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=145: oxzxxx#15 nsp=-1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=145: oxzxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=145: oxzxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=145: oxzxxx#15 nsp=-1 mass=0 - 6.000000000000000e+00, 8.000000000000000e+00, // itest=145: oxzxxx#15 nsp=-1 mass=0 - -3.000000000000000e+01, 0.000000000000000e+00 } ); // itest=145: oxzxxx#15 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=146: ixxxxx#0 nsp=1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=146: ixxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=146: ixxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=146: ixxxxx#0 nsp=1 mass=0 - 3.162277660168379e+01, 0.000000000000000e+00, // itest=146: ixxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=146: ixxxxx#0 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=147: ixxxxx#0 nsp=1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=147: ixxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=147: ixxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=147: ixxxxx#0 nsp=1 mass=0 - 3.162277660168379e+01, 0.000000000000000e+00, // itest=147: ixxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=147: ixxxxx#0 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=148: ipzxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=148: ipzxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=148: ipzxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=148: ipzxxx#0 nsp=1 mass=0 - 3.162277660168379e+01, 0.000000000000000e+00, // itest=148: ipzxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=148: ipzxxx#0 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=149: vxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=149: vxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=149: vxxxxx#0 nsp=1 mass=0 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=149: vxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 7.071067811865476e-01, // itest=149: vxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=149: vxxxxx#0 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=150: vxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=150: vxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=150: vxxxxx#0 nsp=1 mass=0 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=150: vxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 7.071067811865476e-01, // itest=150: vxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=150: vxxxxx#0 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=151: sxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=151: sxxxxx#0 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=151: sxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=151: sxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=151: sxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=151: sxxxxx#0 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=152: sxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=152: sxxxxx#0 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=152: sxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=152: sxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=152: sxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=152: sxxxxx#0 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=153: oxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=153: oxxxxx#0 nsp=1 mass=0 - 3.162277660168379e+01, 0.000000000000000e+00, // itest=153: oxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=153: oxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=153: oxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=153: oxxxxx#0 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=154: oxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=154: oxxxxx#0 nsp=1 mass=0 - 3.162277660168379e+01, 0.000000000000000e+00, // itest=154: oxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=154: oxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=154: oxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=154: oxxxxx#0 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=155: opzxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=155: opzxxx#0 nsp=1 mass=0 - 3.162277660168379e+01, 0.000000000000000e+00, // itest=155: opzxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=155: opzxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=155: opzxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=155: opzxxx#0 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=156: ixxxxx#1 nsp=1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=156: ixxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=156: ixxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=156: ixxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=156: ixxxxx#1 nsp=1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=156: ixxxxx#1 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=157: ixxxxx#1 nsp=1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=157: ixxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=157: ixxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=157: ixxxxx#1 nsp=1 mass=0 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=157: ixxxxx#1 nsp=1 mass=0 - -3.162277660168379e+01, -0.000000000000000e+00 } ); // itest=157: ixxxxx#1 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=158: imzxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=158: imzxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=158: imzxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=158: imzxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=158: imzxxx#1 nsp=1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=158: imzxxx#1 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=159: vxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=159: vxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=159: vxxxxx#1 nsp=1 mass=0 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=159: vxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, -7.071067811865476e-01, // itest=159: vxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=159: vxxxxx#1 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=160: vxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=160: vxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=160: vxxxxx#1 nsp=1 mass=0 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=160: vxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, -7.071067811865476e-01, // itest=160: vxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=160: vxxxxx#1 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=161: sxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=161: sxxxxx#1 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=161: sxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=161: sxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=161: sxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=161: sxxxxx#1 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=162: sxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=162: sxxxxx#1 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=162: sxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=162: sxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=162: sxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=162: sxxxxx#1 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=163: oxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=163: oxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=163: oxxxxx#1 nsp=1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00, // itest=163: oxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=163: oxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=163: oxxxxx#1 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=164: oxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=164: oxxxxx#1 nsp=1 mass=0 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=164: oxxxxx#1 nsp=1 mass=0 - -3.162277660168379e+01, -0.000000000000000e+00, // itest=164: oxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=164: oxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=164: oxxxxx#1 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=165: omzxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=165: omzxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=165: omzxxx#1 nsp=1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00, // itest=165: omzxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=165: omzxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=165: omzxxx#1 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=166: ixxxxx#2 nsp=1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=166: ixxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=166: ixxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=166: ixxxxx#2 nsp=1 mass=0 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=166: ixxxxx#2 nsp=1 mass=0 - 1.341640786499874e+01, 1.788854381999832e+01 } ); // itest=166: ixxxxx#2 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=167: ixxxxx#2 nsp=1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=167: ixxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=167: ixxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=167: ixxxxx#2 nsp=1 mass=0 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=167: ixxxxx#2 nsp=1 mass=0 - 1.341640786499874e+01, 1.788854381999832e+01 } ); // itest=167: ixxxxx#2 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=168: ixzxxx#2 nsp=1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=168: ixzxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=168: ixzxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=168: ixzxxx#2 nsp=1 mass=0 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=168: ixzxxx#2 nsp=1 mass=0 - 1.341640786499874e+01, 1.788854381999832e+01 } ); // itest=168: ixzxxx#2 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=169: vxxxxx#2 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=169: vxxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=169: vxxxxx#2 nsp=1 mass=0 - -0.000000000000000e+00, -5.656854249492381e-01, // itest=169: vxxxxx#2 nsp=1 mass=0 - -0.000000000000000e+00, 4.242640687119285e-01, // itest=169: vxxxxx#2 nsp=1 mass=0 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=169: vxxxxx#2 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=170: vxxxxx#2 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=170: vxxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=170: vxxxxx#2 nsp=1 mass=0 - -0.000000000000000e+00, -5.656854249492381e-01, // itest=170: vxxxxx#2 nsp=1 mass=0 - -0.000000000000000e+00, 4.242640687119285e-01, // itest=170: vxxxxx#2 nsp=1 mass=0 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=170: vxxxxx#2 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=171: sxxxxx#2 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=171: sxxxxx#2 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=171: sxxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=171: sxxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=171: sxxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=171: sxxxxx#2 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=172: sxxxxx#2 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=172: sxxxxx#2 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=172: sxxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=172: sxxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=172: sxxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=172: sxxxxx#2 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=173: oxxxxx#2 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=173: oxxxxx#2 nsp=1 mass=0 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=173: oxxxxx#2 nsp=1 mass=0 - 1.341640786499874e+01, -1.788854381999832e+01, // itest=173: oxxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=173: oxxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=173: oxxxxx#2 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=174: oxxxxx#2 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=174: oxxxxx#2 nsp=1 mass=0 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=174: oxxxxx#2 nsp=1 mass=0 - 1.341640786499874e+01, -1.788854381999832e+01, // itest=174: oxxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=174: oxxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=174: oxxxxx#2 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=175: oxzxxx#2 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=175: oxzxxx#2 nsp=1 mass=0 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=175: oxzxxx#2 nsp=1 mass=0 - 1.341640786499874e+01, -1.788854381999832e+01, // itest=175: oxzxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=175: oxzxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=175: oxzxxx#2 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=176: ixxxxx#3 nsp=1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=176: ixxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=176: ixxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=176: ixxxxx#3 nsp=1 mass=0 - 3.000000000000000e+01, 0.000000000000000e+00, // itest=176: ixxxxx#3 nsp=1 mass=0 - 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=176: ixxxxx#3 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=177: ixxxxx#3 nsp=1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=177: ixxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=177: ixxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=177: ixxxxx#3 nsp=1 mass=0 - 3.000000000000000e+01, 0.000000000000000e+00, // itest=177: ixxxxx#3 nsp=1 mass=0 - 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=177: ixxxxx#3 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=178: ixzxxx#3 nsp=1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=178: ixzxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=178: ixzxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=178: ixzxxx#3 nsp=1 mass=0 - 3.000000000000000e+01, 0.000000000000000e+00, // itest=178: ixzxxx#3 nsp=1 mass=0 - 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=178: ixzxxx#3 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=179: vxxxxx#3 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=179: vxxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=179: vxxxxx#3 nsp=1 mass=0 - -3.394112549695428e-01, -5.656854249492381e-01, // itest=179: vxxxxx#3 nsp=1 mass=0 - -4.525483399593904e-01, 4.242640687119285e-01, // itest=179: vxxxxx#3 nsp=1 mass=0 - 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=179: vxxxxx#3 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=180: vxxxxx#3 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=180: vxxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=180: vxxxxx#3 nsp=1 mass=0 - -3.394112549695428e-01, -5.656854249492381e-01, // itest=180: vxxxxx#3 nsp=1 mass=0 - -4.525483399593904e-01, 4.242640687119285e-01, // itest=180: vxxxxx#3 nsp=1 mass=0 - 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=180: vxxxxx#3 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=181: sxxxxx#3 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=181: sxxxxx#3 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=181: sxxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=181: sxxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=181: sxxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=181: sxxxxx#3 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=182: sxxxxx#3 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=182: sxxxxx#3 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=182: sxxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=182: sxxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=182: sxxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=182: sxxxxx#3 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=183: oxxxxx#3 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=183: oxxxxx#3 nsp=1 mass=0 - 3.000000000000000e+01, 0.000000000000000e+00, // itest=183: oxxxxx#3 nsp=1 mass=0 - 6.000000000000000e+00, -8.000000000000000e+00, // itest=183: oxxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=183: oxxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=183: oxxxxx#3 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=184: oxxxxx#3 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=184: oxxxxx#3 nsp=1 mass=0 - 3.000000000000000e+01, 0.000000000000000e+00, // itest=184: oxxxxx#3 nsp=1 mass=0 - 6.000000000000000e+00, -8.000000000000000e+00, // itest=184: oxxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=184: oxxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=184: oxxxxx#3 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=185: oxzxxx#3 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=185: oxzxxx#3 nsp=1 mass=0 - 3.000000000000000e+01, 0.000000000000000e+00, // itest=185: oxzxxx#3 nsp=1 mass=0 - 6.000000000000000e+00, -8.000000000000000e+00, // itest=185: oxzxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=185: oxzxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=185: oxzxxx#3 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 4.000000000000000e+02, // itest=186: ixxxxx#4 nsp=1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=186: ixxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=186: ixxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=186: ixxxxx#4 nsp=1 mass=0 - 1.000000000000000e+01, 0.000000000000000e+00, // itest=186: ixxxxx#4 nsp=1 mass=0 - 1.800000000000000e+01, 2.400000000000000e+01 } ); // itest=186: ixxxxx#4 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 4.000000000000000e+02, // itest=187: ixxxxx#4 nsp=1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=187: ixxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=187: ixxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=187: ixxxxx#4 nsp=1 mass=0 - 1.000000000000000e+01, 0.000000000000000e+00, // itest=187: ixxxxx#4 nsp=1 mass=0 - 1.800000000000000e+01, 2.400000000000000e+01 } ); // itest=187: ixxxxx#4 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 4.000000000000000e+02, // itest=188: ixzxxx#4 nsp=1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=188: ixzxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=188: ixzxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=188: ixzxxx#4 nsp=1 mass=0 - 1.000000000000000e+01, 0.000000000000000e+00, // itest=188: ixzxxx#4 nsp=1 mass=0 - 1.800000000000000e+01, 2.400000000000000e+01 } ); // itest=188: ixzxxx#4 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -4.000000000000000e+02, // itest=189: vxxxxx#4 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=189: vxxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=189: vxxxxx#4 nsp=1 mass=0 - 3.394112549695428e-01, -5.656854249492381e-01, // itest=189: vxxxxx#4 nsp=1 mass=0 - 4.525483399593904e-01, 4.242640687119285e-01, // itest=189: vxxxxx#4 nsp=1 mass=0 - 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=189: vxxxxx#4 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -4.000000000000000e+02, // itest=190: vxxxxx#4 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=190: vxxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=190: vxxxxx#4 nsp=1 mass=0 - 3.394112549695428e-01, -5.656854249492381e-01, // itest=190: vxxxxx#4 nsp=1 mass=0 - 4.525483399593904e-01, 4.242640687119285e-01, // itest=190: vxxxxx#4 nsp=1 mass=0 - 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=190: vxxxxx#4 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -4.000000000000000e+02, // itest=191: sxxxxx#4 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=191: sxxxxx#4 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=191: sxxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=191: sxxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=191: sxxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=191: sxxxxx#4 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -4.000000000000000e+02, // itest=192: sxxxxx#4 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=192: sxxxxx#4 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=192: sxxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=192: sxxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=192: sxxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=192: sxxxxx#4 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -4.000000000000000e+02, // itest=193: oxxxxx#4 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=193: oxxxxx#4 nsp=1 mass=0 - 1.000000000000000e+01, 0.000000000000000e+00, // itest=193: oxxxxx#4 nsp=1 mass=0 - 1.800000000000000e+01, -2.400000000000000e+01, // itest=193: oxxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=193: oxxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=193: oxxxxx#4 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -4.000000000000000e+02, // itest=194: oxxxxx#4 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=194: oxxxxx#4 nsp=1 mass=0 - 1.000000000000000e+01, 0.000000000000000e+00, // itest=194: oxxxxx#4 nsp=1 mass=0 - 1.800000000000000e+01, -2.400000000000000e+01, // itest=194: oxxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=194: oxxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=194: oxxxxx#4 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -4.000000000000000e+02, // itest=195: oxzxxx#4 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=195: oxzxxx#4 nsp=1 mass=0 - 1.000000000000000e+01, 0.000000000000000e+00, // itest=195: oxzxxx#4 nsp=1 mass=0 - 1.800000000000000e+01, -2.400000000000000e+01, // itest=195: oxzxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=195: oxzxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=195: oxzxxx#4 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=196: ixxxxx#5 nsp=1 mass=500 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=196: ixxxxx#5 nsp=1 mass=500 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=196: ixxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=196: ixxxxx#5 nsp=1 mass=500 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=196: ixxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=196: ixxxxx#5 nsp=1 mass=500 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=197: ixxxxx#5 nsp=1 mass=-500 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=197: ixxxxx#5 nsp=1 mass=-500 - -2.236067977499790e+01, 0.000000000000000e+00, // itest=197: ixxxxx#5 nsp=1 mass=-500 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=197: ixxxxx#5 nsp=1 mass=-500 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=197: ixxxxx#5 nsp=1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=197: ixxxxx#5 nsp=1 mass=-500 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=198: vxxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=198: vxxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=198: vxxxxx#5 nsp=1 mass=500 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=198: vxxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 7.071067811865476e-01, // itest=198: vxxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=198: vxxxxx#5 nsp=1 mass=500 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=199: vxxxxx#5 nsp=1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=199: vxxxxx#5 nsp=1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=199: vxxxxx#5 nsp=1 mass=-500 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=199: vxxxxx#5 nsp=1 mass=-500 - 0.000000000000000e+00, 7.071067811865476e-01, // itest=199: vxxxxx#5 nsp=1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=199: vxxxxx#5 nsp=1 mass=-500 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=200: sxxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=200: sxxxxx#5 nsp=1 mass=500 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=200: sxxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=200: sxxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=200: sxxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=200: sxxxxx#5 nsp=1 mass=500 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=201: sxxxxx#5 nsp=1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=201: sxxxxx#5 nsp=1 mass=-500 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=201: sxxxxx#5 nsp=1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=201: sxxxxx#5 nsp=1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=201: sxxxxx#5 nsp=1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=201: sxxxxx#5 nsp=1 mass=-500 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=202: oxxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=202: oxxxxx#5 nsp=1 mass=500 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=202: oxxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=202: oxxxxx#5 nsp=1 mass=500 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=202: oxxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=202: oxxxxx#5 nsp=1 mass=500 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=203: oxxxxx#5 nsp=1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=203: oxxxxx#5 nsp=1 mass=-500 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=203: oxxxxx#5 nsp=1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=203: oxxxxx#5 nsp=1 mass=-500 - -2.236067977499790e+01, 0.000000000000000e+00, // itest=203: oxxxxx#5 nsp=1 mass=-500 - -0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=203: oxxxxx#5 nsp=1 mass=-500 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -3.000000000000000e+02, // itest=204: ixxxxx#6 nsp=1 mass=400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=204: ixxxxx#6 nsp=1 mass=400 - 1.414213562373095e+01, 0.000000000000000e+00, // itest=204: ixxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=204: ixxxxx#6 nsp=1 mass=400 - 2.828427124746190e+01, 0.000000000000000e+00, // itest=204: ixxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=204: ixxxxx#6 nsp=1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -3.000000000000000e+02, // itest=205: ixxxxx#6 nsp=1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=205: ixxxxx#6 nsp=1 mass=-400 - -1.414213562373095e+01, -0.000000000000000e+00, // itest=205: ixxxxx#6 nsp=1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=205: ixxxxx#6 nsp=1 mass=-400 - 2.828427124746190e+01, 0.000000000000000e+00, // itest=205: ixxxxx#6 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=205: ixxxxx#6 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 3.000000000000000e+02, // itest=206: vxxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=206: vxxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=206: vxxxxx#6 nsp=1 mass=400 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=206: vxxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, 7.071067811865476e-01, // itest=206: vxxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=206: vxxxxx#6 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 3.000000000000000e+02, // itest=207: vxxxxx#6 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=207: vxxxxx#6 nsp=1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=207: vxxxxx#6 nsp=1 mass=-400 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=207: vxxxxx#6 nsp=1 mass=-400 - 0.000000000000000e+00, 7.071067811865476e-01, // itest=207: vxxxxx#6 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=207: vxxxxx#6 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 3.000000000000000e+02, // itest=208: sxxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=208: sxxxxx#6 nsp=1 mass=400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=208: sxxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=208: sxxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=208: sxxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=208: sxxxxx#6 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 3.000000000000000e+02, // itest=209: sxxxxx#6 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=209: sxxxxx#6 nsp=1 mass=-400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=209: sxxxxx#6 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=209: sxxxxx#6 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=209: sxxxxx#6 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=209: sxxxxx#6 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 3.000000000000000e+02, // itest=210: oxxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=210: oxxxxx#6 nsp=1 mass=400 - 2.828427124746190e+01, 0.000000000000000e+00, // itest=210: oxxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=210: oxxxxx#6 nsp=1 mass=400 - 1.414213562373095e+01, 0.000000000000000e+00, // itest=210: oxxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=210: oxxxxx#6 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 3.000000000000000e+02, // itest=211: oxxxxx#6 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=211: oxxxxx#6 nsp=1 mass=-400 - 2.828427124746190e+01, 0.000000000000000e+00, // itest=211: oxxxxx#6 nsp=1 mass=-400 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=211: oxxxxx#6 nsp=1 mass=-400 - -1.414213562373095e+01, -0.000000000000000e+00, // itest=211: oxxxxx#6 nsp=1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=211: oxxxxx#6 nsp=1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 3.000000000000000e+02, // itest=212: ixxxxx#7 nsp=1 mass=400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=212: ixxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=212: ixxxxx#7 nsp=1 mass=400 - -1.414213562373095e+01, 0.000000000000000e+00, // itest=212: ixxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=212: ixxxxx#7 nsp=1 mass=400 - -2.828427124746190e+01, 0.000000000000000e+00 } ); // itest=212: ixxxxx#7 nsp=1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 3.000000000000000e+02, // itest=213: ixxxxx#7 nsp=1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=213: ixxxxx#7 nsp=1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=213: ixxxxx#7 nsp=1 mass=-400 - 1.414213562373095e+01, -0.000000000000000e+00, // itest=213: ixxxxx#7 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=213: ixxxxx#7 nsp=1 mass=-400 - -2.828427124746190e+01, 0.000000000000000e+00 } ); // itest=213: ixxxxx#7 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -3.000000000000000e+02, // itest=214: vxxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=214: vxxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=214: vxxxxx#7 nsp=1 mass=400 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=214: vxxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, -7.071067811865476e-01, // itest=214: vxxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=214: vxxxxx#7 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -3.000000000000000e+02, // itest=215: vxxxxx#7 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=215: vxxxxx#7 nsp=1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=215: vxxxxx#7 nsp=1 mass=-400 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=215: vxxxxx#7 nsp=1 mass=-400 - 0.000000000000000e+00, -7.071067811865476e-01, // itest=215: vxxxxx#7 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=215: vxxxxx#7 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -3.000000000000000e+02, // itest=216: sxxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=216: sxxxxx#7 nsp=1 mass=400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=216: sxxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=216: sxxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=216: sxxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=216: sxxxxx#7 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -3.000000000000000e+02, // itest=217: sxxxxx#7 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=217: sxxxxx#7 nsp=1 mass=-400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=217: sxxxxx#7 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=217: sxxxxx#7 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=217: sxxxxx#7 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=217: sxxxxx#7 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -3.000000000000000e+02, // itest=218: oxxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=218: oxxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=218: oxxxxx#7 nsp=1 mass=400 - -2.828427124746190e+01, 0.000000000000000e+00, // itest=218: oxxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=218: oxxxxx#7 nsp=1 mass=400 - -1.414213562373095e+01, 0.000000000000000e+00 } ); // itest=218: oxxxxx#7 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -3.000000000000000e+02, // itest=219: oxxxxx#7 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=219: oxxxxx#7 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=219: oxxxxx#7 nsp=1 mass=-400 - -2.828427124746190e+01, 0.000000000000000e+00, // itest=219: oxxxxx#7 nsp=1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=219: oxxxxx#7 nsp=1 mass=-400 - 1.414213562373095e+01, -0.000000000000000e+00 } ); // itest=219: oxxxxx#7 nsp=1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=220: ixxxxx#8 nsp=1 mass=400 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=220: ixxxxx#8 nsp=1 mass=400 - 1.000000000000000e+01, 0.000000000000000e+00, // itest=220: ixxxxx#8 nsp=1 mass=400 - 5.999999999999999e+00, 7.999999999999999e+00, // itest=220: ixxxxx#8 nsp=1 mass=400 - 2.000000000000000e+01, 0.000000000000000e+00, // itest=220: ixxxxx#8 nsp=1 mass=400 - 1.200000000000000e+01, 1.600000000000000e+01 } ); // itest=220: ixxxxx#8 nsp=1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=221: ixxxxx#8 nsp=1 mass=-400 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=221: ixxxxx#8 nsp=1 mass=-400 - -1.000000000000000e+01, -0.000000000000000e+00, // itest=221: ixxxxx#8 nsp=1 mass=-400 - -5.999999999999999e+00, -7.999999999999999e+00, // itest=221: ixxxxx#8 nsp=1 mass=-400 - 2.000000000000000e+01, 0.000000000000000e+00, // itest=221: ixxxxx#8 nsp=1 mass=-400 - 1.200000000000000e+01, 1.600000000000000e+01 } ); // itest=221: ixxxxx#8 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=222: vxxxxx#8 nsp=1 mass=400 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=222: vxxxxx#8 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=222: vxxxxx#8 nsp=1 mass=400 - 0.000000000000000e+00, -5.656854249492381e-01, // itest=222: vxxxxx#8 nsp=1 mass=400 - 0.000000000000000e+00, 4.242640687119285e-01, // itest=222: vxxxxx#8 nsp=1 mass=400 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=222: vxxxxx#8 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=223: vxxxxx#8 nsp=1 mass=-400 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=223: vxxxxx#8 nsp=1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=223: vxxxxx#8 nsp=1 mass=-400 - -0.000000000000000e+00, -5.656854249492381e-01, // itest=223: vxxxxx#8 nsp=1 mass=-400 - -0.000000000000000e+00, 4.242640687119285e-01, // itest=223: vxxxxx#8 nsp=1 mass=-400 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=223: vxxxxx#8 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=224: sxxxxx#8 nsp=1 mass=400 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=224: sxxxxx#8 nsp=1 mass=400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=224: sxxxxx#8 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=224: sxxxxx#8 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=224: sxxxxx#8 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=224: sxxxxx#8 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=225: sxxxxx#8 nsp=1 mass=-400 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=225: sxxxxx#8 nsp=1 mass=-400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=225: sxxxxx#8 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=225: sxxxxx#8 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=225: sxxxxx#8 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=225: sxxxxx#8 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=226: oxxxxx#8 nsp=1 mass=400 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=226: oxxxxx#8 nsp=1 mass=400 - 2.000000000000000e+01, 0.000000000000000e+00, // itest=226: oxxxxx#8 nsp=1 mass=400 - 1.200000000000000e+01, -1.600000000000000e+01, // itest=226: oxxxxx#8 nsp=1 mass=400 - 1.000000000000000e+01, 0.000000000000000e+00, // itest=226: oxxxxx#8 nsp=1 mass=400 - 5.999999999999999e+00, -7.999999999999999e+00 } ); // itest=226: oxxxxx#8 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=227: oxxxxx#8 nsp=1 mass=-400 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=227: oxxxxx#8 nsp=1 mass=-400 - 2.000000000000000e+01, 0.000000000000000e+00, // itest=227: oxxxxx#8 nsp=1 mass=-400 - 1.200000000000000e+01, -1.600000000000000e+01, // itest=227: oxxxxx#8 nsp=1 mass=-400 - -1.000000000000000e+01, -0.000000000000000e+00, // itest=227: oxxxxx#8 nsp=1 mass=-400 - -5.999999999999999e+00, 7.999999999999999e+00 } ); // itest=227: oxxxxx#8 nsp=1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=228: ixxxxx#9 nsp=1 mass=400 - 2.400000000000000e+02, 1.800000000000000e+02, // itest=228: ixxxxx#9 nsp=1 mass=400 - 1.000000000000000e+01, 0.000000000000000e+00, // itest=228: ixxxxx#9 nsp=1 mass=400 - -7.999999999999999e+00, -5.999999999999999e+00, // itest=228: ixxxxx#9 nsp=1 mass=400 - 2.000000000000000e+01, 0.000000000000000e+00, // itest=228: ixxxxx#9 nsp=1 mass=400 - -1.600000000000000e+01, -1.200000000000000e+01 } ); // itest=228: ixxxxx#9 nsp=1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=229: ixxxxx#9 nsp=1 mass=-400 - 2.400000000000000e+02, 1.800000000000000e+02, // itest=229: ixxxxx#9 nsp=1 mass=-400 - -1.000000000000000e+01, -0.000000000000000e+00, // itest=229: ixxxxx#9 nsp=1 mass=-400 - 7.999999999999999e+00, 5.999999999999999e+00, // itest=229: ixxxxx#9 nsp=1 mass=-400 - 2.000000000000000e+01, 0.000000000000000e+00, // itest=229: ixxxxx#9 nsp=1 mass=-400 - -1.600000000000000e+01, -1.200000000000000e+01 } ); // itest=229: ixxxxx#9 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=230: vxxxxx#9 nsp=1 mass=400 - -2.400000000000000e+02, -1.800000000000000e+02, // itest=230: vxxxxx#9 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=230: vxxxxx#9 nsp=1 mass=400 - 0.000000000000000e+00, 4.242640687119285e-01, // itest=230: vxxxxx#9 nsp=1 mass=400 - 0.000000000000000e+00, -5.656854249492381e-01, // itest=230: vxxxxx#9 nsp=1 mass=400 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=230: vxxxxx#9 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=231: vxxxxx#9 nsp=1 mass=-400 - -2.400000000000000e+02, -1.800000000000000e+02, // itest=231: vxxxxx#9 nsp=1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=231: vxxxxx#9 nsp=1 mass=-400 - 0.000000000000000e+00, 4.242640687119285e-01, // itest=231: vxxxxx#9 nsp=1 mass=-400 - 0.000000000000000e+00, -5.656854249492381e-01, // itest=231: vxxxxx#9 nsp=1 mass=-400 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=231: vxxxxx#9 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=232: sxxxxx#9 nsp=1 mass=400 - -2.400000000000000e+02, -1.800000000000000e+02, // itest=232: sxxxxx#9 nsp=1 mass=400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=232: sxxxxx#9 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=232: sxxxxx#9 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=232: sxxxxx#9 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=232: sxxxxx#9 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=233: sxxxxx#9 nsp=1 mass=-400 - -2.400000000000000e+02, -1.800000000000000e+02, // itest=233: sxxxxx#9 nsp=1 mass=-400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=233: sxxxxx#9 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=233: sxxxxx#9 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=233: sxxxxx#9 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=233: sxxxxx#9 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=234: oxxxxx#9 nsp=1 mass=400 - -2.400000000000000e+02, -1.800000000000000e+02, // itest=234: oxxxxx#9 nsp=1 mass=400 - 2.000000000000000e+01, 0.000000000000000e+00, // itest=234: oxxxxx#9 nsp=1 mass=400 - -1.600000000000000e+01, 1.200000000000000e+01, // itest=234: oxxxxx#9 nsp=1 mass=400 - 1.000000000000000e+01, 0.000000000000000e+00, // itest=234: oxxxxx#9 nsp=1 mass=400 - -7.999999999999999e+00, 5.999999999999999e+00 } ); // itest=234: oxxxxx#9 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=235: oxxxxx#9 nsp=1 mass=-400 - -2.400000000000000e+02, -1.800000000000000e+02, // itest=235: oxxxxx#9 nsp=1 mass=-400 - 2.000000000000000e+01, 0.000000000000000e+00, // itest=235: oxxxxx#9 nsp=1 mass=-400 - -1.600000000000000e+01, 1.200000000000000e+01, // itest=235: oxxxxx#9 nsp=1 mass=-400 - -1.000000000000000e+01, -0.000000000000000e+00, // itest=235: oxxxxx#9 nsp=1 mass=-400 - 7.999999999999999e+00, -5.999999999999999e+00 } ); // itest=235: oxxxxx#9 nsp=1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -1.440000000000000e+02, // itest=236: ixxxxx#10 nsp=1 mass=400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=236: ixxxxx#10 nsp=1 mass=400 - 1.216552506059644e+01, 0.000000000000000e+00, // itest=236: ixxxxx#10 nsp=1 mass=400 - 4.931969619160719e+00, 5.260767593771432e+00, // itest=236: ixxxxx#10 nsp=1 mass=400 - 2.433105012119288e+01, 0.000000000000000e+00, // itest=236: ixxxxx#10 nsp=1 mass=400 - 9.863939238321439e+00, 1.052153518754287e+01 } ); // itest=236: ixxxxx#10 nsp=1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -1.440000000000000e+02, // itest=237: ixxxxx#10 nsp=1 mass=-400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=237: ixxxxx#10 nsp=1 mass=-400 - -1.216552506059644e+01, -0.000000000000000e+00, // itest=237: ixxxxx#10 nsp=1 mass=-400 - -4.931969619160719e+00, -5.260767593771432e+00, // itest=237: ixxxxx#10 nsp=1 mass=-400 - 2.433105012119288e+01, 0.000000000000000e+00, // itest=237: ixxxxx#10 nsp=1 mass=-400 - 9.863939238321439e+00, 1.052153518754287e+01 } ); // itest=237: ixxxxx#10 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 1.440000000000000e+02, // itest=238: vxxxxx#10 nsp=1 mass=400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=238: vxxxxx#10 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=238: vxxxxx#10 nsp=1 mass=400 - -2.321373168788980e-01, -5.158607041753289e-01, // itest=238: vxxxxx#10 nsp=1 mass=400 - -2.476131380041579e-01, 4.836194101643708e-01, // itest=238: vxxxxx#10 nsp=1 mass=400 - 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=238: vxxxxx#10 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 1.440000000000000e+02, // itest=239: vxxxxx#10 nsp=1 mass=-400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=239: vxxxxx#10 nsp=1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=239: vxxxxx#10 nsp=1 mass=-400 - -2.321373168788980e-01, -5.158607041753289e-01, // itest=239: vxxxxx#10 nsp=1 mass=-400 - -2.476131380041579e-01, 4.836194101643708e-01, // itest=239: vxxxxx#10 nsp=1 mass=-400 - 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=239: vxxxxx#10 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 1.440000000000000e+02, // itest=240: sxxxxx#10 nsp=1 mass=400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=240: sxxxxx#10 nsp=1 mass=400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=240: sxxxxx#10 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=240: sxxxxx#10 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=240: sxxxxx#10 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=240: sxxxxx#10 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 1.440000000000000e+02, // itest=241: sxxxxx#10 nsp=1 mass=-400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=241: sxxxxx#10 nsp=1 mass=-400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=241: sxxxxx#10 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=241: sxxxxx#10 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=241: sxxxxx#10 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=241: sxxxxx#10 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 1.440000000000000e+02, // itest=242: oxxxxx#10 nsp=1 mass=400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=242: oxxxxx#10 nsp=1 mass=400 - 2.433105012119288e+01, 0.000000000000000e+00, // itest=242: oxxxxx#10 nsp=1 mass=400 - 9.863939238321439e+00, -1.052153518754287e+01, // itest=242: oxxxxx#10 nsp=1 mass=400 - 1.216552506059644e+01, 0.000000000000000e+00, // itest=242: oxxxxx#10 nsp=1 mass=400 - 4.931969619160719e+00, -5.260767593771432e+00 } ); // itest=242: oxxxxx#10 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 1.440000000000000e+02, // itest=243: oxxxxx#10 nsp=1 mass=-400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=243: oxxxxx#10 nsp=1 mass=-400 - 2.433105012119288e+01, 0.000000000000000e+00, // itest=243: oxxxxx#10 nsp=1 mass=-400 - 9.863939238321439e+00, -1.052153518754287e+01, // itest=243: oxxxxx#10 nsp=1 mass=-400 - -1.216552506059644e+01, -0.000000000000000e+00, // itest=243: oxxxxx#10 nsp=1 mass=-400 - -4.931969619160719e+00, 5.260767593771432e+00 } ); // itest=243: oxxxxx#10 nsp=1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 1.440000000000000e+02, // itest=244: ixxxxx#11 nsp=1 mass=400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=244: ixxxxx#11 nsp=1 mass=400 - 7.211102550927978e+00, 0.000000000000000e+00, // itest=244: ixxxxx#11 nsp=1 mass=400 - 8.320502943378436e+00, 8.875203139603666e+00, // itest=244: ixxxxx#11 nsp=1 mass=400 - 1.442220510185596e+01, 0.000000000000000e+00, // itest=244: ixxxxx#11 nsp=1 mass=400 - 1.664100588675688e+01, 1.775040627920733e+01 } ); // itest=244: ixxxxx#11 nsp=1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 1.440000000000000e+02, // itest=245: ixxxxx#11 nsp=1 mass=-400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=245: ixxxxx#11 nsp=1 mass=-400 - -7.211102550927978e+00, -0.000000000000000e+00, // itest=245: ixxxxx#11 nsp=1 mass=-400 - -8.320502943378436e+00, -8.875203139603666e+00, // itest=245: ixxxxx#11 nsp=1 mass=-400 - 1.442220510185596e+01, 0.000000000000000e+00, // itest=245: ixxxxx#11 nsp=1 mass=-400 - 1.664100588675688e+01, 1.775040627920733e+01 } ); // itest=245: ixxxxx#11 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -1.440000000000000e+02, // itest=246: vxxxxx#11 nsp=1 mass=400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=246: vxxxxx#11 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=246: vxxxxx#11 nsp=1 mass=400 - 2.321373168788980e-01, -5.158607041753289e-01, // itest=246: vxxxxx#11 nsp=1 mass=400 - 2.476131380041579e-01, 4.836194101643708e-01, // itest=246: vxxxxx#11 nsp=1 mass=400 - 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=246: vxxxxx#11 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -1.440000000000000e+02, // itest=247: vxxxxx#11 nsp=1 mass=-400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=247: vxxxxx#11 nsp=1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=247: vxxxxx#11 nsp=1 mass=-400 - 2.321373168788980e-01, -5.158607041753289e-01, // itest=247: vxxxxx#11 nsp=1 mass=-400 - 2.476131380041579e-01, 4.836194101643708e-01, // itest=247: vxxxxx#11 nsp=1 mass=-400 - 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=247: vxxxxx#11 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -1.440000000000000e+02, // itest=248: sxxxxx#11 nsp=1 mass=400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=248: sxxxxx#11 nsp=1 mass=400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=248: sxxxxx#11 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=248: sxxxxx#11 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=248: sxxxxx#11 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=248: sxxxxx#11 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -1.440000000000000e+02, // itest=249: sxxxxx#11 nsp=1 mass=-400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=249: sxxxxx#11 nsp=1 mass=-400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=249: sxxxxx#11 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=249: sxxxxx#11 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=249: sxxxxx#11 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=249: sxxxxx#11 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -1.440000000000000e+02, // itest=250: oxxxxx#11 nsp=1 mass=400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=250: oxxxxx#11 nsp=1 mass=400 - 1.442220510185596e+01, 0.000000000000000e+00, // itest=250: oxxxxx#11 nsp=1 mass=400 - 1.664100588675688e+01, -1.775040627920733e+01, // itest=250: oxxxxx#11 nsp=1 mass=400 - 7.211102550927978e+00, 0.000000000000000e+00, // itest=250: oxxxxx#11 nsp=1 mass=400 - 8.320502943378436e+00, -8.875203139603666e+00 } ); // itest=250: oxxxxx#11 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -1.440000000000000e+02, // itest=251: oxxxxx#11 nsp=1 mass=-400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=251: oxxxxx#11 nsp=1 mass=-400 - 1.442220510185596e+01, 0.000000000000000e+00, // itest=251: oxxxxx#11 nsp=1 mass=-400 - 1.664100588675688e+01, -1.775040627920733e+01, // itest=251: oxxxxx#11 nsp=1 mass=-400 - -7.211102550927978e+00, -0.000000000000000e+00, // itest=251: oxxxxx#11 nsp=1 mass=-400 - -8.320502943378436e+00, 8.875203139603666e+00 } ); // itest=251: oxxxxx#11 nsp=1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=252: ixxxxx#12 nsp=1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=252: ixxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=252: ixxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=252: ixxxxx#12 nsp=1 mass=0 - 3.162277660168379e+01, 0.000000000000000e+00, // itest=252: ixxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=252: ixxxxx#12 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=253: ixxxxx#12 nsp=1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=253: ixxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=253: ixxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=253: ixxxxx#12 nsp=1 mass=0 - 3.162277660168379e+01, 0.000000000000000e+00, // itest=253: ixxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=253: ixxxxx#12 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=254: ipzxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=254: ipzxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=254: ipzxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=254: ipzxxx#12 nsp=1 mass=0 - 3.162277660168379e+01, 0.000000000000000e+00, // itest=254: ipzxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=254: ipzxxx#12 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=255: vxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=255: vxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=255: vxxxxx#12 nsp=1 mass=0 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=255: vxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 7.071067811865476e-01, // itest=255: vxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=255: vxxxxx#12 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=256: vxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=256: vxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=256: vxxxxx#12 nsp=1 mass=0 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=256: vxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 7.071067811865476e-01, // itest=256: vxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=256: vxxxxx#12 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=257: sxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=257: sxxxxx#12 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=257: sxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=257: sxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=257: sxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=257: sxxxxx#12 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=258: sxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=258: sxxxxx#12 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=258: sxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=258: sxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=258: sxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=258: sxxxxx#12 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=259: oxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=259: oxxxxx#12 nsp=1 mass=0 - 3.162277660168379e+01, 0.000000000000000e+00, // itest=259: oxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=259: oxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=259: oxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=259: oxxxxx#12 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=260: oxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=260: oxxxxx#12 nsp=1 mass=0 - 3.162277660168379e+01, 0.000000000000000e+00, // itest=260: oxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=260: oxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=260: oxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=260: oxxxxx#12 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=261: opzxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=261: opzxxx#12 nsp=1 mass=0 - 3.162277660168379e+01, 0.000000000000000e+00, // itest=261: opzxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=261: opzxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=261: opzxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=261: opzxxx#12 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=262: ixxxxx#13 nsp=1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=262: ixxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=262: ixxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=262: ixxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=262: ixxxxx#13 nsp=1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=262: ixxxxx#13 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=263: ixxxxx#13 nsp=1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=263: ixxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=263: ixxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=263: ixxxxx#13 nsp=1 mass=0 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=263: ixxxxx#13 nsp=1 mass=0 - -3.162277660168379e+01, -0.000000000000000e+00 } ); // itest=263: ixxxxx#13 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=264: imzxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=264: imzxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=264: imzxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=264: imzxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=264: imzxxx#13 nsp=1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=264: imzxxx#13 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=265: vxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=265: vxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=265: vxxxxx#13 nsp=1 mass=0 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=265: vxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, -7.071067811865476e-01, // itest=265: vxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=265: vxxxxx#13 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=266: vxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=266: vxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=266: vxxxxx#13 nsp=1 mass=0 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=266: vxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, -7.071067811865476e-01, // itest=266: vxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=266: vxxxxx#13 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=267: sxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=267: sxxxxx#13 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=267: sxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=267: sxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=267: sxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=267: sxxxxx#13 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=268: sxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=268: sxxxxx#13 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=268: sxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=268: sxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=268: sxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=268: sxxxxx#13 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=269: oxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=269: oxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=269: oxxxxx#13 nsp=1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00, // itest=269: oxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=269: oxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=269: oxxxxx#13 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=270: oxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=270: oxxxxx#13 nsp=1 mass=0 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=270: oxxxxx#13 nsp=1 mass=0 - -3.162277660168379e+01, -0.000000000000000e+00, // itest=270: oxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=270: oxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=270: oxxxxx#13 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=271: omzxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=271: omzxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=271: omzxxx#13 nsp=1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00, // itest=271: omzxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=271: omzxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=271: omzxxx#13 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=272: ixxxxx#14 nsp=1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=272: ixxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=272: ixxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=272: ixxxxx#14 nsp=1 mass=0 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=272: ixxxxx#14 nsp=1 mass=0 - 1.341640786499874e+01, 1.788854381999832e+01 } ); // itest=272: ixxxxx#14 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=273: ixxxxx#14 nsp=1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=273: ixxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=273: ixxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=273: ixxxxx#14 nsp=1 mass=0 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=273: ixxxxx#14 nsp=1 mass=0 - 1.341640786499874e+01, 1.788854381999832e+01 } ); // itest=273: ixxxxx#14 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=274: ixzxxx#14 nsp=1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=274: ixzxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=274: ixzxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=274: ixzxxx#14 nsp=1 mass=0 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=274: ixzxxx#14 nsp=1 mass=0 - 1.341640786499874e+01, 1.788854381999832e+01 } ); // itest=274: ixzxxx#14 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=275: vxxxxx#14 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=275: vxxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=275: vxxxxx#14 nsp=1 mass=0 - -0.000000000000000e+00, -5.656854249492381e-01, // itest=275: vxxxxx#14 nsp=1 mass=0 - -0.000000000000000e+00, 4.242640687119285e-01, // itest=275: vxxxxx#14 nsp=1 mass=0 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=275: vxxxxx#14 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=276: vxxxxx#14 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=276: vxxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=276: vxxxxx#14 nsp=1 mass=0 - -0.000000000000000e+00, -5.656854249492381e-01, // itest=276: vxxxxx#14 nsp=1 mass=0 - -0.000000000000000e+00, 4.242640687119285e-01, // itest=276: vxxxxx#14 nsp=1 mass=0 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=276: vxxxxx#14 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=277: sxxxxx#14 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=277: sxxxxx#14 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=277: sxxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=277: sxxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=277: sxxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=277: sxxxxx#14 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=278: sxxxxx#14 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=278: sxxxxx#14 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=278: sxxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=278: sxxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=278: sxxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=278: sxxxxx#14 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=279: oxxxxx#14 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=279: oxxxxx#14 nsp=1 mass=0 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=279: oxxxxx#14 nsp=1 mass=0 - 1.341640786499874e+01, -1.788854381999832e+01, // itest=279: oxxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=279: oxxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=279: oxxxxx#14 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=280: oxxxxx#14 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=280: oxxxxx#14 nsp=1 mass=0 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=280: oxxxxx#14 nsp=1 mass=0 - 1.341640786499874e+01, -1.788854381999832e+01, // itest=280: oxxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=280: oxxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=280: oxxxxx#14 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=281: oxzxxx#14 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=281: oxzxxx#14 nsp=1 mass=0 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=281: oxzxxx#14 nsp=1 mass=0 - 1.341640786499874e+01, -1.788854381999832e+01, // itest=281: oxzxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=281: oxzxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=281: oxzxxx#14 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=282: ixxxxx#15 nsp=1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=282: ixxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=282: ixxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=282: ixxxxx#15 nsp=1 mass=0 - 3.000000000000000e+01, 0.000000000000000e+00, // itest=282: ixxxxx#15 nsp=1 mass=0 - 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=282: ixxxxx#15 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=283: ixxxxx#15 nsp=1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=283: ixxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=283: ixxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=283: ixxxxx#15 nsp=1 mass=0 - 3.000000000000000e+01, 0.000000000000000e+00, // itest=283: ixxxxx#15 nsp=1 mass=0 - 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=283: ixxxxx#15 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=284: ixzxxx#15 nsp=1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=284: ixzxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=284: ixzxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=284: ixzxxx#15 nsp=1 mass=0 - 3.000000000000000e+01, 0.000000000000000e+00, // itest=284: ixzxxx#15 nsp=1 mass=0 - 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=284: ixzxxx#15 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=285: vxxxxx#15 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=285: vxxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=285: vxxxxx#15 nsp=1 mass=0 - -3.394112549695428e-01, -5.656854249492381e-01, // itest=285: vxxxxx#15 nsp=1 mass=0 - -4.525483399593904e-01, 4.242640687119285e-01, // itest=285: vxxxxx#15 nsp=1 mass=0 - 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=285: vxxxxx#15 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=286: vxxxxx#15 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=286: vxxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=286: vxxxxx#15 nsp=1 mass=0 - -3.394112549695428e-01, -5.656854249492381e-01, // itest=286: vxxxxx#15 nsp=1 mass=0 - -4.525483399593904e-01, 4.242640687119285e-01, // itest=286: vxxxxx#15 nsp=1 mass=0 - 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=286: vxxxxx#15 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=287: sxxxxx#15 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=287: sxxxxx#15 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=287: sxxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=287: sxxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=287: sxxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=287: sxxxxx#15 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=288: sxxxxx#15 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=288: sxxxxx#15 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=288: sxxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=288: sxxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=288: sxxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=288: sxxxxx#15 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=289: oxxxxx#15 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=289: oxxxxx#15 nsp=1 mass=0 - 3.000000000000000e+01, 0.000000000000000e+00, // itest=289: oxxxxx#15 nsp=1 mass=0 - 6.000000000000000e+00, -8.000000000000000e+00, // itest=289: oxxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=289: oxxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=289: oxxxxx#15 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=290: oxxxxx#15 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=290: oxxxxx#15 nsp=1 mass=0 - 3.000000000000000e+01, 0.000000000000000e+00, // itest=290: oxxxxx#15 nsp=1 mass=0 - 6.000000000000000e+00, -8.000000000000000e+00, // itest=290: oxxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=290: oxxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=290: oxxxxx#15 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=291: oxzxxx#15 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=291: oxzxxx#15 nsp=1 mass=0 - 3.000000000000000e+01, 0.000000000000000e+00, // itest=291: oxzxxx#15 nsp=1 mass=0 - 6.000000000000000e+00, -8.000000000000000e+00, // itest=291: oxzxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=291: oxzxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=291: oxzxxx#15 nsp=1 mass=0 + 5.000000000000000e+02, 5.000000000000000e+02, // itest=50: ixxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=50: ixxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=50: ixxxxx#5 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=50: ixxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=50: ixxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=50: ixxxxx#5 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=51: ixxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=51: ixxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=51: ixxxxx#5 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=51: ixxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=51: ixxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=51: ixxxxx#5 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=52: ipzxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=52: ipzxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=52: ipzxxx#5 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=52: ipzxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=52: ipzxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=52: ipzxxx#5 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=53: vxxxxx#5 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=53: vxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=53: vxxxxx#5 nsp=-1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=53: vxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=53: vxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=53: vxxxxx#5 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=54: vxxxxx#5 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=54: vxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=54: vxxxxx#5 nsp=-1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=54: vxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=54: vxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=54: vxxxxx#5 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=55: sxxxxx#5 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=55: sxxxxx#5 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=55: sxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=55: sxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=55: sxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=55: sxxxxx#5 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=56: sxxxxx#5 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=56: sxxxxx#5 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=56: sxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=56: sxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=56: sxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=56: sxxxxx#5 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=57: oxxxxx#5 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=57: oxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=57: oxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=57: oxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=57: oxxxxx#5 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=57: oxxxxx#5 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=58: oxxxxx#5 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=58: oxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=58: oxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=58: oxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=58: oxxxxx#5 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=58: oxxxxx#5 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=59: opzxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=59: opzxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=59: opzxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=59: opzxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=59: opzxxx#5 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=59: opzxxx#5 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=60: ixxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=60: ixxxxx#6 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=60: ixxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=60: ixxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=60: ixxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=60: ixxxxx#6 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=61: ixxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=61: ixxxxx#6 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=61: ixxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=61: ixxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=61: ixxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=61: ixxxxx#6 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=62: imzxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=62: imzxxx#6 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=62: imzxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=62: imzxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=62: imzxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=62: imzxxx#6 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=63: vxxxxx#6 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=63: vxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=63: vxxxxx#6 nsp=-1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=63: vxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=63: vxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=63: vxxxxx#6 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=64: vxxxxx#6 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=64: vxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=64: vxxxxx#6 nsp=-1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=64: vxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=64: vxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=64: vxxxxx#6 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=65: sxxxxx#6 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=65: sxxxxx#6 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=65: sxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=65: sxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=65: sxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=65: sxxxxx#6 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=66: sxxxxx#6 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=66: sxxxxx#6 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=66: sxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=66: sxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=66: sxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=66: sxxxxx#6 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=67: oxxxxx#6 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=67: oxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=67: oxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=67: oxxxxx#6 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=67: oxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=67: oxxxxx#6 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=68: oxxxxx#6 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=68: oxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=68: oxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=68: oxxxxx#6 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=68: oxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=68: oxxxxx#6 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=69: omzxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=69: omzxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=69: omzxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=69: omzxxx#6 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=69: omzxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=69: omzxxx#6 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=70: ixxxxx#7 nsp=-1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=70: ixxxxx#7 nsp=-1 mass=0 + 1.341640786499874e+01, -1.788854381999831e+01, // itest=70: ixxxxx#7 nsp=-1 mass=0 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=70: ixxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=70: ixxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=70: ixxxxx#7 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=71: ixxxxx#7 nsp=-1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=71: ixxxxx#7 nsp=-1 mass=0 + 1.341640786499874e+01, -1.788854381999831e+01, // itest=71: ixxxxx#7 nsp=-1 mass=0 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=71: ixxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=71: ixxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=71: ixxxxx#7 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=72: ixzxxx#7 nsp=-1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=72: ixzxxx#7 nsp=-1 mass=0 + 1.341640786499874e+01, -1.788854381999832e+01, // itest=72: ixzxxx#7 nsp=-1 mass=0 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=72: ixzxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=72: ixzxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=72: ixzxxx#7 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=73: vxxxxx#7 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=73: vxxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=73: vxxxxx#7 nsp=-1 mass=0 + -0.000000000000000e+00, 5.656854249492381e-01, // itest=73: vxxxxx#7 nsp=-1 mass=0 + -0.000000000000000e+00, -4.242640687119285e-01, // itest=73: vxxxxx#7 nsp=-1 mass=0 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=73: vxxxxx#7 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=74: vxxxxx#7 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=74: vxxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=74: vxxxxx#7 nsp=-1 mass=0 + -0.000000000000000e+00, 5.656854249492381e-01, // itest=74: vxxxxx#7 nsp=-1 mass=0 + -0.000000000000000e+00, -4.242640687119285e-01, // itest=74: vxxxxx#7 nsp=-1 mass=0 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=74: vxxxxx#7 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=75: sxxxxx#7 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=75: sxxxxx#7 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=75: sxxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=75: sxxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=75: sxxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=75: sxxxxx#7 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=76: sxxxxx#7 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=76: sxxxxx#7 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=76: sxxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=76: sxxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=76: sxxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=76: sxxxxx#7 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=77: oxxxxx#7 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=77: oxxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=77: oxxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=77: oxxxxx#7 nsp=-1 mass=0 + 1.341640786499874e+01, 1.788854381999831e+01, // itest=77: oxxxxx#7 nsp=-1 mass=0 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=77: oxxxxx#7 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=78: oxxxxx#7 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=78: oxxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=78: oxxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=78: oxxxxx#7 nsp=-1 mass=0 + 1.341640786499874e+01, 1.788854381999831e+01, // itest=78: oxxxxx#7 nsp=-1 mass=0 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=78: oxxxxx#7 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=79: oxzxxx#7 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=79: oxzxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=79: oxzxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=79: oxzxxx#7 nsp=-1 mass=0 + 1.341640786499874e+01, 1.788854381999832e+01, // itest=79: oxzxxx#7 nsp=-1 mass=0 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=79: oxzxxx#7 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=80: ixxxxx#8 nsp=-1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=80: ixxxxx#8 nsp=-1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=80: ixxxxx#8 nsp=-1 mass=0 + -3.000000000000000e+01, 0.000000000000000e+00, // itest=80: ixxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=80: ixxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=80: ixxxxx#8 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=81: ixxxxx#8 nsp=-1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=81: ixxxxx#8 nsp=-1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=81: ixxxxx#8 nsp=-1 mass=0 + -3.000000000000000e+01, 0.000000000000000e+00, // itest=81: ixxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=81: ixxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=81: ixxxxx#8 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=82: ixzxxx#8 nsp=-1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=82: ixzxxx#8 nsp=-1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=82: ixzxxx#8 nsp=-1 mass=0 + -3.000000000000000e+01, 0.000000000000000e+00, // itest=82: ixzxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=82: ixzxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=82: ixzxxx#8 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=83: vxxxxx#8 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=83: vxxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=83: vxxxxx#8 nsp=-1 mass=0 + -3.394112549695428e-01, 5.656854249492381e-01, // itest=83: vxxxxx#8 nsp=-1 mass=0 + -4.525483399593904e-01, -4.242640687119285e-01, // itest=83: vxxxxx#8 nsp=-1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=83: vxxxxx#8 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=84: vxxxxx#8 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=84: vxxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=84: vxxxxx#8 nsp=-1 mass=0 + -3.394112549695428e-01, 5.656854249492381e-01, // itest=84: vxxxxx#8 nsp=-1 mass=0 + -4.525483399593904e-01, -4.242640687119285e-01, // itest=84: vxxxxx#8 nsp=-1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=84: vxxxxx#8 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=85: sxxxxx#8 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=85: sxxxxx#8 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=85: sxxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=85: sxxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=85: sxxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=85: sxxxxx#8 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=86: sxxxxx#8 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=86: sxxxxx#8 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=86: sxxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=86: sxxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=86: sxxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=86: sxxxxx#8 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=87: oxxxxx#8 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=87: oxxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=87: oxxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=87: oxxxxx#8 nsp=-1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00, // itest=87: oxxxxx#8 nsp=-1 mass=0 + -3.000000000000000e+01, 0.000000000000000e+00 } ); // itest=87: oxxxxx#8 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=88: oxxxxx#8 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=88: oxxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=88: oxxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=88: oxxxxx#8 nsp=-1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00, // itest=88: oxxxxx#8 nsp=-1 mass=0 + -3.000000000000000e+01, 0.000000000000000e+00 } ); // itest=88: oxxxxx#8 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=89: oxzxxx#8 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=89: oxzxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=89: oxzxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=89: oxzxxx#8 nsp=-1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00, // itest=89: oxzxxx#8 nsp=-1 mass=0 + -3.000000000000000e+01, 0.000000000000000e+00 } ); // itest=89: oxzxxx#8 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=90: ixxxxx#9 nsp=-1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=90: ixxxxx#9 nsp=-1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=90: ixxxxx#9 nsp=-1 mass=0 + -1.000000000000000e+01, 0.000000000000000e+00, // itest=90: ixxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=90: ixxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=90: ixxxxx#9 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=91: ixxxxx#9 nsp=-1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=91: ixxxxx#9 nsp=-1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=91: ixxxxx#9 nsp=-1 mass=0 + -1.000000000000000e+01, 0.000000000000000e+00, // itest=91: ixxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=91: ixxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=91: ixxxxx#9 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=92: ixzxxx#9 nsp=-1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=92: ixzxxx#9 nsp=-1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=92: ixzxxx#9 nsp=-1 mass=0 + -1.000000000000000e+01, 0.000000000000000e+00, // itest=92: ixzxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=92: ixzxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=92: ixzxxx#9 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=93: vxxxxx#9 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=93: vxxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=93: vxxxxx#9 nsp=-1 mass=0 + 3.394112549695428e-01, 5.656854249492381e-01, // itest=93: vxxxxx#9 nsp=-1 mass=0 + 4.525483399593904e-01, -4.242640687119285e-01, // itest=93: vxxxxx#9 nsp=-1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=93: vxxxxx#9 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=94: vxxxxx#9 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=94: vxxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=94: vxxxxx#9 nsp=-1 mass=0 + 3.394112549695428e-01, 5.656854249492381e-01, // itest=94: vxxxxx#9 nsp=-1 mass=0 + 4.525483399593904e-01, -4.242640687119285e-01, // itest=94: vxxxxx#9 nsp=-1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=94: vxxxxx#9 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=95: sxxxxx#9 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=95: sxxxxx#9 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=95: sxxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=95: sxxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=95: sxxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=95: sxxxxx#9 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=96: sxxxxx#9 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=96: sxxxxx#9 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=96: sxxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=96: sxxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=96: sxxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=96: sxxxxx#9 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=97: oxxxxx#9 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=97: oxxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=97: oxxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=97: oxxxxx#9 nsp=-1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01, // itest=97: oxxxxx#9 nsp=-1 mass=0 + -1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=97: oxxxxx#9 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=98: oxxxxx#9 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=98: oxxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=98: oxxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=98: oxxxxx#9 nsp=-1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01, // itest=98: oxxxxx#9 nsp=-1 mass=0 + -1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=98: oxxxxx#9 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=99: oxzxxx#9 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=99: oxzxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=99: oxzxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=99: oxzxxx#9 nsp=-1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01, // itest=99: oxzxxx#9 nsp=-1 mass=0 + -1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=99: oxzxxx#9 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=100: ixxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=100: ixxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=100: ixxxxx#10 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=100: ixxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=100: ixxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=100: ixxxxx#10 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=101: ixxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=101: ixxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=101: ixxxxx#10 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=101: ixxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=101: ixxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=101: ixxxxx#10 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=102: ipzxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=102: ipzxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=102: ipzxxx#10 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=102: ipzxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=102: ipzxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=102: ipzxxx#10 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=103: vxxxxx#10 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=103: vxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=103: vxxxxx#10 nsp=-1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=103: vxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=103: vxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=103: vxxxxx#10 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=104: vxxxxx#10 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=104: vxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=104: vxxxxx#10 nsp=-1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=104: vxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=104: vxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=104: vxxxxx#10 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=105: sxxxxx#10 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=105: sxxxxx#10 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=105: sxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=105: sxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=105: sxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=105: sxxxxx#10 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=106: sxxxxx#10 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=106: sxxxxx#10 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=106: sxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=106: sxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=106: sxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=106: sxxxxx#10 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=107: oxxxxx#10 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=107: oxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=107: oxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=107: oxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=107: oxxxxx#10 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=107: oxxxxx#10 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=108: oxxxxx#10 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=108: oxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=108: oxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=108: oxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=108: oxxxxx#10 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=108: oxxxxx#10 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=109: opzxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=109: opzxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=109: opzxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=109: opzxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=109: opzxxx#10 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=109: opzxxx#10 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=110: ixxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=110: ixxxxx#11 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=110: ixxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=110: ixxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=110: ixxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=110: ixxxxx#11 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=111: ixxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=111: ixxxxx#11 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=111: ixxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=111: ixxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=111: ixxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=111: ixxxxx#11 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=112: imzxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=112: imzxxx#11 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=112: imzxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=112: imzxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=112: imzxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=112: imzxxx#11 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=113: vxxxxx#11 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=113: vxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=113: vxxxxx#11 nsp=-1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=113: vxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=113: vxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=113: vxxxxx#11 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=114: vxxxxx#11 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=114: vxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=114: vxxxxx#11 nsp=-1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=114: vxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=114: vxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=114: vxxxxx#11 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=115: sxxxxx#11 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=115: sxxxxx#11 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=115: sxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=115: sxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=115: sxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=115: sxxxxx#11 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=116: sxxxxx#11 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=116: sxxxxx#11 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=116: sxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=116: sxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=116: sxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=116: sxxxxx#11 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=117: oxxxxx#11 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=117: oxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=117: oxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=117: oxxxxx#11 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=117: oxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=117: oxxxxx#11 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=118: oxxxxx#11 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=118: oxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=118: oxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=118: oxxxxx#11 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=118: oxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=118: oxxxxx#11 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=119: omzxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=119: omzxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=119: omzxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=119: omzxxx#11 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=119: omzxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=119: omzxxx#11 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=120: ixxxxx#12 nsp=-1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=120: ixxxxx#12 nsp=-1 mass=0 + 1.341640786499874e+01, -1.788854381999831e+01, // itest=120: ixxxxx#12 nsp=-1 mass=0 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=120: ixxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=120: ixxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=120: ixxxxx#12 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=121: ixxxxx#12 nsp=-1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=121: ixxxxx#12 nsp=-1 mass=0 + 1.341640786499874e+01, -1.788854381999831e+01, // itest=121: ixxxxx#12 nsp=-1 mass=0 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=121: ixxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=121: ixxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=121: ixxxxx#12 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=122: ixzxxx#12 nsp=-1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=122: ixzxxx#12 nsp=-1 mass=0 + 1.341640786499874e+01, -1.788854381999832e+01, // itest=122: ixzxxx#12 nsp=-1 mass=0 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=122: ixzxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=122: ixzxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=122: ixzxxx#12 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=123: vxxxxx#12 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=123: vxxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=123: vxxxxx#12 nsp=-1 mass=0 + -0.000000000000000e+00, 5.656854249492381e-01, // itest=123: vxxxxx#12 nsp=-1 mass=0 + -0.000000000000000e+00, -4.242640687119285e-01, // itest=123: vxxxxx#12 nsp=-1 mass=0 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=123: vxxxxx#12 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=124: vxxxxx#12 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=124: vxxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=124: vxxxxx#12 nsp=-1 mass=0 + -0.000000000000000e+00, 5.656854249492381e-01, // itest=124: vxxxxx#12 nsp=-1 mass=0 + -0.000000000000000e+00, -4.242640687119285e-01, // itest=124: vxxxxx#12 nsp=-1 mass=0 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=124: vxxxxx#12 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=125: sxxxxx#12 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=125: sxxxxx#12 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=125: sxxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=125: sxxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=125: sxxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=125: sxxxxx#12 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=126: sxxxxx#12 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=126: sxxxxx#12 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=126: sxxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=126: sxxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=126: sxxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=126: sxxxxx#12 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=127: oxxxxx#12 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=127: oxxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=127: oxxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=127: oxxxxx#12 nsp=-1 mass=0 + 1.341640786499874e+01, 1.788854381999831e+01, // itest=127: oxxxxx#12 nsp=-1 mass=0 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=127: oxxxxx#12 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=128: oxxxxx#12 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=128: oxxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=128: oxxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=128: oxxxxx#12 nsp=-1 mass=0 + 1.341640786499874e+01, 1.788854381999831e+01, // itest=128: oxxxxx#12 nsp=-1 mass=0 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=128: oxxxxx#12 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=129: oxzxxx#12 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=129: oxzxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=129: oxzxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=129: oxzxxx#12 nsp=-1 mass=0 + 1.341640786499874e+01, 1.788854381999832e+01, // itest=129: oxzxxx#12 nsp=-1 mass=0 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=129: oxzxxx#12 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=130: ixxxxx#13 nsp=-1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=130: ixxxxx#13 nsp=-1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=130: ixxxxx#13 nsp=-1 mass=0 + -3.000000000000000e+01, 0.000000000000000e+00, // itest=130: ixxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=130: ixxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=130: ixxxxx#13 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=131: ixxxxx#13 nsp=-1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=131: ixxxxx#13 nsp=-1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=131: ixxxxx#13 nsp=-1 mass=0 + -3.000000000000000e+01, 0.000000000000000e+00, // itest=131: ixxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=131: ixxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=131: ixxxxx#13 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=132: ixzxxx#13 nsp=-1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=132: ixzxxx#13 nsp=-1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=132: ixzxxx#13 nsp=-1 mass=0 + -3.000000000000000e+01, 0.000000000000000e+00, // itest=132: ixzxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=132: ixzxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=132: ixzxxx#13 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=133: vxxxxx#13 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=133: vxxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=133: vxxxxx#13 nsp=-1 mass=0 + -3.394112549695428e-01, 5.656854249492381e-01, // itest=133: vxxxxx#13 nsp=-1 mass=0 + -4.525483399593904e-01, -4.242640687119285e-01, // itest=133: vxxxxx#13 nsp=-1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=133: vxxxxx#13 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=134: vxxxxx#13 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=134: vxxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=134: vxxxxx#13 nsp=-1 mass=0 + -3.394112549695428e-01, 5.656854249492381e-01, // itest=134: vxxxxx#13 nsp=-1 mass=0 + -4.525483399593904e-01, -4.242640687119285e-01, // itest=134: vxxxxx#13 nsp=-1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=134: vxxxxx#13 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=135: sxxxxx#13 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=135: sxxxxx#13 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=135: sxxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=135: sxxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=135: sxxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=135: sxxxxx#13 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=136: sxxxxx#13 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=136: sxxxxx#13 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=136: sxxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=136: sxxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=136: sxxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=136: sxxxxx#13 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=137: oxxxxx#13 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=137: oxxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=137: oxxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=137: oxxxxx#13 nsp=-1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00, // itest=137: oxxxxx#13 nsp=-1 mass=0 + -3.000000000000000e+01, 0.000000000000000e+00 } ); // itest=137: oxxxxx#13 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=138: oxxxxx#13 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=138: oxxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=138: oxxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=138: oxxxxx#13 nsp=-1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00, // itest=138: oxxxxx#13 nsp=-1 mass=0 + -3.000000000000000e+01, 0.000000000000000e+00 } ); // itest=138: oxxxxx#13 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=139: oxzxxx#13 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=139: oxzxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=139: oxzxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=139: oxzxxx#13 nsp=-1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00, // itest=139: oxzxxx#13 nsp=-1 mass=0 + -3.000000000000000e+01, 0.000000000000000e+00 } ); // itest=139: oxzxxx#13 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=140: ixxxxx#14 nsp=-1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=140: ixxxxx#14 nsp=-1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=140: ixxxxx#14 nsp=-1 mass=0 + -1.000000000000000e+01, 0.000000000000000e+00, // itest=140: ixxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=140: ixxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=140: ixxxxx#14 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=141: ixxxxx#14 nsp=-1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=141: ixxxxx#14 nsp=-1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=141: ixxxxx#14 nsp=-1 mass=0 + -1.000000000000000e+01, 0.000000000000000e+00, // itest=141: ixxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=141: ixxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=141: ixxxxx#14 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=142: ixzxxx#14 nsp=-1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=142: ixzxxx#14 nsp=-1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=142: ixzxxx#14 nsp=-1 mass=0 + -1.000000000000000e+01, 0.000000000000000e+00, // itest=142: ixzxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=142: ixzxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=142: ixzxxx#14 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=143: vxxxxx#14 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=143: vxxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=143: vxxxxx#14 nsp=-1 mass=0 + 3.394112549695428e-01, 5.656854249492381e-01, // itest=143: vxxxxx#14 nsp=-1 mass=0 + 4.525483399593904e-01, -4.242640687119285e-01, // itest=143: vxxxxx#14 nsp=-1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=143: vxxxxx#14 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=144: vxxxxx#14 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=144: vxxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=144: vxxxxx#14 nsp=-1 mass=0 + 3.394112549695428e-01, 5.656854249492381e-01, // itest=144: vxxxxx#14 nsp=-1 mass=0 + 4.525483399593904e-01, -4.242640687119285e-01, // itest=144: vxxxxx#14 nsp=-1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=144: vxxxxx#14 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=145: sxxxxx#14 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=145: sxxxxx#14 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=145: sxxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=145: sxxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=145: sxxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=145: sxxxxx#14 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=146: sxxxxx#14 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=146: sxxxxx#14 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=146: sxxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=146: sxxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=146: sxxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=146: sxxxxx#14 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=147: oxxxxx#14 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=147: oxxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=147: oxxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=147: oxxxxx#14 nsp=-1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01, // itest=147: oxxxxx#14 nsp=-1 mass=0 + -1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=147: oxxxxx#14 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=148: oxxxxx#14 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=148: oxxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=148: oxxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=148: oxxxxx#14 nsp=-1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01, // itest=148: oxxxxx#14 nsp=-1 mass=0 + -1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=148: oxxxxx#14 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=149: oxzxxx#14 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=149: oxzxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=149: oxzxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=149: oxzxxx#14 nsp=-1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01, // itest=149: oxzxxx#14 nsp=-1 mass=0 + -1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=149: oxzxxx#14 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=150: ixxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=150: ixxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=150: ixxxxx#15 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=150: ixxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=150: ixxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=150: ixxxxx#15 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=151: ixxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=151: ixxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=151: ixxxxx#15 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=151: ixxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=151: ixxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=151: ixxxxx#15 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=152: ipzxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=152: ipzxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=152: ipzxxx#15 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=152: ipzxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=152: ipzxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=152: ipzxxx#15 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=153: vxxxxx#15 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=153: vxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=153: vxxxxx#15 nsp=-1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=153: vxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=153: vxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=153: vxxxxx#15 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=154: vxxxxx#15 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=154: vxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=154: vxxxxx#15 nsp=-1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=154: vxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=154: vxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=154: vxxxxx#15 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=155: sxxxxx#15 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=155: sxxxxx#15 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=155: sxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=155: sxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=155: sxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=155: sxxxxx#15 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=156: sxxxxx#15 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=156: sxxxxx#15 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=156: sxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=156: sxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=156: sxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=156: sxxxxx#15 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=157: oxxxxx#15 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=157: oxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=157: oxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=157: oxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=157: oxxxxx#15 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=157: oxxxxx#15 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=158: oxxxxx#15 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=158: oxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=158: oxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=158: oxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=158: oxxxxx#15 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=158: oxxxxx#15 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=159: opzxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=159: opzxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=159: opzxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=159: opzxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=159: opzxxx#15 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=159: opzxxx#15 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=160: ixxxxx#16 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=160: ixxxxx#16 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=160: ixxxxx#16 nsp=-1 mass=500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=160: ixxxxx#16 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=160: ixxxxx#16 nsp=-1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=160: ixxxxx#16 nsp=-1 mass=500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=161: ixxxxx#16 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=161: ixxxxx#16 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=161: ixxxxx#16 nsp=-1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=161: ixxxxx#16 nsp=-1 mass=-500 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=161: ixxxxx#16 nsp=-1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=161: ixxxxx#16 nsp=-1 mass=-500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=162: vxxxxx#16 nsp=-1 mass=500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=162: vxxxxx#16 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=162: vxxxxx#16 nsp=-1 mass=500 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=162: vxxxxx#16 nsp=-1 mass=500 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=162: vxxxxx#16 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=162: vxxxxx#16 nsp=-1 mass=500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=163: vxxxxx#16 nsp=-1 mass=-500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=163: vxxxxx#16 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=163: vxxxxx#16 nsp=-1 mass=-500 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=163: vxxxxx#16 nsp=-1 mass=-500 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=163: vxxxxx#16 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=163: vxxxxx#16 nsp=-1 mass=-500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=164: sxxxxx#16 nsp=-1 mass=500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=164: sxxxxx#16 nsp=-1 mass=500 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=164: sxxxxx#16 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=164: sxxxxx#16 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=164: sxxxxx#16 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=164: sxxxxx#16 nsp=-1 mass=500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=165: sxxxxx#16 nsp=-1 mass=-500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=165: sxxxxx#16 nsp=-1 mass=-500 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=165: sxxxxx#16 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=165: sxxxxx#16 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=165: sxxxxx#16 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=165: sxxxxx#16 nsp=-1 mass=-500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=166: oxxxxx#16 nsp=-1 mass=500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=166: oxxxxx#16 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=166: oxxxxx#16 nsp=-1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=166: oxxxxx#16 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=166: oxxxxx#16 nsp=-1 mass=500 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=166: oxxxxx#16 nsp=-1 mass=500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=167: oxxxxx#16 nsp=-1 mass=-500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=167: oxxxxx#16 nsp=-1 mass=-500 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=167: oxxxxx#16 nsp=-1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=167: oxxxxx#16 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=167: oxxxxx#16 nsp=-1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=167: oxxxxx#16 nsp=-1 mass=-500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=168: ixxxxx#17 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=168: ixxxxx#17 nsp=-1 mass=400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=168: ixxxxx#17 nsp=-1 mass=400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=168: ixxxxx#17 nsp=-1 mass=400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=168: ixxxxx#17 nsp=-1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00 } ); // itest=168: ixxxxx#17 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=169: ixxxxx#17 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=169: ixxxxx#17 nsp=-1 mass=-400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=169: ixxxxx#17 nsp=-1 mass=-400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=169: ixxxxx#17 nsp=-1 mass=-400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=169: ixxxxx#17 nsp=-1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00 } ); // itest=169: ixxxxx#17 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=170: vxxxxx#17 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=170: vxxxxx#17 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=170: vxxxxx#17 nsp=-1 mass=400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=170: vxxxxx#17 nsp=-1 mass=400 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=170: vxxxxx#17 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=170: vxxxxx#17 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=171: vxxxxx#17 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=171: vxxxxx#17 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=171: vxxxxx#17 nsp=-1 mass=-400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=171: vxxxxx#17 nsp=-1 mass=-400 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=171: vxxxxx#17 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=171: vxxxxx#17 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=172: sxxxxx#17 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=172: sxxxxx#17 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=172: sxxxxx#17 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=172: sxxxxx#17 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=172: sxxxxx#17 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=172: sxxxxx#17 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=173: sxxxxx#17 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=173: sxxxxx#17 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=173: sxxxxx#17 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=173: sxxxxx#17 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=173: sxxxxx#17 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=173: sxxxxx#17 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=174: oxxxxx#17 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=174: oxxxxx#17 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=174: oxxxxx#17 nsp=-1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=174: oxxxxx#17 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=174: oxxxxx#17 nsp=-1 mass=400 + -2.828427124746190e+01, -0.000000000000000e+00 } ); // itest=174: oxxxxx#17 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=175: oxxxxx#17 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=175: oxxxxx#17 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=175: oxxxxx#17 nsp=-1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=175: oxxxxx#17 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=175: oxxxxx#17 nsp=-1 mass=-400 + -2.828427124746190e+01, -0.000000000000000e+00 } ); // itest=175: oxxxxx#17 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=176: ixxxxx#18 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=176: ixxxxx#18 nsp=-1 mass=400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=176: ixxxxx#18 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=176: ixxxxx#18 nsp=-1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=176: ixxxxx#18 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=176: ixxxxx#18 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=177: ixxxxx#18 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=177: ixxxxx#18 nsp=-1 mass=-400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=177: ixxxxx#18 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=177: ixxxxx#18 nsp=-1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=177: ixxxxx#18 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=177: ixxxxx#18 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=178: vxxxxx#18 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=178: vxxxxx#18 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=178: vxxxxx#18 nsp=-1 mass=400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=178: vxxxxx#18 nsp=-1 mass=400 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=178: vxxxxx#18 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=178: vxxxxx#18 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=179: vxxxxx#18 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=179: vxxxxx#18 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=179: vxxxxx#18 nsp=-1 mass=-400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=179: vxxxxx#18 nsp=-1 mass=-400 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=179: vxxxxx#18 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=179: vxxxxx#18 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=180: sxxxxx#18 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=180: sxxxxx#18 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=180: sxxxxx#18 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=180: sxxxxx#18 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=180: sxxxxx#18 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=180: sxxxxx#18 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=181: sxxxxx#18 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=181: sxxxxx#18 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=181: sxxxxx#18 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=181: sxxxxx#18 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=181: sxxxxx#18 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=181: sxxxxx#18 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=182: oxxxxx#18 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=182: oxxxxx#18 nsp=-1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=182: oxxxxx#18 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=182: oxxxxx#18 nsp=-1 mass=400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=182: oxxxxx#18 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=182: oxxxxx#18 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=183: oxxxxx#18 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=183: oxxxxx#18 nsp=-1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=183: oxxxxx#18 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=183: oxxxxx#18 nsp=-1 mass=-400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=183: oxxxxx#18 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=183: oxxxxx#18 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=184: ixxxxx#19 nsp=-1 mass=400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=184: ixxxxx#19 nsp=-1 mass=400 + 1.200000000000000e+01, -1.600000000000000e+01, // itest=184: ixxxxx#19 nsp=-1 mass=400 + -2.000000000000000e+01, -0.000000000000000e+00, // itest=184: ixxxxx#19 nsp=-1 mass=400 + -5.999999999999999e+00, 7.999999999999999e+00, // itest=184: ixxxxx#19 nsp=-1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=184: ixxxxx#19 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=185: ixxxxx#19 nsp=-1 mass=-400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=185: ixxxxx#19 nsp=-1 mass=-400 + 1.200000000000000e+01, -1.600000000000000e+01, // itest=185: ixxxxx#19 nsp=-1 mass=-400 + -2.000000000000000e+01, -0.000000000000000e+00, // itest=185: ixxxxx#19 nsp=-1 mass=-400 + 5.999999999999999e+00, -7.999999999999999e+00, // itest=185: ixxxxx#19 nsp=-1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00 } ); // itest=185: ixxxxx#19 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=186: vxxxxx#19 nsp=-1 mass=400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=186: vxxxxx#19 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=186: vxxxxx#19 nsp=-1 mass=400 + 0.000000000000000e+00, 5.656854249492381e-01, // itest=186: vxxxxx#19 nsp=-1 mass=400 + 0.000000000000000e+00, -4.242640687119285e-01, // itest=186: vxxxxx#19 nsp=-1 mass=400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=186: vxxxxx#19 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=187: vxxxxx#19 nsp=-1 mass=-400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=187: vxxxxx#19 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=187: vxxxxx#19 nsp=-1 mass=-400 + -0.000000000000000e+00, 5.656854249492381e-01, // itest=187: vxxxxx#19 nsp=-1 mass=-400 + -0.000000000000000e+00, -4.242640687119285e-01, // itest=187: vxxxxx#19 nsp=-1 mass=-400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=187: vxxxxx#19 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=188: sxxxxx#19 nsp=-1 mass=400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=188: sxxxxx#19 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=188: sxxxxx#19 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=188: sxxxxx#19 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=188: sxxxxx#19 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=188: sxxxxx#19 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=189: sxxxxx#19 nsp=-1 mass=-400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=189: sxxxxx#19 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=189: sxxxxx#19 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=189: sxxxxx#19 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=189: sxxxxx#19 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=189: sxxxxx#19 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=190: oxxxxx#19 nsp=-1 mass=400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=190: oxxxxx#19 nsp=-1 mass=400 + -5.999999999999999e+00, -7.999999999999999e+00, // itest=190: oxxxxx#19 nsp=-1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=190: oxxxxx#19 nsp=-1 mass=400 + 1.200000000000000e+01, 1.600000000000000e+01, // itest=190: oxxxxx#19 nsp=-1 mass=400 + -2.000000000000000e+01, -0.000000000000000e+00 } ); // itest=190: oxxxxx#19 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=191: oxxxxx#19 nsp=-1 mass=-400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=191: oxxxxx#19 nsp=-1 mass=-400 + 5.999999999999999e+00, 7.999999999999999e+00, // itest=191: oxxxxx#19 nsp=-1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00, // itest=191: oxxxxx#19 nsp=-1 mass=-400 + 1.200000000000000e+01, 1.600000000000000e+01, // itest=191: oxxxxx#19 nsp=-1 mass=-400 + -2.000000000000000e+01, -0.000000000000000e+00 } ); // itest=191: oxxxxx#19 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=192: ixxxxx#20 nsp=-1 mass=400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=192: ixxxxx#20 nsp=-1 mass=400 + -1.600000000000000e+01, 1.200000000000000e+01, // itest=192: ixxxxx#20 nsp=-1 mass=400 + -2.000000000000000e+01, -0.000000000000000e+00, // itest=192: ixxxxx#20 nsp=-1 mass=400 + 7.999999999999999e+00, -5.999999999999999e+00, // itest=192: ixxxxx#20 nsp=-1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=192: ixxxxx#20 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=193: ixxxxx#20 nsp=-1 mass=-400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=193: ixxxxx#20 nsp=-1 mass=-400 + -1.600000000000000e+01, 1.200000000000000e+01, // itest=193: ixxxxx#20 nsp=-1 mass=-400 + -2.000000000000000e+01, -0.000000000000000e+00, // itest=193: ixxxxx#20 nsp=-1 mass=-400 + -7.999999999999999e+00, 5.999999999999999e+00, // itest=193: ixxxxx#20 nsp=-1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00 } ); // itest=193: ixxxxx#20 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=194: vxxxxx#20 nsp=-1 mass=400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=194: vxxxxx#20 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=194: vxxxxx#20 nsp=-1 mass=400 + 0.000000000000000e+00, -4.242640687119285e-01, // itest=194: vxxxxx#20 nsp=-1 mass=400 + 0.000000000000000e+00, 5.656854249492381e-01, // itest=194: vxxxxx#20 nsp=-1 mass=400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=194: vxxxxx#20 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=195: vxxxxx#20 nsp=-1 mass=-400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=195: vxxxxx#20 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=195: vxxxxx#20 nsp=-1 mass=-400 + 0.000000000000000e+00, -4.242640687119285e-01, // itest=195: vxxxxx#20 nsp=-1 mass=-400 + 0.000000000000000e+00, 5.656854249492381e-01, // itest=195: vxxxxx#20 nsp=-1 mass=-400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=195: vxxxxx#20 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=196: sxxxxx#20 nsp=-1 mass=400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=196: sxxxxx#20 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=196: sxxxxx#20 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=196: sxxxxx#20 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=196: sxxxxx#20 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=196: sxxxxx#20 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=197: sxxxxx#20 nsp=-1 mass=-400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=197: sxxxxx#20 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=197: sxxxxx#20 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=197: sxxxxx#20 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=197: sxxxxx#20 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=197: sxxxxx#20 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=198: oxxxxx#20 nsp=-1 mass=400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=198: oxxxxx#20 nsp=-1 mass=400 + 7.999999999999999e+00, 5.999999999999999e+00, // itest=198: oxxxxx#20 nsp=-1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=198: oxxxxx#20 nsp=-1 mass=400 + -1.600000000000000e+01, -1.200000000000000e+01, // itest=198: oxxxxx#20 nsp=-1 mass=400 + -2.000000000000000e+01, -0.000000000000000e+00 } ); // itest=198: oxxxxx#20 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=199: oxxxxx#20 nsp=-1 mass=-400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=199: oxxxxx#20 nsp=-1 mass=-400 + -7.999999999999999e+00, -5.999999999999999e+00, // itest=199: oxxxxx#20 nsp=-1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00, // itest=199: oxxxxx#20 nsp=-1 mass=-400 + -1.600000000000000e+01, -1.200000000000000e+01, // itest=199: oxxxxx#20 nsp=-1 mass=-400 + -2.000000000000000e+01, -0.000000000000000e+00 } ); // itest=199: oxxxxx#20 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=200: ixxxxx#21 nsp=-1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=200: ixxxxx#21 nsp=-1 mass=400 + 9.863939238321439e+00, -1.052153518754287e+01, // itest=200: ixxxxx#21 nsp=-1 mass=400 + -2.433105012119288e+01, -0.000000000000000e+00, // itest=200: ixxxxx#21 nsp=-1 mass=400 + -4.931969619160719e+00, 5.260767593771432e+00, // itest=200: ixxxxx#21 nsp=-1 mass=400 + 1.216552506059644e+01, 0.000000000000000e+00 } ); // itest=200: ixxxxx#21 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=201: ixxxxx#21 nsp=-1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=201: ixxxxx#21 nsp=-1 mass=-400 + 9.863939238321439e+00, -1.052153518754287e+01, // itest=201: ixxxxx#21 nsp=-1 mass=-400 + -2.433105012119288e+01, -0.000000000000000e+00, // itest=201: ixxxxx#21 nsp=-1 mass=-400 + 4.931969619160719e+00, -5.260767593771432e+00, // itest=201: ixxxxx#21 nsp=-1 mass=-400 + -1.216552506059644e+01, -0.000000000000000e+00 } ); // itest=201: ixxxxx#21 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=202: vxxxxx#21 nsp=-1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=202: vxxxxx#21 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=202: vxxxxx#21 nsp=-1 mass=400 + -2.321373168788980e-01, 5.158607041753289e-01, // itest=202: vxxxxx#21 nsp=-1 mass=400 + -2.476131380041579e-01, -4.836194101643708e-01, // itest=202: vxxxxx#21 nsp=-1 mass=400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=202: vxxxxx#21 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=203: vxxxxx#21 nsp=-1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=203: vxxxxx#21 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=203: vxxxxx#21 nsp=-1 mass=-400 + -2.321373168788980e-01, 5.158607041753289e-01, // itest=203: vxxxxx#21 nsp=-1 mass=-400 + -2.476131380041579e-01, -4.836194101643708e-01, // itest=203: vxxxxx#21 nsp=-1 mass=-400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=203: vxxxxx#21 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=204: sxxxxx#21 nsp=-1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=204: sxxxxx#21 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=204: sxxxxx#21 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=204: sxxxxx#21 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=204: sxxxxx#21 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=204: sxxxxx#21 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=205: sxxxxx#21 nsp=-1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=205: sxxxxx#21 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=205: sxxxxx#21 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=205: sxxxxx#21 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=205: sxxxxx#21 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=205: sxxxxx#21 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=206: oxxxxx#21 nsp=-1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=206: oxxxxx#21 nsp=-1 mass=400 + -4.931969619160719e+00, -5.260767593771432e+00, // itest=206: oxxxxx#21 nsp=-1 mass=400 + 1.216552506059644e+01, 0.000000000000000e+00, // itest=206: oxxxxx#21 nsp=-1 mass=400 + 9.863939238321439e+00, 1.052153518754287e+01, // itest=206: oxxxxx#21 nsp=-1 mass=400 + -2.433105012119288e+01, -0.000000000000000e+00 } ); // itest=206: oxxxxx#21 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=207: oxxxxx#21 nsp=-1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=207: oxxxxx#21 nsp=-1 mass=-400 + 4.931969619160719e+00, 5.260767593771432e+00, // itest=207: oxxxxx#21 nsp=-1 mass=-400 + -1.216552506059644e+01, -0.000000000000000e+00, // itest=207: oxxxxx#21 nsp=-1 mass=-400 + 9.863939238321439e+00, 1.052153518754287e+01, // itest=207: oxxxxx#21 nsp=-1 mass=-400 + -2.433105012119288e+01, -0.000000000000000e+00 } ); // itest=207: oxxxxx#21 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=208: ixxxxx#22 nsp=-1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=208: ixxxxx#22 nsp=-1 mass=400 + 1.664100588675688e+01, -1.775040627920733e+01, // itest=208: ixxxxx#22 nsp=-1 mass=400 + -1.442220510185596e+01, -0.000000000000000e+00, // itest=208: ixxxxx#22 nsp=-1 mass=400 + -8.320502943378436e+00, 8.875203139603666e+00, // itest=208: ixxxxx#22 nsp=-1 mass=400 + 7.211102550927978e+00, 0.000000000000000e+00 } ); // itest=208: ixxxxx#22 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=209: ixxxxx#22 nsp=-1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=209: ixxxxx#22 nsp=-1 mass=-400 + 1.664100588675688e+01, -1.775040627920733e+01, // itest=209: ixxxxx#22 nsp=-1 mass=-400 + -1.442220510185596e+01, -0.000000000000000e+00, // itest=209: ixxxxx#22 nsp=-1 mass=-400 + 8.320502943378436e+00, -8.875203139603666e+00, // itest=209: ixxxxx#22 nsp=-1 mass=-400 + -7.211102550927978e+00, -0.000000000000000e+00 } ); // itest=209: ixxxxx#22 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=210: vxxxxx#22 nsp=-1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=210: vxxxxx#22 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=210: vxxxxx#22 nsp=-1 mass=400 + 2.321373168788980e-01, 5.158607041753289e-01, // itest=210: vxxxxx#22 nsp=-1 mass=400 + 2.476131380041579e-01, -4.836194101643708e-01, // itest=210: vxxxxx#22 nsp=-1 mass=400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=210: vxxxxx#22 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=211: vxxxxx#22 nsp=-1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=211: vxxxxx#22 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=211: vxxxxx#22 nsp=-1 mass=-400 + 2.321373168788980e-01, 5.158607041753289e-01, // itest=211: vxxxxx#22 nsp=-1 mass=-400 + 2.476131380041579e-01, -4.836194101643708e-01, // itest=211: vxxxxx#22 nsp=-1 mass=-400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=211: vxxxxx#22 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=212: sxxxxx#22 nsp=-1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=212: sxxxxx#22 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=212: sxxxxx#22 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=212: sxxxxx#22 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=212: sxxxxx#22 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=212: sxxxxx#22 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=213: sxxxxx#22 nsp=-1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=213: sxxxxx#22 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=213: sxxxxx#22 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=213: sxxxxx#22 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=213: sxxxxx#22 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=213: sxxxxx#22 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=214: oxxxxx#22 nsp=-1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=214: oxxxxx#22 nsp=-1 mass=400 + -8.320502943378436e+00, -8.875203139603666e+00, // itest=214: oxxxxx#22 nsp=-1 mass=400 + 7.211102550927978e+00, 0.000000000000000e+00, // itest=214: oxxxxx#22 nsp=-1 mass=400 + 1.664100588675688e+01, 1.775040627920733e+01, // itest=214: oxxxxx#22 nsp=-1 mass=400 + -1.442220510185596e+01, -0.000000000000000e+00 } ); // itest=214: oxxxxx#22 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=215: oxxxxx#22 nsp=-1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=215: oxxxxx#22 nsp=-1 mass=-400 + 8.320502943378436e+00, 8.875203139603666e+00, // itest=215: oxxxxx#22 nsp=-1 mass=-400 + -7.211102550927978e+00, -0.000000000000000e+00, // itest=215: oxxxxx#22 nsp=-1 mass=-400 + 1.664100588675688e+01, 1.775040627920733e+01, // itest=215: oxxxxx#22 nsp=-1 mass=-400 + -1.442220510185596e+01, -0.000000000000000e+00 } ); // itest=215: oxxxxx#22 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=216: ixxxxx#23 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=216: ixxxxx#23 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=216: ixxxxx#23 nsp=-1 mass=500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=216: ixxxxx#23 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=216: ixxxxx#23 nsp=-1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=216: ixxxxx#23 nsp=-1 mass=500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=217: ixxxxx#23 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=217: ixxxxx#23 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=217: ixxxxx#23 nsp=-1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=217: ixxxxx#23 nsp=-1 mass=-500 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=217: ixxxxx#23 nsp=-1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=217: ixxxxx#23 nsp=-1 mass=-500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=218: vxxxxx#23 nsp=-1 mass=500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=218: vxxxxx#23 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=218: vxxxxx#23 nsp=-1 mass=500 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=218: vxxxxx#23 nsp=-1 mass=500 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=218: vxxxxx#23 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=218: vxxxxx#23 nsp=-1 mass=500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=219: vxxxxx#23 nsp=-1 mass=-500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=219: vxxxxx#23 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=219: vxxxxx#23 nsp=-1 mass=-500 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=219: vxxxxx#23 nsp=-1 mass=-500 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=219: vxxxxx#23 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=219: vxxxxx#23 nsp=-1 mass=-500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=220: sxxxxx#23 nsp=-1 mass=500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=220: sxxxxx#23 nsp=-1 mass=500 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=220: sxxxxx#23 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=220: sxxxxx#23 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=220: sxxxxx#23 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=220: sxxxxx#23 nsp=-1 mass=500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=221: sxxxxx#23 nsp=-1 mass=-500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=221: sxxxxx#23 nsp=-1 mass=-500 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=221: sxxxxx#23 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=221: sxxxxx#23 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=221: sxxxxx#23 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=221: sxxxxx#23 nsp=-1 mass=-500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=222: oxxxxx#23 nsp=-1 mass=500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=222: oxxxxx#23 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=222: oxxxxx#23 nsp=-1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=222: oxxxxx#23 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=222: oxxxxx#23 nsp=-1 mass=500 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=222: oxxxxx#23 nsp=-1 mass=500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=223: oxxxxx#23 nsp=-1 mass=-500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=223: oxxxxx#23 nsp=-1 mass=-500 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=223: oxxxxx#23 nsp=-1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=223: oxxxxx#23 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=223: oxxxxx#23 nsp=-1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=223: oxxxxx#23 nsp=-1 mass=-500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=224: ixxxxx#24 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=224: ixxxxx#24 nsp=-1 mass=400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=224: ixxxxx#24 nsp=-1 mass=400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=224: ixxxxx#24 nsp=-1 mass=400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=224: ixxxxx#24 nsp=-1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00 } ); // itest=224: ixxxxx#24 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=225: ixxxxx#24 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=225: ixxxxx#24 nsp=-1 mass=-400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=225: ixxxxx#24 nsp=-1 mass=-400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=225: ixxxxx#24 nsp=-1 mass=-400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=225: ixxxxx#24 nsp=-1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00 } ); // itest=225: ixxxxx#24 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=226: vxxxxx#24 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=226: vxxxxx#24 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=226: vxxxxx#24 nsp=-1 mass=400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=226: vxxxxx#24 nsp=-1 mass=400 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=226: vxxxxx#24 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=226: vxxxxx#24 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=227: vxxxxx#24 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=227: vxxxxx#24 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=227: vxxxxx#24 nsp=-1 mass=-400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=227: vxxxxx#24 nsp=-1 mass=-400 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=227: vxxxxx#24 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=227: vxxxxx#24 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=228: sxxxxx#24 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=228: sxxxxx#24 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=228: sxxxxx#24 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=228: sxxxxx#24 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=228: sxxxxx#24 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=228: sxxxxx#24 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=229: sxxxxx#24 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=229: sxxxxx#24 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=229: sxxxxx#24 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=229: sxxxxx#24 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=229: sxxxxx#24 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=229: sxxxxx#24 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=230: oxxxxx#24 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=230: oxxxxx#24 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=230: oxxxxx#24 nsp=-1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=230: oxxxxx#24 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=230: oxxxxx#24 nsp=-1 mass=400 + -2.828427124746190e+01, -0.000000000000000e+00 } ); // itest=230: oxxxxx#24 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=231: oxxxxx#24 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=231: oxxxxx#24 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=231: oxxxxx#24 nsp=-1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=231: oxxxxx#24 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=231: oxxxxx#24 nsp=-1 mass=-400 + -2.828427124746190e+01, -0.000000000000000e+00 } ); // itest=231: oxxxxx#24 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=232: ixxxxx#25 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=232: ixxxxx#25 nsp=-1 mass=400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=232: ixxxxx#25 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=232: ixxxxx#25 nsp=-1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=232: ixxxxx#25 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=232: ixxxxx#25 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=233: ixxxxx#25 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=233: ixxxxx#25 nsp=-1 mass=-400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=233: ixxxxx#25 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=233: ixxxxx#25 nsp=-1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=233: ixxxxx#25 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=233: ixxxxx#25 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=234: vxxxxx#25 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=234: vxxxxx#25 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=234: vxxxxx#25 nsp=-1 mass=400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=234: vxxxxx#25 nsp=-1 mass=400 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=234: vxxxxx#25 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=234: vxxxxx#25 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=235: vxxxxx#25 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=235: vxxxxx#25 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=235: vxxxxx#25 nsp=-1 mass=-400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=235: vxxxxx#25 nsp=-1 mass=-400 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=235: vxxxxx#25 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=235: vxxxxx#25 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=236: sxxxxx#25 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=236: sxxxxx#25 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=236: sxxxxx#25 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=236: sxxxxx#25 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=236: sxxxxx#25 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=236: sxxxxx#25 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=237: sxxxxx#25 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=237: sxxxxx#25 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=237: sxxxxx#25 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=237: sxxxxx#25 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=237: sxxxxx#25 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=237: sxxxxx#25 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=238: oxxxxx#25 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=238: oxxxxx#25 nsp=-1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=238: oxxxxx#25 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=238: oxxxxx#25 nsp=-1 mass=400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=238: oxxxxx#25 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=238: oxxxxx#25 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=239: oxxxxx#25 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=239: oxxxxx#25 nsp=-1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=239: oxxxxx#25 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=239: oxxxxx#25 nsp=-1 mass=-400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=239: oxxxxx#25 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=239: oxxxxx#25 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=240: ixxxxx#26 nsp=-1 mass=400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=240: ixxxxx#26 nsp=-1 mass=400 + 1.200000000000000e+01, -1.600000000000000e+01, // itest=240: ixxxxx#26 nsp=-1 mass=400 + -2.000000000000000e+01, -0.000000000000000e+00, // itest=240: ixxxxx#26 nsp=-1 mass=400 + -5.999999999999999e+00, 7.999999999999999e+00, // itest=240: ixxxxx#26 nsp=-1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=240: ixxxxx#26 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=241: ixxxxx#26 nsp=-1 mass=-400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=241: ixxxxx#26 nsp=-1 mass=-400 + 1.200000000000000e+01, -1.600000000000000e+01, // itest=241: ixxxxx#26 nsp=-1 mass=-400 + -2.000000000000000e+01, -0.000000000000000e+00, // itest=241: ixxxxx#26 nsp=-1 mass=-400 + 5.999999999999999e+00, -7.999999999999999e+00, // itest=241: ixxxxx#26 nsp=-1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00 } ); // itest=241: ixxxxx#26 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=242: vxxxxx#26 nsp=-1 mass=400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=242: vxxxxx#26 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=242: vxxxxx#26 nsp=-1 mass=400 + 0.000000000000000e+00, 5.656854249492381e-01, // itest=242: vxxxxx#26 nsp=-1 mass=400 + 0.000000000000000e+00, -4.242640687119285e-01, // itest=242: vxxxxx#26 nsp=-1 mass=400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=242: vxxxxx#26 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=243: vxxxxx#26 nsp=-1 mass=-400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=243: vxxxxx#26 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=243: vxxxxx#26 nsp=-1 mass=-400 + -0.000000000000000e+00, 5.656854249492381e-01, // itest=243: vxxxxx#26 nsp=-1 mass=-400 + -0.000000000000000e+00, -4.242640687119285e-01, // itest=243: vxxxxx#26 nsp=-1 mass=-400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=243: vxxxxx#26 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=244: sxxxxx#26 nsp=-1 mass=400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=244: sxxxxx#26 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=244: sxxxxx#26 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=244: sxxxxx#26 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=244: sxxxxx#26 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=244: sxxxxx#26 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=245: sxxxxx#26 nsp=-1 mass=-400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=245: sxxxxx#26 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=245: sxxxxx#26 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=245: sxxxxx#26 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=245: sxxxxx#26 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=245: sxxxxx#26 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=246: oxxxxx#26 nsp=-1 mass=400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=246: oxxxxx#26 nsp=-1 mass=400 + -5.999999999999999e+00, -7.999999999999999e+00, // itest=246: oxxxxx#26 nsp=-1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=246: oxxxxx#26 nsp=-1 mass=400 + 1.200000000000000e+01, 1.600000000000000e+01, // itest=246: oxxxxx#26 nsp=-1 mass=400 + -2.000000000000000e+01, -0.000000000000000e+00 } ); // itest=246: oxxxxx#26 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=247: oxxxxx#26 nsp=-1 mass=-400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=247: oxxxxx#26 nsp=-1 mass=-400 + 5.999999999999999e+00, 7.999999999999999e+00, // itest=247: oxxxxx#26 nsp=-1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00, // itest=247: oxxxxx#26 nsp=-1 mass=-400 + 1.200000000000000e+01, 1.600000000000000e+01, // itest=247: oxxxxx#26 nsp=-1 mass=-400 + -2.000000000000000e+01, -0.000000000000000e+00 } ); // itest=247: oxxxxx#26 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=248: ixxxxx#27 nsp=-1 mass=400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=248: ixxxxx#27 nsp=-1 mass=400 + -1.600000000000000e+01, 1.200000000000000e+01, // itest=248: ixxxxx#27 nsp=-1 mass=400 + -2.000000000000000e+01, -0.000000000000000e+00, // itest=248: ixxxxx#27 nsp=-1 mass=400 + 7.999999999999999e+00, -5.999999999999999e+00, // itest=248: ixxxxx#27 nsp=-1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=248: ixxxxx#27 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=249: ixxxxx#27 nsp=-1 mass=-400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=249: ixxxxx#27 nsp=-1 mass=-400 + -1.600000000000000e+01, 1.200000000000000e+01, // itest=249: ixxxxx#27 nsp=-1 mass=-400 + -2.000000000000000e+01, -0.000000000000000e+00, // itest=249: ixxxxx#27 nsp=-1 mass=-400 + -7.999999999999999e+00, 5.999999999999999e+00, // itest=249: ixxxxx#27 nsp=-1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00 } ); // itest=249: ixxxxx#27 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=250: vxxxxx#27 nsp=-1 mass=400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=250: vxxxxx#27 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=250: vxxxxx#27 nsp=-1 mass=400 + 0.000000000000000e+00, -4.242640687119285e-01, // itest=250: vxxxxx#27 nsp=-1 mass=400 + 0.000000000000000e+00, 5.656854249492381e-01, // itest=250: vxxxxx#27 nsp=-1 mass=400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=250: vxxxxx#27 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=251: vxxxxx#27 nsp=-1 mass=-400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=251: vxxxxx#27 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=251: vxxxxx#27 nsp=-1 mass=-400 + 0.000000000000000e+00, -4.242640687119285e-01, // itest=251: vxxxxx#27 nsp=-1 mass=-400 + 0.000000000000000e+00, 5.656854249492381e-01, // itest=251: vxxxxx#27 nsp=-1 mass=-400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=251: vxxxxx#27 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=252: sxxxxx#27 nsp=-1 mass=400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=252: sxxxxx#27 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=252: sxxxxx#27 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=252: sxxxxx#27 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=252: sxxxxx#27 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=252: sxxxxx#27 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=253: sxxxxx#27 nsp=-1 mass=-400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=253: sxxxxx#27 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=253: sxxxxx#27 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=253: sxxxxx#27 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=253: sxxxxx#27 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=253: sxxxxx#27 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=254: oxxxxx#27 nsp=-1 mass=400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=254: oxxxxx#27 nsp=-1 mass=400 + 7.999999999999999e+00, 5.999999999999999e+00, // itest=254: oxxxxx#27 nsp=-1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=254: oxxxxx#27 nsp=-1 mass=400 + -1.600000000000000e+01, -1.200000000000000e+01, // itest=254: oxxxxx#27 nsp=-1 mass=400 + -2.000000000000000e+01, -0.000000000000000e+00 } ); // itest=254: oxxxxx#27 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=255: oxxxxx#27 nsp=-1 mass=-400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=255: oxxxxx#27 nsp=-1 mass=-400 + -7.999999999999999e+00, -5.999999999999999e+00, // itest=255: oxxxxx#27 nsp=-1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00, // itest=255: oxxxxx#27 nsp=-1 mass=-400 + -1.600000000000000e+01, -1.200000000000000e+01, // itest=255: oxxxxx#27 nsp=-1 mass=-400 + -2.000000000000000e+01, -0.000000000000000e+00 } ); // itest=255: oxxxxx#27 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=256: ixxxxx#28 nsp=-1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=256: ixxxxx#28 nsp=-1 mass=400 + 9.863939238321439e+00, -1.052153518754287e+01, // itest=256: ixxxxx#28 nsp=-1 mass=400 + -2.433105012119288e+01, -0.000000000000000e+00, // itest=256: ixxxxx#28 nsp=-1 mass=400 + -4.931969619160719e+00, 5.260767593771432e+00, // itest=256: ixxxxx#28 nsp=-1 mass=400 + 1.216552506059644e+01, 0.000000000000000e+00 } ); // itest=256: ixxxxx#28 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=257: ixxxxx#28 nsp=-1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=257: ixxxxx#28 nsp=-1 mass=-400 + 9.863939238321439e+00, -1.052153518754287e+01, // itest=257: ixxxxx#28 nsp=-1 mass=-400 + -2.433105012119288e+01, -0.000000000000000e+00, // itest=257: ixxxxx#28 nsp=-1 mass=-400 + 4.931969619160719e+00, -5.260767593771432e+00, // itest=257: ixxxxx#28 nsp=-1 mass=-400 + -1.216552506059644e+01, -0.000000000000000e+00 } ); // itest=257: ixxxxx#28 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=258: vxxxxx#28 nsp=-1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=258: vxxxxx#28 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=258: vxxxxx#28 nsp=-1 mass=400 + -2.321373168788980e-01, 5.158607041753289e-01, // itest=258: vxxxxx#28 nsp=-1 mass=400 + -2.476131380041579e-01, -4.836194101643708e-01, // itest=258: vxxxxx#28 nsp=-1 mass=400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=258: vxxxxx#28 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=259: vxxxxx#28 nsp=-1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=259: vxxxxx#28 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=259: vxxxxx#28 nsp=-1 mass=-400 + -2.321373168788980e-01, 5.158607041753289e-01, // itest=259: vxxxxx#28 nsp=-1 mass=-400 + -2.476131380041579e-01, -4.836194101643708e-01, // itest=259: vxxxxx#28 nsp=-1 mass=-400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=259: vxxxxx#28 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=260: sxxxxx#28 nsp=-1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=260: sxxxxx#28 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=260: sxxxxx#28 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=260: sxxxxx#28 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=260: sxxxxx#28 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=260: sxxxxx#28 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=261: sxxxxx#28 nsp=-1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=261: sxxxxx#28 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=261: sxxxxx#28 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=261: sxxxxx#28 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=261: sxxxxx#28 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=261: sxxxxx#28 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=262: oxxxxx#28 nsp=-1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=262: oxxxxx#28 nsp=-1 mass=400 + -4.931969619160719e+00, -5.260767593771432e+00, // itest=262: oxxxxx#28 nsp=-1 mass=400 + 1.216552506059644e+01, 0.000000000000000e+00, // itest=262: oxxxxx#28 nsp=-1 mass=400 + 9.863939238321439e+00, 1.052153518754287e+01, // itest=262: oxxxxx#28 nsp=-1 mass=400 + -2.433105012119288e+01, -0.000000000000000e+00 } ); // itest=262: oxxxxx#28 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=263: oxxxxx#28 nsp=-1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=263: oxxxxx#28 nsp=-1 mass=-400 + 4.931969619160719e+00, 5.260767593771432e+00, // itest=263: oxxxxx#28 nsp=-1 mass=-400 + -1.216552506059644e+01, -0.000000000000000e+00, // itest=263: oxxxxx#28 nsp=-1 mass=-400 + 9.863939238321439e+00, 1.052153518754287e+01, // itest=263: oxxxxx#28 nsp=-1 mass=-400 + -2.433105012119288e+01, -0.000000000000000e+00 } ); // itest=263: oxxxxx#28 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=264: ixxxxx#29 nsp=-1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=264: ixxxxx#29 nsp=-1 mass=400 + 1.664100588675688e+01, -1.775040627920733e+01, // itest=264: ixxxxx#29 nsp=-1 mass=400 + -1.442220510185596e+01, -0.000000000000000e+00, // itest=264: ixxxxx#29 nsp=-1 mass=400 + -8.320502943378436e+00, 8.875203139603666e+00, // itest=264: ixxxxx#29 nsp=-1 mass=400 + 7.211102550927978e+00, 0.000000000000000e+00 } ); // itest=264: ixxxxx#29 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=265: ixxxxx#29 nsp=-1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=265: ixxxxx#29 nsp=-1 mass=-400 + 1.664100588675688e+01, -1.775040627920733e+01, // itest=265: ixxxxx#29 nsp=-1 mass=-400 + -1.442220510185596e+01, -0.000000000000000e+00, // itest=265: ixxxxx#29 nsp=-1 mass=-400 + 8.320502943378436e+00, -8.875203139603666e+00, // itest=265: ixxxxx#29 nsp=-1 mass=-400 + -7.211102550927978e+00, -0.000000000000000e+00 } ); // itest=265: ixxxxx#29 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=266: vxxxxx#29 nsp=-1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=266: vxxxxx#29 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=266: vxxxxx#29 nsp=-1 mass=400 + 2.321373168788980e-01, 5.158607041753289e-01, // itest=266: vxxxxx#29 nsp=-1 mass=400 + 2.476131380041579e-01, -4.836194101643708e-01, // itest=266: vxxxxx#29 nsp=-1 mass=400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=266: vxxxxx#29 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=267: vxxxxx#29 nsp=-1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=267: vxxxxx#29 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=267: vxxxxx#29 nsp=-1 mass=-400 + 2.321373168788980e-01, 5.158607041753289e-01, // itest=267: vxxxxx#29 nsp=-1 mass=-400 + 2.476131380041579e-01, -4.836194101643708e-01, // itest=267: vxxxxx#29 nsp=-1 mass=-400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=267: vxxxxx#29 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=268: sxxxxx#29 nsp=-1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=268: sxxxxx#29 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=268: sxxxxx#29 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=268: sxxxxx#29 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=268: sxxxxx#29 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=268: sxxxxx#29 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=269: sxxxxx#29 nsp=-1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=269: sxxxxx#29 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=269: sxxxxx#29 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=269: sxxxxx#29 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=269: sxxxxx#29 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=269: sxxxxx#29 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=270: oxxxxx#29 nsp=-1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=270: oxxxxx#29 nsp=-1 mass=400 + -8.320502943378436e+00, -8.875203139603666e+00, // itest=270: oxxxxx#29 nsp=-1 mass=400 + 7.211102550927978e+00, 0.000000000000000e+00, // itest=270: oxxxxx#29 nsp=-1 mass=400 + 1.664100588675688e+01, 1.775040627920733e+01, // itest=270: oxxxxx#29 nsp=-1 mass=400 + -1.442220510185596e+01, -0.000000000000000e+00 } ); // itest=270: oxxxxx#29 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=271: oxxxxx#29 nsp=-1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=271: oxxxxx#29 nsp=-1 mass=-400 + 8.320502943378436e+00, 8.875203139603666e+00, // itest=271: oxxxxx#29 nsp=-1 mass=-400 + -7.211102550927978e+00, -0.000000000000000e+00, // itest=271: oxxxxx#29 nsp=-1 mass=-400 + 1.664100588675688e+01, 1.775040627920733e+01, // itest=271: oxxxxx#29 nsp=-1 mass=-400 + -1.442220510185596e+01, -0.000000000000000e+00 } ); // itest=271: oxxxxx#29 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=272: ixxxxx#30 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=272: ixxxxx#30 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=272: ixxxxx#30 nsp=-1 mass=500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=272: ixxxxx#30 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=272: ixxxxx#30 nsp=-1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=272: ixxxxx#30 nsp=-1 mass=500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=273: ixxxxx#30 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=273: ixxxxx#30 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=273: ixxxxx#30 nsp=-1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=273: ixxxxx#30 nsp=-1 mass=-500 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=273: ixxxxx#30 nsp=-1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=273: ixxxxx#30 nsp=-1 mass=-500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=274: vxxxxx#30 nsp=-1 mass=500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=274: vxxxxx#30 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=274: vxxxxx#30 nsp=-1 mass=500 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=274: vxxxxx#30 nsp=-1 mass=500 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=274: vxxxxx#30 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=274: vxxxxx#30 nsp=-1 mass=500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=275: vxxxxx#30 nsp=-1 mass=-500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=275: vxxxxx#30 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=275: vxxxxx#30 nsp=-1 mass=-500 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=275: vxxxxx#30 nsp=-1 mass=-500 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=275: vxxxxx#30 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=275: vxxxxx#30 nsp=-1 mass=-500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=276: sxxxxx#30 nsp=-1 mass=500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=276: sxxxxx#30 nsp=-1 mass=500 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=276: sxxxxx#30 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=276: sxxxxx#30 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=276: sxxxxx#30 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=276: sxxxxx#30 nsp=-1 mass=500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=277: sxxxxx#30 nsp=-1 mass=-500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=277: sxxxxx#30 nsp=-1 mass=-500 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=277: sxxxxx#30 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=277: sxxxxx#30 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=277: sxxxxx#30 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=277: sxxxxx#30 nsp=-1 mass=-500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=278: oxxxxx#30 nsp=-1 mass=500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=278: oxxxxx#30 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=278: oxxxxx#30 nsp=-1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=278: oxxxxx#30 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=278: oxxxxx#30 nsp=-1 mass=500 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=278: oxxxxx#30 nsp=-1 mass=500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=279: oxxxxx#30 nsp=-1 mass=-500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=279: oxxxxx#30 nsp=-1 mass=-500 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=279: oxxxxx#30 nsp=-1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=279: oxxxxx#30 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=279: oxxxxx#30 nsp=-1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=279: oxxxxx#30 nsp=-1 mass=-500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=280: ixxxxx#31 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=280: ixxxxx#31 nsp=-1 mass=400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=280: ixxxxx#31 nsp=-1 mass=400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=280: ixxxxx#31 nsp=-1 mass=400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=280: ixxxxx#31 nsp=-1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00 } ); // itest=280: ixxxxx#31 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=281: ixxxxx#31 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=281: ixxxxx#31 nsp=-1 mass=-400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=281: ixxxxx#31 nsp=-1 mass=-400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=281: ixxxxx#31 nsp=-1 mass=-400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=281: ixxxxx#31 nsp=-1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00 } ); // itest=281: ixxxxx#31 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=282: vxxxxx#31 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=282: vxxxxx#31 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=282: vxxxxx#31 nsp=-1 mass=400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=282: vxxxxx#31 nsp=-1 mass=400 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=282: vxxxxx#31 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=282: vxxxxx#31 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=283: vxxxxx#31 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=283: vxxxxx#31 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=283: vxxxxx#31 nsp=-1 mass=-400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=283: vxxxxx#31 nsp=-1 mass=-400 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=283: vxxxxx#31 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=283: vxxxxx#31 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=284: sxxxxx#31 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=284: sxxxxx#31 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=284: sxxxxx#31 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=284: sxxxxx#31 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=284: sxxxxx#31 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=284: sxxxxx#31 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=285: sxxxxx#31 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=285: sxxxxx#31 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=285: sxxxxx#31 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=285: sxxxxx#31 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=285: sxxxxx#31 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=285: sxxxxx#31 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=286: oxxxxx#31 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=286: oxxxxx#31 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=286: oxxxxx#31 nsp=-1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=286: oxxxxx#31 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=286: oxxxxx#31 nsp=-1 mass=400 + -2.828427124746190e+01, -0.000000000000000e+00 } ); // itest=286: oxxxxx#31 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=287: oxxxxx#31 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=287: oxxxxx#31 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=287: oxxxxx#31 nsp=-1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=287: oxxxxx#31 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=287: oxxxxx#31 nsp=-1 mass=-400 + -2.828427124746190e+01, -0.000000000000000e+00 } ); // itest=287: oxxxxx#31 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=288: ixxxxx#0 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=288: ixxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=288: ixxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=288: ixxxxx#0 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=288: ixxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=288: ixxxxx#0 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=289: ixxxxx#0 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=289: ixxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=289: ixxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=289: ixxxxx#0 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=289: ixxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=289: ixxxxx#0 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=290: ipzxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=290: ipzxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=290: ipzxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=290: ipzxxx#0 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=290: ipzxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=290: ipzxxx#0 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=291: vxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=291: vxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=291: vxxxxx#0 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=291: vxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=291: vxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=291: vxxxxx#0 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=292: vxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=292: vxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=292: vxxxxx#0 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=292: vxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=292: vxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=292: vxxxxx#0 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=293: sxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=293: sxxxxx#0 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=293: sxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=293: sxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=293: sxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=293: sxxxxx#0 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=294: sxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=294: sxxxxx#0 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=294: sxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=294: sxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=294: sxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=294: sxxxxx#0 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=295: oxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=295: oxxxxx#0 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=295: oxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=295: oxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=295: oxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=295: oxxxxx#0 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=296: oxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=296: oxxxxx#0 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=296: oxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=296: oxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=296: oxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=296: oxxxxx#0 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=297: opzxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=297: opzxxx#0 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=297: opzxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=297: opzxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=297: opzxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=297: opzxxx#0 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=298: ixxxxx#1 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=298: ixxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=298: ixxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=298: ixxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=298: ixxxxx#1 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=298: ixxxxx#1 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=299: ixxxxx#1 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=299: ixxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=299: ixxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=299: ixxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=299: ixxxxx#1 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=299: ixxxxx#1 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=300: imzxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=300: imzxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=300: imzxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=300: imzxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=300: imzxxx#1 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=300: imzxxx#1 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=301: vxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=301: vxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=301: vxxxxx#1 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=301: vxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=301: vxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=301: vxxxxx#1 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=302: vxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=302: vxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=302: vxxxxx#1 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=302: vxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=302: vxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=302: vxxxxx#1 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=303: sxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=303: sxxxxx#1 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=303: sxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=303: sxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=303: sxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=303: sxxxxx#1 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=304: sxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=304: sxxxxx#1 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=304: sxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=304: sxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=304: sxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=304: sxxxxx#1 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=305: oxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=305: oxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=305: oxxxxx#1 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=305: oxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=305: oxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=305: oxxxxx#1 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=306: oxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=306: oxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=306: oxxxxx#1 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=306: oxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=306: oxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=306: oxxxxx#1 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=307: omzxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=307: omzxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=307: omzxxx#1 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=307: omzxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=307: omzxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=307: omzxxx#1 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=308: ixxxxx#2 nsp=1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=308: ixxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=308: ixxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=308: ixxxxx#2 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=308: ixxxxx#2 nsp=1 mass=0 + 1.341640786499874e+01, 1.788854381999831e+01 } ); // itest=308: ixxxxx#2 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=309: ixxxxx#2 nsp=1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=309: ixxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=309: ixxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=309: ixxxxx#2 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=309: ixxxxx#2 nsp=1 mass=0 + 1.341640786499874e+01, 1.788854381999831e+01 } ); // itest=309: ixxxxx#2 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=310: ixzxxx#2 nsp=1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=310: ixzxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=310: ixzxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=310: ixzxxx#2 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=310: ixzxxx#2 nsp=1 mass=0 + 1.341640786499874e+01, 1.788854381999832e+01 } ); // itest=310: ixzxxx#2 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=311: vxxxxx#2 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=311: vxxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=311: vxxxxx#2 nsp=1 mass=0 + -0.000000000000000e+00, -5.656854249492381e-01, // itest=311: vxxxxx#2 nsp=1 mass=0 + -0.000000000000000e+00, 4.242640687119285e-01, // itest=311: vxxxxx#2 nsp=1 mass=0 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=311: vxxxxx#2 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=312: vxxxxx#2 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=312: vxxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=312: vxxxxx#2 nsp=1 mass=0 + -0.000000000000000e+00, -5.656854249492381e-01, // itest=312: vxxxxx#2 nsp=1 mass=0 + -0.000000000000000e+00, 4.242640687119285e-01, // itest=312: vxxxxx#2 nsp=1 mass=0 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=312: vxxxxx#2 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=313: sxxxxx#2 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=313: sxxxxx#2 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=313: sxxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=313: sxxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=313: sxxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=313: sxxxxx#2 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=314: sxxxxx#2 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=314: sxxxxx#2 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=314: sxxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=314: sxxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=314: sxxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=314: sxxxxx#2 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=315: oxxxxx#2 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=315: oxxxxx#2 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=315: oxxxxx#2 nsp=1 mass=0 + 1.341640786499874e+01, -1.788854381999831e+01, // itest=315: oxxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=315: oxxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=315: oxxxxx#2 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=316: oxxxxx#2 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=316: oxxxxx#2 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=316: oxxxxx#2 nsp=1 mass=0 + 1.341640786499874e+01, -1.788854381999831e+01, // itest=316: oxxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=316: oxxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=316: oxxxxx#2 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=317: oxzxxx#2 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=317: oxzxxx#2 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=317: oxzxxx#2 nsp=1 mass=0 + 1.341640786499874e+01, -1.788854381999832e+01, // itest=317: oxzxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=317: oxzxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=317: oxzxxx#2 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=318: ixxxxx#3 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=318: ixxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=318: ixxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=318: ixxxxx#3 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=318: ixxxxx#3 nsp=1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=318: ixxxxx#3 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=319: ixxxxx#3 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=319: ixxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=319: ixxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=319: ixxxxx#3 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=319: ixxxxx#3 nsp=1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=319: ixxxxx#3 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=320: ixzxxx#3 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=320: ixzxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=320: ixzxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=320: ixzxxx#3 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=320: ixzxxx#3 nsp=1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=320: ixzxxx#3 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=321: vxxxxx#3 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=321: vxxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=321: vxxxxx#3 nsp=1 mass=0 + -3.394112549695428e-01, -5.656854249492381e-01, // itest=321: vxxxxx#3 nsp=1 mass=0 + -4.525483399593904e-01, 4.242640687119285e-01, // itest=321: vxxxxx#3 nsp=1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=321: vxxxxx#3 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=322: vxxxxx#3 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=322: vxxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=322: vxxxxx#3 nsp=1 mass=0 + -3.394112549695428e-01, -5.656854249492381e-01, // itest=322: vxxxxx#3 nsp=1 mass=0 + -4.525483399593904e-01, 4.242640687119285e-01, // itest=322: vxxxxx#3 nsp=1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=322: vxxxxx#3 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=323: sxxxxx#3 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=323: sxxxxx#3 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=323: sxxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=323: sxxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=323: sxxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=323: sxxxxx#3 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=324: sxxxxx#3 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=324: sxxxxx#3 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=324: sxxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=324: sxxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=324: sxxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=324: sxxxxx#3 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=325: oxxxxx#3 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=325: oxxxxx#3 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=325: oxxxxx#3 nsp=1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=325: oxxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=325: oxxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=325: oxxxxx#3 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=326: oxxxxx#3 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=326: oxxxxx#3 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=326: oxxxxx#3 nsp=1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=326: oxxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=326: oxxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=326: oxxxxx#3 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=327: oxzxxx#3 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=327: oxzxxx#3 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=327: oxzxxx#3 nsp=1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=327: oxzxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=327: oxzxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=327: oxzxxx#3 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=328: ixxxxx#4 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=328: ixxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=328: ixxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=328: ixxxxx#4 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=328: ixxxxx#4 nsp=1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01 } ); // itest=328: ixxxxx#4 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=329: ixxxxx#4 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=329: ixxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=329: ixxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=329: ixxxxx#4 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=329: ixxxxx#4 nsp=1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01 } ); // itest=329: ixxxxx#4 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=330: ixzxxx#4 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=330: ixzxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=330: ixzxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=330: ixzxxx#4 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=330: ixzxxx#4 nsp=1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01 } ); // itest=330: ixzxxx#4 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=331: vxxxxx#4 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=331: vxxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=331: vxxxxx#4 nsp=1 mass=0 + 3.394112549695428e-01, -5.656854249492381e-01, // itest=331: vxxxxx#4 nsp=1 mass=0 + 4.525483399593904e-01, 4.242640687119285e-01, // itest=331: vxxxxx#4 nsp=1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=331: vxxxxx#4 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=332: vxxxxx#4 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=332: vxxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=332: vxxxxx#4 nsp=1 mass=0 + 3.394112549695428e-01, -5.656854249492381e-01, // itest=332: vxxxxx#4 nsp=1 mass=0 + 4.525483399593904e-01, 4.242640687119285e-01, // itest=332: vxxxxx#4 nsp=1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=332: vxxxxx#4 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=333: sxxxxx#4 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=333: sxxxxx#4 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=333: sxxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=333: sxxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=333: sxxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=333: sxxxxx#4 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=334: sxxxxx#4 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=334: sxxxxx#4 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=334: sxxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=334: sxxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=334: sxxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=334: sxxxxx#4 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=335: oxxxxx#4 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=335: oxxxxx#4 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=335: oxxxxx#4 nsp=1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=335: oxxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=335: oxxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=335: oxxxxx#4 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=336: oxxxxx#4 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=336: oxxxxx#4 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=336: oxxxxx#4 nsp=1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=336: oxxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=336: oxxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=336: oxxxxx#4 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=337: oxzxxx#4 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=337: oxzxxx#4 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=337: oxzxxx#4 nsp=1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=337: oxzxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=337: oxzxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=337: oxzxxx#4 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=338: ixxxxx#5 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=338: ixxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=338: ixxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=338: ixxxxx#5 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=338: ixxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=338: ixxxxx#5 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=339: ixxxxx#5 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=339: ixxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=339: ixxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=339: ixxxxx#5 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=339: ixxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=339: ixxxxx#5 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=340: ipzxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=340: ipzxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=340: ipzxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=340: ipzxxx#5 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=340: ipzxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=340: ipzxxx#5 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=341: vxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=341: vxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=341: vxxxxx#5 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=341: vxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=341: vxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=341: vxxxxx#5 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=342: vxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=342: vxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=342: vxxxxx#5 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=342: vxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=342: vxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=342: vxxxxx#5 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=343: sxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=343: sxxxxx#5 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=343: sxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=343: sxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=343: sxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=343: sxxxxx#5 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=344: sxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=344: sxxxxx#5 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=344: sxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=344: sxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=344: sxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=344: sxxxxx#5 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=345: oxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=345: oxxxxx#5 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=345: oxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=345: oxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=345: oxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=345: oxxxxx#5 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=346: oxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=346: oxxxxx#5 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=346: oxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=346: oxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=346: oxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=346: oxxxxx#5 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=347: opzxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=347: opzxxx#5 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=347: opzxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=347: opzxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=347: opzxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=347: opzxxx#5 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=348: ixxxxx#6 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=348: ixxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=348: ixxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=348: ixxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=348: ixxxxx#6 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=348: ixxxxx#6 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=349: ixxxxx#6 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=349: ixxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=349: ixxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=349: ixxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=349: ixxxxx#6 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=349: ixxxxx#6 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=350: imzxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=350: imzxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=350: imzxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=350: imzxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=350: imzxxx#6 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=350: imzxxx#6 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=351: vxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=351: vxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=351: vxxxxx#6 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=351: vxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=351: vxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=351: vxxxxx#6 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=352: vxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=352: vxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=352: vxxxxx#6 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=352: vxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=352: vxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=352: vxxxxx#6 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=353: sxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=353: sxxxxx#6 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=353: sxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=353: sxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=353: sxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=353: sxxxxx#6 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=354: sxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=354: sxxxxx#6 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=354: sxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=354: sxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=354: sxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=354: sxxxxx#6 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=355: oxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=355: oxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=355: oxxxxx#6 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=355: oxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=355: oxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=355: oxxxxx#6 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=356: oxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=356: oxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=356: oxxxxx#6 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=356: oxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=356: oxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=356: oxxxxx#6 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=357: omzxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=357: omzxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=357: omzxxx#6 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=357: omzxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=357: omzxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=357: omzxxx#6 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=358: ixxxxx#7 nsp=1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=358: ixxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=358: ixxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=358: ixxxxx#7 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=358: ixxxxx#7 nsp=1 mass=0 + 1.341640786499874e+01, 1.788854381999831e+01 } ); // itest=358: ixxxxx#7 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=359: ixxxxx#7 nsp=1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=359: ixxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=359: ixxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=359: ixxxxx#7 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=359: ixxxxx#7 nsp=1 mass=0 + 1.341640786499874e+01, 1.788854381999831e+01 } ); // itest=359: ixxxxx#7 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=360: ixzxxx#7 nsp=1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=360: ixzxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=360: ixzxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=360: ixzxxx#7 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=360: ixzxxx#7 nsp=1 mass=0 + 1.341640786499874e+01, 1.788854381999832e+01 } ); // itest=360: ixzxxx#7 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=361: vxxxxx#7 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=361: vxxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=361: vxxxxx#7 nsp=1 mass=0 + -0.000000000000000e+00, -5.656854249492381e-01, // itest=361: vxxxxx#7 nsp=1 mass=0 + -0.000000000000000e+00, 4.242640687119285e-01, // itest=361: vxxxxx#7 nsp=1 mass=0 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=361: vxxxxx#7 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=362: vxxxxx#7 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=362: vxxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=362: vxxxxx#7 nsp=1 mass=0 + -0.000000000000000e+00, -5.656854249492381e-01, // itest=362: vxxxxx#7 nsp=1 mass=0 + -0.000000000000000e+00, 4.242640687119285e-01, // itest=362: vxxxxx#7 nsp=1 mass=0 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=362: vxxxxx#7 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=363: sxxxxx#7 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=363: sxxxxx#7 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=363: sxxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=363: sxxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=363: sxxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=363: sxxxxx#7 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=364: sxxxxx#7 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=364: sxxxxx#7 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=364: sxxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=364: sxxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=364: sxxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=364: sxxxxx#7 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=365: oxxxxx#7 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=365: oxxxxx#7 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=365: oxxxxx#7 nsp=1 mass=0 + 1.341640786499874e+01, -1.788854381999831e+01, // itest=365: oxxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=365: oxxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=365: oxxxxx#7 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=366: oxxxxx#7 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=366: oxxxxx#7 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=366: oxxxxx#7 nsp=1 mass=0 + 1.341640786499874e+01, -1.788854381999831e+01, // itest=366: oxxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=366: oxxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=366: oxxxxx#7 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=367: oxzxxx#7 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=367: oxzxxx#7 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=367: oxzxxx#7 nsp=1 mass=0 + 1.341640786499874e+01, -1.788854381999832e+01, // itest=367: oxzxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=367: oxzxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=367: oxzxxx#7 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=368: ixxxxx#8 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=368: ixxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=368: ixxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=368: ixxxxx#8 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=368: ixxxxx#8 nsp=1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=368: ixxxxx#8 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=369: ixxxxx#8 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=369: ixxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=369: ixxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=369: ixxxxx#8 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=369: ixxxxx#8 nsp=1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=369: ixxxxx#8 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=370: ixzxxx#8 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=370: ixzxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=370: ixzxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=370: ixzxxx#8 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=370: ixzxxx#8 nsp=1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=370: ixzxxx#8 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=371: vxxxxx#8 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=371: vxxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=371: vxxxxx#8 nsp=1 mass=0 + -3.394112549695428e-01, -5.656854249492381e-01, // itest=371: vxxxxx#8 nsp=1 mass=0 + -4.525483399593904e-01, 4.242640687119285e-01, // itest=371: vxxxxx#8 nsp=1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=371: vxxxxx#8 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=372: vxxxxx#8 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=372: vxxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=372: vxxxxx#8 nsp=1 mass=0 + -3.394112549695428e-01, -5.656854249492381e-01, // itest=372: vxxxxx#8 nsp=1 mass=0 + -4.525483399593904e-01, 4.242640687119285e-01, // itest=372: vxxxxx#8 nsp=1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=372: vxxxxx#8 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=373: sxxxxx#8 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=373: sxxxxx#8 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=373: sxxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=373: sxxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=373: sxxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=373: sxxxxx#8 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=374: sxxxxx#8 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=374: sxxxxx#8 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=374: sxxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=374: sxxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=374: sxxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=374: sxxxxx#8 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=375: oxxxxx#8 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=375: oxxxxx#8 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=375: oxxxxx#8 nsp=1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=375: oxxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=375: oxxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=375: oxxxxx#8 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=376: oxxxxx#8 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=376: oxxxxx#8 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=376: oxxxxx#8 nsp=1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=376: oxxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=376: oxxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=376: oxxxxx#8 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=377: oxzxxx#8 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=377: oxzxxx#8 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=377: oxzxxx#8 nsp=1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=377: oxzxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=377: oxzxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=377: oxzxxx#8 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=378: ixxxxx#9 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=378: ixxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=378: ixxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=378: ixxxxx#9 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=378: ixxxxx#9 nsp=1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01 } ); // itest=378: ixxxxx#9 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=379: ixxxxx#9 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=379: ixxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=379: ixxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=379: ixxxxx#9 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=379: ixxxxx#9 nsp=1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01 } ); // itest=379: ixxxxx#9 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=380: ixzxxx#9 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=380: ixzxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=380: ixzxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=380: ixzxxx#9 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=380: ixzxxx#9 nsp=1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01 } ); // itest=380: ixzxxx#9 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=381: vxxxxx#9 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=381: vxxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=381: vxxxxx#9 nsp=1 mass=0 + 3.394112549695428e-01, -5.656854249492381e-01, // itest=381: vxxxxx#9 nsp=1 mass=0 + 4.525483399593904e-01, 4.242640687119285e-01, // itest=381: vxxxxx#9 nsp=1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=381: vxxxxx#9 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=382: vxxxxx#9 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=382: vxxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=382: vxxxxx#9 nsp=1 mass=0 + 3.394112549695428e-01, -5.656854249492381e-01, // itest=382: vxxxxx#9 nsp=1 mass=0 + 4.525483399593904e-01, 4.242640687119285e-01, // itest=382: vxxxxx#9 nsp=1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=382: vxxxxx#9 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=383: sxxxxx#9 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=383: sxxxxx#9 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=383: sxxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=383: sxxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=383: sxxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=383: sxxxxx#9 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=384: sxxxxx#9 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=384: sxxxxx#9 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=384: sxxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=384: sxxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=384: sxxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=384: sxxxxx#9 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=385: oxxxxx#9 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=385: oxxxxx#9 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=385: oxxxxx#9 nsp=1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=385: oxxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=385: oxxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=385: oxxxxx#9 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=386: oxxxxx#9 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=386: oxxxxx#9 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=386: oxxxxx#9 nsp=1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=386: oxxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=386: oxxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=386: oxxxxx#9 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=387: oxzxxx#9 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=387: oxzxxx#9 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=387: oxzxxx#9 nsp=1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=387: oxzxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=387: oxzxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=387: oxzxxx#9 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=388: ixxxxx#10 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=388: ixxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=388: ixxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=388: ixxxxx#10 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=388: ixxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=388: ixxxxx#10 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=389: ixxxxx#10 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=389: ixxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=389: ixxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=389: ixxxxx#10 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=389: ixxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=389: ixxxxx#10 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=390: ipzxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=390: ipzxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=390: ipzxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=390: ipzxxx#10 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=390: ipzxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=390: ipzxxx#10 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=391: vxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=391: vxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=391: vxxxxx#10 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=391: vxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=391: vxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=391: vxxxxx#10 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=392: vxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=392: vxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=392: vxxxxx#10 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=392: vxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=392: vxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=392: vxxxxx#10 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=393: sxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=393: sxxxxx#10 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=393: sxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=393: sxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=393: sxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=393: sxxxxx#10 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=394: sxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=394: sxxxxx#10 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=394: sxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=394: sxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=394: sxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=394: sxxxxx#10 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=395: oxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=395: oxxxxx#10 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=395: oxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=395: oxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=395: oxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=395: oxxxxx#10 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=396: oxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=396: oxxxxx#10 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=396: oxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=396: oxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=396: oxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=396: oxxxxx#10 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=397: opzxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=397: opzxxx#10 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=397: opzxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=397: opzxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=397: opzxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=397: opzxxx#10 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=398: ixxxxx#11 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=398: ixxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=398: ixxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=398: ixxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=398: ixxxxx#11 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=398: ixxxxx#11 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=399: ixxxxx#11 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=399: ixxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=399: ixxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=399: ixxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=399: ixxxxx#11 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=399: ixxxxx#11 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=400: imzxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=400: imzxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=400: imzxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=400: imzxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=400: imzxxx#11 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=400: imzxxx#11 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=401: vxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=401: vxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=401: vxxxxx#11 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=401: vxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=401: vxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=401: vxxxxx#11 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=402: vxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=402: vxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=402: vxxxxx#11 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=402: vxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=402: vxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=402: vxxxxx#11 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=403: sxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=403: sxxxxx#11 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=403: sxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=403: sxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=403: sxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=403: sxxxxx#11 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=404: sxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=404: sxxxxx#11 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=404: sxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=404: sxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=404: sxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=404: sxxxxx#11 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=405: oxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=405: oxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=405: oxxxxx#11 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=405: oxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=405: oxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=405: oxxxxx#11 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=406: oxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=406: oxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=406: oxxxxx#11 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=406: oxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=406: oxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=406: oxxxxx#11 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=407: omzxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=407: omzxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=407: omzxxx#11 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=407: omzxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=407: omzxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=407: omzxxx#11 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=408: ixxxxx#12 nsp=1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=408: ixxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=408: ixxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=408: ixxxxx#12 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=408: ixxxxx#12 nsp=1 mass=0 + 1.341640786499874e+01, 1.788854381999831e+01 } ); // itest=408: ixxxxx#12 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=409: ixxxxx#12 nsp=1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=409: ixxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=409: ixxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=409: ixxxxx#12 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=409: ixxxxx#12 nsp=1 mass=0 + 1.341640786499874e+01, 1.788854381999831e+01 } ); // itest=409: ixxxxx#12 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=410: ixzxxx#12 nsp=1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=410: ixzxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=410: ixzxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=410: ixzxxx#12 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=410: ixzxxx#12 nsp=1 mass=0 + 1.341640786499874e+01, 1.788854381999832e+01 } ); // itest=410: ixzxxx#12 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=411: vxxxxx#12 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=411: vxxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=411: vxxxxx#12 nsp=1 mass=0 + -0.000000000000000e+00, -5.656854249492381e-01, // itest=411: vxxxxx#12 nsp=1 mass=0 + -0.000000000000000e+00, 4.242640687119285e-01, // itest=411: vxxxxx#12 nsp=1 mass=0 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=411: vxxxxx#12 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=412: vxxxxx#12 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=412: vxxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=412: vxxxxx#12 nsp=1 mass=0 + -0.000000000000000e+00, -5.656854249492381e-01, // itest=412: vxxxxx#12 nsp=1 mass=0 + -0.000000000000000e+00, 4.242640687119285e-01, // itest=412: vxxxxx#12 nsp=1 mass=0 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=412: vxxxxx#12 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=413: sxxxxx#12 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=413: sxxxxx#12 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=413: sxxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=413: sxxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=413: sxxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=413: sxxxxx#12 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=414: sxxxxx#12 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=414: sxxxxx#12 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=414: sxxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=414: sxxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=414: sxxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=414: sxxxxx#12 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=415: oxxxxx#12 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=415: oxxxxx#12 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=415: oxxxxx#12 nsp=1 mass=0 + 1.341640786499874e+01, -1.788854381999831e+01, // itest=415: oxxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=415: oxxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=415: oxxxxx#12 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=416: oxxxxx#12 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=416: oxxxxx#12 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=416: oxxxxx#12 nsp=1 mass=0 + 1.341640786499874e+01, -1.788854381999831e+01, // itest=416: oxxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=416: oxxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=416: oxxxxx#12 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=417: oxzxxx#12 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=417: oxzxxx#12 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=417: oxzxxx#12 nsp=1 mass=0 + 1.341640786499874e+01, -1.788854381999832e+01, // itest=417: oxzxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=417: oxzxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=417: oxzxxx#12 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=418: ixxxxx#13 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=418: ixxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=418: ixxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=418: ixxxxx#13 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=418: ixxxxx#13 nsp=1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=418: ixxxxx#13 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=419: ixxxxx#13 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=419: ixxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=419: ixxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=419: ixxxxx#13 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=419: ixxxxx#13 nsp=1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=419: ixxxxx#13 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=420: ixzxxx#13 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=420: ixzxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=420: ixzxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=420: ixzxxx#13 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=420: ixzxxx#13 nsp=1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=420: ixzxxx#13 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=421: vxxxxx#13 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=421: vxxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=421: vxxxxx#13 nsp=1 mass=0 + -3.394112549695428e-01, -5.656854249492381e-01, // itest=421: vxxxxx#13 nsp=1 mass=0 + -4.525483399593904e-01, 4.242640687119285e-01, // itest=421: vxxxxx#13 nsp=1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=421: vxxxxx#13 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=422: vxxxxx#13 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=422: vxxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=422: vxxxxx#13 nsp=1 mass=0 + -3.394112549695428e-01, -5.656854249492381e-01, // itest=422: vxxxxx#13 nsp=1 mass=0 + -4.525483399593904e-01, 4.242640687119285e-01, // itest=422: vxxxxx#13 nsp=1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=422: vxxxxx#13 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=423: sxxxxx#13 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=423: sxxxxx#13 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=423: sxxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=423: sxxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=423: sxxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=423: sxxxxx#13 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=424: sxxxxx#13 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=424: sxxxxx#13 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=424: sxxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=424: sxxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=424: sxxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=424: sxxxxx#13 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=425: oxxxxx#13 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=425: oxxxxx#13 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=425: oxxxxx#13 nsp=1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=425: oxxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=425: oxxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=425: oxxxxx#13 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=426: oxxxxx#13 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=426: oxxxxx#13 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=426: oxxxxx#13 nsp=1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=426: oxxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=426: oxxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=426: oxxxxx#13 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=427: oxzxxx#13 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=427: oxzxxx#13 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=427: oxzxxx#13 nsp=1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=427: oxzxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=427: oxzxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=427: oxzxxx#13 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=428: ixxxxx#14 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=428: ixxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=428: ixxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=428: ixxxxx#14 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=428: ixxxxx#14 nsp=1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01 } ); // itest=428: ixxxxx#14 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=429: ixxxxx#14 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=429: ixxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=429: ixxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=429: ixxxxx#14 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=429: ixxxxx#14 nsp=1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01 } ); // itest=429: ixxxxx#14 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=430: ixzxxx#14 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=430: ixzxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=430: ixzxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=430: ixzxxx#14 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=430: ixzxxx#14 nsp=1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01 } ); // itest=430: ixzxxx#14 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=431: vxxxxx#14 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=431: vxxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=431: vxxxxx#14 nsp=1 mass=0 + 3.394112549695428e-01, -5.656854249492381e-01, // itest=431: vxxxxx#14 nsp=1 mass=0 + 4.525483399593904e-01, 4.242640687119285e-01, // itest=431: vxxxxx#14 nsp=1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=431: vxxxxx#14 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=432: vxxxxx#14 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=432: vxxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=432: vxxxxx#14 nsp=1 mass=0 + 3.394112549695428e-01, -5.656854249492381e-01, // itest=432: vxxxxx#14 nsp=1 mass=0 + 4.525483399593904e-01, 4.242640687119285e-01, // itest=432: vxxxxx#14 nsp=1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=432: vxxxxx#14 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=433: sxxxxx#14 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=433: sxxxxx#14 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=433: sxxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=433: sxxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=433: sxxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=433: sxxxxx#14 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=434: sxxxxx#14 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=434: sxxxxx#14 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=434: sxxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=434: sxxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=434: sxxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=434: sxxxxx#14 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=435: oxxxxx#14 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=435: oxxxxx#14 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=435: oxxxxx#14 nsp=1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=435: oxxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=435: oxxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=435: oxxxxx#14 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=436: oxxxxx#14 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=436: oxxxxx#14 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=436: oxxxxx#14 nsp=1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=436: oxxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=436: oxxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=436: oxxxxx#14 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=437: oxzxxx#14 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=437: oxzxxx#14 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=437: oxzxxx#14 nsp=1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=437: oxzxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=437: oxzxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=437: oxzxxx#14 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=438: ixxxxx#15 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=438: ixxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=438: ixxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=438: ixxxxx#15 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=438: ixxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=438: ixxxxx#15 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=439: ixxxxx#15 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=439: ixxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=439: ixxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=439: ixxxxx#15 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=439: ixxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=439: ixxxxx#15 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=440: ipzxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=440: ipzxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=440: ipzxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=440: ipzxxx#15 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=440: ipzxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=440: ipzxxx#15 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=441: vxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=441: vxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=441: vxxxxx#15 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=441: vxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=441: vxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=441: vxxxxx#15 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=442: vxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=442: vxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=442: vxxxxx#15 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=442: vxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=442: vxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=442: vxxxxx#15 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=443: sxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=443: sxxxxx#15 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=443: sxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=443: sxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=443: sxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=443: sxxxxx#15 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=444: sxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=444: sxxxxx#15 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=444: sxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=444: sxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=444: sxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=444: sxxxxx#15 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=445: oxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=445: oxxxxx#15 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=445: oxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=445: oxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=445: oxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=445: oxxxxx#15 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=446: oxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=446: oxxxxx#15 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=446: oxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=446: oxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=446: oxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=446: oxxxxx#15 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=447: opzxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=447: opzxxx#15 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=447: opzxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=447: opzxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=447: opzxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=447: opzxxx#15 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=448: ixxxxx#16 nsp=1 mass=500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=448: ixxxxx#16 nsp=1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=448: ixxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=448: ixxxxx#16 nsp=1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=448: ixxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=448: ixxxxx#16 nsp=1 mass=500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=449: ixxxxx#16 nsp=1 mass=-500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=449: ixxxxx#16 nsp=1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=449: ixxxxx#16 nsp=1 mass=-500 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=449: ixxxxx#16 nsp=1 mass=-500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=449: ixxxxx#16 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=449: ixxxxx#16 nsp=1 mass=-500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=450: vxxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=450: vxxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=450: vxxxxx#16 nsp=1 mass=500 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=450: vxxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=450: vxxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=450: vxxxxx#16 nsp=1 mass=500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=451: vxxxxx#16 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=451: vxxxxx#16 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=451: vxxxxx#16 nsp=1 mass=-500 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=451: vxxxxx#16 nsp=1 mass=-500 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=451: vxxxxx#16 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=451: vxxxxx#16 nsp=1 mass=-500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=452: sxxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=452: sxxxxx#16 nsp=1 mass=500 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=452: sxxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=452: sxxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=452: sxxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=452: sxxxxx#16 nsp=1 mass=500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=453: sxxxxx#16 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=453: sxxxxx#16 nsp=1 mass=-500 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=453: sxxxxx#16 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=453: sxxxxx#16 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=453: sxxxxx#16 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=453: sxxxxx#16 nsp=1 mass=-500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=454: oxxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=454: oxxxxx#16 nsp=1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=454: oxxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=454: oxxxxx#16 nsp=1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=454: oxxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=454: oxxxxx#16 nsp=1 mass=500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=455: oxxxxx#16 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=455: oxxxxx#16 nsp=1 mass=-500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=455: oxxxxx#16 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=455: oxxxxx#16 nsp=1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=455: oxxxxx#16 nsp=1 mass=-500 + -0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=455: oxxxxx#16 nsp=1 mass=-500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=456: ixxxxx#17 nsp=1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=456: ixxxxx#17 nsp=1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=456: ixxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=456: ixxxxx#17 nsp=1 mass=400 + 2.828427124746190e+01, 0.000000000000000e+00, // itest=456: ixxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=456: ixxxxx#17 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=457: ixxxxx#17 nsp=1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=457: ixxxxx#17 nsp=1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=457: ixxxxx#17 nsp=1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=457: ixxxxx#17 nsp=1 mass=-400 + 2.828427124746190e+01, 0.000000000000000e+00, // itest=457: ixxxxx#17 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=457: ixxxxx#17 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=458: vxxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=458: vxxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=458: vxxxxx#17 nsp=1 mass=400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=458: vxxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=458: vxxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=458: vxxxxx#17 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=459: vxxxxx#17 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=459: vxxxxx#17 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=459: vxxxxx#17 nsp=1 mass=-400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=459: vxxxxx#17 nsp=1 mass=-400 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=459: vxxxxx#17 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=459: vxxxxx#17 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=460: sxxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=460: sxxxxx#17 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=460: sxxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=460: sxxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=460: sxxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=460: sxxxxx#17 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=461: sxxxxx#17 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=461: sxxxxx#17 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=461: sxxxxx#17 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=461: sxxxxx#17 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=461: sxxxxx#17 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=461: sxxxxx#17 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=462: oxxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=462: oxxxxx#17 nsp=1 mass=400 + 2.828427124746190e+01, 0.000000000000000e+00, // itest=462: oxxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=462: oxxxxx#17 nsp=1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=462: oxxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=462: oxxxxx#17 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=463: oxxxxx#17 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=463: oxxxxx#17 nsp=1 mass=-400 + 2.828427124746190e+01, 0.000000000000000e+00, // itest=463: oxxxxx#17 nsp=1 mass=-400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=463: oxxxxx#17 nsp=1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=463: oxxxxx#17 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=463: oxxxxx#17 nsp=1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=464: ixxxxx#18 nsp=1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=464: ixxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=464: ixxxxx#18 nsp=1 mass=400 + -1.414213562373095e+01, 0.000000000000000e+00, // itest=464: ixxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=464: ixxxxx#18 nsp=1 mass=400 + -2.828427124746190e+01, 0.000000000000000e+00 } ); // itest=464: ixxxxx#18 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=465: ixxxxx#18 nsp=1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=465: ixxxxx#18 nsp=1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=465: ixxxxx#18 nsp=1 mass=-400 + 1.414213562373095e+01, -0.000000000000000e+00, // itest=465: ixxxxx#18 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=465: ixxxxx#18 nsp=1 mass=-400 + -2.828427124746190e+01, 0.000000000000000e+00 } ); // itest=465: ixxxxx#18 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=466: vxxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=466: vxxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=466: vxxxxx#18 nsp=1 mass=400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=466: vxxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=466: vxxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=466: vxxxxx#18 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=467: vxxxxx#18 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=467: vxxxxx#18 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=467: vxxxxx#18 nsp=1 mass=-400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=467: vxxxxx#18 nsp=1 mass=-400 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=467: vxxxxx#18 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=467: vxxxxx#18 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=468: sxxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=468: sxxxxx#18 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=468: sxxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=468: sxxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=468: sxxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=468: sxxxxx#18 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=469: sxxxxx#18 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=469: sxxxxx#18 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=469: sxxxxx#18 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=469: sxxxxx#18 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=469: sxxxxx#18 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=469: sxxxxx#18 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=470: oxxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=470: oxxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=470: oxxxxx#18 nsp=1 mass=400 + -2.828427124746190e+01, 0.000000000000000e+00, // itest=470: oxxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=470: oxxxxx#18 nsp=1 mass=400 + -1.414213562373095e+01, 0.000000000000000e+00 } ); // itest=470: oxxxxx#18 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=471: oxxxxx#18 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=471: oxxxxx#18 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=471: oxxxxx#18 nsp=1 mass=-400 + -2.828427124746190e+01, 0.000000000000000e+00, // itest=471: oxxxxx#18 nsp=1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=471: oxxxxx#18 nsp=1 mass=-400 + 1.414213562373095e+01, -0.000000000000000e+00 } ); // itest=471: oxxxxx#18 nsp=1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=472: ixxxxx#19 nsp=1 mass=400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=472: ixxxxx#19 nsp=1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=472: ixxxxx#19 nsp=1 mass=400 + 5.999999999999999e+00, 7.999999999999999e+00, // itest=472: ixxxxx#19 nsp=1 mass=400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=472: ixxxxx#19 nsp=1 mass=400 + 1.200000000000000e+01, 1.600000000000000e+01 } ); // itest=472: ixxxxx#19 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=473: ixxxxx#19 nsp=1 mass=-400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=473: ixxxxx#19 nsp=1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00, // itest=473: ixxxxx#19 nsp=1 mass=-400 + -5.999999999999999e+00, -7.999999999999999e+00, // itest=473: ixxxxx#19 nsp=1 mass=-400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=473: ixxxxx#19 nsp=1 mass=-400 + 1.200000000000000e+01, 1.600000000000000e+01 } ); // itest=473: ixxxxx#19 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=474: vxxxxx#19 nsp=1 mass=400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=474: vxxxxx#19 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=474: vxxxxx#19 nsp=1 mass=400 + 0.000000000000000e+00, -5.656854249492381e-01, // itest=474: vxxxxx#19 nsp=1 mass=400 + 0.000000000000000e+00, 4.242640687119285e-01, // itest=474: vxxxxx#19 nsp=1 mass=400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=474: vxxxxx#19 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=475: vxxxxx#19 nsp=1 mass=-400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=475: vxxxxx#19 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=475: vxxxxx#19 nsp=1 mass=-400 + -0.000000000000000e+00, -5.656854249492381e-01, // itest=475: vxxxxx#19 nsp=1 mass=-400 + -0.000000000000000e+00, 4.242640687119285e-01, // itest=475: vxxxxx#19 nsp=1 mass=-400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=475: vxxxxx#19 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=476: sxxxxx#19 nsp=1 mass=400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=476: sxxxxx#19 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=476: sxxxxx#19 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=476: sxxxxx#19 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=476: sxxxxx#19 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=476: sxxxxx#19 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=477: sxxxxx#19 nsp=1 mass=-400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=477: sxxxxx#19 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=477: sxxxxx#19 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=477: sxxxxx#19 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=477: sxxxxx#19 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=477: sxxxxx#19 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=478: oxxxxx#19 nsp=1 mass=400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=478: oxxxxx#19 nsp=1 mass=400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=478: oxxxxx#19 nsp=1 mass=400 + 1.200000000000000e+01, -1.600000000000000e+01, // itest=478: oxxxxx#19 nsp=1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=478: oxxxxx#19 nsp=1 mass=400 + 5.999999999999999e+00, -7.999999999999999e+00 } ); // itest=478: oxxxxx#19 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=479: oxxxxx#19 nsp=1 mass=-400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=479: oxxxxx#19 nsp=1 mass=-400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=479: oxxxxx#19 nsp=1 mass=-400 + 1.200000000000000e+01, -1.600000000000000e+01, // itest=479: oxxxxx#19 nsp=1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00, // itest=479: oxxxxx#19 nsp=1 mass=-400 + -5.999999999999999e+00, 7.999999999999999e+00 } ); // itest=479: oxxxxx#19 nsp=1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=480: ixxxxx#20 nsp=1 mass=400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=480: ixxxxx#20 nsp=1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=480: ixxxxx#20 nsp=1 mass=400 + -7.999999999999999e+00, -5.999999999999999e+00, // itest=480: ixxxxx#20 nsp=1 mass=400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=480: ixxxxx#20 nsp=1 mass=400 + -1.600000000000000e+01, -1.200000000000000e+01 } ); // itest=480: ixxxxx#20 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=481: ixxxxx#20 nsp=1 mass=-400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=481: ixxxxx#20 nsp=1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00, // itest=481: ixxxxx#20 nsp=1 mass=-400 + 7.999999999999999e+00, 5.999999999999999e+00, // itest=481: ixxxxx#20 nsp=1 mass=-400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=481: ixxxxx#20 nsp=1 mass=-400 + -1.600000000000000e+01, -1.200000000000000e+01 } ); // itest=481: ixxxxx#20 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=482: vxxxxx#20 nsp=1 mass=400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=482: vxxxxx#20 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=482: vxxxxx#20 nsp=1 mass=400 + 0.000000000000000e+00, 4.242640687119285e-01, // itest=482: vxxxxx#20 nsp=1 mass=400 + 0.000000000000000e+00, -5.656854249492381e-01, // itest=482: vxxxxx#20 nsp=1 mass=400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=482: vxxxxx#20 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=483: vxxxxx#20 nsp=1 mass=-400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=483: vxxxxx#20 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=483: vxxxxx#20 nsp=1 mass=-400 + 0.000000000000000e+00, 4.242640687119285e-01, // itest=483: vxxxxx#20 nsp=1 mass=-400 + 0.000000000000000e+00, -5.656854249492381e-01, // itest=483: vxxxxx#20 nsp=1 mass=-400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=483: vxxxxx#20 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=484: sxxxxx#20 nsp=1 mass=400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=484: sxxxxx#20 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=484: sxxxxx#20 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=484: sxxxxx#20 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=484: sxxxxx#20 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=484: sxxxxx#20 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=485: sxxxxx#20 nsp=1 mass=-400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=485: sxxxxx#20 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=485: sxxxxx#20 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=485: sxxxxx#20 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=485: sxxxxx#20 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=485: sxxxxx#20 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=486: oxxxxx#20 nsp=1 mass=400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=486: oxxxxx#20 nsp=1 mass=400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=486: oxxxxx#20 nsp=1 mass=400 + -1.600000000000000e+01, 1.200000000000000e+01, // itest=486: oxxxxx#20 nsp=1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=486: oxxxxx#20 nsp=1 mass=400 + -7.999999999999999e+00, 5.999999999999999e+00 } ); // itest=486: oxxxxx#20 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=487: oxxxxx#20 nsp=1 mass=-400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=487: oxxxxx#20 nsp=1 mass=-400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=487: oxxxxx#20 nsp=1 mass=-400 + -1.600000000000000e+01, 1.200000000000000e+01, // itest=487: oxxxxx#20 nsp=1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00, // itest=487: oxxxxx#20 nsp=1 mass=-400 + 7.999999999999999e+00, -5.999999999999999e+00 } ); // itest=487: oxxxxx#20 nsp=1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=488: ixxxxx#21 nsp=1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=488: ixxxxx#21 nsp=1 mass=400 + 1.216552506059644e+01, 0.000000000000000e+00, // itest=488: ixxxxx#21 nsp=1 mass=400 + 4.931969619160719e+00, 5.260767593771432e+00, // itest=488: ixxxxx#21 nsp=1 mass=400 + 2.433105012119288e+01, 0.000000000000000e+00, // itest=488: ixxxxx#21 nsp=1 mass=400 + 9.863939238321439e+00, 1.052153518754287e+01 } ); // itest=488: ixxxxx#21 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=489: ixxxxx#21 nsp=1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=489: ixxxxx#21 nsp=1 mass=-400 + -1.216552506059644e+01, -0.000000000000000e+00, // itest=489: ixxxxx#21 nsp=1 mass=-400 + -4.931969619160719e+00, -5.260767593771432e+00, // itest=489: ixxxxx#21 nsp=1 mass=-400 + 2.433105012119288e+01, 0.000000000000000e+00, // itest=489: ixxxxx#21 nsp=1 mass=-400 + 9.863939238321439e+00, 1.052153518754287e+01 } ); // itest=489: ixxxxx#21 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=490: vxxxxx#21 nsp=1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=490: vxxxxx#21 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=490: vxxxxx#21 nsp=1 mass=400 + -2.321373168788980e-01, -5.158607041753289e-01, // itest=490: vxxxxx#21 nsp=1 mass=400 + -2.476131380041579e-01, 4.836194101643708e-01, // itest=490: vxxxxx#21 nsp=1 mass=400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=490: vxxxxx#21 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=491: vxxxxx#21 nsp=1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=491: vxxxxx#21 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=491: vxxxxx#21 nsp=1 mass=-400 + -2.321373168788980e-01, -5.158607041753289e-01, // itest=491: vxxxxx#21 nsp=1 mass=-400 + -2.476131380041579e-01, 4.836194101643708e-01, // itest=491: vxxxxx#21 nsp=1 mass=-400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=491: vxxxxx#21 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=492: sxxxxx#21 nsp=1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=492: sxxxxx#21 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=492: sxxxxx#21 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=492: sxxxxx#21 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=492: sxxxxx#21 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=492: sxxxxx#21 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=493: sxxxxx#21 nsp=1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=493: sxxxxx#21 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=493: sxxxxx#21 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=493: sxxxxx#21 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=493: sxxxxx#21 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=493: sxxxxx#21 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=494: oxxxxx#21 nsp=1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=494: oxxxxx#21 nsp=1 mass=400 + 2.433105012119288e+01, 0.000000000000000e+00, // itest=494: oxxxxx#21 nsp=1 mass=400 + 9.863939238321439e+00, -1.052153518754287e+01, // itest=494: oxxxxx#21 nsp=1 mass=400 + 1.216552506059644e+01, 0.000000000000000e+00, // itest=494: oxxxxx#21 nsp=1 mass=400 + 4.931969619160719e+00, -5.260767593771432e+00 } ); // itest=494: oxxxxx#21 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=495: oxxxxx#21 nsp=1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=495: oxxxxx#21 nsp=1 mass=-400 + 2.433105012119288e+01, 0.000000000000000e+00, // itest=495: oxxxxx#21 nsp=1 mass=-400 + 9.863939238321439e+00, -1.052153518754287e+01, // itest=495: oxxxxx#21 nsp=1 mass=-400 + -1.216552506059644e+01, -0.000000000000000e+00, // itest=495: oxxxxx#21 nsp=1 mass=-400 + -4.931969619160719e+00, 5.260767593771432e+00 } ); // itest=495: oxxxxx#21 nsp=1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=496: ixxxxx#22 nsp=1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=496: ixxxxx#22 nsp=1 mass=400 + 7.211102550927978e+00, 0.000000000000000e+00, // itest=496: ixxxxx#22 nsp=1 mass=400 + 8.320502943378436e+00, 8.875203139603666e+00, // itest=496: ixxxxx#22 nsp=1 mass=400 + 1.442220510185596e+01, 0.000000000000000e+00, // itest=496: ixxxxx#22 nsp=1 mass=400 + 1.664100588675688e+01, 1.775040627920733e+01 } ); // itest=496: ixxxxx#22 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=497: ixxxxx#22 nsp=1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=497: ixxxxx#22 nsp=1 mass=-400 + -7.211102550927978e+00, -0.000000000000000e+00, // itest=497: ixxxxx#22 nsp=1 mass=-400 + -8.320502943378436e+00, -8.875203139603666e+00, // itest=497: ixxxxx#22 nsp=1 mass=-400 + 1.442220510185596e+01, 0.000000000000000e+00, // itest=497: ixxxxx#22 nsp=1 mass=-400 + 1.664100588675688e+01, 1.775040627920733e+01 } ); // itest=497: ixxxxx#22 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=498: vxxxxx#22 nsp=1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=498: vxxxxx#22 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=498: vxxxxx#22 nsp=1 mass=400 + 2.321373168788980e-01, -5.158607041753289e-01, // itest=498: vxxxxx#22 nsp=1 mass=400 + 2.476131380041579e-01, 4.836194101643708e-01, // itest=498: vxxxxx#22 nsp=1 mass=400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=498: vxxxxx#22 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=499: vxxxxx#22 nsp=1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=499: vxxxxx#22 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=499: vxxxxx#22 nsp=1 mass=-400 + 2.321373168788980e-01, -5.158607041753289e-01, // itest=499: vxxxxx#22 nsp=1 mass=-400 + 2.476131380041579e-01, 4.836194101643708e-01, // itest=499: vxxxxx#22 nsp=1 mass=-400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=499: vxxxxx#22 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=500: sxxxxx#22 nsp=1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=500: sxxxxx#22 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=500: sxxxxx#22 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=500: sxxxxx#22 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=500: sxxxxx#22 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=500: sxxxxx#22 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=501: sxxxxx#22 nsp=1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=501: sxxxxx#22 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=501: sxxxxx#22 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=501: sxxxxx#22 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=501: sxxxxx#22 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=501: sxxxxx#22 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=502: oxxxxx#22 nsp=1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=502: oxxxxx#22 nsp=1 mass=400 + 1.442220510185596e+01, 0.000000000000000e+00, // itest=502: oxxxxx#22 nsp=1 mass=400 + 1.664100588675688e+01, -1.775040627920733e+01, // itest=502: oxxxxx#22 nsp=1 mass=400 + 7.211102550927978e+00, 0.000000000000000e+00, // itest=502: oxxxxx#22 nsp=1 mass=400 + 8.320502943378436e+00, -8.875203139603666e+00 } ); // itest=502: oxxxxx#22 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=503: oxxxxx#22 nsp=1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=503: oxxxxx#22 nsp=1 mass=-400 + 1.442220510185596e+01, 0.000000000000000e+00, // itest=503: oxxxxx#22 nsp=1 mass=-400 + 1.664100588675688e+01, -1.775040627920733e+01, // itest=503: oxxxxx#22 nsp=1 mass=-400 + -7.211102550927978e+00, -0.000000000000000e+00, // itest=503: oxxxxx#22 nsp=1 mass=-400 + -8.320502943378436e+00, 8.875203139603666e+00 } ); // itest=503: oxxxxx#22 nsp=1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=504: ixxxxx#23 nsp=1 mass=500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=504: ixxxxx#23 nsp=1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=504: ixxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=504: ixxxxx#23 nsp=1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=504: ixxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=504: ixxxxx#23 nsp=1 mass=500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=505: ixxxxx#23 nsp=1 mass=-500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=505: ixxxxx#23 nsp=1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=505: ixxxxx#23 nsp=1 mass=-500 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=505: ixxxxx#23 nsp=1 mass=-500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=505: ixxxxx#23 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=505: ixxxxx#23 nsp=1 mass=-500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=506: vxxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=506: vxxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=506: vxxxxx#23 nsp=1 mass=500 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=506: vxxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=506: vxxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=506: vxxxxx#23 nsp=1 mass=500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=507: vxxxxx#23 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=507: vxxxxx#23 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=507: vxxxxx#23 nsp=1 mass=-500 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=507: vxxxxx#23 nsp=1 mass=-500 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=507: vxxxxx#23 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=507: vxxxxx#23 nsp=1 mass=-500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=508: sxxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=508: sxxxxx#23 nsp=1 mass=500 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=508: sxxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=508: sxxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=508: sxxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=508: sxxxxx#23 nsp=1 mass=500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=509: sxxxxx#23 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=509: sxxxxx#23 nsp=1 mass=-500 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=509: sxxxxx#23 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=509: sxxxxx#23 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=509: sxxxxx#23 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=509: sxxxxx#23 nsp=1 mass=-500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=510: oxxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=510: oxxxxx#23 nsp=1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=510: oxxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=510: oxxxxx#23 nsp=1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=510: oxxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=510: oxxxxx#23 nsp=1 mass=500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=511: oxxxxx#23 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=511: oxxxxx#23 nsp=1 mass=-500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=511: oxxxxx#23 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=511: oxxxxx#23 nsp=1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=511: oxxxxx#23 nsp=1 mass=-500 + -0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=511: oxxxxx#23 nsp=1 mass=-500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=512: ixxxxx#24 nsp=1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=512: ixxxxx#24 nsp=1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=512: ixxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=512: ixxxxx#24 nsp=1 mass=400 + 2.828427124746190e+01, 0.000000000000000e+00, // itest=512: ixxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=512: ixxxxx#24 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=513: ixxxxx#24 nsp=1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=513: ixxxxx#24 nsp=1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=513: ixxxxx#24 nsp=1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=513: ixxxxx#24 nsp=1 mass=-400 + 2.828427124746190e+01, 0.000000000000000e+00, // itest=513: ixxxxx#24 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=513: ixxxxx#24 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=514: vxxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=514: vxxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=514: vxxxxx#24 nsp=1 mass=400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=514: vxxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=514: vxxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=514: vxxxxx#24 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=515: vxxxxx#24 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=515: vxxxxx#24 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=515: vxxxxx#24 nsp=1 mass=-400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=515: vxxxxx#24 nsp=1 mass=-400 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=515: vxxxxx#24 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=515: vxxxxx#24 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=516: sxxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=516: sxxxxx#24 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=516: sxxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=516: sxxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=516: sxxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=516: sxxxxx#24 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=517: sxxxxx#24 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=517: sxxxxx#24 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=517: sxxxxx#24 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=517: sxxxxx#24 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=517: sxxxxx#24 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=517: sxxxxx#24 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=518: oxxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=518: oxxxxx#24 nsp=1 mass=400 + 2.828427124746190e+01, 0.000000000000000e+00, // itest=518: oxxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=518: oxxxxx#24 nsp=1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=518: oxxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=518: oxxxxx#24 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=519: oxxxxx#24 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=519: oxxxxx#24 nsp=1 mass=-400 + 2.828427124746190e+01, 0.000000000000000e+00, // itest=519: oxxxxx#24 nsp=1 mass=-400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=519: oxxxxx#24 nsp=1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=519: oxxxxx#24 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=519: oxxxxx#24 nsp=1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=520: ixxxxx#25 nsp=1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=520: ixxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=520: ixxxxx#25 nsp=1 mass=400 + -1.414213562373095e+01, 0.000000000000000e+00, // itest=520: ixxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=520: ixxxxx#25 nsp=1 mass=400 + -2.828427124746190e+01, 0.000000000000000e+00 } ); // itest=520: ixxxxx#25 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=521: ixxxxx#25 nsp=1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=521: ixxxxx#25 nsp=1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=521: ixxxxx#25 nsp=1 mass=-400 + 1.414213562373095e+01, -0.000000000000000e+00, // itest=521: ixxxxx#25 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=521: ixxxxx#25 nsp=1 mass=-400 + -2.828427124746190e+01, 0.000000000000000e+00 } ); // itest=521: ixxxxx#25 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=522: vxxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=522: vxxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=522: vxxxxx#25 nsp=1 mass=400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=522: vxxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=522: vxxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=522: vxxxxx#25 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=523: vxxxxx#25 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=523: vxxxxx#25 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=523: vxxxxx#25 nsp=1 mass=-400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=523: vxxxxx#25 nsp=1 mass=-400 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=523: vxxxxx#25 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=523: vxxxxx#25 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=524: sxxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=524: sxxxxx#25 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=524: sxxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=524: sxxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=524: sxxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=524: sxxxxx#25 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=525: sxxxxx#25 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=525: sxxxxx#25 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=525: sxxxxx#25 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=525: sxxxxx#25 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=525: sxxxxx#25 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=525: sxxxxx#25 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=526: oxxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=526: oxxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=526: oxxxxx#25 nsp=1 mass=400 + -2.828427124746190e+01, 0.000000000000000e+00, // itest=526: oxxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=526: oxxxxx#25 nsp=1 mass=400 + -1.414213562373095e+01, 0.000000000000000e+00 } ); // itest=526: oxxxxx#25 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=527: oxxxxx#25 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=527: oxxxxx#25 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=527: oxxxxx#25 nsp=1 mass=-400 + -2.828427124746190e+01, 0.000000000000000e+00, // itest=527: oxxxxx#25 nsp=1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=527: oxxxxx#25 nsp=1 mass=-400 + 1.414213562373095e+01, -0.000000000000000e+00 } ); // itest=527: oxxxxx#25 nsp=1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=528: ixxxxx#26 nsp=1 mass=400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=528: ixxxxx#26 nsp=1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=528: ixxxxx#26 nsp=1 mass=400 + 5.999999999999999e+00, 7.999999999999999e+00, // itest=528: ixxxxx#26 nsp=1 mass=400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=528: ixxxxx#26 nsp=1 mass=400 + 1.200000000000000e+01, 1.600000000000000e+01 } ); // itest=528: ixxxxx#26 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=529: ixxxxx#26 nsp=1 mass=-400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=529: ixxxxx#26 nsp=1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00, // itest=529: ixxxxx#26 nsp=1 mass=-400 + -5.999999999999999e+00, -7.999999999999999e+00, // itest=529: ixxxxx#26 nsp=1 mass=-400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=529: ixxxxx#26 nsp=1 mass=-400 + 1.200000000000000e+01, 1.600000000000000e+01 } ); // itest=529: ixxxxx#26 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=530: vxxxxx#26 nsp=1 mass=400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=530: vxxxxx#26 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=530: vxxxxx#26 nsp=1 mass=400 + 0.000000000000000e+00, -5.656854249492381e-01, // itest=530: vxxxxx#26 nsp=1 mass=400 + 0.000000000000000e+00, 4.242640687119285e-01, // itest=530: vxxxxx#26 nsp=1 mass=400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=530: vxxxxx#26 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=531: vxxxxx#26 nsp=1 mass=-400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=531: vxxxxx#26 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=531: vxxxxx#26 nsp=1 mass=-400 + -0.000000000000000e+00, -5.656854249492381e-01, // itest=531: vxxxxx#26 nsp=1 mass=-400 + -0.000000000000000e+00, 4.242640687119285e-01, // itest=531: vxxxxx#26 nsp=1 mass=-400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=531: vxxxxx#26 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=532: sxxxxx#26 nsp=1 mass=400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=532: sxxxxx#26 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=532: sxxxxx#26 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=532: sxxxxx#26 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=532: sxxxxx#26 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=532: sxxxxx#26 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=533: sxxxxx#26 nsp=1 mass=-400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=533: sxxxxx#26 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=533: sxxxxx#26 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=533: sxxxxx#26 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=533: sxxxxx#26 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=533: sxxxxx#26 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=534: oxxxxx#26 nsp=1 mass=400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=534: oxxxxx#26 nsp=1 mass=400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=534: oxxxxx#26 nsp=1 mass=400 + 1.200000000000000e+01, -1.600000000000000e+01, // itest=534: oxxxxx#26 nsp=1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=534: oxxxxx#26 nsp=1 mass=400 + 5.999999999999999e+00, -7.999999999999999e+00 } ); // itest=534: oxxxxx#26 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=535: oxxxxx#26 nsp=1 mass=-400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=535: oxxxxx#26 nsp=1 mass=-400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=535: oxxxxx#26 nsp=1 mass=-400 + 1.200000000000000e+01, -1.600000000000000e+01, // itest=535: oxxxxx#26 nsp=1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00, // itest=535: oxxxxx#26 nsp=1 mass=-400 + -5.999999999999999e+00, 7.999999999999999e+00 } ); // itest=535: oxxxxx#26 nsp=1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=536: ixxxxx#27 nsp=1 mass=400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=536: ixxxxx#27 nsp=1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=536: ixxxxx#27 nsp=1 mass=400 + -7.999999999999999e+00, -5.999999999999999e+00, // itest=536: ixxxxx#27 nsp=1 mass=400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=536: ixxxxx#27 nsp=1 mass=400 + -1.600000000000000e+01, -1.200000000000000e+01 } ); // itest=536: ixxxxx#27 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=537: ixxxxx#27 nsp=1 mass=-400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=537: ixxxxx#27 nsp=1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00, // itest=537: ixxxxx#27 nsp=1 mass=-400 + 7.999999999999999e+00, 5.999999999999999e+00, // itest=537: ixxxxx#27 nsp=1 mass=-400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=537: ixxxxx#27 nsp=1 mass=-400 + -1.600000000000000e+01, -1.200000000000000e+01 } ); // itest=537: ixxxxx#27 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=538: vxxxxx#27 nsp=1 mass=400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=538: vxxxxx#27 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=538: vxxxxx#27 nsp=1 mass=400 + 0.000000000000000e+00, 4.242640687119285e-01, // itest=538: vxxxxx#27 nsp=1 mass=400 + 0.000000000000000e+00, -5.656854249492381e-01, // itest=538: vxxxxx#27 nsp=1 mass=400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=538: vxxxxx#27 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=539: vxxxxx#27 nsp=1 mass=-400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=539: vxxxxx#27 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=539: vxxxxx#27 nsp=1 mass=-400 + 0.000000000000000e+00, 4.242640687119285e-01, // itest=539: vxxxxx#27 nsp=1 mass=-400 + 0.000000000000000e+00, -5.656854249492381e-01, // itest=539: vxxxxx#27 nsp=1 mass=-400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=539: vxxxxx#27 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=540: sxxxxx#27 nsp=1 mass=400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=540: sxxxxx#27 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=540: sxxxxx#27 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=540: sxxxxx#27 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=540: sxxxxx#27 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=540: sxxxxx#27 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=541: sxxxxx#27 nsp=1 mass=-400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=541: sxxxxx#27 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=541: sxxxxx#27 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=541: sxxxxx#27 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=541: sxxxxx#27 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=541: sxxxxx#27 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=542: oxxxxx#27 nsp=1 mass=400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=542: oxxxxx#27 nsp=1 mass=400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=542: oxxxxx#27 nsp=1 mass=400 + -1.600000000000000e+01, 1.200000000000000e+01, // itest=542: oxxxxx#27 nsp=1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=542: oxxxxx#27 nsp=1 mass=400 + -7.999999999999999e+00, 5.999999999999999e+00 } ); // itest=542: oxxxxx#27 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=543: oxxxxx#27 nsp=1 mass=-400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=543: oxxxxx#27 nsp=1 mass=-400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=543: oxxxxx#27 nsp=1 mass=-400 + -1.600000000000000e+01, 1.200000000000000e+01, // itest=543: oxxxxx#27 nsp=1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00, // itest=543: oxxxxx#27 nsp=1 mass=-400 + 7.999999999999999e+00, -5.999999999999999e+00 } ); // itest=543: oxxxxx#27 nsp=1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=544: ixxxxx#28 nsp=1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=544: ixxxxx#28 nsp=1 mass=400 + 1.216552506059644e+01, 0.000000000000000e+00, // itest=544: ixxxxx#28 nsp=1 mass=400 + 4.931969619160719e+00, 5.260767593771432e+00, // itest=544: ixxxxx#28 nsp=1 mass=400 + 2.433105012119288e+01, 0.000000000000000e+00, // itest=544: ixxxxx#28 nsp=1 mass=400 + 9.863939238321439e+00, 1.052153518754287e+01 } ); // itest=544: ixxxxx#28 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=545: ixxxxx#28 nsp=1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=545: ixxxxx#28 nsp=1 mass=-400 + -1.216552506059644e+01, -0.000000000000000e+00, // itest=545: ixxxxx#28 nsp=1 mass=-400 + -4.931969619160719e+00, -5.260767593771432e+00, // itest=545: ixxxxx#28 nsp=1 mass=-400 + 2.433105012119288e+01, 0.000000000000000e+00, // itest=545: ixxxxx#28 nsp=1 mass=-400 + 9.863939238321439e+00, 1.052153518754287e+01 } ); // itest=545: ixxxxx#28 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=546: vxxxxx#28 nsp=1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=546: vxxxxx#28 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=546: vxxxxx#28 nsp=1 mass=400 + -2.321373168788980e-01, -5.158607041753289e-01, // itest=546: vxxxxx#28 nsp=1 mass=400 + -2.476131380041579e-01, 4.836194101643708e-01, // itest=546: vxxxxx#28 nsp=1 mass=400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=546: vxxxxx#28 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=547: vxxxxx#28 nsp=1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=547: vxxxxx#28 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=547: vxxxxx#28 nsp=1 mass=-400 + -2.321373168788980e-01, -5.158607041753289e-01, // itest=547: vxxxxx#28 nsp=1 mass=-400 + -2.476131380041579e-01, 4.836194101643708e-01, // itest=547: vxxxxx#28 nsp=1 mass=-400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=547: vxxxxx#28 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=548: sxxxxx#28 nsp=1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=548: sxxxxx#28 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=548: sxxxxx#28 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=548: sxxxxx#28 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=548: sxxxxx#28 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=548: sxxxxx#28 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=549: sxxxxx#28 nsp=1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=549: sxxxxx#28 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=549: sxxxxx#28 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=549: sxxxxx#28 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=549: sxxxxx#28 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=549: sxxxxx#28 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=550: oxxxxx#28 nsp=1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=550: oxxxxx#28 nsp=1 mass=400 + 2.433105012119288e+01, 0.000000000000000e+00, // itest=550: oxxxxx#28 nsp=1 mass=400 + 9.863939238321439e+00, -1.052153518754287e+01, // itest=550: oxxxxx#28 nsp=1 mass=400 + 1.216552506059644e+01, 0.000000000000000e+00, // itest=550: oxxxxx#28 nsp=1 mass=400 + 4.931969619160719e+00, -5.260767593771432e+00 } ); // itest=550: oxxxxx#28 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=551: oxxxxx#28 nsp=1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=551: oxxxxx#28 nsp=1 mass=-400 + 2.433105012119288e+01, 0.000000000000000e+00, // itest=551: oxxxxx#28 nsp=1 mass=-400 + 9.863939238321439e+00, -1.052153518754287e+01, // itest=551: oxxxxx#28 nsp=1 mass=-400 + -1.216552506059644e+01, -0.000000000000000e+00, // itest=551: oxxxxx#28 nsp=1 mass=-400 + -4.931969619160719e+00, 5.260767593771432e+00 } ); // itest=551: oxxxxx#28 nsp=1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=552: ixxxxx#29 nsp=1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=552: ixxxxx#29 nsp=1 mass=400 + 7.211102550927978e+00, 0.000000000000000e+00, // itest=552: ixxxxx#29 nsp=1 mass=400 + 8.320502943378436e+00, 8.875203139603666e+00, // itest=552: ixxxxx#29 nsp=1 mass=400 + 1.442220510185596e+01, 0.000000000000000e+00, // itest=552: ixxxxx#29 nsp=1 mass=400 + 1.664100588675688e+01, 1.775040627920733e+01 } ); // itest=552: ixxxxx#29 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=553: ixxxxx#29 nsp=1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=553: ixxxxx#29 nsp=1 mass=-400 + -7.211102550927978e+00, -0.000000000000000e+00, // itest=553: ixxxxx#29 nsp=1 mass=-400 + -8.320502943378436e+00, -8.875203139603666e+00, // itest=553: ixxxxx#29 nsp=1 mass=-400 + 1.442220510185596e+01, 0.000000000000000e+00, // itest=553: ixxxxx#29 nsp=1 mass=-400 + 1.664100588675688e+01, 1.775040627920733e+01 } ); // itest=553: ixxxxx#29 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=554: vxxxxx#29 nsp=1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=554: vxxxxx#29 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=554: vxxxxx#29 nsp=1 mass=400 + 2.321373168788980e-01, -5.158607041753289e-01, // itest=554: vxxxxx#29 nsp=1 mass=400 + 2.476131380041579e-01, 4.836194101643708e-01, // itest=554: vxxxxx#29 nsp=1 mass=400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=554: vxxxxx#29 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=555: vxxxxx#29 nsp=1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=555: vxxxxx#29 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=555: vxxxxx#29 nsp=1 mass=-400 + 2.321373168788980e-01, -5.158607041753289e-01, // itest=555: vxxxxx#29 nsp=1 mass=-400 + 2.476131380041579e-01, 4.836194101643708e-01, // itest=555: vxxxxx#29 nsp=1 mass=-400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=555: vxxxxx#29 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=556: sxxxxx#29 nsp=1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=556: sxxxxx#29 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=556: sxxxxx#29 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=556: sxxxxx#29 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=556: sxxxxx#29 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=556: sxxxxx#29 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=557: sxxxxx#29 nsp=1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=557: sxxxxx#29 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=557: sxxxxx#29 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=557: sxxxxx#29 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=557: sxxxxx#29 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=557: sxxxxx#29 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=558: oxxxxx#29 nsp=1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=558: oxxxxx#29 nsp=1 mass=400 + 1.442220510185596e+01, 0.000000000000000e+00, // itest=558: oxxxxx#29 nsp=1 mass=400 + 1.664100588675688e+01, -1.775040627920733e+01, // itest=558: oxxxxx#29 nsp=1 mass=400 + 7.211102550927978e+00, 0.000000000000000e+00, // itest=558: oxxxxx#29 nsp=1 mass=400 + 8.320502943378436e+00, -8.875203139603666e+00 } ); // itest=558: oxxxxx#29 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=559: oxxxxx#29 nsp=1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=559: oxxxxx#29 nsp=1 mass=-400 + 1.442220510185596e+01, 0.000000000000000e+00, // itest=559: oxxxxx#29 nsp=1 mass=-400 + 1.664100588675688e+01, -1.775040627920733e+01, // itest=559: oxxxxx#29 nsp=1 mass=-400 + -7.211102550927978e+00, -0.000000000000000e+00, // itest=559: oxxxxx#29 nsp=1 mass=-400 + -8.320502943378436e+00, 8.875203139603666e+00 } ); // itest=559: oxxxxx#29 nsp=1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=560: ixxxxx#30 nsp=1 mass=500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=560: ixxxxx#30 nsp=1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=560: ixxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=560: ixxxxx#30 nsp=1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=560: ixxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=560: ixxxxx#30 nsp=1 mass=500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=561: ixxxxx#30 nsp=1 mass=-500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=561: ixxxxx#30 nsp=1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=561: ixxxxx#30 nsp=1 mass=-500 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=561: ixxxxx#30 nsp=1 mass=-500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=561: ixxxxx#30 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=561: ixxxxx#30 nsp=1 mass=-500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=562: vxxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=562: vxxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=562: vxxxxx#30 nsp=1 mass=500 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=562: vxxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=562: vxxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=562: vxxxxx#30 nsp=1 mass=500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=563: vxxxxx#30 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=563: vxxxxx#30 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=563: vxxxxx#30 nsp=1 mass=-500 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=563: vxxxxx#30 nsp=1 mass=-500 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=563: vxxxxx#30 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=563: vxxxxx#30 nsp=1 mass=-500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=564: sxxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=564: sxxxxx#30 nsp=1 mass=500 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=564: sxxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=564: sxxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=564: sxxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=564: sxxxxx#30 nsp=1 mass=500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=565: sxxxxx#30 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=565: sxxxxx#30 nsp=1 mass=-500 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=565: sxxxxx#30 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=565: sxxxxx#30 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=565: sxxxxx#30 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=565: sxxxxx#30 nsp=1 mass=-500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=566: oxxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=566: oxxxxx#30 nsp=1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=566: oxxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=566: oxxxxx#30 nsp=1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=566: oxxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=566: oxxxxx#30 nsp=1 mass=500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=567: oxxxxx#30 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=567: oxxxxx#30 nsp=1 mass=-500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=567: oxxxxx#30 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=567: oxxxxx#30 nsp=1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=567: oxxxxx#30 nsp=1 mass=-500 + -0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=567: oxxxxx#30 nsp=1 mass=-500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=568: ixxxxx#31 nsp=1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=568: ixxxxx#31 nsp=1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=568: ixxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=568: ixxxxx#31 nsp=1 mass=400 + 2.828427124746190e+01, 0.000000000000000e+00, // itest=568: ixxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=568: ixxxxx#31 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=569: ixxxxx#31 nsp=1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=569: ixxxxx#31 nsp=1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=569: ixxxxx#31 nsp=1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=569: ixxxxx#31 nsp=1 mass=-400 + 2.828427124746190e+01, 0.000000000000000e+00, // itest=569: ixxxxx#31 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=569: ixxxxx#31 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=570: vxxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=570: vxxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=570: vxxxxx#31 nsp=1 mass=400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=570: vxxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=570: vxxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=570: vxxxxx#31 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=571: vxxxxx#31 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=571: vxxxxx#31 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=571: vxxxxx#31 nsp=1 mass=-400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=571: vxxxxx#31 nsp=1 mass=-400 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=571: vxxxxx#31 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=571: vxxxxx#31 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=572: sxxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=572: sxxxxx#31 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=572: sxxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=572: sxxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=572: sxxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=572: sxxxxx#31 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=573: sxxxxx#31 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=573: sxxxxx#31 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=573: sxxxxx#31 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=573: sxxxxx#31 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=573: sxxxxx#31 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=573: sxxxxx#31 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=574: oxxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=574: oxxxxx#31 nsp=1 mass=400 + 2.828427124746190e+01, 0.000000000000000e+00, // itest=574: oxxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=574: oxxxxx#31 nsp=1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=574: oxxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=574: oxxxxx#31 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=575: oxxxxx#31 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=575: oxxxxx#31 nsp=1 mass=-400 + 2.828427124746190e+01, 0.000000000000000e+00, // itest=575: oxxxxx#31 nsp=1 mass=-400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=575: oxxxxx#31 nsp=1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=575: oxxxxx#31 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=575: oxxxxx#31 nsp=1 mass=-400 diff --git a/epochX/cudacpp/gg_ttg.mad/src/HelAmps_sm.h b/epochX/cudacpp/gg_ttg.mad/src/HelAmps_sm.h index 5a3a5dc76f..dd17387b4e 100644 --- a/epochX/cudacpp/gg_ttg.mad/src/HelAmps_sm.h +++ b/epochX/cudacpp/gg_ttg.mad/src/HelAmps_sm.h @@ -1,3 +1,4 @@ +// Copyright (C) 2010 The ALOHA Development team and Contributors. // Copyright (C) 2010 The MadGraph5_aMC@NLO development team and contributors. // Created by: J. Alwall (Sep 2010) for the MG5aMC backend. //========================================================================== @@ -21,6 +22,7 @@ #include "Parameters_sm.h" +#include //#include //#include //#include @@ -190,6 +192,9 @@ namespace mg5amcCpu const int ipar ) // input: particle# out of npar { mgDebug( 0, __FUNCTION__ ); + // NEW IMPLEMENTATION FIXING FLOATING POINT EXCEPTIONS IN SIMD CODE (#701) + // Variables xxxDENOM are a hack to avoid division-by-0 FPE while preserving speed (#701 and #727) + // Variables xxxDENOM are declared as 'volatile' to make sure they are not optimized away on clang! (#724) const fptype_sv& pvec0 = M_ACCESS::kernelAccessIp4IparConst( momenta, 0, ipar ); const fptype_sv& pvec1 = M_ACCESS::kernelAccessIp4IparConst( momenta, 1, ipar ); const fptype_sv& pvec2 = M_ACCESS::kernelAccessIp4IparConst( momenta, 2, ipar ); @@ -201,6 +206,11 @@ namespace mg5amcCpu if( fmass != 0. ) { const fptype_sv pp = fpmin( pvec0, fpsqrt( pvec1 * pvec1 + pvec2 * pvec2 + pvec3 * pvec3 ) ); + // In C++ ixxxxx, use a single ip/im numbering that is valid both for pp==0 and pp>0, which have two numbering schemes in Fortran ixxxxx: + // for pp==0, Fortran sqm(0:1) has indexes 0,1 as in C++; but for Fortran pp>0, omega(2) has indexes 1,2 and not 0,1 + // NB: this is only possible in ixxxx, but in oxxxxx two different numbering schemes must be used + const int ip = ( 1 + nh ) / 2; // NB: same as in Fortran pp==0, differs from Fortran pp>0, which is (3+nh)/2 because omega(2) has indexes 1,2 + const int im = ( 1 - nh ) / 2; // NB: same as in Fortran pp==0, differs from Fortran pp>0, which is (3-nh)/2 because omega(2) has indexes 1,2 #ifndef MGONGPU_CPPSIMD if( pp == 0. ) { @@ -208,8 +218,6 @@ namespace mg5amcCpu fptype sqm[2] = { fpsqrt( std::abs( fmass ) ), 0. }; // possibility of negative fermion masses //sqm[1] = ( fmass < 0. ? -abs( sqm[0] ) : abs( sqm[0] ) ); // AV: why abs here? sqm[1] = ( fmass < 0. ? -sqm[0] : sqm[0] ); // AV: removed an abs here - const int ip = ( 1 + nh ) / 2; // NB: Fortran sqm(0:1) also has indexes 0,1 as in C++ - const int im = ( 1 - nh ) / 2; // NB: Fortran sqm(0:1) also has indexes 0,1 as in C++ fi[2] = cxmake( ip * sqm[ip], 0 ); fi[3] = cxmake( im * nsf * sqm[ip], 0 ); fi[4] = cxmake( ip * nsf * sqm[im], 0 ); @@ -221,8 +229,6 @@ namespace mg5amcCpu fptype( 1 + nsf - ( 1 - nsf ) * nh ) * (fptype)0.5 }; fptype omega[2] = { fpsqrt( pvec0 + pp ), 0. }; omega[1] = fmass / omega[0]; - const int ip = ( 1 + nh ) / 2; // NB: Fortran is (3+nh)/2 because omega(2) has indexes 1,2 and not 0,1 - const int im = ( 1 - nh ) / 2; // NB: Fortran is (3-nh)/2 because omega(2) has indexes 1,2 and not 0,1 const fptype sfomega[2] = { sf[0] * omega[ip], sf[1] * omega[im] }; const fptype pp3 = fpmax( pp + pvec3, 0. ); const cxtype chi[2] = { cxmake( fpsqrt( pp3 * (fptype)0.5 / pp ), 0. ), @@ -233,8 +239,6 @@ namespace mg5amcCpu fi[5] = sfomega[1] * chi[ip]; } #else - const int ip = ( 1 + nh ) / 2; - const int im = ( 1 - nh ) / 2; // Branch A: pp == 0. // NB: Do not use "abs" for floats! It returns an integer with no build warning! Use std::abs! fptype sqm[2] = { fpsqrt( std::abs( fmass ) ), 0 }; // possibility of negative fermion masses (NB: SCALAR!) @@ -250,10 +254,12 @@ namespace mg5amcCpu omega[1] = fmass / omega[0]; const fptype_v sfomega[2] = { sf[0] * omega[ip], sf[1] * omega[im] }; const fptype_v pp3 = fpmax( pp + pvec3, 0 ); - const cxtype_v chi[2] = { cxmake( fpsqrt( pp3 * 0.5 / pp ), 0 ), + volatile fptype_v ppDENOM = fpternary( pp != 0, pp, 1. ); // hack: ppDENOM[ieppV]=1 if pp[ieppV]==0 + volatile fptype_v pp3DENOM = fpternary( pp3 != 0, pp3, 1. ); // hack: pp3DENOM[ieppV]=1 if pp3[ieppV]==0 + const cxtype_v chi[2] = { cxmake( fpsqrt( pp3 * 0.5 / ppDENOM ), 0 ), // hack: dummy[ieppV] is not used if pp[ieppV]==0 cxternary( ( pp3 == 0. ), cxmake( -nh, 0 ), - cxmake( (fptype)nh * pvec1, pvec2 ) / fpsqrt( 2. * pp * pp3 ) ) }; + cxmake( (fptype)nh * pvec1, pvec2 ) / fpsqrt( 2. * ppDENOM * pp3DENOM ) ) }; // hack: dummy[ieppV] is not used if pp[ieppV]==0 const cxtype_v fiB_2 = sfomega[0] * chi[im]; const cxtype_v fiB_3 = sfomega[0] * chi[ip]; const cxtype_v fiB_4 = sfomega[1] * chi[im]; @@ -271,7 +277,16 @@ namespace mg5amcCpu const fptype_sv sqp0p3 = fpternary( ( pvec1 == 0. and pvec2 == 0. and pvec3 < 0. ), fptype_sv{ 0 }, fpsqrt( fpmax( pvec0 + pvec3, 0. ) ) * (fptype)nsf ); - const cxtype_sv chi[2] = { cxmake( sqp0p3, 0. ), cxternary( ( sqp0p3 == 0. ), cxmake( -(fptype)nhel * fpsqrt( 2. * pvec0 ), 0. ), cxmake( (fptype)nh * pvec1, pvec2 ) / sqp0p3 ) }; +#ifdef MGONGPU_CPPSIMD + volatile fptype_v sqp0p3DENOM = fpternary( sqp0p3 != 0, sqp0p3, 1. ); // hack: dummy sqp0p3DENOM[ieppV]=1 if sqp0p3[ieppV]==0 + cxtype_sv chi[2] = { cxmake( sqp0p3, 0. ), + cxternary( sqp0p3 == 0, + cxmake( -(fptype)nhel * fpsqrt( 2. * pvec0 ), 0. ), + cxmake( (fptype)nh * pvec1, pvec2 ) / (const fptype_v)sqp0p3DENOM ) }; // hack: dummy[ieppV] is not used if sqp0p3[ieppV]==0 +#else + const cxtype_sv chi[2] = { cxmake( sqp0p3, 0. ), + ( sqp0p3 == 0. ? cxmake( -(fptype)nhel * fpsqrt( 2. * pvec0 ), 0. ) : cxmake( (fptype)nh * pvec1, pvec2 ) / sqp0p3 ) }; +#endif if( nh == 1 ) { fi[2] = cxzero_sv(); @@ -422,6 +437,9 @@ namespace mg5amcCpu const int ipar ) // input: particle# out of npar { mgDebug( 0, __FUNCTION__ ); + // NEW IMPLEMENTATION FIXING FLOATING POINT EXCEPTIONS IN SIMD CODE (#701) + // Variables xxxDENOM are a hack to avoid division-by-0 FPE while preserving speed (#701 and #727) + // Variables xxxDENOM are declared as 'volatile' to make sure they are not optimized away on clang! (#724) const fptype_sv& pvec0 = M_ACCESS::kernelAccessIp4IparConst( momenta, 0, ipar ); const fptype_sv& pvec1 = M_ACCESS::kernelAccessIp4IparConst( momenta, 1, ipar ); const fptype_sv& pvec2 = M_ACCESS::kernelAccessIp4IparConst( momenta, 2, ipar ); @@ -472,13 +490,15 @@ namespace mg5amcCpu const cxtype vcA_4 = cxmake( 0, nsvahl * sqh ); const cxtype vcA_5 = cxmake( hel0, 0 ); // Branch B: pp != 0. - const fptype_v emp = pvec0 / ( vmass * pp ); + volatile fptype_v ppDENOM = fpternary( pp != 0, pp, 1. ); // hack: ppDENOM[ieppV]=1 if pp[ieppV]==0 + const fptype_v emp = pvec0 / ( vmass * ppDENOM ); // hack: dummy[ieppV] is not used if pp[ieppV]==0 const cxtype_v vcB_2 = cxmake( hel0 * pp / vmass, 0 ); - const cxtype_v vcB_5 = cxmake( hel0 * pvec3 * emp + hel * pt / pp * sqh, 0 ); + const cxtype_v vcB_5 = cxmake( hel0 * pvec3 * emp + hel * pt / ppDENOM * sqh, 0 ); // hack: dummy[ieppV] is not used if pp[ieppV]==0 // Branch B1: pp != 0. and pt != 0. - const fptype_v pzpt = pvec3 / ( pp * pt ) * sqh * hel; - const cxtype_v vcB1_3 = cxmake( hel0 * pvec1 * emp - pvec1 * pzpt, -(fptype)nsvahl * pvec2 / pt * sqh ); - const cxtype_v vcB1_4 = cxmake( hel0 * pvec2 * emp - pvec2 * pzpt, (fptype)nsvahl * pvec1 / pt * sqh ); + volatile fptype_v ptDENOM = fpternary( pt != 0, pt, 1. ); // hack: ptDENOM[ieppV]=1 if pt[ieppV]==0 + const fptype_v pzpt = pvec3 / ( ppDENOM * ptDENOM ) * sqh * hel; // hack: dummy[ieppV] is not used if pp[ieppV]==0 + const cxtype_v vcB1_3 = cxmake( hel0 * pvec1 * emp - pvec1 * pzpt, -(fptype)nsvahl * pvec2 / ptDENOM * sqh ); // hack: dummy[ieppV] is not used if pt[ieppV]==0 + const cxtype_v vcB1_4 = cxmake( hel0 * pvec2 * emp - pvec2 * pzpt, (fptype)nsvahl * pvec1 / ptDENOM * sqh ); // hack: dummy[ieppV] is not used if pt[ieppV]==0 // Branch B2: pp != 0. and pt == 0. const cxtype vcB2_3 = cxmake( -hel * sqh, 0. ); const cxtype_v vcB2_4 = cxmake( 0., (fptype)nsvahl * fpternary( ( pvec3 < 0 ), -sqh, sqh ) ); // AV: removed an abs here @@ -513,9 +533,10 @@ namespace mg5amcCpu } #else // Branch A: pt != 0. - const fptype_v pzpt = pvec3 / ( pp * pt ) * sqh * hel; - const cxtype_v vcA_3 = cxmake( -pvec1 * pzpt, -(fptype)nsv * pvec2 / pt * sqh ); - const cxtype_v vcA_4 = cxmake( -pvec2 * pzpt, (fptype)nsv * pvec1 / pt * sqh ); + volatile fptype_v ptDENOM = fpternary( pt != 0, pt, 1. ); // hack: ptDENOM[ieppV]=1 if pt[ieppV]==0 + const fptype_v pzpt = pvec3 / ( pp * ptDENOM ) * sqh * hel; // hack: dummy[ieppV] is not used if pt[ieppV]==0 + const cxtype_v vcA_3 = cxmake( -pvec1 * pzpt, -(fptype)nsv * pvec2 / ptDENOM * sqh ); // hack: dummy[ieppV] is not used if pt[ieppV]==0 + const cxtype_v vcA_4 = cxmake( -pvec2 * pzpt, (fptype)nsv * pvec1 / ptDENOM * sqh ); // hack: dummy[ieppV] is not used if pt[ieppV]==0 // Branch B: pt == 0. const cxtype vcB_3 = cxmake( -(fptype)hel * sqh, 0 ); const cxtype_v vcB_4 = cxmake( 0, (fptype)nsv * fpternary( ( pvec3 < 0 ), -sqh, sqh ) ); // AV: removed an abs here @@ -567,6 +588,9 @@ namespace mg5amcCpu const int ipar ) // input: particle# out of npar { mgDebug( 0, __FUNCTION__ ); + // NEW IMPLEMENTATION FIXING FLOATING POINT EXCEPTIONS IN SIMD CODE (#701) + // Variables xxxDENOM are a hack to avoid division-by-0 FPE while preserving speed (#701 and #727) + // Variables xxxDENOM are declared as 'volatile' to make sure they are not optimized away on clang! (#724) const fptype_sv& pvec0 = M_ACCESS::kernelAccessIp4IparConst( momenta, 0, ipar ); const fptype_sv& pvec1 = M_ACCESS::kernelAccessIp4IparConst( momenta, 1, ipar ); const fptype_sv& pvec2 = M_ACCESS::kernelAccessIp4IparConst( momenta, 2, ipar ); @@ -630,10 +654,12 @@ namespace mg5amcCpu const int imB = ( 1 - nh ) / 2; const fptype_v sfomeg[2] = { sf[0] * omega[ipB], sf[1] * omega[imB] }; const fptype_v pp3 = fpmax( pp + pvec3, 0. ); - const cxtype_v chi[2] = { cxmake( fpsqrt( pp3 * 0.5 / pp ), 0. ), + volatile fptype_v ppDENOM = fpternary( pp != 0, pp, 1. ); // hack: ppDENOM[ieppV]=1 if pp[ieppV]==0 + volatile fptype_v pp3DENOM = fpternary( pp3 != 0, pp3, 1. ); // hack: pp3DENOM[ieppV]=1 if pp3[ieppV]==0 + const cxtype_v chi[2] = { cxmake( fpsqrt( pp3 * 0.5 / ppDENOM ), 0. ), // hack: dummy[ieppV] is not used if pp[ieppV]==0 ( cxternary( ( pp3 == 0. ), cxmake( -nh, 0. ), - cxmake( (fptype)nh * pvec1, -pvec2 ) / fpsqrt( 2. * pp * pp3 ) ) ) }; + cxmake( (fptype)nh * pvec1, -pvec2 ) / fpsqrt( 2. * ppDENOM * pp3DENOM ) ) ) }; // hack: dummy[ieppV] is not used if pp[ieppV]==0 const cxtype_v foB_2 = sfomeg[1] * chi[imB]; const cxtype_v foB_3 = sfomeg[1] * chi[ipB]; const cxtype_v foB_4 = sfomeg[0] * chi[imB]; @@ -651,10 +677,16 @@ namespace mg5amcCpu const fptype_sv sqp0p3 = fpternary( ( pvec1 == 0. ) and ( pvec2 == 0. ) and ( pvec3 < 0. ), 0, fpsqrt( fpmax( pvec0 + pvec3, 0. ) ) * (fptype)nsf ); +#ifdef MGONGPU_CPPSIMD + volatile fptype_v sqp0p3DENOM = fpternary( sqp0p3 != 0, sqp0p3, 1. ); // hack: sqp0p3DENOM[ieppV]=1 if sqp0p3[ieppV]==0 + const cxtype_v chi[2] = { cxmake( sqp0p3, 0. ), + cxternary( ( sqp0p3 == 0. ), + cxmake( -nhel, 0. ) * fpsqrt( 2. * pvec0 ), + cxmake( (fptype)nh * pvec1, -pvec2 ) / (const fptype_sv)sqp0p3DENOM ) }; // hack: dummy[ieppV] is not used if sqp0p3[ieppV]==0 +#else const cxtype_sv chi[2] = { cxmake( sqp0p3, 0. ), - cxternary( ( sqp0p3 == 0. ), - cxmake( -nhel, 0. ) * fpsqrt( 2. * pvec0 ), - cxmake( (fptype)nh * pvec1, -pvec2 ) / sqp0p3 ) }; + ( sqp0p3 == 0. ? cxmake( -nhel, 0. ) * fpsqrt( 2. * pvec0 ) : cxmake( (fptype)nh * pvec1, -pvec2 ) / sqp0p3 ) }; +#endif if( nh == 1 ) { fo[2] = chi[0]; diff --git a/epochX/cudacpp/gg_ttg.mad/src/Parameters_sm.cc b/epochX/cudacpp/gg_ttg.mad/src/Parameters_sm.cc index d3d01102fd..22fdd96a68 100644 --- a/epochX/cudacpp/gg_ttg.mad/src/Parameters_sm.cc +++ b/epochX/cudacpp/gg_ttg.mad/src/Parameters_sm.cc @@ -17,6 +17,12 @@ #include #include +#ifdef __CUDACC__ +using namespace mg5amcGpu; +#else +using namespace mg5amcCpu; +#endif + #ifndef MGONGPU_HARDCODE_PARAM // Initialize static instance diff --git a/epochX/cudacpp/gg_ttg.mad/src/Parameters_sm.h b/epochX/cudacpp/gg_ttg.mad/src/Parameters_sm.h index 6551d8da81..11fd9e3c74 100644 --- a/epochX/cudacpp/gg_ttg.mad/src/Parameters_sm.h +++ b/epochX/cudacpp/gg_ttg.mad/src/Parameters_sm.h @@ -26,191 +26,216 @@ #include "read_slha.h" -class Parameters_sm +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { -public: + class Parameters_sm + { + public: - static Parameters_sm* getInstance(); + static Parameters_sm* getInstance(); - // Define "zero" - double zero, ZERO; + // Define "zero" + double zero, ZERO; - // Model parameters independent of aS - //double aS; // now retrieved event-by-event (as G) from Fortran (running alphas #373) - double mdl_WH, mdl_WW, mdl_WZ, mdl_WT, mdl_ymtau, mdl_ymt, mdl_ymb, mdl_Gf, aEWM1, mdl_MH, mdl_MZ, mdl_MTA, mdl_MT, mdl_MB, mdl_conjg__CKM3x3, mdl_conjg__CKM1x1, mdl_CKM3x3, mdl_MZ__exp__2, mdl_MZ__exp__4, mdl_sqrt__2, mdl_MH__exp__2, mdl_aEW, mdl_MW, mdl_sqrt__aEW, mdl_ee, mdl_MW__exp__2, mdl_sw2, mdl_cw, mdl_sqrt__sw2, mdl_sw, mdl_g1, mdl_gw, mdl_vev, mdl_vev__exp__2, mdl_lam, mdl_yb, mdl_yt, mdl_ytau, mdl_muH, mdl_ee__exp__2, mdl_sw__exp__2, mdl_cw__exp__2; - cxsmpl mdl_complexi, mdl_I1x33, mdl_I2x33, mdl_I3x33, mdl_I4x33; + // Model parameters independent of aS + //double aS; // now retrieved event-by-event (as G) from Fortran (running alphas #373) + double mdl_WH, mdl_WW, mdl_WZ, mdl_WT, mdl_ymtau, mdl_ymt, mdl_ymb, mdl_Gf, aEWM1, mdl_MH, mdl_MZ, mdl_MTA, mdl_MT, mdl_MB, mdl_conjg__CKM3x3, mdl_conjg__CKM1x1, mdl_CKM3x3, mdl_MZ__exp__2, mdl_MZ__exp__4, mdl_sqrt__2, mdl_MH__exp__2, mdl_aEW, mdl_MW, mdl_sqrt__aEW, mdl_ee, mdl_MW__exp__2, mdl_sw2, mdl_cw, mdl_sqrt__sw2, mdl_sw, mdl_g1, mdl_gw, mdl_vev, mdl_vev__exp__2, mdl_lam, mdl_yb, mdl_yt, mdl_ytau, mdl_muH, mdl_ee__exp__2, mdl_sw__exp__2, mdl_cw__exp__2; + cxsmpl mdl_complexi, mdl_I1x33, mdl_I2x33, mdl_I3x33, mdl_I4x33; - // Model couplings independent of aS - // (none) + // Model couplings independent of aS + // (none) - // Model parameters dependent on aS - //double mdl_sqrt__aS, G, mdl_G__exp__2; // now computed event-by-event (running alphas #373) + // Model parameters dependent on aS + //double mdl_sqrt__aS, G, mdl_G__exp__2; // now computed event-by-event (running alphas #373) - // Model couplings dependent on aS - //cxsmpl GC_10, GC_11, GC_12; // now computed event-by-event (running alphas #373) + // Model couplings dependent on aS + //cxsmpl GC_10, GC_11, GC_12; // now computed event-by-event (running alphas #373) - // Set parameters that are unchanged during the run - void setIndependentParameters( SLHAReader& slha ); + // Set parameters that are unchanged during the run + void setIndependentParameters( SLHAReader& slha ); - // Set couplings that are unchanged during the run - void setIndependentCouplings(); + // Set couplings that are unchanged during the run + void setIndependentCouplings(); - // Set parameters that are changed event by event - //void setDependentParameters(); // now computed event-by-event (running alphas #373) + // Set parameters that are changed event by event + //void setDependentParameters(); // now computed event-by-event (running alphas #373) - // Set couplings that are changed event by event - //void setDependentCouplings(); // now computed event-by-event (running alphas #373) + // Set couplings that are changed event by event + //void setDependentCouplings(); // now computed event-by-event (running alphas #373) - // Print parameters that are unchanged during the run - void printIndependentParameters(); + // Print parameters that are unchanged during the run + void printIndependentParameters(); - // Print couplings that are unchanged during the run - void printIndependentCouplings(); + // Print couplings that are unchanged during the run + void printIndependentCouplings(); - // Print parameters that are changed event by event - //void printDependentParameters(); // now computed event-by-event (running alphas #373) + // Print parameters that are changed event by event + //void printDependentParameters(); // now computed event-by-event (running alphas #373) - // Print couplings that are changed event by event - //void printDependentCouplings(); // now computed event-by-event (running alphas #373) + // Print couplings that are changed event by event + //void printDependentCouplings(); // now computed event-by-event (running alphas #373) -private: + private: - static Parameters_sm* instance; -}; + static Parameters_sm* instance; + }; + +} // end namespace mg5amcGpu/mg5amcCpu #else #include #include -// Hardcoded constexpr physics parameters -namespace Parameters_sm // keep the same name rather than HardcodedParameters_sm for simplicity +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { - // Constexpr implementation of sqrt (see https://stackoverflow.com/a/34134071) - double constexpr sqrtNewtonRaphson( double x, double curr, double prev ) + // Hardcoded constexpr physics parameters + namespace Parameters_sm // keep the same name rather than HardcodedParameters_sm for simplicity { - return curr == prev ? curr : sqrtNewtonRaphson( x, 0.5 * ( curr + x / curr ), curr ); - } - double constexpr constexpr_sqrt( double x ) - { - return x >= 0 // && x < std::numeric_limits::infinity() // avoid -Wtautological-constant-compare warning in fast math - ? sqrtNewtonRaphson( x, x, 0 ) - : std::numeric_limits::quiet_NaN(); - } + // Constexpr implementation of sqrt (see https://stackoverflow.com/a/34134071) + double constexpr sqrtNewtonRaphson( double x, double curr, double prev ) + { + return curr == prev ? curr : sqrtNewtonRaphson( x, 0.5 * ( curr + x / curr ), curr ); + } + double constexpr constexpr_sqrt( double x ) + { + return x >= 0 // && x < std::numeric_limits::infinity() // avoid -Wtautological-constant-compare warning in fast math + ? sqrtNewtonRaphson( x, x, 0 ) + : std::numeric_limits::quiet_NaN(); + } - // Constexpr implementation of floor (see https://stackoverflow.com/a/66146159) - constexpr int constexpr_floor( double d ) - { - const int i = static_cast( d ); - return d < i ? i - 1 : i; - } + // Constexpr implementation of floor (see https://stackoverflow.com/a/66146159) + constexpr int constexpr_floor( double d ) + { + const int i = static_cast( d ); + return d < i ? i - 1 : i; + } - // Constexpr implementation of pow - constexpr double constexpr_pow( double base, double exp ) - { - // NB(1): this implementation of constexpr_pow requires exponent >= 0 - assert( exp >= 0 ); // NB would fail at compile time with "error: call to non-‘constexpr’ function ‘void __assert_fail'" - // NB(2): this implementation of constexpr_pow requires an integer exponent - const int iexp = constexpr_floor( exp ); - assert( static_cast( iexp ) == exp ); // NB would fail at compile time with "error: call to non-‘constexpr’ function ‘void __assert_fail'" - // Iterative implementation of pow if exp is a non negative integer - return iexp == 0 ? 1 : base * constexpr_pow( base, iexp - 1 ); + // Constexpr implementation of pow + constexpr double constexpr_pow( double base, double exp ) + { + // NB(1): this implementation of constexpr_pow requires exponent >= 0 + assert( exp >= 0 ); // NB would fail at compile time with "error: call to non-‘constexpr’ function ‘void __assert_fail'" + // NB(2): this implementation of constexpr_pow requires an integer exponent + const int iexp = constexpr_floor( exp ); + assert( static_cast( iexp ) == exp ); // NB would fail at compile time with "error: call to non-‘constexpr’ function ‘void __assert_fail'" + // Iterative implementation of pow if exp is a non negative integer + return iexp == 0 ? 1 : base * constexpr_pow( base, iexp - 1 ); + } + + // Model parameters independent of aS + constexpr double zero = 0; + constexpr double ZERO = 0; + constexpr double mdl_WH = 6.382339e-03; + constexpr double mdl_WW = 2.047600e+00; + constexpr double mdl_WZ = 2.441404e+00; + constexpr double mdl_WT = 1.491500e+00; + constexpr double mdl_ymtau = 1.777000e+00; + constexpr double mdl_ymt = 1.730000e+02; + constexpr double mdl_ymb = 4.700000e+00; + //constexpr double aS = 1.180000e-01; // now retrieved event-by-event (as G) from Fortran (running alphas #373) + constexpr double mdl_Gf = 1.166390e-05; + constexpr double aEWM1 = 1.325070e+02; + constexpr double mdl_MH = 1.250000e+02; + constexpr double mdl_MZ = 9.118800e+01; + constexpr double mdl_MTA = 1.777000e+00; + constexpr double mdl_MT = 1.730000e+02; + constexpr double mdl_MB = 4.700000e+00; + constexpr double mdl_conjg__CKM3x3 = 1.; + constexpr double mdl_conjg__CKM1x1 = 1.; + constexpr double mdl_CKM3x3 = 1.; + constexpr cxsmpl mdl_complexi = cxsmpl( 0., 1. ); + constexpr double mdl_MZ__exp__2 = ( ( mdl_MZ ) * ( mdl_MZ ) ); + constexpr double mdl_MZ__exp__4 = ( ( mdl_MZ ) * ( mdl_MZ ) * ( mdl_MZ ) * ( mdl_MZ ) ); + constexpr double mdl_sqrt__2 = constexpr_sqrt( 2. ); + constexpr double mdl_MH__exp__2 = ( ( mdl_MH ) * ( mdl_MH ) ); + constexpr double mdl_aEW = 1. / aEWM1; + constexpr double mdl_MW = constexpr_sqrt( mdl_MZ__exp__2 / 2. + constexpr_sqrt( mdl_MZ__exp__4 / 4. - ( mdl_aEW * M_PI * mdl_MZ__exp__2 ) / ( mdl_Gf * mdl_sqrt__2 ) ) ); + constexpr double mdl_sqrt__aEW = constexpr_sqrt( mdl_aEW ); + constexpr double mdl_ee = 2. * mdl_sqrt__aEW * constexpr_sqrt( M_PI ); + constexpr double mdl_MW__exp__2 = ( ( mdl_MW ) * ( mdl_MW ) ); + constexpr double mdl_sw2 = 1. - mdl_MW__exp__2 / mdl_MZ__exp__2; + constexpr double mdl_cw = constexpr_sqrt( 1. - mdl_sw2 ); + constexpr double mdl_sqrt__sw2 = constexpr_sqrt( mdl_sw2 ); + constexpr double mdl_sw = mdl_sqrt__sw2; + constexpr double mdl_g1 = mdl_ee / mdl_cw; + constexpr double mdl_gw = mdl_ee / mdl_sw; + constexpr double mdl_vev = ( 2. * mdl_MW * mdl_sw ) / mdl_ee; + constexpr double mdl_vev__exp__2 = ( ( mdl_vev ) * ( mdl_vev ) ); + constexpr double mdl_lam = mdl_MH__exp__2 / ( 2. * mdl_vev__exp__2 ); + constexpr double mdl_yb = ( mdl_ymb * mdl_sqrt__2 ) / mdl_vev; + constexpr double mdl_yt = ( mdl_ymt * mdl_sqrt__2 ) / mdl_vev; + constexpr double mdl_ytau = ( mdl_ymtau * mdl_sqrt__2 ) / mdl_vev; + constexpr double mdl_muH = constexpr_sqrt( mdl_lam * mdl_vev__exp__2 ); + constexpr cxsmpl mdl_I1x33 = mdl_yb * mdl_conjg__CKM3x3; + constexpr cxsmpl mdl_I2x33 = mdl_yt * mdl_conjg__CKM3x3; + constexpr cxsmpl mdl_I3x33 = mdl_CKM3x3 * mdl_yt; + constexpr cxsmpl mdl_I4x33 = mdl_CKM3x3 * mdl_yb; + constexpr double mdl_ee__exp__2 = ( ( mdl_ee ) * ( mdl_ee ) ); + constexpr double mdl_sw__exp__2 = ( ( mdl_sw ) * ( mdl_sw ) ); + constexpr double mdl_cw__exp__2 = ( ( mdl_cw ) * ( mdl_cw ) ); + + // Model couplings independent of aS + // (none) + + // Model parameters dependent on aS + //constexpr double mdl_sqrt__aS = //constexpr_sqrt( aS ); // now computed event-by-event (running alphas #373) + //constexpr double G = 2. * mdl_sqrt__aS * //constexpr_sqrt( M_PI ); // now computed event-by-event (running alphas #373) + //constexpr double mdl_G__exp__2 = ( ( G ) * ( G ) ); // now computed event-by-event (running alphas #373) + + // Model couplings dependent on aS + //constexpr cxsmpl GC_10 = -G; // now computed event-by-event (running alphas #373) + //constexpr cxsmpl GC_11 = mdl_complexi * G; // now computed event-by-event (running alphas #373) + //constexpr cxsmpl GC_12 = mdl_complexi * mdl_G__exp__2; // now computed event-by-event (running alphas #373) + + // Print parameters that are unchanged during the run + void printIndependentParameters(); + + // Print couplings that are unchanged during the run + void printIndependentCouplings(); + + // Print parameters that are changed event by event + //void printDependentParameters(); // now computed event-by-event (running alphas #373) + + // Print couplings that are changed event by event + //void printDependentCouplings(); // now computed event-by-event (running alphas #373) } - // Model parameters independent of aS - constexpr double zero = 0; - constexpr double ZERO = 0; - constexpr double mdl_WH = 6.382339e-03; - constexpr double mdl_WW = 2.047600e+00; - constexpr double mdl_WZ = 2.441404e+00; - constexpr double mdl_WT = 1.491500e+00; - constexpr double mdl_ymtau = 1.777000e+00; - constexpr double mdl_ymt = 1.730000e+02; - constexpr double mdl_ymb = 4.700000e+00; - //constexpr double aS = 1.180000e-01; // now retrieved event-by-event (as G) from Fortran (running alphas #373) - constexpr double mdl_Gf = 1.166390e-05; - constexpr double aEWM1 = 1.325070e+02; - constexpr double mdl_MH = 1.250000e+02; - constexpr double mdl_MZ = 9.118800e+01; - constexpr double mdl_MTA = 1.777000e+00; - constexpr double mdl_MT = 1.730000e+02; - constexpr double mdl_MB = 4.700000e+00; - constexpr double mdl_conjg__CKM3x3 = 1.; - constexpr double mdl_conjg__CKM1x1 = 1.; - constexpr double mdl_CKM3x3 = 1.; - constexpr cxsmpl mdl_complexi = cxsmpl( 0., 1. ); - constexpr double mdl_MZ__exp__2 = ( ( mdl_MZ ) * ( mdl_MZ ) ); - constexpr double mdl_MZ__exp__4 = ( ( mdl_MZ ) * ( mdl_MZ ) * ( mdl_MZ ) * ( mdl_MZ ) ); - constexpr double mdl_sqrt__2 = constexpr_sqrt( 2. ); - constexpr double mdl_MH__exp__2 = ( ( mdl_MH ) * ( mdl_MH ) ); - constexpr double mdl_aEW = 1. / aEWM1; - constexpr double mdl_MW = constexpr_sqrt( mdl_MZ__exp__2 / 2. + constexpr_sqrt( mdl_MZ__exp__4 / 4. - ( mdl_aEW * M_PI * mdl_MZ__exp__2 ) / ( mdl_Gf * mdl_sqrt__2 ) ) ); - constexpr double mdl_sqrt__aEW = constexpr_sqrt( mdl_aEW ); - constexpr double mdl_ee = 2. * mdl_sqrt__aEW * constexpr_sqrt( M_PI ); - constexpr double mdl_MW__exp__2 = ( ( mdl_MW ) * ( mdl_MW ) ); - constexpr double mdl_sw2 = 1. - mdl_MW__exp__2 / mdl_MZ__exp__2; - constexpr double mdl_cw = constexpr_sqrt( 1. - mdl_sw2 ); - constexpr double mdl_sqrt__sw2 = constexpr_sqrt( mdl_sw2 ); - constexpr double mdl_sw = mdl_sqrt__sw2; - constexpr double mdl_g1 = mdl_ee / mdl_cw; - constexpr double mdl_gw = mdl_ee / mdl_sw; - constexpr double mdl_vev = ( 2. * mdl_MW * mdl_sw ) / mdl_ee; - constexpr double mdl_vev__exp__2 = ( ( mdl_vev ) * ( mdl_vev ) ); - constexpr double mdl_lam = mdl_MH__exp__2 / ( 2. * mdl_vev__exp__2 ); - constexpr double mdl_yb = ( mdl_ymb * mdl_sqrt__2 ) / mdl_vev; - constexpr double mdl_yt = ( mdl_ymt * mdl_sqrt__2 ) / mdl_vev; - constexpr double mdl_ytau = ( mdl_ymtau * mdl_sqrt__2 ) / mdl_vev; - constexpr double mdl_muH = constexpr_sqrt( mdl_lam * mdl_vev__exp__2 ); - constexpr cxsmpl mdl_I1x33 = mdl_yb * mdl_conjg__CKM3x3; - constexpr cxsmpl mdl_I2x33 = mdl_yt * mdl_conjg__CKM3x3; - constexpr cxsmpl mdl_I3x33 = mdl_CKM3x3 * mdl_yt; - constexpr cxsmpl mdl_I4x33 = mdl_CKM3x3 * mdl_yb; - constexpr double mdl_ee__exp__2 = ( ( mdl_ee ) * ( mdl_ee ) ); - constexpr double mdl_sw__exp__2 = ( ( mdl_sw ) * ( mdl_sw ) ); - constexpr double mdl_cw__exp__2 = ( ( mdl_cw ) * ( mdl_cw ) ); - - // Model couplings independent of aS - // (none) - - // Model parameters dependent on aS - //constexpr double mdl_sqrt__aS = //constexpr_sqrt( aS ); // now computed event-by-event (running alphas #373) - //constexpr double G = 2. * mdl_sqrt__aS * //constexpr_sqrt( M_PI ); // now computed event-by-event (running alphas #373) - //constexpr double mdl_G__exp__2 = ( ( G ) * ( G ) ); // now computed event-by-event (running alphas #373) - - // Model couplings dependent on aS - //constexpr cxsmpl GC_10 = -G; // now computed event-by-event (running alphas #373) - //constexpr cxsmpl GC_11 = mdl_complexi * G; // now computed event-by-event (running alphas #373) - //constexpr cxsmpl GC_12 = mdl_complexi * mdl_G__exp__2; // now computed event-by-event (running alphas #373) - - // Print parameters that are unchanged during the run - void printIndependentParameters(); - - // Print couplings that are unchanged during the run - void printIndependentCouplings(); - - // Print parameters that are changed event by event - //void printDependentParameters(); // now computed event-by-event (running alphas #373) - - // Print couplings that are changed event by event - //void printDependentCouplings(); // now computed event-by-event (running alphas #373) -} +} // end namespace mg5amcGpu/mg5amcCpu #endif //========================================================================== -namespace Parameters_sm_dependentCouplings +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { - constexpr size_t ndcoup = 3; // #couplings that vary event by event because they depend on the running alphas QCD - constexpr size_t idcoup_GC_10 = 0; - constexpr size_t idcoup_GC_11 = 1; - constexpr size_t idcoup_GC_12 = 2; - struct DependentCouplings_sv + namespace Parameters_sm_dependentCouplings { - cxtype_sv GC_10; - cxtype_sv GC_11; - cxtype_sv GC_12; - }; + constexpr size_t ndcoup = 3; // #couplings that vary event by event because they depend on the running alphas QCD + constexpr size_t idcoup_GC_10 = 0; + constexpr size_t idcoup_GC_11 = 1; + constexpr size_t idcoup_GC_12 = 2; + struct DependentCouplings_sv + { + cxtype_sv GC_10; + cxtype_sv GC_11; + cxtype_sv GC_12; + }; #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wunused-variable" // e.g. <> #pragma GCC diagnostic ignored "-Wunused-parameter" // e.g. <> @@ -218,52 +243,46 @@ namespace Parameters_sm_dependentCouplings #pragma nv_diagnostic push #pragma nv_diag_suppress 177 // e.g. <> #endif - __host__ __device__ inline const DependentCouplings_sv computeDependentCouplings_fromG( const fptype_sv& G_sv ) - { + __host__ __device__ inline const DependentCouplings_sv computeDependentCouplings_fromG( const fptype_sv& G_sv ) + { #ifdef MGONGPU_HARDCODE_PARAM - using namespace Parameters_sm; + using namespace Parameters_sm; #endif - // NB: hardcode cxtype cI(0,1) instead of cxtype (or hardcoded cxsmpl) mdl_complexi (which exists in Parameters_sm) because: - // (1) mdl_complexi is always (0,1); (2) mdl_complexi is undefined in device code; (3) need cxsmpl conversion to cxtype in code below - const cxtype cI( 0., 1. ); - DependentCouplings_sv out; - // Begin SM implementation - no special handling of vectors of floats as in EFT (#439) - { - const fptype_sv& G = G_sv; - // Model parameters dependent on aS - //const fptype_sv mdl_sqrt__aS = constexpr_sqrt( aS ); - //const fptype_sv G = 2. * mdl_sqrt__aS * constexpr_sqrt( M_PI ); - const fptype_sv mdl_G__exp__2 = ( ( G ) * ( G ) ); - // Model couplings dependent on aS - out.GC_10 = -G; - out.GC_11 = cI * G; - out.GC_12 = cI * mdl_G__exp__2; + // NB: hardcode cxtype cI(0,1) instead of cxtype (or hardcoded cxsmpl) mdl_complexi (which exists in Parameters_sm) because: + // (1) mdl_complexi is always (0,1); (2) mdl_complexi is undefined in device code; (3) need cxsmpl conversion to cxtype in code below + const cxtype cI( 0., 1. ); + DependentCouplings_sv out; + // Begin SM implementation - no special handling of vectors of floats as in EFT (#439) + { + const fptype_sv& G = G_sv; + // Model parameters dependent on aS + //const fptype_sv mdl_sqrt__aS = constexpr_sqrt( aS ); + //const fptype_sv G = 2. * mdl_sqrt__aS * constexpr_sqrt( M_PI ); + const fptype_sv mdl_G__exp__2 = ( ( G ) * ( G ) ); + // Model couplings dependent on aS + out.GC_10 = -G; + out.GC_11 = cI * G; + out.GC_12 = cI * mdl_G__exp__2; + } + // End SM implementation - no special handling of vectors of floats as in EFT (#439) + return out; } - // End SM implementation - no special handling of vectors of floats as in EFT (#439) - return out; - } #ifdef __CUDACC__ #pragma GCC diagnostic pop #pragma nv_diagnostic pop #endif -} + } -//========================================================================== + //========================================================================== -namespace Parameters_sm_independentCouplings -{ - constexpr size_t nicoup = 0; // #couplings that are fixed for all events because they do not depend on the running alphas QCD - // NB: there are no aS-independent couplings in this physics process -} + namespace Parameters_sm_independentCouplings + { + constexpr size_t nicoup = 0; // #couplings that are fixed for all events because they do not depend on the running alphas QCD + // NB: there are no aS-independent couplings in this physics process + } -//========================================================================== + //========================================================================== -#ifdef __CUDACC__ -namespace mg5amcGpu -#else -namespace mg5amcCpu -#endif -{ #pragma GCC diagnostic push #ifndef __clang__ #pragma GCC diagnostic ignored "-Wunused-but-set-variable" // e.g. <> @@ -291,7 +310,8 @@ namespace mg5amcCpu return; } #pragma GCC diagnostic pop -} + +} // end namespace mg5amcGpu/mg5amcCpu //========================================================================== diff --git a/epochX/cudacpp/gg_ttg.mad/src/cudacpp_src.mk b/epochX/cudacpp/gg_ttg.mad/src/cudacpp_src.mk index 21b6d924ff..554d7a704c 100644 --- a/epochX/cudacpp/gg_ttg.mad/src/cudacpp_src.mk +++ b/epochX/cudacpp/gg_ttg.mad/src/cudacpp_src.mk @@ -38,7 +38,13 @@ endif #------------------------------------------------------------------------------- -#=== Configure ccache for CUDA and C++ builds +#=== Configure the CUDA compiler (note: NVCC is already exported including ccache) + +###$(info NVCC=$(NVCC)) + +#------------------------------------------------------------------------------- + +#=== Configure ccache for C++ builds (note: NVCC is already exported including ccache) # Enable ccache if USECCACHE=1 ifeq ($(USECCACHE)$(shell echo $(CXX) | grep ccache),1) @@ -47,11 +53,6 @@ endif #ifeq ($(USECCACHE)$(shell echo $(AR) | grep ccache),1) # override AR:=ccache $(AR) #endif -#ifneq ($(NVCC),) -# ifeq ($(USECCACHE)$(shell echo $(NVCC) | grep ccache),1) -# override NVCC:=ccache $(NVCC) -# endif -#endif #------------------------------------------------------------------------------- @@ -115,7 +116,9 @@ else ifneq ($(shell $(CXX) --version | grep ^nvc++),) # support nvc++ #531 $(error Unknown AVX='$(AVX)': only 'none', 'sse4', 'avx2', '512y' and '512z' are supported) endif else - ifeq ($(AVX),sse4) + ifeq ($(AVX),none) + override AVXFLAGS = -march=x86-64 # no SIMD (see #588) + else ifeq ($(AVX),sse4) override AVXFLAGS = -march=nehalem # SSE4.2 with 128 width (xmm registers) else ifeq ($(AVX),avx2) override AVXFLAGS = -march=haswell # AVX2 with 256 width (ymm registers) [DEFAULT for clang] @@ -216,7 +219,7 @@ MG5AMC_COMMONLIB = mg5amc_common all.$(TAG): $(BUILDDIR)/.build.$(TAG) $(LIBDIR)/.build.$(TAG) $(LIBDIR)/lib$(MG5AMC_COMMONLIB).so # Target (and build options): debug -debug: OPTFLAGS = -g -O0 -DDEBUG2 +debug: OPTFLAGS = -g -O0 debug: all.$(TAG) # Target: tag-specific build lockfiles @@ -237,17 +240,31 @@ $(LIBDIR)/.build.$(TAG): # Generic target and build rules: objects from C++ compilation $(BUILDDIR)/%.o : %.cc *.h $(BUILDDIR)/.build.$(TAG) - @if [ ! -d $(BUILDDIR) ]; then mkdir -p $(BUILDDIR); fi - $(CXX) $(CPPFLAGS) $(CXXFLAGS) -c $< -o $@ + @if [ ! -d $(BUILDDIR) ]; then echo "mkdir -p $(BUILDDIR)"; mkdir -p $(BUILDDIR); fi + $(CXX) $(CPPFLAGS) $(CXXFLAGS) -fPIC -c $< -o $@ + +# Generic target and build rules: objects from CUDA compilation +$(BUILDDIR)/%_cu.o : %.cc *.h $(BUILDDIR)/.build.$(TAG) + @if [ ! -d $(BUILDDIR) ]; then echo "mkdir -p $(BUILDDIR)"; mkdir -p $(BUILDDIR); fi + $(NVCC) $(CPPFLAGS) $(CUFLAGS) -Xcompiler -fPIC -c -x cu $< -o $@ #------------------------------------------------------------------------------- cxx_objects=$(addprefix $(BUILDDIR)/, Parameters_sm.o read_slha.o) +ifneq ($(NVCC),) +cu_objects=$(addprefix $(BUILDDIR)/, Parameters_sm_cu.o) +endif # Target (and build rules): common (src) library +ifneq ($(NVCC),) +$(LIBDIR)/lib$(MG5AMC_COMMONLIB).so : $(cxx_objects) $(cu_objects) + @if [ ! -d $(LIBDIR) ]; then echo "mkdir -p $(LIBDIR)"; mkdir -p $(LIBDIR); fi + $(NVCC) -shared -o $@ $(cxx_objects) $(cu_objects) +else $(LIBDIR)/lib$(MG5AMC_COMMONLIB).so : $(cxx_objects) @if [ ! -d $(LIBDIR) ]; then echo "mkdir -p $(LIBDIR)"; mkdir -p $(LIBDIR); fi - $(CXX) -shared -o$@ $(cxx_objects) + $(CXX) -shared -o $@ $(cxx_objects) +endif #------------------------------------------------------------------------------- diff --git a/epochX/cudacpp/gg_ttg.mad/src/mgOnGpuConfig.h b/epochX/cudacpp/gg_ttg.mad/src/mgOnGpuConfig.h index 881353abac..cacab1031a 100644 --- a/epochX/cudacpp/gg_ttg.mad/src/mgOnGpuConfig.h +++ b/epochX/cudacpp/gg_ttg.mad/src/mgOnGpuConfig.h @@ -98,6 +98,7 @@ #endif #endif +// NB: namespace mgOnGpu includes types which are defined in exactly the same way for CPU and GPU builds (see #318 and #725) namespace mgOnGpu { diff --git a/epochX/cudacpp/gg_ttg.mad/src/mgOnGpuCxtypes.h b/epochX/cudacpp/gg_ttg.mad/src/mgOnGpuCxtypes.h index 0cb2f1db7e..b56348bc58 100644 --- a/epochX/cudacpp/gg_ttg.mad/src/mgOnGpuCxtypes.h +++ b/epochX/cudacpp/gg_ttg.mad/src/mgOnGpuCxtypes.h @@ -43,8 +43,12 @@ // COMPLEX TYPES: SIMPLE COMPLEX CLASS (cxsmpl) //========================================================================== +// NB: namespace mgOnGpu includes types which are defined in exactly the same way for CPU and GPU builds (see #318 and #725) namespace mgOnGpu /* clang-format off */ { + // The number of floating point types in a complex type (real, imaginary) + constexpr int nx2 = 2; + // --- Type definition (simple complex type derived from cxtype_v) template class cxsmpl @@ -78,128 +82,139 @@ namespace mgOnGpu /* clang-format off */ using mgOnGpu::cxsmpl; // Printout to stream for user defined types -template -inline __host__ __device__ std::ostream& -operator<<( std::ostream& out, const cxsmpl& c ) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { - out << std::complex( c.real(), c.imag() ); - return out; -} + template + inline __host__ std::ostream& + operator<<( std::ostream& out, const cxsmpl& c ) + { + out << std::complex( c.real(), c.imag() ); + return out; + } -// Operators for cxsmpl -template -inline __host__ __device__ constexpr cxsmpl -operator+( const cxsmpl a ) -{ - return a; -} + // Operators for cxsmpl + template + inline __host__ __device__ constexpr cxsmpl + operator+( const cxsmpl a ) + { + return a; + } -template -inline __host__ __device__ constexpr cxsmpl -operator-( const cxsmpl& a ) -{ - return cxsmpl( -a.real(), -a.imag() ); -} + template + inline __host__ __device__ constexpr cxsmpl + operator-( const cxsmpl& a ) + { + return cxsmpl( -a.real(), -a.imag() ); + } -template -inline __host__ __device__ constexpr cxsmpl -operator+( const cxsmpl& a, const cxsmpl& b ) -{ - return cxsmpl( a.real() + b.real(), a.imag() + b.imag() ); -} + template + inline __host__ __device__ constexpr cxsmpl + operator+( const cxsmpl& a, const cxsmpl& b ) + { + return cxsmpl( a.real() + b.real(), a.imag() + b.imag() ); + } -template -inline __host__ __device__ constexpr cxsmpl -operator+( const FP& a, const cxsmpl& b ) -{ - return cxsmpl( a, 0 ) + b; -} + template + inline __host__ __device__ constexpr cxsmpl + operator+( const FP& a, const cxsmpl& b ) + { + return cxsmpl( a, 0 ) + b; + } -template -inline __host__ __device__ constexpr cxsmpl -operator-( const cxsmpl& a, const cxsmpl& b ) -{ - return cxsmpl( a.real() - b.real(), a.imag() - b.imag() ); -} + template + inline __host__ __device__ constexpr cxsmpl + operator-( const cxsmpl& a, const cxsmpl& b ) + { + return cxsmpl( a.real() - b.real(), a.imag() - b.imag() ); + } -template -inline __host__ __device__ constexpr cxsmpl -operator-( const FP& a, const cxsmpl& b ) -{ - return cxsmpl( a, 0 ) - b; -} + template + inline __host__ __device__ constexpr cxsmpl + operator-( const FP& a, const cxsmpl& b ) + { + return cxsmpl( a, 0 ) - b; + } -template -inline __host__ __device__ constexpr cxsmpl -operator*( const cxsmpl& a, const cxsmpl& b ) -{ - return cxsmpl( a.real() * b.real() - a.imag() * b.imag(), a.imag() * b.real() + a.real() * b.imag() ); -} + template + inline __host__ __device__ constexpr cxsmpl + operator*( const cxsmpl& a, const cxsmpl& b ) + { + return cxsmpl( a.real() * b.real() - a.imag() * b.imag(), a.imag() * b.real() + a.real() * b.imag() ); + } -template -inline __host__ __device__ constexpr cxsmpl -operator*( const FP& a, const cxsmpl& b ) -{ - return cxsmpl( a, 0 ) * b; -} + template + inline __host__ __device__ constexpr cxsmpl + operator*( const FP& a, const cxsmpl& b ) + { + return cxsmpl( a, 0 ) * b; + } -inline __host__ __device__ constexpr cxsmpl -operator*( const double& a, const cxsmpl& b ) -{ - return cxsmpl( a, 0 ) * b; -} + inline __host__ __device__ constexpr cxsmpl + operator*( const double& a, const cxsmpl& b ) + { + return cxsmpl( a, 0 ) * b; + } -template -inline __host__ __device__ constexpr cxsmpl -operator/( const cxsmpl& a, const cxsmpl& b ) -{ - FP bnorm = b.real() * b.real() + b.imag() * b.imag(); - return cxsmpl( ( a.real() * b.real() + a.imag() * b.imag() ) / bnorm, - ( a.imag() * b.real() - a.real() * b.imag() ) / bnorm ); -} + template + inline __host__ __device__ constexpr cxsmpl + operator/( const cxsmpl& a, const cxsmpl& b ) + { + FP bnorm = b.real() * b.real() + b.imag() * b.imag(); + return cxsmpl( ( a.real() * b.real() + a.imag() * b.imag() ) / bnorm, + ( a.imag() * b.real() - a.real() * b.imag() ) / bnorm ); + } -template -inline __host__ __device__ constexpr cxsmpl -operator/( const FP& a, const cxsmpl& b ) -{ - return cxsmpl( a, 0 ) / b; -} + template + inline __host__ __device__ constexpr cxsmpl + operator/( const FP& a, const cxsmpl& b ) + { + return cxsmpl( a, 0 ) / b; + } -template -inline __host__ __device__ constexpr cxsmpl -operator+( const cxsmpl& a, const FP& b ) -{ - return a + cxsmpl( b, 0 ); -} + template + inline __host__ __device__ constexpr cxsmpl + operator+( const cxsmpl& a, const FP& b ) + { + return a + cxsmpl( b, 0 ); + } -template -inline __host__ __device__ constexpr cxsmpl -operator-( const cxsmpl& a, const FP& b ) -{ - return a - cxsmpl( b, 0 ); -} + template + inline __host__ __device__ constexpr cxsmpl + operator-( const cxsmpl& a, const FP& b ) + { + return a - cxsmpl( b, 0 ); + } -template -inline __host__ __device__ constexpr cxsmpl -operator*( const cxsmpl& a, const FP& b ) -{ - return a * cxsmpl( b, 0 ); -} + template + inline __host__ __device__ constexpr cxsmpl + operator*( const cxsmpl& a, const FP& b ) + { + return a * cxsmpl( b, 0 ); + } -template -inline __host__ __device__ constexpr cxsmpl -operator/( const cxsmpl& a, const FP& b ) -{ - return a / cxsmpl( b, 0 ); + template + inline __host__ __device__ constexpr cxsmpl + operator/( const cxsmpl& a, const FP& b ) + { + return a / cxsmpl( b, 0 ); + } } //========================================================================== // COMPLEX TYPES: (PLATFORM-SPECIFIC) TYPEDEFS //========================================================================== -namespace mgOnGpu +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { - // --- Type definitions (complex type: cxtype) #ifdef __CUDACC__ // cuda #if defined MGONGPU_CUCXTYPE_THRUST @@ -221,390 +236,402 @@ namespace mgOnGpu #endif #endif - // The number of floating point types in a complex type (real, imaginary) - constexpr int nx2 = 2; - // SANITY CHECK: memory access may be based on casts of fptype[2] to cxtype (e.g. for wavefunctions) - static_assert( sizeof( cxtype ) == nx2 * sizeof( fptype ), "sizeof(cxtype) is not 2*sizeof(fptype)" ); + static_assert( sizeof( cxtype ) == mgOnGpu::nx2 * sizeof( fptype ), "sizeof(cxtype) is not 2*sizeof(fptype)" ); } -// Expose typedefs and operators outside the namespace -using mgOnGpu::cxtype; +// DANGEROUS! this was mixing different cxtype definitions for CPU and GPU builds (see #318 and #725) +// DO NOT expose typedefs and operators outside the namespace +//using mgOnGpu::cxtype; //========================================================================== // COMPLEX TYPES: (PLATFORM-SPECIFIC) FUNCTIONS AND OPERATORS //========================================================================== +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif +{ #if defined MGONGPU_CUCXTYPE_CXSMPL or defined MGONGPU_CPPCXTYPE_CXSMPL -//------------------------------ -// CUDA or C++ - using cxsmpl -//------------------------------ + //------------------------------ + // CUDA or C++ - using cxsmpl + //------------------------------ -inline __host__ __device__ cxtype -cxmake( const fptype& r, const fptype& i ) -{ - return cxtype( r, i ); // cxsmpl constructor -} + inline __host__ __device__ cxtype + cxmake( const fptype& r, const fptype& i ) + { + return cxtype( r, i ); // cxsmpl constructor + } -inline __host__ __device__ fptype -cxreal( const cxtype& c ) -{ - return c.real(); // cxsmpl::real() -} + inline __host__ __device__ fptype + cxreal( const cxtype& c ) + { + return c.real(); // cxsmpl::real() + } -inline __host__ __device__ fptype -cximag( const cxtype& c ) -{ - return c.imag(); // cxsmpl::imag() -} + inline __host__ __device__ fptype + cximag( const cxtype& c ) + { + return c.imag(); // cxsmpl::imag() + } -inline __host__ __device__ cxtype -cxconj( const cxtype& c ) -{ - return conj( c ); // conj( cxsmpl ) -} + inline __host__ __device__ cxtype + cxconj( const cxtype& c ) + { + return conj( c ); // conj( cxsmpl ) + } -inline __host__ cxtype // NOT __device__ -cxmake( const std::complex& c ) // std::complex to cxsmpl (float-to-float or float-to-double) -{ - return cxmake( c.real(), c.imag() ); -} + inline __host__ cxtype // NOT __device__ + cxmake( const std::complex& c ) // std::complex to cxsmpl (float-to-float or float-to-double) + { + return cxmake( c.real(), c.imag() ); + } -inline __host__ cxtype // NOT __device__ -cxmake( const std::complex& c ) // std::complex to cxsmpl (double-to-float or double-to-double) -{ - return cxmake( c.real(), c.imag() ); -} + inline __host__ cxtype // NOT __device__ + cxmake( const std::complex& c ) // std::complex to cxsmpl (double-to-float or double-to-double) + { + return cxmake( c.real(), c.imag() ); + } #endif // #if defined MGONGPU_CUCXTYPE_CXSMPL or defined MGONGPU_CPPCXTYPE_CXSMPL -//========================================================================== + //========================================================================== #if defined __CUDACC__ and defined MGONGPU_CUCXTYPE_THRUST // cuda + thrust -//------------------------------ -// CUDA - using thrust::complex -//------------------------------ + //------------------------------ + // CUDA - using thrust::complex + //------------------------------ -inline __host__ __device__ cxtype -cxmake( const fptype& r, const fptype& i ) -{ - return cxtype( r, i ); // thrust::complex constructor -} + inline __host__ __device__ cxtype + cxmake( const fptype& r, const fptype& i ) + { + return cxtype( r, i ); // thrust::complex constructor + } -inline __host__ __device__ fptype -cxreal( const cxtype& c ) -{ - return c.real(); // thrust::complex::real() -} + inline __host__ __device__ fptype + cxreal( const cxtype& c ) + { + return c.real(); // thrust::complex::real() + } -inline __host__ __device__ fptype -cximag( const cxtype& c ) -{ - return c.imag(); // thrust::complex::imag() -} + inline __host__ __device__ fptype + cximag( const cxtype& c ) + { + return c.imag(); // thrust::complex::imag() + } -inline __host__ __device__ cxtype -cxconj( const cxtype& c ) -{ - return conj( c ); // conj( thrust::complex ) -} + inline __host__ __device__ cxtype + cxconj( const cxtype& c ) + { + return conj( c ); // conj( thrust::complex ) + } -inline __host__ __device__ const cxtype& -cxmake( const cxtype& c ) -{ - return c; -} + inline __host__ __device__ const cxtype& + cxmake( const cxtype& c ) + { + return c; + } #endif // #if defined __CUDACC__ and defined MGONGPU_CUCXTYPE_THRUST -//========================================================================== + //========================================================================== #if defined __CUDACC__ and defined MGONGPU_CUCXTYPE_CUCOMPLEX // cuda + cucomplex -//------------------------------ -// CUDA - using cuComplex -//------------------------------ + //------------------------------ + // CUDA - using cuComplex + //------------------------------ #if defined MGONGPU_FPTYPE_DOUBLE // cuda + cucomplex + double -//+++++++++++++++++++++++++ -// cuDoubleComplex ONLY -//+++++++++++++++++++++++++ + //+++++++++++++++++++++++++ + // cuDoubleComplex ONLY + //+++++++++++++++++++++++++ -inline __host__ __device__ cxtype -cxmake( const fptype& r, const fptype& i ) -{ - return make_cuDoubleComplex( r, i ); -} + inline __host__ __device__ cxtype + cxmake( const fptype& r, const fptype& i ) + { + return make_cuDoubleComplex( r, i ); + } -inline __host__ __device__ fptype -cxreal( const cxtype& c ) -{ - return cuCreal( c ); // returns by value -} + inline __host__ __device__ fptype + cxreal( const cxtype& c ) + { + return cuCreal( c ); // returns by value + } -inline __host__ __device__ fptype -cximag( const cxtype& c ) -{ - return cuCimag( c ); // returns by value -} + inline __host__ __device__ fptype + cximag( const cxtype& c ) + { + return cuCimag( c ); // returns by value + } -inline __host__ __device__ cxtype -operator+( const cxtype& a, const cxtype& b ) -{ - return cuCadd( a, b ); -} + inline __host__ __device__ cxtype + operator+( const cxtype& a, const cxtype& b ) + { + return cuCadd( a, b ); + } -inline __host__ __device__ cxtype& -operator+=( cxtype& a, const cxtype& b ) -{ - a = cuCadd( a, b ); - return a; -} + inline __host__ __device__ cxtype& + operator+=( cxtype& a, const cxtype& b ) + { + a = cuCadd( a, b ); + return a; + } -inline __host__ __device__ cxtype -operator-( const cxtype& a, const cxtype& b ) -{ - return cuCsub( a, b ); -} + inline __host__ __device__ cxtype + operator-( const cxtype& a, const cxtype& b ) + { + return cuCsub( a, b ); + } -inline __host__ __device__ cxtype& -operator-=( cxtype& a, const cxtype& b ) -{ - a = cuCsub( a, b ); - return a; -} + inline __host__ __device__ cxtype& + operator-=( cxtype& a, const cxtype& b ) + { + a = cuCsub( a, b ); + return a; + } -inline __host__ __device__ cxtype -operator*( const cxtype& a, const cxtype& b ) -{ - return cuCmul( a, b ); -} + inline __host__ __device__ cxtype + operator*( const cxtype& a, const cxtype& b ) + { + return cuCmul( a, b ); + } -inline __host__ __device__ cxtype -operator/( const cxtype& a, const cxtype& b ) -{ - return cuCdiv( a, b ); -} + inline __host__ __device__ cxtype + operator/( const cxtype& a, const cxtype& b ) + { + return cuCdiv( a, b ); + } #elif defined MGONGPU_FPTYPE_FLOAT // cuda + cucomplex + float -//+++++++++++++++++++++++++ -// cuFloatComplex ONLY -//+++++++++++++++++++++++++ + //+++++++++++++++++++++++++ + // cuFloatComplex ONLY + //+++++++++++++++++++++++++ -inline __host__ __device__ cxtype -cxmake( const fptype& r, const fptype& i ) -{ - return make_cuFloatComplex( r, i ); -} + inline __host__ __device__ cxtype + cxmake( const fptype& r, const fptype& i ) + { + return make_cuFloatComplex( r, i ); + } -inline __host__ __device__ fptype -cxreal( const cxtype& c ) -{ - return cuCrealf( c ); // returns by value -} + inline __host__ __device__ fptype + cxreal( const cxtype& c ) + { + return cuCrealf( c ); // returns by value + } -inline __host__ __device__ fptype -cximag( const cxtype& c ) -{ - return cuCimagf( c ); // returns by value -} + inline __host__ __device__ fptype + cximag( const cxtype& c ) + { + return cuCimagf( c ); // returns by value + } -inline __host__ __device__ cxtype -operator+( const cxtype& a, const cxtype& b ) -{ - return cuCaddf( a, b ); -} + inline __host__ __device__ cxtype + operator+( const cxtype& a, const cxtype& b ) + { + return cuCaddf( a, b ); + } -inline __host__ __device__ cxtype& -operator+=( cxtype& a, const cxtype& b ) -{ - a = cuCaddf( a, b ); - return a; -} + inline __host__ __device__ cxtype& + operator+=( cxtype& a, const cxtype& b ) + { + a = cuCaddf( a, b ); + return a; + } -inline __host__ __device__ cxtype -operator-( const cxtype& a, const cxtype& b ) -{ - return cuCsubf( a, b ); -} + inline __host__ __device__ cxtype + operator-( const cxtype& a, const cxtype& b ) + { + return cuCsubf( a, b ); + } -inline __host__ __device__ cxtype& -operator-=( cxtype& a, const cxtype& b ) -{ - a = cuCsubf( a, b ); - return a; -} + inline __host__ __device__ cxtype& + operator-=( cxtype& a, const cxtype& b ) + { + a = cuCsubf( a, b ); + return a; + } -inline __host__ __device__ cxtype -operator*( const cxtype& a, const cxtype& b ) -{ - return cuCmulf( a, b ); -} + inline __host__ __device__ cxtype + operator*( const cxtype& a, const cxtype& b ) + { + return cuCmulf( a, b ); + } -inline __host__ __device__ cxtype -operator/( const cxtype& a, const cxtype& b ) -{ - return cuCdivf( a, b ); -} + inline __host__ __device__ cxtype + operator/( const cxtype& a, const cxtype& b ) + { + return cuCdivf( a, b ); + } -inline __host__ cxtype // NOT __device__ -cxmake( const std::complex& c ) // std::complex to cucomplex (cast double-to-float) -{ - return cxmake( (fptype)c.real(), (fptype)c.imag() ); -} + inline __host__ cxtype // NOT __device__ + cxmake( const std::complex& c ) // std::complex to cucomplex (cast double-to-float) + { + return cxmake( (fptype)c.real(), (fptype)c.imag() ); + } #endif -//+++++++++++++++++++++++++ -// cuDoubleComplex OR -// cuFloatComplex -//+++++++++++++++++++++++++ + //+++++++++++++++++++++++++ + // cuDoubleComplex OR + // cuFloatComplex + //+++++++++++++++++++++++++ -inline __host__ __device__ cxtype -operator+( const cxtype a ) -{ - return a; -} + inline __host__ __device__ cxtype + operator+( const cxtype a ) + { + return a; + } -inline __host__ __device__ cxtype -operator-( const cxtype& a ) -{ - return cxmake( -cxreal( a ), -cximag( a ) ); -} + inline __host__ __device__ cxtype + operator-( const cxtype& a ) + { + return cxmake( -cxreal( a ), -cximag( a ) ); + } -inline __host__ __device__ cxtype -operator+( const fptype& a, const cxtype& b ) -{ - return cxmake( a, 0 ) + b; -} + inline __host__ __device__ cxtype + operator+( const fptype& a, const cxtype& b ) + { + return cxmake( a, 0 ) + b; + } -inline __host__ __device__ cxtype -operator-( const fptype& a, const cxtype& b ) -{ - return cxmake( a, 0 ) - b; -} + inline __host__ __device__ cxtype + operator-( const fptype& a, const cxtype& b ) + { + return cxmake( a, 0 ) - b; + } -inline __host__ __device__ cxtype -operator*( const fptype& a, const cxtype& b ) -{ - return cxmake( a, 0 ) * b; -} + inline __host__ __device__ cxtype + operator*( const fptype& a, const cxtype& b ) + { + return cxmake( a, 0 ) * b; + } -inline __host__ __device__ cxtype -operator/( const fptype& a, const cxtype& b ) -{ - return cxmake( a, 0 ) / b; -} + inline __host__ __device__ cxtype + operator/( const fptype& a, const cxtype& b ) + { + return cxmake( a, 0 ) / b; + } -inline __host__ __device__ cxtype -operator+( const cxtype& a, const fptype& b ) -{ - return a + cxmake( b, 0 ); -} + inline __host__ __device__ cxtype + operator+( const cxtype& a, const fptype& b ) + { + return a + cxmake( b, 0 ); + } -inline __host__ __device__ cxtype -operator-( const cxtype& a, const fptype& b ) -{ - return a - cxmake( b, 0 ); -} + inline __host__ __device__ cxtype + operator-( const cxtype& a, const fptype& b ) + { + return a - cxmake( b, 0 ); + } -inline __host__ __device__ cxtype -operator*( const cxtype& a, const fptype& b ) -{ - return a * cxmake( b, 0 ); -} + inline __host__ __device__ cxtype + operator*( const cxtype& a, const fptype& b ) + { + return a * cxmake( b, 0 ); + } -inline __host__ __device__ cxtype -operator/( const cxtype& a, const fptype& b ) -{ - return a / cxmake( b, 0 ); -} + inline __host__ __device__ cxtype + operator/( const cxtype& a, const fptype& b ) + { + return a / cxmake( b, 0 ); + } -inline __host__ __device__ cxtype -cxconj( const cxtype& c ) -{ - return cxmake( cxreal( c ), -cximag( c ) ); -} + inline __host__ __device__ cxtype + cxconj( const cxtype& c ) + { + return cxmake( cxreal( c ), -cximag( c ) ); + } -inline __host__ cxtype // NOT __device__ -cxmake( const std::complex& c ) // std::complex to cucomplex (float-to-float or double-to-double) -{ - return cxmake( c.real(), c.imag() ); -} + inline __host__ cxtype // NOT __device__ + cxmake( const std::complex& c ) // std::complex to cucomplex (float-to-float or double-to-double) + { + return cxmake( c.real(), c.imag() ); + } #endif // #if defined __CUDACC__ and defined MGONGPU_CUCXTYPE_CUCOMPLEX -//========================================================================== + //========================================================================== #if not defined __CUDACC__ and defined MGONGPU_CPPCXTYPE_STDCOMPLEX // c++ + stdcomplex -//------------------------------ -// C++ - using std::complex -//------------------------------ + //------------------------------ + // C++ - using std::complex + //------------------------------ -inline cxtype -cxmake( const fptype& r, const fptype& i ) -{ - return cxtype( r, i ); // std::complex constructor -} + inline cxtype + cxmake( const fptype& r, const fptype& i ) + { + return cxtype( r, i ); // std::complex constructor + } -inline fptype -cxreal( const cxtype& c ) -{ - return c.real(); // std::complex::real() -} + inline fptype + cxreal( const cxtype& c ) + { + return c.real(); // std::complex::real() + } -inline fptype -cximag( const cxtype& c ) -{ - return c.imag(); // std::complex::imag() -} + inline fptype + cximag( const cxtype& c ) + { + return c.imag(); // std::complex::imag() + } -inline cxtype -cxconj( const cxtype& c ) -{ - return conj( c ); // conj( std::complex ) -} + inline cxtype + cxconj( const cxtype& c ) + { + return conj( c ); // conj( std::complex ) + } -inline const cxtype& -cxmake( const cxtype& c ) // std::complex to std::complex (float-to-float or double-to-double) -{ - return c; -} + inline const cxtype& + cxmake( const cxtype& c ) // std::complex to std::complex (float-to-float or double-to-double) + { + return c; + } #if defined MGONGPU_FPTYPE_FLOAT -inline cxtype -cxmake( const std::complex& c ) // std::complex to std::complex (cast double-to-float) -{ - return cxmake( (fptype)c.real(), (fptype)c.imag() ); -} + inline cxtype + cxmake( const std::complex& c ) // std::complex to std::complex (cast double-to-float) + { + return cxmake( (fptype)c.real(), (fptype)c.imag() ); + } #endif #endif // #if not defined __CUDACC__ and defined MGONGPU_CPPCXTYPE_STDCOMPLEX -//========================================================================== + //========================================================================== -inline __host__ __device__ const cxtype -cxmake( const cxsmpl& c ) // cxsmpl to cxtype (float-to-float or float-to-double) -{ - return cxmake( c.real(), c.imag() ); -} + inline __host__ __device__ const cxtype + cxmake( const cxsmpl& c ) // cxsmpl to cxtype (float-to-float or float-to-double) + { + return cxmake( c.real(), c.imag() ); + } -inline __host__ __device__ const cxtype -cxmake( const cxsmpl& c ) // cxsmpl to cxtype (double-to-float or double-to-double) -{ - return cxmake( c.real(), c.imag() ); -} + inline __host__ __device__ const cxtype + cxmake( const cxsmpl& c ) // cxsmpl to cxtype (double-to-float or double-to-double) + { + return cxmake( c.real(), c.imag() ); + } + +} // end namespace mg5amcGpu/mg5amcCpu //========================================================================== // COMPLEX TYPES: WRAPPER OVER RI FLOATING POINT PAIR (cxtype_ref) //========================================================================== -namespace mgOnGpu /* clang-format off */ +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { // The cxtype_ref class (a non-const reference to two fp variables) was originally designed for cxtype_v::operator[] // It used to be included in the code only when MGONGPU_HAS_CPPCXTYPEV_BRK (originally MGONGPU_HAS_CPPCXTYPE_REF) is defined @@ -615,23 +642,30 @@ namespace mgOnGpu /* clang-format off */ cxtype_ref() = delete; cxtype_ref( const cxtype_ref& ) = delete; cxtype_ref( cxtype_ref&& ) = default; // copy refs - __host__ __device__ cxtype_ref( fptype& r, fptype& i ) : m_preal( &r ), m_pimag( &i ) {} // copy refs + __host__ __device__ cxtype_ref( fptype& r, fptype& i ) + : m_preal( &r ), m_pimag( &i ) {} // copy refs cxtype_ref& operator=( const cxtype_ref& ) = delete; //__host__ __device__ cxtype_ref& operator=( cxtype_ref&& c ) {...} // REMOVED! Should copy refs or copy values? No longer needed in cxternary - __host__ __device__ cxtype_ref& operator=( const cxtype& c ) { *m_preal = cxreal( c ); *m_pimag = cximag( c ); return *this; } // copy values + __host__ __device__ cxtype_ref& operator=( const cxtype& c ) + { + *m_preal = cxreal( c ); + *m_pimag = cximag( c ); + return *this; + } // copy values __host__ __device__ operator cxtype() const { return cxmake( *m_preal, *m_pimag ); } private: fptype *m_preal, *m_pimag; // RI }; -} /* clang-format on */ -// Printout to stream for user defined types -inline __host__ __device__ std::ostream& -operator<<( std::ostream& out, const mgOnGpu::cxtype_ref& c ) -{ - out << (cxtype)c; - return out; -} + // Printout to stream for user defined types + inline __host__ __device__ std::ostream& + operator<<( std::ostream& out, const cxtype_ref& c ) + { + out << (cxtype)c; + return out; + } + +} // end namespace mg5amcGpu/mg5amcCpu //========================================================================== diff --git a/epochX/cudacpp/gg_ttg.mad/src/mgOnGpuFptypes.h b/epochX/cudacpp/gg_ttg.mad/src/mgOnGpuFptypes.h index a1cde16a67..905c97d700 100644 --- a/epochX/cudacpp/gg_ttg.mad/src/mgOnGpuFptypes.h +++ b/epochX/cudacpp/gg_ttg.mad/src/mgOnGpuFptypes.h @@ -11,82 +11,91 @@ #include #include -//========================================================================== - -#ifdef __CUDACC__ // cuda - -//------------------------------ -// Floating point types - Cuda -//------------------------------ - -/* -inline __host__ __device__ fptype -fpmax( const fptype& a, const fptype& b ) -{ - return max( a, b ); -} - -inline __host__ __device__ fptype -fpmin( const fptype& a, const fptype& b ) -{ - return min( a, b ); -} -*/ - -inline __host__ __device__ const fptype& -fpmax( const fptype& a, const fptype& b ) +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { - return ( ( b < a ) ? a : b ); -} + //========================================================================== -inline __host__ __device__ const fptype& -fpmin( const fptype& a, const fptype& b ) -{ - return ( ( a < b ) ? a : b ); -} +#ifdef __CUDACC__ // cuda -inline __host__ __device__ fptype -fpsqrt( const fptype& f ) -{ + //------------------------------ + // Floating point types - Cuda + //------------------------------ + + /* + inline __host__ __device__ fptype + fpmax( const fptype& a, const fptype& b ) + { + return max( a, b ); + } + + inline __host__ __device__ fptype + fpmin( const fptype& a, const fptype& b ) + { + return min( a, b ); + } + */ + + inline __host__ __device__ const fptype& + fpmax( const fptype& a, const fptype& b ) + { + return ( ( b < a ) ? a : b ); + } + + inline __host__ __device__ const fptype& + fpmin( const fptype& a, const fptype& b ) + { + return ( ( a < b ) ? a : b ); + } + + inline __host__ __device__ fptype + fpsqrt( const fptype& f ) + { #if defined MGONGPU_FPTYPE_FLOAT - // See https://docs.nvidia.com/cuda/cuda-math-api/group__CUDA__MATH__SINGLE.html - return sqrtf( f ); + // See https://docs.nvidia.com/cuda/cuda-math-api/group__CUDA__MATH__SINGLE.html + return sqrtf( f ); #else - // See https://docs.nvidia.com/cuda/cuda-math-api/group__CUDA__MATH__DOUBLE.html - return sqrt( f ); + // See https://docs.nvidia.com/cuda/cuda-math-api/group__CUDA__MATH__DOUBLE.html + return sqrt( f ); #endif -} + } #endif // #ifdef __CUDACC__ -//========================================================================== + //========================================================================== #ifndef __CUDACC__ -//------------------------------ -// Floating point types - C++ -//------------------------------ + //------------------------------ + // Floating point types - C++ + //------------------------------ -inline const fptype& -fpmax( const fptype& a, const fptype& b ) -{ - return std::max( a, b ); -} + inline const fptype& + fpmax( const fptype& a, const fptype& b ) + { + return std::max( a, b ); + } -inline const fptype& -fpmin( const fptype& a, const fptype& b ) -{ - return std::min( a, b ); -} + inline const fptype& + fpmin( const fptype& a, const fptype& b ) + { + return std::min( a, b ); + } -inline fptype -fpsqrt( const fptype& f ) -{ - return std::sqrt( f ); -} + inline fptype + fpsqrt( const fptype& f ) + { + return std::sqrt( f ); + } #endif // #ifndef __CUDACC__ -//========================================================================== + //========================================================================== + +} // end namespace mg5amcGpu/mg5amcCpu #endif // MGONGPUFPTYPES_H diff --git a/epochX/cudacpp/gg_ttg.mad/src/mgOnGpuVectors.h b/epochX/cudacpp/gg_ttg.mad/src/mgOnGpuVectors.h index 9d3e82b1e3..0d3892d026 100644 --- a/epochX/cudacpp/gg_ttg.mad/src/mgOnGpuVectors.h +++ b/epochX/cudacpp/gg_ttg.mad/src/mgOnGpuVectors.h @@ -31,7 +31,12 @@ //#undef MGONGPU_HAS_CPPCXTYPEV_BRK // gcc test (very slightly slower? issue #172) #endif -namespace mgOnGpu /* clang-format off */ +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { #ifdef MGONGPU_CPPSIMD @@ -72,22 +77,40 @@ namespace mgOnGpu /* clang-format off */ public: // Array initialization: zero-out as "{0}" (C and C++) or as "{}" (C++ only) // See https://en.cppreference.com/w/c/language/array_initialization#Notes - cxtype_v() : m_real{ 0 }, m_imag{ 0 } {} // RRRR=0000 IIII=0000 + cxtype_v() + : m_real{ 0 }, m_imag{ 0 } {} // RRRR=0000 IIII=0000 cxtype_v( const cxtype_v& ) = default; cxtype_v( cxtype_v&& ) = default; - cxtype_v( const fptype_v& r, const fptype_v& i ) : m_real( r ), m_imag( i ) {} - cxtype_v( const fptype_v& r ) : m_real( r ), m_imag{ 0 } {} // IIII=0000 + cxtype_v( const fptype_v& r, const fptype_v& i ) + : m_real( r ), m_imag( i ) {} + cxtype_v( const fptype_v& r ) + : m_real( r ), m_imag{ 0 } {} // IIII=0000 + cxtype_v( const fptype& r ) + : m_real( fptype_v{} + r ), m_imag{ 0 } {} // IIII=0000 cxtype_v& operator=( const cxtype_v& ) = default; cxtype_v& operator=( cxtype_v&& ) = default; - cxtype_v& operator+=( const cxtype_v& c ) { m_real += c.real(); m_imag += c.imag(); return *this; } - cxtype_v& operator-=( const cxtype_v& c ) { m_real -= c.real(); m_imag -= c.imag(); return *this; } + cxtype_v& operator+=( const cxtype_v& c ) + { + m_real += c.real(); + m_imag += c.imag(); + return *this; + } + cxtype_v& operator-=( const cxtype_v& c ) + { + m_real -= c.real(); + m_imag -= c.imag(); + return *this; + } #ifdef MGONGPU_HAS_CPPCXTYPEV_BRK // NB: THIS IS THE FUNDAMENTAL DIFFERENCE BETWEEN MGONGPU_HAS_CPPCXTYPEV_BRK DEFINED AND NOT DEFINED // NB: the alternative "clang" implementation is simpler: it simply does not have any bracket operator[] // NB: ** do NOT implement operator[] to return a value: it does not fail the build (why?) and gives unexpected results! ** cxtype_ref operator[]( size_t i ) const { return cxtype_ref( m_real[i], m_imag[i] ); } #endif - const fptype_v& real() const { return m_real; } + const fptype_v& real() const + { + return m_real; + } const fptype_v& imag() const { return m_imag; } private: fptype_v m_real, m_imag; // RRRRIIII @@ -98,7 +121,7 @@ namespace mgOnGpu /* clang-format off */ #if defined MGONGPU_FPTYPE_DOUBLE typedef long int bool_v __attribute__( ( ext_vector_type( neppV ) ) ); // bbbb #elif defined MGONGPU_FPTYPE_FLOAT - typedef int bool_v __attribute__( ( ext_vector_type( neppV ) ) ); // bbbb + typedef int bool_v __attribute__( ( ext_vector_type( neppV ) ) ); // bbbb #endif #else // gcc #if defined MGONGPU_FPTYPE_DOUBLE @@ -113,532 +136,551 @@ namespace mgOnGpu /* clang-format off */ const int neppV = 1; #endif // #ifdef MGONGPU_CPPSIMD - -} /* clang-format on */ +} //-------------------------------------------------------------------------- -// Expose typedefs outside the namespace -using mgOnGpu::neppV; -#ifdef MGONGPU_CPPSIMD -using mgOnGpu::fptype_v; -using mgOnGpu::fptype2_v; -using mgOnGpu::cxtype_v; -using mgOnGpu::bool_v; -#endif +// DANGEROUS! this was mixing different cxtype definitions for CPU and GPU builds (see #318 and #725) +// DO NOT expose typedefs outside the namespace +//using mgOnGpu::neppV; +//#ifdef MGONGPU_CPPSIMD +//using mgOnGpu::fptype_v; +//using mgOnGpu::fptype2_v; +//using mgOnGpu::cxtype_v; +//using mgOnGpu::bool_v; +//#endif -//-------------------------------------------------------------------------- +//========================================================================== +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif +{ #ifndef __CUDACC__ -// Printout to stream for user defined types + // Printout to stream for user defined types #ifndef MGONGPU_CPPCXTYPE_CXSMPL // operator<< for cxsmpl has already been defined! -inline std::ostream& -operator<<( std::ostream& out, const cxtype& c ) -{ - out << "[" << cxreal( c ) << "," << cximag( c ) << "]"; - //out << cxreal(c) << "+i" << cximag(c); - return out; -} + inline std::ostream& + operator<<( std::ostream& out, const cxtype& c ) + { + out << "[" << cxreal( c ) << "," << cximag( c ) << "]"; + //out << cxreal(c) << "+i" << cximag(c); + return out; + } #endif -/* + /* #ifdef MGONGPU_CPPSIMD -inline std::ostream& -operator<<( std::ostream& out, const bool_v& v ) -{ - out << "{ " << v[0]; - for ( int i=1; i t t~ g No model currently active, so we import the Standard Model INFO: load particles INFO: load vertices -DEBUG: model prefixing takes 0.004593372344970703  +DEBUG: model prefixing takes 0.004968166351318359  INFO: Restrict model sm with file models/sm/restrict_default.dat . DEBUG: Simplifying conditional expressions  DEBUG: remove interactions: u s w+ at order: QED=1  @@ -171,37 +171,37 @@ INFO: Processing color information for process: g g > t t~ g @1 DEBUG: type(subproc_group)= [output.py at line 187]  DEBUG: type(fortran_model)= [output.py at line 188]  DEBUG: type(me)= me=0 [output.py at line 189]  -DEBUG: Entering PLUGIN_OneProcessExporter.__init__ [model_handling.py at line 1028]  -DEBUG: proc_id =  0 [model_handling.py at line 1034]  +DEBUG: Entering PLUGIN_OneProcessExporter.__init__ [model_handling.py at line 1039]  +DEBUG: proc_id =  0 [model_handling.py at line 1045]  INFO: Creating files in directory /data/avalassi/GPU2023/MG5aMC/ghav-mg5amcnlo/CODEGEN_cudacpp_gg_ttg/SubProcesses/P1_Sigma_sm_gg_ttxg -DEBUG: Entering PLUGIN_OneProcessExporter.generate_process_files [model_handling.py at line 1286]  -DEBUG: self.include_multi_channel is not yet defined: this is standalone_cudacpp mode [model_handling.py at line 1290]  +DEBUG: Entering PLUGIN_OneProcessExporter.generate_process_files [model_handling.py at line 1297]  +DEBUG: self.include_multi_channel is not yet defined: this is standalone_cudacpp mode [model_handling.py at line 1301]  FileWriter for /data/avalassi/GPU2023/MG5aMC/ghav-mg5amcnlo/CODEGEN_cudacpp_gg_ttg/SubProcesses/P1_Sigma_sm_gg_ttxg/./CPPProcess.h -DEBUG: Entering PLUGIN_OneProcessExporter.write_process_h_file [model_handling.py at line 1442]  +DEBUG: Entering PLUGIN_OneProcessExporter.write_process_h_file [model_handling.py at line 1453]  FileWriter for /data/avalassi/GPU2023/MG5aMC/ghav-mg5amcnlo/CODEGEN_cudacpp_gg_ttg/SubProcesses/P1_Sigma_sm_gg_ttxg/./CPPProcess.cc -DEBUG: Entering PLUGIN_OneProcessExporter.write_process_cc_file [model_handling.py at line 1464]  -DEBUG: Entering PLUGIN_OneProcessExporter.get_sigmaKin_lines [model_handling.py at line 1132]  -DEBUG: self.include_multi_channel =  False [model_handling.py at line 1133]  -DEBUG: self.support_multichannel =  True [model_handling.py at line 1134]  -DEBUG: type(self.helas_call_writer) =  [model_handling.py at line 1151]  -DEBUG: self.support_multichannel, self.include_multi_channel =  True False [model_handling.py at line 1152]  -DEBUG: multi_channel_map =  None [model_handling.py at line 1643]  -DEBUG: diag_to_config =  {} [model_handling.py at line 1698]  -DEBUG: call =  vxxxxx( momenta,m_pars->%s, cHel[ihel][%d],%+d, w_sv[%d], %d ); [model_handling.py at line 1810]  -DEBUG: ('ZERO', 0, -1, 0, 0) [model_handling.py at line 1811]  -DEBUG: call =  vxxxxx( momenta,m_pars->%s, cHel[ihel][%d],%+d, w_sv[%d], %d ); [model_handling.py at line 1810]  -DEBUG: ('ZERO', 1, -1, 1, 1) [model_handling.py at line 1811]  -DEBUG: call =  vxxxxx( momenta,m_pars->%s, cHel[ihel][%d],%+d, w_sv[%d], %d ); [model_handling.py at line 1810]  -DEBUG: ('ZERO', 4, 1, 4, 4) [model_handling.py at line 1811]  +DEBUG: Entering PLUGIN_OneProcessExporter.write_process_cc_file [model_handling.py at line 1475]  +DEBUG: Entering PLUGIN_OneProcessExporter.get_sigmaKin_lines [model_handling.py at line 1143]  +DEBUG: self.include_multi_channel =  False [model_handling.py at line 1144]  +DEBUG: self.support_multichannel =  True [model_handling.py at line 1145]  +DEBUG: type(self.helas_call_writer) =  [model_handling.py at line 1162]  +DEBUG: self.support_multichannel, self.include_multi_channel =  True False [model_handling.py at line 1163]  +DEBUG: multi_channel_map =  None [model_handling.py at line 1654]  +DEBUG: diag_to_config =  {} [model_handling.py at line 1709]  +DEBUG: call =  vxxxxx( momenta,m_pars->%s, cHel[ihel][%d],%+d, w_sv[%d], %d ); [model_handling.py at line 1821]  +DEBUG: ('ZERO', 0, -1, 0, 0) [model_handling.py at line 1822]  +DEBUG: call =  vxxxxx( momenta,m_pars->%s, cHel[ihel][%d],%+d, w_sv[%d], %d ); [model_handling.py at line 1821]  +DEBUG: ('ZERO', 1, -1, 1, 1) [model_handling.py at line 1822]  +DEBUG: call =  vxxxxx( momenta,m_pars->%s, cHel[ihel][%d],%+d, w_sv[%d], %d ); [model_handling.py at line 1821]  +DEBUG: ('ZERO', 4, 1, 4, 4) [model_handling.py at line 1822]  INFO: Created files CPPProcess.h and CPPProcess.cc in directory /data/avalassi/GPU2023/MG5aMC/ghav-mg5amcnlo/CODEGEN_cudacpp_gg_ttg/SubProcesses/P1_Sigma_sm_gg_ttxg/. -DEBUG: Entering PLUGIN_OneProcessExporter.edit_CMakeLists [model_handling.py at line 1332]  -DEBUG: Entering PLUGIN_OneProcessExporter.edit_check_sa [model_handling.py at line 1341]  -DEBUG: Entering PLUGIN_OneProcessExporter.edit_mgonGPU [model_handling.py at line 1358]  -DEBUG: Entering PLUGIN_OneProcessExporter.edit_processidfile [model_handling.py at line 1378]  -DEBUG: Entering PLUGIN_OneProcessExporter.edit_testxxx [model_handling.py at line 1408]  -DEBUG: Entering PLUGIN_OneProcessExporter.edit_memorybuffers [model_handling.py at line 1419]  -DEBUG: Entering PLUGIN_OneProcessExporter.edit_memoryaccesscouplings [model_handling.py at line 1430]  -DEBUG: 'Copying test reference file: ', template_ref =  Copying test reference file: /data/avalassi/GPU2023/MG5aMC/ghav-mg5amcnlo/PLUGIN/CUDACPP_SA_OUTPUT/madgraph/iolibs/template_files/../../../test/ref/dump_CPUTest.Sigma_sm_gg_ttxg.txt [model_handling.py at line 1324]  +DEBUG: Entering PLUGIN_OneProcessExporter.edit_CMakeLists [model_handling.py at line 1343]  +DEBUG: Entering PLUGIN_OneProcessExporter.edit_check_sa [model_handling.py at line 1352]  +DEBUG: Entering PLUGIN_OneProcessExporter.edit_mgonGPU [model_handling.py at line 1369]  +DEBUG: Entering PLUGIN_OneProcessExporter.edit_processidfile [model_handling.py at line 1389]  +DEBUG: Entering PLUGIN_OneProcessExporter.edit_testxxx [model_handling.py at line 1419]  +DEBUG: Entering PLUGIN_OneProcessExporter.edit_memorybuffers [model_handling.py at line 1430]  +DEBUG: Entering PLUGIN_OneProcessExporter.edit_memoryaccesscouplings [model_handling.py at line 1441]  +DEBUG: 'Copying test reference file: ', template_ref =  Copying test reference file: /data/avalassi/GPU2023/MG5aMC/ghav-mg5amcnlo/PLUGIN/CUDACPP_SA_OUTPUT/madgraph/iolibs/template_files/../../../test/ref/dump_CPUTest.Sigma_sm_gg_ttxg.txt [model_handling.py at line 1335]  Generated helas calls for 1 subprocesses (16 diagrams) in 0.034 s DEBUG: Entering PLUGIN_ProcessExporter.convert_model (create the model) [output.py at line 194]  ALOHA: aloha starts to compute helicity amplitudes @@ -210,7 +210,7 @@ ALOHA: aloha creates FFV1 routines ALOHA: aloha creates VVVV1 set of routines with options: P0 ALOHA: aloha creates VVVV3 set of routines with options: P0 ALOHA: aloha creates VVVV4 set of routines with options: P0 -ALOHA: aloha creates 5 routines in 0.275 s +ALOHA: aloha creates 5 routines in 0.292 s VVV1 VVV1 FFV1 @@ -223,25 +223,13 @@ ALOHA: aloha creates 5 routines in 0.275 s FileWriter for /data/avalassi/GPU2023/MG5aMC/ghav-mg5amcnlo/CODEGEN_cudacpp_gg_ttg/src/./HelAmps_sm.h INFO: Created file HelAmps_sm.h in directory /data/avalassi/GPU2023/MG5aMC/ghav-mg5amcnlo/CODEGEN_cudacpp_gg_ttg/src/. super_write_set_parameters_onlyfixMajorana (hardcoded=False) -DEBUG: 'pardef_lines size =', len(pardef_lines), ', keys size =', len(pardef_lines.keys()) =  pardef_lines size = 48 , keys size = 48 [model_handling.py at line 724]  -DEBUG: 'parset_pars size =', len(parset_pars) =  parset_pars size = 48 [model_handling.py at line 740]  -DEBUG: 'parset_lines size =', len(parset_lines), ', keys size =', len(parset_lines.keys()) =  parset_lines size = 48 , keys size = 48 [model_handling.py at line 741]  +DEBUG: 'pardef_lines size =', len(pardef_lines), ', keys size =', len(pardef_lines.keys()) =  pardef_lines size = 48 , keys size = 48 [model_handling.py at line 729]  super_write_set_parameters_onlyfixMajorana (hardcoded=True) -DEBUG: 'pardef_lines size =', len(pardef_lines), ', keys size =', len(pardef_lines.keys()) =  pardef_lines size = 3 , keys size = 3 [model_handling.py at line 724]  -DEBUG: 'parset_pars size =', len(parset_pars) =  parset_pars size = 3 [model_handling.py at line 740]  -DEBUG: 'parset_lines size =', len(parset_lines), ', keys size =', len(parset_lines.keys()) =  parset_lines size = 3 , keys size = 3 [model_handling.py at line 741]  -DEBUG: 'pardef_lines size =', len(pardef_lines), ', keys size =', len(pardef_lines.keys()) =  pardef_lines size = 3 , keys size = 3 [model_handling.py at line 724]  -DEBUG: 'parset_pars size =', len(parset_pars) =  parset_pars size = 3 [model_handling.py at line 740]  -DEBUG: 'parset_lines size =', len(parset_lines), ', keys size =', len(parset_lines.keys()) =  parset_lines size = 3 , keys size = 3 [model_handling.py at line 741]  -DEBUG: 'pardef_lines size =', len(pardef_lines), ', keys size =', len(pardef_lines.keys()) =  pardef_lines size = 3 , keys size = 3 [model_handling.py at line 724]  -DEBUG: 'parset_pars size =', len(parset_pars) =  parset_pars size = 3 [model_handling.py at line 740]  -DEBUG: 'parset_lines size =', len(parset_lines), ', keys size =', len(parset_lines.keys()) =  parset_lines size = 3 , keys size = 3 [model_handling.py at line 741]  -DEBUG: 'pardef_lines size =', len(pardef_lines), ', keys size =', len(pardef_lines.keys()) =  pardef_lines size = 3 , keys size = 3 [model_handling.py at line 724]  -DEBUG: 'parset_pars size =', len(parset_pars) =  parset_pars size = 3 [model_handling.py at line 740]  -DEBUG: 'parset_lines size =', len(parset_lines), ', keys size =', len(parset_lines.keys()) =  parset_lines size = 3 , keys size = 3 [model_handling.py at line 741]  -DEBUG: 'pardef_lines size =', len(pardef_lines), ', keys size =', len(pardef_lines.keys()) =  pardef_lines size = 3 , keys size = 3 [model_handling.py at line 724]  -DEBUG: 'parset_pars size =', len(parset_pars) =  parset_pars size = 3 [model_handling.py at line 740]  -DEBUG: 'parset_lines size =', len(parset_lines), ', keys size =', len(parset_lines.keys()) =  parset_lines size = 3 , keys size = 3 [model_handling.py at line 741]  +DEBUG: 'pardef_lines size =', len(pardef_lines), ', keys size =', len(pardef_lines.keys()) =  pardef_lines size = 3 , keys size = 3 [model_handling.py at line 729]  +DEBUG: 'pardef_lines size =', len(pardef_lines), ', keys size =', len(pardef_lines.keys()) =  pardef_lines size = 3 , keys size = 3 [model_handling.py at line 729]  +DEBUG: 'pardef_lines size =', len(pardef_lines), ', keys size =', len(pardef_lines.keys()) =  pardef_lines size = 3 , keys size = 3 [model_handling.py at line 729]  +DEBUG: 'pardef_lines size =', len(pardef_lines), ', keys size =', len(pardef_lines.keys()) =  pardef_lines size = 3 , keys size = 3 [model_handling.py at line 729]  +DEBUG: 'pardef_lines size =', len(pardef_lines), ', keys size =', len(pardef_lines.keys()) =  pardef_lines size = 3 , keys size = 3 [model_handling.py at line 729]  FileWriter for /data/avalassi/GPU2023/MG5aMC/ghav-mg5amcnlo/CODEGEN_cudacpp_gg_ttg/src/./Parameters_sm.h FileWriter for /data/avalassi/GPU2023/MG5aMC/ghav-mg5amcnlo/CODEGEN_cudacpp_gg_ttg/src/./Parameters_sm.cc INFO: Created files Parameters_sm.h and Parameters_sm.cc in directory @@ -249,6 +237,6 @@ INFO: /data/avalassi/GPU2023/MG5aMC/ghav-mg5amcnlo/CODEGEN_cudacpp_gg_ttg/src/. DEBUG: Entering PLUGIN_ProcessExporter.finalize [output.py at line 203]  quit -real 0m0.820s -user 0m0.731s -sys 0m0.052s +real 0m0.907s +user 0m0.720s +sys 0m0.069s diff --git a/epochX/cudacpp/gg_ttg.sa/SubProcesses/Bridge.h b/epochX/cudacpp/gg_ttg.sa/SubProcesses/Bridge.h index 4cafe0c997..d7e629cacd 100644 --- a/epochX/cudacpp/gg_ttg.sa/SubProcesses/Bridge.h +++ b/epochX/cudacpp/gg_ttg.sa/SubProcesses/Bridge.h @@ -152,32 +152,32 @@ namespace mg5amcCpu #ifdef __CUDACC__ int m_gputhreads; // number of gpu threads (default set from number of events, can be modified) int m_gpublocks; // number of gpu blocks (default set from number of events, can be modified) - mg5amcGpu::DeviceBuffer m_devMomentaF; - mg5amcGpu::DeviceBufferMomenta m_devMomentaC; - mg5amcGpu::DeviceBufferGs m_devGs; - mg5amcGpu::DeviceBufferRndNumHelicity m_devRndHel; - mg5amcGpu::DeviceBufferRndNumColor m_devRndCol; - mg5amcGpu::DeviceBufferMatrixElements m_devMEs; - mg5amcGpu::DeviceBufferSelectedHelicity m_devSelHel; - mg5amcGpu::DeviceBufferSelectedColor m_devSelCol; - mg5amcGpu::PinnedHostBufferGs m_hstGs; - mg5amcGpu::PinnedHostBufferRndNumHelicity m_hstRndHel; - mg5amcGpu::PinnedHostBufferRndNumColor m_hstRndCol; - mg5amcGpu::PinnedHostBufferMatrixElements m_hstMEs; - mg5amcGpu::PinnedHostBufferSelectedHelicity m_hstSelHel; - mg5amcGpu::PinnedHostBufferSelectedColor m_hstSelCol; - std::unique_ptr m_pmek; + DeviceBuffer m_devMomentaF; + DeviceBufferMomenta m_devMomentaC; + DeviceBufferGs m_devGs; + DeviceBufferRndNumHelicity m_devRndHel; + DeviceBufferRndNumColor m_devRndCol; + DeviceBufferMatrixElements m_devMEs; + DeviceBufferSelectedHelicity m_devSelHel; + DeviceBufferSelectedColor m_devSelCol; + PinnedHostBufferGs m_hstGs; + PinnedHostBufferRndNumHelicity m_hstRndHel; + PinnedHostBufferRndNumColor m_hstRndCol; + PinnedHostBufferMatrixElements m_hstMEs; + PinnedHostBufferSelectedHelicity m_hstSelHel; + PinnedHostBufferSelectedColor m_hstSelCol; + std::unique_ptr m_pmek; //static constexpr int s_gputhreadsmin = 16; // minimum number of gpu threads (TEST VALUE FOR MADEVENT) static constexpr int s_gputhreadsmin = 32; // minimum number of gpu threads (DEFAULT) #else - mg5amcCpu::HostBufferMomenta m_hstMomentaC; - mg5amcCpu::HostBufferGs m_hstGs; - mg5amcCpu::HostBufferRndNumHelicity m_hstRndHel; - mg5amcCpu::HostBufferRndNumColor m_hstRndCol; - mg5amcCpu::HostBufferMatrixElements m_hstMEs; - mg5amcCpu::HostBufferSelectedHelicity m_hstSelHel; - mg5amcCpu::HostBufferSelectedColor m_hstSelCol; - std::unique_ptr m_pmek; + HostBufferMomenta m_hstMomentaC; + HostBufferGs m_hstGs; + HostBufferRndNumHelicity m_hstRndHel; + HostBufferRndNumColor m_hstRndCol; + HostBufferMatrixElements m_hstMEs; + HostBufferSelectedHelicity m_hstSelHel; + HostBufferSelectedColor m_hstSelCol; + std::unique_ptr m_pmek; #endif }; @@ -244,12 +244,12 @@ namespace mg5amcCpu } std::cout << "WARNING! Instantiate device Bridge (nevt=" << m_nevt << ", gpublocks=" << m_gpublocks << ", gputhreads=" << m_gputhreads << ", gpublocks*gputhreads=" << m_gpublocks * m_gputhreads << ")" << std::endl; - mg5amcGpu::CPPProcess process( /*verbose=*/false ); - m_pmek.reset( new mg5amcGpu::MatrixElementKernelDevice( m_devMomentaC, m_devGs, m_devRndHel, m_devRndCol, m_devMEs, m_devSelHel, m_devSelCol, m_gpublocks, m_gputhreads ) ); + CPPProcess process( /*verbose=*/false ); + m_pmek.reset( new MatrixElementKernelDevice( m_devMomentaC, m_devGs, m_devRndHel, m_devRndCol, m_devMEs, m_devSelHel, m_devSelCol, m_gpublocks, m_gputhreads ) ); #else std::cout << "WARNING! Instantiate host Bridge (nevt=" << m_nevt << ")" << std::endl; - mg5amcCpu::CPPProcess process( /*verbose=*/false ); - m_pmek.reset( new mg5amcCpu::MatrixElementKernelHost( m_hstMomentaC, m_hstGs, m_hstRndHel, m_hstRndCol, m_hstMEs, m_hstSelHel, m_hstSelCol, m_nevt ) ); + CPPProcess process( /*verbose=*/false ); + m_pmek.reset( new MatrixElementKernelHost( m_hstMomentaC, m_hstGs, m_hstRndHel, m_hstRndCol, m_hstMEs, m_hstSelHel, m_hstSelCol, m_nevt ) ); #endif // __CUDACC__ process.initProc( "../../Cards/param_card.dat" ); } diff --git a/epochX/cudacpp/gg_ttg.sa/SubProcesses/BridgeKernels.cc b/epochX/cudacpp/gg_ttg.sa/SubProcesses/BridgeKernels.cc index cef4cb3c71..d58066c9c1 100644 --- a/epochX/cudacpp/gg_ttg.sa/SubProcesses/BridgeKernels.cc +++ b/epochX/cudacpp/gg_ttg.sa/SubProcesses/BridgeKernels.cc @@ -9,9 +9,6 @@ #include -constexpr int np4 = CPPProcess::np4; // dimensions of 4-momenta (E,px,py,pz) -constexpr int npar = CPPProcess::npar; // #particles in total (external = initial + final): e.g. 4 for e+ e- -> mu+ mu- - //============================================================================ #ifdef __CUDACC__ @@ -20,6 +17,9 @@ namespace mg5amcGpu namespace mg5amcCpu #endif { + constexpr int np4 = CPPProcess::np4; // dimensions of 4-momenta (E,px,py,pz) + constexpr int npar = CPPProcess::npar; // #particles in total (external = initial + final): e.g. 4 for e+ e- -> mu+ mu- + //-------------------------------------------------------------------------- BridgeKernelBase::BridgeKernelBase( const BufferMomenta& momenta, // input: momenta diff --git a/epochX/cudacpp/gg_ttg.sa/SubProcesses/MemoryAccessAmplitudes.h b/epochX/cudacpp/gg_ttg.sa/SubProcesses/MemoryAccessAmplitudes.h index 68f6838b5c..573b3bbbc9 100644 --- a/epochX/cudacpp/gg_ttg.sa/SubProcesses/MemoryAccessAmplitudes.h +++ b/epochX/cudacpp/gg_ttg.sa/SubProcesses/MemoryAccessAmplitudes.h @@ -14,142 +14,151 @@ #define MGONGPU_TRIVIAL_AMPLITUDES 1 -//---------------------------------------------------------------------------- - -#ifndef MGONGPU_TRIVIAL_AMPLITUDES - -// A class describing the internal layout of memory buffers for amplitudes -// This implementation uses an AOSOA[npagA][nx2][neppA] where nevt=npagA*neppA -// [If many implementations are used, a suffix _AOSOAv1 should be appended to the class name] -class MemoryAccessAmplitudesBase //_AOSOAv1 +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { -public: - - // Number of Events Per Page in the amplitude AOSOA memory buffer layout - static constexpr int neppA = 1; // AOS (just a test...) + //---------------------------------------------------------------------------- -private: - - friend class MemoryAccessHelper; - friend class KernelAccessHelper; - friend class KernelAccessHelper; - - // The number of floating point components of a complex number - static constexpr int nx2 = mgOnGpu::nx2; - - //-------------------------------------------------------------------------- - // NB all KernelLaunchers assume that memory access can be decomposed as "accessField = decodeRecord( accessRecord )" - // (in other words: first locate the event record for a given event, then locate an element in that record) - //-------------------------------------------------------------------------- +#ifndef MGONGPU_TRIVIAL_AMPLITUDES - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] - static __host__ __device__ inline fptype* - ieventAccessRecord( fptype* buffer, - const int ievt ) + // A class describing the internal layout of memory buffers for amplitudes + // This implementation uses an AOSOA[npagA][nx2][neppA] where nevt=npagA*neppA + // [If many implementations are used, a suffix _AOSOAv1 should be appended to the class name] + class MemoryAccessAmplitudesBase //_AOSOAv1 { - const int ipagA = ievt / neppA; // #event "A-page" - const int ieppA = ievt % neppA; // #event in the current event A-page - constexpr int ix2 = 0; - return &( buffer[ipagA * nx2 * neppA + ix2 * neppA + ieppA] ); // AOSOA[ipagA][ix2][ieppA] - } - - //-------------------------------------------------------------------------- - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, Ts... args ) <===] - // [NB: expand variadic template "Ts... args" to "const int ix2" and rename "Field" as "Ix2"] - static __host__ __device__ inline fptype& - decodeRecord( fptype* buffer, - const int ix2 ) + public: + + // Number of Events Per Page in the amplitude AOSOA memory buffer layout + static constexpr int neppA = 1; // AOS (just a test...) + + private: + + friend class MemoryAccessHelper; + friend class KernelAccessHelper; + friend class KernelAccessHelper; + + // The number of floating point components of a complex number + static constexpr int nx2 = mgOnGpu::nx2; + + //-------------------------------------------------------------------------- + // NB all KernelLaunchers assume that memory access can be decomposed as "accessField = decodeRecord( accessRecord )" + // (in other words: first locate the event record for a given event, then locate an element in that record) + //-------------------------------------------------------------------------- + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] + static __host__ __device__ inline fptype* + ieventAccessRecord( fptype* buffer, + const int ievt ) + { + const int ipagA = ievt / neppA; // #event "A-page" + const int ieppA = ievt % neppA; // #event in the current event A-page + constexpr int ix2 = 0; + return &( buffer[ipagA * nx2 * neppA + ix2 * neppA + ieppA] ); // AOSOA[ipagA][ix2][ieppA] + } + + //-------------------------------------------------------------------------- + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, Ts... args ) <===] + // [NB: expand variadic template "Ts... args" to "const int ix2" and rename "Field" as "Ix2"] + static __host__ __device__ inline fptype& + decodeRecord( fptype* buffer, + const int ix2 ) + { + constexpr int ipagA = 0; + constexpr int ieppA = 0; + return buffer[ipagA * nx2 * neppA + ix2 * neppA + ieppA]; // AOSOA[ipagA][ix2][ieppA] + } + }; + + //---------------------------------------------------------------------------- + + // A class providing access to memory buffers for a given event, based on explicit event numbers + // Its methods use the MemoryAccessHelper templates - note the use of the template keyword in template function instantiations + class MemoryAccessAmplitudes : public MemoryAccessAmplitudesBase { - constexpr int ipagA = 0; - constexpr int ieppA = 0; - return buffer[ipagA * nx2 * neppA + ix2 * neppA + ieppA]; // AOSOA[ipagA][ix2][ieppA] - } -}; + public: -//---------------------------------------------------------------------------- + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] + static constexpr auto ieventAccessRecord = MemoryAccessHelper::ieventAccessRecord; -// A class providing access to memory buffers for a given event, based on explicit event numbers -// Its methods use the MemoryAccessHelper templates - note the use of the template keyword in template function instantiations -class MemoryAccessAmplitudes : public MemoryAccessAmplitudesBase -{ -public: - - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] - static constexpr auto ieventAccessRecord = MemoryAccessHelper::ieventAccessRecord; + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (const) ===> const fptype* ieventAccessRecordConst( const fptype* buffer, const int ievt ) <===] + static constexpr auto ieventAccessRecordConst = MemoryAccessHelper::ieventAccessRecordConst; - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (const) ===> const fptype* ieventAccessRecordConst( const fptype* buffer, const int ievt ) <===] - static constexpr auto ieventAccessRecordConst = MemoryAccessHelper::ieventAccessRecordConst; + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, const int ix2 ) <===] + static constexpr auto decodeRecordIx2 = MemoryAccessHelper::decodeRecord; - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, const int ix2 ) <===] - static constexpr auto decodeRecordIx2 = MemoryAccessHelper::decodeRecord; + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (const) ===> const fptype& decodeRecordConst( const fptype* buffer, const int ix2 ) <===] + static constexpr auto decodeRecordIx2Const = + MemoryAccessHelper::template decodeRecordConst; - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (const) ===> const fptype& decodeRecordConst( const fptype* buffer, const int ix2 ) <===] - static constexpr auto decodeRecordIx2Const = - MemoryAccessHelper::template decodeRecordConst; + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (non-const) ===> fptype& ieventAccessIx2( fptype* buffer, const ievt, const int ix2 ) <===] + static constexpr auto ieventAccessIx2 = + MemoryAccessHelper::template ieventAccessField; - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (non-const) ===> fptype& ieventAccessIx2( fptype* buffer, const ievt, const int ix2 ) <===] - static constexpr auto ieventAccessIx2 = - MemoryAccessHelper::template ieventAccessField; - - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (const) ===> const fptype& ieventAccessIx2Const( const fptype* buffer, const ievt, const int ix2 ) <===] - static constexpr auto ieventAccessIx2Const = - MemoryAccessHelper::template ieventAccessFieldConst; -}; + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (const) ===> const fptype& ieventAccessIx2Const( const fptype* buffer, const ievt, const int ix2 ) <===] + static constexpr auto ieventAccessIx2Const = + MemoryAccessHelper::template ieventAccessFieldConst; + }; #endif // #ifndef MGONGPU_TRIVIAL_AMPLITUDES -//---------------------------------------------------------------------------- + //---------------------------------------------------------------------------- -// A class providing access to memory buffers for a given event, based on implicit kernel rules -// Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations -template -class KernelAccessAmplitudes -{ -public: + // A class providing access to memory buffers for a given event, based on implicit kernel rules + // Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations + template + class KernelAccessAmplitudes + { + public: #ifndef MGONGPU_TRIVIAL_AMPLITUDES - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (non-const) ===> fptype& kernelAccessIx2( fptype* buffer, const int ix2 ) <===] - static constexpr auto kernelAccessIx2 = - KernelAccessHelper::template kernelAccessField; + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (non-const) ===> fptype& kernelAccessIx2( fptype* buffer, const int ix2 ) <===] + static constexpr auto kernelAccessIx2 = + KernelAccessHelper::template kernelAccessField; - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (const) ===> const fptype& kernelAccessIx2Const( const fptype* buffer, const int ix2 ) <===] - static constexpr auto kernelAccessIx2Const = - KernelAccessHelper::template kernelAccessFieldConst; + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (const) ===> const fptype& kernelAccessIx2Const( const fptype* buffer, const int ix2 ) <===] + static constexpr auto kernelAccessIx2Const = + KernelAccessHelper::template kernelAccessFieldConst; #else - static __host__ __device__ inline cxtype_sv* - kernelAccess( fptype* buffer ) - { - return reinterpret_cast( buffer ); - } + static __host__ __device__ inline cxtype_sv* + kernelAccess( fptype* buffer ) + { + return reinterpret_cast( buffer ); + } - static __host__ __device__ inline const cxtype_sv* - kernelAccessConst( const fptype* buffer ) - { - return reinterpret_cast( buffer ); - } + static __host__ __device__ inline const cxtype_sv* + kernelAccessConst( const fptype* buffer ) + { + return reinterpret_cast( buffer ); + } #endif // #ifndef MGONGPU_TRIVIAL_AMPLITUDES -}; + }; + + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- + typedef KernelAccessAmplitudes HostAccessAmplitudes; + typedef KernelAccessAmplitudes DeviceAccessAmplitudes; -typedef KernelAccessAmplitudes HostAccessAmplitudes; -typedef KernelAccessAmplitudes DeviceAccessAmplitudes; + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- +} // end namespace mg5amcGpu/mg5amcCpu #endif // MemoryAccessAmplitudes_H diff --git a/epochX/cudacpp/gg_ttg.sa/SubProcesses/MemoryAccessCouplings.h b/epochX/cudacpp/gg_ttg.sa/SubProcesses/MemoryAccessCouplings.h index 15793bbec3..35a3af42e0 100644 --- a/epochX/cudacpp/gg_ttg.sa/SubProcesses/MemoryAccessCouplings.h +++ b/epochX/cudacpp/gg_ttg.sa/SubProcesses/MemoryAccessCouplings.h @@ -14,248 +14,257 @@ #include "MemoryAccessMomenta.h" // for MemoryAccessMomentaBase::neppM #include "MemoryBuffers.h" // for HostBufferCouplings::isaligned -//---------------------------------------------------------------------------- - -// A class describing the internal layout of memory buffers for couplings -// This implementation uses an AOSOA[npagC][ndcoup][nx2][neppC] "super-buffer" where nevt=npagC*neppC -// From the "super-buffer" for ndcoup different couplings, use idcoupAccessBuffer to access the buffer for one specific coupling -// [If many implementations are used, a suffix _AOSOAv1 should be appended to the class name] -class MemoryAccessCouplingsBase //_AOSOAv1 +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { -public: - - // Number of Events Per Page in the coupling AOSOA memory buffer layout - static constexpr int neppC = MemoryAccessMomentaBase::neppM; // use the same AOSOA striding as for momenta - - // SANITY CHECK: check that neppC is a power of two - static_assert( ispoweroftwo( neppC ), "neppC is not a power of 2" ); - - //-------------------------------------------------------------------------- - // ** NB! A single super-buffer AOSOA[npagC][ndcoup][nx2][neppC] includes data for ndcoup different couplings ** - // ** NB! The ieventAccessRecord and kernelAccess functions refer to the buffer for one individual coupling ** - // ** NB! Use idcoupAccessBuffer to add a fixed offset and locate the buffer for one given individual coupling ** - //-------------------------------------------------------------------------- - - // Locate the buffer for a single coupling (output) in a memory super-buffer (input) from the given coupling index (input) - // [Signature (non-const) ===> fptype* idcoupAccessBuffer( fptype* buffer, const int idcoup ) <===] - // NB: keep this in public even if exposed through KernelAccessCouplings: nvcc says it is inaccesible otherwise? - static __host__ __device__ inline fptype* - idcoupAccessBuffer( fptype* buffer, // input "super-buffer" - const int idcoup ) - { - constexpr int ipagC = 0; - constexpr int ieppC = 0; - constexpr int ix2 = 0; - // NB! this effectively adds an offset "idcoup * nx2 * neppC" - return &( buffer[ipagC * ndcoup * nx2 * neppC + idcoup * nx2 * neppC + ix2 * neppC + ieppC] ); // AOSOA[ipagC][idcoup][ix2][ieppC] - } - - // Locate the buffer for a single coupling (output) in a memory super-buffer (input) from the given coupling index (input) - // [Signature (const) ===> const fptype* idcoupAccessBufferConst( const fptype* buffer, const int idcoup ) <===] - // NB: keep this in public even if exposed through KernelAccessCouplings: nvcc says it is inaccesible otherwise? - static __host__ __device__ inline const fptype* - idcoupAccessBufferConst( const fptype* buffer, // input "super-buffer" - const int idcoup ) - { - return idcoupAccessBuffer( const_cast( buffer ), idcoup ); - } - -private: + //---------------------------------------------------------------------------- - friend class MemoryAccessHelper; - friend class KernelAccessHelper; - friend class KernelAccessHelper; - - // The number of couplings that dependent on the running alphas QCD in this specific process - static constexpr size_t ndcoup = Parameters_sm_dependentCouplings::ndcoup; - - // The number of floating point components of a complex number - static constexpr int nx2 = mgOnGpu::nx2; - - //-------------------------------------------------------------------------- - // NB all KernelLaunchers assume that memory access can be decomposed as "accessField = decodeRecord( accessRecord )" - // (in other words: first locate the event record for a given event, then locate an element in that record) - //-------------------------------------------------------------------------- - - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] - static __host__ __device__ inline fptype* - ieventAccessRecord( fptype* buffer, - const int ievt ) + // A class describing the internal layout of memory buffers for couplings + // This implementation uses an AOSOA[npagC][ndcoup][nx2][neppC] "super-buffer" where nevt=npagC*neppC + // From the "super-buffer" for ndcoup different couplings, use idcoupAccessBuffer to access the buffer for one specific coupling + // [If many implementations are used, a suffix _AOSOAv1 should be appended to the class name] + class MemoryAccessCouplingsBase //_AOSOAv1 { - const int ipagC = ievt / neppC; // #event "C-page" - const int ieppC = ievt % neppC; // #event in the current event C-page - constexpr int idcoup = 0; - constexpr int ix2 = 0; - return &( buffer[ipagC * ndcoup * nx2 * neppC + idcoup * nx2 * neppC + ix2 * neppC + ieppC] ); // AOSOA[ipagC][idcoup][ix2][ieppC] - } - - //-------------------------------------------------------------------------- - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, Ts... args ) <===] - // [NB: expand variadic template "Ts... args" to "const int ix2" and rename "Field" as "Ix2"] - static __host__ __device__ inline fptype& - decodeRecord( fptype* buffer, - const int ix2 ) + public: + + // Number of Events Per Page in the coupling AOSOA memory buffer layout + static constexpr int neppC = MemoryAccessMomentaBase::neppM; // use the same AOSOA striding as for momenta + + // SANITY CHECK: check that neppC is a power of two + static_assert( ispoweroftwo( neppC ), "neppC is not a power of 2" ); + + //-------------------------------------------------------------------------- + // ** NB! A single super-buffer AOSOA[npagC][ndcoup][nx2][neppC] includes data for ndcoup different couplings ** + // ** NB! The ieventAccessRecord and kernelAccess functions refer to the buffer for one individual coupling ** + // ** NB! Use idcoupAccessBuffer to add a fixed offset and locate the buffer for one given individual coupling ** + //-------------------------------------------------------------------------- + + // Locate the buffer for a single coupling (output) in a memory super-buffer (input) from the given coupling index (input) + // [Signature (non-const) ===> fptype* idcoupAccessBuffer( fptype* buffer, const int idcoup ) <===] + // NB: keep this in public even if exposed through KernelAccessCouplings: nvcc says it is inaccesible otherwise? + static __host__ __device__ inline fptype* + idcoupAccessBuffer( fptype* buffer, // input "super-buffer" + const int idcoup ) + { + constexpr int ipagC = 0; + constexpr int ieppC = 0; + constexpr int ix2 = 0; + // NB! this effectively adds an offset "idcoup * nx2 * neppC" + return &( buffer[ipagC * ndcoup * nx2 * neppC + idcoup * nx2 * neppC + ix2 * neppC + ieppC] ); // AOSOA[ipagC][idcoup][ix2][ieppC] + } + + // Locate the buffer for a single coupling (output) in a memory super-buffer (input) from the given coupling index (input) + // [Signature (const) ===> const fptype* idcoupAccessBufferConst( const fptype* buffer, const int idcoup ) <===] + // NB: keep this in public even if exposed through KernelAccessCouplings: nvcc says it is inaccesible otherwise? + static __host__ __device__ inline const fptype* + idcoupAccessBufferConst( const fptype* buffer, // input "super-buffer" + const int idcoup ) + { + return idcoupAccessBuffer( const_cast( buffer ), idcoup ); + } + + private: + + friend class MemoryAccessHelper; + friend class KernelAccessHelper; + friend class KernelAccessHelper; + + // The number of couplings that dependent on the running alphas QCD in this specific process + static constexpr size_t ndcoup = Parameters_sm_dependentCouplings::ndcoup; + + // The number of floating point components of a complex number + static constexpr int nx2 = mgOnGpu::nx2; + + //-------------------------------------------------------------------------- + // NB all KernelLaunchers assume that memory access can be decomposed as "accessField = decodeRecord( accessRecord )" + // (in other words: first locate the event record for a given event, then locate an element in that record) + //-------------------------------------------------------------------------- + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] + static __host__ __device__ inline fptype* + ieventAccessRecord( fptype* buffer, + const int ievt ) + { + const int ipagC = ievt / neppC; // #event "C-page" + const int ieppC = ievt % neppC; // #event in the current event C-page + constexpr int idcoup = 0; + constexpr int ix2 = 0; + return &( buffer[ipagC * ndcoup * nx2 * neppC + idcoup * nx2 * neppC + ix2 * neppC + ieppC] ); // AOSOA[ipagC][idcoup][ix2][ieppC] + } + + //-------------------------------------------------------------------------- + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, Ts... args ) <===] + // [NB: expand variadic template "Ts... args" to "const int ix2" and rename "Field" as "Ix2"] + static __host__ __device__ inline fptype& + decodeRecord( fptype* buffer, + const int ix2 ) + { + constexpr int ipagC = 0; + constexpr int ieppC = 0; + // NB! the offset "idcoup * nx2 * neppC" has been added in idcoupAccessBuffer + constexpr int idcoup = 0; + return buffer[ipagC * ndcoup * nx2 * neppC + idcoup * nx2 * neppC + ix2 * neppC + ieppC]; // AOSOA[ipagC][idcoup][ix2][ieppC] + } + }; + + //---------------------------------------------------------------------------- + + // A class providing access to memory buffers for a given event, based on explicit event numbers + // Its methods use the MemoryAccessHelper templates - note the use of the template keyword in template function instantiations + class MemoryAccessCouplings : public MemoryAccessCouplingsBase { - constexpr int ipagC = 0; - constexpr int ieppC = 0; - // NB! the offset "idcoup * nx2 * neppC" has been added in idcoupAccessBuffer - constexpr int idcoup = 0; - return buffer[ipagC * ndcoup * nx2 * neppC + idcoup * nx2 * neppC + ix2 * neppC + ieppC]; // AOSOA[ipagC][idcoup][ix2][ieppC] - } -}; - -//---------------------------------------------------------------------------- - -// A class providing access to memory buffers for a given event, based on explicit event numbers -// Its methods use the MemoryAccessHelper templates - note the use of the template keyword in template function instantiations -class MemoryAccessCouplings : public MemoryAccessCouplingsBase -{ -public: - - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] - static constexpr auto ieventAccessRecord = MemoryAccessHelper::ieventAccessRecord; - - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (const) ===> const fptype* ieventAccessRecordConst( const fptype* buffer, const int ievt ) <===] - static constexpr auto ieventAccessRecordConst = MemoryAccessHelper::ieventAccessRecordConst; - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, const int ix2 ) <===] - static constexpr auto decodeRecordIx2 = MemoryAccessHelper::decodeRecord; - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (const) ===> const fptype& decodeRecordConst( const fptype* buffer, const int ix2 ) <===] - static constexpr auto decodeRecordIx2Const = - MemoryAccessHelper::template decodeRecordConst; - - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (non-const) ===> fptype& ieventAccessIx2( fptype* buffer, const ievt, const int ix2 ) <===] - static constexpr auto ieventAccessIx2 = - MemoryAccessHelper::template ieventAccessField; - - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (const) ===> const fptype& ieventAccessIx2Const( const fptype* buffer, const ievt, const int ix2 ) <===] - static constexpr auto ieventAccessIx2Const = - MemoryAccessHelper::template ieventAccessFieldConst; -}; - -//---------------------------------------------------------------------------- - -// A class providing access to memory buffers for a given event, based on implicit kernel rules -// Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations -template -class KernelAccessCouplings -{ -public: - - // Expose selected functions from MemoryAccessCouplingsBase - static constexpr auto idcoupAccessBuffer = MemoryAccessCouplingsBase::idcoupAccessBuffer; - static constexpr auto idcoupAccessBufferConst = MemoryAccessCouplingsBase::idcoupAccessBufferConst; - - // Expose selected functions from MemoryAccessCouplings - static constexpr auto ieventAccessRecordConst = MemoryAccessCouplings::ieventAccessRecordConst; - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (non-const, SCALAR) ===> fptype& kernelAccessIx2( fptype* buffer, const int ix2 ) <===] - static constexpr auto kernelAccessIx2_s = - KernelAccessHelper::template kernelAccessField; - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (const, SCALAR) ===> const fptype& kernelAccessIx2Const( const fptype* buffer, const int ix2 ) <===] - static constexpr auto kernelAccessIx2Const_s = - KernelAccessHelper::template kernelAccessFieldConst; - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (non const, SCALAR OR VECTOR) ===> fptype_sv& kernelAccessIx2( fptype* buffer, const int ix2 ) <===] - static __host__ __device__ inline fptype_sv& - kernelAccessIx2( fptype* buffer, - const int ix2 ) + public: + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] + static constexpr auto ieventAccessRecord = MemoryAccessHelper::ieventAccessRecord; + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (const) ===> const fptype* ieventAccessRecordConst( const fptype* buffer, const int ievt ) <===] + static constexpr auto ieventAccessRecordConst = MemoryAccessHelper::ieventAccessRecordConst; + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, const int ix2 ) <===] + static constexpr auto decodeRecordIx2 = MemoryAccessHelper::decodeRecord; + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (const) ===> const fptype& decodeRecordConst( const fptype* buffer, const int ix2 ) <===] + static constexpr auto decodeRecordIx2Const = + MemoryAccessHelper::template decodeRecordConst; + + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (non-const) ===> fptype& ieventAccessIx2( fptype* buffer, const ievt, const int ix2 ) <===] + static constexpr auto ieventAccessIx2 = + MemoryAccessHelper::template ieventAccessField; + + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (const) ===> const fptype& ieventAccessIx2Const( const fptype* buffer, const ievt, const int ix2 ) <===] + static constexpr auto ieventAccessIx2Const = + MemoryAccessHelper::template ieventAccessFieldConst; + }; + + //---------------------------------------------------------------------------- + + // A class providing access to memory buffers for a given event, based on implicit kernel rules + // Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations + template + class KernelAccessCouplings { - fptype& out = kernelAccessIx2_s( buffer, ix2 ); + public: + + // Expose selected functions from MemoryAccessCouplingsBase + static constexpr auto idcoupAccessBuffer = MemoryAccessCouplingsBase::idcoupAccessBuffer; + static constexpr auto idcoupAccessBufferConst = MemoryAccessCouplingsBase::idcoupAccessBufferConst; + + // Expose selected functions from MemoryAccessCouplings + static constexpr auto ieventAccessRecordConst = MemoryAccessCouplings::ieventAccessRecordConst; + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (non-const, SCALAR) ===> fptype& kernelAccessIx2( fptype* buffer, const int ix2 ) <===] + static constexpr auto kernelAccessIx2_s = + KernelAccessHelper::template kernelAccessField; + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (const, SCALAR) ===> const fptype& kernelAccessIx2Const( const fptype* buffer, const int ix2 ) <===] + static constexpr auto kernelAccessIx2Const_s = + KernelAccessHelper::template kernelAccessFieldConst; + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (non const, SCALAR OR VECTOR) ===> fptype_sv& kernelAccessIx2( fptype* buffer, const int ix2 ) <===] + static __host__ __device__ inline fptype_sv& + kernelAccessIx2( fptype* buffer, + const int ix2 ) + { + fptype& out = kernelAccessIx2_s( buffer, ix2 ); #ifndef MGONGPU_CPPSIMD - return out; + return out; #else - // NB: derived from MemoryAccessMomenta, restricting the implementation to contiguous aligned arrays - constexpr int neppC = MemoryAccessCouplingsBase::neppC; - static_assert( neppC >= neppV ); // ASSUME CONTIGUOUS ARRAYS - static_assert( neppC % neppV == 0 ); // ASSUME CONTIGUOUS ARRAYS - static_assert( mg5amcCpu::HostBufferCouplings::isaligned() ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) - //assert( (size_t)( buffer ) % mgOnGpu::cppAlign == 0 ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) - return mg5amcCpu::fptypevFromAlignedArray( out ); // SIMD bulk load of neppV, use reinterpret_cast + // NB: derived from MemoryAccessMomenta, restricting the implementation to contiguous aligned arrays + constexpr int neppC = MemoryAccessCouplingsBase::neppC; + static_assert( neppC >= neppV ); // ASSUME CONTIGUOUS ARRAYS + static_assert( neppC % neppV == 0 ); // ASSUME CONTIGUOUS ARRAYS + static_assert( mg5amcCpu::HostBufferCouplings::isaligned() ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) + //assert( (size_t)( buffer ) % mgOnGpu::cppAlign == 0 ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) + return mg5amcCpu::fptypevFromAlignedArray( out ); // SIMD bulk load of neppV, use reinterpret_cast #endif - } + } - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (const, SCALAR OR VECTOR) ===> const fptype_sv& kernelAccessIx2Const( const fptype* buffer, const int ix2 ) <===] - static __host__ __device__ inline const fptype_sv& - kernelAccessIx2Const( const fptype* buffer, - const int ix2 ) - { - return kernelAccessIx2( const_cast( buffer ), ix2 ); - } - - /* - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (const, SCALAR OR VECTOR) ===> const fptype_sv& kernelAccessIx2Const( const fptype* buffer, const int ix2 ) <===] - static __host__ __device__ inline const fptype_sv& - kernelAccessIx2Const( const fptype* buffer, - const int ix2 ) - { - const fptype& out = kernelAccessIx2Const_s( buffer, ix2 ); + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (const, SCALAR OR VECTOR) ===> const fptype_sv& kernelAccessIx2Const( const fptype* buffer, const int ix2 ) <===] + static __host__ __device__ inline const fptype_sv& + kernelAccessIx2Const( const fptype* buffer, + const int ix2 ) + { + return kernelAccessIx2( const_cast( buffer ), ix2 ); + } + + /* + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (const, SCALAR OR VECTOR) ===> const fptype_sv& kernelAccessIx2Const( const fptype* buffer, const int ix2 ) <===] + static __host__ __device__ inline const fptype_sv& + kernelAccessIx2Const( const fptype* buffer, + const int ix2 ) + { + const fptype& out = kernelAccessIx2Const_s( buffer, ix2 ); #ifndef MGONGPU_CPPSIMD - return out; + return out; #else - // NB: derived from MemoryAccessMomenta, restricting the implementation to contiguous aligned arrays - constexpr int neppC = MemoryAccessCouplingsBase::neppC; - static_assert( neppC >= neppV ); // ASSUME CONTIGUOUS ARRAYS - static_assert( neppC % neppV == 0 ); // ASSUME CONTIGUOUS ARRAYS - static_assert( mg5amcCpu::HostBufferCouplings::isaligned() ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) - //assert( (size_t)( buffer ) % mgOnGpu::cppAlign == 0 ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) - return mg5amcCpu::fptypevFromAlignedArray( out ); // SIMD bulk load of neppV, use reinterpret_cast + // NB: derived from MemoryAccessMomenta, restricting the implementation to contiguous aligned arrays + constexpr int neppC = MemoryAccessCouplingsBase::neppC; + static_assert( neppC >= neppV ); // ASSUME CONTIGUOUS ARRAYS + static_assert( neppC % neppV == 0 ); // ASSUME CONTIGUOUS ARRAYS + static_assert( mg5amcCpu::HostBufferCouplings::isaligned() ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) + //assert( (size_t)( buffer ) % mgOnGpu::cppAlign == 0 ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) + return mg5amcCpu::fptypevFromAlignedArray( out ); // SIMD bulk load of neppV, use reinterpret_cast #endif - } - */ - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (non const, SCALAR OR VECTOR) ===> cxtype_sv_ref kernelAccess( fptype* buffer ) <===] - static __host__ __device__ inline cxtype_sv_ref - kernelAccess( fptype* buffer ) - { - /* - fptype_sv& real = kernelAccessIx2( buffer, 0 ); - fptype_sv& imag = kernelAccessIx2( buffer, 1 ); - printf( "C_ACCESS::kernelAccess: pbuffer=%p pr=%p pi=%p\n", buffer, &real, &imag ); - return cxtype_sv_ref( real, imag ); - */ - return cxtype_sv_ref( kernelAccessIx2( buffer, 0 ), - kernelAccessIx2( buffer, 1 ) ); - } - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (const, SCALAR OR VECTOR) ===> cxtype_sv kernelAccessConst( const fptype* buffer ) <===] - static __host__ __device__ inline cxtype_sv - kernelAccessConst( const fptype* buffer ) - { - /* - const fptype_sv& real = kernelAccessIx2Const( buffer, 0 ); - const fptype_sv& imag = kernelAccessIx2Const( buffer, 1 ); - printf( "C_ACCESS::kernelAccessConst: pbuffer=%p pr=%p pi=%p\n", buffer, &real, &imag ); - return cxtype_sv( real, imag ); + } */ - return cxtype_sv( kernelAccessIx2Const( buffer, 0 ), - kernelAccessIx2Const( buffer, 1 ) ); - } -}; - -//---------------------------------------------------------------------------- - -typedef KernelAccessCouplings HostAccessCouplings; -typedef KernelAccessCouplings DeviceAccessCouplings; -//---------------------------------------------------------------------------- + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (non const, SCALAR OR VECTOR) ===> cxtype_sv_ref kernelAccess( fptype* buffer ) <===] + static __host__ __device__ inline cxtype_sv_ref + kernelAccess( fptype* buffer ) + { + /* + fptype_sv& real = kernelAccessIx2( buffer, 0 ); + fptype_sv& imag = kernelAccessIx2( buffer, 1 ); + printf( "C_ACCESS::kernelAccess: pbuffer=%p pr=%p pi=%p\n", buffer, &real, &imag ); + return cxtype_sv_ref( real, imag ); + */ + return cxtype_sv_ref( kernelAccessIx2( buffer, 0 ), + kernelAccessIx2( buffer, 1 ) ); + } + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (const, SCALAR OR VECTOR) ===> cxtype_sv kernelAccessConst( const fptype* buffer ) <===] + static __host__ __device__ inline cxtype_sv + kernelAccessConst( const fptype* buffer ) + { + /* + const fptype_sv& real = kernelAccessIx2Const( buffer, 0 ); + const fptype_sv& imag = kernelAccessIx2Const( buffer, 1 ); + printf( "C_ACCESS::kernelAccessConst: pbuffer=%p pr=%p pi=%p\n", buffer, &real, &imag ); + return cxtype_sv( real, imag ); + */ + return cxtype_sv( kernelAccessIx2Const( buffer, 0 ), + kernelAccessIx2Const( buffer, 1 ) ); + } + }; + + //---------------------------------------------------------------------------- + + typedef KernelAccessCouplings HostAccessCouplings; + typedef KernelAccessCouplings DeviceAccessCouplings; + + //---------------------------------------------------------------------------- + +} // end namespace mg5amcGpu/mg5amcCpu #endif // MemoryAccessCouplings_H diff --git a/epochX/cudacpp/gg_ttg.sa/SubProcesses/MemoryAccessCouplingsFixed.h b/epochX/cudacpp/gg_ttg.sa/SubProcesses/MemoryAccessCouplingsFixed.h index 81193ab261..dc0d93afff 100644 --- a/epochX/cudacpp/gg_ttg.sa/SubProcesses/MemoryAccessCouplingsFixed.h +++ b/epochX/cudacpp/gg_ttg.sa/SubProcesses/MemoryAccessCouplingsFixed.h @@ -13,63 +13,72 @@ //#include "MemoryAccessHelpers.h" -//---------------------------------------------------------------------------- - -// A class describing the internal layout of memory buffers for fixed couplings -// This implementation uses a STRUCT[ndcoup][nx2] "super-buffer" layout: in practice, the cIPC global array -// From the "super-buffer" for ndcoup different couplings, use idcoupAccessBuffer to access the buffer for one specific coupling -// [If many implementations are used, a suffix _Sv1 should be appended to the class name] -class MemoryAccessCouplingsFixedBase //_Sv1 +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { -public: + //---------------------------------------------------------------------------- - // Locate the buffer for a single coupling (output) in a memory super-buffer (input) from the given coupling index (input) - // [Signature (const) ===> const fptype* iicoupAccessBufferConst( const fptype* buffer, const int iicoup ) <===] - static __host__ __device__ inline const fptype* - iicoupAccessBufferConst( const fptype* buffer, // input "super-buffer": in practice, the cIPC global array - const int iicoup ) + // A class describing the internal layout of memory buffers for fixed couplings + // This implementation uses a STRUCT[ndcoup][nx2] "super-buffer" layout: in practice, the cIPC global array + // From the "super-buffer" for ndcoup different couplings, use idcoupAccessBuffer to access the buffer for one specific coupling + // [If many implementations are used, a suffix _Sv1 should be appended to the class name] + class MemoryAccessCouplingsFixedBase //_Sv1 { - constexpr int ix2 = 0; - // NB! this effectively adds an offset "iicoup * nx2" - return &( buffer[iicoup * nx2 + ix2] ); // STRUCT[idcoup][ix2] - } - -private: - - // The number of floating point components of a complex number - static constexpr int nx2 = mgOnGpu::nx2; -}; - -//---------------------------------------------------------------------------- + public: + + // Locate the buffer for a single coupling (output) in a memory super-buffer (input) from the given coupling index (input) + // [Signature (const) ===> const fptype* iicoupAccessBufferConst( const fptype* buffer, const int iicoup ) <===] + static __host__ __device__ inline const fptype* + iicoupAccessBufferConst( const fptype* buffer, // input "super-buffer": in practice, the cIPC global array + const int iicoup ) + { + constexpr int ix2 = 0; + // NB! this effectively adds an offset "iicoup * nx2" + return &( buffer[iicoup * nx2 + ix2] ); // STRUCT[idcoup][ix2] + } + + private: + + // The number of floating point components of a complex number + static constexpr int nx2 = mgOnGpu::nx2; + }; + + //---------------------------------------------------------------------------- + + // A class providing access to memory buffers for a given event, based on implicit kernel rules + // Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations + template + class KernelAccessCouplingsFixed + { + public: -// A class providing access to memory buffers for a given event, based on implicit kernel rules -// Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations -template -class KernelAccessCouplingsFixed -{ -public: + // Expose selected functions from MemoryAccessCouplingsFixedBase + static constexpr auto iicoupAccessBufferConst = MemoryAccessCouplingsFixedBase::iicoupAccessBufferConst; - // Expose selected functions from MemoryAccessCouplingsFixedBase - static constexpr auto iicoupAccessBufferConst = MemoryAccessCouplingsFixedBase::iicoupAccessBufferConst; + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (const, SCALAR OR VECTOR) ===> cxtype_sv kernelAccessConst( const fptype* buffer ) <===] + static __host__ __device__ inline const cxtype_sv + kernelAccessConst( const fptype* buffer ) + { + // TRIVIAL ACCESS to fixed-couplings buffers! + //return cxmake( fptype_sv{ buffer[0] }, fptype_sv{ buffer[1] } ); // NO! BUG #339! + const fptype_sv r_sv = fptype_sv{ 0 } + buffer[0]; + const fptype_sv i_sv = fptype_sv{ 0 } + buffer[1]; + return cxmake( r_sv, i_sv ); // ugly but effective + } + }; - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (const, SCALAR OR VECTOR) ===> cxtype_sv kernelAccessConst( const fptype* buffer ) <===] - static __host__ __device__ inline const cxtype_sv - kernelAccessConst( const fptype* buffer ) - { - // TRIVIAL ACCESS to fixed-couplings buffers! - //return cxmake( fptype_sv{ buffer[0] }, fptype_sv{ buffer[1] } ); // NO! BUG #339! - const fptype_sv r_sv = fptype_sv{ 0 } + buffer[0]; - const fptype_sv i_sv = fptype_sv{ 0 } + buffer[1]; - return cxmake( r_sv, i_sv ); // ugly but effective - } -}; + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- + typedef KernelAccessCouplingsFixed HostAccessCouplingsFixed; + typedef KernelAccessCouplingsFixed DeviceAccessCouplingsFixed; -typedef KernelAccessCouplingsFixed HostAccessCouplingsFixed; -typedef KernelAccessCouplingsFixed DeviceAccessCouplingsFixed; + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- +} // end namespace mg5amcGpu/mg5amcCpu #endif // MemoryAccessCouplingsFixed_H diff --git a/epochX/cudacpp/gg_ttg.sa/SubProcesses/MemoryAccessDenominators.h b/epochX/cudacpp/gg_ttg.sa/SubProcesses/MemoryAccessDenominators.h index e76ae65ff9..3bce635718 100644 --- a/epochX/cudacpp/gg_ttg.sa/SubProcesses/MemoryAccessDenominators.h +++ b/epochX/cudacpp/gg_ttg.sa/SubProcesses/MemoryAccessDenominators.h @@ -9,15 +9,24 @@ #include "MemoryAccessGs.h" -//---------------------------------------------------------------------------- +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif +{ + //---------------------------------------------------------------------------- + + // A class describing the internal layout of memory buffers for denominators + // This implementation reuses the plain ARRAY[nevt] implementation of MemoryAccessGs -// A class describing the internal layout of memory buffers for denominators -// This implementation reuses the plain ARRAY[nevt] implementation of MemoryAccessGs + typedef KernelAccessGs HostAccessDenominators; + typedef KernelAccessGs DeviceAccessDenominators; -typedef KernelAccessGs HostAccessDenominators; -typedef KernelAccessGs DeviceAccessDenominators; + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- +} // end namespace mg5amcGpu/mg5amcCpu #endif #endif // MemoryAccessDenominators_H diff --git a/epochX/cudacpp/gg_ttg.sa/SubProcesses/MemoryAccessGs.h b/epochX/cudacpp/gg_ttg.sa/SubProcesses/MemoryAccessGs.h index 8996c0554c..31311aa375 100644 --- a/epochX/cudacpp/gg_ttg.sa/SubProcesses/MemoryAccessGs.h +++ b/epochX/cudacpp/gg_ttg.sa/SubProcesses/MemoryAccessGs.h @@ -12,142 +12,151 @@ #include "MemoryAccessVectors.h" #include "MemoryBuffers.h" // for HostBufferMatrixElements::isaligned -//---------------------------------------------------------------------------- - -// A class describing the internal layout of memory buffers for Gs -// This implementation uses a plain ARRAY[nevt] -// [If many implementations are used, a suffix _ARRAYv1 should be appended to the class name] -class MemoryAccessGsBase //_ARRAYv1 +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { -private: - - friend class MemoryAccessHelper; - friend class KernelAccessHelper; - friend class KernelAccessHelper; - - //-------------------------------------------------------------------------- - // NB all KernelLaunchers assume that memory access can be decomposed as "accessField = decodeRecord( accessRecord )" - // (in other words: first locate the event record for a given event, then locate an element in that record) - //-------------------------------------------------------------------------- - - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] - static __host__ __device__ inline fptype* - ieventAccessRecord( fptype* buffer, - const int ievt ) - { - return &( buffer[ievt] ); // ARRAY[nevt] - } - - //-------------------------------------------------------------------------- + //---------------------------------------------------------------------------- - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, Ts... args ) <===] - // [NB: expand variadic template "Ts... args" to empty and rename "Field" as empty] - static __host__ __device__ inline fptype& - decodeRecord( fptype* buffer ) + // A class describing the internal layout of memory buffers for Gs + // This implementation uses a plain ARRAY[nevt] + // [If many implementations are used, a suffix _ARRAYv1 should be appended to the class name] + class MemoryAccessGsBase //_ARRAYv1 { - constexpr int ievt = 0; - return buffer[ievt]; // ARRAY[nevt] - } -}; - -//---------------------------------------------------------------------------- - -// A class providing access to memory buffers for a given event, based on explicit event numbers -// Its methods use the MemoryAccessHelper templates - note the use of the template keyword in template function instantiations -class MemoryAccessGs : public MemoryAccessGsBase -{ -public: - - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] - static constexpr auto ieventAccessRecord = MemoryAccessHelper::ieventAccessRecord; - - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (const) ===> const fptype* ieventAccessRecordConst( const fptype* buffer, const int ievt ) <===] - static constexpr auto ieventAccessRecordConst = MemoryAccessHelper::ieventAccessRecordConst; - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer ) <===] - static constexpr auto decodeRecord = MemoryAccessHelper::decodeRecord; - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (const) ===> const fptype& decodeRecordConst( const fptype* buffer ) <===] - static constexpr auto decodeRecordConst = - MemoryAccessHelper::template decodeRecordConst<>; - - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (non-const) ===> fptype& ieventAccess( fptype* buffer, const ievt ) <===] - static constexpr auto ieventAccess = - MemoryAccessHelper::template ieventAccessField<>; - - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (const) ===> const fptype& ieventAccessConst( const fptype* buffer, const ievt ) <===] - static constexpr auto ieventAccessConst = - MemoryAccessHelper::template ieventAccessFieldConst<>; -}; - -//---------------------------------------------------------------------------- - -// A class providing access to memory buffers for a given event, based on implicit kernel rules -// Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations -template -class KernelAccessGs -{ -public: - - // Expose selected functions from MemoryAccessGs - static constexpr auto ieventAccessRecord = MemoryAccessGs::ieventAccessRecord; - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (non-const, SCALAR) ===> fptype& kernelAccess( fptype* buffer ) <===] - static constexpr auto kernelAccess_s = - KernelAccessHelper::template kernelAccessField<>; // requires cuda 11.4 - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) - // [Signature (non-const, SCALAR OR VECTOR) ===> fptype_sv& kernelAccess( fptype* buffer ) <===] - static __host__ __device__ inline fptype_sv& - kernelAccess( fptype* buffer ) + private: + + friend class MemoryAccessHelper; + friend class KernelAccessHelper; + friend class KernelAccessHelper; + + //-------------------------------------------------------------------------- + // NB all KernelLaunchers assume that memory access can be decomposed as "accessField = decodeRecord( accessRecord )" + // (in other words: first locate the event record for a given event, then locate an element in that record) + //-------------------------------------------------------------------------- + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] + static __host__ __device__ inline fptype* + ieventAccessRecord( fptype* buffer, + const int ievt ) + { + return &( buffer[ievt] ); // ARRAY[nevt] + } + + //-------------------------------------------------------------------------- + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, Ts... args ) <===] + // [NB: expand variadic template "Ts... args" to empty and rename "Field" as empty] + static __host__ __device__ inline fptype& + decodeRecord( fptype* buffer ) + { + constexpr int ievt = 0; + return buffer[ievt]; // ARRAY[nevt] + } + }; + + //---------------------------------------------------------------------------- + + // A class providing access to memory buffers for a given event, based on explicit event numbers + // Its methods use the MemoryAccessHelper templates - note the use of the template keyword in template function instantiations + class MemoryAccessGs : public MemoryAccessGsBase + { + public: + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] + static constexpr auto ieventAccessRecord = MemoryAccessHelper::ieventAccessRecord; + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (const) ===> const fptype* ieventAccessRecordConst( const fptype* buffer, const int ievt ) <===] + static constexpr auto ieventAccessRecordConst = MemoryAccessHelper::ieventAccessRecordConst; + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer ) <===] + static constexpr auto decodeRecord = MemoryAccessHelper::decodeRecord; + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (const) ===> const fptype& decodeRecordConst( const fptype* buffer ) <===] + static constexpr auto decodeRecordConst = + MemoryAccessHelper::template decodeRecordConst<>; + + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (non-const) ===> fptype& ieventAccess( fptype* buffer, const ievt ) <===] + static constexpr auto ieventAccess = + MemoryAccessHelper::template ieventAccessField<>; + + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (const) ===> const fptype& ieventAccessConst( const fptype* buffer, const ievt ) <===] + static constexpr auto ieventAccessConst = + MemoryAccessHelper::template ieventAccessFieldConst<>; + }; + + //---------------------------------------------------------------------------- + + // A class providing access to memory buffers for a given event, based on implicit kernel rules + // Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations + template + class KernelAccessGs { - fptype& out = kernelAccess_s( buffer ); + public: + + // Expose selected functions from MemoryAccessGs + static constexpr auto ieventAccessRecord = MemoryAccessGs::ieventAccessRecord; + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (non-const, SCALAR) ===> fptype& kernelAccess( fptype* buffer ) <===] + static constexpr auto kernelAccess_s = + KernelAccessHelper::template kernelAccessField<>; // requires cuda 11.4 + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) + // [Signature (non-const, SCALAR OR VECTOR) ===> fptype_sv& kernelAccess( fptype* buffer ) <===] + static __host__ __device__ inline fptype_sv& + kernelAccess( fptype* buffer ) + { + fptype& out = kernelAccess_s( buffer ); #ifndef MGONGPU_CPPSIMD - return out; + return out; #else - // NB: derived from MemoryAccessMomenta, restricting the implementation to contiguous aligned arrays (#435) - static_assert( mg5amcCpu::HostBufferGs::isaligned() ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) - //assert( (size_t)( buffer ) % mgOnGpu::cppAlign == 0 ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) - return mg5amcCpu::fptypevFromAlignedArray( out ); // SIMD bulk load of neppV, use reinterpret_cast + // NB: derived from MemoryAccessMomenta, restricting the implementation to contiguous aligned arrays (#435) + static_assert( mg5amcCpu::HostBufferGs::isaligned() ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) + //assert( (size_t)( buffer ) % mgOnGpu::cppAlign == 0 ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) + return mg5amcCpu::fptypevFromAlignedArray( out ); // SIMD bulk load of neppV, use reinterpret_cast #endif - } - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (const, SCALAR) ===> const fptype& kernelAccessConst( const fptype* buffer ) <===] - static constexpr auto kernelAccessConst_s = - KernelAccessHelper::template kernelAccessFieldConst<>; // requires cuda 11.4 - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) - // [Signature (const, SCALAR OR VECTOR) ===> const fptype_sv& kernelAccess( const fptype* buffer ) <===] - static __host__ __device__ inline const fptype_sv& - kernelAccessConst( const fptype* buffer ) - { - const fptype& out = kernelAccessConst_s( buffer ); + } + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (const, SCALAR) ===> const fptype& kernelAccessConst( const fptype* buffer ) <===] + static constexpr auto kernelAccessConst_s = + KernelAccessHelper::template kernelAccessFieldConst<>; // requires cuda 11.4 + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) + // [Signature (const, SCALAR OR VECTOR) ===> const fptype_sv& kernelAccess( const fptype* buffer ) <===] + static __host__ __device__ inline const fptype_sv& + kernelAccessConst( const fptype* buffer ) + { + const fptype& out = kernelAccessConst_s( buffer ); #ifndef MGONGPU_CPPSIMD - return out; + return out; #else - // NB: derived from MemoryAccessMomenta, restricting the implementation to contiguous aligned arrays (#435) - static_assert( mg5amcCpu::HostBufferGs::isaligned() ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) - //assert( (size_t)( buffer ) % mgOnGpu::cppAlign == 0 ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) - return mg5amcCpu::fptypevFromAlignedArray( out ); // SIMD bulk load of neppV, use reinterpret_cast + // NB: derived from MemoryAccessMomenta, restricting the implementation to contiguous aligned arrays (#435) + static_assert( mg5amcCpu::HostBufferGs::isaligned() ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) + //assert( (size_t)( buffer ) % mgOnGpu::cppAlign == 0 ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) + return mg5amcCpu::fptypevFromAlignedArray( out ); // SIMD bulk load of neppV, use reinterpret_cast #endif - } -}; + } + }; + + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- + typedef KernelAccessGs HostAccessGs; + typedef KernelAccessGs DeviceAccessGs; -typedef KernelAccessGs HostAccessGs; -typedef KernelAccessGs DeviceAccessGs; + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- +} // end namespace mg5amcGpu/mg5amcCpu #endif // MemoryAccessGs_H diff --git a/epochX/cudacpp/gg_ttg.sa/SubProcesses/MemoryAccessMatrixElements.h b/epochX/cudacpp/gg_ttg.sa/SubProcesses/MemoryAccessMatrixElements.h index b2a82d9acf..f32e6fea5b 100644 --- a/epochX/cudacpp/gg_ttg.sa/SubProcesses/MemoryAccessMatrixElements.h +++ b/epochX/cudacpp/gg_ttg.sa/SubProcesses/MemoryAccessMatrixElements.h @@ -12,126 +12,135 @@ #include "MemoryAccessVectors.h" #include "MemoryBuffers.h" // for HostBufferMatrixElements::isaligned -//---------------------------------------------------------------------------- - -// A class describing the internal layout of memory buffers for matrix elements -// This implementation uses a plain ARRAY[nevt] -// [If many implementations are used, a suffix _ARRAYv1 should be appended to the class name] -class MemoryAccessMatrixElementsBase //_ARRAYv1 +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { -private: - - friend class MemoryAccessHelper; - friend class KernelAccessHelper; - friend class KernelAccessHelper; - - //-------------------------------------------------------------------------- - // NB all KernelLaunchers assume that memory access can be decomposed as "accessField = decodeRecord( accessRecord )" - // (in other words: first locate the event record for a given event, then locate an element in that record) - //-------------------------------------------------------------------------- - - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] - static __host__ __device__ inline fptype* - ieventAccessRecord( fptype* buffer, - const int ievt ) - { - return &( buffer[ievt] ); // ARRAY[nevt] - } + //---------------------------------------------------------------------------- - //-------------------------------------------------------------------------- - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, Ts... args ) <===] - // [NB: expand variadic template "Ts... args" to empty and rename "Field" as empty] - static __host__ __device__ inline fptype& - decodeRecord( fptype* buffer ) + // A class describing the internal layout of memory buffers for matrix elements + // This implementation uses a plain ARRAY[nevt] + // [If many implementations are used, a suffix _ARRAYv1 should be appended to the class name] + class MemoryAccessMatrixElementsBase //_ARRAYv1 { - constexpr int ievt = 0; - return buffer[ievt]; // ARRAY[nevt] - } -}; - -//---------------------------------------------------------------------------- - -// A class providing access to memory buffers for a given event, based on explicit event numbers -// Its methods use the MemoryAccessHelper templates - note the use of the template keyword in template function instantiations -class MemoryAccessMatrixElements : public MemoryAccessMatrixElementsBase -{ -public: - - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] - static constexpr auto ieventAccessRecord = MemoryAccessHelper::ieventAccessRecord; - - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (const) ===> const fptype* ieventAccessRecordConst( const fptype* buffer, const int ievt ) <===] - static constexpr auto ieventAccessRecordConst = MemoryAccessHelper::ieventAccessRecordConst; - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer ) <===] - static constexpr auto decodeRecord = MemoryAccessHelper::decodeRecord; - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (const) ===> const fptype& decodeRecordConst( const fptype* buffer ) <===] - static constexpr auto decodeRecordConst = - MemoryAccessHelper::template decodeRecordConst<>; - - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (non-const) ===> fptype& ieventAccess( fptype* buffer, const ievt ) <===] - static constexpr auto ieventAccess = - MemoryAccessHelper::template ieventAccessField<>; - - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (const) ===> const fptype& ieventAccessConst( const fptype* buffer, const ievt ) <===] - static constexpr auto ieventAccessConst = - MemoryAccessHelper::template ieventAccessFieldConst<>; -}; - -//---------------------------------------------------------------------------- - -// A class providing access to memory buffers for a given event, based on implicit kernel rules -// Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations -template -class KernelAccessMatrixElements -{ -public: - - // Expose selected functions from MemoryAccessMatrixElements - static constexpr auto ieventAccessRecord = MemoryAccessMatrixElements::ieventAccessRecord; - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (non-const, SCALAR) ===> fptype& kernelAccess_s( fptype* buffer ) <===] - static constexpr auto kernelAccess_s = - KernelAccessHelper::template kernelAccessField<>; // requires cuda 11.4 - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) - // [Signature (non const, SCALAR OR VECTOR) ===> fptype_sv& kernelAccess( const fptype* buffer ) <===] - static __host__ __device__ inline fptype_sv& - kernelAccess( fptype* buffer ) + private: + + friend class MemoryAccessHelper; + friend class KernelAccessHelper; + friend class KernelAccessHelper; + + //-------------------------------------------------------------------------- + // NB all KernelLaunchers assume that memory access can be decomposed as "accessField = decodeRecord( accessRecord )" + // (in other words: first locate the event record for a given event, then locate an element in that record) + //-------------------------------------------------------------------------- + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] + static __host__ __device__ inline fptype* + ieventAccessRecord( fptype* buffer, + const int ievt ) + { + return &( buffer[ievt] ); // ARRAY[nevt] + } + + //-------------------------------------------------------------------------- + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, Ts... args ) <===] + // [NB: expand variadic template "Ts... args" to empty and rename "Field" as empty] + static __host__ __device__ inline fptype& + decodeRecord( fptype* buffer ) + { + constexpr int ievt = 0; + return buffer[ievt]; // ARRAY[nevt] + } + }; + + //---------------------------------------------------------------------------- + + // A class providing access to memory buffers for a given event, based on explicit event numbers + // Its methods use the MemoryAccessHelper templates - note the use of the template keyword in template function instantiations + class MemoryAccessMatrixElements : public MemoryAccessMatrixElementsBase + { + public: + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] + static constexpr auto ieventAccessRecord = MemoryAccessHelper::ieventAccessRecord; + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (const) ===> const fptype* ieventAccessRecordConst( const fptype* buffer, const int ievt ) <===] + static constexpr auto ieventAccessRecordConst = MemoryAccessHelper::ieventAccessRecordConst; + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer ) <===] + static constexpr auto decodeRecord = MemoryAccessHelper::decodeRecord; + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (const) ===> const fptype& decodeRecordConst( const fptype* buffer ) <===] + static constexpr auto decodeRecordConst = + MemoryAccessHelper::template decodeRecordConst<>; + + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (non-const) ===> fptype& ieventAccess( fptype* buffer, const ievt ) <===] + static constexpr auto ieventAccess = + MemoryAccessHelper::template ieventAccessField<>; + + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (const) ===> const fptype& ieventAccessConst( const fptype* buffer, const ievt ) <===] + static constexpr auto ieventAccessConst = + MemoryAccessHelper::template ieventAccessFieldConst<>; + }; + + //---------------------------------------------------------------------------- + + // A class providing access to memory buffers for a given event, based on implicit kernel rules + // Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations + template + class KernelAccessMatrixElements { - fptype& out = kernelAccess_s( buffer ); + public: + + // Expose selected functions from MemoryAccessMatrixElements + static constexpr auto ieventAccessRecord = MemoryAccessMatrixElements::ieventAccessRecord; + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (non-const, SCALAR) ===> fptype& kernelAccess_s( fptype* buffer ) <===] + static constexpr auto kernelAccess_s = + KernelAccessHelper::template kernelAccessField<>; // requires cuda 11.4 + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) + // [Signature (non const, SCALAR OR VECTOR) ===> fptype_sv& kernelAccess( const fptype* buffer ) <===] + static __host__ __device__ inline fptype_sv& + kernelAccess( fptype* buffer ) + { + fptype& out = kernelAccess_s( buffer ); #ifndef MGONGPU_CPPSIMD - return out; + return out; #else - // NB: derived from MemoryAccessMomenta, restricting the implementation to contiguous aligned arrays (#435) - static_assert( mg5amcCpu::HostBufferMatrixElements::isaligned() ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) - //assert( (size_t)( buffer ) % mgOnGpu::cppAlign == 0 ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) - return mg5amcCpu::fptypevFromAlignedArray( out ); // SIMD bulk load of neppV, use reinterpret_cast + // NB: derived from MemoryAccessMomenta, restricting the implementation to contiguous aligned arrays (#435) + static_assert( mg5amcCpu::HostBufferMatrixElements::isaligned() ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) + //assert( (size_t)( buffer ) % mgOnGpu::cppAlign == 0 ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) + return mg5amcCpu::fptypevFromAlignedArray( out ); // SIMD bulk load of neppV, use reinterpret_cast #endif - } + } + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (const) ===> const fptype& kernelAccessConst( const fptype* buffer ) <===] + static constexpr auto kernelAccessConst = + KernelAccessHelper::template kernelAccessFieldConst<>; // requires cuda 11.4 + }; - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (const) ===> const fptype& kernelAccessConst( const fptype* buffer ) <===] - static constexpr auto kernelAccessConst = - KernelAccessHelper::template kernelAccessFieldConst<>; // requires cuda 11.4 -}; + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- + typedef KernelAccessMatrixElements HostAccessMatrixElements; + typedef KernelAccessMatrixElements DeviceAccessMatrixElements; -typedef KernelAccessMatrixElements HostAccessMatrixElements; -typedef KernelAccessMatrixElements DeviceAccessMatrixElements; + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- +} // end namespace mg5amcGpu/mg5amcCpu #endif // MemoryAccessMatrixElements_H diff --git a/epochX/cudacpp/gg_ttg.sa/SubProcesses/MemoryAccessMomenta.h b/epochX/cudacpp/gg_ttg.sa/SubProcesses/MemoryAccessMomenta.h index 0ac4faa3c7..29266de32c 100644 --- a/epochX/cudacpp/gg_ttg.sa/SubProcesses/MemoryAccessMomenta.h +++ b/epochX/cudacpp/gg_ttg.sa/SubProcesses/MemoryAccessMomenta.h @@ -12,261 +12,264 @@ #include "MemoryAccessHelpers.h" #include "MemoryAccessVectors.h" +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) #ifdef __CUDACC__ -using mg5amcGpu::CPPProcess; +namespace mg5amcGpu #else -using mg5amcCpu::CPPProcess; +namespace mg5amcCpu #endif - -//---------------------------------------------------------------------------- - -// A class describing the internal layout of memory buffers for momenta -// This implementation uses an AOSOA[npagM][npar][np4][neppM] where nevt=npagM*neppM -// [If many implementations are used, a suffix _AOSOAv1 should be appended to the class name] -class MemoryAccessMomentaBase //_AOSOAv1 { -public: + //---------------------------------------------------------------------------- + + // A class describing the internal layout of memory buffers for momenta + // This implementation uses an AOSOA[npagM][npar][np4][neppM] where nevt=npagM*neppM + // [If many implementations are used, a suffix _AOSOAv1 should be appended to the class name] + class MemoryAccessMomentaBase //_AOSOAv1 + { + public: - // Number of Events Per Page in the momenta AOSOA memory buffer layout - // (these are all best kept as a compile-time constants: see issue #23) + // Number of Events Per Page in the momenta AOSOA memory buffer layout + // (these are all best kept as a compile-time constants: see issue #23) #ifdef __CUDACC__ /* clang-format off */ - // ----------------------------------------------------------------------------------------------- - // --- GPUs: neppM is best set to a power of 2 times the number of fptype's in a 32-byte cacheline - // --- This is relevant to ensure coalesced access to momenta in global memory - // --- Note that neppR is hardcoded and may differ from neppM and neppV on some platforms - // ----------------------------------------------------------------------------------------------- - //static constexpr int neppM = 64/sizeof(fptype); // 2x 32-byte GPU cache lines (512 bits): 8 (DOUBLE) or 16 (FLOAT) - static constexpr int neppM = 32/sizeof(fptype); // (DEFAULT) 32-byte GPU cache line (256 bits): 4 (DOUBLE) or 8 (FLOAT) - //static constexpr int neppM = 1; // *** NB: this is equivalent to AOS *** (slower: 1.03E9 instead of 1.11E9 in eemumu) + // ----------------------------------------------------------------------------------------------- + // --- GPUs: neppM is best set to a power of 2 times the number of fptype's in a 32-byte cacheline + // --- This is relevant to ensure coalesced access to momenta in global memory + // --- Note that neppR is hardcoded and may differ from neppM and neppV on some platforms + // ----------------------------------------------------------------------------------------------- + //static constexpr int neppM = 64/sizeof(fptype); // 2x 32-byte GPU cache lines (512 bits): 8 (DOUBLE) or 16 (FLOAT) + static constexpr int neppM = 32/sizeof(fptype); // (DEFAULT) 32-byte GPU cache line (256 bits): 4 (DOUBLE) or 8 (FLOAT) + //static constexpr int neppM = 1; // *** NB: this is equivalent to AOS *** (slower: 1.03E9 instead of 1.11E9 in eemumu) #else - // ----------------------------------------------------------------------------------------------- - // --- CPUs: neppM is best set equal to the number of fptype's (neppV) in a vector register - // --- This is relevant to ensure faster access to momenta from C++ memory cache lines - // --- However, neppM is now decoupled from neppV (issue #176) and can be separately hardcoded - // --- In practice, neppR, neppM and neppV could now (in principle) all be different - // ----------------------------------------------------------------------------------------------- + // ----------------------------------------------------------------------------------------------- + // --- CPUs: neppM is best set equal to the number of fptype's (neppV) in a vector register + // --- This is relevant to ensure faster access to momenta from C++ memory cache lines + // --- However, neppM is now decoupled from neppV (issue #176) and can be separately hardcoded + // --- In practice, neppR, neppM and neppV could now (in principle) all be different + // ----------------------------------------------------------------------------------------------- #ifdef MGONGPU_CPPSIMD - static constexpr int neppM = MGONGPU_CPPSIMD; // (DEFAULT) neppM=neppV for optimal performance - //static constexpr int neppM = 64/sizeof(fptype); // maximum CPU vector width (512 bits): 8 (DOUBLE) or 16 (FLOAT) - //static constexpr int neppM = 32/sizeof(fptype); // lower CPU vector width (256 bits): 4 (DOUBLE) or 8 (FLOAT) - //static constexpr int neppM = 1; // *** NB: this is equivalent to AOS *** (slower: 4.66E6 instead of 5.09E9 in eemumu) - //static constexpr int neppM = MGONGPU_CPPSIMD*2; // FOR TESTS + static constexpr int neppM = MGONGPU_CPPSIMD; // (DEFAULT) neppM=neppV for optimal performance + //static constexpr int neppM = 64/sizeof(fptype); // maximum CPU vector width (512 bits): 8 (DOUBLE) or 16 (FLOAT) + //static constexpr int neppM = 32/sizeof(fptype); // lower CPU vector width (256 bits): 4 (DOUBLE) or 8 (FLOAT) + //static constexpr int neppM = 1; // *** NB: this is equivalent to AOS *** (slower: 4.66E6 instead of 5.09E9 in eemumu) + //static constexpr int neppM = MGONGPU_CPPSIMD*2; // FOR TESTS #else - static constexpr int neppM = 1; // (DEFAULT) neppM=neppV for optimal performance (NB: this is equivalent to AOS) + static constexpr int neppM = 1; // (DEFAULT) neppM=neppV for optimal performance (NB: this is equivalent to AOS) #endif #endif /* clang-format on */ - // SANITY CHECK: check that neppM is a power of two - static_assert( ispoweroftwo( neppM ), "neppM is not a power of 2" ); + // SANITY CHECK: check that neppM is a power of two + static_assert( ispoweroftwo( neppM ), "neppM is not a power of 2" ); -private: + private: - friend class MemoryAccessHelper; - friend class KernelAccessHelper; - friend class KernelAccessHelper; + friend class MemoryAccessHelper; + friend class KernelAccessHelper; + friend class KernelAccessHelper; - // The number of components of a 4-momentum - static constexpr int np4 = CPPProcess::np4; + // The number of components of a 4-momentum + static constexpr int np4 = CPPProcess::np4; - // The number of particles in this physics process - static constexpr int npar = CPPProcess::npar; + // The number of particles in this physics process + static constexpr int npar = CPPProcess::npar; - //-------------------------------------------------------------------------- - // NB all KernelLaunchers assume that memory access can be decomposed as "accessField = decodeRecord( accessRecord )" - // (in other words: first locate the event record for a given event, then locate an element in that record) - //-------------------------------------------------------------------------- + //-------------------------------------------------------------------------- + // NB all KernelLaunchers assume that memory access can be decomposed as "accessField = decodeRecord( accessRecord )" + // (in other words: first locate the event record for a given event, then locate an element in that record) + //-------------------------------------------------------------------------- - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] - static __host__ __device__ inline fptype* - ieventAccessRecord( fptype* buffer, - const int ievt ) - { - const int ipagM = ievt / neppM; // #event "M-page" - const int ieppM = ievt % neppM; // #event in the current event M-page - constexpr int ip4 = 0; - constexpr int ipar = 0; - return &( buffer[ipagM * npar * np4 * neppM + ipar * np4 * neppM + ip4 * neppM + ieppM] ); // AOSOA[ipagM][ipar][ip4][ieppM] - } - - //-------------------------------------------------------------------------- - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, Ts... args ) <===] - // [NB: expand variadic template "Ts... args" to "const int ip4, const int ipar" and rename "Field" as "Ip4Ipar"] - static __host__ __device__ inline fptype& - decodeRecord( fptype* buffer, - const int ip4, - const int ipar ) + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] + static __host__ __device__ inline fptype* + ieventAccessRecord( fptype* buffer, + const int ievt ) + { + const int ipagM = ievt / neppM; // #event "M-page" + const int ieppM = ievt % neppM; // #event in the current event M-page + constexpr int ip4 = 0; + constexpr int ipar = 0; + return &( buffer[ipagM * npar * np4 * neppM + ipar * np4 * neppM + ip4 * neppM + ieppM] ); // AOSOA[ipagM][ipar][ip4][ieppM] + } + + //-------------------------------------------------------------------------- + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, Ts... args ) <===] + // [NB: expand variadic template "Ts... args" to "const int ip4, const int ipar" and rename "Field" as "Ip4Ipar"] + static __host__ __device__ inline fptype& + decodeRecord( fptype* buffer, + const int ip4, + const int ipar ) + { + constexpr int ipagM = 0; + constexpr int ieppM = 0; + return buffer[ipagM * npar * np4 * neppM + ipar * np4 * neppM + ip4 * neppM + ieppM]; // AOSOA[ipagM][ipar][ip4][ieppM] + } + }; + + //---------------------------------------------------------------------------- + + // A class providing access to memory buffers for a given event, based on explicit event numbers + // Its methods use the MemoryAccessHelper templates - note the use of the template keyword in template function instantiations + class MemoryAccessMomenta : public MemoryAccessMomentaBase { - constexpr int ipagM = 0; - constexpr int ieppM = 0; - return buffer[ipagM * npar * np4 * neppM + ipar * np4 * neppM + ip4 * neppM + ieppM]; // AOSOA[ipagM][ipar][ip4][ieppM] - } -}; + public: + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] + static constexpr auto ieventAccessRecord = MemoryAccessHelper::ieventAccessRecord; + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (const) ===> const fptype* ieventAccessRecordConst( const fptype* buffer, const int ievt ) <===] + static constexpr auto ieventAccessRecordConst = MemoryAccessHelper::ieventAccessRecordConst; + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, const int ipar, const int ipar ) <===] + static constexpr auto decodeRecordIp4Ipar = MemoryAccessHelper::decodeRecord; + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (const) ===> const fptype& decodeRecordConst( const fptype* buffer, const int ipar, const int ipar ) <===] + static constexpr auto decodeRecordIp4IparConst = + MemoryAccessHelper::template decodeRecordConst; + + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (non-const) ===> fptype& ieventAccessIp4Ipar( fptype* buffer, const ievt, const int ipar, const int ipar ) <===] + static constexpr auto ieventAccessIp4Ipar = + MemoryAccessHelper::template ieventAccessField; + + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (const) ===> const fptype& ieventAccessIp4IparConst( const fptype* buffer, const ievt, const int ipar, const int ipar ) <===] + // DEFAULT VERSION + static constexpr auto ieventAccessIp4IparConst = + MemoryAccessHelper::template ieventAccessFieldConst; + + /* + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (const) ===> const fptype& ieventAccessIp4IparConst( const fptype* buffer, const ievt, const int ipar, const int ipar ) <===] + // DEBUG VERSION WITH PRINTOUTS + static __host__ __device__ inline const fptype& + ieventAccessIp4IparConst( const fptype* buffer, + const int ievt, + const int ip4, + const int ipar ) + { + const fptype& out = MemoryAccessHelper::template ieventAccessFieldConst( buffer, ievt, ip4, ipar ); + printf( "ipar=%2d ip4=%2d ievt=%8d out=%8.3f\n", ipar, ip4, ievt, out ); + return out; + } + */ + }; -//---------------------------------------------------------------------------- + //---------------------------------------------------------------------------- -// A class providing access to memory buffers for a given event, based on explicit event numbers -// Its methods use the MemoryAccessHelper templates - note the use of the template keyword in template function instantiations -class MemoryAccessMomenta : public MemoryAccessMomentaBase -{ -public: - - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] - static constexpr auto ieventAccessRecord = MemoryAccessHelper::ieventAccessRecord; - - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (const) ===> const fptype* ieventAccessRecordConst( const fptype* buffer, const int ievt ) <===] - static constexpr auto ieventAccessRecordConst = MemoryAccessHelper::ieventAccessRecordConst; - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, const int ipar, const int ipar ) <===] - static constexpr auto decodeRecordIp4Ipar = MemoryAccessHelper::decodeRecord; - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (const) ===> const fptype& decodeRecordConst( const fptype* buffer, const int ipar, const int ipar ) <===] - static constexpr auto decodeRecordIp4IparConst = - MemoryAccessHelper::template decodeRecordConst; - - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (non-const) ===> fptype& ieventAccessIp4Ipar( fptype* buffer, const ievt, const int ipar, const int ipar ) <===] - static constexpr auto ieventAccessIp4Ipar = - MemoryAccessHelper::template ieventAccessField; - - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (const) ===> const fptype& ieventAccessIp4IparConst( const fptype* buffer, const ievt, const int ipar, const int ipar ) <===] - // DEFAULT VERSION - static constexpr auto ieventAccessIp4IparConst = - MemoryAccessHelper::template ieventAccessFieldConst; - - /* - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (const) ===> const fptype& ieventAccessIp4IparConst( const fptype* buffer, const ievt, const int ipar, const int ipar ) <===] - // DEBUG VERSION WITH PRINTOUTS - static __host__ __device__ inline const fptype& - ieventAccessIp4IparConst( const fptype* buffer, - const int ievt, - const int ip4, - const int ipar ) + // A class providing access to memory buffers for a given event, based on implicit kernel rules + // Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations + template + class KernelAccessMomenta { - const fptype& out = MemoryAccessHelper::template ieventAccessFieldConst( buffer, ievt, ip4, ipar ); - printf( "ipar=%2d ip4=%2d ievt=%8d out=%8.3f\n", ipar, ip4, ievt, out ); - return out; - } - */ -}; - -//---------------------------------------------------------------------------- - -// A class providing access to memory buffers for a given event, based on implicit kernel rules -// Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations -template -class KernelAccessMomenta -{ -public: - - // Expose selected functions from MemoryAccessMomenta - static constexpr auto ieventAccessRecordConst = MemoryAccessMomenta::ieventAccessRecordConst; - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (non-const, SCALAR) ===> fptype& kernelAccessIp4Ipar( fptype* buffer, const int ipar, const int ipar ) <===] - static constexpr auto kernelAccessIp4Ipar = - KernelAccessHelper::template kernelAccessField; - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (const, SCALAR) ===> const fptype& kernelAccessIp4IparConst( const fptype* buffer, const int ipar, const int ipar ) <===] - // DEFAULT VERSION - static constexpr auto kernelAccessIp4IparConst_s = - KernelAccessHelper::template kernelAccessFieldConst; - - /* - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (const, SCALAR) ===> const fptype& kernelAccessIp4IparConst( const fptype* buffer, const int ipar, const int ipar ) <===] - // DEBUG VERSION WITH PRINTOUTS - static __host__ __device__ inline const fptype& - kernelAccessIp4IparConst_s( const fptype* buffer, + public: + + // Expose selected functions from MemoryAccessMomenta + static constexpr auto ieventAccessRecordConst = MemoryAccessMomenta::ieventAccessRecordConst; + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (non-const, SCALAR) ===> fptype& kernelAccessIp4Ipar( fptype* buffer, const int ipar, const int ipar ) <===] + static constexpr auto kernelAccessIp4Ipar = + KernelAccessHelper::template kernelAccessField; + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (const, SCALAR) ===> const fptype& kernelAccessIp4IparConst( const fptype* buffer, const int ipar, const int ipar ) <===] + // DEFAULT VERSION + static constexpr auto kernelAccessIp4IparConst_s = + KernelAccessHelper::template kernelAccessFieldConst; + + /* + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (const, SCALAR) ===> const fptype& kernelAccessIp4IparConst( const fptype* buffer, const int ipar, const int ipar ) <===] + // DEBUG VERSION WITH PRINTOUTS + static __host__ __device__ inline const fptype& + kernelAccessIp4IparConst_s( const fptype* buffer, + const int ip4, + const int ipar ) + { + const fptype& out = KernelAccessHelper::template kernelAccessFieldConst( buffer, ip4, ipar ); + printf( "ipar=%2d ip4=%2d ievt='kernel' out=%8.3f\n", ipar, ip4, out ); + return out; + } + */ + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (const, SCALAR OR VECTOR) ===> fptype_sv kernelAccessIp4IparConst( const fptype* buffer, const int ipar, const int ipar ) <===] + // FIXME? Eventually return by const reference and support aligned arrays only? + // FIXME? Currently return by value to support also unaligned and arbitrary arrays + static __host__ __device__ inline fptype_sv + kernelAccessIp4IparConst( const fptype* buffer, const int ip4, const int ipar ) - { - const fptype& out = KernelAccessHelper::template kernelAccessFieldConst( buffer, ip4, ipar ); - printf( "ipar=%2d ip4=%2d ievt='kernel' out=%8.3f\n", ipar, ip4, out ); - return out; - } - */ - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (const, SCALAR OR VECTOR) ===> fptype_sv kernelAccessIp4IparConst( const fptype* buffer, const int ipar, const int ipar ) <===] - // FIXME? Eventually return by const reference and support aligned arrays only? - // FIXME? Currently return by value to support also unaligned and arbitrary arrays - static __host__ __device__ inline fptype_sv - kernelAccessIp4IparConst( const fptype* buffer, - const int ip4, - const int ipar ) - { - const fptype& out = kernelAccessIp4IparConst_s( buffer, ip4, ipar ); + { + const fptype& out = kernelAccessIp4IparConst_s( buffer, ip4, ipar ); #ifndef MGONGPU_CPPSIMD - return out; + return out; #else - constexpr int neppM = MemoryAccessMomentaBase::neppM; - constexpr bool useContiguousEventsIfPossible = true; // DEFAULT - //constexpr bool useContiguousEventsIfPossible = false; // FOR PERFORMANCE TESTS (treat as arbitrary array even if it is an AOSOA) - // Use c++17 "if constexpr": compile-time branching - if constexpr( useContiguousEventsIfPossible && ( neppM >= neppV ) && ( neppM % neppV == 0 ) ) - { - //constexpr bool skipAlignmentCheck = true; // FASTEST (SEGFAULTS IF MISALIGNED ACCESS, NEEDS A SANITY CHECK ELSEWHERE!) - constexpr bool skipAlignmentCheck = false; // DEFAULT: A BIT SLOWER BUT SAFER [ALLOWS MISALIGNED ACCESS] - if constexpr( skipAlignmentCheck ) - { - //static bool first=true; if( first ){ std::cout << "WARNING! assume aligned AOSOA, skip check" << std::endl; first=false; } // SLOWER (5.06E6) - // FASTEST? (5.09E6 in eemumu 512y) - // This assumes alignment for momenta1d without checking - causes segmentation fault in reinterpret_cast if not aligned! - return mg5amcCpu::fptypevFromAlignedArray( out ); // use reinterpret_cast - } - else if( (size_t)( buffer ) % mgOnGpu::cppAlign == 0 ) + constexpr int neppM = MemoryAccessMomentaBase::neppM; + constexpr bool useContiguousEventsIfPossible = true; // DEFAULT + //constexpr bool useContiguousEventsIfPossible = false; // FOR PERFORMANCE TESTS (treat as arbitrary array even if it is an AOSOA) + // Use c++17 "if constexpr": compile-time branching + if constexpr( useContiguousEventsIfPossible && ( neppM >= neppV ) && ( neppM % neppV == 0 ) ) { - //static bool first=true; if( first ){ std::cout << "WARNING! aligned AOSOA, reinterpret cast" << std::endl; first=false; } // SLOWER (5.00E6) - // DEFAULT! A tiny bit (<1%) slower because of the alignment check (5.07E6 in eemumu 512y) - // This explicitly checks buffer alignment to avoid segmentation faults in reinterpret_cast - return mg5amcCpu::fptypevFromAlignedArray( out ); // SIMD bulk load of neppV, use reinterpret_cast + //constexpr bool skipAlignmentCheck = true; // FASTEST (SEGFAULTS IF MISALIGNED ACCESS, NEEDS A SANITY CHECK ELSEWHERE!) + constexpr bool skipAlignmentCheck = false; // DEFAULT: A BIT SLOWER BUT SAFER [ALLOWS MISALIGNED ACCESS] + if constexpr( skipAlignmentCheck ) + { + //static bool first=true; if( first ){ std::cout << "WARNING! assume aligned AOSOA, skip check" << std::endl; first=false; } // SLOWER (5.06E6) + // FASTEST? (5.09E6 in eemumu 512y) + // This assumes alignment for momenta1d without checking - causes segmentation fault in reinterpret_cast if not aligned! + return mg5amcCpu::fptypevFromAlignedArray( out ); // use reinterpret_cast + } + else if( (size_t)( buffer ) % mgOnGpu::cppAlign == 0 ) + { + //static bool first=true; if( first ){ std::cout << "WARNING! aligned AOSOA, reinterpret cast" << std::endl; first=false; } // SLOWER (5.00E6) + // DEFAULT! A tiny bit (<1%) slower because of the alignment check (5.07E6 in eemumu 512y) + // This explicitly checks buffer alignment to avoid segmentation faults in reinterpret_cast + return mg5amcCpu::fptypevFromAlignedArray( out ); // SIMD bulk load of neppV, use reinterpret_cast + } + else + { + //static bool first=true; if( first ){ std::cout << "WARNING! AOSOA but no reinterpret cast" << std::endl; first=false; } // SLOWER (4.93E6) + // A bit (1%) slower (5.05E6 in eemumu 512y) + // This does not require buffer alignment, but it requires AOSOA with neppM>=neppV and neppM%neppV==0 + return mg5amcCpu::fptypevFromUnalignedArray( out ); // SIMD bulk load of neppV, do not use reinterpret_cast (fewer SIMD operations) + } } else { - //static bool first=true; if( first ){ std::cout << "WARNING! AOSOA but no reinterpret cast" << std::endl; first=false; } // SLOWER (4.93E6) - // A bit (1%) slower (5.05E6 in eemumu 512y) - // This does not require buffer alignment, but it requires AOSOA with neppM>=neppV and neppM%neppV==0 - return mg5amcCpu::fptypevFromUnalignedArray( out ); // SIMD bulk load of neppV, do not use reinterpret_cast (fewer SIMD operations) + //static bool first=true; if( first ){ std::cout << "WARNING! arbitrary array" << std::endl; first=false; } // SLOWER (5.08E6) + // ?!Used to be much slower, now a tiny bit faster for AOSOA?! (5.11E6 for AOSOA, 4.64E6 for AOS in eemumu 512y) + // This does not even require AOSOA with neppM>=neppV and neppM%neppV==0 (e.g. can be used with AOS neppM==1) + constexpr int ievt0 = 0; // just make it explicit in the code that buffer refers to a given ievt0 and decoderIeppV fetches event ievt0+ieppV + auto decoderIeppv = [buffer, ip4, ipar]( int ieppV ) + -> const fptype& + { return MemoryAccessMomenta::ieventAccessIp4IparConst( buffer, ievt0 + ieppV, ip4, ipar ); }; + return mg5amcCpu::fptypevFromArbitraryArray( decoderIeppv ); // iterate over ieppV in neppV (no SIMD) } +#endif } - else + + // Is this a HostAccess or DeviceAccess class? + // [this is only needed for a warning printout in rambo.h for nparf==1 #358] + static __host__ __device__ inline constexpr bool + isOnDevice() { - //static bool first=true; if( first ){ std::cout << "WARNING! arbitrary array" << std::endl; first=false; } // SLOWER (5.08E6) - // ?!Used to be much slower, now a tiny bit faster for AOSOA?! (5.11E6 for AOSOA, 4.64E6 for AOS in eemumu 512y) - // This does not even require AOSOA with neppM>=neppV and neppM%neppV==0 (e.g. can be used with AOS neppM==1) - constexpr int ievt0 = 0; // just make it explicit in the code that buffer refers to a given ievt0 and decoderIeppV fetches event ievt0+ieppV - auto decoderIeppv = [buffer, ip4, ipar]( int ieppV ) - -> const fptype& - { return MemoryAccessMomenta::ieventAccessIp4IparConst( buffer, ievt0 + ieppV, ip4, ipar ); }; - return mg5amcCpu::fptypevFromArbitraryArray( decoderIeppv ); // iterate over ieppV in neppV (no SIMD) + return onDevice; } -#endif - } + }; - // Is this a HostAccess or DeviceAccess class? - // [this is only needed for a warning printout in rambo.h for nparf==1 #358] - static __host__ __device__ inline constexpr bool - isOnDevice() - { - return onDevice; - } -}; + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- + typedef KernelAccessMomenta HostAccessMomenta; + typedef KernelAccessMomenta DeviceAccessMomenta; -typedef KernelAccessMomenta HostAccessMomenta; -typedef KernelAccessMomenta DeviceAccessMomenta; + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- +} // end namespace mg5amcGpu/mg5amcCpu #endif // MemoryAccessMomenta_H diff --git a/epochX/cudacpp/gg_ttg.sa/SubProcesses/MemoryAccessNumerators.h b/epochX/cudacpp/gg_ttg.sa/SubProcesses/MemoryAccessNumerators.h index b373fd6048..b152183b28 100644 --- a/epochX/cudacpp/gg_ttg.sa/SubProcesses/MemoryAccessNumerators.h +++ b/epochX/cudacpp/gg_ttg.sa/SubProcesses/MemoryAccessNumerators.h @@ -9,15 +9,24 @@ #include "MemoryAccessGs.h" -//---------------------------------------------------------------------------- +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif +{ + //---------------------------------------------------------------------------- + + // A class describing the internal layout of memory buffers for numerators + // This implementation reuses the plain ARRAY[nevt] implementation of MemoryAccessGs -// A class describing the internal layout of memory buffers for numerators -// This implementation reuses the plain ARRAY[nevt] implementation of MemoryAccessGs + typedef KernelAccessGs HostAccessNumerators; + typedef KernelAccessGs DeviceAccessNumerators; -typedef KernelAccessGs HostAccessNumerators; -typedef KernelAccessGs DeviceAccessNumerators; + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- +} // end namespace mg5amcGpu/mg5amcCpu #endif #endif // MemoryAccessNumerators_H diff --git a/epochX/cudacpp/gg_ttg.sa/SubProcesses/MemoryAccessWavefunctions.h b/epochX/cudacpp/gg_ttg.sa/SubProcesses/MemoryAccessWavefunctions.h index f42f0d34ed..5428aaf933 100644 --- a/epochX/cudacpp/gg_ttg.sa/SubProcesses/MemoryAccessWavefunctions.h +++ b/epochX/cudacpp/gg_ttg.sa/SubProcesses/MemoryAccessWavefunctions.h @@ -14,147 +14,156 @@ #define MGONGPU_TRIVIAL_WAVEFUNCTIONS 1 -//---------------------------------------------------------------------------- - -#ifndef MGONGPU_TRIVIAL_WAVEFUNCTIONS - -// A class describing the internal layout of memory buffers for wavefunctions -// This implementation uses an AOSOA[npagW][nw6][nx2][neppW] where nevt=npagW*neppW -// [If many implementations are used, a suffix _AOSOAv1 should be appended to the class name] -class MemoryAccessWavefunctionsBase //_AOSOAv1 +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { -public: - - // Number of Events Per Page in the wavefunction AOSOA memory buffer layout - static constexpr int neppW = 1; // AOS (just a test...) - -private: - - friend class MemoryAccessHelper; - friend class KernelAccessHelper; - friend class KernelAccessHelper; - - // The number of components of a (fermion or vector) wavefunction - static constexpr int nw6 = mgOnGpu::nw6; - - // The number of floating point components of a complex number - static constexpr int nx2 = mgOnGpu::nx2; + //---------------------------------------------------------------------------- - //-------------------------------------------------------------------------- - // NB all KernelLaunchers assume that memory access can be decomposed as "accessField = decodeRecord( accessRecord )" - // (in other words: first locate the event record for a given event, then locate an element in that record) - //-------------------------------------------------------------------------- +#ifndef MGONGPU_TRIVIAL_WAVEFUNCTIONS - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] - static __host__ __device__ inline fptype* - ieventAccessRecord( fptype* buffer, - const int ievt ) + // A class describing the internal layout of memory buffers for wavefunctions + // This implementation uses an AOSOA[npagW][nw6][nx2][neppW] where nevt=npagW*neppW + // [If many implementations are used, a suffix _AOSOAv1 should be appended to the class name] + class MemoryAccessWavefunctionsBase //_AOSOAv1 { - const int ipagW = ievt / neppW; // #event "W-page" - const int ieppW = ievt % neppW; // #event in the current event W-page - constexpr int iw6 = 0; - constexpr int ix2 = 0; - return &( buffer[ipagW * nw6 * nx2 * neppW + iw6 * nx2 * neppW + ix2 * neppW + ieppW] ); // AOSOA[ipagW][iw6][ix2][ieppW] - } - - //-------------------------------------------------------------------------- - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, Ts... args ) <===] - // [NB: expand variadic template "Ts... args" to "const int iw6, const int ix2" and rename "Field" as "Iw6Ix2"] - static __host__ __device__ inline fptype& - decodeRecord( fptype* buffer, - const int iw6, - const int ix2 ) + public: + + // Number of Events Per Page in the wavefunction AOSOA memory buffer layout + static constexpr int neppW = 1; // AOS (just a test...) + + private: + + friend class MemoryAccessHelper; + friend class KernelAccessHelper; + friend class KernelAccessHelper; + + // The number of components of a (fermion or vector) wavefunction + static constexpr int nw6 = mgOnGpu::nw6; + + // The number of floating point components of a complex number + static constexpr int nx2 = mgOnGpu::nx2; + + //-------------------------------------------------------------------------- + // NB all KernelLaunchers assume that memory access can be decomposed as "accessField = decodeRecord( accessRecord )" + // (in other words: first locate the event record for a given event, then locate an element in that record) + //-------------------------------------------------------------------------- + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] + static __host__ __device__ inline fptype* + ieventAccessRecord( fptype* buffer, + const int ievt ) + { + const int ipagW = ievt / neppW; // #event "W-page" + const int ieppW = ievt % neppW; // #event in the current event W-page + constexpr int iw6 = 0; + constexpr int ix2 = 0; + return &( buffer[ipagW * nw6 * nx2 * neppW + iw6 * nx2 * neppW + ix2 * neppW + ieppW] ); // AOSOA[ipagW][iw6][ix2][ieppW] + } + + //-------------------------------------------------------------------------- + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, Ts... args ) <===] + // [NB: expand variadic template "Ts... args" to "const int iw6, const int ix2" and rename "Field" as "Iw6Ix2"] + static __host__ __device__ inline fptype& + decodeRecord( fptype* buffer, + const int iw6, + const int ix2 ) + { + constexpr int ipagW = 0; + constexpr int ieppW = 0; + return buffer[ipagW * nw6 * nx2 * neppW + iw6 * nx2 * neppW + ix2 * neppW + ieppW]; // AOSOA[ipagW][iw6][ix2][ieppW] + } + }; + + //---------------------------------------------------------------------------- + + // A class providing access to memory buffers for a given event, based on explicit event numbers + // Its methods use the MemoryAccessHelper templates - note the use of the template keyword in template function instantiations + class MemoryAccessWavefunctions : public MemoryAccessWavefunctionsBase { - constexpr int ipagW = 0; - constexpr int ieppW = 0; - return buffer[ipagW * nw6 * nx2 * neppW + iw6 * nx2 * neppW + ix2 * neppW + ieppW]; // AOSOA[ipagW][iw6][ix2][ieppW] - } -}; - -//---------------------------------------------------------------------------- + public: -// A class providing access to memory buffers for a given event, based on explicit event numbers -// Its methods use the MemoryAccessHelper templates - note the use of the template keyword in template function instantiations -class MemoryAccessWavefunctions : public MemoryAccessWavefunctionsBase -{ -public: + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] + static constexpr auto ieventAccessRecord = MemoryAccessHelper::ieventAccessRecord; - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] - static constexpr auto ieventAccessRecord = MemoryAccessHelper::ieventAccessRecord; + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (const) ===> const fptype* ieventAccessRecordConst( const fptype* buffer, const int ievt ) <===] + static constexpr auto ieventAccessRecordConst = MemoryAccessHelper::ieventAccessRecordConst; - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (const) ===> const fptype* ieventAccessRecordConst( const fptype* buffer, const int ievt ) <===] - static constexpr auto ieventAccessRecordConst = MemoryAccessHelper::ieventAccessRecordConst; + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, const int iw6, const int ix2 ) <===] + static constexpr auto decodeRecordIw6Ix2 = MemoryAccessHelper::decodeRecord; - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, const int iw6, const int ix2 ) <===] - static constexpr auto decodeRecordIw6Ix2 = MemoryAccessHelper::decodeRecord; + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (const) ===> const fptype& decodeRecordConst( const fptype* buffer, const int iw6, const int ix2 ) <===] + static constexpr auto decodeRecordIw6Ix2Const = + MemoryAccessHelper::template decodeRecordConst; - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (const) ===> const fptype& decodeRecordConst( const fptype* buffer, const int iw6, const int ix2 ) <===] - static constexpr auto decodeRecordIw6Ix2Const = - MemoryAccessHelper::template decodeRecordConst; + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (non-const) ===> fptype& ieventAccessIw6Ix2( fptype* buffer, const ievt, const int iw6, const int ix2 ) <===] + static constexpr auto ieventAccessIw6Ix2 = + MemoryAccessHelper::template ieventAccessField; - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (non-const) ===> fptype& ieventAccessIw6Ix2( fptype* buffer, const ievt, const int iw6, const int ix2 ) <===] - static constexpr auto ieventAccessIw6Ix2 = - MemoryAccessHelper::template ieventAccessField; - - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (const) ===> const fptype& ieventAccessIw6Ix2Const( const fptype* buffer, const ievt, const int iw6, const int ix2 ) <===] - static constexpr auto ieventAccessIw6Ix2Const = - MemoryAccessHelper::template ieventAccessFieldConst; -}; + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (const) ===> const fptype& ieventAccessIw6Ix2Const( const fptype* buffer, const ievt, const int iw6, const int ix2 ) <===] + static constexpr auto ieventAccessIw6Ix2Const = + MemoryAccessHelper::template ieventAccessFieldConst; + }; #endif // #ifndef MGONGPU_TRIVIAL_WAVEFUNCTIONS -//---------------------------------------------------------------------------- + //---------------------------------------------------------------------------- -// A class providing access to memory buffers for a given event, based on implicit kernel rules -// Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations -template -class KernelAccessWavefunctions -{ -public: + // A class providing access to memory buffers for a given event, based on implicit kernel rules + // Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations + template + class KernelAccessWavefunctions + { + public: #ifndef MGONGPU_TRIVIAL_WAVEFUNCTIONS - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (non-const) ===> fptype& kernelAccessIw6Ix2( fptype* buffer, const int iw6, const int ix2 ) <===] - static constexpr auto kernelAccessIw6Ix2 = - KernelAccessHelper::template kernelAccessField; + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (non-const) ===> fptype& kernelAccessIw6Ix2( fptype* buffer, const int iw6, const int ix2 ) <===] + static constexpr auto kernelAccessIw6Ix2 = + KernelAccessHelper::template kernelAccessField; - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (const) ===> const fptype& kernelAccessIw6Ix2Const( const fptype* buffer, const int iw6, const int ix2 ) <===] - static constexpr auto kernelAccessIw6Ix2Const = - KernelAccessHelper::template kernelAccessFieldConst; + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (const) ===> const fptype& kernelAccessIw6Ix2Const( const fptype* buffer, const int iw6, const int ix2 ) <===] + static constexpr auto kernelAccessIw6Ix2Const = + KernelAccessHelper::template kernelAccessFieldConst; #else - static __host__ __device__ inline cxtype_sv* - kernelAccess( fptype* buffer ) - { - return reinterpret_cast( buffer ); - } + static __host__ __device__ inline cxtype_sv* + kernelAccess( fptype* buffer ) + { + return reinterpret_cast( buffer ); + } - static __host__ __device__ inline const cxtype_sv* - kernelAccessConst( const fptype* buffer ) - { - return reinterpret_cast( buffer ); - } + static __host__ __device__ inline const cxtype_sv* + kernelAccessConst( const fptype* buffer ) + { + return reinterpret_cast( buffer ); + } #endif // #ifndef MGONGPU_TRIVIAL_WAVEFUNCTIONS -}; + }; + + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- + typedef KernelAccessWavefunctions HostAccessWavefunctions; + typedef KernelAccessWavefunctions DeviceAccessWavefunctions; -typedef KernelAccessWavefunctions HostAccessWavefunctions; -typedef KernelAccessWavefunctions DeviceAccessWavefunctions; + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- +} // end namespace mg5amcGpu/mg5amcCpu #endif // MemoryAccessWavefunctions_H diff --git a/epochX/cudacpp/gg_ttg.sa/SubProcesses/cudacpp.mk b/epochX/cudacpp/gg_ttg.sa/SubProcesses/cudacpp.mk index a0397e9ecc..c2f7b8e0f6 100644 --- a/epochX/cudacpp/gg_ttg.sa/SubProcesses/cudacpp.mk +++ b/epochX/cudacpp/gg_ttg.sa/SubProcesses/cudacpp.mk @@ -76,7 +76,7 @@ endif CXXFLAGS = $(OPTFLAGS) -std=c++17 $(INCFLAGS) -Wall -Wshadow -Wextra ifeq ($(shell $(CXX) --version | grep ^nvc++),) -CXXFLAGS+= -ffast-math # see issue #117 +CXXFLAGS += -ffast-math # see issue #117 endif ###CXXFLAGS+= -Ofast # performance is not different from --fast-math ###CXXFLAGS+= -g # FOR DEBUGGING ONLY @@ -122,7 +122,7 @@ ifneq ($(wildcard $(CUDA_HOME)/bin/nvcc),) CUINC = -I$(CUDA_HOME)/include/ CURANDLIBFLAGS = -L$(CUDA_HOME)/lib64/ -lcurand # NB: -lcuda is not needed here! CUOPTFLAGS = -lineinfo - CUFLAGS = $(OPTFLAGS) $(CUOPTFLAGS) $(INCFLAGS) $(CUINC) $(USE_NVTX) $(CUARCHFLAGS) -use_fast_math + CUFLAGS = $(foreach opt, $(OPTFLAGS), -Xcompiler $(opt)) $(CUOPTFLAGS) $(INCFLAGS) $(CUINC) $(USE_NVTX) $(CUARCHFLAGS) -use_fast_math ###CUFLAGS += -Xcompiler -Wall -Xcompiler -Wextra -Xcompiler -Wshadow ###NVCC_VERSION = $(shell $(NVCC) --version | grep 'Cuda compilation tools' | cut -d' ' -f5 | cut -d, -f1) CUFLAGS += -std=c++17 # need CUDA >= 11.2 (see #333): this is enforced in mgOnGpuConfig.h @@ -142,6 +142,8 @@ else override CUINC= override CURANDLIBFLAGS= endif +export NVCC +export CUFLAGS # Set the host C++ compiler for nvcc via "-ccbin " # (NB issue #505: this must be a single word, "clang++ --gcc-toolchain..." is not supported) @@ -439,7 +441,7 @@ endif # Target (and build options): debug MAKEDEBUG= -debug: OPTFLAGS = -g -O0 -DDEBUG2 +debug: OPTFLAGS = -g -O0 debug: CUOPTFLAGS = -G debug: MAKEDEBUG := debug debug: all.$(TAG) @@ -468,9 +470,9 @@ $(BUILDDIR)/%.o : %.cc *.h ../../src/*.h $(BUILDDIR)/.build.$(TAG) @if [ ! -d $(BUILDDIR) ]; then echo "mkdir -p $(BUILDDIR)"; mkdir -p $(BUILDDIR); fi $(CXX) $(CPPFLAGS) $(CXXFLAGS) -fPIC -c $< -o $@ -# Apply special build flags only to CrossSectionKernel.cc and gCrossSectionKernel.cu (no fast math, see #117) +# Apply special build flags only to CrossSectionKernel.cc and gCrossSectionKernel.cu (no fast math, see #117 and #516) ifeq ($(shell $(CXX) --version | grep ^nvc++),) -$(BUILDDIR)/CrossSectionKernels.o: CXXFLAGS += -fno-fast-math +$(BUILDDIR)/CrossSectionKernels.o: CXXFLAGS := $(filter-out -ffast-math,$(CXXFLAGS)) $(BUILDDIR)/CrossSectionKernels.o: CXXFLAGS += -fno-fast-math ifneq ($(NVCC),) $(BUILDDIR)/gCrossSectionKernels.o: CUFLAGS += -Xcompiler -fno-fast-math diff --git a/epochX/cudacpp/gg_ttg.sa/SubProcesses/runTest.cc b/epochX/cudacpp/gg_ttg.sa/SubProcesses/runTest.cc index 572e28aaea..df7488178e 100644 --- a/epochX/cudacpp/gg_ttg.sa/SubProcesses/runTest.cc +++ b/epochX/cudacpp/gg_ttg.sa/SubProcesses/runTest.cc @@ -2,6 +2,9 @@ // Licensed under the GNU Lesser General Public License (version 3 or later). // Created by: S. Hageboeck (Nov 2020) for the MG5aMC CUDACPP plugin. // Further modified by: S. Hageboeck, O. Mattelaer, S. Roiser, A. Valassi (2020-2023) for the MG5aMC CUDACPP plugin. +//---------------------------------------------------------------------------- +// Use ./runTest.exe --gtest_filter=*xxx to run only testxxx.cc tests +//---------------------------------------------------------------------------- #include "mgOnGpuConfig.h" diff --git a/epochX/cudacpp/gg_ttg.sa/SubProcesses/testmisc.cc b/epochX/cudacpp/gg_ttg.sa/SubProcesses/testmisc.cc index 989aba1fdc..895d6eeb56 100644 --- a/epochX/cudacpp/gg_ttg.sa/SubProcesses/testmisc.cc +++ b/epochX/cudacpp/gg_ttg.sa/SubProcesses/testmisc.cc @@ -3,7 +3,7 @@ // Created by: A. Valassi (Jan 2022) for the MG5aMC CUDACPP plugin. // Further modified by: A. Valassi (2022-2023) for the MG5aMC CUDACPP plugin. //---------------------------------------------------------------------------- -// Use ./runTest.exe --gtest_filter=*misc to run only this test +// Use ./runTest.exe --gtest_filter=*misc to run only testmisc.cc tests //---------------------------------------------------------------------------- #include "mgOnGpuConfig.h" @@ -25,33 +25,48 @@ #define XTESTID( s ) TESTID( s ) +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif +{ #ifdef MGONGPU_CPPSIMD /* clang-format off */ -bool maskand( const bool_v& mask ){ bool out = true; for ( int i=0; i #include +#include // debug #701 (see https://stackoverflow.com/a/17473528) #include #include #include @@ -28,16 +32,47 @@ #define XTESTID( s ) TESTID( s ) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif +{ + std::string FPEhandlerMessage = "unknown"; + int FPEhandlerIevt = -1; + inline void FPEhandler( int sig ) + { +#ifdef __CUDACC__ + std::cerr << "Floating Point Exception (GPU): '" << FPEhandlerMessage << "' ievt=" << FPEhandlerIevt << std::endl; +#else + std::cerr << "Floating Point Exception (CPU neppV=" << neppV << "): '" << FPEhandlerMessage << "' ievt=" << FPEhandlerIevt << std::endl; +#endif + exit( 0 ); + } +} + TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) { +#ifdef __CUDACC__ + using namespace mg5amcGpu; +#else + using namespace mg5amcCpu; +#endif +#ifndef __APPLE__ // test #701 (except on MacOS where feenableexcept is not defined #730) + const bool enableFPE = !getenv( "CUDACPP_RUNTIME_DISABLEFPE" ); + if( enableFPE ) + { + feenableexcept( FE_INVALID | FE_DIVBYZERO | FE_OVERFLOW | FE_UNDERFLOW ); // debug #701 + signal( SIGFPE, FPEhandler ); + } +#endif constexpr bool dumpEvents = false; // dump the expected output of the test? constexpr bool testEvents = !dumpEvents; // run the test? constexpr fptype toleranceXXXs = std::is_same::value ? 1.E-15 : 1.E-5; // Constant parameters constexpr int neppM = MemoryAccessMomenta::neppM; // AOSOA layout - using mgOnGpu::neppV; constexpr int np4 = CPPProcess::np4; - const int nevt = 16; // 12 independent tests plus 4 duplicates (need a multiple of 8 for floats or for '512z') + const int nevt = 32; // 12 independent tests plus 20 duplicates (need a multiple of 16 for floats '512z') assert( nevt % neppM == 0 ); // nevt must be a multiple of neppM assert( nevt % neppV == 0 ); // nevt must be a multiple of neppV // Fill in the input momenta @@ -46,24 +81,41 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) #else mg5amcCpu::HostBufferMomenta hstMomenta( nevt ); // AOSOA[npagM][npar=4][np4=4][neppM] #endif /* clang-format off */ + // NB NEW TESTS FOR DEBUGGING #701: KEEP TWO SEPARATE SETS (16-SIMD-VECTORS!) OF TESTS FOR M==0 AND M!=0! const fptype par0[np4 * nevt] = // AOS[nevt][np4] { - 500, 0, 0, 500, // #0 (m=0 pT=0 E=pz>0) - 500, 0, 0, -500, // #1 (m=0 pT=0 -E=pz<0) - 500, 300, 400, 0, // #2 (m=0 pT>0 pz=0) - 500, 180, 240, 400, // #3 (m=0 pT>0 pz>0) - 500, 180, 240, -400, // #4 (m=0 pT>0 pz<0) - 500, 0, 0, 0, // #5 (m=50>0 pT=0 pz=0) - 500, 0, 0, 300, // #6 (m=40>0 pT=0 pz>0) - 500, 0, 0, -300, // #7 (m=40>0 pT=0 pz<0) - 500, 180, 240, 0, // #8 (m=40>0 pT>0 pz=0) - 500, -240, -180, 0, // #9 (m=40>0 pT>0 pz=0) - 500, 180, 192, 144, // #10 (m=40>0 pT>0 pz>0) - 500, 180, 192, -144, // #11 (m=40>0 pT>0 pz<0) - 500, 0, 0, 500, // DUPLICATE #12 == #0 (m=0 pT=0 E=pz>0) - 500, 0, 0, -500, // DUPLICATE #13 == #1 (m=0 pT=0 -E=pz<0) - 500, 300, 400, 0, // DUPLICATE #14 == #2 (m=0 pT>0 pz=0) - 500, 180, 240, 400 // DUPLICATE #15 == #3 (m=0 pT>0 pz>0) + 500, 0, 0, 500, // #0 (m=0 pT=0 E=pz>0) + 500, 0, 0, -500, // #1 (m=0 pT=0 -E=pz<0) + 500, 300, 400, 0, // #2 (m=0 pT>0 pz=0) + 500, 180, 240, 400, // #3 (m=0 pT>0 pz>0) + 500, 180, 240, -400, // #4 (m=0 pT>0 pz<0) + 500, 0, 0, 500, // #5 DUPLICATE == #0 (m=0 pT=0 E=pz>0) + 500, 0, 0, -500, // #6 DUPLICATE == #1 (m=0 pT=0 -E=pz<0) + 500, 300, 400, 0, // #7 DUPLICATE == #2 (m=0 pT>0 pz=0) + 500, 180, 240, 400, // #8 DUPLICATE == #3 (m=0 pT>0 pz>0) + 500, 180, 240, -400, // #9 DUPLICATE == #4 (m=0 pT>0 pz<0) + 500, 0, 0, 500, // #10 DUPLICATE == #0 (m=0 pT=0 E=pz>0) + 500, 0, 0, -500, // #11 DUPLICATE == #1 (m=0 pT=0 -E=pz<0) + 500, 300, 400, 0, // #12 DUPLICATE == #2 (m=0 pT>0 pz=0) + 500, 180, 240, 400, // #13 DUPLICATE == #3 (m=0 pT>0 pz>0) + 500, 180, 240, -400, // #14 DUPLICATE == #4 (m=0 pT>0 pz<0) + 500, 0, 0, 500, // #15 DUPLICATE == #0 (m=0 pT=0 E=pz>0) + 500, 0, 0, 0, // #16 (m=50>0 pT=0 pz=0) + 500, 0, 0, 300, // #17 (m=40>0 pT=0 pz>0) + 500, 0, 0, -300, // #18 (m=40>0 pT=0 pz<0) + 500, 180, 240, 0, // #19 (m=40>0 pT>0 pz=0) + 500, -240, -180, 0, // #20 (m=40>0 pT>0 pz=0) + 500, 180, 192, 144, // #21 (m=40>0 pT>0 pz>0) + 500, 180, 192, -144, // #22 (m=40>0 pT>0 pz<0) + 500, 0, 0, 0, // #23 DUPLICATE == #16 (m=50>0 pT=0 pz=0) + 500, 0, 0, 300, // #24 DUPLICATE == #17 (m=40>0 pT=0 pz>0) + 500, 0, 0, -300, // #25 DUPLICATE == #18 (m=40>0 pT=0 pz<0) + 500, 180, 240, 0, // #26 DUPLICATE == #19 (m=40>0 pT>0 pz=0) + 500, -240, -180, 0, // #27 DUPLICATE == #20 (m=40>0 pT>0 pz=0) + 500, 180, 192, 144, // #28 DUPLICATE == #21 (m=40>0 pT>0 pz>0) + 500, 180, 192, -144, // #29 DUPLICATE == #22 (m=40>0 pT>0 pz<0) + 500, 0, 0, 0, // #30 DUPLICATE == #16 (m=50>0 pT=0 pz=0) + 500, 0, 0, 300 // #31 DUPLICATE == #17 (m=40>0 pT=0 pz>0) }; /* clang-format on */ // Array initialization: zero-out as "{0}" (C and C++) or as "{}" (C++ only) // See https://en.cppreference.com/w/c/language/array_initialization#Notes @@ -99,7 +151,15 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) constexpr int nw6 = CPPProcess::nw6; // dimensions of each wavefunction (HELAS KEK 91-11): e.g. 6 for e+ e- -> mu+ mu- (fermions and vectors) int itest = 0; // index on the expected output vector std::ofstream dumpFile; - if( dumpEvents ) dumpFile.open( dumpFileName, std::ios::trunc ); + if( dumpEvents ) + { + dumpFile.open( dumpFileName, std::ios::trunc ); + dumpFile << " // Copyright (C) 2020-2023 CERN and UCLouvain." << std::endl + << " // Licensed under the GNU Lesser General Public License (version 3 or later)." << std::endl + << " // Created by: A. Valassi (Apr 2021) for the MG5aMC CUDACPP plugin." << std::endl + << " // Further modified by: A. Valassi (2021-2023) for the MG5aMC CUDACPP plugin." << std::endl; + } + // Lambda function for dumping wavefunctions auto dumpwf6 = [&]( std::ostream& out, const cxtype_sv wf[6], const char* xxx, int ievt, int nsp, fptype mass ) { out << std::setprecision( 15 ) << std::scientific; @@ -129,6 +189,7 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) } out << std::defaultfloat; }; + // Lambda function for testing wavefunctions (1) auto testwf6 = [&]( const cxtype_sv wf[6], const char* xxx, int ievt, int nsp, fptype mass ) { if( dumpEvents ) dumpwf6( dumpFile, wf, xxx, ievt, nsp, mass ); @@ -170,6 +231,7 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) } itest++; }; + // Lambda function for testing wavefunctions (2) auto testwf6two = [&]( const cxtype_sv wf[6], const cxtype_sv expwf[6], const char* xxx, int ievt ) { if( testEvents ) @@ -213,6 +275,32 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) } } }; + // Lambda function for resetting hstMomenta to the values of par0 + // This is needed in each test because hstMomenta may have been modified to ensure a function like ipzxxx can be used (#701) + auto resetHstMomentaToPar0 = [&]() + { + for( int ievt = 0; ievt < nevt; ievt++ ) + for( int ip4 = 0; ip4 < np4; ip4++ ) + MemoryAccessMomenta::ieventAccessIp4Ipar( hstMomenta.data(), ievt, ip4, ipar0 ) = par0[ievt * np4 + ip4]; // AOS to AOSOA + }; + // Lambda function for preparing the test of one specific function + const bool debug = false; + auto prepareTest = [&]( const char* xxx, int ievt ) + { + if( debug ) std::cout << "Prepare test " << xxx << " ievt=" << ievt << std::endl; + resetHstMomentaToPar0(); + FPEhandlerMessage = xxx; + FPEhandlerIevt = ievt; + if( std::string( xxx ) == "ipzxxx" || std::string( xxx ) == "opzxxx" || std::string( xxx ) == "imzxxx" || std::string( xxx ) == "omzxxx" || std::string( xxx ) == "ixzxxx" || std::string( xxx ) == "oxzxxx" ) + { + // Modify hstMomenta so that ALL events have the momenta of a single ievt + // This ensures that a function like ipzxxx (which assumes pZ>0) can be used without triggering FPEs (#701) + // This is done by filling the full SIMD vector with the value of ievt, which was already tested to respect the relevant assumptions + for( int jevt = 0; jevt < nevt; jevt++ ) + for( int ip4 = 0; ip4 < np4; ip4++ ) + MemoryAccessMomenta::ieventAccessIp4Ipar( hstMomenta.data(), jevt, ip4, ipar0 ) = par0[ievt * np4 + ip4]; // AOS to AOSOA + } + }; // Array initialization: zero-out as "{0}" (C and C++) or as "{}" (C++ only) // See https://en.cppreference.com/w/c/language/array_initialization#Notes cxtype_sv outwfI[6] = {}; // last result of ixxxxx (mass==0) @@ -224,6 +312,7 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) fptype* fp_outwf = reinterpret_cast( outwf ); // proof of concept for using fptype* in the interface fptype* fp_outwf3 = reinterpret_cast( outwf3 ); // proof of concept for using fptype* in the interface const int nhel = 1; + // *** START OF TESTING LOOP for( auto nsp: { -1, +1 } ) // antifermion/fermion (or initial/final for scalar and vector) { for( int ievt = 0; ievt < nevt; ievt++ ) @@ -233,9 +322,10 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) #else using namespace mg5amcCpu; #endif - if( false ) + if( debug ) { std::cout << std::endl; + std::cout << "nsp=" << nsp << " ievt=" << ievt << ": "; for( int ip4 = 0; ip4 < np4; ip4++ ) std::cout << par0[ievt * np4 + ip4] << ", "; std::cout << std::endl; } @@ -243,6 +333,7 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) const fptype* ievt0Momenta = MemoryAccessMomenta::ieventAccessRecordConst( hstMomenta.data(), ipagV * neppV ); // Test ixxxxx - NO ASSUMPTIONS { + prepareTest( "ixxxxx", ievt ); const fptype fmass = mass0[ievt]; ixxxxx( ievt0Momenta, fmass, nhel, nsp, fp_outwfI, ipar0 ); testwf6( outwfI, "ixxxxx", ievt, nsp, fmass ); @@ -252,6 +343,7 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) // Test ipzxxx - ASSUMPTIONS: (FMASS == 0) and (PX == PY == 0 and E == +PZ > 0) if( mass0[ievt] == 0 && !isptgt0[ievt] && ispzgt0[ievt] ) { + prepareTest( "ipzxxx", ievt ); ipzxxx( ievt0Momenta, nhel, nsp, fp_outwf, ipar0 ); testwf6two( outwf, outwfI, "ipzxxx", ievt ); testwf6( outwf, "ipzxxx", ievt, nsp, 0 ); @@ -259,6 +351,7 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) // Test imzxxx - ASSUMPTIONS: (FMASS == 0) and (PX == PY == 0 and E == -PZ > 0) if( mass0[ievt] == 0 && !isptgt0[ievt] && ispzlt0[ievt] ) { + prepareTest( "imzxxx", ievt ); imzxxx( ievt0Momenta, nhel, nsp, fp_outwf, ipar0 ); testwf6two( outwf, outwfI, "imzxxx", ievt ); testwf6( outwf, "imzxxx", ievt, nsp, 0 ); @@ -266,12 +359,14 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) // Test ixzxxx - ASSUMPTIONS: (FMASS == 0) and (PT > 0) if( mass0[ievt] == 0 && isptgt0[ievt] ) { + prepareTest( "ixzxxx", ievt ); ixzxxx( ievt0Momenta, nhel, nsp, fp_outwf, ipar0 ); testwf6two( outwf, outwfI, "ixzxxx", ievt ); testwf6( outwf, "ixzxxx", ievt, nsp, 0 ); } // Test vxxxxx - NO ASSUMPTIONS { + prepareTest( "vxxxxx", ievt ); const fptype vmass = mass0[ievt]; vxxxxx( ievt0Momenta, vmass, nhel, nsp, fp_outwf, ipar0 ); testwf6( outwf, "vxxxxx", ievt, nsp, vmass ); @@ -280,6 +375,7 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) } // Test sxxxxx - NO ASSUMPTIONS { + prepareTest( "sxxxxx", ievt ); const fptype smass = mass0[ievt]; sxxxxx( ievt0Momenta, nsp, fp_outwf3, ipar0 ); // no mass, no helicity (was "smass>0") testwf6( outwf3, "sxxxxx", ievt, nsp, smass ); @@ -288,6 +384,7 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) } // Test oxxxxx - NO ASSUMPTIONS { + prepareTest( "oxxxxx", ievt ); const fptype fmass = mass0[ievt]; oxxxxx( ievt0Momenta, fmass, nhel, nsp, fp_outwfO, ipar0 ); testwf6( outwfO, "oxxxxx", ievt, nsp, fmass ); @@ -297,6 +394,7 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) // Test opzxxx - ASSUMPTIONS: (FMASS == 0) and (PX == PY == 0 and E == +PZ > 0) if( mass0[ievt] == 0 && !isptgt0[ievt] && ispzgt0[ievt] ) { + prepareTest( "opzxxx", ievt ); opzxxx( ievt0Momenta, nhel, nsp, fp_outwf, ipar0 ); testwf6two( outwf, outwfO, "opzxxx", ievt ); testwf6( outwf, "opzxxx", ievt, nsp, 0 ); @@ -304,6 +402,7 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) // Test omzxxx - ASSUMPTIONS: (FMASS == 0) and (PX == PY == 0 and E == -PZ > 0) if( mass0[ievt] == 0 && !isptgt0[ievt] && ispzlt0[ievt] ) { + prepareTest( "omzxxx", ievt ); omzxxx( ievt0Momenta, nhel, nsp, fp_outwf, ipar0 ); testwf6two( outwf, outwfO, "omzxxx", ievt ); testwf6( outwf, "omzxxx", ievt, nsp, 0 ); @@ -311,17 +410,25 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) // Test oxzxxx - ASSUMPTIONS: (FMASS == 0) and (PT > 0) if( mass0[ievt] == 0 && isptgt0[ievt] ) { - oxzxxx( ievt0Momenta, nhel, nsp, reinterpret_cast( outwf ), ipar0 ); + prepareTest( "oxzxxx", ievt ); + oxzxxx( ievt0Momenta, nhel, nsp, fp_outwf, ipar0 ); testwf6two( outwf, outwfO, "oxzxxx", ievt ); testwf6( outwf, "oxzxxx", ievt, nsp, 0 ); } } } + // *** END OF TESTING LOOP if( dumpEvents ) { dumpFile.close(); std::cout << "INFO: New reference data dumped to file '" << dumpFileName << "'" << std::endl; } +#ifndef __APPLE__ // test #701 (except on MacOS where fedisableexcept is not defined #730) + if( enableFPE ) + { + fedisableexcept( FE_INVALID | FE_DIVBYZERO | FE_OVERFLOW | FE_UNDERFLOW ); // debug #701 + } +#endif } //========================================================================== diff --git a/epochX/cudacpp/gg_ttg.sa/SubProcesses/testxxx_cc_ref.txt b/epochX/cudacpp/gg_ttg.sa/SubProcesses/testxxx_cc_ref.txt index acb9bde918..637530d1f5 100644 --- a/epochX/cudacpp/gg_ttg.sa/SubProcesses/testxxx_cc_ref.txt +++ b/epochX/cudacpp/gg_ttg.sa/SubProcesses/testxxx_cc_ref.txt @@ -5,14 +5,14 @@ expwfs.push_back( { // --------- 5.000000000000000e+02, 5.000000000000000e+02, // itest=0: ixxxxx#0 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=0: ixxxxx#0 nsp=-1 mass=0 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=0: ixxxxx#0 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=0: ixxxxx#0 nsp=-1 mass=0 -3.162277660168379e+01, 0.000000000000000e+00, // itest=0: ixxxxx#0 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=0: ixxxxx#0 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=0: ixxxxx#0 nsp=-1 mass=0 expwfs.push_back( { // --------- 5.000000000000000e+02, 5.000000000000000e+02, // itest=1: ixxxxx#0 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=1: ixxxxx#0 nsp=-1 mass=0 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=1: ixxxxx#0 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=1: ixxxxx#0 nsp=-1 mass=0 -3.162277660168379e+01, 0.000000000000000e+00, // itest=1: ixxxxx#0 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=1: ixxxxx#0 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=1: ixxxxx#0 nsp=-1 mass=0 @@ -82,8 +82,8 @@ expwfs.push_back( { // --------- 5.000000000000000e+02, -5.000000000000000e+02, // itest=11: ixxxxx#1 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=11: ixxxxx#1 nsp=-1 mass=0 - -3.162277660168379e+01, -0.000000000000000e+00, // itest=11: ixxxxx#1 nsp=-1 mass=0 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=11: ixxxxx#1 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=11: ixxxxx#1 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=11: ixxxxx#1 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=11: ixxxxx#1 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=11: ixxxxx#1 nsp=-1 mass=0 expwfs.push_back( { // --------- @@ -133,8 +133,8 @@ -0.000000000000000e+00, -0.000000000000000e+00, // itest=18: oxxxxx#1 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=18: oxxxxx#1 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=18: oxxxxx#1 nsp=-1 mass=0 - -3.162277660168379e+01, -0.000000000000000e+00, // itest=18: oxxxxx#1 nsp=-1 mass=0 - -0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=18: oxxxxx#1 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=18: oxxxxx#1 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=18: oxxxxx#1 nsp=-1 mass=0 expwfs.push_back( { // --------- -5.000000000000000e+02, 5.000000000000000e+02, // itest=19: omzxxx#1 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=19: omzxxx#1 nsp=-1 mass=0 @@ -145,14 +145,14 @@ expwfs.push_back( { // --------- 5.000000000000000e+02, 0.000000000000000e+00, // itest=20: ixxxxx#2 nsp=-1 mass=0 3.000000000000000e+02, 4.000000000000000e+02, // itest=20: ixxxxx#2 nsp=-1 mass=0 - 1.341640786499874e+01, -1.788854381999832e+01, // itest=20: ixxxxx#2 nsp=-1 mass=0 + 1.341640786499874e+01, -1.788854381999831e+01, // itest=20: ixxxxx#2 nsp=-1 mass=0 -2.236067977499790e+01, 0.000000000000000e+00, // itest=20: ixxxxx#2 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=20: ixxxxx#2 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=20: ixxxxx#2 nsp=-1 mass=0 expwfs.push_back( { // --------- 5.000000000000000e+02, 0.000000000000000e+00, // itest=21: ixxxxx#2 nsp=-1 mass=0 3.000000000000000e+02, 4.000000000000000e+02, // itest=21: ixxxxx#2 nsp=-1 mass=0 - 1.341640786499874e+01, -1.788854381999832e+01, // itest=21: ixxxxx#2 nsp=-1 mass=0 + 1.341640786499874e+01, -1.788854381999831e+01, // itest=21: ixxxxx#2 nsp=-1 mass=0 -2.236067977499790e+01, 0.000000000000000e+00, // itest=21: ixxxxx#2 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=21: ixxxxx#2 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=21: ixxxxx#2 nsp=-1 mass=0 @@ -196,14 +196,14 @@ -3.000000000000000e+02, -4.000000000000000e+02, // itest=27: oxxxxx#2 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=27: oxxxxx#2 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=27: oxxxxx#2 nsp=-1 mass=0 - 1.341640786499874e+01, 1.788854381999832e+01, // itest=27: oxxxxx#2 nsp=-1 mass=0 + 1.341640786499874e+01, 1.788854381999831e+01, // itest=27: oxxxxx#2 nsp=-1 mass=0 -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=27: oxxxxx#2 nsp=-1 mass=0 expwfs.push_back( { // --------- -5.000000000000000e+02, -0.000000000000000e+00, // itest=28: oxxxxx#2 nsp=-1 mass=0 -3.000000000000000e+02, -4.000000000000000e+02, // itest=28: oxxxxx#2 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=28: oxxxxx#2 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=28: oxxxxx#2 nsp=-1 mass=0 - 1.341640786499874e+01, 1.788854381999832e+01, // itest=28: oxxxxx#2 nsp=-1 mass=0 + 1.341640786499874e+01, 1.788854381999831e+01, // itest=28: oxxxxx#2 nsp=-1 mass=0 -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=28: oxxxxx#2 nsp=-1 mass=0 expwfs.push_back( { // --------- -5.000000000000000e+02, -0.000000000000000e+00, // itest=29: oxzxxx#2 nsp=-1 mass=0 @@ -353,1696 +353,3684 @@ 1.800000000000000e+01, 2.400000000000000e+01, // itest=49: oxzxxx#4 nsp=-1 mass=0 -1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=49: oxzxxx#4 nsp=-1 mass=0 expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=50: ixxxxx#5 nsp=-1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=50: ixxxxx#5 nsp=-1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=50: ixxxxx#5 nsp=-1 mass=500 - -2.236067977499790e+01, 0.000000000000000e+00, // itest=50: ixxxxx#5 nsp=-1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=50: ixxxxx#5 nsp=-1 mass=500 - 2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=50: ixxxxx#5 nsp=-1 mass=500 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=51: ixxxxx#5 nsp=-1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=51: ixxxxx#5 nsp=-1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=51: ixxxxx#5 nsp=-1 mass=-500 - -2.236067977499790e+01, 0.000000000000000e+00, // itest=51: ixxxxx#5 nsp=-1 mass=-500 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=51: ixxxxx#5 nsp=-1 mass=-500 - -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=51: ixxxxx#5 nsp=-1 mass=-500 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=52: vxxxxx#5 nsp=-1 mass=500 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=52: vxxxxx#5 nsp=-1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=52: vxxxxx#5 nsp=-1 mass=500 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=52: vxxxxx#5 nsp=-1 mass=500 - 0.000000000000000e+00, -7.071067811865476e-01, // itest=52: vxxxxx#5 nsp=-1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=52: vxxxxx#5 nsp=-1 mass=500 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=53: vxxxxx#5 nsp=-1 mass=-500 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=53: vxxxxx#5 nsp=-1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=53: vxxxxx#5 nsp=-1 mass=-500 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=53: vxxxxx#5 nsp=-1 mass=-500 - 0.000000000000000e+00, -7.071067811865476e-01, // itest=53: vxxxxx#5 nsp=-1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=53: vxxxxx#5 nsp=-1 mass=-500 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=54: sxxxxx#5 nsp=-1 mass=500 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=54: sxxxxx#5 nsp=-1 mass=500 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=54: sxxxxx#5 nsp=-1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=54: sxxxxx#5 nsp=-1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=54: sxxxxx#5 nsp=-1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=54: sxxxxx#5 nsp=-1 mass=500 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=55: sxxxxx#5 nsp=-1 mass=-500 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=55: sxxxxx#5 nsp=-1 mass=-500 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=55: sxxxxx#5 nsp=-1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=55: sxxxxx#5 nsp=-1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=55: sxxxxx#5 nsp=-1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=55: sxxxxx#5 nsp=-1 mass=-500 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=56: oxxxxx#5 nsp=-1 mass=500 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=56: oxxxxx#5 nsp=-1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=56: oxxxxx#5 nsp=-1 mass=500 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=56: oxxxxx#5 nsp=-1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=56: oxxxxx#5 nsp=-1 mass=500 - -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=56: oxxxxx#5 nsp=-1 mass=500 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=57: oxxxxx#5 nsp=-1 mass=-500 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=57: oxxxxx#5 nsp=-1 mass=-500 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=57: oxxxxx#5 nsp=-1 mass=-500 - -2.236067977499790e+01, 0.000000000000000e+00, // itest=57: oxxxxx#5 nsp=-1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=57: oxxxxx#5 nsp=-1 mass=-500 - -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=57: oxxxxx#5 nsp=-1 mass=-500 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 3.000000000000000e+02, // itest=58: ixxxxx#6 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=58: ixxxxx#6 nsp=-1 mass=400 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=58: ixxxxx#6 nsp=-1 mass=400 - -2.828427124746190e+01, -0.000000000000000e+00, // itest=58: ixxxxx#6 nsp=-1 mass=400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=58: ixxxxx#6 nsp=-1 mass=400 - 1.414213562373095e+01, 0.000000000000000e+00 } ); // itest=58: ixxxxx#6 nsp=-1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 3.000000000000000e+02, // itest=59: ixxxxx#6 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=59: ixxxxx#6 nsp=-1 mass=-400 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=59: ixxxxx#6 nsp=-1 mass=-400 - -2.828427124746190e+01, -0.000000000000000e+00, // itest=59: ixxxxx#6 nsp=-1 mass=-400 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=59: ixxxxx#6 nsp=-1 mass=-400 - -1.414213562373095e+01, -0.000000000000000e+00 } ); // itest=59: ixxxxx#6 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -3.000000000000000e+02, // itest=60: vxxxxx#6 nsp=-1 mass=400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=60: vxxxxx#6 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=60: vxxxxx#6 nsp=-1 mass=400 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=60: vxxxxx#6 nsp=-1 mass=400 - 0.000000000000000e+00, -7.071067811865476e-01, // itest=60: vxxxxx#6 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=60: vxxxxx#6 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -3.000000000000000e+02, // itest=61: vxxxxx#6 nsp=-1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=61: vxxxxx#6 nsp=-1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=61: vxxxxx#6 nsp=-1 mass=-400 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=61: vxxxxx#6 nsp=-1 mass=-400 - 0.000000000000000e+00, -7.071067811865476e-01, // itest=61: vxxxxx#6 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=61: vxxxxx#6 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -3.000000000000000e+02, // itest=62: sxxxxx#6 nsp=-1 mass=400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=62: sxxxxx#6 nsp=-1 mass=400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=62: sxxxxx#6 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=62: sxxxxx#6 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=62: sxxxxx#6 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=62: sxxxxx#6 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -3.000000000000000e+02, // itest=63: sxxxxx#6 nsp=-1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=63: sxxxxx#6 nsp=-1 mass=-400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=63: sxxxxx#6 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=63: sxxxxx#6 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=63: sxxxxx#6 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=63: sxxxxx#6 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -3.000000000000000e+02, // itest=64: oxxxxx#6 nsp=-1 mass=400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=64: oxxxxx#6 nsp=-1 mass=400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=64: oxxxxx#6 nsp=-1 mass=400 - 1.414213562373095e+01, 0.000000000000000e+00, // itest=64: oxxxxx#6 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=64: oxxxxx#6 nsp=-1 mass=400 - -2.828427124746190e+01, -0.000000000000000e+00 } ); // itest=64: oxxxxx#6 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -3.000000000000000e+02, // itest=65: oxxxxx#6 nsp=-1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=65: oxxxxx#6 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=65: oxxxxx#6 nsp=-1 mass=-400 - -1.414213562373095e+01, -0.000000000000000e+00, // itest=65: oxxxxx#6 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=65: oxxxxx#6 nsp=-1 mass=-400 - -2.828427124746190e+01, -0.000000000000000e+00 } ); // itest=65: oxxxxx#6 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -3.000000000000000e+02, // itest=66: ixxxxx#7 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=66: ixxxxx#7 nsp=-1 mass=400 - -2.828427124746190e+01, -0.000000000000000e+00, // itest=66: ixxxxx#7 nsp=-1 mass=400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=66: ixxxxx#7 nsp=-1 mass=400 - 1.414213562373095e+01, 0.000000000000000e+00, // itest=66: ixxxxx#7 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=66: ixxxxx#7 nsp=-1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -3.000000000000000e+02, // itest=67: ixxxxx#7 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=67: ixxxxx#7 nsp=-1 mass=-400 - -2.828427124746190e+01, -0.000000000000000e+00, // itest=67: ixxxxx#7 nsp=-1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=67: ixxxxx#7 nsp=-1 mass=-400 - -1.414213562373095e+01, -0.000000000000000e+00, // itest=67: ixxxxx#7 nsp=-1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=67: ixxxxx#7 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 3.000000000000000e+02, // itest=68: vxxxxx#7 nsp=-1 mass=400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=68: vxxxxx#7 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=68: vxxxxx#7 nsp=-1 mass=400 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=68: vxxxxx#7 nsp=-1 mass=400 - 0.000000000000000e+00, 7.071067811865476e-01, // itest=68: vxxxxx#7 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=68: vxxxxx#7 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 3.000000000000000e+02, // itest=69: vxxxxx#7 nsp=-1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=69: vxxxxx#7 nsp=-1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=69: vxxxxx#7 nsp=-1 mass=-400 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=69: vxxxxx#7 nsp=-1 mass=-400 - 0.000000000000000e+00, 7.071067811865476e-01, // itest=69: vxxxxx#7 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=69: vxxxxx#7 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 3.000000000000000e+02, // itest=70: sxxxxx#7 nsp=-1 mass=400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=70: sxxxxx#7 nsp=-1 mass=400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=70: sxxxxx#7 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=70: sxxxxx#7 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=70: sxxxxx#7 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=70: sxxxxx#7 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 3.000000000000000e+02, // itest=71: sxxxxx#7 nsp=-1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=71: sxxxxx#7 nsp=-1 mass=-400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=71: sxxxxx#7 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=71: sxxxxx#7 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=71: sxxxxx#7 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=71: sxxxxx#7 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 3.000000000000000e+02, // itest=72: oxxxxx#7 nsp=-1 mass=400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=72: oxxxxx#7 nsp=-1 mass=400 - 1.414213562373095e+01, 0.000000000000000e+00, // itest=72: oxxxxx#7 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=72: oxxxxx#7 nsp=-1 mass=400 - -2.828427124746190e+01, -0.000000000000000e+00, // itest=72: oxxxxx#7 nsp=-1 mass=400 - -0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=72: oxxxxx#7 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 3.000000000000000e+02, // itest=73: oxxxxx#7 nsp=-1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=73: oxxxxx#7 nsp=-1 mass=-400 - -1.414213562373095e+01, -0.000000000000000e+00, // itest=73: oxxxxx#7 nsp=-1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=73: oxxxxx#7 nsp=-1 mass=-400 - -2.828427124746190e+01, -0.000000000000000e+00, // itest=73: oxxxxx#7 nsp=-1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=73: oxxxxx#7 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=74: ixxxxx#8 nsp=-1 mass=400 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=74: ixxxxx#8 nsp=-1 mass=400 - 1.200000000000000e+01, -1.600000000000000e+01, // itest=74: ixxxxx#8 nsp=-1 mass=400 - -2.000000000000000e+01, -0.000000000000000e+00, // itest=74: ixxxxx#8 nsp=-1 mass=400 - -5.999999999999999e+00, 7.999999999999999e+00, // itest=74: ixxxxx#8 nsp=-1 mass=400 - 1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=74: ixxxxx#8 nsp=-1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=75: ixxxxx#8 nsp=-1 mass=-400 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=75: ixxxxx#8 nsp=-1 mass=-400 - 1.200000000000000e+01, -1.600000000000000e+01, // itest=75: ixxxxx#8 nsp=-1 mass=-400 - -2.000000000000000e+01, -0.000000000000000e+00, // itest=75: ixxxxx#8 nsp=-1 mass=-400 - 5.999999999999999e+00, -7.999999999999999e+00, // itest=75: ixxxxx#8 nsp=-1 mass=-400 - -1.000000000000000e+01, -0.000000000000000e+00 } ); // itest=75: ixxxxx#8 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=76: vxxxxx#8 nsp=-1 mass=400 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=76: vxxxxx#8 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=76: vxxxxx#8 nsp=-1 mass=400 - 0.000000000000000e+00, 5.656854249492381e-01, // itest=76: vxxxxx#8 nsp=-1 mass=400 - 0.000000000000000e+00, -4.242640687119285e-01, // itest=76: vxxxxx#8 nsp=-1 mass=400 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=76: vxxxxx#8 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=77: vxxxxx#8 nsp=-1 mass=-400 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=77: vxxxxx#8 nsp=-1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=77: vxxxxx#8 nsp=-1 mass=-400 - -0.000000000000000e+00, 5.656854249492381e-01, // itest=77: vxxxxx#8 nsp=-1 mass=-400 - -0.000000000000000e+00, -4.242640687119285e-01, // itest=77: vxxxxx#8 nsp=-1 mass=-400 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=77: vxxxxx#8 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=78: sxxxxx#8 nsp=-1 mass=400 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=78: sxxxxx#8 nsp=-1 mass=400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=78: sxxxxx#8 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=78: sxxxxx#8 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=78: sxxxxx#8 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=78: sxxxxx#8 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=79: sxxxxx#8 nsp=-1 mass=-400 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=79: sxxxxx#8 nsp=-1 mass=-400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=79: sxxxxx#8 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=79: sxxxxx#8 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=79: sxxxxx#8 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=79: sxxxxx#8 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=80: oxxxxx#8 nsp=-1 mass=400 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=80: oxxxxx#8 nsp=-1 mass=400 - -5.999999999999999e+00, -7.999999999999999e+00, // itest=80: oxxxxx#8 nsp=-1 mass=400 - 1.000000000000000e+01, 0.000000000000000e+00, // itest=80: oxxxxx#8 nsp=-1 mass=400 - 1.200000000000000e+01, 1.600000000000000e+01, // itest=80: oxxxxx#8 nsp=-1 mass=400 - -2.000000000000000e+01, -0.000000000000000e+00 } ); // itest=80: oxxxxx#8 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=81: oxxxxx#8 nsp=-1 mass=-400 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=81: oxxxxx#8 nsp=-1 mass=-400 - 5.999999999999999e+00, 7.999999999999999e+00, // itest=81: oxxxxx#8 nsp=-1 mass=-400 - -1.000000000000000e+01, -0.000000000000000e+00, // itest=81: oxxxxx#8 nsp=-1 mass=-400 - 1.200000000000000e+01, 1.600000000000000e+01, // itest=81: oxxxxx#8 nsp=-1 mass=-400 - -2.000000000000000e+01, -0.000000000000000e+00 } ); // itest=81: oxxxxx#8 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=82: ixxxxx#9 nsp=-1 mass=400 - -2.400000000000000e+02, -1.800000000000000e+02, // itest=82: ixxxxx#9 nsp=-1 mass=400 - -1.600000000000000e+01, 1.200000000000000e+01, // itest=82: ixxxxx#9 nsp=-1 mass=400 - -2.000000000000000e+01, -0.000000000000000e+00, // itest=82: ixxxxx#9 nsp=-1 mass=400 - 7.999999999999999e+00, -5.999999999999999e+00, // itest=82: ixxxxx#9 nsp=-1 mass=400 - 1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=82: ixxxxx#9 nsp=-1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=83: ixxxxx#9 nsp=-1 mass=-400 - -2.400000000000000e+02, -1.800000000000000e+02, // itest=83: ixxxxx#9 nsp=-1 mass=-400 - -1.600000000000000e+01, 1.200000000000000e+01, // itest=83: ixxxxx#9 nsp=-1 mass=-400 - -2.000000000000000e+01, -0.000000000000000e+00, // itest=83: ixxxxx#9 nsp=-1 mass=-400 - -7.999999999999999e+00, 5.999999999999999e+00, // itest=83: ixxxxx#9 nsp=-1 mass=-400 - -1.000000000000000e+01, -0.000000000000000e+00 } ); // itest=83: ixxxxx#9 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=84: vxxxxx#9 nsp=-1 mass=400 - 2.400000000000000e+02, 1.800000000000000e+02, // itest=84: vxxxxx#9 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=84: vxxxxx#9 nsp=-1 mass=400 - 0.000000000000000e+00, -4.242640687119285e-01, // itest=84: vxxxxx#9 nsp=-1 mass=400 - 0.000000000000000e+00, 5.656854249492381e-01, // itest=84: vxxxxx#9 nsp=-1 mass=400 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=84: vxxxxx#9 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=85: vxxxxx#9 nsp=-1 mass=-400 - 2.400000000000000e+02, 1.800000000000000e+02, // itest=85: vxxxxx#9 nsp=-1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=85: vxxxxx#9 nsp=-1 mass=-400 - 0.000000000000000e+00, -4.242640687119285e-01, // itest=85: vxxxxx#9 nsp=-1 mass=-400 - 0.000000000000000e+00, 5.656854249492381e-01, // itest=85: vxxxxx#9 nsp=-1 mass=-400 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=85: vxxxxx#9 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=86: sxxxxx#9 nsp=-1 mass=400 - 2.400000000000000e+02, 1.800000000000000e+02, // itest=86: sxxxxx#9 nsp=-1 mass=400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=86: sxxxxx#9 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=86: sxxxxx#9 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=86: sxxxxx#9 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=86: sxxxxx#9 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=87: sxxxxx#9 nsp=-1 mass=-400 - 2.400000000000000e+02, 1.800000000000000e+02, // itest=87: sxxxxx#9 nsp=-1 mass=-400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=87: sxxxxx#9 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=87: sxxxxx#9 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=87: sxxxxx#9 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=87: sxxxxx#9 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=88: oxxxxx#9 nsp=-1 mass=400 - 2.400000000000000e+02, 1.800000000000000e+02, // itest=88: oxxxxx#9 nsp=-1 mass=400 - 7.999999999999999e+00, 5.999999999999999e+00, // itest=88: oxxxxx#9 nsp=-1 mass=400 - 1.000000000000000e+01, 0.000000000000000e+00, // itest=88: oxxxxx#9 nsp=-1 mass=400 - -1.600000000000000e+01, -1.200000000000000e+01, // itest=88: oxxxxx#9 nsp=-1 mass=400 - -2.000000000000000e+01, -0.000000000000000e+00 } ); // itest=88: oxxxxx#9 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=89: oxxxxx#9 nsp=-1 mass=-400 - 2.400000000000000e+02, 1.800000000000000e+02, // itest=89: oxxxxx#9 nsp=-1 mass=-400 - -7.999999999999999e+00, -5.999999999999999e+00, // itest=89: oxxxxx#9 nsp=-1 mass=-400 - -1.000000000000000e+01, -0.000000000000000e+00, // itest=89: oxxxxx#9 nsp=-1 mass=-400 - -1.600000000000000e+01, -1.200000000000000e+01, // itest=89: oxxxxx#9 nsp=-1 mass=-400 - -2.000000000000000e+01, -0.000000000000000e+00 } ); // itest=89: oxxxxx#9 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 1.440000000000000e+02, // itest=90: ixxxxx#10 nsp=-1 mass=400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=90: ixxxxx#10 nsp=-1 mass=400 - 9.863939238321439e+00, -1.052153518754287e+01, // itest=90: ixxxxx#10 nsp=-1 mass=400 - -2.433105012119288e+01, -0.000000000000000e+00, // itest=90: ixxxxx#10 nsp=-1 mass=400 - -4.931969619160719e+00, 5.260767593771432e+00, // itest=90: ixxxxx#10 nsp=-1 mass=400 - 1.216552506059644e+01, 0.000000000000000e+00 } ); // itest=90: ixxxxx#10 nsp=-1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 1.440000000000000e+02, // itest=91: ixxxxx#10 nsp=-1 mass=-400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=91: ixxxxx#10 nsp=-1 mass=-400 - 9.863939238321439e+00, -1.052153518754287e+01, // itest=91: ixxxxx#10 nsp=-1 mass=-400 - -2.433105012119288e+01, -0.000000000000000e+00, // itest=91: ixxxxx#10 nsp=-1 mass=-400 - 4.931969619160719e+00, -5.260767593771432e+00, // itest=91: ixxxxx#10 nsp=-1 mass=-400 - -1.216552506059644e+01, -0.000000000000000e+00 } ); // itest=91: ixxxxx#10 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -1.440000000000000e+02, // itest=92: vxxxxx#10 nsp=-1 mass=400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=92: vxxxxx#10 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=92: vxxxxx#10 nsp=-1 mass=400 - -2.321373168788980e-01, 5.158607041753289e-01, // itest=92: vxxxxx#10 nsp=-1 mass=400 - -2.476131380041579e-01, -4.836194101643708e-01, // itest=92: vxxxxx#10 nsp=-1 mass=400 - 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=92: vxxxxx#10 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -1.440000000000000e+02, // itest=93: vxxxxx#10 nsp=-1 mass=-400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=93: vxxxxx#10 nsp=-1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=93: vxxxxx#10 nsp=-1 mass=-400 - -2.321373168788980e-01, 5.158607041753289e-01, // itest=93: vxxxxx#10 nsp=-1 mass=-400 - -2.476131380041579e-01, -4.836194101643708e-01, // itest=93: vxxxxx#10 nsp=-1 mass=-400 - 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=93: vxxxxx#10 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -1.440000000000000e+02, // itest=94: sxxxxx#10 nsp=-1 mass=400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=94: sxxxxx#10 nsp=-1 mass=400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=94: sxxxxx#10 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=94: sxxxxx#10 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=94: sxxxxx#10 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=94: sxxxxx#10 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -1.440000000000000e+02, // itest=95: sxxxxx#10 nsp=-1 mass=-400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=95: sxxxxx#10 nsp=-1 mass=-400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=95: sxxxxx#10 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=95: sxxxxx#10 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=95: sxxxxx#10 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=95: sxxxxx#10 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -1.440000000000000e+02, // itest=96: oxxxxx#10 nsp=-1 mass=400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=96: oxxxxx#10 nsp=-1 mass=400 - -4.931969619160719e+00, -5.260767593771432e+00, // itest=96: oxxxxx#10 nsp=-1 mass=400 - 1.216552506059644e+01, 0.000000000000000e+00, // itest=96: oxxxxx#10 nsp=-1 mass=400 - 9.863939238321439e+00, 1.052153518754287e+01, // itest=96: oxxxxx#10 nsp=-1 mass=400 - -2.433105012119288e+01, -0.000000000000000e+00 } ); // itest=96: oxxxxx#10 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -1.440000000000000e+02, // itest=97: oxxxxx#10 nsp=-1 mass=-400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=97: oxxxxx#10 nsp=-1 mass=-400 - 4.931969619160719e+00, 5.260767593771432e+00, // itest=97: oxxxxx#10 nsp=-1 mass=-400 - -1.216552506059644e+01, -0.000000000000000e+00, // itest=97: oxxxxx#10 nsp=-1 mass=-400 - 9.863939238321439e+00, 1.052153518754287e+01, // itest=97: oxxxxx#10 nsp=-1 mass=-400 - -2.433105012119288e+01, -0.000000000000000e+00 } ); // itest=97: oxxxxx#10 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -1.440000000000000e+02, // itest=98: ixxxxx#11 nsp=-1 mass=400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=98: ixxxxx#11 nsp=-1 mass=400 - 1.664100588675688e+01, -1.775040627920733e+01, // itest=98: ixxxxx#11 nsp=-1 mass=400 - -1.442220510185596e+01, -0.000000000000000e+00, // itest=98: ixxxxx#11 nsp=-1 mass=400 - -8.320502943378436e+00, 8.875203139603666e+00, // itest=98: ixxxxx#11 nsp=-1 mass=400 - 7.211102550927978e+00, 0.000000000000000e+00 } ); // itest=98: ixxxxx#11 nsp=-1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -1.440000000000000e+02, // itest=99: ixxxxx#11 nsp=-1 mass=-400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=99: ixxxxx#11 nsp=-1 mass=-400 - 1.664100588675688e+01, -1.775040627920733e+01, // itest=99: ixxxxx#11 nsp=-1 mass=-400 - -1.442220510185596e+01, -0.000000000000000e+00, // itest=99: ixxxxx#11 nsp=-1 mass=-400 - 8.320502943378436e+00, -8.875203139603666e+00, // itest=99: ixxxxx#11 nsp=-1 mass=-400 - -7.211102550927978e+00, -0.000000000000000e+00 } ); // itest=99: ixxxxx#11 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 1.440000000000000e+02, // itest=100: vxxxxx#11 nsp=-1 mass=400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=100: vxxxxx#11 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=100: vxxxxx#11 nsp=-1 mass=400 - 2.321373168788980e-01, 5.158607041753289e-01, // itest=100: vxxxxx#11 nsp=-1 mass=400 - 2.476131380041579e-01, -4.836194101643708e-01, // itest=100: vxxxxx#11 nsp=-1 mass=400 - 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=100: vxxxxx#11 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 1.440000000000000e+02, // itest=101: vxxxxx#11 nsp=-1 mass=-400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=101: vxxxxx#11 nsp=-1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=101: vxxxxx#11 nsp=-1 mass=-400 - 2.321373168788980e-01, 5.158607041753289e-01, // itest=101: vxxxxx#11 nsp=-1 mass=-400 - 2.476131380041579e-01, -4.836194101643708e-01, // itest=101: vxxxxx#11 nsp=-1 mass=-400 - 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=101: vxxxxx#11 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 1.440000000000000e+02, // itest=102: sxxxxx#11 nsp=-1 mass=400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=102: sxxxxx#11 nsp=-1 mass=400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=102: sxxxxx#11 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=102: sxxxxx#11 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=102: sxxxxx#11 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=102: sxxxxx#11 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 1.440000000000000e+02, // itest=103: sxxxxx#11 nsp=-1 mass=-400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=103: sxxxxx#11 nsp=-1 mass=-400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=103: sxxxxx#11 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=103: sxxxxx#11 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=103: sxxxxx#11 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=103: sxxxxx#11 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 1.440000000000000e+02, // itest=104: oxxxxx#11 nsp=-1 mass=400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=104: oxxxxx#11 nsp=-1 mass=400 - -8.320502943378436e+00, -8.875203139603666e+00, // itest=104: oxxxxx#11 nsp=-1 mass=400 - 7.211102550927978e+00, 0.000000000000000e+00, // itest=104: oxxxxx#11 nsp=-1 mass=400 - 1.664100588675688e+01, 1.775040627920733e+01, // itest=104: oxxxxx#11 nsp=-1 mass=400 - -1.442220510185596e+01, -0.000000000000000e+00 } ); // itest=104: oxxxxx#11 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 1.440000000000000e+02, // itest=105: oxxxxx#11 nsp=-1 mass=-400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=105: oxxxxx#11 nsp=-1 mass=-400 - 8.320502943378436e+00, 8.875203139603666e+00, // itest=105: oxxxxx#11 nsp=-1 mass=-400 - -7.211102550927978e+00, -0.000000000000000e+00, // itest=105: oxxxxx#11 nsp=-1 mass=-400 - 1.664100588675688e+01, 1.775040627920733e+01, // itest=105: oxxxxx#11 nsp=-1 mass=-400 - -1.442220510185596e+01, -0.000000000000000e+00 } ); // itest=105: oxxxxx#11 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=106: ixxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=106: ixxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=106: ixxxxx#12 nsp=-1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00, // itest=106: ixxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=106: ixxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=106: ixxxxx#12 nsp=-1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=107: ixxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=107: ixxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=107: ixxxxx#12 nsp=-1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00, // itest=107: ixxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=107: ixxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=107: ixxxxx#12 nsp=-1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=108: ipzxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=108: ipzxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=108: ipzxxx#12 nsp=-1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00, // itest=108: ipzxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=108: ipzxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=108: ipzxxx#12 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=109: vxxxxx#12 nsp=-1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=109: vxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=109: vxxxxx#12 nsp=-1 mass=0 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=109: vxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, -7.071067811865476e-01, // itest=109: vxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=109: vxxxxx#12 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=110: vxxxxx#12 nsp=-1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=110: vxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=110: vxxxxx#12 nsp=-1 mass=0 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=110: vxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, -7.071067811865476e-01, // itest=110: vxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=110: vxxxxx#12 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=111: sxxxxx#12 nsp=-1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=111: sxxxxx#12 nsp=-1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=111: sxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=111: sxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=111: sxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=111: sxxxxx#12 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=112: sxxxxx#12 nsp=-1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=112: sxxxxx#12 nsp=-1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=112: sxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=112: sxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=112: sxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=112: sxxxxx#12 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=113: oxxxxx#12 nsp=-1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=113: oxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=113: oxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=113: oxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=113: oxxxxx#12 nsp=-1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=113: oxxxxx#12 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=114: oxxxxx#12 nsp=-1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=114: oxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=114: oxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=114: oxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=114: oxxxxx#12 nsp=-1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=114: oxxxxx#12 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=115: opzxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=115: opzxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=115: opzxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=115: opzxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=115: opzxxx#12 nsp=-1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=115: opzxxx#12 nsp=-1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=116: ixxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=116: ixxxxx#13 nsp=-1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00, // itest=116: ixxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=116: ixxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=116: ixxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=116: ixxxxx#13 nsp=-1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=117: ixxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=117: ixxxxx#13 nsp=-1 mass=0 - -3.162277660168379e+01, -0.000000000000000e+00, // itest=117: ixxxxx#13 nsp=-1 mass=0 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=117: ixxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=117: ixxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=117: ixxxxx#13 nsp=-1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=118: imzxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=118: imzxxx#13 nsp=-1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00, // itest=118: imzxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=118: imzxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=118: imzxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=118: imzxxx#13 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=119: vxxxxx#13 nsp=-1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=119: vxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=119: vxxxxx#13 nsp=-1 mass=0 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=119: vxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 7.071067811865476e-01, // itest=119: vxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=119: vxxxxx#13 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=120: vxxxxx#13 nsp=-1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=120: vxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=120: vxxxxx#13 nsp=-1 mass=0 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=120: vxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 7.071067811865476e-01, // itest=120: vxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=120: vxxxxx#13 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=121: sxxxxx#13 nsp=-1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=121: sxxxxx#13 nsp=-1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=121: sxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=121: sxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=121: sxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=121: sxxxxx#13 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=122: sxxxxx#13 nsp=-1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=122: sxxxxx#13 nsp=-1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=122: sxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=122: sxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=122: sxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=122: sxxxxx#13 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=123: oxxxxx#13 nsp=-1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=123: oxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=123: oxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=123: oxxxxx#13 nsp=-1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00, // itest=123: oxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=123: oxxxxx#13 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=124: oxxxxx#13 nsp=-1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=124: oxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=124: oxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=124: oxxxxx#13 nsp=-1 mass=0 - -3.162277660168379e+01, -0.000000000000000e+00, // itest=124: oxxxxx#13 nsp=-1 mass=0 - -0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=124: oxxxxx#13 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=125: omzxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=125: omzxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=125: omzxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=125: omzxxx#13 nsp=-1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00, // itest=125: omzxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=125: omzxxx#13 nsp=-1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=126: ixxxxx#14 nsp=-1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=126: ixxxxx#14 nsp=-1 mass=0 - 1.341640786499874e+01, -1.788854381999832e+01, // itest=126: ixxxxx#14 nsp=-1 mass=0 - -2.236067977499790e+01, 0.000000000000000e+00, // itest=126: ixxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=126: ixxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=126: ixxxxx#14 nsp=-1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=127: ixxxxx#14 nsp=-1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=127: ixxxxx#14 nsp=-1 mass=0 - 1.341640786499874e+01, -1.788854381999832e+01, // itest=127: ixxxxx#14 nsp=-1 mass=0 - -2.236067977499790e+01, 0.000000000000000e+00, // itest=127: ixxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=127: ixxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=127: ixxxxx#14 nsp=-1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=128: ixzxxx#14 nsp=-1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=128: ixzxxx#14 nsp=-1 mass=0 - 1.341640786499874e+01, -1.788854381999832e+01, // itest=128: ixzxxx#14 nsp=-1 mass=0 - -2.236067977499790e+01, 0.000000000000000e+00, // itest=128: ixzxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=128: ixzxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=128: ixzxxx#14 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=129: vxxxxx#14 nsp=-1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=129: vxxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=129: vxxxxx#14 nsp=-1 mass=0 - -0.000000000000000e+00, 5.656854249492381e-01, // itest=129: vxxxxx#14 nsp=-1 mass=0 - -0.000000000000000e+00, -4.242640687119285e-01, // itest=129: vxxxxx#14 nsp=-1 mass=0 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=129: vxxxxx#14 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=130: vxxxxx#14 nsp=-1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=130: vxxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=130: vxxxxx#14 nsp=-1 mass=0 - -0.000000000000000e+00, 5.656854249492381e-01, // itest=130: vxxxxx#14 nsp=-1 mass=0 - -0.000000000000000e+00, -4.242640687119285e-01, // itest=130: vxxxxx#14 nsp=-1 mass=0 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=130: vxxxxx#14 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=131: sxxxxx#14 nsp=-1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=131: sxxxxx#14 nsp=-1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=131: sxxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=131: sxxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=131: sxxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=131: sxxxxx#14 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=132: sxxxxx#14 nsp=-1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=132: sxxxxx#14 nsp=-1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=132: sxxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=132: sxxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=132: sxxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=132: sxxxxx#14 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=133: oxxxxx#14 nsp=-1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=133: oxxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=133: oxxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=133: oxxxxx#14 nsp=-1 mass=0 - 1.341640786499874e+01, 1.788854381999832e+01, // itest=133: oxxxxx#14 nsp=-1 mass=0 - -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=133: oxxxxx#14 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=134: oxxxxx#14 nsp=-1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=134: oxxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=134: oxxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=134: oxxxxx#14 nsp=-1 mass=0 - 1.341640786499874e+01, 1.788854381999832e+01, // itest=134: oxxxxx#14 nsp=-1 mass=0 - -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=134: oxxxxx#14 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=135: oxzxxx#14 nsp=-1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=135: oxzxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=135: oxzxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=135: oxzxxx#14 nsp=-1 mass=0 - 1.341640786499874e+01, 1.788854381999832e+01, // itest=135: oxzxxx#14 nsp=-1 mass=0 - -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=135: oxzxxx#14 nsp=-1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=136: ixxxxx#15 nsp=-1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=136: ixxxxx#15 nsp=-1 mass=0 - 6.000000000000000e+00, -8.000000000000000e+00, // itest=136: ixxxxx#15 nsp=-1 mass=0 - -3.000000000000000e+01, 0.000000000000000e+00, // itest=136: ixxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=136: ixxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=136: ixxxxx#15 nsp=-1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=137: ixxxxx#15 nsp=-1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=137: ixxxxx#15 nsp=-1 mass=0 - 6.000000000000000e+00, -8.000000000000000e+00, // itest=137: ixxxxx#15 nsp=-1 mass=0 - -3.000000000000000e+01, 0.000000000000000e+00, // itest=137: ixxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=137: ixxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=137: ixxxxx#15 nsp=-1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=138: ixzxxx#15 nsp=-1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=138: ixzxxx#15 nsp=-1 mass=0 - 6.000000000000000e+00, -8.000000000000000e+00, // itest=138: ixzxxx#15 nsp=-1 mass=0 - -3.000000000000000e+01, 0.000000000000000e+00, // itest=138: ixzxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=138: ixzxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=138: ixzxxx#15 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=139: vxxxxx#15 nsp=-1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=139: vxxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=139: vxxxxx#15 nsp=-1 mass=0 - -3.394112549695428e-01, 5.656854249492381e-01, // itest=139: vxxxxx#15 nsp=-1 mass=0 - -4.525483399593904e-01, -4.242640687119285e-01, // itest=139: vxxxxx#15 nsp=-1 mass=0 - 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=139: vxxxxx#15 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=140: vxxxxx#15 nsp=-1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=140: vxxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=140: vxxxxx#15 nsp=-1 mass=0 - -3.394112549695428e-01, 5.656854249492381e-01, // itest=140: vxxxxx#15 nsp=-1 mass=0 - -4.525483399593904e-01, -4.242640687119285e-01, // itest=140: vxxxxx#15 nsp=-1 mass=0 - 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=140: vxxxxx#15 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=141: sxxxxx#15 nsp=-1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=141: sxxxxx#15 nsp=-1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=141: sxxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=141: sxxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=141: sxxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=141: sxxxxx#15 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=142: sxxxxx#15 nsp=-1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=142: sxxxxx#15 nsp=-1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=142: sxxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=142: sxxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=142: sxxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=142: sxxxxx#15 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=143: oxxxxx#15 nsp=-1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=143: oxxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=143: oxxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=143: oxxxxx#15 nsp=-1 mass=0 - 6.000000000000000e+00, 8.000000000000000e+00, // itest=143: oxxxxx#15 nsp=-1 mass=0 - -3.000000000000000e+01, 0.000000000000000e+00 } ); // itest=143: oxxxxx#15 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=144: oxxxxx#15 nsp=-1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=144: oxxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=144: oxxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=144: oxxxxx#15 nsp=-1 mass=0 - 6.000000000000000e+00, 8.000000000000000e+00, // itest=144: oxxxxx#15 nsp=-1 mass=0 - -3.000000000000000e+01, 0.000000000000000e+00 } ); // itest=144: oxxxxx#15 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=145: oxzxxx#15 nsp=-1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=145: oxzxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=145: oxzxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=145: oxzxxx#15 nsp=-1 mass=0 - 6.000000000000000e+00, 8.000000000000000e+00, // itest=145: oxzxxx#15 nsp=-1 mass=0 - -3.000000000000000e+01, 0.000000000000000e+00 } ); // itest=145: oxzxxx#15 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=146: ixxxxx#0 nsp=1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=146: ixxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=146: ixxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=146: ixxxxx#0 nsp=1 mass=0 - 3.162277660168379e+01, 0.000000000000000e+00, // itest=146: ixxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=146: ixxxxx#0 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=147: ixxxxx#0 nsp=1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=147: ixxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=147: ixxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=147: ixxxxx#0 nsp=1 mass=0 - 3.162277660168379e+01, 0.000000000000000e+00, // itest=147: ixxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=147: ixxxxx#0 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=148: ipzxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=148: ipzxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=148: ipzxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=148: ipzxxx#0 nsp=1 mass=0 - 3.162277660168379e+01, 0.000000000000000e+00, // itest=148: ipzxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=148: ipzxxx#0 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=149: vxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=149: vxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=149: vxxxxx#0 nsp=1 mass=0 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=149: vxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 7.071067811865476e-01, // itest=149: vxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=149: vxxxxx#0 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=150: vxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=150: vxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=150: vxxxxx#0 nsp=1 mass=0 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=150: vxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 7.071067811865476e-01, // itest=150: vxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=150: vxxxxx#0 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=151: sxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=151: sxxxxx#0 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=151: sxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=151: sxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=151: sxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=151: sxxxxx#0 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=152: sxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=152: sxxxxx#0 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=152: sxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=152: sxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=152: sxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=152: sxxxxx#0 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=153: oxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=153: oxxxxx#0 nsp=1 mass=0 - 3.162277660168379e+01, 0.000000000000000e+00, // itest=153: oxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=153: oxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=153: oxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=153: oxxxxx#0 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=154: oxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=154: oxxxxx#0 nsp=1 mass=0 - 3.162277660168379e+01, 0.000000000000000e+00, // itest=154: oxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=154: oxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=154: oxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=154: oxxxxx#0 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=155: opzxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=155: opzxxx#0 nsp=1 mass=0 - 3.162277660168379e+01, 0.000000000000000e+00, // itest=155: opzxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=155: opzxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=155: opzxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=155: opzxxx#0 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=156: ixxxxx#1 nsp=1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=156: ixxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=156: ixxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=156: ixxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=156: ixxxxx#1 nsp=1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=156: ixxxxx#1 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=157: ixxxxx#1 nsp=1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=157: ixxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=157: ixxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=157: ixxxxx#1 nsp=1 mass=0 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=157: ixxxxx#1 nsp=1 mass=0 - -3.162277660168379e+01, -0.000000000000000e+00 } ); // itest=157: ixxxxx#1 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=158: imzxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=158: imzxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=158: imzxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=158: imzxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=158: imzxxx#1 nsp=1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=158: imzxxx#1 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=159: vxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=159: vxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=159: vxxxxx#1 nsp=1 mass=0 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=159: vxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, -7.071067811865476e-01, // itest=159: vxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=159: vxxxxx#1 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=160: vxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=160: vxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=160: vxxxxx#1 nsp=1 mass=0 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=160: vxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, -7.071067811865476e-01, // itest=160: vxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=160: vxxxxx#1 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=161: sxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=161: sxxxxx#1 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=161: sxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=161: sxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=161: sxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=161: sxxxxx#1 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=162: sxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=162: sxxxxx#1 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=162: sxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=162: sxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=162: sxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=162: sxxxxx#1 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=163: oxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=163: oxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=163: oxxxxx#1 nsp=1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00, // itest=163: oxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=163: oxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=163: oxxxxx#1 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=164: oxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=164: oxxxxx#1 nsp=1 mass=0 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=164: oxxxxx#1 nsp=1 mass=0 - -3.162277660168379e+01, -0.000000000000000e+00, // itest=164: oxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=164: oxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=164: oxxxxx#1 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=165: omzxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=165: omzxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=165: omzxxx#1 nsp=1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00, // itest=165: omzxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=165: omzxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=165: omzxxx#1 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=166: ixxxxx#2 nsp=1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=166: ixxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=166: ixxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=166: ixxxxx#2 nsp=1 mass=0 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=166: ixxxxx#2 nsp=1 mass=0 - 1.341640786499874e+01, 1.788854381999832e+01 } ); // itest=166: ixxxxx#2 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=167: ixxxxx#2 nsp=1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=167: ixxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=167: ixxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=167: ixxxxx#2 nsp=1 mass=0 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=167: ixxxxx#2 nsp=1 mass=0 - 1.341640786499874e+01, 1.788854381999832e+01 } ); // itest=167: ixxxxx#2 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=168: ixzxxx#2 nsp=1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=168: ixzxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=168: ixzxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=168: ixzxxx#2 nsp=1 mass=0 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=168: ixzxxx#2 nsp=1 mass=0 - 1.341640786499874e+01, 1.788854381999832e+01 } ); // itest=168: ixzxxx#2 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=169: vxxxxx#2 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=169: vxxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=169: vxxxxx#2 nsp=1 mass=0 - -0.000000000000000e+00, -5.656854249492381e-01, // itest=169: vxxxxx#2 nsp=1 mass=0 - -0.000000000000000e+00, 4.242640687119285e-01, // itest=169: vxxxxx#2 nsp=1 mass=0 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=169: vxxxxx#2 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=170: vxxxxx#2 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=170: vxxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=170: vxxxxx#2 nsp=1 mass=0 - -0.000000000000000e+00, -5.656854249492381e-01, // itest=170: vxxxxx#2 nsp=1 mass=0 - -0.000000000000000e+00, 4.242640687119285e-01, // itest=170: vxxxxx#2 nsp=1 mass=0 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=170: vxxxxx#2 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=171: sxxxxx#2 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=171: sxxxxx#2 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=171: sxxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=171: sxxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=171: sxxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=171: sxxxxx#2 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=172: sxxxxx#2 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=172: sxxxxx#2 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=172: sxxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=172: sxxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=172: sxxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=172: sxxxxx#2 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=173: oxxxxx#2 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=173: oxxxxx#2 nsp=1 mass=0 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=173: oxxxxx#2 nsp=1 mass=0 - 1.341640786499874e+01, -1.788854381999832e+01, // itest=173: oxxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=173: oxxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=173: oxxxxx#2 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=174: oxxxxx#2 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=174: oxxxxx#2 nsp=1 mass=0 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=174: oxxxxx#2 nsp=1 mass=0 - 1.341640786499874e+01, -1.788854381999832e+01, // itest=174: oxxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=174: oxxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=174: oxxxxx#2 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=175: oxzxxx#2 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=175: oxzxxx#2 nsp=1 mass=0 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=175: oxzxxx#2 nsp=1 mass=0 - 1.341640786499874e+01, -1.788854381999832e+01, // itest=175: oxzxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=175: oxzxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=175: oxzxxx#2 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=176: ixxxxx#3 nsp=1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=176: ixxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=176: ixxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=176: ixxxxx#3 nsp=1 mass=0 - 3.000000000000000e+01, 0.000000000000000e+00, // itest=176: ixxxxx#3 nsp=1 mass=0 - 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=176: ixxxxx#3 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=177: ixxxxx#3 nsp=1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=177: ixxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=177: ixxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=177: ixxxxx#3 nsp=1 mass=0 - 3.000000000000000e+01, 0.000000000000000e+00, // itest=177: ixxxxx#3 nsp=1 mass=0 - 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=177: ixxxxx#3 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=178: ixzxxx#3 nsp=1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=178: ixzxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=178: ixzxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=178: ixzxxx#3 nsp=1 mass=0 - 3.000000000000000e+01, 0.000000000000000e+00, // itest=178: ixzxxx#3 nsp=1 mass=0 - 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=178: ixzxxx#3 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=179: vxxxxx#3 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=179: vxxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=179: vxxxxx#3 nsp=1 mass=0 - -3.394112549695428e-01, -5.656854249492381e-01, // itest=179: vxxxxx#3 nsp=1 mass=0 - -4.525483399593904e-01, 4.242640687119285e-01, // itest=179: vxxxxx#3 nsp=1 mass=0 - 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=179: vxxxxx#3 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=180: vxxxxx#3 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=180: vxxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=180: vxxxxx#3 nsp=1 mass=0 - -3.394112549695428e-01, -5.656854249492381e-01, // itest=180: vxxxxx#3 nsp=1 mass=0 - -4.525483399593904e-01, 4.242640687119285e-01, // itest=180: vxxxxx#3 nsp=1 mass=0 - 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=180: vxxxxx#3 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=181: sxxxxx#3 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=181: sxxxxx#3 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=181: sxxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=181: sxxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=181: sxxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=181: sxxxxx#3 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=182: sxxxxx#3 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=182: sxxxxx#3 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=182: sxxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=182: sxxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=182: sxxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=182: sxxxxx#3 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=183: oxxxxx#3 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=183: oxxxxx#3 nsp=1 mass=0 - 3.000000000000000e+01, 0.000000000000000e+00, // itest=183: oxxxxx#3 nsp=1 mass=0 - 6.000000000000000e+00, -8.000000000000000e+00, // itest=183: oxxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=183: oxxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=183: oxxxxx#3 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=184: oxxxxx#3 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=184: oxxxxx#3 nsp=1 mass=0 - 3.000000000000000e+01, 0.000000000000000e+00, // itest=184: oxxxxx#3 nsp=1 mass=0 - 6.000000000000000e+00, -8.000000000000000e+00, // itest=184: oxxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=184: oxxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=184: oxxxxx#3 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=185: oxzxxx#3 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=185: oxzxxx#3 nsp=1 mass=0 - 3.000000000000000e+01, 0.000000000000000e+00, // itest=185: oxzxxx#3 nsp=1 mass=0 - 6.000000000000000e+00, -8.000000000000000e+00, // itest=185: oxzxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=185: oxzxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=185: oxzxxx#3 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 4.000000000000000e+02, // itest=186: ixxxxx#4 nsp=1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=186: ixxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=186: ixxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=186: ixxxxx#4 nsp=1 mass=0 - 1.000000000000000e+01, 0.000000000000000e+00, // itest=186: ixxxxx#4 nsp=1 mass=0 - 1.800000000000000e+01, 2.400000000000000e+01 } ); // itest=186: ixxxxx#4 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 4.000000000000000e+02, // itest=187: ixxxxx#4 nsp=1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=187: ixxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=187: ixxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=187: ixxxxx#4 nsp=1 mass=0 - 1.000000000000000e+01, 0.000000000000000e+00, // itest=187: ixxxxx#4 nsp=1 mass=0 - 1.800000000000000e+01, 2.400000000000000e+01 } ); // itest=187: ixxxxx#4 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 4.000000000000000e+02, // itest=188: ixzxxx#4 nsp=1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=188: ixzxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=188: ixzxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=188: ixzxxx#4 nsp=1 mass=0 - 1.000000000000000e+01, 0.000000000000000e+00, // itest=188: ixzxxx#4 nsp=1 mass=0 - 1.800000000000000e+01, 2.400000000000000e+01 } ); // itest=188: ixzxxx#4 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -4.000000000000000e+02, // itest=189: vxxxxx#4 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=189: vxxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=189: vxxxxx#4 nsp=1 mass=0 - 3.394112549695428e-01, -5.656854249492381e-01, // itest=189: vxxxxx#4 nsp=1 mass=0 - 4.525483399593904e-01, 4.242640687119285e-01, // itest=189: vxxxxx#4 nsp=1 mass=0 - 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=189: vxxxxx#4 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -4.000000000000000e+02, // itest=190: vxxxxx#4 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=190: vxxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=190: vxxxxx#4 nsp=1 mass=0 - 3.394112549695428e-01, -5.656854249492381e-01, // itest=190: vxxxxx#4 nsp=1 mass=0 - 4.525483399593904e-01, 4.242640687119285e-01, // itest=190: vxxxxx#4 nsp=1 mass=0 - 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=190: vxxxxx#4 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -4.000000000000000e+02, // itest=191: sxxxxx#4 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=191: sxxxxx#4 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=191: sxxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=191: sxxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=191: sxxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=191: sxxxxx#4 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -4.000000000000000e+02, // itest=192: sxxxxx#4 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=192: sxxxxx#4 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=192: sxxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=192: sxxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=192: sxxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=192: sxxxxx#4 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -4.000000000000000e+02, // itest=193: oxxxxx#4 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=193: oxxxxx#4 nsp=1 mass=0 - 1.000000000000000e+01, 0.000000000000000e+00, // itest=193: oxxxxx#4 nsp=1 mass=0 - 1.800000000000000e+01, -2.400000000000000e+01, // itest=193: oxxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=193: oxxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=193: oxxxxx#4 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -4.000000000000000e+02, // itest=194: oxxxxx#4 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=194: oxxxxx#4 nsp=1 mass=0 - 1.000000000000000e+01, 0.000000000000000e+00, // itest=194: oxxxxx#4 nsp=1 mass=0 - 1.800000000000000e+01, -2.400000000000000e+01, // itest=194: oxxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=194: oxxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=194: oxxxxx#4 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -4.000000000000000e+02, // itest=195: oxzxxx#4 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=195: oxzxxx#4 nsp=1 mass=0 - 1.000000000000000e+01, 0.000000000000000e+00, // itest=195: oxzxxx#4 nsp=1 mass=0 - 1.800000000000000e+01, -2.400000000000000e+01, // itest=195: oxzxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=195: oxzxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=195: oxzxxx#4 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=196: ixxxxx#5 nsp=1 mass=500 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=196: ixxxxx#5 nsp=1 mass=500 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=196: ixxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=196: ixxxxx#5 nsp=1 mass=500 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=196: ixxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=196: ixxxxx#5 nsp=1 mass=500 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=197: ixxxxx#5 nsp=1 mass=-500 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=197: ixxxxx#5 nsp=1 mass=-500 - -2.236067977499790e+01, 0.000000000000000e+00, // itest=197: ixxxxx#5 nsp=1 mass=-500 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=197: ixxxxx#5 nsp=1 mass=-500 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=197: ixxxxx#5 nsp=1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=197: ixxxxx#5 nsp=1 mass=-500 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=198: vxxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=198: vxxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=198: vxxxxx#5 nsp=1 mass=500 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=198: vxxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 7.071067811865476e-01, // itest=198: vxxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=198: vxxxxx#5 nsp=1 mass=500 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=199: vxxxxx#5 nsp=1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=199: vxxxxx#5 nsp=1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=199: vxxxxx#5 nsp=1 mass=-500 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=199: vxxxxx#5 nsp=1 mass=-500 - 0.000000000000000e+00, 7.071067811865476e-01, // itest=199: vxxxxx#5 nsp=1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=199: vxxxxx#5 nsp=1 mass=-500 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=200: sxxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=200: sxxxxx#5 nsp=1 mass=500 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=200: sxxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=200: sxxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=200: sxxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=200: sxxxxx#5 nsp=1 mass=500 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=201: sxxxxx#5 nsp=1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=201: sxxxxx#5 nsp=1 mass=-500 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=201: sxxxxx#5 nsp=1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=201: sxxxxx#5 nsp=1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=201: sxxxxx#5 nsp=1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=201: sxxxxx#5 nsp=1 mass=-500 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=202: oxxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=202: oxxxxx#5 nsp=1 mass=500 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=202: oxxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=202: oxxxxx#5 nsp=1 mass=500 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=202: oxxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=202: oxxxxx#5 nsp=1 mass=500 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=203: oxxxxx#5 nsp=1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=203: oxxxxx#5 nsp=1 mass=-500 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=203: oxxxxx#5 nsp=1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=203: oxxxxx#5 nsp=1 mass=-500 - -2.236067977499790e+01, 0.000000000000000e+00, // itest=203: oxxxxx#5 nsp=1 mass=-500 - -0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=203: oxxxxx#5 nsp=1 mass=-500 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -3.000000000000000e+02, // itest=204: ixxxxx#6 nsp=1 mass=400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=204: ixxxxx#6 nsp=1 mass=400 - 1.414213562373095e+01, 0.000000000000000e+00, // itest=204: ixxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=204: ixxxxx#6 nsp=1 mass=400 - 2.828427124746190e+01, 0.000000000000000e+00, // itest=204: ixxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=204: ixxxxx#6 nsp=1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -3.000000000000000e+02, // itest=205: ixxxxx#6 nsp=1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=205: ixxxxx#6 nsp=1 mass=-400 - -1.414213562373095e+01, -0.000000000000000e+00, // itest=205: ixxxxx#6 nsp=1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=205: ixxxxx#6 nsp=1 mass=-400 - 2.828427124746190e+01, 0.000000000000000e+00, // itest=205: ixxxxx#6 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=205: ixxxxx#6 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 3.000000000000000e+02, // itest=206: vxxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=206: vxxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=206: vxxxxx#6 nsp=1 mass=400 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=206: vxxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, 7.071067811865476e-01, // itest=206: vxxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=206: vxxxxx#6 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 3.000000000000000e+02, // itest=207: vxxxxx#6 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=207: vxxxxx#6 nsp=1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=207: vxxxxx#6 nsp=1 mass=-400 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=207: vxxxxx#6 nsp=1 mass=-400 - 0.000000000000000e+00, 7.071067811865476e-01, // itest=207: vxxxxx#6 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=207: vxxxxx#6 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 3.000000000000000e+02, // itest=208: sxxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=208: sxxxxx#6 nsp=1 mass=400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=208: sxxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=208: sxxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=208: sxxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=208: sxxxxx#6 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 3.000000000000000e+02, // itest=209: sxxxxx#6 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=209: sxxxxx#6 nsp=1 mass=-400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=209: sxxxxx#6 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=209: sxxxxx#6 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=209: sxxxxx#6 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=209: sxxxxx#6 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 3.000000000000000e+02, // itest=210: oxxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=210: oxxxxx#6 nsp=1 mass=400 - 2.828427124746190e+01, 0.000000000000000e+00, // itest=210: oxxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=210: oxxxxx#6 nsp=1 mass=400 - 1.414213562373095e+01, 0.000000000000000e+00, // itest=210: oxxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=210: oxxxxx#6 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 3.000000000000000e+02, // itest=211: oxxxxx#6 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=211: oxxxxx#6 nsp=1 mass=-400 - 2.828427124746190e+01, 0.000000000000000e+00, // itest=211: oxxxxx#6 nsp=1 mass=-400 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=211: oxxxxx#6 nsp=1 mass=-400 - -1.414213562373095e+01, -0.000000000000000e+00, // itest=211: oxxxxx#6 nsp=1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=211: oxxxxx#6 nsp=1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 3.000000000000000e+02, // itest=212: ixxxxx#7 nsp=1 mass=400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=212: ixxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=212: ixxxxx#7 nsp=1 mass=400 - -1.414213562373095e+01, 0.000000000000000e+00, // itest=212: ixxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=212: ixxxxx#7 nsp=1 mass=400 - -2.828427124746190e+01, 0.000000000000000e+00 } ); // itest=212: ixxxxx#7 nsp=1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 3.000000000000000e+02, // itest=213: ixxxxx#7 nsp=1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=213: ixxxxx#7 nsp=1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=213: ixxxxx#7 nsp=1 mass=-400 - 1.414213562373095e+01, -0.000000000000000e+00, // itest=213: ixxxxx#7 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=213: ixxxxx#7 nsp=1 mass=-400 - -2.828427124746190e+01, 0.000000000000000e+00 } ); // itest=213: ixxxxx#7 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -3.000000000000000e+02, // itest=214: vxxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=214: vxxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=214: vxxxxx#7 nsp=1 mass=400 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=214: vxxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, -7.071067811865476e-01, // itest=214: vxxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=214: vxxxxx#7 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -3.000000000000000e+02, // itest=215: vxxxxx#7 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=215: vxxxxx#7 nsp=1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=215: vxxxxx#7 nsp=1 mass=-400 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=215: vxxxxx#7 nsp=1 mass=-400 - 0.000000000000000e+00, -7.071067811865476e-01, // itest=215: vxxxxx#7 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=215: vxxxxx#7 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -3.000000000000000e+02, // itest=216: sxxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=216: sxxxxx#7 nsp=1 mass=400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=216: sxxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=216: sxxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=216: sxxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=216: sxxxxx#7 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -3.000000000000000e+02, // itest=217: sxxxxx#7 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=217: sxxxxx#7 nsp=1 mass=-400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=217: sxxxxx#7 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=217: sxxxxx#7 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=217: sxxxxx#7 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=217: sxxxxx#7 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -3.000000000000000e+02, // itest=218: oxxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=218: oxxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=218: oxxxxx#7 nsp=1 mass=400 - -2.828427124746190e+01, 0.000000000000000e+00, // itest=218: oxxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=218: oxxxxx#7 nsp=1 mass=400 - -1.414213562373095e+01, 0.000000000000000e+00 } ); // itest=218: oxxxxx#7 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -3.000000000000000e+02, // itest=219: oxxxxx#7 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=219: oxxxxx#7 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=219: oxxxxx#7 nsp=1 mass=-400 - -2.828427124746190e+01, 0.000000000000000e+00, // itest=219: oxxxxx#7 nsp=1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=219: oxxxxx#7 nsp=1 mass=-400 - 1.414213562373095e+01, -0.000000000000000e+00 } ); // itest=219: oxxxxx#7 nsp=1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=220: ixxxxx#8 nsp=1 mass=400 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=220: ixxxxx#8 nsp=1 mass=400 - 1.000000000000000e+01, 0.000000000000000e+00, // itest=220: ixxxxx#8 nsp=1 mass=400 - 5.999999999999999e+00, 7.999999999999999e+00, // itest=220: ixxxxx#8 nsp=1 mass=400 - 2.000000000000000e+01, 0.000000000000000e+00, // itest=220: ixxxxx#8 nsp=1 mass=400 - 1.200000000000000e+01, 1.600000000000000e+01 } ); // itest=220: ixxxxx#8 nsp=1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=221: ixxxxx#8 nsp=1 mass=-400 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=221: ixxxxx#8 nsp=1 mass=-400 - -1.000000000000000e+01, -0.000000000000000e+00, // itest=221: ixxxxx#8 nsp=1 mass=-400 - -5.999999999999999e+00, -7.999999999999999e+00, // itest=221: ixxxxx#8 nsp=1 mass=-400 - 2.000000000000000e+01, 0.000000000000000e+00, // itest=221: ixxxxx#8 nsp=1 mass=-400 - 1.200000000000000e+01, 1.600000000000000e+01 } ); // itest=221: ixxxxx#8 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=222: vxxxxx#8 nsp=1 mass=400 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=222: vxxxxx#8 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=222: vxxxxx#8 nsp=1 mass=400 - 0.000000000000000e+00, -5.656854249492381e-01, // itest=222: vxxxxx#8 nsp=1 mass=400 - 0.000000000000000e+00, 4.242640687119285e-01, // itest=222: vxxxxx#8 nsp=1 mass=400 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=222: vxxxxx#8 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=223: vxxxxx#8 nsp=1 mass=-400 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=223: vxxxxx#8 nsp=1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=223: vxxxxx#8 nsp=1 mass=-400 - -0.000000000000000e+00, -5.656854249492381e-01, // itest=223: vxxxxx#8 nsp=1 mass=-400 - -0.000000000000000e+00, 4.242640687119285e-01, // itest=223: vxxxxx#8 nsp=1 mass=-400 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=223: vxxxxx#8 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=224: sxxxxx#8 nsp=1 mass=400 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=224: sxxxxx#8 nsp=1 mass=400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=224: sxxxxx#8 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=224: sxxxxx#8 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=224: sxxxxx#8 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=224: sxxxxx#8 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=225: sxxxxx#8 nsp=1 mass=-400 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=225: sxxxxx#8 nsp=1 mass=-400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=225: sxxxxx#8 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=225: sxxxxx#8 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=225: sxxxxx#8 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=225: sxxxxx#8 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=226: oxxxxx#8 nsp=1 mass=400 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=226: oxxxxx#8 nsp=1 mass=400 - 2.000000000000000e+01, 0.000000000000000e+00, // itest=226: oxxxxx#8 nsp=1 mass=400 - 1.200000000000000e+01, -1.600000000000000e+01, // itest=226: oxxxxx#8 nsp=1 mass=400 - 1.000000000000000e+01, 0.000000000000000e+00, // itest=226: oxxxxx#8 nsp=1 mass=400 - 5.999999999999999e+00, -7.999999999999999e+00 } ); // itest=226: oxxxxx#8 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=227: oxxxxx#8 nsp=1 mass=-400 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=227: oxxxxx#8 nsp=1 mass=-400 - 2.000000000000000e+01, 0.000000000000000e+00, // itest=227: oxxxxx#8 nsp=1 mass=-400 - 1.200000000000000e+01, -1.600000000000000e+01, // itest=227: oxxxxx#8 nsp=1 mass=-400 - -1.000000000000000e+01, -0.000000000000000e+00, // itest=227: oxxxxx#8 nsp=1 mass=-400 - -5.999999999999999e+00, 7.999999999999999e+00 } ); // itest=227: oxxxxx#8 nsp=1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=228: ixxxxx#9 nsp=1 mass=400 - 2.400000000000000e+02, 1.800000000000000e+02, // itest=228: ixxxxx#9 nsp=1 mass=400 - 1.000000000000000e+01, 0.000000000000000e+00, // itest=228: ixxxxx#9 nsp=1 mass=400 - -7.999999999999999e+00, -5.999999999999999e+00, // itest=228: ixxxxx#9 nsp=1 mass=400 - 2.000000000000000e+01, 0.000000000000000e+00, // itest=228: ixxxxx#9 nsp=1 mass=400 - -1.600000000000000e+01, -1.200000000000000e+01 } ); // itest=228: ixxxxx#9 nsp=1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=229: ixxxxx#9 nsp=1 mass=-400 - 2.400000000000000e+02, 1.800000000000000e+02, // itest=229: ixxxxx#9 nsp=1 mass=-400 - -1.000000000000000e+01, -0.000000000000000e+00, // itest=229: ixxxxx#9 nsp=1 mass=-400 - 7.999999999999999e+00, 5.999999999999999e+00, // itest=229: ixxxxx#9 nsp=1 mass=-400 - 2.000000000000000e+01, 0.000000000000000e+00, // itest=229: ixxxxx#9 nsp=1 mass=-400 - -1.600000000000000e+01, -1.200000000000000e+01 } ); // itest=229: ixxxxx#9 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=230: vxxxxx#9 nsp=1 mass=400 - -2.400000000000000e+02, -1.800000000000000e+02, // itest=230: vxxxxx#9 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=230: vxxxxx#9 nsp=1 mass=400 - 0.000000000000000e+00, 4.242640687119285e-01, // itest=230: vxxxxx#9 nsp=1 mass=400 - 0.000000000000000e+00, -5.656854249492381e-01, // itest=230: vxxxxx#9 nsp=1 mass=400 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=230: vxxxxx#9 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=231: vxxxxx#9 nsp=1 mass=-400 - -2.400000000000000e+02, -1.800000000000000e+02, // itest=231: vxxxxx#9 nsp=1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=231: vxxxxx#9 nsp=1 mass=-400 - 0.000000000000000e+00, 4.242640687119285e-01, // itest=231: vxxxxx#9 nsp=1 mass=-400 - 0.000000000000000e+00, -5.656854249492381e-01, // itest=231: vxxxxx#9 nsp=1 mass=-400 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=231: vxxxxx#9 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=232: sxxxxx#9 nsp=1 mass=400 - -2.400000000000000e+02, -1.800000000000000e+02, // itest=232: sxxxxx#9 nsp=1 mass=400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=232: sxxxxx#9 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=232: sxxxxx#9 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=232: sxxxxx#9 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=232: sxxxxx#9 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=233: sxxxxx#9 nsp=1 mass=-400 - -2.400000000000000e+02, -1.800000000000000e+02, // itest=233: sxxxxx#9 nsp=1 mass=-400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=233: sxxxxx#9 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=233: sxxxxx#9 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=233: sxxxxx#9 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=233: sxxxxx#9 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=234: oxxxxx#9 nsp=1 mass=400 - -2.400000000000000e+02, -1.800000000000000e+02, // itest=234: oxxxxx#9 nsp=1 mass=400 - 2.000000000000000e+01, 0.000000000000000e+00, // itest=234: oxxxxx#9 nsp=1 mass=400 - -1.600000000000000e+01, 1.200000000000000e+01, // itest=234: oxxxxx#9 nsp=1 mass=400 - 1.000000000000000e+01, 0.000000000000000e+00, // itest=234: oxxxxx#9 nsp=1 mass=400 - -7.999999999999999e+00, 5.999999999999999e+00 } ); // itest=234: oxxxxx#9 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=235: oxxxxx#9 nsp=1 mass=-400 - -2.400000000000000e+02, -1.800000000000000e+02, // itest=235: oxxxxx#9 nsp=1 mass=-400 - 2.000000000000000e+01, 0.000000000000000e+00, // itest=235: oxxxxx#9 nsp=1 mass=-400 - -1.600000000000000e+01, 1.200000000000000e+01, // itest=235: oxxxxx#9 nsp=1 mass=-400 - -1.000000000000000e+01, -0.000000000000000e+00, // itest=235: oxxxxx#9 nsp=1 mass=-400 - 7.999999999999999e+00, -5.999999999999999e+00 } ); // itest=235: oxxxxx#9 nsp=1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -1.440000000000000e+02, // itest=236: ixxxxx#10 nsp=1 mass=400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=236: ixxxxx#10 nsp=1 mass=400 - 1.216552506059644e+01, 0.000000000000000e+00, // itest=236: ixxxxx#10 nsp=1 mass=400 - 4.931969619160719e+00, 5.260767593771432e+00, // itest=236: ixxxxx#10 nsp=1 mass=400 - 2.433105012119288e+01, 0.000000000000000e+00, // itest=236: ixxxxx#10 nsp=1 mass=400 - 9.863939238321439e+00, 1.052153518754287e+01 } ); // itest=236: ixxxxx#10 nsp=1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -1.440000000000000e+02, // itest=237: ixxxxx#10 nsp=1 mass=-400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=237: ixxxxx#10 nsp=1 mass=-400 - -1.216552506059644e+01, -0.000000000000000e+00, // itest=237: ixxxxx#10 nsp=1 mass=-400 - -4.931969619160719e+00, -5.260767593771432e+00, // itest=237: ixxxxx#10 nsp=1 mass=-400 - 2.433105012119288e+01, 0.000000000000000e+00, // itest=237: ixxxxx#10 nsp=1 mass=-400 - 9.863939238321439e+00, 1.052153518754287e+01 } ); // itest=237: ixxxxx#10 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 1.440000000000000e+02, // itest=238: vxxxxx#10 nsp=1 mass=400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=238: vxxxxx#10 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=238: vxxxxx#10 nsp=1 mass=400 - -2.321373168788980e-01, -5.158607041753289e-01, // itest=238: vxxxxx#10 nsp=1 mass=400 - -2.476131380041579e-01, 4.836194101643708e-01, // itest=238: vxxxxx#10 nsp=1 mass=400 - 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=238: vxxxxx#10 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 1.440000000000000e+02, // itest=239: vxxxxx#10 nsp=1 mass=-400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=239: vxxxxx#10 nsp=1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=239: vxxxxx#10 nsp=1 mass=-400 - -2.321373168788980e-01, -5.158607041753289e-01, // itest=239: vxxxxx#10 nsp=1 mass=-400 - -2.476131380041579e-01, 4.836194101643708e-01, // itest=239: vxxxxx#10 nsp=1 mass=-400 - 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=239: vxxxxx#10 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 1.440000000000000e+02, // itest=240: sxxxxx#10 nsp=1 mass=400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=240: sxxxxx#10 nsp=1 mass=400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=240: sxxxxx#10 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=240: sxxxxx#10 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=240: sxxxxx#10 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=240: sxxxxx#10 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 1.440000000000000e+02, // itest=241: sxxxxx#10 nsp=1 mass=-400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=241: sxxxxx#10 nsp=1 mass=-400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=241: sxxxxx#10 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=241: sxxxxx#10 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=241: sxxxxx#10 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=241: sxxxxx#10 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 1.440000000000000e+02, // itest=242: oxxxxx#10 nsp=1 mass=400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=242: oxxxxx#10 nsp=1 mass=400 - 2.433105012119288e+01, 0.000000000000000e+00, // itest=242: oxxxxx#10 nsp=1 mass=400 - 9.863939238321439e+00, -1.052153518754287e+01, // itest=242: oxxxxx#10 nsp=1 mass=400 - 1.216552506059644e+01, 0.000000000000000e+00, // itest=242: oxxxxx#10 nsp=1 mass=400 - 4.931969619160719e+00, -5.260767593771432e+00 } ); // itest=242: oxxxxx#10 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 1.440000000000000e+02, // itest=243: oxxxxx#10 nsp=1 mass=-400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=243: oxxxxx#10 nsp=1 mass=-400 - 2.433105012119288e+01, 0.000000000000000e+00, // itest=243: oxxxxx#10 nsp=1 mass=-400 - 9.863939238321439e+00, -1.052153518754287e+01, // itest=243: oxxxxx#10 nsp=1 mass=-400 - -1.216552506059644e+01, -0.000000000000000e+00, // itest=243: oxxxxx#10 nsp=1 mass=-400 - -4.931969619160719e+00, 5.260767593771432e+00 } ); // itest=243: oxxxxx#10 nsp=1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 1.440000000000000e+02, // itest=244: ixxxxx#11 nsp=1 mass=400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=244: ixxxxx#11 nsp=1 mass=400 - 7.211102550927978e+00, 0.000000000000000e+00, // itest=244: ixxxxx#11 nsp=1 mass=400 - 8.320502943378436e+00, 8.875203139603666e+00, // itest=244: ixxxxx#11 nsp=1 mass=400 - 1.442220510185596e+01, 0.000000000000000e+00, // itest=244: ixxxxx#11 nsp=1 mass=400 - 1.664100588675688e+01, 1.775040627920733e+01 } ); // itest=244: ixxxxx#11 nsp=1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 1.440000000000000e+02, // itest=245: ixxxxx#11 nsp=1 mass=-400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=245: ixxxxx#11 nsp=1 mass=-400 - -7.211102550927978e+00, -0.000000000000000e+00, // itest=245: ixxxxx#11 nsp=1 mass=-400 - -8.320502943378436e+00, -8.875203139603666e+00, // itest=245: ixxxxx#11 nsp=1 mass=-400 - 1.442220510185596e+01, 0.000000000000000e+00, // itest=245: ixxxxx#11 nsp=1 mass=-400 - 1.664100588675688e+01, 1.775040627920733e+01 } ); // itest=245: ixxxxx#11 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -1.440000000000000e+02, // itest=246: vxxxxx#11 nsp=1 mass=400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=246: vxxxxx#11 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=246: vxxxxx#11 nsp=1 mass=400 - 2.321373168788980e-01, -5.158607041753289e-01, // itest=246: vxxxxx#11 nsp=1 mass=400 - 2.476131380041579e-01, 4.836194101643708e-01, // itest=246: vxxxxx#11 nsp=1 mass=400 - 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=246: vxxxxx#11 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -1.440000000000000e+02, // itest=247: vxxxxx#11 nsp=1 mass=-400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=247: vxxxxx#11 nsp=1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=247: vxxxxx#11 nsp=1 mass=-400 - 2.321373168788980e-01, -5.158607041753289e-01, // itest=247: vxxxxx#11 nsp=1 mass=-400 - 2.476131380041579e-01, 4.836194101643708e-01, // itest=247: vxxxxx#11 nsp=1 mass=-400 - 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=247: vxxxxx#11 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -1.440000000000000e+02, // itest=248: sxxxxx#11 nsp=1 mass=400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=248: sxxxxx#11 nsp=1 mass=400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=248: sxxxxx#11 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=248: sxxxxx#11 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=248: sxxxxx#11 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=248: sxxxxx#11 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -1.440000000000000e+02, // itest=249: sxxxxx#11 nsp=1 mass=-400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=249: sxxxxx#11 nsp=1 mass=-400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=249: sxxxxx#11 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=249: sxxxxx#11 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=249: sxxxxx#11 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=249: sxxxxx#11 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -1.440000000000000e+02, // itest=250: oxxxxx#11 nsp=1 mass=400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=250: oxxxxx#11 nsp=1 mass=400 - 1.442220510185596e+01, 0.000000000000000e+00, // itest=250: oxxxxx#11 nsp=1 mass=400 - 1.664100588675688e+01, -1.775040627920733e+01, // itest=250: oxxxxx#11 nsp=1 mass=400 - 7.211102550927978e+00, 0.000000000000000e+00, // itest=250: oxxxxx#11 nsp=1 mass=400 - 8.320502943378436e+00, -8.875203139603666e+00 } ); // itest=250: oxxxxx#11 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -1.440000000000000e+02, // itest=251: oxxxxx#11 nsp=1 mass=-400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=251: oxxxxx#11 nsp=1 mass=-400 - 1.442220510185596e+01, 0.000000000000000e+00, // itest=251: oxxxxx#11 nsp=1 mass=-400 - 1.664100588675688e+01, -1.775040627920733e+01, // itest=251: oxxxxx#11 nsp=1 mass=-400 - -7.211102550927978e+00, -0.000000000000000e+00, // itest=251: oxxxxx#11 nsp=1 mass=-400 - -8.320502943378436e+00, 8.875203139603666e+00 } ); // itest=251: oxxxxx#11 nsp=1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=252: ixxxxx#12 nsp=1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=252: ixxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=252: ixxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=252: ixxxxx#12 nsp=1 mass=0 - 3.162277660168379e+01, 0.000000000000000e+00, // itest=252: ixxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=252: ixxxxx#12 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=253: ixxxxx#12 nsp=1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=253: ixxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=253: ixxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=253: ixxxxx#12 nsp=1 mass=0 - 3.162277660168379e+01, 0.000000000000000e+00, // itest=253: ixxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=253: ixxxxx#12 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=254: ipzxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=254: ipzxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=254: ipzxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=254: ipzxxx#12 nsp=1 mass=0 - 3.162277660168379e+01, 0.000000000000000e+00, // itest=254: ipzxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=254: ipzxxx#12 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=255: vxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=255: vxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=255: vxxxxx#12 nsp=1 mass=0 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=255: vxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 7.071067811865476e-01, // itest=255: vxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=255: vxxxxx#12 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=256: vxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=256: vxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=256: vxxxxx#12 nsp=1 mass=0 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=256: vxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 7.071067811865476e-01, // itest=256: vxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=256: vxxxxx#12 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=257: sxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=257: sxxxxx#12 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=257: sxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=257: sxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=257: sxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=257: sxxxxx#12 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=258: sxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=258: sxxxxx#12 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=258: sxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=258: sxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=258: sxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=258: sxxxxx#12 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=259: oxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=259: oxxxxx#12 nsp=1 mass=0 - 3.162277660168379e+01, 0.000000000000000e+00, // itest=259: oxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=259: oxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=259: oxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=259: oxxxxx#12 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=260: oxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=260: oxxxxx#12 nsp=1 mass=0 - 3.162277660168379e+01, 0.000000000000000e+00, // itest=260: oxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=260: oxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=260: oxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=260: oxxxxx#12 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=261: opzxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=261: opzxxx#12 nsp=1 mass=0 - 3.162277660168379e+01, 0.000000000000000e+00, // itest=261: opzxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=261: opzxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=261: opzxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=261: opzxxx#12 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=262: ixxxxx#13 nsp=1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=262: ixxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=262: ixxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=262: ixxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=262: ixxxxx#13 nsp=1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=262: ixxxxx#13 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=263: ixxxxx#13 nsp=1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=263: ixxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=263: ixxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=263: ixxxxx#13 nsp=1 mass=0 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=263: ixxxxx#13 nsp=1 mass=0 - -3.162277660168379e+01, -0.000000000000000e+00 } ); // itest=263: ixxxxx#13 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=264: imzxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=264: imzxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=264: imzxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=264: imzxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=264: imzxxx#13 nsp=1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=264: imzxxx#13 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=265: vxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=265: vxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=265: vxxxxx#13 nsp=1 mass=0 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=265: vxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, -7.071067811865476e-01, // itest=265: vxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=265: vxxxxx#13 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=266: vxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=266: vxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=266: vxxxxx#13 nsp=1 mass=0 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=266: vxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, -7.071067811865476e-01, // itest=266: vxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=266: vxxxxx#13 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=267: sxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=267: sxxxxx#13 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=267: sxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=267: sxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=267: sxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=267: sxxxxx#13 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=268: sxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=268: sxxxxx#13 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=268: sxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=268: sxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=268: sxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=268: sxxxxx#13 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=269: oxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=269: oxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=269: oxxxxx#13 nsp=1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00, // itest=269: oxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=269: oxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=269: oxxxxx#13 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=270: oxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=270: oxxxxx#13 nsp=1 mass=0 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=270: oxxxxx#13 nsp=1 mass=0 - -3.162277660168379e+01, -0.000000000000000e+00, // itest=270: oxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=270: oxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=270: oxxxxx#13 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=271: omzxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=271: omzxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=271: omzxxx#13 nsp=1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00, // itest=271: omzxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=271: omzxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=271: omzxxx#13 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=272: ixxxxx#14 nsp=1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=272: ixxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=272: ixxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=272: ixxxxx#14 nsp=1 mass=0 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=272: ixxxxx#14 nsp=1 mass=0 - 1.341640786499874e+01, 1.788854381999832e+01 } ); // itest=272: ixxxxx#14 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=273: ixxxxx#14 nsp=1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=273: ixxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=273: ixxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=273: ixxxxx#14 nsp=1 mass=0 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=273: ixxxxx#14 nsp=1 mass=0 - 1.341640786499874e+01, 1.788854381999832e+01 } ); // itest=273: ixxxxx#14 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=274: ixzxxx#14 nsp=1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=274: ixzxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=274: ixzxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=274: ixzxxx#14 nsp=1 mass=0 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=274: ixzxxx#14 nsp=1 mass=0 - 1.341640786499874e+01, 1.788854381999832e+01 } ); // itest=274: ixzxxx#14 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=275: vxxxxx#14 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=275: vxxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=275: vxxxxx#14 nsp=1 mass=0 - -0.000000000000000e+00, -5.656854249492381e-01, // itest=275: vxxxxx#14 nsp=1 mass=0 - -0.000000000000000e+00, 4.242640687119285e-01, // itest=275: vxxxxx#14 nsp=1 mass=0 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=275: vxxxxx#14 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=276: vxxxxx#14 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=276: vxxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=276: vxxxxx#14 nsp=1 mass=0 - -0.000000000000000e+00, -5.656854249492381e-01, // itest=276: vxxxxx#14 nsp=1 mass=0 - -0.000000000000000e+00, 4.242640687119285e-01, // itest=276: vxxxxx#14 nsp=1 mass=0 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=276: vxxxxx#14 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=277: sxxxxx#14 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=277: sxxxxx#14 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=277: sxxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=277: sxxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=277: sxxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=277: sxxxxx#14 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=278: sxxxxx#14 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=278: sxxxxx#14 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=278: sxxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=278: sxxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=278: sxxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=278: sxxxxx#14 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=279: oxxxxx#14 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=279: oxxxxx#14 nsp=1 mass=0 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=279: oxxxxx#14 nsp=1 mass=0 - 1.341640786499874e+01, -1.788854381999832e+01, // itest=279: oxxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=279: oxxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=279: oxxxxx#14 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=280: oxxxxx#14 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=280: oxxxxx#14 nsp=1 mass=0 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=280: oxxxxx#14 nsp=1 mass=0 - 1.341640786499874e+01, -1.788854381999832e+01, // itest=280: oxxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=280: oxxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=280: oxxxxx#14 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=281: oxzxxx#14 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=281: oxzxxx#14 nsp=1 mass=0 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=281: oxzxxx#14 nsp=1 mass=0 - 1.341640786499874e+01, -1.788854381999832e+01, // itest=281: oxzxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=281: oxzxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=281: oxzxxx#14 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=282: ixxxxx#15 nsp=1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=282: ixxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=282: ixxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=282: ixxxxx#15 nsp=1 mass=0 - 3.000000000000000e+01, 0.000000000000000e+00, // itest=282: ixxxxx#15 nsp=1 mass=0 - 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=282: ixxxxx#15 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=283: ixxxxx#15 nsp=1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=283: ixxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=283: ixxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=283: ixxxxx#15 nsp=1 mass=0 - 3.000000000000000e+01, 0.000000000000000e+00, // itest=283: ixxxxx#15 nsp=1 mass=0 - 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=283: ixxxxx#15 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=284: ixzxxx#15 nsp=1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=284: ixzxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=284: ixzxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=284: ixzxxx#15 nsp=1 mass=0 - 3.000000000000000e+01, 0.000000000000000e+00, // itest=284: ixzxxx#15 nsp=1 mass=0 - 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=284: ixzxxx#15 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=285: vxxxxx#15 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=285: vxxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=285: vxxxxx#15 nsp=1 mass=0 - -3.394112549695428e-01, -5.656854249492381e-01, // itest=285: vxxxxx#15 nsp=1 mass=0 - -4.525483399593904e-01, 4.242640687119285e-01, // itest=285: vxxxxx#15 nsp=1 mass=0 - 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=285: vxxxxx#15 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=286: vxxxxx#15 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=286: vxxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=286: vxxxxx#15 nsp=1 mass=0 - -3.394112549695428e-01, -5.656854249492381e-01, // itest=286: vxxxxx#15 nsp=1 mass=0 - -4.525483399593904e-01, 4.242640687119285e-01, // itest=286: vxxxxx#15 nsp=1 mass=0 - 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=286: vxxxxx#15 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=287: sxxxxx#15 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=287: sxxxxx#15 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=287: sxxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=287: sxxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=287: sxxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=287: sxxxxx#15 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=288: sxxxxx#15 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=288: sxxxxx#15 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=288: sxxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=288: sxxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=288: sxxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=288: sxxxxx#15 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=289: oxxxxx#15 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=289: oxxxxx#15 nsp=1 mass=0 - 3.000000000000000e+01, 0.000000000000000e+00, // itest=289: oxxxxx#15 nsp=1 mass=0 - 6.000000000000000e+00, -8.000000000000000e+00, // itest=289: oxxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=289: oxxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=289: oxxxxx#15 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=290: oxxxxx#15 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=290: oxxxxx#15 nsp=1 mass=0 - 3.000000000000000e+01, 0.000000000000000e+00, // itest=290: oxxxxx#15 nsp=1 mass=0 - 6.000000000000000e+00, -8.000000000000000e+00, // itest=290: oxxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=290: oxxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=290: oxxxxx#15 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=291: oxzxxx#15 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=291: oxzxxx#15 nsp=1 mass=0 - 3.000000000000000e+01, 0.000000000000000e+00, // itest=291: oxzxxx#15 nsp=1 mass=0 - 6.000000000000000e+00, -8.000000000000000e+00, // itest=291: oxzxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=291: oxzxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=291: oxzxxx#15 nsp=1 mass=0 + 5.000000000000000e+02, 5.000000000000000e+02, // itest=50: ixxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=50: ixxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=50: ixxxxx#5 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=50: ixxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=50: ixxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=50: ixxxxx#5 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=51: ixxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=51: ixxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=51: ixxxxx#5 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=51: ixxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=51: ixxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=51: ixxxxx#5 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=52: ipzxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=52: ipzxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=52: ipzxxx#5 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=52: ipzxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=52: ipzxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=52: ipzxxx#5 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=53: vxxxxx#5 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=53: vxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=53: vxxxxx#5 nsp=-1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=53: vxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=53: vxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=53: vxxxxx#5 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=54: vxxxxx#5 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=54: vxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=54: vxxxxx#5 nsp=-1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=54: vxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=54: vxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=54: vxxxxx#5 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=55: sxxxxx#5 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=55: sxxxxx#5 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=55: sxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=55: sxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=55: sxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=55: sxxxxx#5 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=56: sxxxxx#5 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=56: sxxxxx#5 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=56: sxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=56: sxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=56: sxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=56: sxxxxx#5 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=57: oxxxxx#5 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=57: oxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=57: oxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=57: oxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=57: oxxxxx#5 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=57: oxxxxx#5 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=58: oxxxxx#5 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=58: oxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=58: oxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=58: oxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=58: oxxxxx#5 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=58: oxxxxx#5 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=59: opzxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=59: opzxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=59: opzxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=59: opzxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=59: opzxxx#5 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=59: opzxxx#5 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=60: ixxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=60: ixxxxx#6 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=60: ixxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=60: ixxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=60: ixxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=60: ixxxxx#6 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=61: ixxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=61: ixxxxx#6 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=61: ixxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=61: ixxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=61: ixxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=61: ixxxxx#6 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=62: imzxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=62: imzxxx#6 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=62: imzxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=62: imzxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=62: imzxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=62: imzxxx#6 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=63: vxxxxx#6 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=63: vxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=63: vxxxxx#6 nsp=-1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=63: vxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=63: vxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=63: vxxxxx#6 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=64: vxxxxx#6 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=64: vxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=64: vxxxxx#6 nsp=-1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=64: vxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=64: vxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=64: vxxxxx#6 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=65: sxxxxx#6 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=65: sxxxxx#6 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=65: sxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=65: sxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=65: sxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=65: sxxxxx#6 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=66: sxxxxx#6 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=66: sxxxxx#6 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=66: sxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=66: sxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=66: sxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=66: sxxxxx#6 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=67: oxxxxx#6 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=67: oxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=67: oxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=67: oxxxxx#6 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=67: oxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=67: oxxxxx#6 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=68: oxxxxx#6 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=68: oxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=68: oxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=68: oxxxxx#6 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=68: oxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=68: oxxxxx#6 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=69: omzxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=69: omzxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=69: omzxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=69: omzxxx#6 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=69: omzxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=69: omzxxx#6 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=70: ixxxxx#7 nsp=-1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=70: ixxxxx#7 nsp=-1 mass=0 + 1.341640786499874e+01, -1.788854381999831e+01, // itest=70: ixxxxx#7 nsp=-1 mass=0 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=70: ixxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=70: ixxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=70: ixxxxx#7 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=71: ixxxxx#7 nsp=-1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=71: ixxxxx#7 nsp=-1 mass=0 + 1.341640786499874e+01, -1.788854381999831e+01, // itest=71: ixxxxx#7 nsp=-1 mass=0 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=71: ixxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=71: ixxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=71: ixxxxx#7 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=72: ixzxxx#7 nsp=-1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=72: ixzxxx#7 nsp=-1 mass=0 + 1.341640786499874e+01, -1.788854381999832e+01, // itest=72: ixzxxx#7 nsp=-1 mass=0 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=72: ixzxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=72: ixzxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=72: ixzxxx#7 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=73: vxxxxx#7 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=73: vxxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=73: vxxxxx#7 nsp=-1 mass=0 + -0.000000000000000e+00, 5.656854249492381e-01, // itest=73: vxxxxx#7 nsp=-1 mass=0 + -0.000000000000000e+00, -4.242640687119285e-01, // itest=73: vxxxxx#7 nsp=-1 mass=0 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=73: vxxxxx#7 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=74: vxxxxx#7 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=74: vxxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=74: vxxxxx#7 nsp=-1 mass=0 + -0.000000000000000e+00, 5.656854249492381e-01, // itest=74: vxxxxx#7 nsp=-1 mass=0 + -0.000000000000000e+00, -4.242640687119285e-01, // itest=74: vxxxxx#7 nsp=-1 mass=0 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=74: vxxxxx#7 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=75: sxxxxx#7 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=75: sxxxxx#7 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=75: sxxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=75: sxxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=75: sxxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=75: sxxxxx#7 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=76: sxxxxx#7 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=76: sxxxxx#7 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=76: sxxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=76: sxxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=76: sxxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=76: sxxxxx#7 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=77: oxxxxx#7 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=77: oxxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=77: oxxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=77: oxxxxx#7 nsp=-1 mass=0 + 1.341640786499874e+01, 1.788854381999831e+01, // itest=77: oxxxxx#7 nsp=-1 mass=0 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=77: oxxxxx#7 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=78: oxxxxx#7 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=78: oxxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=78: oxxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=78: oxxxxx#7 nsp=-1 mass=0 + 1.341640786499874e+01, 1.788854381999831e+01, // itest=78: oxxxxx#7 nsp=-1 mass=0 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=78: oxxxxx#7 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=79: oxzxxx#7 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=79: oxzxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=79: oxzxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=79: oxzxxx#7 nsp=-1 mass=0 + 1.341640786499874e+01, 1.788854381999832e+01, // itest=79: oxzxxx#7 nsp=-1 mass=0 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=79: oxzxxx#7 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=80: ixxxxx#8 nsp=-1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=80: ixxxxx#8 nsp=-1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=80: ixxxxx#8 nsp=-1 mass=0 + -3.000000000000000e+01, 0.000000000000000e+00, // itest=80: ixxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=80: ixxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=80: ixxxxx#8 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=81: ixxxxx#8 nsp=-1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=81: ixxxxx#8 nsp=-1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=81: ixxxxx#8 nsp=-1 mass=0 + -3.000000000000000e+01, 0.000000000000000e+00, // itest=81: ixxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=81: ixxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=81: ixxxxx#8 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=82: ixzxxx#8 nsp=-1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=82: ixzxxx#8 nsp=-1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=82: ixzxxx#8 nsp=-1 mass=0 + -3.000000000000000e+01, 0.000000000000000e+00, // itest=82: ixzxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=82: ixzxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=82: ixzxxx#8 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=83: vxxxxx#8 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=83: vxxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=83: vxxxxx#8 nsp=-1 mass=0 + -3.394112549695428e-01, 5.656854249492381e-01, // itest=83: vxxxxx#8 nsp=-1 mass=0 + -4.525483399593904e-01, -4.242640687119285e-01, // itest=83: vxxxxx#8 nsp=-1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=83: vxxxxx#8 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=84: vxxxxx#8 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=84: vxxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=84: vxxxxx#8 nsp=-1 mass=0 + -3.394112549695428e-01, 5.656854249492381e-01, // itest=84: vxxxxx#8 nsp=-1 mass=0 + -4.525483399593904e-01, -4.242640687119285e-01, // itest=84: vxxxxx#8 nsp=-1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=84: vxxxxx#8 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=85: sxxxxx#8 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=85: sxxxxx#8 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=85: sxxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=85: sxxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=85: sxxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=85: sxxxxx#8 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=86: sxxxxx#8 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=86: sxxxxx#8 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=86: sxxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=86: sxxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=86: sxxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=86: sxxxxx#8 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=87: oxxxxx#8 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=87: oxxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=87: oxxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=87: oxxxxx#8 nsp=-1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00, // itest=87: oxxxxx#8 nsp=-1 mass=0 + -3.000000000000000e+01, 0.000000000000000e+00 } ); // itest=87: oxxxxx#8 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=88: oxxxxx#8 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=88: oxxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=88: oxxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=88: oxxxxx#8 nsp=-1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00, // itest=88: oxxxxx#8 nsp=-1 mass=0 + -3.000000000000000e+01, 0.000000000000000e+00 } ); // itest=88: oxxxxx#8 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=89: oxzxxx#8 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=89: oxzxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=89: oxzxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=89: oxzxxx#8 nsp=-1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00, // itest=89: oxzxxx#8 nsp=-1 mass=0 + -3.000000000000000e+01, 0.000000000000000e+00 } ); // itest=89: oxzxxx#8 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=90: ixxxxx#9 nsp=-1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=90: ixxxxx#9 nsp=-1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=90: ixxxxx#9 nsp=-1 mass=0 + -1.000000000000000e+01, 0.000000000000000e+00, // itest=90: ixxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=90: ixxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=90: ixxxxx#9 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=91: ixxxxx#9 nsp=-1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=91: ixxxxx#9 nsp=-1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=91: ixxxxx#9 nsp=-1 mass=0 + -1.000000000000000e+01, 0.000000000000000e+00, // itest=91: ixxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=91: ixxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=91: ixxxxx#9 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=92: ixzxxx#9 nsp=-1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=92: ixzxxx#9 nsp=-1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=92: ixzxxx#9 nsp=-1 mass=0 + -1.000000000000000e+01, 0.000000000000000e+00, // itest=92: ixzxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=92: ixzxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=92: ixzxxx#9 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=93: vxxxxx#9 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=93: vxxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=93: vxxxxx#9 nsp=-1 mass=0 + 3.394112549695428e-01, 5.656854249492381e-01, // itest=93: vxxxxx#9 nsp=-1 mass=0 + 4.525483399593904e-01, -4.242640687119285e-01, // itest=93: vxxxxx#9 nsp=-1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=93: vxxxxx#9 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=94: vxxxxx#9 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=94: vxxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=94: vxxxxx#9 nsp=-1 mass=0 + 3.394112549695428e-01, 5.656854249492381e-01, // itest=94: vxxxxx#9 nsp=-1 mass=0 + 4.525483399593904e-01, -4.242640687119285e-01, // itest=94: vxxxxx#9 nsp=-1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=94: vxxxxx#9 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=95: sxxxxx#9 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=95: sxxxxx#9 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=95: sxxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=95: sxxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=95: sxxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=95: sxxxxx#9 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=96: sxxxxx#9 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=96: sxxxxx#9 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=96: sxxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=96: sxxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=96: sxxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=96: sxxxxx#9 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=97: oxxxxx#9 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=97: oxxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=97: oxxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=97: oxxxxx#9 nsp=-1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01, // itest=97: oxxxxx#9 nsp=-1 mass=0 + -1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=97: oxxxxx#9 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=98: oxxxxx#9 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=98: oxxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=98: oxxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=98: oxxxxx#9 nsp=-1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01, // itest=98: oxxxxx#9 nsp=-1 mass=0 + -1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=98: oxxxxx#9 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=99: oxzxxx#9 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=99: oxzxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=99: oxzxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=99: oxzxxx#9 nsp=-1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01, // itest=99: oxzxxx#9 nsp=-1 mass=0 + -1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=99: oxzxxx#9 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=100: ixxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=100: ixxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=100: ixxxxx#10 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=100: ixxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=100: ixxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=100: ixxxxx#10 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=101: ixxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=101: ixxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=101: ixxxxx#10 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=101: ixxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=101: ixxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=101: ixxxxx#10 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=102: ipzxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=102: ipzxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=102: ipzxxx#10 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=102: ipzxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=102: ipzxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=102: ipzxxx#10 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=103: vxxxxx#10 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=103: vxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=103: vxxxxx#10 nsp=-1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=103: vxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=103: vxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=103: vxxxxx#10 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=104: vxxxxx#10 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=104: vxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=104: vxxxxx#10 nsp=-1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=104: vxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=104: vxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=104: vxxxxx#10 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=105: sxxxxx#10 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=105: sxxxxx#10 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=105: sxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=105: sxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=105: sxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=105: sxxxxx#10 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=106: sxxxxx#10 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=106: sxxxxx#10 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=106: sxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=106: sxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=106: sxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=106: sxxxxx#10 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=107: oxxxxx#10 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=107: oxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=107: oxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=107: oxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=107: oxxxxx#10 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=107: oxxxxx#10 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=108: oxxxxx#10 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=108: oxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=108: oxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=108: oxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=108: oxxxxx#10 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=108: oxxxxx#10 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=109: opzxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=109: opzxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=109: opzxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=109: opzxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=109: opzxxx#10 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=109: opzxxx#10 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=110: ixxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=110: ixxxxx#11 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=110: ixxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=110: ixxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=110: ixxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=110: ixxxxx#11 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=111: ixxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=111: ixxxxx#11 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=111: ixxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=111: ixxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=111: ixxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=111: ixxxxx#11 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=112: imzxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=112: imzxxx#11 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=112: imzxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=112: imzxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=112: imzxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=112: imzxxx#11 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=113: vxxxxx#11 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=113: vxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=113: vxxxxx#11 nsp=-1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=113: vxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=113: vxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=113: vxxxxx#11 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=114: vxxxxx#11 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=114: vxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=114: vxxxxx#11 nsp=-1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=114: vxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=114: vxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=114: vxxxxx#11 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=115: sxxxxx#11 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=115: sxxxxx#11 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=115: sxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=115: sxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=115: sxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=115: sxxxxx#11 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=116: sxxxxx#11 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=116: sxxxxx#11 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=116: sxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=116: sxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=116: sxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=116: sxxxxx#11 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=117: oxxxxx#11 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=117: oxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=117: oxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=117: oxxxxx#11 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=117: oxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=117: oxxxxx#11 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=118: oxxxxx#11 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=118: oxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=118: oxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=118: oxxxxx#11 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=118: oxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=118: oxxxxx#11 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=119: omzxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=119: omzxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=119: omzxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=119: omzxxx#11 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=119: omzxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=119: omzxxx#11 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=120: ixxxxx#12 nsp=-1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=120: ixxxxx#12 nsp=-1 mass=0 + 1.341640786499874e+01, -1.788854381999831e+01, // itest=120: ixxxxx#12 nsp=-1 mass=0 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=120: ixxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=120: ixxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=120: ixxxxx#12 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=121: ixxxxx#12 nsp=-1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=121: ixxxxx#12 nsp=-1 mass=0 + 1.341640786499874e+01, -1.788854381999831e+01, // itest=121: ixxxxx#12 nsp=-1 mass=0 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=121: ixxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=121: ixxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=121: ixxxxx#12 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=122: ixzxxx#12 nsp=-1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=122: ixzxxx#12 nsp=-1 mass=0 + 1.341640786499874e+01, -1.788854381999832e+01, // itest=122: ixzxxx#12 nsp=-1 mass=0 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=122: ixzxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=122: ixzxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=122: ixzxxx#12 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=123: vxxxxx#12 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=123: vxxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=123: vxxxxx#12 nsp=-1 mass=0 + -0.000000000000000e+00, 5.656854249492381e-01, // itest=123: vxxxxx#12 nsp=-1 mass=0 + -0.000000000000000e+00, -4.242640687119285e-01, // itest=123: vxxxxx#12 nsp=-1 mass=0 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=123: vxxxxx#12 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=124: vxxxxx#12 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=124: vxxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=124: vxxxxx#12 nsp=-1 mass=0 + -0.000000000000000e+00, 5.656854249492381e-01, // itest=124: vxxxxx#12 nsp=-1 mass=0 + -0.000000000000000e+00, -4.242640687119285e-01, // itest=124: vxxxxx#12 nsp=-1 mass=0 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=124: vxxxxx#12 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=125: sxxxxx#12 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=125: sxxxxx#12 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=125: sxxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=125: sxxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=125: sxxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=125: sxxxxx#12 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=126: sxxxxx#12 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=126: sxxxxx#12 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=126: sxxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=126: sxxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=126: sxxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=126: sxxxxx#12 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=127: oxxxxx#12 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=127: oxxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=127: oxxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=127: oxxxxx#12 nsp=-1 mass=0 + 1.341640786499874e+01, 1.788854381999831e+01, // itest=127: oxxxxx#12 nsp=-1 mass=0 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=127: oxxxxx#12 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=128: oxxxxx#12 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=128: oxxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=128: oxxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=128: oxxxxx#12 nsp=-1 mass=0 + 1.341640786499874e+01, 1.788854381999831e+01, // itest=128: oxxxxx#12 nsp=-1 mass=0 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=128: oxxxxx#12 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=129: oxzxxx#12 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=129: oxzxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=129: oxzxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=129: oxzxxx#12 nsp=-1 mass=0 + 1.341640786499874e+01, 1.788854381999832e+01, // itest=129: oxzxxx#12 nsp=-1 mass=0 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=129: oxzxxx#12 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=130: ixxxxx#13 nsp=-1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=130: ixxxxx#13 nsp=-1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=130: ixxxxx#13 nsp=-1 mass=0 + -3.000000000000000e+01, 0.000000000000000e+00, // itest=130: ixxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=130: ixxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=130: ixxxxx#13 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=131: ixxxxx#13 nsp=-1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=131: ixxxxx#13 nsp=-1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=131: ixxxxx#13 nsp=-1 mass=0 + -3.000000000000000e+01, 0.000000000000000e+00, // itest=131: ixxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=131: ixxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=131: ixxxxx#13 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=132: ixzxxx#13 nsp=-1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=132: ixzxxx#13 nsp=-1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=132: ixzxxx#13 nsp=-1 mass=0 + -3.000000000000000e+01, 0.000000000000000e+00, // itest=132: ixzxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=132: ixzxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=132: ixzxxx#13 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=133: vxxxxx#13 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=133: vxxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=133: vxxxxx#13 nsp=-1 mass=0 + -3.394112549695428e-01, 5.656854249492381e-01, // itest=133: vxxxxx#13 nsp=-1 mass=0 + -4.525483399593904e-01, -4.242640687119285e-01, // itest=133: vxxxxx#13 nsp=-1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=133: vxxxxx#13 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=134: vxxxxx#13 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=134: vxxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=134: vxxxxx#13 nsp=-1 mass=0 + -3.394112549695428e-01, 5.656854249492381e-01, // itest=134: vxxxxx#13 nsp=-1 mass=0 + -4.525483399593904e-01, -4.242640687119285e-01, // itest=134: vxxxxx#13 nsp=-1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=134: vxxxxx#13 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=135: sxxxxx#13 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=135: sxxxxx#13 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=135: sxxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=135: sxxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=135: sxxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=135: sxxxxx#13 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=136: sxxxxx#13 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=136: sxxxxx#13 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=136: sxxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=136: sxxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=136: sxxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=136: sxxxxx#13 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=137: oxxxxx#13 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=137: oxxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=137: oxxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=137: oxxxxx#13 nsp=-1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00, // itest=137: oxxxxx#13 nsp=-1 mass=0 + -3.000000000000000e+01, 0.000000000000000e+00 } ); // itest=137: oxxxxx#13 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=138: oxxxxx#13 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=138: oxxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=138: oxxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=138: oxxxxx#13 nsp=-1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00, // itest=138: oxxxxx#13 nsp=-1 mass=0 + -3.000000000000000e+01, 0.000000000000000e+00 } ); // itest=138: oxxxxx#13 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=139: oxzxxx#13 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=139: oxzxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=139: oxzxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=139: oxzxxx#13 nsp=-1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00, // itest=139: oxzxxx#13 nsp=-1 mass=0 + -3.000000000000000e+01, 0.000000000000000e+00 } ); // itest=139: oxzxxx#13 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=140: ixxxxx#14 nsp=-1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=140: ixxxxx#14 nsp=-1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=140: ixxxxx#14 nsp=-1 mass=0 + -1.000000000000000e+01, 0.000000000000000e+00, // itest=140: ixxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=140: ixxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=140: ixxxxx#14 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=141: ixxxxx#14 nsp=-1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=141: ixxxxx#14 nsp=-1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=141: ixxxxx#14 nsp=-1 mass=0 + -1.000000000000000e+01, 0.000000000000000e+00, // itest=141: ixxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=141: ixxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=141: ixxxxx#14 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=142: ixzxxx#14 nsp=-1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=142: ixzxxx#14 nsp=-1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=142: ixzxxx#14 nsp=-1 mass=0 + -1.000000000000000e+01, 0.000000000000000e+00, // itest=142: ixzxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=142: ixzxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=142: ixzxxx#14 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=143: vxxxxx#14 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=143: vxxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=143: vxxxxx#14 nsp=-1 mass=0 + 3.394112549695428e-01, 5.656854249492381e-01, // itest=143: vxxxxx#14 nsp=-1 mass=0 + 4.525483399593904e-01, -4.242640687119285e-01, // itest=143: vxxxxx#14 nsp=-1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=143: vxxxxx#14 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=144: vxxxxx#14 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=144: vxxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=144: vxxxxx#14 nsp=-1 mass=0 + 3.394112549695428e-01, 5.656854249492381e-01, // itest=144: vxxxxx#14 nsp=-1 mass=0 + 4.525483399593904e-01, -4.242640687119285e-01, // itest=144: vxxxxx#14 nsp=-1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=144: vxxxxx#14 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=145: sxxxxx#14 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=145: sxxxxx#14 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=145: sxxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=145: sxxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=145: sxxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=145: sxxxxx#14 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=146: sxxxxx#14 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=146: sxxxxx#14 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=146: sxxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=146: sxxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=146: sxxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=146: sxxxxx#14 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=147: oxxxxx#14 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=147: oxxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=147: oxxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=147: oxxxxx#14 nsp=-1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01, // itest=147: oxxxxx#14 nsp=-1 mass=0 + -1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=147: oxxxxx#14 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=148: oxxxxx#14 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=148: oxxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=148: oxxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=148: oxxxxx#14 nsp=-1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01, // itest=148: oxxxxx#14 nsp=-1 mass=0 + -1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=148: oxxxxx#14 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=149: oxzxxx#14 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=149: oxzxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=149: oxzxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=149: oxzxxx#14 nsp=-1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01, // itest=149: oxzxxx#14 nsp=-1 mass=0 + -1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=149: oxzxxx#14 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=150: ixxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=150: ixxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=150: ixxxxx#15 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=150: ixxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=150: ixxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=150: ixxxxx#15 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=151: ixxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=151: ixxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=151: ixxxxx#15 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=151: ixxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=151: ixxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=151: ixxxxx#15 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=152: ipzxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=152: ipzxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=152: ipzxxx#15 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=152: ipzxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=152: ipzxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=152: ipzxxx#15 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=153: vxxxxx#15 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=153: vxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=153: vxxxxx#15 nsp=-1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=153: vxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=153: vxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=153: vxxxxx#15 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=154: vxxxxx#15 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=154: vxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=154: vxxxxx#15 nsp=-1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=154: vxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=154: vxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=154: vxxxxx#15 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=155: sxxxxx#15 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=155: sxxxxx#15 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=155: sxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=155: sxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=155: sxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=155: sxxxxx#15 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=156: sxxxxx#15 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=156: sxxxxx#15 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=156: sxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=156: sxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=156: sxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=156: sxxxxx#15 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=157: oxxxxx#15 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=157: oxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=157: oxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=157: oxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=157: oxxxxx#15 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=157: oxxxxx#15 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=158: oxxxxx#15 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=158: oxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=158: oxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=158: oxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=158: oxxxxx#15 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=158: oxxxxx#15 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=159: opzxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=159: opzxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=159: opzxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=159: opzxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=159: opzxxx#15 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=159: opzxxx#15 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=160: ixxxxx#16 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=160: ixxxxx#16 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=160: ixxxxx#16 nsp=-1 mass=500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=160: ixxxxx#16 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=160: ixxxxx#16 nsp=-1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=160: ixxxxx#16 nsp=-1 mass=500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=161: ixxxxx#16 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=161: ixxxxx#16 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=161: ixxxxx#16 nsp=-1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=161: ixxxxx#16 nsp=-1 mass=-500 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=161: ixxxxx#16 nsp=-1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=161: ixxxxx#16 nsp=-1 mass=-500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=162: vxxxxx#16 nsp=-1 mass=500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=162: vxxxxx#16 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=162: vxxxxx#16 nsp=-1 mass=500 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=162: vxxxxx#16 nsp=-1 mass=500 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=162: vxxxxx#16 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=162: vxxxxx#16 nsp=-1 mass=500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=163: vxxxxx#16 nsp=-1 mass=-500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=163: vxxxxx#16 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=163: vxxxxx#16 nsp=-1 mass=-500 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=163: vxxxxx#16 nsp=-1 mass=-500 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=163: vxxxxx#16 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=163: vxxxxx#16 nsp=-1 mass=-500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=164: sxxxxx#16 nsp=-1 mass=500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=164: sxxxxx#16 nsp=-1 mass=500 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=164: sxxxxx#16 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=164: sxxxxx#16 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=164: sxxxxx#16 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=164: sxxxxx#16 nsp=-1 mass=500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=165: sxxxxx#16 nsp=-1 mass=-500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=165: sxxxxx#16 nsp=-1 mass=-500 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=165: sxxxxx#16 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=165: sxxxxx#16 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=165: sxxxxx#16 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=165: sxxxxx#16 nsp=-1 mass=-500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=166: oxxxxx#16 nsp=-1 mass=500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=166: oxxxxx#16 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=166: oxxxxx#16 nsp=-1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=166: oxxxxx#16 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=166: oxxxxx#16 nsp=-1 mass=500 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=166: oxxxxx#16 nsp=-1 mass=500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=167: oxxxxx#16 nsp=-1 mass=-500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=167: oxxxxx#16 nsp=-1 mass=-500 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=167: oxxxxx#16 nsp=-1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=167: oxxxxx#16 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=167: oxxxxx#16 nsp=-1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=167: oxxxxx#16 nsp=-1 mass=-500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=168: ixxxxx#17 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=168: ixxxxx#17 nsp=-1 mass=400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=168: ixxxxx#17 nsp=-1 mass=400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=168: ixxxxx#17 nsp=-1 mass=400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=168: ixxxxx#17 nsp=-1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00 } ); // itest=168: ixxxxx#17 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=169: ixxxxx#17 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=169: ixxxxx#17 nsp=-1 mass=-400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=169: ixxxxx#17 nsp=-1 mass=-400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=169: ixxxxx#17 nsp=-1 mass=-400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=169: ixxxxx#17 nsp=-1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00 } ); // itest=169: ixxxxx#17 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=170: vxxxxx#17 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=170: vxxxxx#17 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=170: vxxxxx#17 nsp=-1 mass=400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=170: vxxxxx#17 nsp=-1 mass=400 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=170: vxxxxx#17 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=170: vxxxxx#17 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=171: vxxxxx#17 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=171: vxxxxx#17 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=171: vxxxxx#17 nsp=-1 mass=-400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=171: vxxxxx#17 nsp=-1 mass=-400 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=171: vxxxxx#17 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=171: vxxxxx#17 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=172: sxxxxx#17 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=172: sxxxxx#17 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=172: sxxxxx#17 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=172: sxxxxx#17 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=172: sxxxxx#17 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=172: sxxxxx#17 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=173: sxxxxx#17 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=173: sxxxxx#17 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=173: sxxxxx#17 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=173: sxxxxx#17 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=173: sxxxxx#17 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=173: sxxxxx#17 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=174: oxxxxx#17 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=174: oxxxxx#17 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=174: oxxxxx#17 nsp=-1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=174: oxxxxx#17 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=174: oxxxxx#17 nsp=-1 mass=400 + -2.828427124746190e+01, -0.000000000000000e+00 } ); // itest=174: oxxxxx#17 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=175: oxxxxx#17 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=175: oxxxxx#17 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=175: oxxxxx#17 nsp=-1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=175: oxxxxx#17 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=175: oxxxxx#17 nsp=-1 mass=-400 + -2.828427124746190e+01, -0.000000000000000e+00 } ); // itest=175: oxxxxx#17 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=176: ixxxxx#18 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=176: ixxxxx#18 nsp=-1 mass=400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=176: ixxxxx#18 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=176: ixxxxx#18 nsp=-1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=176: ixxxxx#18 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=176: ixxxxx#18 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=177: ixxxxx#18 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=177: ixxxxx#18 nsp=-1 mass=-400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=177: ixxxxx#18 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=177: ixxxxx#18 nsp=-1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=177: ixxxxx#18 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=177: ixxxxx#18 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=178: vxxxxx#18 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=178: vxxxxx#18 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=178: vxxxxx#18 nsp=-1 mass=400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=178: vxxxxx#18 nsp=-1 mass=400 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=178: vxxxxx#18 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=178: vxxxxx#18 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=179: vxxxxx#18 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=179: vxxxxx#18 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=179: vxxxxx#18 nsp=-1 mass=-400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=179: vxxxxx#18 nsp=-1 mass=-400 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=179: vxxxxx#18 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=179: vxxxxx#18 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=180: sxxxxx#18 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=180: sxxxxx#18 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=180: sxxxxx#18 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=180: sxxxxx#18 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=180: sxxxxx#18 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=180: sxxxxx#18 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=181: sxxxxx#18 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=181: sxxxxx#18 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=181: sxxxxx#18 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=181: sxxxxx#18 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=181: sxxxxx#18 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=181: sxxxxx#18 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=182: oxxxxx#18 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=182: oxxxxx#18 nsp=-1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=182: oxxxxx#18 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=182: oxxxxx#18 nsp=-1 mass=400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=182: oxxxxx#18 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=182: oxxxxx#18 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=183: oxxxxx#18 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=183: oxxxxx#18 nsp=-1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=183: oxxxxx#18 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=183: oxxxxx#18 nsp=-1 mass=-400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=183: oxxxxx#18 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=183: oxxxxx#18 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=184: ixxxxx#19 nsp=-1 mass=400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=184: ixxxxx#19 nsp=-1 mass=400 + 1.200000000000000e+01, -1.600000000000000e+01, // itest=184: ixxxxx#19 nsp=-1 mass=400 + -2.000000000000000e+01, -0.000000000000000e+00, // itest=184: ixxxxx#19 nsp=-1 mass=400 + -5.999999999999999e+00, 7.999999999999999e+00, // itest=184: ixxxxx#19 nsp=-1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=184: ixxxxx#19 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=185: ixxxxx#19 nsp=-1 mass=-400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=185: ixxxxx#19 nsp=-1 mass=-400 + 1.200000000000000e+01, -1.600000000000000e+01, // itest=185: ixxxxx#19 nsp=-1 mass=-400 + -2.000000000000000e+01, -0.000000000000000e+00, // itest=185: ixxxxx#19 nsp=-1 mass=-400 + 5.999999999999999e+00, -7.999999999999999e+00, // itest=185: ixxxxx#19 nsp=-1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00 } ); // itest=185: ixxxxx#19 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=186: vxxxxx#19 nsp=-1 mass=400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=186: vxxxxx#19 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=186: vxxxxx#19 nsp=-1 mass=400 + 0.000000000000000e+00, 5.656854249492381e-01, // itest=186: vxxxxx#19 nsp=-1 mass=400 + 0.000000000000000e+00, -4.242640687119285e-01, // itest=186: vxxxxx#19 nsp=-1 mass=400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=186: vxxxxx#19 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=187: vxxxxx#19 nsp=-1 mass=-400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=187: vxxxxx#19 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=187: vxxxxx#19 nsp=-1 mass=-400 + -0.000000000000000e+00, 5.656854249492381e-01, // itest=187: vxxxxx#19 nsp=-1 mass=-400 + -0.000000000000000e+00, -4.242640687119285e-01, // itest=187: vxxxxx#19 nsp=-1 mass=-400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=187: vxxxxx#19 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=188: sxxxxx#19 nsp=-1 mass=400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=188: sxxxxx#19 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=188: sxxxxx#19 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=188: sxxxxx#19 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=188: sxxxxx#19 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=188: sxxxxx#19 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=189: sxxxxx#19 nsp=-1 mass=-400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=189: sxxxxx#19 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=189: sxxxxx#19 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=189: sxxxxx#19 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=189: sxxxxx#19 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=189: sxxxxx#19 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=190: oxxxxx#19 nsp=-1 mass=400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=190: oxxxxx#19 nsp=-1 mass=400 + -5.999999999999999e+00, -7.999999999999999e+00, // itest=190: oxxxxx#19 nsp=-1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=190: oxxxxx#19 nsp=-1 mass=400 + 1.200000000000000e+01, 1.600000000000000e+01, // itest=190: oxxxxx#19 nsp=-1 mass=400 + -2.000000000000000e+01, -0.000000000000000e+00 } ); // itest=190: oxxxxx#19 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=191: oxxxxx#19 nsp=-1 mass=-400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=191: oxxxxx#19 nsp=-1 mass=-400 + 5.999999999999999e+00, 7.999999999999999e+00, // itest=191: oxxxxx#19 nsp=-1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00, // itest=191: oxxxxx#19 nsp=-1 mass=-400 + 1.200000000000000e+01, 1.600000000000000e+01, // itest=191: oxxxxx#19 nsp=-1 mass=-400 + -2.000000000000000e+01, -0.000000000000000e+00 } ); // itest=191: oxxxxx#19 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=192: ixxxxx#20 nsp=-1 mass=400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=192: ixxxxx#20 nsp=-1 mass=400 + -1.600000000000000e+01, 1.200000000000000e+01, // itest=192: ixxxxx#20 nsp=-1 mass=400 + -2.000000000000000e+01, -0.000000000000000e+00, // itest=192: ixxxxx#20 nsp=-1 mass=400 + 7.999999999999999e+00, -5.999999999999999e+00, // itest=192: ixxxxx#20 nsp=-1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=192: ixxxxx#20 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=193: ixxxxx#20 nsp=-1 mass=-400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=193: ixxxxx#20 nsp=-1 mass=-400 + -1.600000000000000e+01, 1.200000000000000e+01, // itest=193: ixxxxx#20 nsp=-1 mass=-400 + -2.000000000000000e+01, -0.000000000000000e+00, // itest=193: ixxxxx#20 nsp=-1 mass=-400 + -7.999999999999999e+00, 5.999999999999999e+00, // itest=193: ixxxxx#20 nsp=-1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00 } ); // itest=193: ixxxxx#20 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=194: vxxxxx#20 nsp=-1 mass=400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=194: vxxxxx#20 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=194: vxxxxx#20 nsp=-1 mass=400 + 0.000000000000000e+00, -4.242640687119285e-01, // itest=194: vxxxxx#20 nsp=-1 mass=400 + 0.000000000000000e+00, 5.656854249492381e-01, // itest=194: vxxxxx#20 nsp=-1 mass=400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=194: vxxxxx#20 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=195: vxxxxx#20 nsp=-1 mass=-400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=195: vxxxxx#20 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=195: vxxxxx#20 nsp=-1 mass=-400 + 0.000000000000000e+00, -4.242640687119285e-01, // itest=195: vxxxxx#20 nsp=-1 mass=-400 + 0.000000000000000e+00, 5.656854249492381e-01, // itest=195: vxxxxx#20 nsp=-1 mass=-400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=195: vxxxxx#20 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=196: sxxxxx#20 nsp=-1 mass=400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=196: sxxxxx#20 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=196: sxxxxx#20 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=196: sxxxxx#20 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=196: sxxxxx#20 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=196: sxxxxx#20 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=197: sxxxxx#20 nsp=-1 mass=-400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=197: sxxxxx#20 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=197: sxxxxx#20 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=197: sxxxxx#20 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=197: sxxxxx#20 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=197: sxxxxx#20 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=198: oxxxxx#20 nsp=-1 mass=400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=198: oxxxxx#20 nsp=-1 mass=400 + 7.999999999999999e+00, 5.999999999999999e+00, // itest=198: oxxxxx#20 nsp=-1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=198: oxxxxx#20 nsp=-1 mass=400 + -1.600000000000000e+01, -1.200000000000000e+01, // itest=198: oxxxxx#20 nsp=-1 mass=400 + -2.000000000000000e+01, -0.000000000000000e+00 } ); // itest=198: oxxxxx#20 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=199: oxxxxx#20 nsp=-1 mass=-400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=199: oxxxxx#20 nsp=-1 mass=-400 + -7.999999999999999e+00, -5.999999999999999e+00, // itest=199: oxxxxx#20 nsp=-1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00, // itest=199: oxxxxx#20 nsp=-1 mass=-400 + -1.600000000000000e+01, -1.200000000000000e+01, // itest=199: oxxxxx#20 nsp=-1 mass=-400 + -2.000000000000000e+01, -0.000000000000000e+00 } ); // itest=199: oxxxxx#20 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=200: ixxxxx#21 nsp=-1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=200: ixxxxx#21 nsp=-1 mass=400 + 9.863939238321439e+00, -1.052153518754287e+01, // itest=200: ixxxxx#21 nsp=-1 mass=400 + -2.433105012119288e+01, -0.000000000000000e+00, // itest=200: ixxxxx#21 nsp=-1 mass=400 + -4.931969619160719e+00, 5.260767593771432e+00, // itest=200: ixxxxx#21 nsp=-1 mass=400 + 1.216552506059644e+01, 0.000000000000000e+00 } ); // itest=200: ixxxxx#21 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=201: ixxxxx#21 nsp=-1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=201: ixxxxx#21 nsp=-1 mass=-400 + 9.863939238321439e+00, -1.052153518754287e+01, // itest=201: ixxxxx#21 nsp=-1 mass=-400 + -2.433105012119288e+01, -0.000000000000000e+00, // itest=201: ixxxxx#21 nsp=-1 mass=-400 + 4.931969619160719e+00, -5.260767593771432e+00, // itest=201: ixxxxx#21 nsp=-1 mass=-400 + -1.216552506059644e+01, -0.000000000000000e+00 } ); // itest=201: ixxxxx#21 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=202: vxxxxx#21 nsp=-1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=202: vxxxxx#21 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=202: vxxxxx#21 nsp=-1 mass=400 + -2.321373168788980e-01, 5.158607041753289e-01, // itest=202: vxxxxx#21 nsp=-1 mass=400 + -2.476131380041579e-01, -4.836194101643708e-01, // itest=202: vxxxxx#21 nsp=-1 mass=400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=202: vxxxxx#21 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=203: vxxxxx#21 nsp=-1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=203: vxxxxx#21 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=203: vxxxxx#21 nsp=-1 mass=-400 + -2.321373168788980e-01, 5.158607041753289e-01, // itest=203: vxxxxx#21 nsp=-1 mass=-400 + -2.476131380041579e-01, -4.836194101643708e-01, // itest=203: vxxxxx#21 nsp=-1 mass=-400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=203: vxxxxx#21 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=204: sxxxxx#21 nsp=-1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=204: sxxxxx#21 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=204: sxxxxx#21 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=204: sxxxxx#21 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=204: sxxxxx#21 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=204: sxxxxx#21 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=205: sxxxxx#21 nsp=-1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=205: sxxxxx#21 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=205: sxxxxx#21 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=205: sxxxxx#21 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=205: sxxxxx#21 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=205: sxxxxx#21 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=206: oxxxxx#21 nsp=-1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=206: oxxxxx#21 nsp=-1 mass=400 + -4.931969619160719e+00, -5.260767593771432e+00, // itest=206: oxxxxx#21 nsp=-1 mass=400 + 1.216552506059644e+01, 0.000000000000000e+00, // itest=206: oxxxxx#21 nsp=-1 mass=400 + 9.863939238321439e+00, 1.052153518754287e+01, // itest=206: oxxxxx#21 nsp=-1 mass=400 + -2.433105012119288e+01, -0.000000000000000e+00 } ); // itest=206: oxxxxx#21 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=207: oxxxxx#21 nsp=-1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=207: oxxxxx#21 nsp=-1 mass=-400 + 4.931969619160719e+00, 5.260767593771432e+00, // itest=207: oxxxxx#21 nsp=-1 mass=-400 + -1.216552506059644e+01, -0.000000000000000e+00, // itest=207: oxxxxx#21 nsp=-1 mass=-400 + 9.863939238321439e+00, 1.052153518754287e+01, // itest=207: oxxxxx#21 nsp=-1 mass=-400 + -2.433105012119288e+01, -0.000000000000000e+00 } ); // itest=207: oxxxxx#21 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=208: ixxxxx#22 nsp=-1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=208: ixxxxx#22 nsp=-1 mass=400 + 1.664100588675688e+01, -1.775040627920733e+01, // itest=208: ixxxxx#22 nsp=-1 mass=400 + -1.442220510185596e+01, -0.000000000000000e+00, // itest=208: ixxxxx#22 nsp=-1 mass=400 + -8.320502943378436e+00, 8.875203139603666e+00, // itest=208: ixxxxx#22 nsp=-1 mass=400 + 7.211102550927978e+00, 0.000000000000000e+00 } ); // itest=208: ixxxxx#22 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=209: ixxxxx#22 nsp=-1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=209: ixxxxx#22 nsp=-1 mass=-400 + 1.664100588675688e+01, -1.775040627920733e+01, // itest=209: ixxxxx#22 nsp=-1 mass=-400 + -1.442220510185596e+01, -0.000000000000000e+00, // itest=209: ixxxxx#22 nsp=-1 mass=-400 + 8.320502943378436e+00, -8.875203139603666e+00, // itest=209: ixxxxx#22 nsp=-1 mass=-400 + -7.211102550927978e+00, -0.000000000000000e+00 } ); // itest=209: ixxxxx#22 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=210: vxxxxx#22 nsp=-1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=210: vxxxxx#22 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=210: vxxxxx#22 nsp=-1 mass=400 + 2.321373168788980e-01, 5.158607041753289e-01, // itest=210: vxxxxx#22 nsp=-1 mass=400 + 2.476131380041579e-01, -4.836194101643708e-01, // itest=210: vxxxxx#22 nsp=-1 mass=400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=210: vxxxxx#22 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=211: vxxxxx#22 nsp=-1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=211: vxxxxx#22 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=211: vxxxxx#22 nsp=-1 mass=-400 + 2.321373168788980e-01, 5.158607041753289e-01, // itest=211: vxxxxx#22 nsp=-1 mass=-400 + 2.476131380041579e-01, -4.836194101643708e-01, // itest=211: vxxxxx#22 nsp=-1 mass=-400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=211: vxxxxx#22 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=212: sxxxxx#22 nsp=-1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=212: sxxxxx#22 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=212: sxxxxx#22 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=212: sxxxxx#22 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=212: sxxxxx#22 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=212: sxxxxx#22 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=213: sxxxxx#22 nsp=-1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=213: sxxxxx#22 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=213: sxxxxx#22 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=213: sxxxxx#22 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=213: sxxxxx#22 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=213: sxxxxx#22 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=214: oxxxxx#22 nsp=-1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=214: oxxxxx#22 nsp=-1 mass=400 + -8.320502943378436e+00, -8.875203139603666e+00, // itest=214: oxxxxx#22 nsp=-1 mass=400 + 7.211102550927978e+00, 0.000000000000000e+00, // itest=214: oxxxxx#22 nsp=-1 mass=400 + 1.664100588675688e+01, 1.775040627920733e+01, // itest=214: oxxxxx#22 nsp=-1 mass=400 + -1.442220510185596e+01, -0.000000000000000e+00 } ); // itest=214: oxxxxx#22 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=215: oxxxxx#22 nsp=-1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=215: oxxxxx#22 nsp=-1 mass=-400 + 8.320502943378436e+00, 8.875203139603666e+00, // itest=215: oxxxxx#22 nsp=-1 mass=-400 + -7.211102550927978e+00, -0.000000000000000e+00, // itest=215: oxxxxx#22 nsp=-1 mass=-400 + 1.664100588675688e+01, 1.775040627920733e+01, // itest=215: oxxxxx#22 nsp=-1 mass=-400 + -1.442220510185596e+01, -0.000000000000000e+00 } ); // itest=215: oxxxxx#22 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=216: ixxxxx#23 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=216: ixxxxx#23 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=216: ixxxxx#23 nsp=-1 mass=500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=216: ixxxxx#23 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=216: ixxxxx#23 nsp=-1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=216: ixxxxx#23 nsp=-1 mass=500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=217: ixxxxx#23 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=217: ixxxxx#23 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=217: ixxxxx#23 nsp=-1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=217: ixxxxx#23 nsp=-1 mass=-500 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=217: ixxxxx#23 nsp=-1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=217: ixxxxx#23 nsp=-1 mass=-500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=218: vxxxxx#23 nsp=-1 mass=500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=218: vxxxxx#23 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=218: vxxxxx#23 nsp=-1 mass=500 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=218: vxxxxx#23 nsp=-1 mass=500 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=218: vxxxxx#23 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=218: vxxxxx#23 nsp=-1 mass=500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=219: vxxxxx#23 nsp=-1 mass=-500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=219: vxxxxx#23 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=219: vxxxxx#23 nsp=-1 mass=-500 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=219: vxxxxx#23 nsp=-1 mass=-500 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=219: vxxxxx#23 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=219: vxxxxx#23 nsp=-1 mass=-500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=220: sxxxxx#23 nsp=-1 mass=500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=220: sxxxxx#23 nsp=-1 mass=500 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=220: sxxxxx#23 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=220: sxxxxx#23 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=220: sxxxxx#23 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=220: sxxxxx#23 nsp=-1 mass=500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=221: sxxxxx#23 nsp=-1 mass=-500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=221: sxxxxx#23 nsp=-1 mass=-500 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=221: sxxxxx#23 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=221: sxxxxx#23 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=221: sxxxxx#23 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=221: sxxxxx#23 nsp=-1 mass=-500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=222: oxxxxx#23 nsp=-1 mass=500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=222: oxxxxx#23 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=222: oxxxxx#23 nsp=-1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=222: oxxxxx#23 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=222: oxxxxx#23 nsp=-1 mass=500 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=222: oxxxxx#23 nsp=-1 mass=500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=223: oxxxxx#23 nsp=-1 mass=-500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=223: oxxxxx#23 nsp=-1 mass=-500 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=223: oxxxxx#23 nsp=-1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=223: oxxxxx#23 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=223: oxxxxx#23 nsp=-1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=223: oxxxxx#23 nsp=-1 mass=-500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=224: ixxxxx#24 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=224: ixxxxx#24 nsp=-1 mass=400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=224: ixxxxx#24 nsp=-1 mass=400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=224: ixxxxx#24 nsp=-1 mass=400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=224: ixxxxx#24 nsp=-1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00 } ); // itest=224: ixxxxx#24 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=225: ixxxxx#24 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=225: ixxxxx#24 nsp=-1 mass=-400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=225: ixxxxx#24 nsp=-1 mass=-400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=225: ixxxxx#24 nsp=-1 mass=-400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=225: ixxxxx#24 nsp=-1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00 } ); // itest=225: ixxxxx#24 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=226: vxxxxx#24 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=226: vxxxxx#24 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=226: vxxxxx#24 nsp=-1 mass=400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=226: vxxxxx#24 nsp=-1 mass=400 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=226: vxxxxx#24 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=226: vxxxxx#24 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=227: vxxxxx#24 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=227: vxxxxx#24 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=227: vxxxxx#24 nsp=-1 mass=-400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=227: vxxxxx#24 nsp=-1 mass=-400 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=227: vxxxxx#24 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=227: vxxxxx#24 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=228: sxxxxx#24 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=228: sxxxxx#24 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=228: sxxxxx#24 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=228: sxxxxx#24 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=228: sxxxxx#24 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=228: sxxxxx#24 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=229: sxxxxx#24 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=229: sxxxxx#24 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=229: sxxxxx#24 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=229: sxxxxx#24 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=229: sxxxxx#24 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=229: sxxxxx#24 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=230: oxxxxx#24 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=230: oxxxxx#24 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=230: oxxxxx#24 nsp=-1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=230: oxxxxx#24 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=230: oxxxxx#24 nsp=-1 mass=400 + -2.828427124746190e+01, -0.000000000000000e+00 } ); // itest=230: oxxxxx#24 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=231: oxxxxx#24 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=231: oxxxxx#24 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=231: oxxxxx#24 nsp=-1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=231: oxxxxx#24 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=231: oxxxxx#24 nsp=-1 mass=-400 + -2.828427124746190e+01, -0.000000000000000e+00 } ); // itest=231: oxxxxx#24 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=232: ixxxxx#25 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=232: ixxxxx#25 nsp=-1 mass=400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=232: ixxxxx#25 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=232: ixxxxx#25 nsp=-1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=232: ixxxxx#25 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=232: ixxxxx#25 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=233: ixxxxx#25 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=233: ixxxxx#25 nsp=-1 mass=-400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=233: ixxxxx#25 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=233: ixxxxx#25 nsp=-1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=233: ixxxxx#25 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=233: ixxxxx#25 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=234: vxxxxx#25 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=234: vxxxxx#25 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=234: vxxxxx#25 nsp=-1 mass=400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=234: vxxxxx#25 nsp=-1 mass=400 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=234: vxxxxx#25 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=234: vxxxxx#25 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=235: vxxxxx#25 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=235: vxxxxx#25 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=235: vxxxxx#25 nsp=-1 mass=-400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=235: vxxxxx#25 nsp=-1 mass=-400 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=235: vxxxxx#25 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=235: vxxxxx#25 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=236: sxxxxx#25 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=236: sxxxxx#25 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=236: sxxxxx#25 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=236: sxxxxx#25 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=236: sxxxxx#25 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=236: sxxxxx#25 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=237: sxxxxx#25 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=237: sxxxxx#25 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=237: sxxxxx#25 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=237: sxxxxx#25 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=237: sxxxxx#25 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=237: sxxxxx#25 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=238: oxxxxx#25 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=238: oxxxxx#25 nsp=-1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=238: oxxxxx#25 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=238: oxxxxx#25 nsp=-1 mass=400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=238: oxxxxx#25 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=238: oxxxxx#25 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=239: oxxxxx#25 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=239: oxxxxx#25 nsp=-1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=239: oxxxxx#25 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=239: oxxxxx#25 nsp=-1 mass=-400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=239: oxxxxx#25 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=239: oxxxxx#25 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=240: ixxxxx#26 nsp=-1 mass=400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=240: ixxxxx#26 nsp=-1 mass=400 + 1.200000000000000e+01, -1.600000000000000e+01, // itest=240: ixxxxx#26 nsp=-1 mass=400 + -2.000000000000000e+01, -0.000000000000000e+00, // itest=240: ixxxxx#26 nsp=-1 mass=400 + -5.999999999999999e+00, 7.999999999999999e+00, // itest=240: ixxxxx#26 nsp=-1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=240: ixxxxx#26 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=241: ixxxxx#26 nsp=-1 mass=-400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=241: ixxxxx#26 nsp=-1 mass=-400 + 1.200000000000000e+01, -1.600000000000000e+01, // itest=241: ixxxxx#26 nsp=-1 mass=-400 + -2.000000000000000e+01, -0.000000000000000e+00, // itest=241: ixxxxx#26 nsp=-1 mass=-400 + 5.999999999999999e+00, -7.999999999999999e+00, // itest=241: ixxxxx#26 nsp=-1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00 } ); // itest=241: ixxxxx#26 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=242: vxxxxx#26 nsp=-1 mass=400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=242: vxxxxx#26 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=242: vxxxxx#26 nsp=-1 mass=400 + 0.000000000000000e+00, 5.656854249492381e-01, // itest=242: vxxxxx#26 nsp=-1 mass=400 + 0.000000000000000e+00, -4.242640687119285e-01, // itest=242: vxxxxx#26 nsp=-1 mass=400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=242: vxxxxx#26 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=243: vxxxxx#26 nsp=-1 mass=-400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=243: vxxxxx#26 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=243: vxxxxx#26 nsp=-1 mass=-400 + -0.000000000000000e+00, 5.656854249492381e-01, // itest=243: vxxxxx#26 nsp=-1 mass=-400 + -0.000000000000000e+00, -4.242640687119285e-01, // itest=243: vxxxxx#26 nsp=-1 mass=-400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=243: vxxxxx#26 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=244: sxxxxx#26 nsp=-1 mass=400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=244: sxxxxx#26 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=244: sxxxxx#26 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=244: sxxxxx#26 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=244: sxxxxx#26 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=244: sxxxxx#26 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=245: sxxxxx#26 nsp=-1 mass=-400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=245: sxxxxx#26 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=245: sxxxxx#26 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=245: sxxxxx#26 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=245: sxxxxx#26 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=245: sxxxxx#26 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=246: oxxxxx#26 nsp=-1 mass=400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=246: oxxxxx#26 nsp=-1 mass=400 + -5.999999999999999e+00, -7.999999999999999e+00, // itest=246: oxxxxx#26 nsp=-1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=246: oxxxxx#26 nsp=-1 mass=400 + 1.200000000000000e+01, 1.600000000000000e+01, // itest=246: oxxxxx#26 nsp=-1 mass=400 + -2.000000000000000e+01, -0.000000000000000e+00 } ); // itest=246: oxxxxx#26 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=247: oxxxxx#26 nsp=-1 mass=-400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=247: oxxxxx#26 nsp=-1 mass=-400 + 5.999999999999999e+00, 7.999999999999999e+00, // itest=247: oxxxxx#26 nsp=-1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00, // itest=247: oxxxxx#26 nsp=-1 mass=-400 + 1.200000000000000e+01, 1.600000000000000e+01, // itest=247: oxxxxx#26 nsp=-1 mass=-400 + -2.000000000000000e+01, -0.000000000000000e+00 } ); // itest=247: oxxxxx#26 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=248: ixxxxx#27 nsp=-1 mass=400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=248: ixxxxx#27 nsp=-1 mass=400 + -1.600000000000000e+01, 1.200000000000000e+01, // itest=248: ixxxxx#27 nsp=-1 mass=400 + -2.000000000000000e+01, -0.000000000000000e+00, // itest=248: ixxxxx#27 nsp=-1 mass=400 + 7.999999999999999e+00, -5.999999999999999e+00, // itest=248: ixxxxx#27 nsp=-1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=248: ixxxxx#27 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=249: ixxxxx#27 nsp=-1 mass=-400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=249: ixxxxx#27 nsp=-1 mass=-400 + -1.600000000000000e+01, 1.200000000000000e+01, // itest=249: ixxxxx#27 nsp=-1 mass=-400 + -2.000000000000000e+01, -0.000000000000000e+00, // itest=249: ixxxxx#27 nsp=-1 mass=-400 + -7.999999999999999e+00, 5.999999999999999e+00, // itest=249: ixxxxx#27 nsp=-1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00 } ); // itest=249: ixxxxx#27 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=250: vxxxxx#27 nsp=-1 mass=400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=250: vxxxxx#27 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=250: vxxxxx#27 nsp=-1 mass=400 + 0.000000000000000e+00, -4.242640687119285e-01, // itest=250: vxxxxx#27 nsp=-1 mass=400 + 0.000000000000000e+00, 5.656854249492381e-01, // itest=250: vxxxxx#27 nsp=-1 mass=400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=250: vxxxxx#27 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=251: vxxxxx#27 nsp=-1 mass=-400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=251: vxxxxx#27 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=251: vxxxxx#27 nsp=-1 mass=-400 + 0.000000000000000e+00, -4.242640687119285e-01, // itest=251: vxxxxx#27 nsp=-1 mass=-400 + 0.000000000000000e+00, 5.656854249492381e-01, // itest=251: vxxxxx#27 nsp=-1 mass=-400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=251: vxxxxx#27 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=252: sxxxxx#27 nsp=-1 mass=400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=252: sxxxxx#27 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=252: sxxxxx#27 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=252: sxxxxx#27 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=252: sxxxxx#27 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=252: sxxxxx#27 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=253: sxxxxx#27 nsp=-1 mass=-400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=253: sxxxxx#27 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=253: sxxxxx#27 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=253: sxxxxx#27 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=253: sxxxxx#27 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=253: sxxxxx#27 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=254: oxxxxx#27 nsp=-1 mass=400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=254: oxxxxx#27 nsp=-1 mass=400 + 7.999999999999999e+00, 5.999999999999999e+00, // itest=254: oxxxxx#27 nsp=-1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=254: oxxxxx#27 nsp=-1 mass=400 + -1.600000000000000e+01, -1.200000000000000e+01, // itest=254: oxxxxx#27 nsp=-1 mass=400 + -2.000000000000000e+01, -0.000000000000000e+00 } ); // itest=254: oxxxxx#27 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=255: oxxxxx#27 nsp=-1 mass=-400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=255: oxxxxx#27 nsp=-1 mass=-400 + -7.999999999999999e+00, -5.999999999999999e+00, // itest=255: oxxxxx#27 nsp=-1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00, // itest=255: oxxxxx#27 nsp=-1 mass=-400 + -1.600000000000000e+01, -1.200000000000000e+01, // itest=255: oxxxxx#27 nsp=-1 mass=-400 + -2.000000000000000e+01, -0.000000000000000e+00 } ); // itest=255: oxxxxx#27 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=256: ixxxxx#28 nsp=-1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=256: ixxxxx#28 nsp=-1 mass=400 + 9.863939238321439e+00, -1.052153518754287e+01, // itest=256: ixxxxx#28 nsp=-1 mass=400 + -2.433105012119288e+01, -0.000000000000000e+00, // itest=256: ixxxxx#28 nsp=-1 mass=400 + -4.931969619160719e+00, 5.260767593771432e+00, // itest=256: ixxxxx#28 nsp=-1 mass=400 + 1.216552506059644e+01, 0.000000000000000e+00 } ); // itest=256: ixxxxx#28 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=257: ixxxxx#28 nsp=-1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=257: ixxxxx#28 nsp=-1 mass=-400 + 9.863939238321439e+00, -1.052153518754287e+01, // itest=257: ixxxxx#28 nsp=-1 mass=-400 + -2.433105012119288e+01, -0.000000000000000e+00, // itest=257: ixxxxx#28 nsp=-1 mass=-400 + 4.931969619160719e+00, -5.260767593771432e+00, // itest=257: ixxxxx#28 nsp=-1 mass=-400 + -1.216552506059644e+01, -0.000000000000000e+00 } ); // itest=257: ixxxxx#28 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=258: vxxxxx#28 nsp=-1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=258: vxxxxx#28 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=258: vxxxxx#28 nsp=-1 mass=400 + -2.321373168788980e-01, 5.158607041753289e-01, // itest=258: vxxxxx#28 nsp=-1 mass=400 + -2.476131380041579e-01, -4.836194101643708e-01, // itest=258: vxxxxx#28 nsp=-1 mass=400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=258: vxxxxx#28 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=259: vxxxxx#28 nsp=-1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=259: vxxxxx#28 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=259: vxxxxx#28 nsp=-1 mass=-400 + -2.321373168788980e-01, 5.158607041753289e-01, // itest=259: vxxxxx#28 nsp=-1 mass=-400 + -2.476131380041579e-01, -4.836194101643708e-01, // itest=259: vxxxxx#28 nsp=-1 mass=-400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=259: vxxxxx#28 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=260: sxxxxx#28 nsp=-1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=260: sxxxxx#28 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=260: sxxxxx#28 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=260: sxxxxx#28 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=260: sxxxxx#28 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=260: sxxxxx#28 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=261: sxxxxx#28 nsp=-1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=261: sxxxxx#28 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=261: sxxxxx#28 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=261: sxxxxx#28 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=261: sxxxxx#28 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=261: sxxxxx#28 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=262: oxxxxx#28 nsp=-1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=262: oxxxxx#28 nsp=-1 mass=400 + -4.931969619160719e+00, -5.260767593771432e+00, // itest=262: oxxxxx#28 nsp=-1 mass=400 + 1.216552506059644e+01, 0.000000000000000e+00, // itest=262: oxxxxx#28 nsp=-1 mass=400 + 9.863939238321439e+00, 1.052153518754287e+01, // itest=262: oxxxxx#28 nsp=-1 mass=400 + -2.433105012119288e+01, -0.000000000000000e+00 } ); // itest=262: oxxxxx#28 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=263: oxxxxx#28 nsp=-1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=263: oxxxxx#28 nsp=-1 mass=-400 + 4.931969619160719e+00, 5.260767593771432e+00, // itest=263: oxxxxx#28 nsp=-1 mass=-400 + -1.216552506059644e+01, -0.000000000000000e+00, // itest=263: oxxxxx#28 nsp=-1 mass=-400 + 9.863939238321439e+00, 1.052153518754287e+01, // itest=263: oxxxxx#28 nsp=-1 mass=-400 + -2.433105012119288e+01, -0.000000000000000e+00 } ); // itest=263: oxxxxx#28 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=264: ixxxxx#29 nsp=-1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=264: ixxxxx#29 nsp=-1 mass=400 + 1.664100588675688e+01, -1.775040627920733e+01, // itest=264: ixxxxx#29 nsp=-1 mass=400 + -1.442220510185596e+01, -0.000000000000000e+00, // itest=264: ixxxxx#29 nsp=-1 mass=400 + -8.320502943378436e+00, 8.875203139603666e+00, // itest=264: ixxxxx#29 nsp=-1 mass=400 + 7.211102550927978e+00, 0.000000000000000e+00 } ); // itest=264: ixxxxx#29 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=265: ixxxxx#29 nsp=-1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=265: ixxxxx#29 nsp=-1 mass=-400 + 1.664100588675688e+01, -1.775040627920733e+01, // itest=265: ixxxxx#29 nsp=-1 mass=-400 + -1.442220510185596e+01, -0.000000000000000e+00, // itest=265: ixxxxx#29 nsp=-1 mass=-400 + 8.320502943378436e+00, -8.875203139603666e+00, // itest=265: ixxxxx#29 nsp=-1 mass=-400 + -7.211102550927978e+00, -0.000000000000000e+00 } ); // itest=265: ixxxxx#29 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=266: vxxxxx#29 nsp=-1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=266: vxxxxx#29 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=266: vxxxxx#29 nsp=-1 mass=400 + 2.321373168788980e-01, 5.158607041753289e-01, // itest=266: vxxxxx#29 nsp=-1 mass=400 + 2.476131380041579e-01, -4.836194101643708e-01, // itest=266: vxxxxx#29 nsp=-1 mass=400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=266: vxxxxx#29 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=267: vxxxxx#29 nsp=-1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=267: vxxxxx#29 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=267: vxxxxx#29 nsp=-1 mass=-400 + 2.321373168788980e-01, 5.158607041753289e-01, // itest=267: vxxxxx#29 nsp=-1 mass=-400 + 2.476131380041579e-01, -4.836194101643708e-01, // itest=267: vxxxxx#29 nsp=-1 mass=-400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=267: vxxxxx#29 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=268: sxxxxx#29 nsp=-1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=268: sxxxxx#29 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=268: sxxxxx#29 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=268: sxxxxx#29 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=268: sxxxxx#29 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=268: sxxxxx#29 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=269: sxxxxx#29 nsp=-1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=269: sxxxxx#29 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=269: sxxxxx#29 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=269: sxxxxx#29 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=269: sxxxxx#29 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=269: sxxxxx#29 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=270: oxxxxx#29 nsp=-1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=270: oxxxxx#29 nsp=-1 mass=400 + -8.320502943378436e+00, -8.875203139603666e+00, // itest=270: oxxxxx#29 nsp=-1 mass=400 + 7.211102550927978e+00, 0.000000000000000e+00, // itest=270: oxxxxx#29 nsp=-1 mass=400 + 1.664100588675688e+01, 1.775040627920733e+01, // itest=270: oxxxxx#29 nsp=-1 mass=400 + -1.442220510185596e+01, -0.000000000000000e+00 } ); // itest=270: oxxxxx#29 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=271: oxxxxx#29 nsp=-1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=271: oxxxxx#29 nsp=-1 mass=-400 + 8.320502943378436e+00, 8.875203139603666e+00, // itest=271: oxxxxx#29 nsp=-1 mass=-400 + -7.211102550927978e+00, -0.000000000000000e+00, // itest=271: oxxxxx#29 nsp=-1 mass=-400 + 1.664100588675688e+01, 1.775040627920733e+01, // itest=271: oxxxxx#29 nsp=-1 mass=-400 + -1.442220510185596e+01, -0.000000000000000e+00 } ); // itest=271: oxxxxx#29 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=272: ixxxxx#30 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=272: ixxxxx#30 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=272: ixxxxx#30 nsp=-1 mass=500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=272: ixxxxx#30 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=272: ixxxxx#30 nsp=-1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=272: ixxxxx#30 nsp=-1 mass=500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=273: ixxxxx#30 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=273: ixxxxx#30 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=273: ixxxxx#30 nsp=-1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=273: ixxxxx#30 nsp=-1 mass=-500 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=273: ixxxxx#30 nsp=-1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=273: ixxxxx#30 nsp=-1 mass=-500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=274: vxxxxx#30 nsp=-1 mass=500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=274: vxxxxx#30 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=274: vxxxxx#30 nsp=-1 mass=500 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=274: vxxxxx#30 nsp=-1 mass=500 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=274: vxxxxx#30 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=274: vxxxxx#30 nsp=-1 mass=500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=275: vxxxxx#30 nsp=-1 mass=-500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=275: vxxxxx#30 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=275: vxxxxx#30 nsp=-1 mass=-500 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=275: vxxxxx#30 nsp=-1 mass=-500 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=275: vxxxxx#30 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=275: vxxxxx#30 nsp=-1 mass=-500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=276: sxxxxx#30 nsp=-1 mass=500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=276: sxxxxx#30 nsp=-1 mass=500 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=276: sxxxxx#30 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=276: sxxxxx#30 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=276: sxxxxx#30 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=276: sxxxxx#30 nsp=-1 mass=500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=277: sxxxxx#30 nsp=-1 mass=-500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=277: sxxxxx#30 nsp=-1 mass=-500 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=277: sxxxxx#30 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=277: sxxxxx#30 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=277: sxxxxx#30 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=277: sxxxxx#30 nsp=-1 mass=-500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=278: oxxxxx#30 nsp=-1 mass=500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=278: oxxxxx#30 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=278: oxxxxx#30 nsp=-1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=278: oxxxxx#30 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=278: oxxxxx#30 nsp=-1 mass=500 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=278: oxxxxx#30 nsp=-1 mass=500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=279: oxxxxx#30 nsp=-1 mass=-500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=279: oxxxxx#30 nsp=-1 mass=-500 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=279: oxxxxx#30 nsp=-1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=279: oxxxxx#30 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=279: oxxxxx#30 nsp=-1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=279: oxxxxx#30 nsp=-1 mass=-500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=280: ixxxxx#31 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=280: ixxxxx#31 nsp=-1 mass=400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=280: ixxxxx#31 nsp=-1 mass=400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=280: ixxxxx#31 nsp=-1 mass=400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=280: ixxxxx#31 nsp=-1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00 } ); // itest=280: ixxxxx#31 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=281: ixxxxx#31 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=281: ixxxxx#31 nsp=-1 mass=-400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=281: ixxxxx#31 nsp=-1 mass=-400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=281: ixxxxx#31 nsp=-1 mass=-400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=281: ixxxxx#31 nsp=-1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00 } ); // itest=281: ixxxxx#31 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=282: vxxxxx#31 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=282: vxxxxx#31 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=282: vxxxxx#31 nsp=-1 mass=400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=282: vxxxxx#31 nsp=-1 mass=400 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=282: vxxxxx#31 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=282: vxxxxx#31 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=283: vxxxxx#31 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=283: vxxxxx#31 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=283: vxxxxx#31 nsp=-1 mass=-400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=283: vxxxxx#31 nsp=-1 mass=-400 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=283: vxxxxx#31 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=283: vxxxxx#31 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=284: sxxxxx#31 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=284: sxxxxx#31 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=284: sxxxxx#31 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=284: sxxxxx#31 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=284: sxxxxx#31 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=284: sxxxxx#31 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=285: sxxxxx#31 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=285: sxxxxx#31 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=285: sxxxxx#31 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=285: sxxxxx#31 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=285: sxxxxx#31 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=285: sxxxxx#31 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=286: oxxxxx#31 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=286: oxxxxx#31 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=286: oxxxxx#31 nsp=-1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=286: oxxxxx#31 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=286: oxxxxx#31 nsp=-1 mass=400 + -2.828427124746190e+01, -0.000000000000000e+00 } ); // itest=286: oxxxxx#31 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=287: oxxxxx#31 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=287: oxxxxx#31 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=287: oxxxxx#31 nsp=-1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=287: oxxxxx#31 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=287: oxxxxx#31 nsp=-1 mass=-400 + -2.828427124746190e+01, -0.000000000000000e+00 } ); // itest=287: oxxxxx#31 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=288: ixxxxx#0 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=288: ixxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=288: ixxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=288: ixxxxx#0 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=288: ixxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=288: ixxxxx#0 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=289: ixxxxx#0 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=289: ixxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=289: ixxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=289: ixxxxx#0 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=289: ixxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=289: ixxxxx#0 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=290: ipzxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=290: ipzxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=290: ipzxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=290: ipzxxx#0 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=290: ipzxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=290: ipzxxx#0 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=291: vxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=291: vxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=291: vxxxxx#0 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=291: vxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=291: vxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=291: vxxxxx#0 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=292: vxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=292: vxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=292: vxxxxx#0 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=292: vxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=292: vxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=292: vxxxxx#0 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=293: sxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=293: sxxxxx#0 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=293: sxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=293: sxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=293: sxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=293: sxxxxx#0 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=294: sxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=294: sxxxxx#0 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=294: sxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=294: sxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=294: sxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=294: sxxxxx#0 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=295: oxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=295: oxxxxx#0 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=295: oxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=295: oxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=295: oxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=295: oxxxxx#0 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=296: oxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=296: oxxxxx#0 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=296: oxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=296: oxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=296: oxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=296: oxxxxx#0 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=297: opzxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=297: opzxxx#0 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=297: opzxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=297: opzxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=297: opzxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=297: opzxxx#0 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=298: ixxxxx#1 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=298: ixxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=298: ixxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=298: ixxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=298: ixxxxx#1 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=298: ixxxxx#1 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=299: ixxxxx#1 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=299: ixxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=299: ixxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=299: ixxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=299: ixxxxx#1 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=299: ixxxxx#1 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=300: imzxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=300: imzxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=300: imzxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=300: imzxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=300: imzxxx#1 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=300: imzxxx#1 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=301: vxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=301: vxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=301: vxxxxx#1 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=301: vxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=301: vxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=301: vxxxxx#1 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=302: vxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=302: vxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=302: vxxxxx#1 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=302: vxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=302: vxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=302: vxxxxx#1 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=303: sxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=303: sxxxxx#1 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=303: sxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=303: sxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=303: sxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=303: sxxxxx#1 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=304: sxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=304: sxxxxx#1 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=304: sxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=304: sxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=304: sxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=304: sxxxxx#1 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=305: oxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=305: oxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=305: oxxxxx#1 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=305: oxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=305: oxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=305: oxxxxx#1 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=306: oxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=306: oxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=306: oxxxxx#1 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=306: oxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=306: oxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=306: oxxxxx#1 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=307: omzxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=307: omzxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=307: omzxxx#1 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=307: omzxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=307: omzxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=307: omzxxx#1 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=308: ixxxxx#2 nsp=1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=308: ixxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=308: ixxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=308: ixxxxx#2 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=308: ixxxxx#2 nsp=1 mass=0 + 1.341640786499874e+01, 1.788854381999831e+01 } ); // itest=308: ixxxxx#2 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=309: ixxxxx#2 nsp=1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=309: ixxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=309: ixxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=309: ixxxxx#2 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=309: ixxxxx#2 nsp=1 mass=0 + 1.341640786499874e+01, 1.788854381999831e+01 } ); // itest=309: ixxxxx#2 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=310: ixzxxx#2 nsp=1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=310: ixzxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=310: ixzxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=310: ixzxxx#2 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=310: ixzxxx#2 nsp=1 mass=0 + 1.341640786499874e+01, 1.788854381999832e+01 } ); // itest=310: ixzxxx#2 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=311: vxxxxx#2 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=311: vxxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=311: vxxxxx#2 nsp=1 mass=0 + -0.000000000000000e+00, -5.656854249492381e-01, // itest=311: vxxxxx#2 nsp=1 mass=0 + -0.000000000000000e+00, 4.242640687119285e-01, // itest=311: vxxxxx#2 nsp=1 mass=0 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=311: vxxxxx#2 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=312: vxxxxx#2 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=312: vxxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=312: vxxxxx#2 nsp=1 mass=0 + -0.000000000000000e+00, -5.656854249492381e-01, // itest=312: vxxxxx#2 nsp=1 mass=0 + -0.000000000000000e+00, 4.242640687119285e-01, // itest=312: vxxxxx#2 nsp=1 mass=0 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=312: vxxxxx#2 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=313: sxxxxx#2 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=313: sxxxxx#2 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=313: sxxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=313: sxxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=313: sxxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=313: sxxxxx#2 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=314: sxxxxx#2 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=314: sxxxxx#2 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=314: sxxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=314: sxxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=314: sxxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=314: sxxxxx#2 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=315: oxxxxx#2 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=315: oxxxxx#2 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=315: oxxxxx#2 nsp=1 mass=0 + 1.341640786499874e+01, -1.788854381999831e+01, // itest=315: oxxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=315: oxxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=315: oxxxxx#2 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=316: oxxxxx#2 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=316: oxxxxx#2 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=316: oxxxxx#2 nsp=1 mass=0 + 1.341640786499874e+01, -1.788854381999831e+01, // itest=316: oxxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=316: oxxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=316: oxxxxx#2 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=317: oxzxxx#2 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=317: oxzxxx#2 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=317: oxzxxx#2 nsp=1 mass=0 + 1.341640786499874e+01, -1.788854381999832e+01, // itest=317: oxzxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=317: oxzxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=317: oxzxxx#2 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=318: ixxxxx#3 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=318: ixxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=318: ixxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=318: ixxxxx#3 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=318: ixxxxx#3 nsp=1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=318: ixxxxx#3 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=319: ixxxxx#3 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=319: ixxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=319: ixxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=319: ixxxxx#3 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=319: ixxxxx#3 nsp=1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=319: ixxxxx#3 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=320: ixzxxx#3 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=320: ixzxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=320: ixzxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=320: ixzxxx#3 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=320: ixzxxx#3 nsp=1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=320: ixzxxx#3 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=321: vxxxxx#3 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=321: vxxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=321: vxxxxx#3 nsp=1 mass=0 + -3.394112549695428e-01, -5.656854249492381e-01, // itest=321: vxxxxx#3 nsp=1 mass=0 + -4.525483399593904e-01, 4.242640687119285e-01, // itest=321: vxxxxx#3 nsp=1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=321: vxxxxx#3 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=322: vxxxxx#3 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=322: vxxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=322: vxxxxx#3 nsp=1 mass=0 + -3.394112549695428e-01, -5.656854249492381e-01, // itest=322: vxxxxx#3 nsp=1 mass=0 + -4.525483399593904e-01, 4.242640687119285e-01, // itest=322: vxxxxx#3 nsp=1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=322: vxxxxx#3 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=323: sxxxxx#3 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=323: sxxxxx#3 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=323: sxxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=323: sxxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=323: sxxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=323: sxxxxx#3 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=324: sxxxxx#3 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=324: sxxxxx#3 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=324: sxxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=324: sxxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=324: sxxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=324: sxxxxx#3 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=325: oxxxxx#3 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=325: oxxxxx#3 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=325: oxxxxx#3 nsp=1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=325: oxxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=325: oxxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=325: oxxxxx#3 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=326: oxxxxx#3 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=326: oxxxxx#3 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=326: oxxxxx#3 nsp=1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=326: oxxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=326: oxxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=326: oxxxxx#3 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=327: oxzxxx#3 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=327: oxzxxx#3 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=327: oxzxxx#3 nsp=1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=327: oxzxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=327: oxzxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=327: oxzxxx#3 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=328: ixxxxx#4 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=328: ixxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=328: ixxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=328: ixxxxx#4 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=328: ixxxxx#4 nsp=1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01 } ); // itest=328: ixxxxx#4 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=329: ixxxxx#4 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=329: ixxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=329: ixxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=329: ixxxxx#4 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=329: ixxxxx#4 nsp=1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01 } ); // itest=329: ixxxxx#4 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=330: ixzxxx#4 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=330: ixzxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=330: ixzxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=330: ixzxxx#4 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=330: ixzxxx#4 nsp=1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01 } ); // itest=330: ixzxxx#4 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=331: vxxxxx#4 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=331: vxxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=331: vxxxxx#4 nsp=1 mass=0 + 3.394112549695428e-01, -5.656854249492381e-01, // itest=331: vxxxxx#4 nsp=1 mass=0 + 4.525483399593904e-01, 4.242640687119285e-01, // itest=331: vxxxxx#4 nsp=1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=331: vxxxxx#4 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=332: vxxxxx#4 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=332: vxxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=332: vxxxxx#4 nsp=1 mass=0 + 3.394112549695428e-01, -5.656854249492381e-01, // itest=332: vxxxxx#4 nsp=1 mass=0 + 4.525483399593904e-01, 4.242640687119285e-01, // itest=332: vxxxxx#4 nsp=1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=332: vxxxxx#4 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=333: sxxxxx#4 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=333: sxxxxx#4 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=333: sxxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=333: sxxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=333: sxxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=333: sxxxxx#4 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=334: sxxxxx#4 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=334: sxxxxx#4 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=334: sxxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=334: sxxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=334: sxxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=334: sxxxxx#4 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=335: oxxxxx#4 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=335: oxxxxx#4 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=335: oxxxxx#4 nsp=1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=335: oxxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=335: oxxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=335: oxxxxx#4 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=336: oxxxxx#4 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=336: oxxxxx#4 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=336: oxxxxx#4 nsp=1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=336: oxxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=336: oxxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=336: oxxxxx#4 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=337: oxzxxx#4 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=337: oxzxxx#4 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=337: oxzxxx#4 nsp=1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=337: oxzxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=337: oxzxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=337: oxzxxx#4 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=338: ixxxxx#5 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=338: ixxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=338: ixxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=338: ixxxxx#5 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=338: ixxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=338: ixxxxx#5 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=339: ixxxxx#5 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=339: ixxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=339: ixxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=339: ixxxxx#5 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=339: ixxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=339: ixxxxx#5 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=340: ipzxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=340: ipzxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=340: ipzxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=340: ipzxxx#5 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=340: ipzxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=340: ipzxxx#5 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=341: vxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=341: vxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=341: vxxxxx#5 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=341: vxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=341: vxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=341: vxxxxx#5 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=342: vxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=342: vxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=342: vxxxxx#5 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=342: vxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=342: vxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=342: vxxxxx#5 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=343: sxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=343: sxxxxx#5 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=343: sxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=343: sxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=343: sxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=343: sxxxxx#5 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=344: sxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=344: sxxxxx#5 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=344: sxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=344: sxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=344: sxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=344: sxxxxx#5 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=345: oxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=345: oxxxxx#5 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=345: oxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=345: oxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=345: oxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=345: oxxxxx#5 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=346: oxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=346: oxxxxx#5 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=346: oxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=346: oxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=346: oxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=346: oxxxxx#5 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=347: opzxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=347: opzxxx#5 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=347: opzxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=347: opzxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=347: opzxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=347: opzxxx#5 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=348: ixxxxx#6 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=348: ixxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=348: ixxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=348: ixxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=348: ixxxxx#6 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=348: ixxxxx#6 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=349: ixxxxx#6 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=349: ixxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=349: ixxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=349: ixxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=349: ixxxxx#6 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=349: ixxxxx#6 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=350: imzxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=350: imzxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=350: imzxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=350: imzxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=350: imzxxx#6 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=350: imzxxx#6 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=351: vxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=351: vxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=351: vxxxxx#6 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=351: vxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=351: vxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=351: vxxxxx#6 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=352: vxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=352: vxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=352: vxxxxx#6 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=352: vxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=352: vxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=352: vxxxxx#6 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=353: sxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=353: sxxxxx#6 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=353: sxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=353: sxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=353: sxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=353: sxxxxx#6 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=354: sxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=354: sxxxxx#6 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=354: sxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=354: sxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=354: sxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=354: sxxxxx#6 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=355: oxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=355: oxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=355: oxxxxx#6 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=355: oxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=355: oxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=355: oxxxxx#6 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=356: oxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=356: oxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=356: oxxxxx#6 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=356: oxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=356: oxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=356: oxxxxx#6 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=357: omzxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=357: omzxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=357: omzxxx#6 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=357: omzxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=357: omzxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=357: omzxxx#6 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=358: ixxxxx#7 nsp=1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=358: ixxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=358: ixxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=358: ixxxxx#7 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=358: ixxxxx#7 nsp=1 mass=0 + 1.341640786499874e+01, 1.788854381999831e+01 } ); // itest=358: ixxxxx#7 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=359: ixxxxx#7 nsp=1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=359: ixxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=359: ixxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=359: ixxxxx#7 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=359: ixxxxx#7 nsp=1 mass=0 + 1.341640786499874e+01, 1.788854381999831e+01 } ); // itest=359: ixxxxx#7 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=360: ixzxxx#7 nsp=1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=360: ixzxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=360: ixzxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=360: ixzxxx#7 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=360: ixzxxx#7 nsp=1 mass=0 + 1.341640786499874e+01, 1.788854381999832e+01 } ); // itest=360: ixzxxx#7 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=361: vxxxxx#7 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=361: vxxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=361: vxxxxx#7 nsp=1 mass=0 + -0.000000000000000e+00, -5.656854249492381e-01, // itest=361: vxxxxx#7 nsp=1 mass=0 + -0.000000000000000e+00, 4.242640687119285e-01, // itest=361: vxxxxx#7 nsp=1 mass=0 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=361: vxxxxx#7 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=362: vxxxxx#7 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=362: vxxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=362: vxxxxx#7 nsp=1 mass=0 + -0.000000000000000e+00, -5.656854249492381e-01, // itest=362: vxxxxx#7 nsp=1 mass=0 + -0.000000000000000e+00, 4.242640687119285e-01, // itest=362: vxxxxx#7 nsp=1 mass=0 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=362: vxxxxx#7 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=363: sxxxxx#7 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=363: sxxxxx#7 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=363: sxxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=363: sxxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=363: sxxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=363: sxxxxx#7 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=364: sxxxxx#7 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=364: sxxxxx#7 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=364: sxxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=364: sxxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=364: sxxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=364: sxxxxx#7 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=365: oxxxxx#7 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=365: oxxxxx#7 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=365: oxxxxx#7 nsp=1 mass=0 + 1.341640786499874e+01, -1.788854381999831e+01, // itest=365: oxxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=365: oxxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=365: oxxxxx#7 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=366: oxxxxx#7 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=366: oxxxxx#7 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=366: oxxxxx#7 nsp=1 mass=0 + 1.341640786499874e+01, -1.788854381999831e+01, // itest=366: oxxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=366: oxxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=366: oxxxxx#7 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=367: oxzxxx#7 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=367: oxzxxx#7 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=367: oxzxxx#7 nsp=1 mass=0 + 1.341640786499874e+01, -1.788854381999832e+01, // itest=367: oxzxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=367: oxzxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=367: oxzxxx#7 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=368: ixxxxx#8 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=368: ixxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=368: ixxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=368: ixxxxx#8 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=368: ixxxxx#8 nsp=1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=368: ixxxxx#8 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=369: ixxxxx#8 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=369: ixxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=369: ixxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=369: ixxxxx#8 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=369: ixxxxx#8 nsp=1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=369: ixxxxx#8 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=370: ixzxxx#8 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=370: ixzxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=370: ixzxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=370: ixzxxx#8 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=370: ixzxxx#8 nsp=1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=370: ixzxxx#8 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=371: vxxxxx#8 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=371: vxxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=371: vxxxxx#8 nsp=1 mass=0 + -3.394112549695428e-01, -5.656854249492381e-01, // itest=371: vxxxxx#8 nsp=1 mass=0 + -4.525483399593904e-01, 4.242640687119285e-01, // itest=371: vxxxxx#8 nsp=1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=371: vxxxxx#8 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=372: vxxxxx#8 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=372: vxxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=372: vxxxxx#8 nsp=1 mass=0 + -3.394112549695428e-01, -5.656854249492381e-01, // itest=372: vxxxxx#8 nsp=1 mass=0 + -4.525483399593904e-01, 4.242640687119285e-01, // itest=372: vxxxxx#8 nsp=1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=372: vxxxxx#8 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=373: sxxxxx#8 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=373: sxxxxx#8 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=373: sxxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=373: sxxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=373: sxxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=373: sxxxxx#8 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=374: sxxxxx#8 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=374: sxxxxx#8 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=374: sxxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=374: sxxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=374: sxxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=374: sxxxxx#8 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=375: oxxxxx#8 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=375: oxxxxx#8 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=375: oxxxxx#8 nsp=1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=375: oxxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=375: oxxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=375: oxxxxx#8 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=376: oxxxxx#8 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=376: oxxxxx#8 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=376: oxxxxx#8 nsp=1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=376: oxxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=376: oxxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=376: oxxxxx#8 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=377: oxzxxx#8 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=377: oxzxxx#8 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=377: oxzxxx#8 nsp=1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=377: oxzxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=377: oxzxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=377: oxzxxx#8 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=378: ixxxxx#9 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=378: ixxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=378: ixxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=378: ixxxxx#9 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=378: ixxxxx#9 nsp=1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01 } ); // itest=378: ixxxxx#9 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=379: ixxxxx#9 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=379: ixxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=379: ixxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=379: ixxxxx#9 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=379: ixxxxx#9 nsp=1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01 } ); // itest=379: ixxxxx#9 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=380: ixzxxx#9 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=380: ixzxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=380: ixzxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=380: ixzxxx#9 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=380: ixzxxx#9 nsp=1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01 } ); // itest=380: ixzxxx#9 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=381: vxxxxx#9 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=381: vxxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=381: vxxxxx#9 nsp=1 mass=0 + 3.394112549695428e-01, -5.656854249492381e-01, // itest=381: vxxxxx#9 nsp=1 mass=0 + 4.525483399593904e-01, 4.242640687119285e-01, // itest=381: vxxxxx#9 nsp=1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=381: vxxxxx#9 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=382: vxxxxx#9 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=382: vxxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=382: vxxxxx#9 nsp=1 mass=0 + 3.394112549695428e-01, -5.656854249492381e-01, // itest=382: vxxxxx#9 nsp=1 mass=0 + 4.525483399593904e-01, 4.242640687119285e-01, // itest=382: vxxxxx#9 nsp=1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=382: vxxxxx#9 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=383: sxxxxx#9 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=383: sxxxxx#9 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=383: sxxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=383: sxxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=383: sxxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=383: sxxxxx#9 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=384: sxxxxx#9 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=384: sxxxxx#9 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=384: sxxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=384: sxxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=384: sxxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=384: sxxxxx#9 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=385: oxxxxx#9 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=385: oxxxxx#9 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=385: oxxxxx#9 nsp=1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=385: oxxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=385: oxxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=385: oxxxxx#9 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=386: oxxxxx#9 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=386: oxxxxx#9 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=386: oxxxxx#9 nsp=1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=386: oxxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=386: oxxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=386: oxxxxx#9 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=387: oxzxxx#9 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=387: oxzxxx#9 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=387: oxzxxx#9 nsp=1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=387: oxzxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=387: oxzxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=387: oxzxxx#9 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=388: ixxxxx#10 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=388: ixxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=388: ixxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=388: ixxxxx#10 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=388: ixxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=388: ixxxxx#10 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=389: ixxxxx#10 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=389: ixxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=389: ixxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=389: ixxxxx#10 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=389: ixxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=389: ixxxxx#10 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=390: ipzxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=390: ipzxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=390: ipzxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=390: ipzxxx#10 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=390: ipzxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=390: ipzxxx#10 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=391: vxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=391: vxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=391: vxxxxx#10 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=391: vxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=391: vxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=391: vxxxxx#10 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=392: vxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=392: vxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=392: vxxxxx#10 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=392: vxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=392: vxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=392: vxxxxx#10 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=393: sxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=393: sxxxxx#10 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=393: sxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=393: sxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=393: sxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=393: sxxxxx#10 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=394: sxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=394: sxxxxx#10 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=394: sxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=394: sxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=394: sxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=394: sxxxxx#10 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=395: oxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=395: oxxxxx#10 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=395: oxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=395: oxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=395: oxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=395: oxxxxx#10 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=396: oxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=396: oxxxxx#10 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=396: oxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=396: oxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=396: oxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=396: oxxxxx#10 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=397: opzxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=397: opzxxx#10 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=397: opzxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=397: opzxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=397: opzxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=397: opzxxx#10 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=398: ixxxxx#11 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=398: ixxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=398: ixxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=398: ixxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=398: ixxxxx#11 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=398: ixxxxx#11 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=399: ixxxxx#11 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=399: ixxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=399: ixxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=399: ixxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=399: ixxxxx#11 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=399: ixxxxx#11 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=400: imzxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=400: imzxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=400: imzxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=400: imzxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=400: imzxxx#11 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=400: imzxxx#11 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=401: vxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=401: vxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=401: vxxxxx#11 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=401: vxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=401: vxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=401: vxxxxx#11 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=402: vxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=402: vxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=402: vxxxxx#11 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=402: vxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=402: vxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=402: vxxxxx#11 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=403: sxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=403: sxxxxx#11 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=403: sxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=403: sxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=403: sxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=403: sxxxxx#11 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=404: sxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=404: sxxxxx#11 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=404: sxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=404: sxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=404: sxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=404: sxxxxx#11 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=405: oxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=405: oxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=405: oxxxxx#11 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=405: oxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=405: oxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=405: oxxxxx#11 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=406: oxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=406: oxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=406: oxxxxx#11 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=406: oxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=406: oxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=406: oxxxxx#11 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=407: omzxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=407: omzxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=407: omzxxx#11 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=407: omzxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=407: omzxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=407: omzxxx#11 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=408: ixxxxx#12 nsp=1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=408: ixxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=408: ixxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=408: ixxxxx#12 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=408: ixxxxx#12 nsp=1 mass=0 + 1.341640786499874e+01, 1.788854381999831e+01 } ); // itest=408: ixxxxx#12 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=409: ixxxxx#12 nsp=1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=409: ixxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=409: ixxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=409: ixxxxx#12 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=409: ixxxxx#12 nsp=1 mass=0 + 1.341640786499874e+01, 1.788854381999831e+01 } ); // itest=409: ixxxxx#12 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=410: ixzxxx#12 nsp=1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=410: ixzxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=410: ixzxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=410: ixzxxx#12 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=410: ixzxxx#12 nsp=1 mass=0 + 1.341640786499874e+01, 1.788854381999832e+01 } ); // itest=410: ixzxxx#12 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=411: vxxxxx#12 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=411: vxxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=411: vxxxxx#12 nsp=1 mass=0 + -0.000000000000000e+00, -5.656854249492381e-01, // itest=411: vxxxxx#12 nsp=1 mass=0 + -0.000000000000000e+00, 4.242640687119285e-01, // itest=411: vxxxxx#12 nsp=1 mass=0 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=411: vxxxxx#12 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=412: vxxxxx#12 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=412: vxxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=412: vxxxxx#12 nsp=1 mass=0 + -0.000000000000000e+00, -5.656854249492381e-01, // itest=412: vxxxxx#12 nsp=1 mass=0 + -0.000000000000000e+00, 4.242640687119285e-01, // itest=412: vxxxxx#12 nsp=1 mass=0 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=412: vxxxxx#12 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=413: sxxxxx#12 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=413: sxxxxx#12 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=413: sxxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=413: sxxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=413: sxxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=413: sxxxxx#12 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=414: sxxxxx#12 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=414: sxxxxx#12 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=414: sxxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=414: sxxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=414: sxxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=414: sxxxxx#12 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=415: oxxxxx#12 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=415: oxxxxx#12 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=415: oxxxxx#12 nsp=1 mass=0 + 1.341640786499874e+01, -1.788854381999831e+01, // itest=415: oxxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=415: oxxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=415: oxxxxx#12 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=416: oxxxxx#12 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=416: oxxxxx#12 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=416: oxxxxx#12 nsp=1 mass=0 + 1.341640786499874e+01, -1.788854381999831e+01, // itest=416: oxxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=416: oxxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=416: oxxxxx#12 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=417: oxzxxx#12 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=417: oxzxxx#12 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=417: oxzxxx#12 nsp=1 mass=0 + 1.341640786499874e+01, -1.788854381999832e+01, // itest=417: oxzxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=417: oxzxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=417: oxzxxx#12 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=418: ixxxxx#13 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=418: ixxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=418: ixxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=418: ixxxxx#13 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=418: ixxxxx#13 nsp=1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=418: ixxxxx#13 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=419: ixxxxx#13 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=419: ixxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=419: ixxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=419: ixxxxx#13 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=419: ixxxxx#13 nsp=1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=419: ixxxxx#13 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=420: ixzxxx#13 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=420: ixzxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=420: ixzxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=420: ixzxxx#13 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=420: ixzxxx#13 nsp=1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=420: ixzxxx#13 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=421: vxxxxx#13 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=421: vxxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=421: vxxxxx#13 nsp=1 mass=0 + -3.394112549695428e-01, -5.656854249492381e-01, // itest=421: vxxxxx#13 nsp=1 mass=0 + -4.525483399593904e-01, 4.242640687119285e-01, // itest=421: vxxxxx#13 nsp=1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=421: vxxxxx#13 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=422: vxxxxx#13 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=422: vxxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=422: vxxxxx#13 nsp=1 mass=0 + -3.394112549695428e-01, -5.656854249492381e-01, // itest=422: vxxxxx#13 nsp=1 mass=0 + -4.525483399593904e-01, 4.242640687119285e-01, // itest=422: vxxxxx#13 nsp=1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=422: vxxxxx#13 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=423: sxxxxx#13 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=423: sxxxxx#13 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=423: sxxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=423: sxxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=423: sxxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=423: sxxxxx#13 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=424: sxxxxx#13 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=424: sxxxxx#13 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=424: sxxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=424: sxxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=424: sxxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=424: sxxxxx#13 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=425: oxxxxx#13 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=425: oxxxxx#13 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=425: oxxxxx#13 nsp=1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=425: oxxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=425: oxxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=425: oxxxxx#13 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=426: oxxxxx#13 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=426: oxxxxx#13 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=426: oxxxxx#13 nsp=1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=426: oxxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=426: oxxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=426: oxxxxx#13 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=427: oxzxxx#13 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=427: oxzxxx#13 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=427: oxzxxx#13 nsp=1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=427: oxzxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=427: oxzxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=427: oxzxxx#13 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=428: ixxxxx#14 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=428: ixxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=428: ixxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=428: ixxxxx#14 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=428: ixxxxx#14 nsp=1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01 } ); // itest=428: ixxxxx#14 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=429: ixxxxx#14 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=429: ixxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=429: ixxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=429: ixxxxx#14 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=429: ixxxxx#14 nsp=1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01 } ); // itest=429: ixxxxx#14 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=430: ixzxxx#14 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=430: ixzxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=430: ixzxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=430: ixzxxx#14 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=430: ixzxxx#14 nsp=1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01 } ); // itest=430: ixzxxx#14 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=431: vxxxxx#14 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=431: vxxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=431: vxxxxx#14 nsp=1 mass=0 + 3.394112549695428e-01, -5.656854249492381e-01, // itest=431: vxxxxx#14 nsp=1 mass=0 + 4.525483399593904e-01, 4.242640687119285e-01, // itest=431: vxxxxx#14 nsp=1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=431: vxxxxx#14 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=432: vxxxxx#14 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=432: vxxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=432: vxxxxx#14 nsp=1 mass=0 + 3.394112549695428e-01, -5.656854249492381e-01, // itest=432: vxxxxx#14 nsp=1 mass=0 + 4.525483399593904e-01, 4.242640687119285e-01, // itest=432: vxxxxx#14 nsp=1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=432: vxxxxx#14 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=433: sxxxxx#14 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=433: sxxxxx#14 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=433: sxxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=433: sxxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=433: sxxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=433: sxxxxx#14 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=434: sxxxxx#14 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=434: sxxxxx#14 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=434: sxxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=434: sxxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=434: sxxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=434: sxxxxx#14 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=435: oxxxxx#14 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=435: oxxxxx#14 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=435: oxxxxx#14 nsp=1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=435: oxxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=435: oxxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=435: oxxxxx#14 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=436: oxxxxx#14 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=436: oxxxxx#14 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=436: oxxxxx#14 nsp=1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=436: oxxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=436: oxxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=436: oxxxxx#14 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=437: oxzxxx#14 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=437: oxzxxx#14 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=437: oxzxxx#14 nsp=1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=437: oxzxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=437: oxzxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=437: oxzxxx#14 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=438: ixxxxx#15 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=438: ixxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=438: ixxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=438: ixxxxx#15 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=438: ixxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=438: ixxxxx#15 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=439: ixxxxx#15 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=439: ixxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=439: ixxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=439: ixxxxx#15 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=439: ixxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=439: ixxxxx#15 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=440: ipzxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=440: ipzxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=440: ipzxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=440: ipzxxx#15 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=440: ipzxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=440: ipzxxx#15 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=441: vxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=441: vxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=441: vxxxxx#15 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=441: vxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=441: vxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=441: vxxxxx#15 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=442: vxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=442: vxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=442: vxxxxx#15 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=442: vxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=442: vxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=442: vxxxxx#15 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=443: sxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=443: sxxxxx#15 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=443: sxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=443: sxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=443: sxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=443: sxxxxx#15 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=444: sxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=444: sxxxxx#15 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=444: sxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=444: sxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=444: sxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=444: sxxxxx#15 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=445: oxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=445: oxxxxx#15 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=445: oxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=445: oxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=445: oxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=445: oxxxxx#15 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=446: oxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=446: oxxxxx#15 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=446: oxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=446: oxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=446: oxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=446: oxxxxx#15 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=447: opzxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=447: opzxxx#15 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=447: opzxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=447: opzxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=447: opzxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=447: opzxxx#15 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=448: ixxxxx#16 nsp=1 mass=500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=448: ixxxxx#16 nsp=1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=448: ixxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=448: ixxxxx#16 nsp=1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=448: ixxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=448: ixxxxx#16 nsp=1 mass=500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=449: ixxxxx#16 nsp=1 mass=-500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=449: ixxxxx#16 nsp=1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=449: ixxxxx#16 nsp=1 mass=-500 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=449: ixxxxx#16 nsp=1 mass=-500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=449: ixxxxx#16 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=449: ixxxxx#16 nsp=1 mass=-500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=450: vxxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=450: vxxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=450: vxxxxx#16 nsp=1 mass=500 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=450: vxxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=450: vxxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=450: vxxxxx#16 nsp=1 mass=500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=451: vxxxxx#16 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=451: vxxxxx#16 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=451: vxxxxx#16 nsp=1 mass=-500 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=451: vxxxxx#16 nsp=1 mass=-500 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=451: vxxxxx#16 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=451: vxxxxx#16 nsp=1 mass=-500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=452: sxxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=452: sxxxxx#16 nsp=1 mass=500 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=452: sxxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=452: sxxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=452: sxxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=452: sxxxxx#16 nsp=1 mass=500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=453: sxxxxx#16 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=453: sxxxxx#16 nsp=1 mass=-500 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=453: sxxxxx#16 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=453: sxxxxx#16 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=453: sxxxxx#16 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=453: sxxxxx#16 nsp=1 mass=-500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=454: oxxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=454: oxxxxx#16 nsp=1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=454: oxxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=454: oxxxxx#16 nsp=1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=454: oxxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=454: oxxxxx#16 nsp=1 mass=500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=455: oxxxxx#16 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=455: oxxxxx#16 nsp=1 mass=-500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=455: oxxxxx#16 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=455: oxxxxx#16 nsp=1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=455: oxxxxx#16 nsp=1 mass=-500 + -0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=455: oxxxxx#16 nsp=1 mass=-500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=456: ixxxxx#17 nsp=1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=456: ixxxxx#17 nsp=1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=456: ixxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=456: ixxxxx#17 nsp=1 mass=400 + 2.828427124746190e+01, 0.000000000000000e+00, // itest=456: ixxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=456: ixxxxx#17 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=457: ixxxxx#17 nsp=1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=457: ixxxxx#17 nsp=1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=457: ixxxxx#17 nsp=1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=457: ixxxxx#17 nsp=1 mass=-400 + 2.828427124746190e+01, 0.000000000000000e+00, // itest=457: ixxxxx#17 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=457: ixxxxx#17 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=458: vxxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=458: vxxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=458: vxxxxx#17 nsp=1 mass=400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=458: vxxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=458: vxxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=458: vxxxxx#17 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=459: vxxxxx#17 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=459: vxxxxx#17 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=459: vxxxxx#17 nsp=1 mass=-400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=459: vxxxxx#17 nsp=1 mass=-400 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=459: vxxxxx#17 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=459: vxxxxx#17 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=460: sxxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=460: sxxxxx#17 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=460: sxxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=460: sxxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=460: sxxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=460: sxxxxx#17 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=461: sxxxxx#17 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=461: sxxxxx#17 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=461: sxxxxx#17 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=461: sxxxxx#17 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=461: sxxxxx#17 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=461: sxxxxx#17 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=462: oxxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=462: oxxxxx#17 nsp=1 mass=400 + 2.828427124746190e+01, 0.000000000000000e+00, // itest=462: oxxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=462: oxxxxx#17 nsp=1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=462: oxxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=462: oxxxxx#17 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=463: oxxxxx#17 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=463: oxxxxx#17 nsp=1 mass=-400 + 2.828427124746190e+01, 0.000000000000000e+00, // itest=463: oxxxxx#17 nsp=1 mass=-400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=463: oxxxxx#17 nsp=1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=463: oxxxxx#17 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=463: oxxxxx#17 nsp=1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=464: ixxxxx#18 nsp=1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=464: ixxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=464: ixxxxx#18 nsp=1 mass=400 + -1.414213562373095e+01, 0.000000000000000e+00, // itest=464: ixxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=464: ixxxxx#18 nsp=1 mass=400 + -2.828427124746190e+01, 0.000000000000000e+00 } ); // itest=464: ixxxxx#18 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=465: ixxxxx#18 nsp=1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=465: ixxxxx#18 nsp=1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=465: ixxxxx#18 nsp=1 mass=-400 + 1.414213562373095e+01, -0.000000000000000e+00, // itest=465: ixxxxx#18 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=465: ixxxxx#18 nsp=1 mass=-400 + -2.828427124746190e+01, 0.000000000000000e+00 } ); // itest=465: ixxxxx#18 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=466: vxxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=466: vxxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=466: vxxxxx#18 nsp=1 mass=400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=466: vxxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=466: vxxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=466: vxxxxx#18 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=467: vxxxxx#18 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=467: vxxxxx#18 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=467: vxxxxx#18 nsp=1 mass=-400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=467: vxxxxx#18 nsp=1 mass=-400 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=467: vxxxxx#18 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=467: vxxxxx#18 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=468: sxxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=468: sxxxxx#18 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=468: sxxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=468: sxxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=468: sxxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=468: sxxxxx#18 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=469: sxxxxx#18 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=469: sxxxxx#18 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=469: sxxxxx#18 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=469: sxxxxx#18 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=469: sxxxxx#18 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=469: sxxxxx#18 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=470: oxxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=470: oxxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=470: oxxxxx#18 nsp=1 mass=400 + -2.828427124746190e+01, 0.000000000000000e+00, // itest=470: oxxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=470: oxxxxx#18 nsp=1 mass=400 + -1.414213562373095e+01, 0.000000000000000e+00 } ); // itest=470: oxxxxx#18 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=471: oxxxxx#18 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=471: oxxxxx#18 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=471: oxxxxx#18 nsp=1 mass=-400 + -2.828427124746190e+01, 0.000000000000000e+00, // itest=471: oxxxxx#18 nsp=1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=471: oxxxxx#18 nsp=1 mass=-400 + 1.414213562373095e+01, -0.000000000000000e+00 } ); // itest=471: oxxxxx#18 nsp=1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=472: ixxxxx#19 nsp=1 mass=400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=472: ixxxxx#19 nsp=1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=472: ixxxxx#19 nsp=1 mass=400 + 5.999999999999999e+00, 7.999999999999999e+00, // itest=472: ixxxxx#19 nsp=1 mass=400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=472: ixxxxx#19 nsp=1 mass=400 + 1.200000000000000e+01, 1.600000000000000e+01 } ); // itest=472: ixxxxx#19 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=473: ixxxxx#19 nsp=1 mass=-400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=473: ixxxxx#19 nsp=1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00, // itest=473: ixxxxx#19 nsp=1 mass=-400 + -5.999999999999999e+00, -7.999999999999999e+00, // itest=473: ixxxxx#19 nsp=1 mass=-400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=473: ixxxxx#19 nsp=1 mass=-400 + 1.200000000000000e+01, 1.600000000000000e+01 } ); // itest=473: ixxxxx#19 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=474: vxxxxx#19 nsp=1 mass=400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=474: vxxxxx#19 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=474: vxxxxx#19 nsp=1 mass=400 + 0.000000000000000e+00, -5.656854249492381e-01, // itest=474: vxxxxx#19 nsp=1 mass=400 + 0.000000000000000e+00, 4.242640687119285e-01, // itest=474: vxxxxx#19 nsp=1 mass=400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=474: vxxxxx#19 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=475: vxxxxx#19 nsp=1 mass=-400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=475: vxxxxx#19 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=475: vxxxxx#19 nsp=1 mass=-400 + -0.000000000000000e+00, -5.656854249492381e-01, // itest=475: vxxxxx#19 nsp=1 mass=-400 + -0.000000000000000e+00, 4.242640687119285e-01, // itest=475: vxxxxx#19 nsp=1 mass=-400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=475: vxxxxx#19 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=476: sxxxxx#19 nsp=1 mass=400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=476: sxxxxx#19 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=476: sxxxxx#19 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=476: sxxxxx#19 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=476: sxxxxx#19 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=476: sxxxxx#19 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=477: sxxxxx#19 nsp=1 mass=-400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=477: sxxxxx#19 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=477: sxxxxx#19 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=477: sxxxxx#19 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=477: sxxxxx#19 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=477: sxxxxx#19 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=478: oxxxxx#19 nsp=1 mass=400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=478: oxxxxx#19 nsp=1 mass=400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=478: oxxxxx#19 nsp=1 mass=400 + 1.200000000000000e+01, -1.600000000000000e+01, // itest=478: oxxxxx#19 nsp=1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=478: oxxxxx#19 nsp=1 mass=400 + 5.999999999999999e+00, -7.999999999999999e+00 } ); // itest=478: oxxxxx#19 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=479: oxxxxx#19 nsp=1 mass=-400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=479: oxxxxx#19 nsp=1 mass=-400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=479: oxxxxx#19 nsp=1 mass=-400 + 1.200000000000000e+01, -1.600000000000000e+01, // itest=479: oxxxxx#19 nsp=1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00, // itest=479: oxxxxx#19 nsp=1 mass=-400 + -5.999999999999999e+00, 7.999999999999999e+00 } ); // itest=479: oxxxxx#19 nsp=1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=480: ixxxxx#20 nsp=1 mass=400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=480: ixxxxx#20 nsp=1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=480: ixxxxx#20 nsp=1 mass=400 + -7.999999999999999e+00, -5.999999999999999e+00, // itest=480: ixxxxx#20 nsp=1 mass=400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=480: ixxxxx#20 nsp=1 mass=400 + -1.600000000000000e+01, -1.200000000000000e+01 } ); // itest=480: ixxxxx#20 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=481: ixxxxx#20 nsp=1 mass=-400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=481: ixxxxx#20 nsp=1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00, // itest=481: ixxxxx#20 nsp=1 mass=-400 + 7.999999999999999e+00, 5.999999999999999e+00, // itest=481: ixxxxx#20 nsp=1 mass=-400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=481: ixxxxx#20 nsp=1 mass=-400 + -1.600000000000000e+01, -1.200000000000000e+01 } ); // itest=481: ixxxxx#20 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=482: vxxxxx#20 nsp=1 mass=400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=482: vxxxxx#20 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=482: vxxxxx#20 nsp=1 mass=400 + 0.000000000000000e+00, 4.242640687119285e-01, // itest=482: vxxxxx#20 nsp=1 mass=400 + 0.000000000000000e+00, -5.656854249492381e-01, // itest=482: vxxxxx#20 nsp=1 mass=400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=482: vxxxxx#20 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=483: vxxxxx#20 nsp=1 mass=-400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=483: vxxxxx#20 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=483: vxxxxx#20 nsp=1 mass=-400 + 0.000000000000000e+00, 4.242640687119285e-01, // itest=483: vxxxxx#20 nsp=1 mass=-400 + 0.000000000000000e+00, -5.656854249492381e-01, // itest=483: vxxxxx#20 nsp=1 mass=-400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=483: vxxxxx#20 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=484: sxxxxx#20 nsp=1 mass=400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=484: sxxxxx#20 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=484: sxxxxx#20 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=484: sxxxxx#20 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=484: sxxxxx#20 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=484: sxxxxx#20 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=485: sxxxxx#20 nsp=1 mass=-400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=485: sxxxxx#20 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=485: sxxxxx#20 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=485: sxxxxx#20 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=485: sxxxxx#20 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=485: sxxxxx#20 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=486: oxxxxx#20 nsp=1 mass=400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=486: oxxxxx#20 nsp=1 mass=400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=486: oxxxxx#20 nsp=1 mass=400 + -1.600000000000000e+01, 1.200000000000000e+01, // itest=486: oxxxxx#20 nsp=1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=486: oxxxxx#20 nsp=1 mass=400 + -7.999999999999999e+00, 5.999999999999999e+00 } ); // itest=486: oxxxxx#20 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=487: oxxxxx#20 nsp=1 mass=-400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=487: oxxxxx#20 nsp=1 mass=-400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=487: oxxxxx#20 nsp=1 mass=-400 + -1.600000000000000e+01, 1.200000000000000e+01, // itest=487: oxxxxx#20 nsp=1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00, // itest=487: oxxxxx#20 nsp=1 mass=-400 + 7.999999999999999e+00, -5.999999999999999e+00 } ); // itest=487: oxxxxx#20 nsp=1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=488: ixxxxx#21 nsp=1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=488: ixxxxx#21 nsp=1 mass=400 + 1.216552506059644e+01, 0.000000000000000e+00, // itest=488: ixxxxx#21 nsp=1 mass=400 + 4.931969619160719e+00, 5.260767593771432e+00, // itest=488: ixxxxx#21 nsp=1 mass=400 + 2.433105012119288e+01, 0.000000000000000e+00, // itest=488: ixxxxx#21 nsp=1 mass=400 + 9.863939238321439e+00, 1.052153518754287e+01 } ); // itest=488: ixxxxx#21 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=489: ixxxxx#21 nsp=1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=489: ixxxxx#21 nsp=1 mass=-400 + -1.216552506059644e+01, -0.000000000000000e+00, // itest=489: ixxxxx#21 nsp=1 mass=-400 + -4.931969619160719e+00, -5.260767593771432e+00, // itest=489: ixxxxx#21 nsp=1 mass=-400 + 2.433105012119288e+01, 0.000000000000000e+00, // itest=489: ixxxxx#21 nsp=1 mass=-400 + 9.863939238321439e+00, 1.052153518754287e+01 } ); // itest=489: ixxxxx#21 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=490: vxxxxx#21 nsp=1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=490: vxxxxx#21 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=490: vxxxxx#21 nsp=1 mass=400 + -2.321373168788980e-01, -5.158607041753289e-01, // itest=490: vxxxxx#21 nsp=1 mass=400 + -2.476131380041579e-01, 4.836194101643708e-01, // itest=490: vxxxxx#21 nsp=1 mass=400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=490: vxxxxx#21 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=491: vxxxxx#21 nsp=1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=491: vxxxxx#21 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=491: vxxxxx#21 nsp=1 mass=-400 + -2.321373168788980e-01, -5.158607041753289e-01, // itest=491: vxxxxx#21 nsp=1 mass=-400 + -2.476131380041579e-01, 4.836194101643708e-01, // itest=491: vxxxxx#21 nsp=1 mass=-400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=491: vxxxxx#21 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=492: sxxxxx#21 nsp=1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=492: sxxxxx#21 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=492: sxxxxx#21 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=492: sxxxxx#21 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=492: sxxxxx#21 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=492: sxxxxx#21 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=493: sxxxxx#21 nsp=1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=493: sxxxxx#21 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=493: sxxxxx#21 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=493: sxxxxx#21 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=493: sxxxxx#21 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=493: sxxxxx#21 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=494: oxxxxx#21 nsp=1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=494: oxxxxx#21 nsp=1 mass=400 + 2.433105012119288e+01, 0.000000000000000e+00, // itest=494: oxxxxx#21 nsp=1 mass=400 + 9.863939238321439e+00, -1.052153518754287e+01, // itest=494: oxxxxx#21 nsp=1 mass=400 + 1.216552506059644e+01, 0.000000000000000e+00, // itest=494: oxxxxx#21 nsp=1 mass=400 + 4.931969619160719e+00, -5.260767593771432e+00 } ); // itest=494: oxxxxx#21 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=495: oxxxxx#21 nsp=1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=495: oxxxxx#21 nsp=1 mass=-400 + 2.433105012119288e+01, 0.000000000000000e+00, // itest=495: oxxxxx#21 nsp=1 mass=-400 + 9.863939238321439e+00, -1.052153518754287e+01, // itest=495: oxxxxx#21 nsp=1 mass=-400 + -1.216552506059644e+01, -0.000000000000000e+00, // itest=495: oxxxxx#21 nsp=1 mass=-400 + -4.931969619160719e+00, 5.260767593771432e+00 } ); // itest=495: oxxxxx#21 nsp=1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=496: ixxxxx#22 nsp=1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=496: ixxxxx#22 nsp=1 mass=400 + 7.211102550927978e+00, 0.000000000000000e+00, // itest=496: ixxxxx#22 nsp=1 mass=400 + 8.320502943378436e+00, 8.875203139603666e+00, // itest=496: ixxxxx#22 nsp=1 mass=400 + 1.442220510185596e+01, 0.000000000000000e+00, // itest=496: ixxxxx#22 nsp=1 mass=400 + 1.664100588675688e+01, 1.775040627920733e+01 } ); // itest=496: ixxxxx#22 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=497: ixxxxx#22 nsp=1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=497: ixxxxx#22 nsp=1 mass=-400 + -7.211102550927978e+00, -0.000000000000000e+00, // itest=497: ixxxxx#22 nsp=1 mass=-400 + -8.320502943378436e+00, -8.875203139603666e+00, // itest=497: ixxxxx#22 nsp=1 mass=-400 + 1.442220510185596e+01, 0.000000000000000e+00, // itest=497: ixxxxx#22 nsp=1 mass=-400 + 1.664100588675688e+01, 1.775040627920733e+01 } ); // itest=497: ixxxxx#22 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=498: vxxxxx#22 nsp=1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=498: vxxxxx#22 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=498: vxxxxx#22 nsp=1 mass=400 + 2.321373168788980e-01, -5.158607041753289e-01, // itest=498: vxxxxx#22 nsp=1 mass=400 + 2.476131380041579e-01, 4.836194101643708e-01, // itest=498: vxxxxx#22 nsp=1 mass=400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=498: vxxxxx#22 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=499: vxxxxx#22 nsp=1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=499: vxxxxx#22 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=499: vxxxxx#22 nsp=1 mass=-400 + 2.321373168788980e-01, -5.158607041753289e-01, // itest=499: vxxxxx#22 nsp=1 mass=-400 + 2.476131380041579e-01, 4.836194101643708e-01, // itest=499: vxxxxx#22 nsp=1 mass=-400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=499: vxxxxx#22 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=500: sxxxxx#22 nsp=1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=500: sxxxxx#22 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=500: sxxxxx#22 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=500: sxxxxx#22 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=500: sxxxxx#22 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=500: sxxxxx#22 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=501: sxxxxx#22 nsp=1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=501: sxxxxx#22 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=501: sxxxxx#22 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=501: sxxxxx#22 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=501: sxxxxx#22 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=501: sxxxxx#22 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=502: oxxxxx#22 nsp=1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=502: oxxxxx#22 nsp=1 mass=400 + 1.442220510185596e+01, 0.000000000000000e+00, // itest=502: oxxxxx#22 nsp=1 mass=400 + 1.664100588675688e+01, -1.775040627920733e+01, // itest=502: oxxxxx#22 nsp=1 mass=400 + 7.211102550927978e+00, 0.000000000000000e+00, // itest=502: oxxxxx#22 nsp=1 mass=400 + 8.320502943378436e+00, -8.875203139603666e+00 } ); // itest=502: oxxxxx#22 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=503: oxxxxx#22 nsp=1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=503: oxxxxx#22 nsp=1 mass=-400 + 1.442220510185596e+01, 0.000000000000000e+00, // itest=503: oxxxxx#22 nsp=1 mass=-400 + 1.664100588675688e+01, -1.775040627920733e+01, // itest=503: oxxxxx#22 nsp=1 mass=-400 + -7.211102550927978e+00, -0.000000000000000e+00, // itest=503: oxxxxx#22 nsp=1 mass=-400 + -8.320502943378436e+00, 8.875203139603666e+00 } ); // itest=503: oxxxxx#22 nsp=1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=504: ixxxxx#23 nsp=1 mass=500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=504: ixxxxx#23 nsp=1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=504: ixxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=504: ixxxxx#23 nsp=1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=504: ixxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=504: ixxxxx#23 nsp=1 mass=500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=505: ixxxxx#23 nsp=1 mass=-500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=505: ixxxxx#23 nsp=1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=505: ixxxxx#23 nsp=1 mass=-500 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=505: ixxxxx#23 nsp=1 mass=-500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=505: ixxxxx#23 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=505: ixxxxx#23 nsp=1 mass=-500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=506: vxxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=506: vxxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=506: vxxxxx#23 nsp=1 mass=500 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=506: vxxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=506: vxxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=506: vxxxxx#23 nsp=1 mass=500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=507: vxxxxx#23 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=507: vxxxxx#23 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=507: vxxxxx#23 nsp=1 mass=-500 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=507: vxxxxx#23 nsp=1 mass=-500 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=507: vxxxxx#23 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=507: vxxxxx#23 nsp=1 mass=-500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=508: sxxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=508: sxxxxx#23 nsp=1 mass=500 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=508: sxxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=508: sxxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=508: sxxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=508: sxxxxx#23 nsp=1 mass=500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=509: sxxxxx#23 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=509: sxxxxx#23 nsp=1 mass=-500 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=509: sxxxxx#23 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=509: sxxxxx#23 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=509: sxxxxx#23 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=509: sxxxxx#23 nsp=1 mass=-500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=510: oxxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=510: oxxxxx#23 nsp=1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=510: oxxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=510: oxxxxx#23 nsp=1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=510: oxxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=510: oxxxxx#23 nsp=1 mass=500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=511: oxxxxx#23 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=511: oxxxxx#23 nsp=1 mass=-500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=511: oxxxxx#23 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=511: oxxxxx#23 nsp=1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=511: oxxxxx#23 nsp=1 mass=-500 + -0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=511: oxxxxx#23 nsp=1 mass=-500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=512: ixxxxx#24 nsp=1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=512: ixxxxx#24 nsp=1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=512: ixxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=512: ixxxxx#24 nsp=1 mass=400 + 2.828427124746190e+01, 0.000000000000000e+00, // itest=512: ixxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=512: ixxxxx#24 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=513: ixxxxx#24 nsp=1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=513: ixxxxx#24 nsp=1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=513: ixxxxx#24 nsp=1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=513: ixxxxx#24 nsp=1 mass=-400 + 2.828427124746190e+01, 0.000000000000000e+00, // itest=513: ixxxxx#24 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=513: ixxxxx#24 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=514: vxxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=514: vxxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=514: vxxxxx#24 nsp=1 mass=400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=514: vxxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=514: vxxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=514: vxxxxx#24 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=515: vxxxxx#24 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=515: vxxxxx#24 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=515: vxxxxx#24 nsp=1 mass=-400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=515: vxxxxx#24 nsp=1 mass=-400 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=515: vxxxxx#24 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=515: vxxxxx#24 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=516: sxxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=516: sxxxxx#24 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=516: sxxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=516: sxxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=516: sxxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=516: sxxxxx#24 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=517: sxxxxx#24 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=517: sxxxxx#24 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=517: sxxxxx#24 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=517: sxxxxx#24 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=517: sxxxxx#24 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=517: sxxxxx#24 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=518: oxxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=518: oxxxxx#24 nsp=1 mass=400 + 2.828427124746190e+01, 0.000000000000000e+00, // itest=518: oxxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=518: oxxxxx#24 nsp=1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=518: oxxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=518: oxxxxx#24 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=519: oxxxxx#24 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=519: oxxxxx#24 nsp=1 mass=-400 + 2.828427124746190e+01, 0.000000000000000e+00, // itest=519: oxxxxx#24 nsp=1 mass=-400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=519: oxxxxx#24 nsp=1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=519: oxxxxx#24 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=519: oxxxxx#24 nsp=1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=520: ixxxxx#25 nsp=1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=520: ixxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=520: ixxxxx#25 nsp=1 mass=400 + -1.414213562373095e+01, 0.000000000000000e+00, // itest=520: ixxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=520: ixxxxx#25 nsp=1 mass=400 + -2.828427124746190e+01, 0.000000000000000e+00 } ); // itest=520: ixxxxx#25 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=521: ixxxxx#25 nsp=1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=521: ixxxxx#25 nsp=1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=521: ixxxxx#25 nsp=1 mass=-400 + 1.414213562373095e+01, -0.000000000000000e+00, // itest=521: ixxxxx#25 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=521: ixxxxx#25 nsp=1 mass=-400 + -2.828427124746190e+01, 0.000000000000000e+00 } ); // itest=521: ixxxxx#25 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=522: vxxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=522: vxxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=522: vxxxxx#25 nsp=1 mass=400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=522: vxxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=522: vxxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=522: vxxxxx#25 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=523: vxxxxx#25 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=523: vxxxxx#25 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=523: vxxxxx#25 nsp=1 mass=-400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=523: vxxxxx#25 nsp=1 mass=-400 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=523: vxxxxx#25 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=523: vxxxxx#25 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=524: sxxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=524: sxxxxx#25 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=524: sxxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=524: sxxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=524: sxxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=524: sxxxxx#25 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=525: sxxxxx#25 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=525: sxxxxx#25 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=525: sxxxxx#25 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=525: sxxxxx#25 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=525: sxxxxx#25 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=525: sxxxxx#25 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=526: oxxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=526: oxxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=526: oxxxxx#25 nsp=1 mass=400 + -2.828427124746190e+01, 0.000000000000000e+00, // itest=526: oxxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=526: oxxxxx#25 nsp=1 mass=400 + -1.414213562373095e+01, 0.000000000000000e+00 } ); // itest=526: oxxxxx#25 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=527: oxxxxx#25 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=527: oxxxxx#25 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=527: oxxxxx#25 nsp=1 mass=-400 + -2.828427124746190e+01, 0.000000000000000e+00, // itest=527: oxxxxx#25 nsp=1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=527: oxxxxx#25 nsp=1 mass=-400 + 1.414213562373095e+01, -0.000000000000000e+00 } ); // itest=527: oxxxxx#25 nsp=1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=528: ixxxxx#26 nsp=1 mass=400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=528: ixxxxx#26 nsp=1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=528: ixxxxx#26 nsp=1 mass=400 + 5.999999999999999e+00, 7.999999999999999e+00, // itest=528: ixxxxx#26 nsp=1 mass=400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=528: ixxxxx#26 nsp=1 mass=400 + 1.200000000000000e+01, 1.600000000000000e+01 } ); // itest=528: ixxxxx#26 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=529: ixxxxx#26 nsp=1 mass=-400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=529: ixxxxx#26 nsp=1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00, // itest=529: ixxxxx#26 nsp=1 mass=-400 + -5.999999999999999e+00, -7.999999999999999e+00, // itest=529: ixxxxx#26 nsp=1 mass=-400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=529: ixxxxx#26 nsp=1 mass=-400 + 1.200000000000000e+01, 1.600000000000000e+01 } ); // itest=529: ixxxxx#26 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=530: vxxxxx#26 nsp=1 mass=400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=530: vxxxxx#26 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=530: vxxxxx#26 nsp=1 mass=400 + 0.000000000000000e+00, -5.656854249492381e-01, // itest=530: vxxxxx#26 nsp=1 mass=400 + 0.000000000000000e+00, 4.242640687119285e-01, // itest=530: vxxxxx#26 nsp=1 mass=400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=530: vxxxxx#26 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=531: vxxxxx#26 nsp=1 mass=-400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=531: vxxxxx#26 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=531: vxxxxx#26 nsp=1 mass=-400 + -0.000000000000000e+00, -5.656854249492381e-01, // itest=531: vxxxxx#26 nsp=1 mass=-400 + -0.000000000000000e+00, 4.242640687119285e-01, // itest=531: vxxxxx#26 nsp=1 mass=-400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=531: vxxxxx#26 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=532: sxxxxx#26 nsp=1 mass=400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=532: sxxxxx#26 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=532: sxxxxx#26 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=532: sxxxxx#26 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=532: sxxxxx#26 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=532: sxxxxx#26 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=533: sxxxxx#26 nsp=1 mass=-400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=533: sxxxxx#26 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=533: sxxxxx#26 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=533: sxxxxx#26 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=533: sxxxxx#26 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=533: sxxxxx#26 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=534: oxxxxx#26 nsp=1 mass=400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=534: oxxxxx#26 nsp=1 mass=400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=534: oxxxxx#26 nsp=1 mass=400 + 1.200000000000000e+01, -1.600000000000000e+01, // itest=534: oxxxxx#26 nsp=1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=534: oxxxxx#26 nsp=1 mass=400 + 5.999999999999999e+00, -7.999999999999999e+00 } ); // itest=534: oxxxxx#26 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=535: oxxxxx#26 nsp=1 mass=-400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=535: oxxxxx#26 nsp=1 mass=-400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=535: oxxxxx#26 nsp=1 mass=-400 + 1.200000000000000e+01, -1.600000000000000e+01, // itest=535: oxxxxx#26 nsp=1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00, // itest=535: oxxxxx#26 nsp=1 mass=-400 + -5.999999999999999e+00, 7.999999999999999e+00 } ); // itest=535: oxxxxx#26 nsp=1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=536: ixxxxx#27 nsp=1 mass=400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=536: ixxxxx#27 nsp=1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=536: ixxxxx#27 nsp=1 mass=400 + -7.999999999999999e+00, -5.999999999999999e+00, // itest=536: ixxxxx#27 nsp=1 mass=400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=536: ixxxxx#27 nsp=1 mass=400 + -1.600000000000000e+01, -1.200000000000000e+01 } ); // itest=536: ixxxxx#27 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=537: ixxxxx#27 nsp=1 mass=-400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=537: ixxxxx#27 nsp=1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00, // itest=537: ixxxxx#27 nsp=1 mass=-400 + 7.999999999999999e+00, 5.999999999999999e+00, // itest=537: ixxxxx#27 nsp=1 mass=-400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=537: ixxxxx#27 nsp=1 mass=-400 + -1.600000000000000e+01, -1.200000000000000e+01 } ); // itest=537: ixxxxx#27 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=538: vxxxxx#27 nsp=1 mass=400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=538: vxxxxx#27 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=538: vxxxxx#27 nsp=1 mass=400 + 0.000000000000000e+00, 4.242640687119285e-01, // itest=538: vxxxxx#27 nsp=1 mass=400 + 0.000000000000000e+00, -5.656854249492381e-01, // itest=538: vxxxxx#27 nsp=1 mass=400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=538: vxxxxx#27 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=539: vxxxxx#27 nsp=1 mass=-400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=539: vxxxxx#27 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=539: vxxxxx#27 nsp=1 mass=-400 + 0.000000000000000e+00, 4.242640687119285e-01, // itest=539: vxxxxx#27 nsp=1 mass=-400 + 0.000000000000000e+00, -5.656854249492381e-01, // itest=539: vxxxxx#27 nsp=1 mass=-400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=539: vxxxxx#27 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=540: sxxxxx#27 nsp=1 mass=400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=540: sxxxxx#27 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=540: sxxxxx#27 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=540: sxxxxx#27 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=540: sxxxxx#27 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=540: sxxxxx#27 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=541: sxxxxx#27 nsp=1 mass=-400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=541: sxxxxx#27 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=541: sxxxxx#27 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=541: sxxxxx#27 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=541: sxxxxx#27 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=541: sxxxxx#27 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=542: oxxxxx#27 nsp=1 mass=400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=542: oxxxxx#27 nsp=1 mass=400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=542: oxxxxx#27 nsp=1 mass=400 + -1.600000000000000e+01, 1.200000000000000e+01, // itest=542: oxxxxx#27 nsp=1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=542: oxxxxx#27 nsp=1 mass=400 + -7.999999999999999e+00, 5.999999999999999e+00 } ); // itest=542: oxxxxx#27 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=543: oxxxxx#27 nsp=1 mass=-400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=543: oxxxxx#27 nsp=1 mass=-400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=543: oxxxxx#27 nsp=1 mass=-400 + -1.600000000000000e+01, 1.200000000000000e+01, // itest=543: oxxxxx#27 nsp=1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00, // itest=543: oxxxxx#27 nsp=1 mass=-400 + 7.999999999999999e+00, -5.999999999999999e+00 } ); // itest=543: oxxxxx#27 nsp=1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=544: ixxxxx#28 nsp=1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=544: ixxxxx#28 nsp=1 mass=400 + 1.216552506059644e+01, 0.000000000000000e+00, // itest=544: ixxxxx#28 nsp=1 mass=400 + 4.931969619160719e+00, 5.260767593771432e+00, // itest=544: ixxxxx#28 nsp=1 mass=400 + 2.433105012119288e+01, 0.000000000000000e+00, // itest=544: ixxxxx#28 nsp=1 mass=400 + 9.863939238321439e+00, 1.052153518754287e+01 } ); // itest=544: ixxxxx#28 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=545: ixxxxx#28 nsp=1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=545: ixxxxx#28 nsp=1 mass=-400 + -1.216552506059644e+01, -0.000000000000000e+00, // itest=545: ixxxxx#28 nsp=1 mass=-400 + -4.931969619160719e+00, -5.260767593771432e+00, // itest=545: ixxxxx#28 nsp=1 mass=-400 + 2.433105012119288e+01, 0.000000000000000e+00, // itest=545: ixxxxx#28 nsp=1 mass=-400 + 9.863939238321439e+00, 1.052153518754287e+01 } ); // itest=545: ixxxxx#28 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=546: vxxxxx#28 nsp=1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=546: vxxxxx#28 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=546: vxxxxx#28 nsp=1 mass=400 + -2.321373168788980e-01, -5.158607041753289e-01, // itest=546: vxxxxx#28 nsp=1 mass=400 + -2.476131380041579e-01, 4.836194101643708e-01, // itest=546: vxxxxx#28 nsp=1 mass=400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=546: vxxxxx#28 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=547: vxxxxx#28 nsp=1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=547: vxxxxx#28 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=547: vxxxxx#28 nsp=1 mass=-400 + -2.321373168788980e-01, -5.158607041753289e-01, // itest=547: vxxxxx#28 nsp=1 mass=-400 + -2.476131380041579e-01, 4.836194101643708e-01, // itest=547: vxxxxx#28 nsp=1 mass=-400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=547: vxxxxx#28 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=548: sxxxxx#28 nsp=1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=548: sxxxxx#28 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=548: sxxxxx#28 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=548: sxxxxx#28 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=548: sxxxxx#28 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=548: sxxxxx#28 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=549: sxxxxx#28 nsp=1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=549: sxxxxx#28 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=549: sxxxxx#28 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=549: sxxxxx#28 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=549: sxxxxx#28 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=549: sxxxxx#28 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=550: oxxxxx#28 nsp=1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=550: oxxxxx#28 nsp=1 mass=400 + 2.433105012119288e+01, 0.000000000000000e+00, // itest=550: oxxxxx#28 nsp=1 mass=400 + 9.863939238321439e+00, -1.052153518754287e+01, // itest=550: oxxxxx#28 nsp=1 mass=400 + 1.216552506059644e+01, 0.000000000000000e+00, // itest=550: oxxxxx#28 nsp=1 mass=400 + 4.931969619160719e+00, -5.260767593771432e+00 } ); // itest=550: oxxxxx#28 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=551: oxxxxx#28 nsp=1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=551: oxxxxx#28 nsp=1 mass=-400 + 2.433105012119288e+01, 0.000000000000000e+00, // itest=551: oxxxxx#28 nsp=1 mass=-400 + 9.863939238321439e+00, -1.052153518754287e+01, // itest=551: oxxxxx#28 nsp=1 mass=-400 + -1.216552506059644e+01, -0.000000000000000e+00, // itest=551: oxxxxx#28 nsp=1 mass=-400 + -4.931969619160719e+00, 5.260767593771432e+00 } ); // itest=551: oxxxxx#28 nsp=1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=552: ixxxxx#29 nsp=1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=552: ixxxxx#29 nsp=1 mass=400 + 7.211102550927978e+00, 0.000000000000000e+00, // itest=552: ixxxxx#29 nsp=1 mass=400 + 8.320502943378436e+00, 8.875203139603666e+00, // itest=552: ixxxxx#29 nsp=1 mass=400 + 1.442220510185596e+01, 0.000000000000000e+00, // itest=552: ixxxxx#29 nsp=1 mass=400 + 1.664100588675688e+01, 1.775040627920733e+01 } ); // itest=552: ixxxxx#29 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=553: ixxxxx#29 nsp=1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=553: ixxxxx#29 nsp=1 mass=-400 + -7.211102550927978e+00, -0.000000000000000e+00, // itest=553: ixxxxx#29 nsp=1 mass=-400 + -8.320502943378436e+00, -8.875203139603666e+00, // itest=553: ixxxxx#29 nsp=1 mass=-400 + 1.442220510185596e+01, 0.000000000000000e+00, // itest=553: ixxxxx#29 nsp=1 mass=-400 + 1.664100588675688e+01, 1.775040627920733e+01 } ); // itest=553: ixxxxx#29 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=554: vxxxxx#29 nsp=1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=554: vxxxxx#29 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=554: vxxxxx#29 nsp=1 mass=400 + 2.321373168788980e-01, -5.158607041753289e-01, // itest=554: vxxxxx#29 nsp=1 mass=400 + 2.476131380041579e-01, 4.836194101643708e-01, // itest=554: vxxxxx#29 nsp=1 mass=400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=554: vxxxxx#29 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=555: vxxxxx#29 nsp=1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=555: vxxxxx#29 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=555: vxxxxx#29 nsp=1 mass=-400 + 2.321373168788980e-01, -5.158607041753289e-01, // itest=555: vxxxxx#29 nsp=1 mass=-400 + 2.476131380041579e-01, 4.836194101643708e-01, // itest=555: vxxxxx#29 nsp=1 mass=-400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=555: vxxxxx#29 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=556: sxxxxx#29 nsp=1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=556: sxxxxx#29 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=556: sxxxxx#29 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=556: sxxxxx#29 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=556: sxxxxx#29 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=556: sxxxxx#29 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=557: sxxxxx#29 nsp=1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=557: sxxxxx#29 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=557: sxxxxx#29 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=557: sxxxxx#29 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=557: sxxxxx#29 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=557: sxxxxx#29 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=558: oxxxxx#29 nsp=1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=558: oxxxxx#29 nsp=1 mass=400 + 1.442220510185596e+01, 0.000000000000000e+00, // itest=558: oxxxxx#29 nsp=1 mass=400 + 1.664100588675688e+01, -1.775040627920733e+01, // itest=558: oxxxxx#29 nsp=1 mass=400 + 7.211102550927978e+00, 0.000000000000000e+00, // itest=558: oxxxxx#29 nsp=1 mass=400 + 8.320502943378436e+00, -8.875203139603666e+00 } ); // itest=558: oxxxxx#29 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=559: oxxxxx#29 nsp=1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=559: oxxxxx#29 nsp=1 mass=-400 + 1.442220510185596e+01, 0.000000000000000e+00, // itest=559: oxxxxx#29 nsp=1 mass=-400 + 1.664100588675688e+01, -1.775040627920733e+01, // itest=559: oxxxxx#29 nsp=1 mass=-400 + -7.211102550927978e+00, -0.000000000000000e+00, // itest=559: oxxxxx#29 nsp=1 mass=-400 + -8.320502943378436e+00, 8.875203139603666e+00 } ); // itest=559: oxxxxx#29 nsp=1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=560: ixxxxx#30 nsp=1 mass=500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=560: ixxxxx#30 nsp=1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=560: ixxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=560: ixxxxx#30 nsp=1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=560: ixxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=560: ixxxxx#30 nsp=1 mass=500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=561: ixxxxx#30 nsp=1 mass=-500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=561: ixxxxx#30 nsp=1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=561: ixxxxx#30 nsp=1 mass=-500 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=561: ixxxxx#30 nsp=1 mass=-500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=561: ixxxxx#30 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=561: ixxxxx#30 nsp=1 mass=-500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=562: vxxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=562: vxxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=562: vxxxxx#30 nsp=1 mass=500 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=562: vxxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=562: vxxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=562: vxxxxx#30 nsp=1 mass=500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=563: vxxxxx#30 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=563: vxxxxx#30 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=563: vxxxxx#30 nsp=1 mass=-500 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=563: vxxxxx#30 nsp=1 mass=-500 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=563: vxxxxx#30 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=563: vxxxxx#30 nsp=1 mass=-500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=564: sxxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=564: sxxxxx#30 nsp=1 mass=500 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=564: sxxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=564: sxxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=564: sxxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=564: sxxxxx#30 nsp=1 mass=500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=565: sxxxxx#30 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=565: sxxxxx#30 nsp=1 mass=-500 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=565: sxxxxx#30 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=565: sxxxxx#30 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=565: sxxxxx#30 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=565: sxxxxx#30 nsp=1 mass=-500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=566: oxxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=566: oxxxxx#30 nsp=1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=566: oxxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=566: oxxxxx#30 nsp=1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=566: oxxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=566: oxxxxx#30 nsp=1 mass=500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=567: oxxxxx#30 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=567: oxxxxx#30 nsp=1 mass=-500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=567: oxxxxx#30 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=567: oxxxxx#30 nsp=1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=567: oxxxxx#30 nsp=1 mass=-500 + -0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=567: oxxxxx#30 nsp=1 mass=-500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=568: ixxxxx#31 nsp=1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=568: ixxxxx#31 nsp=1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=568: ixxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=568: ixxxxx#31 nsp=1 mass=400 + 2.828427124746190e+01, 0.000000000000000e+00, // itest=568: ixxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=568: ixxxxx#31 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=569: ixxxxx#31 nsp=1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=569: ixxxxx#31 nsp=1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=569: ixxxxx#31 nsp=1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=569: ixxxxx#31 nsp=1 mass=-400 + 2.828427124746190e+01, 0.000000000000000e+00, // itest=569: ixxxxx#31 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=569: ixxxxx#31 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=570: vxxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=570: vxxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=570: vxxxxx#31 nsp=1 mass=400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=570: vxxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=570: vxxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=570: vxxxxx#31 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=571: vxxxxx#31 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=571: vxxxxx#31 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=571: vxxxxx#31 nsp=1 mass=-400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=571: vxxxxx#31 nsp=1 mass=-400 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=571: vxxxxx#31 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=571: vxxxxx#31 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=572: sxxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=572: sxxxxx#31 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=572: sxxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=572: sxxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=572: sxxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=572: sxxxxx#31 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=573: sxxxxx#31 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=573: sxxxxx#31 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=573: sxxxxx#31 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=573: sxxxxx#31 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=573: sxxxxx#31 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=573: sxxxxx#31 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=574: oxxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=574: oxxxxx#31 nsp=1 mass=400 + 2.828427124746190e+01, 0.000000000000000e+00, // itest=574: oxxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=574: oxxxxx#31 nsp=1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=574: oxxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=574: oxxxxx#31 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=575: oxxxxx#31 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=575: oxxxxx#31 nsp=1 mass=-400 + 2.828427124746190e+01, 0.000000000000000e+00, // itest=575: oxxxxx#31 nsp=1 mass=-400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=575: oxxxxx#31 nsp=1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=575: oxxxxx#31 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=575: oxxxxx#31 nsp=1 mass=-400 diff --git a/epochX/cudacpp/gg_ttg.sa/src/HelAmps_sm.h b/epochX/cudacpp/gg_ttg.sa/src/HelAmps_sm.h index 5a3a5dc76f..dd17387b4e 100644 --- a/epochX/cudacpp/gg_ttg.sa/src/HelAmps_sm.h +++ b/epochX/cudacpp/gg_ttg.sa/src/HelAmps_sm.h @@ -1,3 +1,4 @@ +// Copyright (C) 2010 The ALOHA Development team and Contributors. // Copyright (C) 2010 The MadGraph5_aMC@NLO development team and contributors. // Created by: J. Alwall (Sep 2010) for the MG5aMC backend. //========================================================================== @@ -21,6 +22,7 @@ #include "Parameters_sm.h" +#include //#include //#include //#include @@ -190,6 +192,9 @@ namespace mg5amcCpu const int ipar ) // input: particle# out of npar { mgDebug( 0, __FUNCTION__ ); + // NEW IMPLEMENTATION FIXING FLOATING POINT EXCEPTIONS IN SIMD CODE (#701) + // Variables xxxDENOM are a hack to avoid division-by-0 FPE while preserving speed (#701 and #727) + // Variables xxxDENOM are declared as 'volatile' to make sure they are not optimized away on clang! (#724) const fptype_sv& pvec0 = M_ACCESS::kernelAccessIp4IparConst( momenta, 0, ipar ); const fptype_sv& pvec1 = M_ACCESS::kernelAccessIp4IparConst( momenta, 1, ipar ); const fptype_sv& pvec2 = M_ACCESS::kernelAccessIp4IparConst( momenta, 2, ipar ); @@ -201,6 +206,11 @@ namespace mg5amcCpu if( fmass != 0. ) { const fptype_sv pp = fpmin( pvec0, fpsqrt( pvec1 * pvec1 + pvec2 * pvec2 + pvec3 * pvec3 ) ); + // In C++ ixxxxx, use a single ip/im numbering that is valid both for pp==0 and pp>0, which have two numbering schemes in Fortran ixxxxx: + // for pp==0, Fortran sqm(0:1) has indexes 0,1 as in C++; but for Fortran pp>0, omega(2) has indexes 1,2 and not 0,1 + // NB: this is only possible in ixxxx, but in oxxxxx two different numbering schemes must be used + const int ip = ( 1 + nh ) / 2; // NB: same as in Fortran pp==0, differs from Fortran pp>0, which is (3+nh)/2 because omega(2) has indexes 1,2 + const int im = ( 1 - nh ) / 2; // NB: same as in Fortran pp==0, differs from Fortran pp>0, which is (3-nh)/2 because omega(2) has indexes 1,2 #ifndef MGONGPU_CPPSIMD if( pp == 0. ) { @@ -208,8 +218,6 @@ namespace mg5amcCpu fptype sqm[2] = { fpsqrt( std::abs( fmass ) ), 0. }; // possibility of negative fermion masses //sqm[1] = ( fmass < 0. ? -abs( sqm[0] ) : abs( sqm[0] ) ); // AV: why abs here? sqm[1] = ( fmass < 0. ? -sqm[0] : sqm[0] ); // AV: removed an abs here - const int ip = ( 1 + nh ) / 2; // NB: Fortran sqm(0:1) also has indexes 0,1 as in C++ - const int im = ( 1 - nh ) / 2; // NB: Fortran sqm(0:1) also has indexes 0,1 as in C++ fi[2] = cxmake( ip * sqm[ip], 0 ); fi[3] = cxmake( im * nsf * sqm[ip], 0 ); fi[4] = cxmake( ip * nsf * sqm[im], 0 ); @@ -221,8 +229,6 @@ namespace mg5amcCpu fptype( 1 + nsf - ( 1 - nsf ) * nh ) * (fptype)0.5 }; fptype omega[2] = { fpsqrt( pvec0 + pp ), 0. }; omega[1] = fmass / omega[0]; - const int ip = ( 1 + nh ) / 2; // NB: Fortran is (3+nh)/2 because omega(2) has indexes 1,2 and not 0,1 - const int im = ( 1 - nh ) / 2; // NB: Fortran is (3-nh)/2 because omega(2) has indexes 1,2 and not 0,1 const fptype sfomega[2] = { sf[0] * omega[ip], sf[1] * omega[im] }; const fptype pp3 = fpmax( pp + pvec3, 0. ); const cxtype chi[2] = { cxmake( fpsqrt( pp3 * (fptype)0.5 / pp ), 0. ), @@ -233,8 +239,6 @@ namespace mg5amcCpu fi[5] = sfomega[1] * chi[ip]; } #else - const int ip = ( 1 + nh ) / 2; - const int im = ( 1 - nh ) / 2; // Branch A: pp == 0. // NB: Do not use "abs" for floats! It returns an integer with no build warning! Use std::abs! fptype sqm[2] = { fpsqrt( std::abs( fmass ) ), 0 }; // possibility of negative fermion masses (NB: SCALAR!) @@ -250,10 +254,12 @@ namespace mg5amcCpu omega[1] = fmass / omega[0]; const fptype_v sfomega[2] = { sf[0] * omega[ip], sf[1] * omega[im] }; const fptype_v pp3 = fpmax( pp + pvec3, 0 ); - const cxtype_v chi[2] = { cxmake( fpsqrt( pp3 * 0.5 / pp ), 0 ), + volatile fptype_v ppDENOM = fpternary( pp != 0, pp, 1. ); // hack: ppDENOM[ieppV]=1 if pp[ieppV]==0 + volatile fptype_v pp3DENOM = fpternary( pp3 != 0, pp3, 1. ); // hack: pp3DENOM[ieppV]=1 if pp3[ieppV]==0 + const cxtype_v chi[2] = { cxmake( fpsqrt( pp3 * 0.5 / ppDENOM ), 0 ), // hack: dummy[ieppV] is not used if pp[ieppV]==0 cxternary( ( pp3 == 0. ), cxmake( -nh, 0 ), - cxmake( (fptype)nh * pvec1, pvec2 ) / fpsqrt( 2. * pp * pp3 ) ) }; + cxmake( (fptype)nh * pvec1, pvec2 ) / fpsqrt( 2. * ppDENOM * pp3DENOM ) ) }; // hack: dummy[ieppV] is not used if pp[ieppV]==0 const cxtype_v fiB_2 = sfomega[0] * chi[im]; const cxtype_v fiB_3 = sfomega[0] * chi[ip]; const cxtype_v fiB_4 = sfomega[1] * chi[im]; @@ -271,7 +277,16 @@ namespace mg5amcCpu const fptype_sv sqp0p3 = fpternary( ( pvec1 == 0. and pvec2 == 0. and pvec3 < 0. ), fptype_sv{ 0 }, fpsqrt( fpmax( pvec0 + pvec3, 0. ) ) * (fptype)nsf ); - const cxtype_sv chi[2] = { cxmake( sqp0p3, 0. ), cxternary( ( sqp0p3 == 0. ), cxmake( -(fptype)nhel * fpsqrt( 2. * pvec0 ), 0. ), cxmake( (fptype)nh * pvec1, pvec2 ) / sqp0p3 ) }; +#ifdef MGONGPU_CPPSIMD + volatile fptype_v sqp0p3DENOM = fpternary( sqp0p3 != 0, sqp0p3, 1. ); // hack: dummy sqp0p3DENOM[ieppV]=1 if sqp0p3[ieppV]==0 + cxtype_sv chi[2] = { cxmake( sqp0p3, 0. ), + cxternary( sqp0p3 == 0, + cxmake( -(fptype)nhel * fpsqrt( 2. * pvec0 ), 0. ), + cxmake( (fptype)nh * pvec1, pvec2 ) / (const fptype_v)sqp0p3DENOM ) }; // hack: dummy[ieppV] is not used if sqp0p3[ieppV]==0 +#else + const cxtype_sv chi[2] = { cxmake( sqp0p3, 0. ), + ( sqp0p3 == 0. ? cxmake( -(fptype)nhel * fpsqrt( 2. * pvec0 ), 0. ) : cxmake( (fptype)nh * pvec1, pvec2 ) / sqp0p3 ) }; +#endif if( nh == 1 ) { fi[2] = cxzero_sv(); @@ -422,6 +437,9 @@ namespace mg5amcCpu const int ipar ) // input: particle# out of npar { mgDebug( 0, __FUNCTION__ ); + // NEW IMPLEMENTATION FIXING FLOATING POINT EXCEPTIONS IN SIMD CODE (#701) + // Variables xxxDENOM are a hack to avoid division-by-0 FPE while preserving speed (#701 and #727) + // Variables xxxDENOM are declared as 'volatile' to make sure they are not optimized away on clang! (#724) const fptype_sv& pvec0 = M_ACCESS::kernelAccessIp4IparConst( momenta, 0, ipar ); const fptype_sv& pvec1 = M_ACCESS::kernelAccessIp4IparConst( momenta, 1, ipar ); const fptype_sv& pvec2 = M_ACCESS::kernelAccessIp4IparConst( momenta, 2, ipar ); @@ -472,13 +490,15 @@ namespace mg5amcCpu const cxtype vcA_4 = cxmake( 0, nsvahl * sqh ); const cxtype vcA_5 = cxmake( hel0, 0 ); // Branch B: pp != 0. - const fptype_v emp = pvec0 / ( vmass * pp ); + volatile fptype_v ppDENOM = fpternary( pp != 0, pp, 1. ); // hack: ppDENOM[ieppV]=1 if pp[ieppV]==0 + const fptype_v emp = pvec0 / ( vmass * ppDENOM ); // hack: dummy[ieppV] is not used if pp[ieppV]==0 const cxtype_v vcB_2 = cxmake( hel0 * pp / vmass, 0 ); - const cxtype_v vcB_5 = cxmake( hel0 * pvec3 * emp + hel * pt / pp * sqh, 0 ); + const cxtype_v vcB_5 = cxmake( hel0 * pvec3 * emp + hel * pt / ppDENOM * sqh, 0 ); // hack: dummy[ieppV] is not used if pp[ieppV]==0 // Branch B1: pp != 0. and pt != 0. - const fptype_v pzpt = pvec3 / ( pp * pt ) * sqh * hel; - const cxtype_v vcB1_3 = cxmake( hel0 * pvec1 * emp - pvec1 * pzpt, -(fptype)nsvahl * pvec2 / pt * sqh ); - const cxtype_v vcB1_4 = cxmake( hel0 * pvec2 * emp - pvec2 * pzpt, (fptype)nsvahl * pvec1 / pt * sqh ); + volatile fptype_v ptDENOM = fpternary( pt != 0, pt, 1. ); // hack: ptDENOM[ieppV]=1 if pt[ieppV]==0 + const fptype_v pzpt = pvec3 / ( ppDENOM * ptDENOM ) * sqh * hel; // hack: dummy[ieppV] is not used if pp[ieppV]==0 + const cxtype_v vcB1_3 = cxmake( hel0 * pvec1 * emp - pvec1 * pzpt, -(fptype)nsvahl * pvec2 / ptDENOM * sqh ); // hack: dummy[ieppV] is not used if pt[ieppV]==0 + const cxtype_v vcB1_4 = cxmake( hel0 * pvec2 * emp - pvec2 * pzpt, (fptype)nsvahl * pvec1 / ptDENOM * sqh ); // hack: dummy[ieppV] is not used if pt[ieppV]==0 // Branch B2: pp != 0. and pt == 0. const cxtype vcB2_3 = cxmake( -hel * sqh, 0. ); const cxtype_v vcB2_4 = cxmake( 0., (fptype)nsvahl * fpternary( ( pvec3 < 0 ), -sqh, sqh ) ); // AV: removed an abs here @@ -513,9 +533,10 @@ namespace mg5amcCpu } #else // Branch A: pt != 0. - const fptype_v pzpt = pvec3 / ( pp * pt ) * sqh * hel; - const cxtype_v vcA_3 = cxmake( -pvec1 * pzpt, -(fptype)nsv * pvec2 / pt * sqh ); - const cxtype_v vcA_4 = cxmake( -pvec2 * pzpt, (fptype)nsv * pvec1 / pt * sqh ); + volatile fptype_v ptDENOM = fpternary( pt != 0, pt, 1. ); // hack: ptDENOM[ieppV]=1 if pt[ieppV]==0 + const fptype_v pzpt = pvec3 / ( pp * ptDENOM ) * sqh * hel; // hack: dummy[ieppV] is not used if pt[ieppV]==0 + const cxtype_v vcA_3 = cxmake( -pvec1 * pzpt, -(fptype)nsv * pvec2 / ptDENOM * sqh ); // hack: dummy[ieppV] is not used if pt[ieppV]==0 + const cxtype_v vcA_4 = cxmake( -pvec2 * pzpt, (fptype)nsv * pvec1 / ptDENOM * sqh ); // hack: dummy[ieppV] is not used if pt[ieppV]==0 // Branch B: pt == 0. const cxtype vcB_3 = cxmake( -(fptype)hel * sqh, 0 ); const cxtype_v vcB_4 = cxmake( 0, (fptype)nsv * fpternary( ( pvec3 < 0 ), -sqh, sqh ) ); // AV: removed an abs here @@ -567,6 +588,9 @@ namespace mg5amcCpu const int ipar ) // input: particle# out of npar { mgDebug( 0, __FUNCTION__ ); + // NEW IMPLEMENTATION FIXING FLOATING POINT EXCEPTIONS IN SIMD CODE (#701) + // Variables xxxDENOM are a hack to avoid division-by-0 FPE while preserving speed (#701 and #727) + // Variables xxxDENOM are declared as 'volatile' to make sure they are not optimized away on clang! (#724) const fptype_sv& pvec0 = M_ACCESS::kernelAccessIp4IparConst( momenta, 0, ipar ); const fptype_sv& pvec1 = M_ACCESS::kernelAccessIp4IparConst( momenta, 1, ipar ); const fptype_sv& pvec2 = M_ACCESS::kernelAccessIp4IparConst( momenta, 2, ipar ); @@ -630,10 +654,12 @@ namespace mg5amcCpu const int imB = ( 1 - nh ) / 2; const fptype_v sfomeg[2] = { sf[0] * omega[ipB], sf[1] * omega[imB] }; const fptype_v pp3 = fpmax( pp + pvec3, 0. ); - const cxtype_v chi[2] = { cxmake( fpsqrt( pp3 * 0.5 / pp ), 0. ), + volatile fptype_v ppDENOM = fpternary( pp != 0, pp, 1. ); // hack: ppDENOM[ieppV]=1 if pp[ieppV]==0 + volatile fptype_v pp3DENOM = fpternary( pp3 != 0, pp3, 1. ); // hack: pp3DENOM[ieppV]=1 if pp3[ieppV]==0 + const cxtype_v chi[2] = { cxmake( fpsqrt( pp3 * 0.5 / ppDENOM ), 0. ), // hack: dummy[ieppV] is not used if pp[ieppV]==0 ( cxternary( ( pp3 == 0. ), cxmake( -nh, 0. ), - cxmake( (fptype)nh * pvec1, -pvec2 ) / fpsqrt( 2. * pp * pp3 ) ) ) }; + cxmake( (fptype)nh * pvec1, -pvec2 ) / fpsqrt( 2. * ppDENOM * pp3DENOM ) ) ) }; // hack: dummy[ieppV] is not used if pp[ieppV]==0 const cxtype_v foB_2 = sfomeg[1] * chi[imB]; const cxtype_v foB_3 = sfomeg[1] * chi[ipB]; const cxtype_v foB_4 = sfomeg[0] * chi[imB]; @@ -651,10 +677,16 @@ namespace mg5amcCpu const fptype_sv sqp0p3 = fpternary( ( pvec1 == 0. ) and ( pvec2 == 0. ) and ( pvec3 < 0. ), 0, fpsqrt( fpmax( pvec0 + pvec3, 0. ) ) * (fptype)nsf ); +#ifdef MGONGPU_CPPSIMD + volatile fptype_v sqp0p3DENOM = fpternary( sqp0p3 != 0, sqp0p3, 1. ); // hack: sqp0p3DENOM[ieppV]=1 if sqp0p3[ieppV]==0 + const cxtype_v chi[2] = { cxmake( sqp0p3, 0. ), + cxternary( ( sqp0p3 == 0. ), + cxmake( -nhel, 0. ) * fpsqrt( 2. * pvec0 ), + cxmake( (fptype)nh * pvec1, -pvec2 ) / (const fptype_sv)sqp0p3DENOM ) }; // hack: dummy[ieppV] is not used if sqp0p3[ieppV]==0 +#else const cxtype_sv chi[2] = { cxmake( sqp0p3, 0. ), - cxternary( ( sqp0p3 == 0. ), - cxmake( -nhel, 0. ) * fpsqrt( 2. * pvec0 ), - cxmake( (fptype)nh * pvec1, -pvec2 ) / sqp0p3 ) }; + ( sqp0p3 == 0. ? cxmake( -nhel, 0. ) * fpsqrt( 2. * pvec0 ) : cxmake( (fptype)nh * pvec1, -pvec2 ) / sqp0p3 ) }; +#endif if( nh == 1 ) { fo[2] = chi[0]; diff --git a/epochX/cudacpp/gg_ttg.sa/src/Parameters_sm.cc b/epochX/cudacpp/gg_ttg.sa/src/Parameters_sm.cc index d3d01102fd..22fdd96a68 100644 --- a/epochX/cudacpp/gg_ttg.sa/src/Parameters_sm.cc +++ b/epochX/cudacpp/gg_ttg.sa/src/Parameters_sm.cc @@ -17,6 +17,12 @@ #include #include +#ifdef __CUDACC__ +using namespace mg5amcGpu; +#else +using namespace mg5amcCpu; +#endif + #ifndef MGONGPU_HARDCODE_PARAM // Initialize static instance diff --git a/epochX/cudacpp/gg_ttg.sa/src/Parameters_sm.h b/epochX/cudacpp/gg_ttg.sa/src/Parameters_sm.h index 6551d8da81..11fd9e3c74 100644 --- a/epochX/cudacpp/gg_ttg.sa/src/Parameters_sm.h +++ b/epochX/cudacpp/gg_ttg.sa/src/Parameters_sm.h @@ -26,191 +26,216 @@ #include "read_slha.h" -class Parameters_sm +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { -public: + class Parameters_sm + { + public: - static Parameters_sm* getInstance(); + static Parameters_sm* getInstance(); - // Define "zero" - double zero, ZERO; + // Define "zero" + double zero, ZERO; - // Model parameters independent of aS - //double aS; // now retrieved event-by-event (as G) from Fortran (running alphas #373) - double mdl_WH, mdl_WW, mdl_WZ, mdl_WT, mdl_ymtau, mdl_ymt, mdl_ymb, mdl_Gf, aEWM1, mdl_MH, mdl_MZ, mdl_MTA, mdl_MT, mdl_MB, mdl_conjg__CKM3x3, mdl_conjg__CKM1x1, mdl_CKM3x3, mdl_MZ__exp__2, mdl_MZ__exp__4, mdl_sqrt__2, mdl_MH__exp__2, mdl_aEW, mdl_MW, mdl_sqrt__aEW, mdl_ee, mdl_MW__exp__2, mdl_sw2, mdl_cw, mdl_sqrt__sw2, mdl_sw, mdl_g1, mdl_gw, mdl_vev, mdl_vev__exp__2, mdl_lam, mdl_yb, mdl_yt, mdl_ytau, mdl_muH, mdl_ee__exp__2, mdl_sw__exp__2, mdl_cw__exp__2; - cxsmpl mdl_complexi, mdl_I1x33, mdl_I2x33, mdl_I3x33, mdl_I4x33; + // Model parameters independent of aS + //double aS; // now retrieved event-by-event (as G) from Fortran (running alphas #373) + double mdl_WH, mdl_WW, mdl_WZ, mdl_WT, mdl_ymtau, mdl_ymt, mdl_ymb, mdl_Gf, aEWM1, mdl_MH, mdl_MZ, mdl_MTA, mdl_MT, mdl_MB, mdl_conjg__CKM3x3, mdl_conjg__CKM1x1, mdl_CKM3x3, mdl_MZ__exp__2, mdl_MZ__exp__4, mdl_sqrt__2, mdl_MH__exp__2, mdl_aEW, mdl_MW, mdl_sqrt__aEW, mdl_ee, mdl_MW__exp__2, mdl_sw2, mdl_cw, mdl_sqrt__sw2, mdl_sw, mdl_g1, mdl_gw, mdl_vev, mdl_vev__exp__2, mdl_lam, mdl_yb, mdl_yt, mdl_ytau, mdl_muH, mdl_ee__exp__2, mdl_sw__exp__2, mdl_cw__exp__2; + cxsmpl mdl_complexi, mdl_I1x33, mdl_I2x33, mdl_I3x33, mdl_I4x33; - // Model couplings independent of aS - // (none) + // Model couplings independent of aS + // (none) - // Model parameters dependent on aS - //double mdl_sqrt__aS, G, mdl_G__exp__2; // now computed event-by-event (running alphas #373) + // Model parameters dependent on aS + //double mdl_sqrt__aS, G, mdl_G__exp__2; // now computed event-by-event (running alphas #373) - // Model couplings dependent on aS - //cxsmpl GC_10, GC_11, GC_12; // now computed event-by-event (running alphas #373) + // Model couplings dependent on aS + //cxsmpl GC_10, GC_11, GC_12; // now computed event-by-event (running alphas #373) - // Set parameters that are unchanged during the run - void setIndependentParameters( SLHAReader& slha ); + // Set parameters that are unchanged during the run + void setIndependentParameters( SLHAReader& slha ); - // Set couplings that are unchanged during the run - void setIndependentCouplings(); + // Set couplings that are unchanged during the run + void setIndependentCouplings(); - // Set parameters that are changed event by event - //void setDependentParameters(); // now computed event-by-event (running alphas #373) + // Set parameters that are changed event by event + //void setDependentParameters(); // now computed event-by-event (running alphas #373) - // Set couplings that are changed event by event - //void setDependentCouplings(); // now computed event-by-event (running alphas #373) + // Set couplings that are changed event by event + //void setDependentCouplings(); // now computed event-by-event (running alphas #373) - // Print parameters that are unchanged during the run - void printIndependentParameters(); + // Print parameters that are unchanged during the run + void printIndependentParameters(); - // Print couplings that are unchanged during the run - void printIndependentCouplings(); + // Print couplings that are unchanged during the run + void printIndependentCouplings(); - // Print parameters that are changed event by event - //void printDependentParameters(); // now computed event-by-event (running alphas #373) + // Print parameters that are changed event by event + //void printDependentParameters(); // now computed event-by-event (running alphas #373) - // Print couplings that are changed event by event - //void printDependentCouplings(); // now computed event-by-event (running alphas #373) + // Print couplings that are changed event by event + //void printDependentCouplings(); // now computed event-by-event (running alphas #373) -private: + private: - static Parameters_sm* instance; -}; + static Parameters_sm* instance; + }; + +} // end namespace mg5amcGpu/mg5amcCpu #else #include #include -// Hardcoded constexpr physics parameters -namespace Parameters_sm // keep the same name rather than HardcodedParameters_sm for simplicity +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { - // Constexpr implementation of sqrt (see https://stackoverflow.com/a/34134071) - double constexpr sqrtNewtonRaphson( double x, double curr, double prev ) + // Hardcoded constexpr physics parameters + namespace Parameters_sm // keep the same name rather than HardcodedParameters_sm for simplicity { - return curr == prev ? curr : sqrtNewtonRaphson( x, 0.5 * ( curr + x / curr ), curr ); - } - double constexpr constexpr_sqrt( double x ) - { - return x >= 0 // && x < std::numeric_limits::infinity() // avoid -Wtautological-constant-compare warning in fast math - ? sqrtNewtonRaphson( x, x, 0 ) - : std::numeric_limits::quiet_NaN(); - } + // Constexpr implementation of sqrt (see https://stackoverflow.com/a/34134071) + double constexpr sqrtNewtonRaphson( double x, double curr, double prev ) + { + return curr == prev ? curr : sqrtNewtonRaphson( x, 0.5 * ( curr + x / curr ), curr ); + } + double constexpr constexpr_sqrt( double x ) + { + return x >= 0 // && x < std::numeric_limits::infinity() // avoid -Wtautological-constant-compare warning in fast math + ? sqrtNewtonRaphson( x, x, 0 ) + : std::numeric_limits::quiet_NaN(); + } - // Constexpr implementation of floor (see https://stackoverflow.com/a/66146159) - constexpr int constexpr_floor( double d ) - { - const int i = static_cast( d ); - return d < i ? i - 1 : i; - } + // Constexpr implementation of floor (see https://stackoverflow.com/a/66146159) + constexpr int constexpr_floor( double d ) + { + const int i = static_cast( d ); + return d < i ? i - 1 : i; + } - // Constexpr implementation of pow - constexpr double constexpr_pow( double base, double exp ) - { - // NB(1): this implementation of constexpr_pow requires exponent >= 0 - assert( exp >= 0 ); // NB would fail at compile time with "error: call to non-‘constexpr’ function ‘void __assert_fail'" - // NB(2): this implementation of constexpr_pow requires an integer exponent - const int iexp = constexpr_floor( exp ); - assert( static_cast( iexp ) == exp ); // NB would fail at compile time with "error: call to non-‘constexpr’ function ‘void __assert_fail'" - // Iterative implementation of pow if exp is a non negative integer - return iexp == 0 ? 1 : base * constexpr_pow( base, iexp - 1 ); + // Constexpr implementation of pow + constexpr double constexpr_pow( double base, double exp ) + { + // NB(1): this implementation of constexpr_pow requires exponent >= 0 + assert( exp >= 0 ); // NB would fail at compile time with "error: call to non-‘constexpr’ function ‘void __assert_fail'" + // NB(2): this implementation of constexpr_pow requires an integer exponent + const int iexp = constexpr_floor( exp ); + assert( static_cast( iexp ) == exp ); // NB would fail at compile time with "error: call to non-‘constexpr’ function ‘void __assert_fail'" + // Iterative implementation of pow if exp is a non negative integer + return iexp == 0 ? 1 : base * constexpr_pow( base, iexp - 1 ); + } + + // Model parameters independent of aS + constexpr double zero = 0; + constexpr double ZERO = 0; + constexpr double mdl_WH = 6.382339e-03; + constexpr double mdl_WW = 2.047600e+00; + constexpr double mdl_WZ = 2.441404e+00; + constexpr double mdl_WT = 1.491500e+00; + constexpr double mdl_ymtau = 1.777000e+00; + constexpr double mdl_ymt = 1.730000e+02; + constexpr double mdl_ymb = 4.700000e+00; + //constexpr double aS = 1.180000e-01; // now retrieved event-by-event (as G) from Fortran (running alphas #373) + constexpr double mdl_Gf = 1.166390e-05; + constexpr double aEWM1 = 1.325070e+02; + constexpr double mdl_MH = 1.250000e+02; + constexpr double mdl_MZ = 9.118800e+01; + constexpr double mdl_MTA = 1.777000e+00; + constexpr double mdl_MT = 1.730000e+02; + constexpr double mdl_MB = 4.700000e+00; + constexpr double mdl_conjg__CKM3x3 = 1.; + constexpr double mdl_conjg__CKM1x1 = 1.; + constexpr double mdl_CKM3x3 = 1.; + constexpr cxsmpl mdl_complexi = cxsmpl( 0., 1. ); + constexpr double mdl_MZ__exp__2 = ( ( mdl_MZ ) * ( mdl_MZ ) ); + constexpr double mdl_MZ__exp__4 = ( ( mdl_MZ ) * ( mdl_MZ ) * ( mdl_MZ ) * ( mdl_MZ ) ); + constexpr double mdl_sqrt__2 = constexpr_sqrt( 2. ); + constexpr double mdl_MH__exp__2 = ( ( mdl_MH ) * ( mdl_MH ) ); + constexpr double mdl_aEW = 1. / aEWM1; + constexpr double mdl_MW = constexpr_sqrt( mdl_MZ__exp__2 / 2. + constexpr_sqrt( mdl_MZ__exp__4 / 4. - ( mdl_aEW * M_PI * mdl_MZ__exp__2 ) / ( mdl_Gf * mdl_sqrt__2 ) ) ); + constexpr double mdl_sqrt__aEW = constexpr_sqrt( mdl_aEW ); + constexpr double mdl_ee = 2. * mdl_sqrt__aEW * constexpr_sqrt( M_PI ); + constexpr double mdl_MW__exp__2 = ( ( mdl_MW ) * ( mdl_MW ) ); + constexpr double mdl_sw2 = 1. - mdl_MW__exp__2 / mdl_MZ__exp__2; + constexpr double mdl_cw = constexpr_sqrt( 1. - mdl_sw2 ); + constexpr double mdl_sqrt__sw2 = constexpr_sqrt( mdl_sw2 ); + constexpr double mdl_sw = mdl_sqrt__sw2; + constexpr double mdl_g1 = mdl_ee / mdl_cw; + constexpr double mdl_gw = mdl_ee / mdl_sw; + constexpr double mdl_vev = ( 2. * mdl_MW * mdl_sw ) / mdl_ee; + constexpr double mdl_vev__exp__2 = ( ( mdl_vev ) * ( mdl_vev ) ); + constexpr double mdl_lam = mdl_MH__exp__2 / ( 2. * mdl_vev__exp__2 ); + constexpr double mdl_yb = ( mdl_ymb * mdl_sqrt__2 ) / mdl_vev; + constexpr double mdl_yt = ( mdl_ymt * mdl_sqrt__2 ) / mdl_vev; + constexpr double mdl_ytau = ( mdl_ymtau * mdl_sqrt__2 ) / mdl_vev; + constexpr double mdl_muH = constexpr_sqrt( mdl_lam * mdl_vev__exp__2 ); + constexpr cxsmpl mdl_I1x33 = mdl_yb * mdl_conjg__CKM3x3; + constexpr cxsmpl mdl_I2x33 = mdl_yt * mdl_conjg__CKM3x3; + constexpr cxsmpl mdl_I3x33 = mdl_CKM3x3 * mdl_yt; + constexpr cxsmpl mdl_I4x33 = mdl_CKM3x3 * mdl_yb; + constexpr double mdl_ee__exp__2 = ( ( mdl_ee ) * ( mdl_ee ) ); + constexpr double mdl_sw__exp__2 = ( ( mdl_sw ) * ( mdl_sw ) ); + constexpr double mdl_cw__exp__2 = ( ( mdl_cw ) * ( mdl_cw ) ); + + // Model couplings independent of aS + // (none) + + // Model parameters dependent on aS + //constexpr double mdl_sqrt__aS = //constexpr_sqrt( aS ); // now computed event-by-event (running alphas #373) + //constexpr double G = 2. * mdl_sqrt__aS * //constexpr_sqrt( M_PI ); // now computed event-by-event (running alphas #373) + //constexpr double mdl_G__exp__2 = ( ( G ) * ( G ) ); // now computed event-by-event (running alphas #373) + + // Model couplings dependent on aS + //constexpr cxsmpl GC_10 = -G; // now computed event-by-event (running alphas #373) + //constexpr cxsmpl GC_11 = mdl_complexi * G; // now computed event-by-event (running alphas #373) + //constexpr cxsmpl GC_12 = mdl_complexi * mdl_G__exp__2; // now computed event-by-event (running alphas #373) + + // Print parameters that are unchanged during the run + void printIndependentParameters(); + + // Print couplings that are unchanged during the run + void printIndependentCouplings(); + + // Print parameters that are changed event by event + //void printDependentParameters(); // now computed event-by-event (running alphas #373) + + // Print couplings that are changed event by event + //void printDependentCouplings(); // now computed event-by-event (running alphas #373) } - // Model parameters independent of aS - constexpr double zero = 0; - constexpr double ZERO = 0; - constexpr double mdl_WH = 6.382339e-03; - constexpr double mdl_WW = 2.047600e+00; - constexpr double mdl_WZ = 2.441404e+00; - constexpr double mdl_WT = 1.491500e+00; - constexpr double mdl_ymtau = 1.777000e+00; - constexpr double mdl_ymt = 1.730000e+02; - constexpr double mdl_ymb = 4.700000e+00; - //constexpr double aS = 1.180000e-01; // now retrieved event-by-event (as G) from Fortran (running alphas #373) - constexpr double mdl_Gf = 1.166390e-05; - constexpr double aEWM1 = 1.325070e+02; - constexpr double mdl_MH = 1.250000e+02; - constexpr double mdl_MZ = 9.118800e+01; - constexpr double mdl_MTA = 1.777000e+00; - constexpr double mdl_MT = 1.730000e+02; - constexpr double mdl_MB = 4.700000e+00; - constexpr double mdl_conjg__CKM3x3 = 1.; - constexpr double mdl_conjg__CKM1x1 = 1.; - constexpr double mdl_CKM3x3 = 1.; - constexpr cxsmpl mdl_complexi = cxsmpl( 0., 1. ); - constexpr double mdl_MZ__exp__2 = ( ( mdl_MZ ) * ( mdl_MZ ) ); - constexpr double mdl_MZ__exp__4 = ( ( mdl_MZ ) * ( mdl_MZ ) * ( mdl_MZ ) * ( mdl_MZ ) ); - constexpr double mdl_sqrt__2 = constexpr_sqrt( 2. ); - constexpr double mdl_MH__exp__2 = ( ( mdl_MH ) * ( mdl_MH ) ); - constexpr double mdl_aEW = 1. / aEWM1; - constexpr double mdl_MW = constexpr_sqrt( mdl_MZ__exp__2 / 2. + constexpr_sqrt( mdl_MZ__exp__4 / 4. - ( mdl_aEW * M_PI * mdl_MZ__exp__2 ) / ( mdl_Gf * mdl_sqrt__2 ) ) ); - constexpr double mdl_sqrt__aEW = constexpr_sqrt( mdl_aEW ); - constexpr double mdl_ee = 2. * mdl_sqrt__aEW * constexpr_sqrt( M_PI ); - constexpr double mdl_MW__exp__2 = ( ( mdl_MW ) * ( mdl_MW ) ); - constexpr double mdl_sw2 = 1. - mdl_MW__exp__2 / mdl_MZ__exp__2; - constexpr double mdl_cw = constexpr_sqrt( 1. - mdl_sw2 ); - constexpr double mdl_sqrt__sw2 = constexpr_sqrt( mdl_sw2 ); - constexpr double mdl_sw = mdl_sqrt__sw2; - constexpr double mdl_g1 = mdl_ee / mdl_cw; - constexpr double mdl_gw = mdl_ee / mdl_sw; - constexpr double mdl_vev = ( 2. * mdl_MW * mdl_sw ) / mdl_ee; - constexpr double mdl_vev__exp__2 = ( ( mdl_vev ) * ( mdl_vev ) ); - constexpr double mdl_lam = mdl_MH__exp__2 / ( 2. * mdl_vev__exp__2 ); - constexpr double mdl_yb = ( mdl_ymb * mdl_sqrt__2 ) / mdl_vev; - constexpr double mdl_yt = ( mdl_ymt * mdl_sqrt__2 ) / mdl_vev; - constexpr double mdl_ytau = ( mdl_ymtau * mdl_sqrt__2 ) / mdl_vev; - constexpr double mdl_muH = constexpr_sqrt( mdl_lam * mdl_vev__exp__2 ); - constexpr cxsmpl mdl_I1x33 = mdl_yb * mdl_conjg__CKM3x3; - constexpr cxsmpl mdl_I2x33 = mdl_yt * mdl_conjg__CKM3x3; - constexpr cxsmpl mdl_I3x33 = mdl_CKM3x3 * mdl_yt; - constexpr cxsmpl mdl_I4x33 = mdl_CKM3x3 * mdl_yb; - constexpr double mdl_ee__exp__2 = ( ( mdl_ee ) * ( mdl_ee ) ); - constexpr double mdl_sw__exp__2 = ( ( mdl_sw ) * ( mdl_sw ) ); - constexpr double mdl_cw__exp__2 = ( ( mdl_cw ) * ( mdl_cw ) ); - - // Model couplings independent of aS - // (none) - - // Model parameters dependent on aS - //constexpr double mdl_sqrt__aS = //constexpr_sqrt( aS ); // now computed event-by-event (running alphas #373) - //constexpr double G = 2. * mdl_sqrt__aS * //constexpr_sqrt( M_PI ); // now computed event-by-event (running alphas #373) - //constexpr double mdl_G__exp__2 = ( ( G ) * ( G ) ); // now computed event-by-event (running alphas #373) - - // Model couplings dependent on aS - //constexpr cxsmpl GC_10 = -G; // now computed event-by-event (running alphas #373) - //constexpr cxsmpl GC_11 = mdl_complexi * G; // now computed event-by-event (running alphas #373) - //constexpr cxsmpl GC_12 = mdl_complexi * mdl_G__exp__2; // now computed event-by-event (running alphas #373) - - // Print parameters that are unchanged during the run - void printIndependentParameters(); - - // Print couplings that are unchanged during the run - void printIndependentCouplings(); - - // Print parameters that are changed event by event - //void printDependentParameters(); // now computed event-by-event (running alphas #373) - - // Print couplings that are changed event by event - //void printDependentCouplings(); // now computed event-by-event (running alphas #373) -} +} // end namespace mg5amcGpu/mg5amcCpu #endif //========================================================================== -namespace Parameters_sm_dependentCouplings +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { - constexpr size_t ndcoup = 3; // #couplings that vary event by event because they depend on the running alphas QCD - constexpr size_t idcoup_GC_10 = 0; - constexpr size_t idcoup_GC_11 = 1; - constexpr size_t idcoup_GC_12 = 2; - struct DependentCouplings_sv + namespace Parameters_sm_dependentCouplings { - cxtype_sv GC_10; - cxtype_sv GC_11; - cxtype_sv GC_12; - }; + constexpr size_t ndcoup = 3; // #couplings that vary event by event because they depend on the running alphas QCD + constexpr size_t idcoup_GC_10 = 0; + constexpr size_t idcoup_GC_11 = 1; + constexpr size_t idcoup_GC_12 = 2; + struct DependentCouplings_sv + { + cxtype_sv GC_10; + cxtype_sv GC_11; + cxtype_sv GC_12; + }; #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wunused-variable" // e.g. <> #pragma GCC diagnostic ignored "-Wunused-parameter" // e.g. <> @@ -218,52 +243,46 @@ namespace Parameters_sm_dependentCouplings #pragma nv_diagnostic push #pragma nv_diag_suppress 177 // e.g. <> #endif - __host__ __device__ inline const DependentCouplings_sv computeDependentCouplings_fromG( const fptype_sv& G_sv ) - { + __host__ __device__ inline const DependentCouplings_sv computeDependentCouplings_fromG( const fptype_sv& G_sv ) + { #ifdef MGONGPU_HARDCODE_PARAM - using namespace Parameters_sm; + using namespace Parameters_sm; #endif - // NB: hardcode cxtype cI(0,1) instead of cxtype (or hardcoded cxsmpl) mdl_complexi (which exists in Parameters_sm) because: - // (1) mdl_complexi is always (0,1); (2) mdl_complexi is undefined in device code; (3) need cxsmpl conversion to cxtype in code below - const cxtype cI( 0., 1. ); - DependentCouplings_sv out; - // Begin SM implementation - no special handling of vectors of floats as in EFT (#439) - { - const fptype_sv& G = G_sv; - // Model parameters dependent on aS - //const fptype_sv mdl_sqrt__aS = constexpr_sqrt( aS ); - //const fptype_sv G = 2. * mdl_sqrt__aS * constexpr_sqrt( M_PI ); - const fptype_sv mdl_G__exp__2 = ( ( G ) * ( G ) ); - // Model couplings dependent on aS - out.GC_10 = -G; - out.GC_11 = cI * G; - out.GC_12 = cI * mdl_G__exp__2; + // NB: hardcode cxtype cI(0,1) instead of cxtype (or hardcoded cxsmpl) mdl_complexi (which exists in Parameters_sm) because: + // (1) mdl_complexi is always (0,1); (2) mdl_complexi is undefined in device code; (3) need cxsmpl conversion to cxtype in code below + const cxtype cI( 0., 1. ); + DependentCouplings_sv out; + // Begin SM implementation - no special handling of vectors of floats as in EFT (#439) + { + const fptype_sv& G = G_sv; + // Model parameters dependent on aS + //const fptype_sv mdl_sqrt__aS = constexpr_sqrt( aS ); + //const fptype_sv G = 2. * mdl_sqrt__aS * constexpr_sqrt( M_PI ); + const fptype_sv mdl_G__exp__2 = ( ( G ) * ( G ) ); + // Model couplings dependent on aS + out.GC_10 = -G; + out.GC_11 = cI * G; + out.GC_12 = cI * mdl_G__exp__2; + } + // End SM implementation - no special handling of vectors of floats as in EFT (#439) + return out; } - // End SM implementation - no special handling of vectors of floats as in EFT (#439) - return out; - } #ifdef __CUDACC__ #pragma GCC diagnostic pop #pragma nv_diagnostic pop #endif -} + } -//========================================================================== + //========================================================================== -namespace Parameters_sm_independentCouplings -{ - constexpr size_t nicoup = 0; // #couplings that are fixed for all events because they do not depend on the running alphas QCD - // NB: there are no aS-independent couplings in this physics process -} + namespace Parameters_sm_independentCouplings + { + constexpr size_t nicoup = 0; // #couplings that are fixed for all events because they do not depend on the running alphas QCD + // NB: there are no aS-independent couplings in this physics process + } -//========================================================================== + //========================================================================== -#ifdef __CUDACC__ -namespace mg5amcGpu -#else -namespace mg5amcCpu -#endif -{ #pragma GCC diagnostic push #ifndef __clang__ #pragma GCC diagnostic ignored "-Wunused-but-set-variable" // e.g. <> @@ -291,7 +310,8 @@ namespace mg5amcCpu return; } #pragma GCC diagnostic pop -} + +} // end namespace mg5amcGpu/mg5amcCpu //========================================================================== diff --git a/epochX/cudacpp/gg_ttg.sa/src/cudacpp_src.mk b/epochX/cudacpp/gg_ttg.sa/src/cudacpp_src.mk index 21b6d924ff..554d7a704c 100644 --- a/epochX/cudacpp/gg_ttg.sa/src/cudacpp_src.mk +++ b/epochX/cudacpp/gg_ttg.sa/src/cudacpp_src.mk @@ -38,7 +38,13 @@ endif #------------------------------------------------------------------------------- -#=== Configure ccache for CUDA and C++ builds +#=== Configure the CUDA compiler (note: NVCC is already exported including ccache) + +###$(info NVCC=$(NVCC)) + +#------------------------------------------------------------------------------- + +#=== Configure ccache for C++ builds (note: NVCC is already exported including ccache) # Enable ccache if USECCACHE=1 ifeq ($(USECCACHE)$(shell echo $(CXX) | grep ccache),1) @@ -47,11 +53,6 @@ endif #ifeq ($(USECCACHE)$(shell echo $(AR) | grep ccache),1) # override AR:=ccache $(AR) #endif -#ifneq ($(NVCC),) -# ifeq ($(USECCACHE)$(shell echo $(NVCC) | grep ccache),1) -# override NVCC:=ccache $(NVCC) -# endif -#endif #------------------------------------------------------------------------------- @@ -115,7 +116,9 @@ else ifneq ($(shell $(CXX) --version | grep ^nvc++),) # support nvc++ #531 $(error Unknown AVX='$(AVX)': only 'none', 'sse4', 'avx2', '512y' and '512z' are supported) endif else - ifeq ($(AVX),sse4) + ifeq ($(AVX),none) + override AVXFLAGS = -march=x86-64 # no SIMD (see #588) + else ifeq ($(AVX),sse4) override AVXFLAGS = -march=nehalem # SSE4.2 with 128 width (xmm registers) else ifeq ($(AVX),avx2) override AVXFLAGS = -march=haswell # AVX2 with 256 width (ymm registers) [DEFAULT for clang] @@ -216,7 +219,7 @@ MG5AMC_COMMONLIB = mg5amc_common all.$(TAG): $(BUILDDIR)/.build.$(TAG) $(LIBDIR)/.build.$(TAG) $(LIBDIR)/lib$(MG5AMC_COMMONLIB).so # Target (and build options): debug -debug: OPTFLAGS = -g -O0 -DDEBUG2 +debug: OPTFLAGS = -g -O0 debug: all.$(TAG) # Target: tag-specific build lockfiles @@ -237,17 +240,31 @@ $(LIBDIR)/.build.$(TAG): # Generic target and build rules: objects from C++ compilation $(BUILDDIR)/%.o : %.cc *.h $(BUILDDIR)/.build.$(TAG) - @if [ ! -d $(BUILDDIR) ]; then mkdir -p $(BUILDDIR); fi - $(CXX) $(CPPFLAGS) $(CXXFLAGS) -c $< -o $@ + @if [ ! -d $(BUILDDIR) ]; then echo "mkdir -p $(BUILDDIR)"; mkdir -p $(BUILDDIR); fi + $(CXX) $(CPPFLAGS) $(CXXFLAGS) -fPIC -c $< -o $@ + +# Generic target and build rules: objects from CUDA compilation +$(BUILDDIR)/%_cu.o : %.cc *.h $(BUILDDIR)/.build.$(TAG) + @if [ ! -d $(BUILDDIR) ]; then echo "mkdir -p $(BUILDDIR)"; mkdir -p $(BUILDDIR); fi + $(NVCC) $(CPPFLAGS) $(CUFLAGS) -Xcompiler -fPIC -c -x cu $< -o $@ #------------------------------------------------------------------------------- cxx_objects=$(addprefix $(BUILDDIR)/, Parameters_sm.o read_slha.o) +ifneq ($(NVCC),) +cu_objects=$(addprefix $(BUILDDIR)/, Parameters_sm_cu.o) +endif # Target (and build rules): common (src) library +ifneq ($(NVCC),) +$(LIBDIR)/lib$(MG5AMC_COMMONLIB).so : $(cxx_objects) $(cu_objects) + @if [ ! -d $(LIBDIR) ]; then echo "mkdir -p $(LIBDIR)"; mkdir -p $(LIBDIR); fi + $(NVCC) -shared -o $@ $(cxx_objects) $(cu_objects) +else $(LIBDIR)/lib$(MG5AMC_COMMONLIB).so : $(cxx_objects) @if [ ! -d $(LIBDIR) ]; then echo "mkdir -p $(LIBDIR)"; mkdir -p $(LIBDIR); fi - $(CXX) -shared -o$@ $(cxx_objects) + $(CXX) -shared -o $@ $(cxx_objects) +endif #------------------------------------------------------------------------------- diff --git a/epochX/cudacpp/gg_ttg.sa/src/mgOnGpuConfig.h b/epochX/cudacpp/gg_ttg.sa/src/mgOnGpuConfig.h index 6c0c4919e9..c0f067f1d8 100644 --- a/epochX/cudacpp/gg_ttg.sa/src/mgOnGpuConfig.h +++ b/epochX/cudacpp/gg_ttg.sa/src/mgOnGpuConfig.h @@ -98,6 +98,7 @@ #endif #endif +// NB: namespace mgOnGpu includes types which are defined in exactly the same way for CPU and GPU builds (see #318 and #725) namespace mgOnGpu { diff --git a/epochX/cudacpp/gg_ttg.sa/src/mgOnGpuCxtypes.h b/epochX/cudacpp/gg_ttg.sa/src/mgOnGpuCxtypes.h index 0cb2f1db7e..b56348bc58 100644 --- a/epochX/cudacpp/gg_ttg.sa/src/mgOnGpuCxtypes.h +++ b/epochX/cudacpp/gg_ttg.sa/src/mgOnGpuCxtypes.h @@ -43,8 +43,12 @@ // COMPLEX TYPES: SIMPLE COMPLEX CLASS (cxsmpl) //========================================================================== +// NB: namespace mgOnGpu includes types which are defined in exactly the same way for CPU and GPU builds (see #318 and #725) namespace mgOnGpu /* clang-format off */ { + // The number of floating point types in a complex type (real, imaginary) + constexpr int nx2 = 2; + // --- Type definition (simple complex type derived from cxtype_v) template class cxsmpl @@ -78,128 +82,139 @@ namespace mgOnGpu /* clang-format off */ using mgOnGpu::cxsmpl; // Printout to stream for user defined types -template -inline __host__ __device__ std::ostream& -operator<<( std::ostream& out, const cxsmpl& c ) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { - out << std::complex( c.real(), c.imag() ); - return out; -} + template + inline __host__ std::ostream& + operator<<( std::ostream& out, const cxsmpl& c ) + { + out << std::complex( c.real(), c.imag() ); + return out; + } -// Operators for cxsmpl -template -inline __host__ __device__ constexpr cxsmpl -operator+( const cxsmpl a ) -{ - return a; -} + // Operators for cxsmpl + template + inline __host__ __device__ constexpr cxsmpl + operator+( const cxsmpl a ) + { + return a; + } -template -inline __host__ __device__ constexpr cxsmpl -operator-( const cxsmpl& a ) -{ - return cxsmpl( -a.real(), -a.imag() ); -} + template + inline __host__ __device__ constexpr cxsmpl + operator-( const cxsmpl& a ) + { + return cxsmpl( -a.real(), -a.imag() ); + } -template -inline __host__ __device__ constexpr cxsmpl -operator+( const cxsmpl& a, const cxsmpl& b ) -{ - return cxsmpl( a.real() + b.real(), a.imag() + b.imag() ); -} + template + inline __host__ __device__ constexpr cxsmpl + operator+( const cxsmpl& a, const cxsmpl& b ) + { + return cxsmpl( a.real() + b.real(), a.imag() + b.imag() ); + } -template -inline __host__ __device__ constexpr cxsmpl -operator+( const FP& a, const cxsmpl& b ) -{ - return cxsmpl( a, 0 ) + b; -} + template + inline __host__ __device__ constexpr cxsmpl + operator+( const FP& a, const cxsmpl& b ) + { + return cxsmpl( a, 0 ) + b; + } -template -inline __host__ __device__ constexpr cxsmpl -operator-( const cxsmpl& a, const cxsmpl& b ) -{ - return cxsmpl( a.real() - b.real(), a.imag() - b.imag() ); -} + template + inline __host__ __device__ constexpr cxsmpl + operator-( const cxsmpl& a, const cxsmpl& b ) + { + return cxsmpl( a.real() - b.real(), a.imag() - b.imag() ); + } -template -inline __host__ __device__ constexpr cxsmpl -operator-( const FP& a, const cxsmpl& b ) -{ - return cxsmpl( a, 0 ) - b; -} + template + inline __host__ __device__ constexpr cxsmpl + operator-( const FP& a, const cxsmpl& b ) + { + return cxsmpl( a, 0 ) - b; + } -template -inline __host__ __device__ constexpr cxsmpl -operator*( const cxsmpl& a, const cxsmpl& b ) -{ - return cxsmpl( a.real() * b.real() - a.imag() * b.imag(), a.imag() * b.real() + a.real() * b.imag() ); -} + template + inline __host__ __device__ constexpr cxsmpl + operator*( const cxsmpl& a, const cxsmpl& b ) + { + return cxsmpl( a.real() * b.real() - a.imag() * b.imag(), a.imag() * b.real() + a.real() * b.imag() ); + } -template -inline __host__ __device__ constexpr cxsmpl -operator*( const FP& a, const cxsmpl& b ) -{ - return cxsmpl( a, 0 ) * b; -} + template + inline __host__ __device__ constexpr cxsmpl + operator*( const FP& a, const cxsmpl& b ) + { + return cxsmpl( a, 0 ) * b; + } -inline __host__ __device__ constexpr cxsmpl -operator*( const double& a, const cxsmpl& b ) -{ - return cxsmpl( a, 0 ) * b; -} + inline __host__ __device__ constexpr cxsmpl + operator*( const double& a, const cxsmpl& b ) + { + return cxsmpl( a, 0 ) * b; + } -template -inline __host__ __device__ constexpr cxsmpl -operator/( const cxsmpl& a, const cxsmpl& b ) -{ - FP bnorm = b.real() * b.real() + b.imag() * b.imag(); - return cxsmpl( ( a.real() * b.real() + a.imag() * b.imag() ) / bnorm, - ( a.imag() * b.real() - a.real() * b.imag() ) / bnorm ); -} + template + inline __host__ __device__ constexpr cxsmpl + operator/( const cxsmpl& a, const cxsmpl& b ) + { + FP bnorm = b.real() * b.real() + b.imag() * b.imag(); + return cxsmpl( ( a.real() * b.real() + a.imag() * b.imag() ) / bnorm, + ( a.imag() * b.real() - a.real() * b.imag() ) / bnorm ); + } -template -inline __host__ __device__ constexpr cxsmpl -operator/( const FP& a, const cxsmpl& b ) -{ - return cxsmpl( a, 0 ) / b; -} + template + inline __host__ __device__ constexpr cxsmpl + operator/( const FP& a, const cxsmpl& b ) + { + return cxsmpl( a, 0 ) / b; + } -template -inline __host__ __device__ constexpr cxsmpl -operator+( const cxsmpl& a, const FP& b ) -{ - return a + cxsmpl( b, 0 ); -} + template + inline __host__ __device__ constexpr cxsmpl + operator+( const cxsmpl& a, const FP& b ) + { + return a + cxsmpl( b, 0 ); + } -template -inline __host__ __device__ constexpr cxsmpl -operator-( const cxsmpl& a, const FP& b ) -{ - return a - cxsmpl( b, 0 ); -} + template + inline __host__ __device__ constexpr cxsmpl + operator-( const cxsmpl& a, const FP& b ) + { + return a - cxsmpl( b, 0 ); + } -template -inline __host__ __device__ constexpr cxsmpl -operator*( const cxsmpl& a, const FP& b ) -{ - return a * cxsmpl( b, 0 ); -} + template + inline __host__ __device__ constexpr cxsmpl + operator*( const cxsmpl& a, const FP& b ) + { + return a * cxsmpl( b, 0 ); + } -template -inline __host__ __device__ constexpr cxsmpl -operator/( const cxsmpl& a, const FP& b ) -{ - return a / cxsmpl( b, 0 ); + template + inline __host__ __device__ constexpr cxsmpl + operator/( const cxsmpl& a, const FP& b ) + { + return a / cxsmpl( b, 0 ); + } } //========================================================================== // COMPLEX TYPES: (PLATFORM-SPECIFIC) TYPEDEFS //========================================================================== -namespace mgOnGpu +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { - // --- Type definitions (complex type: cxtype) #ifdef __CUDACC__ // cuda #if defined MGONGPU_CUCXTYPE_THRUST @@ -221,390 +236,402 @@ namespace mgOnGpu #endif #endif - // The number of floating point types in a complex type (real, imaginary) - constexpr int nx2 = 2; - // SANITY CHECK: memory access may be based on casts of fptype[2] to cxtype (e.g. for wavefunctions) - static_assert( sizeof( cxtype ) == nx2 * sizeof( fptype ), "sizeof(cxtype) is not 2*sizeof(fptype)" ); + static_assert( sizeof( cxtype ) == mgOnGpu::nx2 * sizeof( fptype ), "sizeof(cxtype) is not 2*sizeof(fptype)" ); } -// Expose typedefs and operators outside the namespace -using mgOnGpu::cxtype; +// DANGEROUS! this was mixing different cxtype definitions for CPU and GPU builds (see #318 and #725) +// DO NOT expose typedefs and operators outside the namespace +//using mgOnGpu::cxtype; //========================================================================== // COMPLEX TYPES: (PLATFORM-SPECIFIC) FUNCTIONS AND OPERATORS //========================================================================== +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif +{ #if defined MGONGPU_CUCXTYPE_CXSMPL or defined MGONGPU_CPPCXTYPE_CXSMPL -//------------------------------ -// CUDA or C++ - using cxsmpl -//------------------------------ + //------------------------------ + // CUDA or C++ - using cxsmpl + //------------------------------ -inline __host__ __device__ cxtype -cxmake( const fptype& r, const fptype& i ) -{ - return cxtype( r, i ); // cxsmpl constructor -} + inline __host__ __device__ cxtype + cxmake( const fptype& r, const fptype& i ) + { + return cxtype( r, i ); // cxsmpl constructor + } -inline __host__ __device__ fptype -cxreal( const cxtype& c ) -{ - return c.real(); // cxsmpl::real() -} + inline __host__ __device__ fptype + cxreal( const cxtype& c ) + { + return c.real(); // cxsmpl::real() + } -inline __host__ __device__ fptype -cximag( const cxtype& c ) -{ - return c.imag(); // cxsmpl::imag() -} + inline __host__ __device__ fptype + cximag( const cxtype& c ) + { + return c.imag(); // cxsmpl::imag() + } -inline __host__ __device__ cxtype -cxconj( const cxtype& c ) -{ - return conj( c ); // conj( cxsmpl ) -} + inline __host__ __device__ cxtype + cxconj( const cxtype& c ) + { + return conj( c ); // conj( cxsmpl ) + } -inline __host__ cxtype // NOT __device__ -cxmake( const std::complex& c ) // std::complex to cxsmpl (float-to-float or float-to-double) -{ - return cxmake( c.real(), c.imag() ); -} + inline __host__ cxtype // NOT __device__ + cxmake( const std::complex& c ) // std::complex to cxsmpl (float-to-float or float-to-double) + { + return cxmake( c.real(), c.imag() ); + } -inline __host__ cxtype // NOT __device__ -cxmake( const std::complex& c ) // std::complex to cxsmpl (double-to-float or double-to-double) -{ - return cxmake( c.real(), c.imag() ); -} + inline __host__ cxtype // NOT __device__ + cxmake( const std::complex& c ) // std::complex to cxsmpl (double-to-float or double-to-double) + { + return cxmake( c.real(), c.imag() ); + } #endif // #if defined MGONGPU_CUCXTYPE_CXSMPL or defined MGONGPU_CPPCXTYPE_CXSMPL -//========================================================================== + //========================================================================== #if defined __CUDACC__ and defined MGONGPU_CUCXTYPE_THRUST // cuda + thrust -//------------------------------ -// CUDA - using thrust::complex -//------------------------------ + //------------------------------ + // CUDA - using thrust::complex + //------------------------------ -inline __host__ __device__ cxtype -cxmake( const fptype& r, const fptype& i ) -{ - return cxtype( r, i ); // thrust::complex constructor -} + inline __host__ __device__ cxtype + cxmake( const fptype& r, const fptype& i ) + { + return cxtype( r, i ); // thrust::complex constructor + } -inline __host__ __device__ fptype -cxreal( const cxtype& c ) -{ - return c.real(); // thrust::complex::real() -} + inline __host__ __device__ fptype + cxreal( const cxtype& c ) + { + return c.real(); // thrust::complex::real() + } -inline __host__ __device__ fptype -cximag( const cxtype& c ) -{ - return c.imag(); // thrust::complex::imag() -} + inline __host__ __device__ fptype + cximag( const cxtype& c ) + { + return c.imag(); // thrust::complex::imag() + } -inline __host__ __device__ cxtype -cxconj( const cxtype& c ) -{ - return conj( c ); // conj( thrust::complex ) -} + inline __host__ __device__ cxtype + cxconj( const cxtype& c ) + { + return conj( c ); // conj( thrust::complex ) + } -inline __host__ __device__ const cxtype& -cxmake( const cxtype& c ) -{ - return c; -} + inline __host__ __device__ const cxtype& + cxmake( const cxtype& c ) + { + return c; + } #endif // #if defined __CUDACC__ and defined MGONGPU_CUCXTYPE_THRUST -//========================================================================== + //========================================================================== #if defined __CUDACC__ and defined MGONGPU_CUCXTYPE_CUCOMPLEX // cuda + cucomplex -//------------------------------ -// CUDA - using cuComplex -//------------------------------ + //------------------------------ + // CUDA - using cuComplex + //------------------------------ #if defined MGONGPU_FPTYPE_DOUBLE // cuda + cucomplex + double -//+++++++++++++++++++++++++ -// cuDoubleComplex ONLY -//+++++++++++++++++++++++++ + //+++++++++++++++++++++++++ + // cuDoubleComplex ONLY + //+++++++++++++++++++++++++ -inline __host__ __device__ cxtype -cxmake( const fptype& r, const fptype& i ) -{ - return make_cuDoubleComplex( r, i ); -} + inline __host__ __device__ cxtype + cxmake( const fptype& r, const fptype& i ) + { + return make_cuDoubleComplex( r, i ); + } -inline __host__ __device__ fptype -cxreal( const cxtype& c ) -{ - return cuCreal( c ); // returns by value -} + inline __host__ __device__ fptype + cxreal( const cxtype& c ) + { + return cuCreal( c ); // returns by value + } -inline __host__ __device__ fptype -cximag( const cxtype& c ) -{ - return cuCimag( c ); // returns by value -} + inline __host__ __device__ fptype + cximag( const cxtype& c ) + { + return cuCimag( c ); // returns by value + } -inline __host__ __device__ cxtype -operator+( const cxtype& a, const cxtype& b ) -{ - return cuCadd( a, b ); -} + inline __host__ __device__ cxtype + operator+( const cxtype& a, const cxtype& b ) + { + return cuCadd( a, b ); + } -inline __host__ __device__ cxtype& -operator+=( cxtype& a, const cxtype& b ) -{ - a = cuCadd( a, b ); - return a; -} + inline __host__ __device__ cxtype& + operator+=( cxtype& a, const cxtype& b ) + { + a = cuCadd( a, b ); + return a; + } -inline __host__ __device__ cxtype -operator-( const cxtype& a, const cxtype& b ) -{ - return cuCsub( a, b ); -} + inline __host__ __device__ cxtype + operator-( const cxtype& a, const cxtype& b ) + { + return cuCsub( a, b ); + } -inline __host__ __device__ cxtype& -operator-=( cxtype& a, const cxtype& b ) -{ - a = cuCsub( a, b ); - return a; -} + inline __host__ __device__ cxtype& + operator-=( cxtype& a, const cxtype& b ) + { + a = cuCsub( a, b ); + return a; + } -inline __host__ __device__ cxtype -operator*( const cxtype& a, const cxtype& b ) -{ - return cuCmul( a, b ); -} + inline __host__ __device__ cxtype + operator*( const cxtype& a, const cxtype& b ) + { + return cuCmul( a, b ); + } -inline __host__ __device__ cxtype -operator/( const cxtype& a, const cxtype& b ) -{ - return cuCdiv( a, b ); -} + inline __host__ __device__ cxtype + operator/( const cxtype& a, const cxtype& b ) + { + return cuCdiv( a, b ); + } #elif defined MGONGPU_FPTYPE_FLOAT // cuda + cucomplex + float -//+++++++++++++++++++++++++ -// cuFloatComplex ONLY -//+++++++++++++++++++++++++ + //+++++++++++++++++++++++++ + // cuFloatComplex ONLY + //+++++++++++++++++++++++++ -inline __host__ __device__ cxtype -cxmake( const fptype& r, const fptype& i ) -{ - return make_cuFloatComplex( r, i ); -} + inline __host__ __device__ cxtype + cxmake( const fptype& r, const fptype& i ) + { + return make_cuFloatComplex( r, i ); + } -inline __host__ __device__ fptype -cxreal( const cxtype& c ) -{ - return cuCrealf( c ); // returns by value -} + inline __host__ __device__ fptype + cxreal( const cxtype& c ) + { + return cuCrealf( c ); // returns by value + } -inline __host__ __device__ fptype -cximag( const cxtype& c ) -{ - return cuCimagf( c ); // returns by value -} + inline __host__ __device__ fptype + cximag( const cxtype& c ) + { + return cuCimagf( c ); // returns by value + } -inline __host__ __device__ cxtype -operator+( const cxtype& a, const cxtype& b ) -{ - return cuCaddf( a, b ); -} + inline __host__ __device__ cxtype + operator+( const cxtype& a, const cxtype& b ) + { + return cuCaddf( a, b ); + } -inline __host__ __device__ cxtype& -operator+=( cxtype& a, const cxtype& b ) -{ - a = cuCaddf( a, b ); - return a; -} + inline __host__ __device__ cxtype& + operator+=( cxtype& a, const cxtype& b ) + { + a = cuCaddf( a, b ); + return a; + } -inline __host__ __device__ cxtype -operator-( const cxtype& a, const cxtype& b ) -{ - return cuCsubf( a, b ); -} + inline __host__ __device__ cxtype + operator-( const cxtype& a, const cxtype& b ) + { + return cuCsubf( a, b ); + } -inline __host__ __device__ cxtype& -operator-=( cxtype& a, const cxtype& b ) -{ - a = cuCsubf( a, b ); - return a; -} + inline __host__ __device__ cxtype& + operator-=( cxtype& a, const cxtype& b ) + { + a = cuCsubf( a, b ); + return a; + } -inline __host__ __device__ cxtype -operator*( const cxtype& a, const cxtype& b ) -{ - return cuCmulf( a, b ); -} + inline __host__ __device__ cxtype + operator*( const cxtype& a, const cxtype& b ) + { + return cuCmulf( a, b ); + } -inline __host__ __device__ cxtype -operator/( const cxtype& a, const cxtype& b ) -{ - return cuCdivf( a, b ); -} + inline __host__ __device__ cxtype + operator/( const cxtype& a, const cxtype& b ) + { + return cuCdivf( a, b ); + } -inline __host__ cxtype // NOT __device__ -cxmake( const std::complex& c ) // std::complex to cucomplex (cast double-to-float) -{ - return cxmake( (fptype)c.real(), (fptype)c.imag() ); -} + inline __host__ cxtype // NOT __device__ + cxmake( const std::complex& c ) // std::complex to cucomplex (cast double-to-float) + { + return cxmake( (fptype)c.real(), (fptype)c.imag() ); + } #endif -//+++++++++++++++++++++++++ -// cuDoubleComplex OR -// cuFloatComplex -//+++++++++++++++++++++++++ + //+++++++++++++++++++++++++ + // cuDoubleComplex OR + // cuFloatComplex + //+++++++++++++++++++++++++ -inline __host__ __device__ cxtype -operator+( const cxtype a ) -{ - return a; -} + inline __host__ __device__ cxtype + operator+( const cxtype a ) + { + return a; + } -inline __host__ __device__ cxtype -operator-( const cxtype& a ) -{ - return cxmake( -cxreal( a ), -cximag( a ) ); -} + inline __host__ __device__ cxtype + operator-( const cxtype& a ) + { + return cxmake( -cxreal( a ), -cximag( a ) ); + } -inline __host__ __device__ cxtype -operator+( const fptype& a, const cxtype& b ) -{ - return cxmake( a, 0 ) + b; -} + inline __host__ __device__ cxtype + operator+( const fptype& a, const cxtype& b ) + { + return cxmake( a, 0 ) + b; + } -inline __host__ __device__ cxtype -operator-( const fptype& a, const cxtype& b ) -{ - return cxmake( a, 0 ) - b; -} + inline __host__ __device__ cxtype + operator-( const fptype& a, const cxtype& b ) + { + return cxmake( a, 0 ) - b; + } -inline __host__ __device__ cxtype -operator*( const fptype& a, const cxtype& b ) -{ - return cxmake( a, 0 ) * b; -} + inline __host__ __device__ cxtype + operator*( const fptype& a, const cxtype& b ) + { + return cxmake( a, 0 ) * b; + } -inline __host__ __device__ cxtype -operator/( const fptype& a, const cxtype& b ) -{ - return cxmake( a, 0 ) / b; -} + inline __host__ __device__ cxtype + operator/( const fptype& a, const cxtype& b ) + { + return cxmake( a, 0 ) / b; + } -inline __host__ __device__ cxtype -operator+( const cxtype& a, const fptype& b ) -{ - return a + cxmake( b, 0 ); -} + inline __host__ __device__ cxtype + operator+( const cxtype& a, const fptype& b ) + { + return a + cxmake( b, 0 ); + } -inline __host__ __device__ cxtype -operator-( const cxtype& a, const fptype& b ) -{ - return a - cxmake( b, 0 ); -} + inline __host__ __device__ cxtype + operator-( const cxtype& a, const fptype& b ) + { + return a - cxmake( b, 0 ); + } -inline __host__ __device__ cxtype -operator*( const cxtype& a, const fptype& b ) -{ - return a * cxmake( b, 0 ); -} + inline __host__ __device__ cxtype + operator*( const cxtype& a, const fptype& b ) + { + return a * cxmake( b, 0 ); + } -inline __host__ __device__ cxtype -operator/( const cxtype& a, const fptype& b ) -{ - return a / cxmake( b, 0 ); -} + inline __host__ __device__ cxtype + operator/( const cxtype& a, const fptype& b ) + { + return a / cxmake( b, 0 ); + } -inline __host__ __device__ cxtype -cxconj( const cxtype& c ) -{ - return cxmake( cxreal( c ), -cximag( c ) ); -} + inline __host__ __device__ cxtype + cxconj( const cxtype& c ) + { + return cxmake( cxreal( c ), -cximag( c ) ); + } -inline __host__ cxtype // NOT __device__ -cxmake( const std::complex& c ) // std::complex to cucomplex (float-to-float or double-to-double) -{ - return cxmake( c.real(), c.imag() ); -} + inline __host__ cxtype // NOT __device__ + cxmake( const std::complex& c ) // std::complex to cucomplex (float-to-float or double-to-double) + { + return cxmake( c.real(), c.imag() ); + } #endif // #if defined __CUDACC__ and defined MGONGPU_CUCXTYPE_CUCOMPLEX -//========================================================================== + //========================================================================== #if not defined __CUDACC__ and defined MGONGPU_CPPCXTYPE_STDCOMPLEX // c++ + stdcomplex -//------------------------------ -// C++ - using std::complex -//------------------------------ + //------------------------------ + // C++ - using std::complex + //------------------------------ -inline cxtype -cxmake( const fptype& r, const fptype& i ) -{ - return cxtype( r, i ); // std::complex constructor -} + inline cxtype + cxmake( const fptype& r, const fptype& i ) + { + return cxtype( r, i ); // std::complex constructor + } -inline fptype -cxreal( const cxtype& c ) -{ - return c.real(); // std::complex::real() -} + inline fptype + cxreal( const cxtype& c ) + { + return c.real(); // std::complex::real() + } -inline fptype -cximag( const cxtype& c ) -{ - return c.imag(); // std::complex::imag() -} + inline fptype + cximag( const cxtype& c ) + { + return c.imag(); // std::complex::imag() + } -inline cxtype -cxconj( const cxtype& c ) -{ - return conj( c ); // conj( std::complex ) -} + inline cxtype + cxconj( const cxtype& c ) + { + return conj( c ); // conj( std::complex ) + } -inline const cxtype& -cxmake( const cxtype& c ) // std::complex to std::complex (float-to-float or double-to-double) -{ - return c; -} + inline const cxtype& + cxmake( const cxtype& c ) // std::complex to std::complex (float-to-float or double-to-double) + { + return c; + } #if defined MGONGPU_FPTYPE_FLOAT -inline cxtype -cxmake( const std::complex& c ) // std::complex to std::complex (cast double-to-float) -{ - return cxmake( (fptype)c.real(), (fptype)c.imag() ); -} + inline cxtype + cxmake( const std::complex& c ) // std::complex to std::complex (cast double-to-float) + { + return cxmake( (fptype)c.real(), (fptype)c.imag() ); + } #endif #endif // #if not defined __CUDACC__ and defined MGONGPU_CPPCXTYPE_STDCOMPLEX -//========================================================================== + //========================================================================== -inline __host__ __device__ const cxtype -cxmake( const cxsmpl& c ) // cxsmpl to cxtype (float-to-float or float-to-double) -{ - return cxmake( c.real(), c.imag() ); -} + inline __host__ __device__ const cxtype + cxmake( const cxsmpl& c ) // cxsmpl to cxtype (float-to-float or float-to-double) + { + return cxmake( c.real(), c.imag() ); + } -inline __host__ __device__ const cxtype -cxmake( const cxsmpl& c ) // cxsmpl to cxtype (double-to-float or double-to-double) -{ - return cxmake( c.real(), c.imag() ); -} + inline __host__ __device__ const cxtype + cxmake( const cxsmpl& c ) // cxsmpl to cxtype (double-to-float or double-to-double) + { + return cxmake( c.real(), c.imag() ); + } + +} // end namespace mg5amcGpu/mg5amcCpu //========================================================================== // COMPLEX TYPES: WRAPPER OVER RI FLOATING POINT PAIR (cxtype_ref) //========================================================================== -namespace mgOnGpu /* clang-format off */ +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { // The cxtype_ref class (a non-const reference to two fp variables) was originally designed for cxtype_v::operator[] // It used to be included in the code only when MGONGPU_HAS_CPPCXTYPEV_BRK (originally MGONGPU_HAS_CPPCXTYPE_REF) is defined @@ -615,23 +642,30 @@ namespace mgOnGpu /* clang-format off */ cxtype_ref() = delete; cxtype_ref( const cxtype_ref& ) = delete; cxtype_ref( cxtype_ref&& ) = default; // copy refs - __host__ __device__ cxtype_ref( fptype& r, fptype& i ) : m_preal( &r ), m_pimag( &i ) {} // copy refs + __host__ __device__ cxtype_ref( fptype& r, fptype& i ) + : m_preal( &r ), m_pimag( &i ) {} // copy refs cxtype_ref& operator=( const cxtype_ref& ) = delete; //__host__ __device__ cxtype_ref& operator=( cxtype_ref&& c ) {...} // REMOVED! Should copy refs or copy values? No longer needed in cxternary - __host__ __device__ cxtype_ref& operator=( const cxtype& c ) { *m_preal = cxreal( c ); *m_pimag = cximag( c ); return *this; } // copy values + __host__ __device__ cxtype_ref& operator=( const cxtype& c ) + { + *m_preal = cxreal( c ); + *m_pimag = cximag( c ); + return *this; + } // copy values __host__ __device__ operator cxtype() const { return cxmake( *m_preal, *m_pimag ); } private: fptype *m_preal, *m_pimag; // RI }; -} /* clang-format on */ -// Printout to stream for user defined types -inline __host__ __device__ std::ostream& -operator<<( std::ostream& out, const mgOnGpu::cxtype_ref& c ) -{ - out << (cxtype)c; - return out; -} + // Printout to stream for user defined types + inline __host__ __device__ std::ostream& + operator<<( std::ostream& out, const cxtype_ref& c ) + { + out << (cxtype)c; + return out; + } + +} // end namespace mg5amcGpu/mg5amcCpu //========================================================================== diff --git a/epochX/cudacpp/gg_ttg.sa/src/mgOnGpuFptypes.h b/epochX/cudacpp/gg_ttg.sa/src/mgOnGpuFptypes.h index a1cde16a67..905c97d700 100644 --- a/epochX/cudacpp/gg_ttg.sa/src/mgOnGpuFptypes.h +++ b/epochX/cudacpp/gg_ttg.sa/src/mgOnGpuFptypes.h @@ -11,82 +11,91 @@ #include #include -//========================================================================== - -#ifdef __CUDACC__ // cuda - -//------------------------------ -// Floating point types - Cuda -//------------------------------ - -/* -inline __host__ __device__ fptype -fpmax( const fptype& a, const fptype& b ) -{ - return max( a, b ); -} - -inline __host__ __device__ fptype -fpmin( const fptype& a, const fptype& b ) -{ - return min( a, b ); -} -*/ - -inline __host__ __device__ const fptype& -fpmax( const fptype& a, const fptype& b ) +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { - return ( ( b < a ) ? a : b ); -} + //========================================================================== -inline __host__ __device__ const fptype& -fpmin( const fptype& a, const fptype& b ) -{ - return ( ( a < b ) ? a : b ); -} +#ifdef __CUDACC__ // cuda -inline __host__ __device__ fptype -fpsqrt( const fptype& f ) -{ + //------------------------------ + // Floating point types - Cuda + //------------------------------ + + /* + inline __host__ __device__ fptype + fpmax( const fptype& a, const fptype& b ) + { + return max( a, b ); + } + + inline __host__ __device__ fptype + fpmin( const fptype& a, const fptype& b ) + { + return min( a, b ); + } + */ + + inline __host__ __device__ const fptype& + fpmax( const fptype& a, const fptype& b ) + { + return ( ( b < a ) ? a : b ); + } + + inline __host__ __device__ const fptype& + fpmin( const fptype& a, const fptype& b ) + { + return ( ( a < b ) ? a : b ); + } + + inline __host__ __device__ fptype + fpsqrt( const fptype& f ) + { #if defined MGONGPU_FPTYPE_FLOAT - // See https://docs.nvidia.com/cuda/cuda-math-api/group__CUDA__MATH__SINGLE.html - return sqrtf( f ); + // See https://docs.nvidia.com/cuda/cuda-math-api/group__CUDA__MATH__SINGLE.html + return sqrtf( f ); #else - // See https://docs.nvidia.com/cuda/cuda-math-api/group__CUDA__MATH__DOUBLE.html - return sqrt( f ); + // See https://docs.nvidia.com/cuda/cuda-math-api/group__CUDA__MATH__DOUBLE.html + return sqrt( f ); #endif -} + } #endif // #ifdef __CUDACC__ -//========================================================================== + //========================================================================== #ifndef __CUDACC__ -//------------------------------ -// Floating point types - C++ -//------------------------------ + //------------------------------ + // Floating point types - C++ + //------------------------------ -inline const fptype& -fpmax( const fptype& a, const fptype& b ) -{ - return std::max( a, b ); -} + inline const fptype& + fpmax( const fptype& a, const fptype& b ) + { + return std::max( a, b ); + } -inline const fptype& -fpmin( const fptype& a, const fptype& b ) -{ - return std::min( a, b ); -} + inline const fptype& + fpmin( const fptype& a, const fptype& b ) + { + return std::min( a, b ); + } -inline fptype -fpsqrt( const fptype& f ) -{ - return std::sqrt( f ); -} + inline fptype + fpsqrt( const fptype& f ) + { + return std::sqrt( f ); + } #endif // #ifndef __CUDACC__ -//========================================================================== + //========================================================================== + +} // end namespace mg5amcGpu/mg5amcCpu #endif // MGONGPUFPTYPES_H diff --git a/epochX/cudacpp/gg_ttg.sa/src/mgOnGpuVectors.h b/epochX/cudacpp/gg_ttg.sa/src/mgOnGpuVectors.h index 9d3e82b1e3..0d3892d026 100644 --- a/epochX/cudacpp/gg_ttg.sa/src/mgOnGpuVectors.h +++ b/epochX/cudacpp/gg_ttg.sa/src/mgOnGpuVectors.h @@ -31,7 +31,12 @@ //#undef MGONGPU_HAS_CPPCXTYPEV_BRK // gcc test (very slightly slower? issue #172) #endif -namespace mgOnGpu /* clang-format off */ +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { #ifdef MGONGPU_CPPSIMD @@ -72,22 +77,40 @@ namespace mgOnGpu /* clang-format off */ public: // Array initialization: zero-out as "{0}" (C and C++) or as "{}" (C++ only) // See https://en.cppreference.com/w/c/language/array_initialization#Notes - cxtype_v() : m_real{ 0 }, m_imag{ 0 } {} // RRRR=0000 IIII=0000 + cxtype_v() + : m_real{ 0 }, m_imag{ 0 } {} // RRRR=0000 IIII=0000 cxtype_v( const cxtype_v& ) = default; cxtype_v( cxtype_v&& ) = default; - cxtype_v( const fptype_v& r, const fptype_v& i ) : m_real( r ), m_imag( i ) {} - cxtype_v( const fptype_v& r ) : m_real( r ), m_imag{ 0 } {} // IIII=0000 + cxtype_v( const fptype_v& r, const fptype_v& i ) + : m_real( r ), m_imag( i ) {} + cxtype_v( const fptype_v& r ) + : m_real( r ), m_imag{ 0 } {} // IIII=0000 + cxtype_v( const fptype& r ) + : m_real( fptype_v{} + r ), m_imag{ 0 } {} // IIII=0000 cxtype_v& operator=( const cxtype_v& ) = default; cxtype_v& operator=( cxtype_v&& ) = default; - cxtype_v& operator+=( const cxtype_v& c ) { m_real += c.real(); m_imag += c.imag(); return *this; } - cxtype_v& operator-=( const cxtype_v& c ) { m_real -= c.real(); m_imag -= c.imag(); return *this; } + cxtype_v& operator+=( const cxtype_v& c ) + { + m_real += c.real(); + m_imag += c.imag(); + return *this; + } + cxtype_v& operator-=( const cxtype_v& c ) + { + m_real -= c.real(); + m_imag -= c.imag(); + return *this; + } #ifdef MGONGPU_HAS_CPPCXTYPEV_BRK // NB: THIS IS THE FUNDAMENTAL DIFFERENCE BETWEEN MGONGPU_HAS_CPPCXTYPEV_BRK DEFINED AND NOT DEFINED // NB: the alternative "clang" implementation is simpler: it simply does not have any bracket operator[] // NB: ** do NOT implement operator[] to return a value: it does not fail the build (why?) and gives unexpected results! ** cxtype_ref operator[]( size_t i ) const { return cxtype_ref( m_real[i], m_imag[i] ); } #endif - const fptype_v& real() const { return m_real; } + const fptype_v& real() const + { + return m_real; + } const fptype_v& imag() const { return m_imag; } private: fptype_v m_real, m_imag; // RRRRIIII @@ -98,7 +121,7 @@ namespace mgOnGpu /* clang-format off */ #if defined MGONGPU_FPTYPE_DOUBLE typedef long int bool_v __attribute__( ( ext_vector_type( neppV ) ) ); // bbbb #elif defined MGONGPU_FPTYPE_FLOAT - typedef int bool_v __attribute__( ( ext_vector_type( neppV ) ) ); // bbbb + typedef int bool_v __attribute__( ( ext_vector_type( neppV ) ) ); // bbbb #endif #else // gcc #if defined MGONGPU_FPTYPE_DOUBLE @@ -113,532 +136,551 @@ namespace mgOnGpu /* clang-format off */ const int neppV = 1; #endif // #ifdef MGONGPU_CPPSIMD - -} /* clang-format on */ +} //-------------------------------------------------------------------------- -// Expose typedefs outside the namespace -using mgOnGpu::neppV; -#ifdef MGONGPU_CPPSIMD -using mgOnGpu::fptype_v; -using mgOnGpu::fptype2_v; -using mgOnGpu::cxtype_v; -using mgOnGpu::bool_v; -#endif +// DANGEROUS! this was mixing different cxtype definitions for CPU and GPU builds (see #318 and #725) +// DO NOT expose typedefs outside the namespace +//using mgOnGpu::neppV; +//#ifdef MGONGPU_CPPSIMD +//using mgOnGpu::fptype_v; +//using mgOnGpu::fptype2_v; +//using mgOnGpu::cxtype_v; +//using mgOnGpu::bool_v; +//#endif -//-------------------------------------------------------------------------- +//========================================================================== +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif +{ #ifndef __CUDACC__ -// Printout to stream for user defined types + // Printout to stream for user defined types #ifndef MGONGPU_CPPCXTYPE_CXSMPL // operator<< for cxsmpl has already been defined! -inline std::ostream& -operator<<( std::ostream& out, const cxtype& c ) -{ - out << "[" << cxreal( c ) << "," << cximag( c ) << "]"; - //out << cxreal(c) << "+i" << cximag(c); - return out; -} + inline std::ostream& + operator<<( std::ostream& out, const cxtype& c ) + { + out << "[" << cxreal( c ) << "," << cximag( c ) << "]"; + //out << cxreal(c) << "+i" << cximag(c); + return out; + } #endif -/* + /* #ifdef MGONGPU_CPPSIMD -inline std::ostream& -operator<<( std::ostream& out, const bool_v& v ) -{ - out << "{ " << v[0]; - for ( int i=1; i t t~ g g No model currently active, so we import the Standard Model INFO: load particles INFO: load vertices -DEBUG: model prefixing takes 0.004593610763549805  +DEBUG: model prefixing takes 0.005085468292236328  INFO: Restrict model sm with file models/sm/restrict_default.dat . DEBUG: Simplifying conditional expressions  DEBUG: remove interactions: u s w+ at order: QED=1  @@ -155,7 +155,7 @@ INFO: Please specify coupling orders to bypass this step. INFO: Trying coupling order WEIGHTED<=4: WEIGTHED IS QCD+2*QED INFO: Trying process: g g > t t~ g g WEIGHTED<=4 @1 INFO: Process has 123 diagrams -1 processes with 123 diagrams generated in 0.144 s +1 processes with 123 diagrams generated in 0.143 s Total: 1 processes with 123 diagrams output madevent CODEGEN_mad_gg_ttgg --hel_recycling=False --vector_size=16384 --me_exporter=standalone_cudacpp Load PLUGIN.CUDACPP_SA_OUTPUT @@ -174,58 +174,58 @@ INFO: Organizing processes into subprocess groups INFO: Generating Helas calls for process: g g > t t~ g g WEIGHTED<=4 @1 INFO: Processing color information for process: g g > t t~ g g @1 INFO: Creating files in directory P1_gg_ttxgg -DEBUG: Entering PLUGIN_OneProcessExporter.__init__ [model_handling.py at line 1028]  -DEBUG: kwargs[prefix] = 0 [model_handling.py at line 1029]  -DEBUG: proc_id =  1 [model_handling.py at line 1034]  -DEBUG: process_exporter_cpp =  [export_v4.py at line 6174]  +DEBUG: Entering PLUGIN_OneProcessExporter.__init__ [model_handling.py at line 1039]  +DEBUG: kwargs[prefix] = 0 [model_handling.py at line 1040]  +DEBUG: proc_id =  1 [model_handling.py at line 1045]  +DEBUG: process_exporter_cpp =  [export_v4.py at line 6174]  INFO: Creating files in directory . -DEBUG: Entering PLUGIN_OneProcessExporter.generate_process_files [model_handling.py at line 1286]  -DEBUG: self.include_multi_channel is already defined: this is madevent+second_exporter mode [model_handling.py at line 1288]  +DEBUG: Entering PLUGIN_OneProcessExporter.generate_process_files [model_handling.py at line 1297]  +DEBUG: self.include_multi_channel is already defined: this is madevent+second_exporter mode [model_handling.py at line 1299]  FileWriter for ././CPPProcess.h -DEBUG: Entering PLUGIN_OneProcessExporter.write_process_h_file [model_handling.py at line 1442]  +DEBUG: Entering PLUGIN_OneProcessExporter.write_process_h_file [model_handling.py at line 1453]  FileWriter for ././CPPProcess.cc -DEBUG: Entering PLUGIN_OneProcessExporter.write_process_cc_file [model_handling.py at line 1464]  -DEBUG: Entering PLUGIN_OneProcessExporter.get_sigmaKin_lines [model_handling.py at line 1132]  -DEBUG: self.include_multi_channel =  [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 0, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 0, 46, 47, 48, 49, 50, 51, 52, 53, 54, 0, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 0, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 0, 88, 89, 90, 91, 92, 93, 0, 94, 95, 96, 97, 98, 99, 0, 100, 101, 102, 103, 104, 105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] [model_handling.py at line 1133]  -DEBUG: self.support_multichannel =  True [model_handling.py at line 1134]  -DEBUG: type(self.helas_call_writer) =  [model_handling.py at line 1151]  -DEBUG: self.support_multichannel, self.include_multi_channel =  True [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 0, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 0, 46, 47, 48, 49, 50, 51, 52, 53, 54, 0, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 0, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 0, 88, 89, 90, 91, 92, 93, 0, 94, 95, 96, 97, 98, 99, 0, 100, 101, 102, 103, 104, 105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] [model_handling.py at line 1152]  -DEBUG: multi_channel =  {1: [1], 2: [2], 3: [3], 4: [4], 5: [5], 6: [6], 7: [7], 8: [8], 9: [9], 10: [10], 11: [11], 12: [12], 13: [13], 14: [14], 15: [15], 16: [16], 17: [17], 18: [18], 19: [19], 20: [20], 21: [21], 22: [22], 23: [23], 24: [24], 25: [25], 26: [26], 27: [27], 28: [28], 29: [29], 30: [30], 31: [32], 32: [33], 33: [34], 34: [35], 35: [36], 36: [37], 37: [38], 38: [39], 39: [40], 40: [41], 41: [42], 42: [43], 43: [44], 44: [45], 45: [46], 46: [48], 47: [49], 48: [50], 49: [51], 50: [52], 51: [53], 52: [54], 53: [55], 54: [56], 55: [58], 56: [59], 57: [60], 58: [61], 59: [62], 60: [63], 61: [64], 62: [65], 63: [66], 64: [67], 65: [68], 66: [69], 67: [70], 68: [71], 69: [72], 70: [74], 71: [75], 72: [76], 73: [77], 74: [78], 75: [79], 76: [80], 77: [81], 78: [82], 79: [83], 80: [84], 81: [85], 82: [86], 83: [87], 84: [88], 85: [89], 86: [90], 87: [91], 88: [93], 89: [94], 90: [95], 91: [96], 92: [97], 93: [98], 94: [100], 95: [101], 96: [102], 97: [103], 98: [104], 99: [105], 100: [107], 101: [108], 102: [109], 103: [110], 104: [111], 105: [112]} [model_handling.py at line 1158]  -DEBUG: multi_channel_map =  {1: [1], 2: [2], 3: [3], 4: [4], 5: [5], 6: [6], 7: [7], 8: [8], 9: [9], 10: [10], 11: [11], 12: [12], 13: [13], 14: [14], 15: [15], 16: [16], 17: [17], 18: [18], 19: [19], 20: [20], 21: [21], 22: [22], 23: [23], 24: [24], 25: [25], 26: [26], 27: [27], 28: [28], 29: [29], 30: [30], 31: [32], 32: [33], 33: [34], 34: [35], 35: [36], 36: [37], 37: [38], 38: [39], 39: [40], 40: [41], 41: [42], 42: [43], 43: [44], 44: [45], 45: [46], 46: [48], 47: [49], 48: [50], 49: [51], 50: [52], 51: [53], 52: [54], 53: [55], 54: [56], 55: [58], 56: [59], 57: [60], 58: [61], 59: [62], 60: [63], 61: [64], 62: [65], 63: [66], 64: [67], 65: [68], 66: [69], 67: [70], 68: [71], 69: [72], 70: [74], 71: [75], 72: [76], 73: [77], 74: [78], 75: [79], 76: [80], 77: [81], 78: [82], 79: [83], 80: [84], 81: [85], 82: [86], 83: [87], 84: [88], 85: [89], 86: [90], 87: [91], 88: [93], 89: [94], 90: [95], 91: [96], 92: [97], 93: [98], 94: [100], 95: [101], 96: [102], 97: [103], 98: [104], 99: [105], 100: [107], 101: [108], 102: [109], 103: [110], 104: [111], 105: [112]} [model_handling.py at line 1643]  -DEBUG: diag_to_config =  {4: 1, 5: 2, 6: 3, 7: 4, 8: 5, 9: 6, 10: 7, 11: 8, 12: 9, 13: 10, 14: 11, 15: 12, 16: 13, 17: 14, 18: 15, 19: 16, 20: 17, 21: 18, 22: 19, 23: 20, 24: 21, 25: 22, 26: 23, 27: 24, 28: 25, 29: 26, 30: 27, 31: 28, 32: 29, 33: 30, 37: 31, 38: 32, 39: 33, 40: 34, 41: 35, 42: 36, 43: 37, 44: 38, 45: 39, 46: 40, 47: 41, 48: 42, 49: 43, 50: 44, 51: 45, 55: 46, 56: 47, 57: 48, 58: 49, 59: 50, 60: 51, 61: 52, 62: 53, 63: 54, 67: 55, 68: 56, 69: 57, 70: 58, 71: 59, 72: 60, 73: 61, 74: 62, 75: 63, 76: 64, 77: 65, 78: 66, 79: 67, 80: 68, 81: 69, 85: 70, 86: 71, 87: 72, 88: 73, 89: 74, 90: 75, 91: 76, 92: 77, 93: 78, 94: 79, 95: 80, 96: 81, 97: 82, 98: 83, 99: 84, 100: 85, 101: 86, 102: 87, 106: 88, 107: 89, 108: 90, 109: 91, 110: 92, 111: 93, 115: 94, 116: 95, 117: 96, 118: 97, 119: 98, 120: 99, 124: 100, 125: 101, 126: 102, 127: 103, 128: 104, 129: 105} [model_handling.py at line 1698]  -DEBUG: call =  vxxxxx( momenta,m_pars->%s, cHel[ihel][%d],%+d, w_sv[%d], %d ); [model_handling.py at line 1810]  -DEBUG: ('ZERO', 0, -1, 0, 0) [model_handling.py at line 1811]  -DEBUG: call =  vxxxxx( momenta,m_pars->%s, cHel[ihel][%d],%+d, w_sv[%d], %d ); [model_handling.py at line 1810]  -DEBUG: ('ZERO', 1, -1, 1, 1) [model_handling.py at line 1811]  -DEBUG: call =  vxxxxx( momenta,m_pars->%s, cHel[ihel][%d],%+d, w_sv[%d], %d ); [model_handling.py at line 1810]  -DEBUG: ('ZERO', 4, 1, 4, 4) [model_handling.py at line 1811]  -DEBUG: call =  vxxxxx( momenta,m_pars->%s, cHel[ihel][%d],%+d, w_sv[%d], %d ); [model_handling.py at line 1810]  -DEBUG: ('ZERO', 5, 1, 5, 5) [model_handling.py at line 1811]  +DEBUG: Entering PLUGIN_OneProcessExporter.write_process_cc_file [model_handling.py at line 1475]  +DEBUG: Entering PLUGIN_OneProcessExporter.get_sigmaKin_lines [model_handling.py at line 1143]  +DEBUG: self.include_multi_channel =  [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 0, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 0, 46, 47, 48, 49, 50, 51, 52, 53, 54, 0, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 0, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 0, 88, 89, 90, 91, 92, 93, 0, 94, 95, 96, 97, 98, 99, 0, 100, 101, 102, 103, 104, 105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] [model_handling.py at line 1144]  +DEBUG: self.support_multichannel =  True [model_handling.py at line 1145]  +DEBUG: type(self.helas_call_writer) =  [model_handling.py at line 1162]  +DEBUG: self.support_multichannel, self.include_multi_channel =  True [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 0, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 0, 46, 47, 48, 49, 50, 51, 52, 53, 54, 0, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 0, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 0, 88, 89, 90, 91, 92, 93, 0, 94, 95, 96, 97, 98, 99, 0, 100, 101, 102, 103, 104, 105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] [model_handling.py at line 1163]  +DEBUG: multi_channel =  {1: [1], 2: [2], 3: [3], 4: [4], 5: [5], 6: [6], 7: [7], 8: [8], 9: [9], 10: [10], 11: [11], 12: [12], 13: [13], 14: [14], 15: [15], 16: [16], 17: [17], 18: [18], 19: [19], 20: [20], 21: [21], 22: [22], 23: [23], 24: [24], 25: [25], 26: [26], 27: [27], 28: [28], 29: [29], 30: [30], 31: [32], 32: [33], 33: [34], 34: [35], 35: [36], 36: [37], 37: [38], 38: [39], 39: [40], 40: [41], 41: [42], 42: [43], 43: [44], 44: [45], 45: [46], 46: [48], 47: [49], 48: [50], 49: [51], 50: [52], 51: [53], 52: [54], 53: [55], 54: [56], 55: [58], 56: [59], 57: [60], 58: [61], 59: [62], 60: [63], 61: [64], 62: [65], 63: [66], 64: [67], 65: [68], 66: [69], 67: [70], 68: [71], 69: [72], 70: [74], 71: [75], 72: [76], 73: [77], 74: [78], 75: [79], 76: [80], 77: [81], 78: [82], 79: [83], 80: [84], 81: [85], 82: [86], 83: [87], 84: [88], 85: [89], 86: [90], 87: [91], 88: [93], 89: [94], 90: [95], 91: [96], 92: [97], 93: [98], 94: [100], 95: [101], 96: [102], 97: [103], 98: [104], 99: [105], 100: [107], 101: [108], 102: [109], 103: [110], 104: [111], 105: [112]} [model_handling.py at line 1169]  +DEBUG: multi_channel_map =  {1: [1], 2: [2], 3: [3], 4: [4], 5: [5], 6: [6], 7: [7], 8: [8], 9: [9], 10: [10], 11: [11], 12: [12], 13: [13], 14: [14], 15: [15], 16: [16], 17: [17], 18: [18], 19: [19], 20: [20], 21: [21], 22: [22], 23: [23], 24: [24], 25: [25], 26: [26], 27: [27], 28: [28], 29: [29], 30: [30], 31: [32], 32: [33], 33: [34], 34: [35], 35: [36], 36: [37], 37: [38], 38: [39], 39: [40], 40: [41], 41: [42], 42: [43], 43: [44], 44: [45], 45: [46], 46: [48], 47: [49], 48: [50], 49: [51], 50: [52], 51: [53], 52: [54], 53: [55], 54: [56], 55: [58], 56: [59], 57: [60], 58: [61], 59: [62], 60: [63], 61: [64], 62: [65], 63: [66], 64: [67], 65: [68], 66: [69], 67: [70], 68: [71], 69: [72], 70: [74], 71: [75], 72: [76], 73: [77], 74: [78], 75: [79], 76: [80], 77: [81], 78: [82], 79: [83], 80: [84], 81: [85], 82: [86], 83: [87], 84: [88], 85: [89], 86: [90], 87: [91], 88: [93], 89: [94], 90: [95], 91: [96], 92: [97], 93: [98], 94: [100], 95: [101], 96: [102], 97: [103], 98: [104], 99: [105], 100: [107], 101: [108], 102: [109], 103: [110], 104: [111], 105: [112]} [model_handling.py at line 1654]  +DEBUG: diag_to_config =  {4: 1, 5: 2, 6: 3, 7: 4, 8: 5, 9: 6, 10: 7, 11: 8, 12: 9, 13: 10, 14: 11, 15: 12, 16: 13, 17: 14, 18: 15, 19: 16, 20: 17, 21: 18, 22: 19, 23: 20, 24: 21, 25: 22, 26: 23, 27: 24, 28: 25, 29: 26, 30: 27, 31: 28, 32: 29, 33: 30, 37: 31, 38: 32, 39: 33, 40: 34, 41: 35, 42: 36, 43: 37, 44: 38, 45: 39, 46: 40, 47: 41, 48: 42, 49: 43, 50: 44, 51: 45, 55: 46, 56: 47, 57: 48, 58: 49, 59: 50, 60: 51, 61: 52, 62: 53, 63: 54, 67: 55, 68: 56, 69: 57, 70: 58, 71: 59, 72: 60, 73: 61, 74: 62, 75: 63, 76: 64, 77: 65, 78: 66, 79: 67, 80: 68, 81: 69, 85: 70, 86: 71, 87: 72, 88: 73, 89: 74, 90: 75, 91: 76, 92: 77, 93: 78, 94: 79, 95: 80, 96: 81, 97: 82, 98: 83, 99: 84, 100: 85, 101: 86, 102: 87, 106: 88, 107: 89, 108: 90, 109: 91, 110: 92, 111: 93, 115: 94, 116: 95, 117: 96, 118: 97, 119: 98, 120: 99, 124: 100, 125: 101, 126: 102, 127: 103, 128: 104, 129: 105} [model_handling.py at line 1709]  +DEBUG: call =  vxxxxx( momenta,m_pars->%s, cHel[ihel][%d],%+d, w_sv[%d], %d ); [model_handling.py at line 1821]  +DEBUG: ('ZERO', 0, -1, 0, 0) [model_handling.py at line 1822]  +DEBUG: call =  vxxxxx( momenta,m_pars->%s, cHel[ihel][%d],%+d, w_sv[%d], %d ); [model_handling.py at line 1821]  +DEBUG: ('ZERO', 1, -1, 1, 1) [model_handling.py at line 1822]  +DEBUG: call =  vxxxxx( momenta,m_pars->%s, cHel[ihel][%d],%+d, w_sv[%d], %d ); [model_handling.py at line 1821]  +DEBUG: ('ZERO', 4, 1, 4, 4) [model_handling.py at line 1822]  +DEBUG: call =  vxxxxx( momenta,m_pars->%s, cHel[ihel][%d],%+d, w_sv[%d], %d ); [model_handling.py at line 1821]  +DEBUG: ('ZERO', 5, 1, 5, 5) [model_handling.py at line 1822]  INFO: Created files CPPProcess.h and CPPProcess.cc in directory ./. -DEBUG: Entering PLUGIN_OneProcessExporter.edit_CMakeLists [model_handling.py at line 1332]  -DEBUG: Entering PLUGIN_OneProcessExporter.edit_check_sa [model_handling.py at line 1341]  -DEBUG: Entering PLUGIN_OneProcessExporter.edit_mgonGPU [model_handling.py at line 1358]  -DEBUG: Entering PLUGIN_OneProcessExporter.edit_processidfile [model_handling.py at line 1378]  -DEBUG: Entering PLUGIN_OneProcessExporter.edit_coloramps [model_handling.py at line 1390]  -DEBUG: Entering PLUGIN_OneProcessExporter.edit_testxxx [model_handling.py at line 1408]  -DEBUG: Entering PLUGIN_OneProcessExporter.edit_memorybuffers [model_handling.py at line 1419]  -DEBUG: Entering PLUGIN_OneProcessExporter.edit_memoryaccesscouplings [model_handling.py at line 1430]  -DEBUG: 'Copying test reference file: ', template_ref =  Copying test reference file: /data/avalassi/GPU2023/MG5aMC/ghav-mg5amcnlo/PLUGIN/CUDACPP_SA_OUTPUT/madgraph/iolibs/template_files/../../../test/ref/dump_CPUTest.Sigma_sm_gg_ttxgg.txt [model_handling.py at line 1324]  +DEBUG: Entering PLUGIN_OneProcessExporter.edit_CMakeLists [model_handling.py at line 1343]  +DEBUG: Entering PLUGIN_OneProcessExporter.edit_check_sa [model_handling.py at line 1352]  +DEBUG: Entering PLUGIN_OneProcessExporter.edit_mgonGPU [model_handling.py at line 1369]  +DEBUG: Entering PLUGIN_OneProcessExporter.edit_processidfile [model_handling.py at line 1389]  +DEBUG: Entering PLUGIN_OneProcessExporter.edit_coloramps [model_handling.py at line 1401]  +DEBUG: Entering PLUGIN_OneProcessExporter.edit_testxxx [model_handling.py at line 1419]  +DEBUG: Entering PLUGIN_OneProcessExporter.edit_memorybuffers [model_handling.py at line 1430]  +DEBUG: Entering PLUGIN_OneProcessExporter.edit_memoryaccesscouplings [model_handling.py at line 1441]  +DEBUG: 'Copying test reference file: ', template_ref =  Copying test reference file: /data/avalassi/GPU2023/MG5aMC/ghav-mg5amcnlo/PLUGIN/CUDACPP_SA_OUTPUT/madgraph/iolibs/template_files/../../../test/ref/dump_CPUTest.Sigma_sm_gg_ttxgg.txt [model_handling.py at line 1335]  DEBUG: proc_id =  1 [export_cpp.py at line 710]  DEBUG: config_map =  [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 0, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 0, 46, 47, 48, 49, 50, 51, 52, 53, 54, 0, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 0, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 0, 88, 89, 90, 91, 92, 93, 0, 94, 95, 96, 97, 98, 99, 0, 100, 101, 102, 103, 104, 105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] [export_cpp.py at line 711]  DEBUG: subproc_number =  0 [export_cpp.py at line 712]  DEBUG: Done [export_cpp.py at line 713]  INFO: Generating Feynman diagrams for Process: g g > t t~ g g WEIGHTED<=4 @1 INFO: Finding symmetric diagrams for subprocess group gg_ttxgg -Generated helas calls for 1 subprocesses (123 diagrams) in 0.380 s -Wrote files for 222 helas calls in 0.696 s +Generated helas calls for 1 subprocesses (123 diagrams) in 0.384 s +Wrote files for 222 helas calls in 0.659 s ALOHA: aloha starts to compute helicity amplitudes ALOHA: aloha creates VVV1 routines ALOHA: aloha creates FFV1 routines ALOHA: aloha creates VVVV1 routines ALOHA: aloha creates VVVV3 routines ALOHA: aloha creates VVVV4 routines -ALOHA: aloha creates 5 routines in 0.281 s +ALOHA: aloha creates 5 routines in 0.282 s DEBUG: Entering PLUGIN_ProcessExporter.convert_model (create the model) [output.py at line 194]  ALOHA: aloha starts to compute helicity amplitudes ALOHA: aloha creates VVV1 routines @@ -233,7 +233,7 @@ ALOHA: aloha creates FFV1 routines ALOHA: aloha creates VVVV1 routines ALOHA: aloha creates VVVV3 routines ALOHA: aloha creates VVVV4 routines -ALOHA: aloha creates 10 routines in 0.287 s +ALOHA: aloha creates 10 routines in 0.271 s VVV1 VVV1 FFV1 @@ -249,25 +249,13 @@ ALOHA: aloha creates 10 routines in 0.287 s FileWriter for /data/avalassi/GPU2023/MG5aMC/ghav-mg5amcnlo/CODEGEN_mad_gg_ttgg/src/./HelAmps_sm.h INFO: Created file HelAmps_sm.h in directory /data/avalassi/GPU2023/MG5aMC/ghav-mg5amcnlo/CODEGEN_mad_gg_ttgg/src/. super_write_set_parameters_onlyfixMajorana (hardcoded=False) -DEBUG: 'pardef_lines size =', len(pardef_lines), ', keys size =', len(pardef_lines.keys()) =  pardef_lines size = 48 , keys size = 48 [model_handling.py at line 724]  -DEBUG: 'parset_pars size =', len(parset_pars) =  parset_pars size = 48 [model_handling.py at line 740]  -DEBUG: 'parset_lines size =', len(parset_lines), ', keys size =', len(parset_lines.keys()) =  parset_lines size = 48 , keys size = 48 [model_handling.py at line 741]  +DEBUG: 'pardef_lines size =', len(pardef_lines), ', keys size =', len(pardef_lines.keys()) =  pardef_lines size = 48 , keys size = 48 [model_handling.py at line 729]  super_write_set_parameters_onlyfixMajorana (hardcoded=True) -DEBUG: 'pardef_lines size =', len(pardef_lines), ', keys size =', len(pardef_lines.keys()) =  pardef_lines size = 3 , keys size = 3 [model_handling.py at line 724]  -DEBUG: 'parset_pars size =', len(parset_pars) =  parset_pars size = 3 [model_handling.py at line 740]  -DEBUG: 'parset_lines size =', len(parset_lines), ', keys size =', len(parset_lines.keys()) =  parset_lines size = 3 , keys size = 3 [model_handling.py at line 741]  -DEBUG: 'pardef_lines size =', len(pardef_lines), ', keys size =', len(pardef_lines.keys()) =  pardef_lines size = 3 , keys size = 3 [model_handling.py at line 724]  -DEBUG: 'parset_pars size =', len(parset_pars) =  parset_pars size = 3 [model_handling.py at line 740]  -DEBUG: 'parset_lines size =', len(parset_lines), ', keys size =', len(parset_lines.keys()) =  parset_lines size = 3 , keys size = 3 [model_handling.py at line 741]  -DEBUG: 'pardef_lines size =', len(pardef_lines), ', keys size =', len(pardef_lines.keys()) =  pardef_lines size = 3 , keys size = 3 [model_handling.py at line 724]  -DEBUG: 'parset_pars size =', len(parset_pars) =  parset_pars size = 3 [model_handling.py at line 740]  -DEBUG: 'parset_lines size =', len(parset_lines), ', keys size =', len(parset_lines.keys()) =  parset_lines size = 3 , keys size = 3 [model_handling.py at line 741]  -DEBUG: 'pardef_lines size =', len(pardef_lines), ', keys size =', len(pardef_lines.keys()) =  pardef_lines size = 3 , keys size = 3 [model_handling.py at line 724]  -DEBUG: 'parset_pars size =', len(parset_pars) =  parset_pars size = 3 [model_handling.py at line 740]  -DEBUG: 'parset_lines size =', len(parset_lines), ', keys size =', len(parset_lines.keys()) =  parset_lines size = 3 , keys size = 3 [model_handling.py at line 741]  -DEBUG: 'pardef_lines size =', len(pardef_lines), ', keys size =', len(pardef_lines.keys()) =  pardef_lines size = 3 , keys size = 3 [model_handling.py at line 724]  -DEBUG: 'parset_pars size =', len(parset_pars) =  parset_pars size = 3 [model_handling.py at line 740]  -DEBUG: 'parset_lines size =', len(parset_lines), ', keys size =', len(parset_lines.keys()) =  parset_lines size = 3 , keys size = 3 [model_handling.py at line 741]  +DEBUG: 'pardef_lines size =', len(pardef_lines), ', keys size =', len(pardef_lines.keys()) =  pardef_lines size = 3 , keys size = 3 [model_handling.py at line 729]  +DEBUG: 'pardef_lines size =', len(pardef_lines), ', keys size =', len(pardef_lines.keys()) =  pardef_lines size = 3 , keys size = 3 [model_handling.py at line 729]  +DEBUG: 'pardef_lines size =', len(pardef_lines), ', keys size =', len(pardef_lines.keys()) =  pardef_lines size = 3 , keys size = 3 [model_handling.py at line 729]  +DEBUG: 'pardef_lines size =', len(pardef_lines), ', keys size =', len(pardef_lines.keys()) =  pardef_lines size = 3 , keys size = 3 [model_handling.py at line 729]  +DEBUG: 'pardef_lines size =', len(pardef_lines), ', keys size =', len(pardef_lines.keys()) =  pardef_lines size = 3 , keys size = 3 [model_handling.py at line 729]  FileWriter for /data/avalassi/GPU2023/MG5aMC/ghav-mg5amcnlo/CODEGEN_mad_gg_ttgg/src/./Parameters_sm.h FileWriter for /data/avalassi/GPU2023/MG5aMC/ghav-mg5amcnlo/CODEGEN_mad_gg_ttgg/src/./Parameters_sm.cc INFO: Created files Parameters_sm.h and Parameters_sm.cc in directory @@ -284,6 +272,6 @@ Type "launch" to generate events from this process, or see Run "open index.html" to see more information about this process. quit -real 0m3.208s -user 0m2.774s -sys 0m0.232s +real 0m3.022s +user 0m2.797s +sys 0m0.209s diff --git a/epochX/cudacpp/gg_ttgg.mad/SubProcesses/Bridge.h b/epochX/cudacpp/gg_ttgg.mad/SubProcesses/Bridge.h index 4cafe0c997..d7e629cacd 100644 --- a/epochX/cudacpp/gg_ttgg.mad/SubProcesses/Bridge.h +++ b/epochX/cudacpp/gg_ttgg.mad/SubProcesses/Bridge.h @@ -152,32 +152,32 @@ namespace mg5amcCpu #ifdef __CUDACC__ int m_gputhreads; // number of gpu threads (default set from number of events, can be modified) int m_gpublocks; // number of gpu blocks (default set from number of events, can be modified) - mg5amcGpu::DeviceBuffer m_devMomentaF; - mg5amcGpu::DeviceBufferMomenta m_devMomentaC; - mg5amcGpu::DeviceBufferGs m_devGs; - mg5amcGpu::DeviceBufferRndNumHelicity m_devRndHel; - mg5amcGpu::DeviceBufferRndNumColor m_devRndCol; - mg5amcGpu::DeviceBufferMatrixElements m_devMEs; - mg5amcGpu::DeviceBufferSelectedHelicity m_devSelHel; - mg5amcGpu::DeviceBufferSelectedColor m_devSelCol; - mg5amcGpu::PinnedHostBufferGs m_hstGs; - mg5amcGpu::PinnedHostBufferRndNumHelicity m_hstRndHel; - mg5amcGpu::PinnedHostBufferRndNumColor m_hstRndCol; - mg5amcGpu::PinnedHostBufferMatrixElements m_hstMEs; - mg5amcGpu::PinnedHostBufferSelectedHelicity m_hstSelHel; - mg5amcGpu::PinnedHostBufferSelectedColor m_hstSelCol; - std::unique_ptr m_pmek; + DeviceBuffer m_devMomentaF; + DeviceBufferMomenta m_devMomentaC; + DeviceBufferGs m_devGs; + DeviceBufferRndNumHelicity m_devRndHel; + DeviceBufferRndNumColor m_devRndCol; + DeviceBufferMatrixElements m_devMEs; + DeviceBufferSelectedHelicity m_devSelHel; + DeviceBufferSelectedColor m_devSelCol; + PinnedHostBufferGs m_hstGs; + PinnedHostBufferRndNumHelicity m_hstRndHel; + PinnedHostBufferRndNumColor m_hstRndCol; + PinnedHostBufferMatrixElements m_hstMEs; + PinnedHostBufferSelectedHelicity m_hstSelHel; + PinnedHostBufferSelectedColor m_hstSelCol; + std::unique_ptr m_pmek; //static constexpr int s_gputhreadsmin = 16; // minimum number of gpu threads (TEST VALUE FOR MADEVENT) static constexpr int s_gputhreadsmin = 32; // minimum number of gpu threads (DEFAULT) #else - mg5amcCpu::HostBufferMomenta m_hstMomentaC; - mg5amcCpu::HostBufferGs m_hstGs; - mg5amcCpu::HostBufferRndNumHelicity m_hstRndHel; - mg5amcCpu::HostBufferRndNumColor m_hstRndCol; - mg5amcCpu::HostBufferMatrixElements m_hstMEs; - mg5amcCpu::HostBufferSelectedHelicity m_hstSelHel; - mg5amcCpu::HostBufferSelectedColor m_hstSelCol; - std::unique_ptr m_pmek; + HostBufferMomenta m_hstMomentaC; + HostBufferGs m_hstGs; + HostBufferRndNumHelicity m_hstRndHel; + HostBufferRndNumColor m_hstRndCol; + HostBufferMatrixElements m_hstMEs; + HostBufferSelectedHelicity m_hstSelHel; + HostBufferSelectedColor m_hstSelCol; + std::unique_ptr m_pmek; #endif }; @@ -244,12 +244,12 @@ namespace mg5amcCpu } std::cout << "WARNING! Instantiate device Bridge (nevt=" << m_nevt << ", gpublocks=" << m_gpublocks << ", gputhreads=" << m_gputhreads << ", gpublocks*gputhreads=" << m_gpublocks * m_gputhreads << ")" << std::endl; - mg5amcGpu::CPPProcess process( /*verbose=*/false ); - m_pmek.reset( new mg5amcGpu::MatrixElementKernelDevice( m_devMomentaC, m_devGs, m_devRndHel, m_devRndCol, m_devMEs, m_devSelHel, m_devSelCol, m_gpublocks, m_gputhreads ) ); + CPPProcess process( /*verbose=*/false ); + m_pmek.reset( new MatrixElementKernelDevice( m_devMomentaC, m_devGs, m_devRndHel, m_devRndCol, m_devMEs, m_devSelHel, m_devSelCol, m_gpublocks, m_gputhreads ) ); #else std::cout << "WARNING! Instantiate host Bridge (nevt=" << m_nevt << ")" << std::endl; - mg5amcCpu::CPPProcess process( /*verbose=*/false ); - m_pmek.reset( new mg5amcCpu::MatrixElementKernelHost( m_hstMomentaC, m_hstGs, m_hstRndHel, m_hstRndCol, m_hstMEs, m_hstSelHel, m_hstSelCol, m_nevt ) ); + CPPProcess process( /*verbose=*/false ); + m_pmek.reset( new MatrixElementKernelHost( m_hstMomentaC, m_hstGs, m_hstRndHel, m_hstRndCol, m_hstMEs, m_hstSelHel, m_hstSelCol, m_nevt ) ); #endif // __CUDACC__ process.initProc( "../../Cards/param_card.dat" ); } diff --git a/epochX/cudacpp/gg_ttgg.mad/SubProcesses/BridgeKernels.cc b/epochX/cudacpp/gg_ttgg.mad/SubProcesses/BridgeKernels.cc index cef4cb3c71..d58066c9c1 100644 --- a/epochX/cudacpp/gg_ttgg.mad/SubProcesses/BridgeKernels.cc +++ b/epochX/cudacpp/gg_ttgg.mad/SubProcesses/BridgeKernels.cc @@ -9,9 +9,6 @@ #include -constexpr int np4 = CPPProcess::np4; // dimensions of 4-momenta (E,px,py,pz) -constexpr int npar = CPPProcess::npar; // #particles in total (external = initial + final): e.g. 4 for e+ e- -> mu+ mu- - //============================================================================ #ifdef __CUDACC__ @@ -20,6 +17,9 @@ namespace mg5amcGpu namespace mg5amcCpu #endif { + constexpr int np4 = CPPProcess::np4; // dimensions of 4-momenta (E,px,py,pz) + constexpr int npar = CPPProcess::npar; // #particles in total (external = initial + final): e.g. 4 for e+ e- -> mu+ mu- + //-------------------------------------------------------------------------- BridgeKernelBase::BridgeKernelBase( const BufferMomenta& momenta, // input: momenta diff --git a/epochX/cudacpp/gg_ttgg.mad/SubProcesses/MemoryAccessAmplitudes.h b/epochX/cudacpp/gg_ttgg.mad/SubProcesses/MemoryAccessAmplitudes.h index 68f6838b5c..573b3bbbc9 100644 --- a/epochX/cudacpp/gg_ttgg.mad/SubProcesses/MemoryAccessAmplitudes.h +++ b/epochX/cudacpp/gg_ttgg.mad/SubProcesses/MemoryAccessAmplitudes.h @@ -14,142 +14,151 @@ #define MGONGPU_TRIVIAL_AMPLITUDES 1 -//---------------------------------------------------------------------------- - -#ifndef MGONGPU_TRIVIAL_AMPLITUDES - -// A class describing the internal layout of memory buffers for amplitudes -// This implementation uses an AOSOA[npagA][nx2][neppA] where nevt=npagA*neppA -// [If many implementations are used, a suffix _AOSOAv1 should be appended to the class name] -class MemoryAccessAmplitudesBase //_AOSOAv1 +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { -public: - - // Number of Events Per Page in the amplitude AOSOA memory buffer layout - static constexpr int neppA = 1; // AOS (just a test...) + //---------------------------------------------------------------------------- -private: - - friend class MemoryAccessHelper; - friend class KernelAccessHelper; - friend class KernelAccessHelper; - - // The number of floating point components of a complex number - static constexpr int nx2 = mgOnGpu::nx2; - - //-------------------------------------------------------------------------- - // NB all KernelLaunchers assume that memory access can be decomposed as "accessField = decodeRecord( accessRecord )" - // (in other words: first locate the event record for a given event, then locate an element in that record) - //-------------------------------------------------------------------------- +#ifndef MGONGPU_TRIVIAL_AMPLITUDES - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] - static __host__ __device__ inline fptype* - ieventAccessRecord( fptype* buffer, - const int ievt ) + // A class describing the internal layout of memory buffers for amplitudes + // This implementation uses an AOSOA[npagA][nx2][neppA] where nevt=npagA*neppA + // [If many implementations are used, a suffix _AOSOAv1 should be appended to the class name] + class MemoryAccessAmplitudesBase //_AOSOAv1 { - const int ipagA = ievt / neppA; // #event "A-page" - const int ieppA = ievt % neppA; // #event in the current event A-page - constexpr int ix2 = 0; - return &( buffer[ipagA * nx2 * neppA + ix2 * neppA + ieppA] ); // AOSOA[ipagA][ix2][ieppA] - } - - //-------------------------------------------------------------------------- - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, Ts... args ) <===] - // [NB: expand variadic template "Ts... args" to "const int ix2" and rename "Field" as "Ix2"] - static __host__ __device__ inline fptype& - decodeRecord( fptype* buffer, - const int ix2 ) + public: + + // Number of Events Per Page in the amplitude AOSOA memory buffer layout + static constexpr int neppA = 1; // AOS (just a test...) + + private: + + friend class MemoryAccessHelper; + friend class KernelAccessHelper; + friend class KernelAccessHelper; + + // The number of floating point components of a complex number + static constexpr int nx2 = mgOnGpu::nx2; + + //-------------------------------------------------------------------------- + // NB all KernelLaunchers assume that memory access can be decomposed as "accessField = decodeRecord( accessRecord )" + // (in other words: first locate the event record for a given event, then locate an element in that record) + //-------------------------------------------------------------------------- + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] + static __host__ __device__ inline fptype* + ieventAccessRecord( fptype* buffer, + const int ievt ) + { + const int ipagA = ievt / neppA; // #event "A-page" + const int ieppA = ievt % neppA; // #event in the current event A-page + constexpr int ix2 = 0; + return &( buffer[ipagA * nx2 * neppA + ix2 * neppA + ieppA] ); // AOSOA[ipagA][ix2][ieppA] + } + + //-------------------------------------------------------------------------- + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, Ts... args ) <===] + // [NB: expand variadic template "Ts... args" to "const int ix2" and rename "Field" as "Ix2"] + static __host__ __device__ inline fptype& + decodeRecord( fptype* buffer, + const int ix2 ) + { + constexpr int ipagA = 0; + constexpr int ieppA = 0; + return buffer[ipagA * nx2 * neppA + ix2 * neppA + ieppA]; // AOSOA[ipagA][ix2][ieppA] + } + }; + + //---------------------------------------------------------------------------- + + // A class providing access to memory buffers for a given event, based on explicit event numbers + // Its methods use the MemoryAccessHelper templates - note the use of the template keyword in template function instantiations + class MemoryAccessAmplitudes : public MemoryAccessAmplitudesBase { - constexpr int ipagA = 0; - constexpr int ieppA = 0; - return buffer[ipagA * nx2 * neppA + ix2 * neppA + ieppA]; // AOSOA[ipagA][ix2][ieppA] - } -}; + public: -//---------------------------------------------------------------------------- + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] + static constexpr auto ieventAccessRecord = MemoryAccessHelper::ieventAccessRecord; -// A class providing access to memory buffers for a given event, based on explicit event numbers -// Its methods use the MemoryAccessHelper templates - note the use of the template keyword in template function instantiations -class MemoryAccessAmplitudes : public MemoryAccessAmplitudesBase -{ -public: - - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] - static constexpr auto ieventAccessRecord = MemoryAccessHelper::ieventAccessRecord; + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (const) ===> const fptype* ieventAccessRecordConst( const fptype* buffer, const int ievt ) <===] + static constexpr auto ieventAccessRecordConst = MemoryAccessHelper::ieventAccessRecordConst; - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (const) ===> const fptype* ieventAccessRecordConst( const fptype* buffer, const int ievt ) <===] - static constexpr auto ieventAccessRecordConst = MemoryAccessHelper::ieventAccessRecordConst; + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, const int ix2 ) <===] + static constexpr auto decodeRecordIx2 = MemoryAccessHelper::decodeRecord; - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, const int ix2 ) <===] - static constexpr auto decodeRecordIx2 = MemoryAccessHelper::decodeRecord; + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (const) ===> const fptype& decodeRecordConst( const fptype* buffer, const int ix2 ) <===] + static constexpr auto decodeRecordIx2Const = + MemoryAccessHelper::template decodeRecordConst; - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (const) ===> const fptype& decodeRecordConst( const fptype* buffer, const int ix2 ) <===] - static constexpr auto decodeRecordIx2Const = - MemoryAccessHelper::template decodeRecordConst; + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (non-const) ===> fptype& ieventAccessIx2( fptype* buffer, const ievt, const int ix2 ) <===] + static constexpr auto ieventAccessIx2 = + MemoryAccessHelper::template ieventAccessField; - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (non-const) ===> fptype& ieventAccessIx2( fptype* buffer, const ievt, const int ix2 ) <===] - static constexpr auto ieventAccessIx2 = - MemoryAccessHelper::template ieventAccessField; - - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (const) ===> const fptype& ieventAccessIx2Const( const fptype* buffer, const ievt, const int ix2 ) <===] - static constexpr auto ieventAccessIx2Const = - MemoryAccessHelper::template ieventAccessFieldConst; -}; + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (const) ===> const fptype& ieventAccessIx2Const( const fptype* buffer, const ievt, const int ix2 ) <===] + static constexpr auto ieventAccessIx2Const = + MemoryAccessHelper::template ieventAccessFieldConst; + }; #endif // #ifndef MGONGPU_TRIVIAL_AMPLITUDES -//---------------------------------------------------------------------------- + //---------------------------------------------------------------------------- -// A class providing access to memory buffers for a given event, based on implicit kernel rules -// Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations -template -class KernelAccessAmplitudes -{ -public: + // A class providing access to memory buffers for a given event, based on implicit kernel rules + // Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations + template + class KernelAccessAmplitudes + { + public: #ifndef MGONGPU_TRIVIAL_AMPLITUDES - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (non-const) ===> fptype& kernelAccessIx2( fptype* buffer, const int ix2 ) <===] - static constexpr auto kernelAccessIx2 = - KernelAccessHelper::template kernelAccessField; + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (non-const) ===> fptype& kernelAccessIx2( fptype* buffer, const int ix2 ) <===] + static constexpr auto kernelAccessIx2 = + KernelAccessHelper::template kernelAccessField; - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (const) ===> const fptype& kernelAccessIx2Const( const fptype* buffer, const int ix2 ) <===] - static constexpr auto kernelAccessIx2Const = - KernelAccessHelper::template kernelAccessFieldConst; + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (const) ===> const fptype& kernelAccessIx2Const( const fptype* buffer, const int ix2 ) <===] + static constexpr auto kernelAccessIx2Const = + KernelAccessHelper::template kernelAccessFieldConst; #else - static __host__ __device__ inline cxtype_sv* - kernelAccess( fptype* buffer ) - { - return reinterpret_cast( buffer ); - } + static __host__ __device__ inline cxtype_sv* + kernelAccess( fptype* buffer ) + { + return reinterpret_cast( buffer ); + } - static __host__ __device__ inline const cxtype_sv* - kernelAccessConst( const fptype* buffer ) - { - return reinterpret_cast( buffer ); - } + static __host__ __device__ inline const cxtype_sv* + kernelAccessConst( const fptype* buffer ) + { + return reinterpret_cast( buffer ); + } #endif // #ifndef MGONGPU_TRIVIAL_AMPLITUDES -}; + }; + + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- + typedef KernelAccessAmplitudes HostAccessAmplitudes; + typedef KernelAccessAmplitudes DeviceAccessAmplitudes; -typedef KernelAccessAmplitudes HostAccessAmplitudes; -typedef KernelAccessAmplitudes DeviceAccessAmplitudes; + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- +} // end namespace mg5amcGpu/mg5amcCpu #endif // MemoryAccessAmplitudes_H diff --git a/epochX/cudacpp/gg_ttgg.mad/SubProcesses/MemoryAccessCouplings.h b/epochX/cudacpp/gg_ttgg.mad/SubProcesses/MemoryAccessCouplings.h index 15793bbec3..35a3af42e0 100644 --- a/epochX/cudacpp/gg_ttgg.mad/SubProcesses/MemoryAccessCouplings.h +++ b/epochX/cudacpp/gg_ttgg.mad/SubProcesses/MemoryAccessCouplings.h @@ -14,248 +14,257 @@ #include "MemoryAccessMomenta.h" // for MemoryAccessMomentaBase::neppM #include "MemoryBuffers.h" // for HostBufferCouplings::isaligned -//---------------------------------------------------------------------------- - -// A class describing the internal layout of memory buffers for couplings -// This implementation uses an AOSOA[npagC][ndcoup][nx2][neppC] "super-buffer" where nevt=npagC*neppC -// From the "super-buffer" for ndcoup different couplings, use idcoupAccessBuffer to access the buffer for one specific coupling -// [If many implementations are used, a suffix _AOSOAv1 should be appended to the class name] -class MemoryAccessCouplingsBase //_AOSOAv1 +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { -public: - - // Number of Events Per Page in the coupling AOSOA memory buffer layout - static constexpr int neppC = MemoryAccessMomentaBase::neppM; // use the same AOSOA striding as for momenta - - // SANITY CHECK: check that neppC is a power of two - static_assert( ispoweroftwo( neppC ), "neppC is not a power of 2" ); - - //-------------------------------------------------------------------------- - // ** NB! A single super-buffer AOSOA[npagC][ndcoup][nx2][neppC] includes data for ndcoup different couplings ** - // ** NB! The ieventAccessRecord and kernelAccess functions refer to the buffer for one individual coupling ** - // ** NB! Use idcoupAccessBuffer to add a fixed offset and locate the buffer for one given individual coupling ** - //-------------------------------------------------------------------------- - - // Locate the buffer for a single coupling (output) in a memory super-buffer (input) from the given coupling index (input) - // [Signature (non-const) ===> fptype* idcoupAccessBuffer( fptype* buffer, const int idcoup ) <===] - // NB: keep this in public even if exposed through KernelAccessCouplings: nvcc says it is inaccesible otherwise? - static __host__ __device__ inline fptype* - idcoupAccessBuffer( fptype* buffer, // input "super-buffer" - const int idcoup ) - { - constexpr int ipagC = 0; - constexpr int ieppC = 0; - constexpr int ix2 = 0; - // NB! this effectively adds an offset "idcoup * nx2 * neppC" - return &( buffer[ipagC * ndcoup * nx2 * neppC + idcoup * nx2 * neppC + ix2 * neppC + ieppC] ); // AOSOA[ipagC][idcoup][ix2][ieppC] - } - - // Locate the buffer for a single coupling (output) in a memory super-buffer (input) from the given coupling index (input) - // [Signature (const) ===> const fptype* idcoupAccessBufferConst( const fptype* buffer, const int idcoup ) <===] - // NB: keep this in public even if exposed through KernelAccessCouplings: nvcc says it is inaccesible otherwise? - static __host__ __device__ inline const fptype* - idcoupAccessBufferConst( const fptype* buffer, // input "super-buffer" - const int idcoup ) - { - return idcoupAccessBuffer( const_cast( buffer ), idcoup ); - } - -private: + //---------------------------------------------------------------------------- - friend class MemoryAccessHelper; - friend class KernelAccessHelper; - friend class KernelAccessHelper; - - // The number of couplings that dependent on the running alphas QCD in this specific process - static constexpr size_t ndcoup = Parameters_sm_dependentCouplings::ndcoup; - - // The number of floating point components of a complex number - static constexpr int nx2 = mgOnGpu::nx2; - - //-------------------------------------------------------------------------- - // NB all KernelLaunchers assume that memory access can be decomposed as "accessField = decodeRecord( accessRecord )" - // (in other words: first locate the event record for a given event, then locate an element in that record) - //-------------------------------------------------------------------------- - - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] - static __host__ __device__ inline fptype* - ieventAccessRecord( fptype* buffer, - const int ievt ) + // A class describing the internal layout of memory buffers for couplings + // This implementation uses an AOSOA[npagC][ndcoup][nx2][neppC] "super-buffer" where nevt=npagC*neppC + // From the "super-buffer" for ndcoup different couplings, use idcoupAccessBuffer to access the buffer for one specific coupling + // [If many implementations are used, a suffix _AOSOAv1 should be appended to the class name] + class MemoryAccessCouplingsBase //_AOSOAv1 { - const int ipagC = ievt / neppC; // #event "C-page" - const int ieppC = ievt % neppC; // #event in the current event C-page - constexpr int idcoup = 0; - constexpr int ix2 = 0; - return &( buffer[ipagC * ndcoup * nx2 * neppC + idcoup * nx2 * neppC + ix2 * neppC + ieppC] ); // AOSOA[ipagC][idcoup][ix2][ieppC] - } - - //-------------------------------------------------------------------------- - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, Ts... args ) <===] - // [NB: expand variadic template "Ts... args" to "const int ix2" and rename "Field" as "Ix2"] - static __host__ __device__ inline fptype& - decodeRecord( fptype* buffer, - const int ix2 ) + public: + + // Number of Events Per Page in the coupling AOSOA memory buffer layout + static constexpr int neppC = MemoryAccessMomentaBase::neppM; // use the same AOSOA striding as for momenta + + // SANITY CHECK: check that neppC is a power of two + static_assert( ispoweroftwo( neppC ), "neppC is not a power of 2" ); + + //-------------------------------------------------------------------------- + // ** NB! A single super-buffer AOSOA[npagC][ndcoup][nx2][neppC] includes data for ndcoup different couplings ** + // ** NB! The ieventAccessRecord and kernelAccess functions refer to the buffer for one individual coupling ** + // ** NB! Use idcoupAccessBuffer to add a fixed offset and locate the buffer for one given individual coupling ** + //-------------------------------------------------------------------------- + + // Locate the buffer for a single coupling (output) in a memory super-buffer (input) from the given coupling index (input) + // [Signature (non-const) ===> fptype* idcoupAccessBuffer( fptype* buffer, const int idcoup ) <===] + // NB: keep this in public even if exposed through KernelAccessCouplings: nvcc says it is inaccesible otherwise? + static __host__ __device__ inline fptype* + idcoupAccessBuffer( fptype* buffer, // input "super-buffer" + const int idcoup ) + { + constexpr int ipagC = 0; + constexpr int ieppC = 0; + constexpr int ix2 = 0; + // NB! this effectively adds an offset "idcoup * nx2 * neppC" + return &( buffer[ipagC * ndcoup * nx2 * neppC + idcoup * nx2 * neppC + ix2 * neppC + ieppC] ); // AOSOA[ipagC][idcoup][ix2][ieppC] + } + + // Locate the buffer for a single coupling (output) in a memory super-buffer (input) from the given coupling index (input) + // [Signature (const) ===> const fptype* idcoupAccessBufferConst( const fptype* buffer, const int idcoup ) <===] + // NB: keep this in public even if exposed through KernelAccessCouplings: nvcc says it is inaccesible otherwise? + static __host__ __device__ inline const fptype* + idcoupAccessBufferConst( const fptype* buffer, // input "super-buffer" + const int idcoup ) + { + return idcoupAccessBuffer( const_cast( buffer ), idcoup ); + } + + private: + + friend class MemoryAccessHelper; + friend class KernelAccessHelper; + friend class KernelAccessHelper; + + // The number of couplings that dependent on the running alphas QCD in this specific process + static constexpr size_t ndcoup = Parameters_sm_dependentCouplings::ndcoup; + + // The number of floating point components of a complex number + static constexpr int nx2 = mgOnGpu::nx2; + + //-------------------------------------------------------------------------- + // NB all KernelLaunchers assume that memory access can be decomposed as "accessField = decodeRecord( accessRecord )" + // (in other words: first locate the event record for a given event, then locate an element in that record) + //-------------------------------------------------------------------------- + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] + static __host__ __device__ inline fptype* + ieventAccessRecord( fptype* buffer, + const int ievt ) + { + const int ipagC = ievt / neppC; // #event "C-page" + const int ieppC = ievt % neppC; // #event in the current event C-page + constexpr int idcoup = 0; + constexpr int ix2 = 0; + return &( buffer[ipagC * ndcoup * nx2 * neppC + idcoup * nx2 * neppC + ix2 * neppC + ieppC] ); // AOSOA[ipagC][idcoup][ix2][ieppC] + } + + //-------------------------------------------------------------------------- + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, Ts... args ) <===] + // [NB: expand variadic template "Ts... args" to "const int ix2" and rename "Field" as "Ix2"] + static __host__ __device__ inline fptype& + decodeRecord( fptype* buffer, + const int ix2 ) + { + constexpr int ipagC = 0; + constexpr int ieppC = 0; + // NB! the offset "idcoup * nx2 * neppC" has been added in idcoupAccessBuffer + constexpr int idcoup = 0; + return buffer[ipagC * ndcoup * nx2 * neppC + idcoup * nx2 * neppC + ix2 * neppC + ieppC]; // AOSOA[ipagC][idcoup][ix2][ieppC] + } + }; + + //---------------------------------------------------------------------------- + + // A class providing access to memory buffers for a given event, based on explicit event numbers + // Its methods use the MemoryAccessHelper templates - note the use of the template keyword in template function instantiations + class MemoryAccessCouplings : public MemoryAccessCouplingsBase { - constexpr int ipagC = 0; - constexpr int ieppC = 0; - // NB! the offset "idcoup * nx2 * neppC" has been added in idcoupAccessBuffer - constexpr int idcoup = 0; - return buffer[ipagC * ndcoup * nx2 * neppC + idcoup * nx2 * neppC + ix2 * neppC + ieppC]; // AOSOA[ipagC][idcoup][ix2][ieppC] - } -}; - -//---------------------------------------------------------------------------- - -// A class providing access to memory buffers for a given event, based on explicit event numbers -// Its methods use the MemoryAccessHelper templates - note the use of the template keyword in template function instantiations -class MemoryAccessCouplings : public MemoryAccessCouplingsBase -{ -public: - - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] - static constexpr auto ieventAccessRecord = MemoryAccessHelper::ieventAccessRecord; - - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (const) ===> const fptype* ieventAccessRecordConst( const fptype* buffer, const int ievt ) <===] - static constexpr auto ieventAccessRecordConst = MemoryAccessHelper::ieventAccessRecordConst; - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, const int ix2 ) <===] - static constexpr auto decodeRecordIx2 = MemoryAccessHelper::decodeRecord; - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (const) ===> const fptype& decodeRecordConst( const fptype* buffer, const int ix2 ) <===] - static constexpr auto decodeRecordIx2Const = - MemoryAccessHelper::template decodeRecordConst; - - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (non-const) ===> fptype& ieventAccessIx2( fptype* buffer, const ievt, const int ix2 ) <===] - static constexpr auto ieventAccessIx2 = - MemoryAccessHelper::template ieventAccessField; - - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (const) ===> const fptype& ieventAccessIx2Const( const fptype* buffer, const ievt, const int ix2 ) <===] - static constexpr auto ieventAccessIx2Const = - MemoryAccessHelper::template ieventAccessFieldConst; -}; - -//---------------------------------------------------------------------------- - -// A class providing access to memory buffers for a given event, based on implicit kernel rules -// Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations -template -class KernelAccessCouplings -{ -public: - - // Expose selected functions from MemoryAccessCouplingsBase - static constexpr auto idcoupAccessBuffer = MemoryAccessCouplingsBase::idcoupAccessBuffer; - static constexpr auto idcoupAccessBufferConst = MemoryAccessCouplingsBase::idcoupAccessBufferConst; - - // Expose selected functions from MemoryAccessCouplings - static constexpr auto ieventAccessRecordConst = MemoryAccessCouplings::ieventAccessRecordConst; - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (non-const, SCALAR) ===> fptype& kernelAccessIx2( fptype* buffer, const int ix2 ) <===] - static constexpr auto kernelAccessIx2_s = - KernelAccessHelper::template kernelAccessField; - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (const, SCALAR) ===> const fptype& kernelAccessIx2Const( const fptype* buffer, const int ix2 ) <===] - static constexpr auto kernelAccessIx2Const_s = - KernelAccessHelper::template kernelAccessFieldConst; - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (non const, SCALAR OR VECTOR) ===> fptype_sv& kernelAccessIx2( fptype* buffer, const int ix2 ) <===] - static __host__ __device__ inline fptype_sv& - kernelAccessIx2( fptype* buffer, - const int ix2 ) + public: + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] + static constexpr auto ieventAccessRecord = MemoryAccessHelper::ieventAccessRecord; + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (const) ===> const fptype* ieventAccessRecordConst( const fptype* buffer, const int ievt ) <===] + static constexpr auto ieventAccessRecordConst = MemoryAccessHelper::ieventAccessRecordConst; + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, const int ix2 ) <===] + static constexpr auto decodeRecordIx2 = MemoryAccessHelper::decodeRecord; + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (const) ===> const fptype& decodeRecordConst( const fptype* buffer, const int ix2 ) <===] + static constexpr auto decodeRecordIx2Const = + MemoryAccessHelper::template decodeRecordConst; + + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (non-const) ===> fptype& ieventAccessIx2( fptype* buffer, const ievt, const int ix2 ) <===] + static constexpr auto ieventAccessIx2 = + MemoryAccessHelper::template ieventAccessField; + + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (const) ===> const fptype& ieventAccessIx2Const( const fptype* buffer, const ievt, const int ix2 ) <===] + static constexpr auto ieventAccessIx2Const = + MemoryAccessHelper::template ieventAccessFieldConst; + }; + + //---------------------------------------------------------------------------- + + // A class providing access to memory buffers for a given event, based on implicit kernel rules + // Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations + template + class KernelAccessCouplings { - fptype& out = kernelAccessIx2_s( buffer, ix2 ); + public: + + // Expose selected functions from MemoryAccessCouplingsBase + static constexpr auto idcoupAccessBuffer = MemoryAccessCouplingsBase::idcoupAccessBuffer; + static constexpr auto idcoupAccessBufferConst = MemoryAccessCouplingsBase::idcoupAccessBufferConst; + + // Expose selected functions from MemoryAccessCouplings + static constexpr auto ieventAccessRecordConst = MemoryAccessCouplings::ieventAccessRecordConst; + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (non-const, SCALAR) ===> fptype& kernelAccessIx2( fptype* buffer, const int ix2 ) <===] + static constexpr auto kernelAccessIx2_s = + KernelAccessHelper::template kernelAccessField; + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (const, SCALAR) ===> const fptype& kernelAccessIx2Const( const fptype* buffer, const int ix2 ) <===] + static constexpr auto kernelAccessIx2Const_s = + KernelAccessHelper::template kernelAccessFieldConst; + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (non const, SCALAR OR VECTOR) ===> fptype_sv& kernelAccessIx2( fptype* buffer, const int ix2 ) <===] + static __host__ __device__ inline fptype_sv& + kernelAccessIx2( fptype* buffer, + const int ix2 ) + { + fptype& out = kernelAccessIx2_s( buffer, ix2 ); #ifndef MGONGPU_CPPSIMD - return out; + return out; #else - // NB: derived from MemoryAccessMomenta, restricting the implementation to contiguous aligned arrays - constexpr int neppC = MemoryAccessCouplingsBase::neppC; - static_assert( neppC >= neppV ); // ASSUME CONTIGUOUS ARRAYS - static_assert( neppC % neppV == 0 ); // ASSUME CONTIGUOUS ARRAYS - static_assert( mg5amcCpu::HostBufferCouplings::isaligned() ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) - //assert( (size_t)( buffer ) % mgOnGpu::cppAlign == 0 ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) - return mg5amcCpu::fptypevFromAlignedArray( out ); // SIMD bulk load of neppV, use reinterpret_cast + // NB: derived from MemoryAccessMomenta, restricting the implementation to contiguous aligned arrays + constexpr int neppC = MemoryAccessCouplingsBase::neppC; + static_assert( neppC >= neppV ); // ASSUME CONTIGUOUS ARRAYS + static_assert( neppC % neppV == 0 ); // ASSUME CONTIGUOUS ARRAYS + static_assert( mg5amcCpu::HostBufferCouplings::isaligned() ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) + //assert( (size_t)( buffer ) % mgOnGpu::cppAlign == 0 ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) + return mg5amcCpu::fptypevFromAlignedArray( out ); // SIMD bulk load of neppV, use reinterpret_cast #endif - } + } - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (const, SCALAR OR VECTOR) ===> const fptype_sv& kernelAccessIx2Const( const fptype* buffer, const int ix2 ) <===] - static __host__ __device__ inline const fptype_sv& - kernelAccessIx2Const( const fptype* buffer, - const int ix2 ) - { - return kernelAccessIx2( const_cast( buffer ), ix2 ); - } - - /* - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (const, SCALAR OR VECTOR) ===> const fptype_sv& kernelAccessIx2Const( const fptype* buffer, const int ix2 ) <===] - static __host__ __device__ inline const fptype_sv& - kernelAccessIx2Const( const fptype* buffer, - const int ix2 ) - { - const fptype& out = kernelAccessIx2Const_s( buffer, ix2 ); + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (const, SCALAR OR VECTOR) ===> const fptype_sv& kernelAccessIx2Const( const fptype* buffer, const int ix2 ) <===] + static __host__ __device__ inline const fptype_sv& + kernelAccessIx2Const( const fptype* buffer, + const int ix2 ) + { + return kernelAccessIx2( const_cast( buffer ), ix2 ); + } + + /* + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (const, SCALAR OR VECTOR) ===> const fptype_sv& kernelAccessIx2Const( const fptype* buffer, const int ix2 ) <===] + static __host__ __device__ inline const fptype_sv& + kernelAccessIx2Const( const fptype* buffer, + const int ix2 ) + { + const fptype& out = kernelAccessIx2Const_s( buffer, ix2 ); #ifndef MGONGPU_CPPSIMD - return out; + return out; #else - // NB: derived from MemoryAccessMomenta, restricting the implementation to contiguous aligned arrays - constexpr int neppC = MemoryAccessCouplingsBase::neppC; - static_assert( neppC >= neppV ); // ASSUME CONTIGUOUS ARRAYS - static_assert( neppC % neppV == 0 ); // ASSUME CONTIGUOUS ARRAYS - static_assert( mg5amcCpu::HostBufferCouplings::isaligned() ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) - //assert( (size_t)( buffer ) % mgOnGpu::cppAlign == 0 ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) - return mg5amcCpu::fptypevFromAlignedArray( out ); // SIMD bulk load of neppV, use reinterpret_cast + // NB: derived from MemoryAccessMomenta, restricting the implementation to contiguous aligned arrays + constexpr int neppC = MemoryAccessCouplingsBase::neppC; + static_assert( neppC >= neppV ); // ASSUME CONTIGUOUS ARRAYS + static_assert( neppC % neppV == 0 ); // ASSUME CONTIGUOUS ARRAYS + static_assert( mg5amcCpu::HostBufferCouplings::isaligned() ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) + //assert( (size_t)( buffer ) % mgOnGpu::cppAlign == 0 ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) + return mg5amcCpu::fptypevFromAlignedArray( out ); // SIMD bulk load of neppV, use reinterpret_cast #endif - } - */ - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (non const, SCALAR OR VECTOR) ===> cxtype_sv_ref kernelAccess( fptype* buffer ) <===] - static __host__ __device__ inline cxtype_sv_ref - kernelAccess( fptype* buffer ) - { - /* - fptype_sv& real = kernelAccessIx2( buffer, 0 ); - fptype_sv& imag = kernelAccessIx2( buffer, 1 ); - printf( "C_ACCESS::kernelAccess: pbuffer=%p pr=%p pi=%p\n", buffer, &real, &imag ); - return cxtype_sv_ref( real, imag ); - */ - return cxtype_sv_ref( kernelAccessIx2( buffer, 0 ), - kernelAccessIx2( buffer, 1 ) ); - } - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (const, SCALAR OR VECTOR) ===> cxtype_sv kernelAccessConst( const fptype* buffer ) <===] - static __host__ __device__ inline cxtype_sv - kernelAccessConst( const fptype* buffer ) - { - /* - const fptype_sv& real = kernelAccessIx2Const( buffer, 0 ); - const fptype_sv& imag = kernelAccessIx2Const( buffer, 1 ); - printf( "C_ACCESS::kernelAccessConst: pbuffer=%p pr=%p pi=%p\n", buffer, &real, &imag ); - return cxtype_sv( real, imag ); + } */ - return cxtype_sv( kernelAccessIx2Const( buffer, 0 ), - kernelAccessIx2Const( buffer, 1 ) ); - } -}; - -//---------------------------------------------------------------------------- - -typedef KernelAccessCouplings HostAccessCouplings; -typedef KernelAccessCouplings DeviceAccessCouplings; -//---------------------------------------------------------------------------- + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (non const, SCALAR OR VECTOR) ===> cxtype_sv_ref kernelAccess( fptype* buffer ) <===] + static __host__ __device__ inline cxtype_sv_ref + kernelAccess( fptype* buffer ) + { + /* + fptype_sv& real = kernelAccessIx2( buffer, 0 ); + fptype_sv& imag = kernelAccessIx2( buffer, 1 ); + printf( "C_ACCESS::kernelAccess: pbuffer=%p pr=%p pi=%p\n", buffer, &real, &imag ); + return cxtype_sv_ref( real, imag ); + */ + return cxtype_sv_ref( kernelAccessIx2( buffer, 0 ), + kernelAccessIx2( buffer, 1 ) ); + } + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (const, SCALAR OR VECTOR) ===> cxtype_sv kernelAccessConst( const fptype* buffer ) <===] + static __host__ __device__ inline cxtype_sv + kernelAccessConst( const fptype* buffer ) + { + /* + const fptype_sv& real = kernelAccessIx2Const( buffer, 0 ); + const fptype_sv& imag = kernelAccessIx2Const( buffer, 1 ); + printf( "C_ACCESS::kernelAccessConst: pbuffer=%p pr=%p pi=%p\n", buffer, &real, &imag ); + return cxtype_sv( real, imag ); + */ + return cxtype_sv( kernelAccessIx2Const( buffer, 0 ), + kernelAccessIx2Const( buffer, 1 ) ); + } + }; + + //---------------------------------------------------------------------------- + + typedef KernelAccessCouplings HostAccessCouplings; + typedef KernelAccessCouplings DeviceAccessCouplings; + + //---------------------------------------------------------------------------- + +} // end namespace mg5amcGpu/mg5amcCpu #endif // MemoryAccessCouplings_H diff --git a/epochX/cudacpp/gg_ttgg.mad/SubProcesses/MemoryAccessCouplingsFixed.h b/epochX/cudacpp/gg_ttgg.mad/SubProcesses/MemoryAccessCouplingsFixed.h index 81193ab261..dc0d93afff 100644 --- a/epochX/cudacpp/gg_ttgg.mad/SubProcesses/MemoryAccessCouplingsFixed.h +++ b/epochX/cudacpp/gg_ttgg.mad/SubProcesses/MemoryAccessCouplingsFixed.h @@ -13,63 +13,72 @@ //#include "MemoryAccessHelpers.h" -//---------------------------------------------------------------------------- - -// A class describing the internal layout of memory buffers for fixed couplings -// This implementation uses a STRUCT[ndcoup][nx2] "super-buffer" layout: in practice, the cIPC global array -// From the "super-buffer" for ndcoup different couplings, use idcoupAccessBuffer to access the buffer for one specific coupling -// [If many implementations are used, a suffix _Sv1 should be appended to the class name] -class MemoryAccessCouplingsFixedBase //_Sv1 +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { -public: + //---------------------------------------------------------------------------- - // Locate the buffer for a single coupling (output) in a memory super-buffer (input) from the given coupling index (input) - // [Signature (const) ===> const fptype* iicoupAccessBufferConst( const fptype* buffer, const int iicoup ) <===] - static __host__ __device__ inline const fptype* - iicoupAccessBufferConst( const fptype* buffer, // input "super-buffer": in practice, the cIPC global array - const int iicoup ) + // A class describing the internal layout of memory buffers for fixed couplings + // This implementation uses a STRUCT[ndcoup][nx2] "super-buffer" layout: in practice, the cIPC global array + // From the "super-buffer" for ndcoup different couplings, use idcoupAccessBuffer to access the buffer for one specific coupling + // [If many implementations are used, a suffix _Sv1 should be appended to the class name] + class MemoryAccessCouplingsFixedBase //_Sv1 { - constexpr int ix2 = 0; - // NB! this effectively adds an offset "iicoup * nx2" - return &( buffer[iicoup * nx2 + ix2] ); // STRUCT[idcoup][ix2] - } - -private: - - // The number of floating point components of a complex number - static constexpr int nx2 = mgOnGpu::nx2; -}; - -//---------------------------------------------------------------------------- + public: + + // Locate the buffer for a single coupling (output) in a memory super-buffer (input) from the given coupling index (input) + // [Signature (const) ===> const fptype* iicoupAccessBufferConst( const fptype* buffer, const int iicoup ) <===] + static __host__ __device__ inline const fptype* + iicoupAccessBufferConst( const fptype* buffer, // input "super-buffer": in practice, the cIPC global array + const int iicoup ) + { + constexpr int ix2 = 0; + // NB! this effectively adds an offset "iicoup * nx2" + return &( buffer[iicoup * nx2 + ix2] ); // STRUCT[idcoup][ix2] + } + + private: + + // The number of floating point components of a complex number + static constexpr int nx2 = mgOnGpu::nx2; + }; + + //---------------------------------------------------------------------------- + + // A class providing access to memory buffers for a given event, based on implicit kernel rules + // Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations + template + class KernelAccessCouplingsFixed + { + public: -// A class providing access to memory buffers for a given event, based on implicit kernel rules -// Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations -template -class KernelAccessCouplingsFixed -{ -public: + // Expose selected functions from MemoryAccessCouplingsFixedBase + static constexpr auto iicoupAccessBufferConst = MemoryAccessCouplingsFixedBase::iicoupAccessBufferConst; - // Expose selected functions from MemoryAccessCouplingsFixedBase - static constexpr auto iicoupAccessBufferConst = MemoryAccessCouplingsFixedBase::iicoupAccessBufferConst; + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (const, SCALAR OR VECTOR) ===> cxtype_sv kernelAccessConst( const fptype* buffer ) <===] + static __host__ __device__ inline const cxtype_sv + kernelAccessConst( const fptype* buffer ) + { + // TRIVIAL ACCESS to fixed-couplings buffers! + //return cxmake( fptype_sv{ buffer[0] }, fptype_sv{ buffer[1] } ); // NO! BUG #339! + const fptype_sv r_sv = fptype_sv{ 0 } + buffer[0]; + const fptype_sv i_sv = fptype_sv{ 0 } + buffer[1]; + return cxmake( r_sv, i_sv ); // ugly but effective + } + }; - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (const, SCALAR OR VECTOR) ===> cxtype_sv kernelAccessConst( const fptype* buffer ) <===] - static __host__ __device__ inline const cxtype_sv - kernelAccessConst( const fptype* buffer ) - { - // TRIVIAL ACCESS to fixed-couplings buffers! - //return cxmake( fptype_sv{ buffer[0] }, fptype_sv{ buffer[1] } ); // NO! BUG #339! - const fptype_sv r_sv = fptype_sv{ 0 } + buffer[0]; - const fptype_sv i_sv = fptype_sv{ 0 } + buffer[1]; - return cxmake( r_sv, i_sv ); // ugly but effective - } -}; + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- + typedef KernelAccessCouplingsFixed HostAccessCouplingsFixed; + typedef KernelAccessCouplingsFixed DeviceAccessCouplingsFixed; -typedef KernelAccessCouplingsFixed HostAccessCouplingsFixed; -typedef KernelAccessCouplingsFixed DeviceAccessCouplingsFixed; + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- +} // end namespace mg5amcGpu/mg5amcCpu #endif // MemoryAccessCouplingsFixed_H diff --git a/epochX/cudacpp/gg_ttgg.mad/SubProcesses/MemoryAccessDenominators.h b/epochX/cudacpp/gg_ttgg.mad/SubProcesses/MemoryAccessDenominators.h index e76ae65ff9..3bce635718 100644 --- a/epochX/cudacpp/gg_ttgg.mad/SubProcesses/MemoryAccessDenominators.h +++ b/epochX/cudacpp/gg_ttgg.mad/SubProcesses/MemoryAccessDenominators.h @@ -9,15 +9,24 @@ #include "MemoryAccessGs.h" -//---------------------------------------------------------------------------- +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif +{ + //---------------------------------------------------------------------------- + + // A class describing the internal layout of memory buffers for denominators + // This implementation reuses the plain ARRAY[nevt] implementation of MemoryAccessGs -// A class describing the internal layout of memory buffers for denominators -// This implementation reuses the plain ARRAY[nevt] implementation of MemoryAccessGs + typedef KernelAccessGs HostAccessDenominators; + typedef KernelAccessGs DeviceAccessDenominators; -typedef KernelAccessGs HostAccessDenominators; -typedef KernelAccessGs DeviceAccessDenominators; + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- +} // end namespace mg5amcGpu/mg5amcCpu #endif #endif // MemoryAccessDenominators_H diff --git a/epochX/cudacpp/gg_ttgg.mad/SubProcesses/MemoryAccessGs.h b/epochX/cudacpp/gg_ttgg.mad/SubProcesses/MemoryAccessGs.h index 8996c0554c..31311aa375 100644 --- a/epochX/cudacpp/gg_ttgg.mad/SubProcesses/MemoryAccessGs.h +++ b/epochX/cudacpp/gg_ttgg.mad/SubProcesses/MemoryAccessGs.h @@ -12,142 +12,151 @@ #include "MemoryAccessVectors.h" #include "MemoryBuffers.h" // for HostBufferMatrixElements::isaligned -//---------------------------------------------------------------------------- - -// A class describing the internal layout of memory buffers for Gs -// This implementation uses a plain ARRAY[nevt] -// [If many implementations are used, a suffix _ARRAYv1 should be appended to the class name] -class MemoryAccessGsBase //_ARRAYv1 +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { -private: - - friend class MemoryAccessHelper; - friend class KernelAccessHelper; - friend class KernelAccessHelper; - - //-------------------------------------------------------------------------- - // NB all KernelLaunchers assume that memory access can be decomposed as "accessField = decodeRecord( accessRecord )" - // (in other words: first locate the event record for a given event, then locate an element in that record) - //-------------------------------------------------------------------------- - - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] - static __host__ __device__ inline fptype* - ieventAccessRecord( fptype* buffer, - const int ievt ) - { - return &( buffer[ievt] ); // ARRAY[nevt] - } - - //-------------------------------------------------------------------------- + //---------------------------------------------------------------------------- - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, Ts... args ) <===] - // [NB: expand variadic template "Ts... args" to empty and rename "Field" as empty] - static __host__ __device__ inline fptype& - decodeRecord( fptype* buffer ) + // A class describing the internal layout of memory buffers for Gs + // This implementation uses a plain ARRAY[nevt] + // [If many implementations are used, a suffix _ARRAYv1 should be appended to the class name] + class MemoryAccessGsBase //_ARRAYv1 { - constexpr int ievt = 0; - return buffer[ievt]; // ARRAY[nevt] - } -}; - -//---------------------------------------------------------------------------- - -// A class providing access to memory buffers for a given event, based on explicit event numbers -// Its methods use the MemoryAccessHelper templates - note the use of the template keyword in template function instantiations -class MemoryAccessGs : public MemoryAccessGsBase -{ -public: - - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] - static constexpr auto ieventAccessRecord = MemoryAccessHelper::ieventAccessRecord; - - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (const) ===> const fptype* ieventAccessRecordConst( const fptype* buffer, const int ievt ) <===] - static constexpr auto ieventAccessRecordConst = MemoryAccessHelper::ieventAccessRecordConst; - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer ) <===] - static constexpr auto decodeRecord = MemoryAccessHelper::decodeRecord; - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (const) ===> const fptype& decodeRecordConst( const fptype* buffer ) <===] - static constexpr auto decodeRecordConst = - MemoryAccessHelper::template decodeRecordConst<>; - - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (non-const) ===> fptype& ieventAccess( fptype* buffer, const ievt ) <===] - static constexpr auto ieventAccess = - MemoryAccessHelper::template ieventAccessField<>; - - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (const) ===> const fptype& ieventAccessConst( const fptype* buffer, const ievt ) <===] - static constexpr auto ieventAccessConst = - MemoryAccessHelper::template ieventAccessFieldConst<>; -}; - -//---------------------------------------------------------------------------- - -// A class providing access to memory buffers for a given event, based on implicit kernel rules -// Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations -template -class KernelAccessGs -{ -public: - - // Expose selected functions from MemoryAccessGs - static constexpr auto ieventAccessRecord = MemoryAccessGs::ieventAccessRecord; - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (non-const, SCALAR) ===> fptype& kernelAccess( fptype* buffer ) <===] - static constexpr auto kernelAccess_s = - KernelAccessHelper::template kernelAccessField<>; // requires cuda 11.4 - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) - // [Signature (non-const, SCALAR OR VECTOR) ===> fptype_sv& kernelAccess( fptype* buffer ) <===] - static __host__ __device__ inline fptype_sv& - kernelAccess( fptype* buffer ) + private: + + friend class MemoryAccessHelper; + friend class KernelAccessHelper; + friend class KernelAccessHelper; + + //-------------------------------------------------------------------------- + // NB all KernelLaunchers assume that memory access can be decomposed as "accessField = decodeRecord( accessRecord )" + // (in other words: first locate the event record for a given event, then locate an element in that record) + //-------------------------------------------------------------------------- + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] + static __host__ __device__ inline fptype* + ieventAccessRecord( fptype* buffer, + const int ievt ) + { + return &( buffer[ievt] ); // ARRAY[nevt] + } + + //-------------------------------------------------------------------------- + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, Ts... args ) <===] + // [NB: expand variadic template "Ts... args" to empty and rename "Field" as empty] + static __host__ __device__ inline fptype& + decodeRecord( fptype* buffer ) + { + constexpr int ievt = 0; + return buffer[ievt]; // ARRAY[nevt] + } + }; + + //---------------------------------------------------------------------------- + + // A class providing access to memory buffers for a given event, based on explicit event numbers + // Its methods use the MemoryAccessHelper templates - note the use of the template keyword in template function instantiations + class MemoryAccessGs : public MemoryAccessGsBase + { + public: + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] + static constexpr auto ieventAccessRecord = MemoryAccessHelper::ieventAccessRecord; + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (const) ===> const fptype* ieventAccessRecordConst( const fptype* buffer, const int ievt ) <===] + static constexpr auto ieventAccessRecordConst = MemoryAccessHelper::ieventAccessRecordConst; + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer ) <===] + static constexpr auto decodeRecord = MemoryAccessHelper::decodeRecord; + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (const) ===> const fptype& decodeRecordConst( const fptype* buffer ) <===] + static constexpr auto decodeRecordConst = + MemoryAccessHelper::template decodeRecordConst<>; + + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (non-const) ===> fptype& ieventAccess( fptype* buffer, const ievt ) <===] + static constexpr auto ieventAccess = + MemoryAccessHelper::template ieventAccessField<>; + + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (const) ===> const fptype& ieventAccessConst( const fptype* buffer, const ievt ) <===] + static constexpr auto ieventAccessConst = + MemoryAccessHelper::template ieventAccessFieldConst<>; + }; + + //---------------------------------------------------------------------------- + + // A class providing access to memory buffers for a given event, based on implicit kernel rules + // Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations + template + class KernelAccessGs { - fptype& out = kernelAccess_s( buffer ); + public: + + // Expose selected functions from MemoryAccessGs + static constexpr auto ieventAccessRecord = MemoryAccessGs::ieventAccessRecord; + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (non-const, SCALAR) ===> fptype& kernelAccess( fptype* buffer ) <===] + static constexpr auto kernelAccess_s = + KernelAccessHelper::template kernelAccessField<>; // requires cuda 11.4 + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) + // [Signature (non-const, SCALAR OR VECTOR) ===> fptype_sv& kernelAccess( fptype* buffer ) <===] + static __host__ __device__ inline fptype_sv& + kernelAccess( fptype* buffer ) + { + fptype& out = kernelAccess_s( buffer ); #ifndef MGONGPU_CPPSIMD - return out; + return out; #else - // NB: derived from MemoryAccessMomenta, restricting the implementation to contiguous aligned arrays (#435) - static_assert( mg5amcCpu::HostBufferGs::isaligned() ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) - //assert( (size_t)( buffer ) % mgOnGpu::cppAlign == 0 ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) - return mg5amcCpu::fptypevFromAlignedArray( out ); // SIMD bulk load of neppV, use reinterpret_cast + // NB: derived from MemoryAccessMomenta, restricting the implementation to contiguous aligned arrays (#435) + static_assert( mg5amcCpu::HostBufferGs::isaligned() ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) + //assert( (size_t)( buffer ) % mgOnGpu::cppAlign == 0 ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) + return mg5amcCpu::fptypevFromAlignedArray( out ); // SIMD bulk load of neppV, use reinterpret_cast #endif - } - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (const, SCALAR) ===> const fptype& kernelAccessConst( const fptype* buffer ) <===] - static constexpr auto kernelAccessConst_s = - KernelAccessHelper::template kernelAccessFieldConst<>; // requires cuda 11.4 - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) - // [Signature (const, SCALAR OR VECTOR) ===> const fptype_sv& kernelAccess( const fptype* buffer ) <===] - static __host__ __device__ inline const fptype_sv& - kernelAccessConst( const fptype* buffer ) - { - const fptype& out = kernelAccessConst_s( buffer ); + } + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (const, SCALAR) ===> const fptype& kernelAccessConst( const fptype* buffer ) <===] + static constexpr auto kernelAccessConst_s = + KernelAccessHelper::template kernelAccessFieldConst<>; // requires cuda 11.4 + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) + // [Signature (const, SCALAR OR VECTOR) ===> const fptype_sv& kernelAccess( const fptype* buffer ) <===] + static __host__ __device__ inline const fptype_sv& + kernelAccessConst( const fptype* buffer ) + { + const fptype& out = kernelAccessConst_s( buffer ); #ifndef MGONGPU_CPPSIMD - return out; + return out; #else - // NB: derived from MemoryAccessMomenta, restricting the implementation to contiguous aligned arrays (#435) - static_assert( mg5amcCpu::HostBufferGs::isaligned() ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) - //assert( (size_t)( buffer ) % mgOnGpu::cppAlign == 0 ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) - return mg5amcCpu::fptypevFromAlignedArray( out ); // SIMD bulk load of neppV, use reinterpret_cast + // NB: derived from MemoryAccessMomenta, restricting the implementation to contiguous aligned arrays (#435) + static_assert( mg5amcCpu::HostBufferGs::isaligned() ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) + //assert( (size_t)( buffer ) % mgOnGpu::cppAlign == 0 ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) + return mg5amcCpu::fptypevFromAlignedArray( out ); // SIMD bulk load of neppV, use reinterpret_cast #endif - } -}; + } + }; + + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- + typedef KernelAccessGs HostAccessGs; + typedef KernelAccessGs DeviceAccessGs; -typedef KernelAccessGs HostAccessGs; -typedef KernelAccessGs DeviceAccessGs; + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- +} // end namespace mg5amcGpu/mg5amcCpu #endif // MemoryAccessGs_H diff --git a/epochX/cudacpp/gg_ttgg.mad/SubProcesses/MemoryAccessMatrixElements.h b/epochX/cudacpp/gg_ttgg.mad/SubProcesses/MemoryAccessMatrixElements.h index b2a82d9acf..f32e6fea5b 100644 --- a/epochX/cudacpp/gg_ttgg.mad/SubProcesses/MemoryAccessMatrixElements.h +++ b/epochX/cudacpp/gg_ttgg.mad/SubProcesses/MemoryAccessMatrixElements.h @@ -12,126 +12,135 @@ #include "MemoryAccessVectors.h" #include "MemoryBuffers.h" // for HostBufferMatrixElements::isaligned -//---------------------------------------------------------------------------- - -// A class describing the internal layout of memory buffers for matrix elements -// This implementation uses a plain ARRAY[nevt] -// [If many implementations are used, a suffix _ARRAYv1 should be appended to the class name] -class MemoryAccessMatrixElementsBase //_ARRAYv1 +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { -private: - - friend class MemoryAccessHelper; - friend class KernelAccessHelper; - friend class KernelAccessHelper; - - //-------------------------------------------------------------------------- - // NB all KernelLaunchers assume that memory access can be decomposed as "accessField = decodeRecord( accessRecord )" - // (in other words: first locate the event record for a given event, then locate an element in that record) - //-------------------------------------------------------------------------- - - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] - static __host__ __device__ inline fptype* - ieventAccessRecord( fptype* buffer, - const int ievt ) - { - return &( buffer[ievt] ); // ARRAY[nevt] - } + //---------------------------------------------------------------------------- - //-------------------------------------------------------------------------- - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, Ts... args ) <===] - // [NB: expand variadic template "Ts... args" to empty and rename "Field" as empty] - static __host__ __device__ inline fptype& - decodeRecord( fptype* buffer ) + // A class describing the internal layout of memory buffers for matrix elements + // This implementation uses a plain ARRAY[nevt] + // [If many implementations are used, a suffix _ARRAYv1 should be appended to the class name] + class MemoryAccessMatrixElementsBase //_ARRAYv1 { - constexpr int ievt = 0; - return buffer[ievt]; // ARRAY[nevt] - } -}; - -//---------------------------------------------------------------------------- - -// A class providing access to memory buffers for a given event, based on explicit event numbers -// Its methods use the MemoryAccessHelper templates - note the use of the template keyword in template function instantiations -class MemoryAccessMatrixElements : public MemoryAccessMatrixElementsBase -{ -public: - - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] - static constexpr auto ieventAccessRecord = MemoryAccessHelper::ieventAccessRecord; - - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (const) ===> const fptype* ieventAccessRecordConst( const fptype* buffer, const int ievt ) <===] - static constexpr auto ieventAccessRecordConst = MemoryAccessHelper::ieventAccessRecordConst; - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer ) <===] - static constexpr auto decodeRecord = MemoryAccessHelper::decodeRecord; - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (const) ===> const fptype& decodeRecordConst( const fptype* buffer ) <===] - static constexpr auto decodeRecordConst = - MemoryAccessHelper::template decodeRecordConst<>; - - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (non-const) ===> fptype& ieventAccess( fptype* buffer, const ievt ) <===] - static constexpr auto ieventAccess = - MemoryAccessHelper::template ieventAccessField<>; - - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (const) ===> const fptype& ieventAccessConst( const fptype* buffer, const ievt ) <===] - static constexpr auto ieventAccessConst = - MemoryAccessHelper::template ieventAccessFieldConst<>; -}; - -//---------------------------------------------------------------------------- - -// A class providing access to memory buffers for a given event, based on implicit kernel rules -// Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations -template -class KernelAccessMatrixElements -{ -public: - - // Expose selected functions from MemoryAccessMatrixElements - static constexpr auto ieventAccessRecord = MemoryAccessMatrixElements::ieventAccessRecord; - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (non-const, SCALAR) ===> fptype& kernelAccess_s( fptype* buffer ) <===] - static constexpr auto kernelAccess_s = - KernelAccessHelper::template kernelAccessField<>; // requires cuda 11.4 - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) - // [Signature (non const, SCALAR OR VECTOR) ===> fptype_sv& kernelAccess( const fptype* buffer ) <===] - static __host__ __device__ inline fptype_sv& - kernelAccess( fptype* buffer ) + private: + + friend class MemoryAccessHelper; + friend class KernelAccessHelper; + friend class KernelAccessHelper; + + //-------------------------------------------------------------------------- + // NB all KernelLaunchers assume that memory access can be decomposed as "accessField = decodeRecord( accessRecord )" + // (in other words: first locate the event record for a given event, then locate an element in that record) + //-------------------------------------------------------------------------- + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] + static __host__ __device__ inline fptype* + ieventAccessRecord( fptype* buffer, + const int ievt ) + { + return &( buffer[ievt] ); // ARRAY[nevt] + } + + //-------------------------------------------------------------------------- + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, Ts... args ) <===] + // [NB: expand variadic template "Ts... args" to empty and rename "Field" as empty] + static __host__ __device__ inline fptype& + decodeRecord( fptype* buffer ) + { + constexpr int ievt = 0; + return buffer[ievt]; // ARRAY[nevt] + } + }; + + //---------------------------------------------------------------------------- + + // A class providing access to memory buffers for a given event, based on explicit event numbers + // Its methods use the MemoryAccessHelper templates - note the use of the template keyword in template function instantiations + class MemoryAccessMatrixElements : public MemoryAccessMatrixElementsBase + { + public: + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] + static constexpr auto ieventAccessRecord = MemoryAccessHelper::ieventAccessRecord; + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (const) ===> const fptype* ieventAccessRecordConst( const fptype* buffer, const int ievt ) <===] + static constexpr auto ieventAccessRecordConst = MemoryAccessHelper::ieventAccessRecordConst; + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer ) <===] + static constexpr auto decodeRecord = MemoryAccessHelper::decodeRecord; + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (const) ===> const fptype& decodeRecordConst( const fptype* buffer ) <===] + static constexpr auto decodeRecordConst = + MemoryAccessHelper::template decodeRecordConst<>; + + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (non-const) ===> fptype& ieventAccess( fptype* buffer, const ievt ) <===] + static constexpr auto ieventAccess = + MemoryAccessHelper::template ieventAccessField<>; + + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (const) ===> const fptype& ieventAccessConst( const fptype* buffer, const ievt ) <===] + static constexpr auto ieventAccessConst = + MemoryAccessHelper::template ieventAccessFieldConst<>; + }; + + //---------------------------------------------------------------------------- + + // A class providing access to memory buffers for a given event, based on implicit kernel rules + // Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations + template + class KernelAccessMatrixElements { - fptype& out = kernelAccess_s( buffer ); + public: + + // Expose selected functions from MemoryAccessMatrixElements + static constexpr auto ieventAccessRecord = MemoryAccessMatrixElements::ieventAccessRecord; + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (non-const, SCALAR) ===> fptype& kernelAccess_s( fptype* buffer ) <===] + static constexpr auto kernelAccess_s = + KernelAccessHelper::template kernelAccessField<>; // requires cuda 11.4 + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) + // [Signature (non const, SCALAR OR VECTOR) ===> fptype_sv& kernelAccess( const fptype* buffer ) <===] + static __host__ __device__ inline fptype_sv& + kernelAccess( fptype* buffer ) + { + fptype& out = kernelAccess_s( buffer ); #ifndef MGONGPU_CPPSIMD - return out; + return out; #else - // NB: derived from MemoryAccessMomenta, restricting the implementation to contiguous aligned arrays (#435) - static_assert( mg5amcCpu::HostBufferMatrixElements::isaligned() ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) - //assert( (size_t)( buffer ) % mgOnGpu::cppAlign == 0 ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) - return mg5amcCpu::fptypevFromAlignedArray( out ); // SIMD bulk load of neppV, use reinterpret_cast + // NB: derived from MemoryAccessMomenta, restricting the implementation to contiguous aligned arrays (#435) + static_assert( mg5amcCpu::HostBufferMatrixElements::isaligned() ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) + //assert( (size_t)( buffer ) % mgOnGpu::cppAlign == 0 ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) + return mg5amcCpu::fptypevFromAlignedArray( out ); // SIMD bulk load of neppV, use reinterpret_cast #endif - } + } + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (const) ===> const fptype& kernelAccessConst( const fptype* buffer ) <===] + static constexpr auto kernelAccessConst = + KernelAccessHelper::template kernelAccessFieldConst<>; // requires cuda 11.4 + }; - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (const) ===> const fptype& kernelAccessConst( const fptype* buffer ) <===] - static constexpr auto kernelAccessConst = - KernelAccessHelper::template kernelAccessFieldConst<>; // requires cuda 11.4 -}; + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- + typedef KernelAccessMatrixElements HostAccessMatrixElements; + typedef KernelAccessMatrixElements DeviceAccessMatrixElements; -typedef KernelAccessMatrixElements HostAccessMatrixElements; -typedef KernelAccessMatrixElements DeviceAccessMatrixElements; + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- +} // end namespace mg5amcGpu/mg5amcCpu #endif // MemoryAccessMatrixElements_H diff --git a/epochX/cudacpp/gg_ttgg.mad/SubProcesses/MemoryAccessMomenta.h b/epochX/cudacpp/gg_ttgg.mad/SubProcesses/MemoryAccessMomenta.h index 0ac4faa3c7..29266de32c 100644 --- a/epochX/cudacpp/gg_ttgg.mad/SubProcesses/MemoryAccessMomenta.h +++ b/epochX/cudacpp/gg_ttgg.mad/SubProcesses/MemoryAccessMomenta.h @@ -12,261 +12,264 @@ #include "MemoryAccessHelpers.h" #include "MemoryAccessVectors.h" +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) #ifdef __CUDACC__ -using mg5amcGpu::CPPProcess; +namespace mg5amcGpu #else -using mg5amcCpu::CPPProcess; +namespace mg5amcCpu #endif - -//---------------------------------------------------------------------------- - -// A class describing the internal layout of memory buffers for momenta -// This implementation uses an AOSOA[npagM][npar][np4][neppM] where nevt=npagM*neppM -// [If many implementations are used, a suffix _AOSOAv1 should be appended to the class name] -class MemoryAccessMomentaBase //_AOSOAv1 { -public: + //---------------------------------------------------------------------------- + + // A class describing the internal layout of memory buffers for momenta + // This implementation uses an AOSOA[npagM][npar][np4][neppM] where nevt=npagM*neppM + // [If many implementations are used, a suffix _AOSOAv1 should be appended to the class name] + class MemoryAccessMomentaBase //_AOSOAv1 + { + public: - // Number of Events Per Page in the momenta AOSOA memory buffer layout - // (these are all best kept as a compile-time constants: see issue #23) + // Number of Events Per Page in the momenta AOSOA memory buffer layout + // (these are all best kept as a compile-time constants: see issue #23) #ifdef __CUDACC__ /* clang-format off */ - // ----------------------------------------------------------------------------------------------- - // --- GPUs: neppM is best set to a power of 2 times the number of fptype's in a 32-byte cacheline - // --- This is relevant to ensure coalesced access to momenta in global memory - // --- Note that neppR is hardcoded and may differ from neppM and neppV on some platforms - // ----------------------------------------------------------------------------------------------- - //static constexpr int neppM = 64/sizeof(fptype); // 2x 32-byte GPU cache lines (512 bits): 8 (DOUBLE) or 16 (FLOAT) - static constexpr int neppM = 32/sizeof(fptype); // (DEFAULT) 32-byte GPU cache line (256 bits): 4 (DOUBLE) or 8 (FLOAT) - //static constexpr int neppM = 1; // *** NB: this is equivalent to AOS *** (slower: 1.03E9 instead of 1.11E9 in eemumu) + // ----------------------------------------------------------------------------------------------- + // --- GPUs: neppM is best set to a power of 2 times the number of fptype's in a 32-byte cacheline + // --- This is relevant to ensure coalesced access to momenta in global memory + // --- Note that neppR is hardcoded and may differ from neppM and neppV on some platforms + // ----------------------------------------------------------------------------------------------- + //static constexpr int neppM = 64/sizeof(fptype); // 2x 32-byte GPU cache lines (512 bits): 8 (DOUBLE) or 16 (FLOAT) + static constexpr int neppM = 32/sizeof(fptype); // (DEFAULT) 32-byte GPU cache line (256 bits): 4 (DOUBLE) or 8 (FLOAT) + //static constexpr int neppM = 1; // *** NB: this is equivalent to AOS *** (slower: 1.03E9 instead of 1.11E9 in eemumu) #else - // ----------------------------------------------------------------------------------------------- - // --- CPUs: neppM is best set equal to the number of fptype's (neppV) in a vector register - // --- This is relevant to ensure faster access to momenta from C++ memory cache lines - // --- However, neppM is now decoupled from neppV (issue #176) and can be separately hardcoded - // --- In practice, neppR, neppM and neppV could now (in principle) all be different - // ----------------------------------------------------------------------------------------------- + // ----------------------------------------------------------------------------------------------- + // --- CPUs: neppM is best set equal to the number of fptype's (neppV) in a vector register + // --- This is relevant to ensure faster access to momenta from C++ memory cache lines + // --- However, neppM is now decoupled from neppV (issue #176) and can be separately hardcoded + // --- In practice, neppR, neppM and neppV could now (in principle) all be different + // ----------------------------------------------------------------------------------------------- #ifdef MGONGPU_CPPSIMD - static constexpr int neppM = MGONGPU_CPPSIMD; // (DEFAULT) neppM=neppV for optimal performance - //static constexpr int neppM = 64/sizeof(fptype); // maximum CPU vector width (512 bits): 8 (DOUBLE) or 16 (FLOAT) - //static constexpr int neppM = 32/sizeof(fptype); // lower CPU vector width (256 bits): 4 (DOUBLE) or 8 (FLOAT) - //static constexpr int neppM = 1; // *** NB: this is equivalent to AOS *** (slower: 4.66E6 instead of 5.09E9 in eemumu) - //static constexpr int neppM = MGONGPU_CPPSIMD*2; // FOR TESTS + static constexpr int neppM = MGONGPU_CPPSIMD; // (DEFAULT) neppM=neppV for optimal performance + //static constexpr int neppM = 64/sizeof(fptype); // maximum CPU vector width (512 bits): 8 (DOUBLE) or 16 (FLOAT) + //static constexpr int neppM = 32/sizeof(fptype); // lower CPU vector width (256 bits): 4 (DOUBLE) or 8 (FLOAT) + //static constexpr int neppM = 1; // *** NB: this is equivalent to AOS *** (slower: 4.66E6 instead of 5.09E9 in eemumu) + //static constexpr int neppM = MGONGPU_CPPSIMD*2; // FOR TESTS #else - static constexpr int neppM = 1; // (DEFAULT) neppM=neppV for optimal performance (NB: this is equivalent to AOS) + static constexpr int neppM = 1; // (DEFAULT) neppM=neppV for optimal performance (NB: this is equivalent to AOS) #endif #endif /* clang-format on */ - // SANITY CHECK: check that neppM is a power of two - static_assert( ispoweroftwo( neppM ), "neppM is not a power of 2" ); + // SANITY CHECK: check that neppM is a power of two + static_assert( ispoweroftwo( neppM ), "neppM is not a power of 2" ); -private: + private: - friend class MemoryAccessHelper; - friend class KernelAccessHelper; - friend class KernelAccessHelper; + friend class MemoryAccessHelper; + friend class KernelAccessHelper; + friend class KernelAccessHelper; - // The number of components of a 4-momentum - static constexpr int np4 = CPPProcess::np4; + // The number of components of a 4-momentum + static constexpr int np4 = CPPProcess::np4; - // The number of particles in this physics process - static constexpr int npar = CPPProcess::npar; + // The number of particles in this physics process + static constexpr int npar = CPPProcess::npar; - //-------------------------------------------------------------------------- - // NB all KernelLaunchers assume that memory access can be decomposed as "accessField = decodeRecord( accessRecord )" - // (in other words: first locate the event record for a given event, then locate an element in that record) - //-------------------------------------------------------------------------- + //-------------------------------------------------------------------------- + // NB all KernelLaunchers assume that memory access can be decomposed as "accessField = decodeRecord( accessRecord )" + // (in other words: first locate the event record for a given event, then locate an element in that record) + //-------------------------------------------------------------------------- - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] - static __host__ __device__ inline fptype* - ieventAccessRecord( fptype* buffer, - const int ievt ) - { - const int ipagM = ievt / neppM; // #event "M-page" - const int ieppM = ievt % neppM; // #event in the current event M-page - constexpr int ip4 = 0; - constexpr int ipar = 0; - return &( buffer[ipagM * npar * np4 * neppM + ipar * np4 * neppM + ip4 * neppM + ieppM] ); // AOSOA[ipagM][ipar][ip4][ieppM] - } - - //-------------------------------------------------------------------------- - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, Ts... args ) <===] - // [NB: expand variadic template "Ts... args" to "const int ip4, const int ipar" and rename "Field" as "Ip4Ipar"] - static __host__ __device__ inline fptype& - decodeRecord( fptype* buffer, - const int ip4, - const int ipar ) + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] + static __host__ __device__ inline fptype* + ieventAccessRecord( fptype* buffer, + const int ievt ) + { + const int ipagM = ievt / neppM; // #event "M-page" + const int ieppM = ievt % neppM; // #event in the current event M-page + constexpr int ip4 = 0; + constexpr int ipar = 0; + return &( buffer[ipagM * npar * np4 * neppM + ipar * np4 * neppM + ip4 * neppM + ieppM] ); // AOSOA[ipagM][ipar][ip4][ieppM] + } + + //-------------------------------------------------------------------------- + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, Ts... args ) <===] + // [NB: expand variadic template "Ts... args" to "const int ip4, const int ipar" and rename "Field" as "Ip4Ipar"] + static __host__ __device__ inline fptype& + decodeRecord( fptype* buffer, + const int ip4, + const int ipar ) + { + constexpr int ipagM = 0; + constexpr int ieppM = 0; + return buffer[ipagM * npar * np4 * neppM + ipar * np4 * neppM + ip4 * neppM + ieppM]; // AOSOA[ipagM][ipar][ip4][ieppM] + } + }; + + //---------------------------------------------------------------------------- + + // A class providing access to memory buffers for a given event, based on explicit event numbers + // Its methods use the MemoryAccessHelper templates - note the use of the template keyword in template function instantiations + class MemoryAccessMomenta : public MemoryAccessMomentaBase { - constexpr int ipagM = 0; - constexpr int ieppM = 0; - return buffer[ipagM * npar * np4 * neppM + ipar * np4 * neppM + ip4 * neppM + ieppM]; // AOSOA[ipagM][ipar][ip4][ieppM] - } -}; + public: + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] + static constexpr auto ieventAccessRecord = MemoryAccessHelper::ieventAccessRecord; + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (const) ===> const fptype* ieventAccessRecordConst( const fptype* buffer, const int ievt ) <===] + static constexpr auto ieventAccessRecordConst = MemoryAccessHelper::ieventAccessRecordConst; + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, const int ipar, const int ipar ) <===] + static constexpr auto decodeRecordIp4Ipar = MemoryAccessHelper::decodeRecord; + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (const) ===> const fptype& decodeRecordConst( const fptype* buffer, const int ipar, const int ipar ) <===] + static constexpr auto decodeRecordIp4IparConst = + MemoryAccessHelper::template decodeRecordConst; + + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (non-const) ===> fptype& ieventAccessIp4Ipar( fptype* buffer, const ievt, const int ipar, const int ipar ) <===] + static constexpr auto ieventAccessIp4Ipar = + MemoryAccessHelper::template ieventAccessField; + + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (const) ===> const fptype& ieventAccessIp4IparConst( const fptype* buffer, const ievt, const int ipar, const int ipar ) <===] + // DEFAULT VERSION + static constexpr auto ieventAccessIp4IparConst = + MemoryAccessHelper::template ieventAccessFieldConst; + + /* + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (const) ===> const fptype& ieventAccessIp4IparConst( const fptype* buffer, const ievt, const int ipar, const int ipar ) <===] + // DEBUG VERSION WITH PRINTOUTS + static __host__ __device__ inline const fptype& + ieventAccessIp4IparConst( const fptype* buffer, + const int ievt, + const int ip4, + const int ipar ) + { + const fptype& out = MemoryAccessHelper::template ieventAccessFieldConst( buffer, ievt, ip4, ipar ); + printf( "ipar=%2d ip4=%2d ievt=%8d out=%8.3f\n", ipar, ip4, ievt, out ); + return out; + } + */ + }; -//---------------------------------------------------------------------------- + //---------------------------------------------------------------------------- -// A class providing access to memory buffers for a given event, based on explicit event numbers -// Its methods use the MemoryAccessHelper templates - note the use of the template keyword in template function instantiations -class MemoryAccessMomenta : public MemoryAccessMomentaBase -{ -public: - - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] - static constexpr auto ieventAccessRecord = MemoryAccessHelper::ieventAccessRecord; - - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (const) ===> const fptype* ieventAccessRecordConst( const fptype* buffer, const int ievt ) <===] - static constexpr auto ieventAccessRecordConst = MemoryAccessHelper::ieventAccessRecordConst; - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, const int ipar, const int ipar ) <===] - static constexpr auto decodeRecordIp4Ipar = MemoryAccessHelper::decodeRecord; - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (const) ===> const fptype& decodeRecordConst( const fptype* buffer, const int ipar, const int ipar ) <===] - static constexpr auto decodeRecordIp4IparConst = - MemoryAccessHelper::template decodeRecordConst; - - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (non-const) ===> fptype& ieventAccessIp4Ipar( fptype* buffer, const ievt, const int ipar, const int ipar ) <===] - static constexpr auto ieventAccessIp4Ipar = - MemoryAccessHelper::template ieventAccessField; - - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (const) ===> const fptype& ieventAccessIp4IparConst( const fptype* buffer, const ievt, const int ipar, const int ipar ) <===] - // DEFAULT VERSION - static constexpr auto ieventAccessIp4IparConst = - MemoryAccessHelper::template ieventAccessFieldConst; - - /* - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (const) ===> const fptype& ieventAccessIp4IparConst( const fptype* buffer, const ievt, const int ipar, const int ipar ) <===] - // DEBUG VERSION WITH PRINTOUTS - static __host__ __device__ inline const fptype& - ieventAccessIp4IparConst( const fptype* buffer, - const int ievt, - const int ip4, - const int ipar ) + // A class providing access to memory buffers for a given event, based on implicit kernel rules + // Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations + template + class KernelAccessMomenta { - const fptype& out = MemoryAccessHelper::template ieventAccessFieldConst( buffer, ievt, ip4, ipar ); - printf( "ipar=%2d ip4=%2d ievt=%8d out=%8.3f\n", ipar, ip4, ievt, out ); - return out; - } - */ -}; - -//---------------------------------------------------------------------------- - -// A class providing access to memory buffers for a given event, based on implicit kernel rules -// Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations -template -class KernelAccessMomenta -{ -public: - - // Expose selected functions from MemoryAccessMomenta - static constexpr auto ieventAccessRecordConst = MemoryAccessMomenta::ieventAccessRecordConst; - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (non-const, SCALAR) ===> fptype& kernelAccessIp4Ipar( fptype* buffer, const int ipar, const int ipar ) <===] - static constexpr auto kernelAccessIp4Ipar = - KernelAccessHelper::template kernelAccessField; - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (const, SCALAR) ===> const fptype& kernelAccessIp4IparConst( const fptype* buffer, const int ipar, const int ipar ) <===] - // DEFAULT VERSION - static constexpr auto kernelAccessIp4IparConst_s = - KernelAccessHelper::template kernelAccessFieldConst; - - /* - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (const, SCALAR) ===> const fptype& kernelAccessIp4IparConst( const fptype* buffer, const int ipar, const int ipar ) <===] - // DEBUG VERSION WITH PRINTOUTS - static __host__ __device__ inline const fptype& - kernelAccessIp4IparConst_s( const fptype* buffer, + public: + + // Expose selected functions from MemoryAccessMomenta + static constexpr auto ieventAccessRecordConst = MemoryAccessMomenta::ieventAccessRecordConst; + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (non-const, SCALAR) ===> fptype& kernelAccessIp4Ipar( fptype* buffer, const int ipar, const int ipar ) <===] + static constexpr auto kernelAccessIp4Ipar = + KernelAccessHelper::template kernelAccessField; + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (const, SCALAR) ===> const fptype& kernelAccessIp4IparConst( const fptype* buffer, const int ipar, const int ipar ) <===] + // DEFAULT VERSION + static constexpr auto kernelAccessIp4IparConst_s = + KernelAccessHelper::template kernelAccessFieldConst; + + /* + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (const, SCALAR) ===> const fptype& kernelAccessIp4IparConst( const fptype* buffer, const int ipar, const int ipar ) <===] + // DEBUG VERSION WITH PRINTOUTS + static __host__ __device__ inline const fptype& + kernelAccessIp4IparConst_s( const fptype* buffer, + const int ip4, + const int ipar ) + { + const fptype& out = KernelAccessHelper::template kernelAccessFieldConst( buffer, ip4, ipar ); + printf( "ipar=%2d ip4=%2d ievt='kernel' out=%8.3f\n", ipar, ip4, out ); + return out; + } + */ + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (const, SCALAR OR VECTOR) ===> fptype_sv kernelAccessIp4IparConst( const fptype* buffer, const int ipar, const int ipar ) <===] + // FIXME? Eventually return by const reference and support aligned arrays only? + // FIXME? Currently return by value to support also unaligned and arbitrary arrays + static __host__ __device__ inline fptype_sv + kernelAccessIp4IparConst( const fptype* buffer, const int ip4, const int ipar ) - { - const fptype& out = KernelAccessHelper::template kernelAccessFieldConst( buffer, ip4, ipar ); - printf( "ipar=%2d ip4=%2d ievt='kernel' out=%8.3f\n", ipar, ip4, out ); - return out; - } - */ - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (const, SCALAR OR VECTOR) ===> fptype_sv kernelAccessIp4IparConst( const fptype* buffer, const int ipar, const int ipar ) <===] - // FIXME? Eventually return by const reference and support aligned arrays only? - // FIXME? Currently return by value to support also unaligned and arbitrary arrays - static __host__ __device__ inline fptype_sv - kernelAccessIp4IparConst( const fptype* buffer, - const int ip4, - const int ipar ) - { - const fptype& out = kernelAccessIp4IparConst_s( buffer, ip4, ipar ); + { + const fptype& out = kernelAccessIp4IparConst_s( buffer, ip4, ipar ); #ifndef MGONGPU_CPPSIMD - return out; + return out; #else - constexpr int neppM = MemoryAccessMomentaBase::neppM; - constexpr bool useContiguousEventsIfPossible = true; // DEFAULT - //constexpr bool useContiguousEventsIfPossible = false; // FOR PERFORMANCE TESTS (treat as arbitrary array even if it is an AOSOA) - // Use c++17 "if constexpr": compile-time branching - if constexpr( useContiguousEventsIfPossible && ( neppM >= neppV ) && ( neppM % neppV == 0 ) ) - { - //constexpr bool skipAlignmentCheck = true; // FASTEST (SEGFAULTS IF MISALIGNED ACCESS, NEEDS A SANITY CHECK ELSEWHERE!) - constexpr bool skipAlignmentCheck = false; // DEFAULT: A BIT SLOWER BUT SAFER [ALLOWS MISALIGNED ACCESS] - if constexpr( skipAlignmentCheck ) - { - //static bool first=true; if( first ){ std::cout << "WARNING! assume aligned AOSOA, skip check" << std::endl; first=false; } // SLOWER (5.06E6) - // FASTEST? (5.09E6 in eemumu 512y) - // This assumes alignment for momenta1d without checking - causes segmentation fault in reinterpret_cast if not aligned! - return mg5amcCpu::fptypevFromAlignedArray( out ); // use reinterpret_cast - } - else if( (size_t)( buffer ) % mgOnGpu::cppAlign == 0 ) + constexpr int neppM = MemoryAccessMomentaBase::neppM; + constexpr bool useContiguousEventsIfPossible = true; // DEFAULT + //constexpr bool useContiguousEventsIfPossible = false; // FOR PERFORMANCE TESTS (treat as arbitrary array even if it is an AOSOA) + // Use c++17 "if constexpr": compile-time branching + if constexpr( useContiguousEventsIfPossible && ( neppM >= neppV ) && ( neppM % neppV == 0 ) ) { - //static bool first=true; if( first ){ std::cout << "WARNING! aligned AOSOA, reinterpret cast" << std::endl; first=false; } // SLOWER (5.00E6) - // DEFAULT! A tiny bit (<1%) slower because of the alignment check (5.07E6 in eemumu 512y) - // This explicitly checks buffer alignment to avoid segmentation faults in reinterpret_cast - return mg5amcCpu::fptypevFromAlignedArray( out ); // SIMD bulk load of neppV, use reinterpret_cast + //constexpr bool skipAlignmentCheck = true; // FASTEST (SEGFAULTS IF MISALIGNED ACCESS, NEEDS A SANITY CHECK ELSEWHERE!) + constexpr bool skipAlignmentCheck = false; // DEFAULT: A BIT SLOWER BUT SAFER [ALLOWS MISALIGNED ACCESS] + if constexpr( skipAlignmentCheck ) + { + //static bool first=true; if( first ){ std::cout << "WARNING! assume aligned AOSOA, skip check" << std::endl; first=false; } // SLOWER (5.06E6) + // FASTEST? (5.09E6 in eemumu 512y) + // This assumes alignment for momenta1d without checking - causes segmentation fault in reinterpret_cast if not aligned! + return mg5amcCpu::fptypevFromAlignedArray( out ); // use reinterpret_cast + } + else if( (size_t)( buffer ) % mgOnGpu::cppAlign == 0 ) + { + //static bool first=true; if( first ){ std::cout << "WARNING! aligned AOSOA, reinterpret cast" << std::endl; first=false; } // SLOWER (5.00E6) + // DEFAULT! A tiny bit (<1%) slower because of the alignment check (5.07E6 in eemumu 512y) + // This explicitly checks buffer alignment to avoid segmentation faults in reinterpret_cast + return mg5amcCpu::fptypevFromAlignedArray( out ); // SIMD bulk load of neppV, use reinterpret_cast + } + else + { + //static bool first=true; if( first ){ std::cout << "WARNING! AOSOA but no reinterpret cast" << std::endl; first=false; } // SLOWER (4.93E6) + // A bit (1%) slower (5.05E6 in eemumu 512y) + // This does not require buffer alignment, but it requires AOSOA with neppM>=neppV and neppM%neppV==0 + return mg5amcCpu::fptypevFromUnalignedArray( out ); // SIMD bulk load of neppV, do not use reinterpret_cast (fewer SIMD operations) + } } else { - //static bool first=true; if( first ){ std::cout << "WARNING! AOSOA but no reinterpret cast" << std::endl; first=false; } // SLOWER (4.93E6) - // A bit (1%) slower (5.05E6 in eemumu 512y) - // This does not require buffer alignment, but it requires AOSOA with neppM>=neppV and neppM%neppV==0 - return mg5amcCpu::fptypevFromUnalignedArray( out ); // SIMD bulk load of neppV, do not use reinterpret_cast (fewer SIMD operations) + //static bool first=true; if( first ){ std::cout << "WARNING! arbitrary array" << std::endl; first=false; } // SLOWER (5.08E6) + // ?!Used to be much slower, now a tiny bit faster for AOSOA?! (5.11E6 for AOSOA, 4.64E6 for AOS in eemumu 512y) + // This does not even require AOSOA with neppM>=neppV and neppM%neppV==0 (e.g. can be used with AOS neppM==1) + constexpr int ievt0 = 0; // just make it explicit in the code that buffer refers to a given ievt0 and decoderIeppV fetches event ievt0+ieppV + auto decoderIeppv = [buffer, ip4, ipar]( int ieppV ) + -> const fptype& + { return MemoryAccessMomenta::ieventAccessIp4IparConst( buffer, ievt0 + ieppV, ip4, ipar ); }; + return mg5amcCpu::fptypevFromArbitraryArray( decoderIeppv ); // iterate over ieppV in neppV (no SIMD) } +#endif } - else + + // Is this a HostAccess or DeviceAccess class? + // [this is only needed for a warning printout in rambo.h for nparf==1 #358] + static __host__ __device__ inline constexpr bool + isOnDevice() { - //static bool first=true; if( first ){ std::cout << "WARNING! arbitrary array" << std::endl; first=false; } // SLOWER (5.08E6) - // ?!Used to be much slower, now a tiny bit faster for AOSOA?! (5.11E6 for AOSOA, 4.64E6 for AOS in eemumu 512y) - // This does not even require AOSOA with neppM>=neppV and neppM%neppV==0 (e.g. can be used with AOS neppM==1) - constexpr int ievt0 = 0; // just make it explicit in the code that buffer refers to a given ievt0 and decoderIeppV fetches event ievt0+ieppV - auto decoderIeppv = [buffer, ip4, ipar]( int ieppV ) - -> const fptype& - { return MemoryAccessMomenta::ieventAccessIp4IparConst( buffer, ievt0 + ieppV, ip4, ipar ); }; - return mg5amcCpu::fptypevFromArbitraryArray( decoderIeppv ); // iterate over ieppV in neppV (no SIMD) + return onDevice; } -#endif - } + }; - // Is this a HostAccess or DeviceAccess class? - // [this is only needed for a warning printout in rambo.h for nparf==1 #358] - static __host__ __device__ inline constexpr bool - isOnDevice() - { - return onDevice; - } -}; + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- + typedef KernelAccessMomenta HostAccessMomenta; + typedef KernelAccessMomenta DeviceAccessMomenta; -typedef KernelAccessMomenta HostAccessMomenta; -typedef KernelAccessMomenta DeviceAccessMomenta; + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- +} // end namespace mg5amcGpu/mg5amcCpu #endif // MemoryAccessMomenta_H diff --git a/epochX/cudacpp/gg_ttgg.mad/SubProcesses/MemoryAccessNumerators.h b/epochX/cudacpp/gg_ttgg.mad/SubProcesses/MemoryAccessNumerators.h index b373fd6048..b152183b28 100644 --- a/epochX/cudacpp/gg_ttgg.mad/SubProcesses/MemoryAccessNumerators.h +++ b/epochX/cudacpp/gg_ttgg.mad/SubProcesses/MemoryAccessNumerators.h @@ -9,15 +9,24 @@ #include "MemoryAccessGs.h" -//---------------------------------------------------------------------------- +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif +{ + //---------------------------------------------------------------------------- + + // A class describing the internal layout of memory buffers for numerators + // This implementation reuses the plain ARRAY[nevt] implementation of MemoryAccessGs -// A class describing the internal layout of memory buffers for numerators -// This implementation reuses the plain ARRAY[nevt] implementation of MemoryAccessGs + typedef KernelAccessGs HostAccessNumerators; + typedef KernelAccessGs DeviceAccessNumerators; -typedef KernelAccessGs HostAccessNumerators; -typedef KernelAccessGs DeviceAccessNumerators; + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- +} // end namespace mg5amcGpu/mg5amcCpu #endif #endif // MemoryAccessNumerators_H diff --git a/epochX/cudacpp/gg_ttgg.mad/SubProcesses/MemoryAccessWavefunctions.h b/epochX/cudacpp/gg_ttgg.mad/SubProcesses/MemoryAccessWavefunctions.h index f42f0d34ed..5428aaf933 100644 --- a/epochX/cudacpp/gg_ttgg.mad/SubProcesses/MemoryAccessWavefunctions.h +++ b/epochX/cudacpp/gg_ttgg.mad/SubProcesses/MemoryAccessWavefunctions.h @@ -14,147 +14,156 @@ #define MGONGPU_TRIVIAL_WAVEFUNCTIONS 1 -//---------------------------------------------------------------------------- - -#ifndef MGONGPU_TRIVIAL_WAVEFUNCTIONS - -// A class describing the internal layout of memory buffers for wavefunctions -// This implementation uses an AOSOA[npagW][nw6][nx2][neppW] where nevt=npagW*neppW -// [If many implementations are used, a suffix _AOSOAv1 should be appended to the class name] -class MemoryAccessWavefunctionsBase //_AOSOAv1 +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { -public: - - // Number of Events Per Page in the wavefunction AOSOA memory buffer layout - static constexpr int neppW = 1; // AOS (just a test...) - -private: - - friend class MemoryAccessHelper; - friend class KernelAccessHelper; - friend class KernelAccessHelper; - - // The number of components of a (fermion or vector) wavefunction - static constexpr int nw6 = mgOnGpu::nw6; - - // The number of floating point components of a complex number - static constexpr int nx2 = mgOnGpu::nx2; + //---------------------------------------------------------------------------- - //-------------------------------------------------------------------------- - // NB all KernelLaunchers assume that memory access can be decomposed as "accessField = decodeRecord( accessRecord )" - // (in other words: first locate the event record for a given event, then locate an element in that record) - //-------------------------------------------------------------------------- +#ifndef MGONGPU_TRIVIAL_WAVEFUNCTIONS - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] - static __host__ __device__ inline fptype* - ieventAccessRecord( fptype* buffer, - const int ievt ) + // A class describing the internal layout of memory buffers for wavefunctions + // This implementation uses an AOSOA[npagW][nw6][nx2][neppW] where nevt=npagW*neppW + // [If many implementations are used, a suffix _AOSOAv1 should be appended to the class name] + class MemoryAccessWavefunctionsBase //_AOSOAv1 { - const int ipagW = ievt / neppW; // #event "W-page" - const int ieppW = ievt % neppW; // #event in the current event W-page - constexpr int iw6 = 0; - constexpr int ix2 = 0; - return &( buffer[ipagW * nw6 * nx2 * neppW + iw6 * nx2 * neppW + ix2 * neppW + ieppW] ); // AOSOA[ipagW][iw6][ix2][ieppW] - } - - //-------------------------------------------------------------------------- - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, Ts... args ) <===] - // [NB: expand variadic template "Ts... args" to "const int iw6, const int ix2" and rename "Field" as "Iw6Ix2"] - static __host__ __device__ inline fptype& - decodeRecord( fptype* buffer, - const int iw6, - const int ix2 ) + public: + + // Number of Events Per Page in the wavefunction AOSOA memory buffer layout + static constexpr int neppW = 1; // AOS (just a test...) + + private: + + friend class MemoryAccessHelper; + friend class KernelAccessHelper; + friend class KernelAccessHelper; + + // The number of components of a (fermion or vector) wavefunction + static constexpr int nw6 = mgOnGpu::nw6; + + // The number of floating point components of a complex number + static constexpr int nx2 = mgOnGpu::nx2; + + //-------------------------------------------------------------------------- + // NB all KernelLaunchers assume that memory access can be decomposed as "accessField = decodeRecord( accessRecord )" + // (in other words: first locate the event record for a given event, then locate an element in that record) + //-------------------------------------------------------------------------- + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] + static __host__ __device__ inline fptype* + ieventAccessRecord( fptype* buffer, + const int ievt ) + { + const int ipagW = ievt / neppW; // #event "W-page" + const int ieppW = ievt % neppW; // #event in the current event W-page + constexpr int iw6 = 0; + constexpr int ix2 = 0; + return &( buffer[ipagW * nw6 * nx2 * neppW + iw6 * nx2 * neppW + ix2 * neppW + ieppW] ); // AOSOA[ipagW][iw6][ix2][ieppW] + } + + //-------------------------------------------------------------------------- + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, Ts... args ) <===] + // [NB: expand variadic template "Ts... args" to "const int iw6, const int ix2" and rename "Field" as "Iw6Ix2"] + static __host__ __device__ inline fptype& + decodeRecord( fptype* buffer, + const int iw6, + const int ix2 ) + { + constexpr int ipagW = 0; + constexpr int ieppW = 0; + return buffer[ipagW * nw6 * nx2 * neppW + iw6 * nx2 * neppW + ix2 * neppW + ieppW]; // AOSOA[ipagW][iw6][ix2][ieppW] + } + }; + + //---------------------------------------------------------------------------- + + // A class providing access to memory buffers for a given event, based on explicit event numbers + // Its methods use the MemoryAccessHelper templates - note the use of the template keyword in template function instantiations + class MemoryAccessWavefunctions : public MemoryAccessWavefunctionsBase { - constexpr int ipagW = 0; - constexpr int ieppW = 0; - return buffer[ipagW * nw6 * nx2 * neppW + iw6 * nx2 * neppW + ix2 * neppW + ieppW]; // AOSOA[ipagW][iw6][ix2][ieppW] - } -}; - -//---------------------------------------------------------------------------- + public: -// A class providing access to memory buffers for a given event, based on explicit event numbers -// Its methods use the MemoryAccessHelper templates - note the use of the template keyword in template function instantiations -class MemoryAccessWavefunctions : public MemoryAccessWavefunctionsBase -{ -public: + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] + static constexpr auto ieventAccessRecord = MemoryAccessHelper::ieventAccessRecord; - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] - static constexpr auto ieventAccessRecord = MemoryAccessHelper::ieventAccessRecord; + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (const) ===> const fptype* ieventAccessRecordConst( const fptype* buffer, const int ievt ) <===] + static constexpr auto ieventAccessRecordConst = MemoryAccessHelper::ieventAccessRecordConst; - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (const) ===> const fptype* ieventAccessRecordConst( const fptype* buffer, const int ievt ) <===] - static constexpr auto ieventAccessRecordConst = MemoryAccessHelper::ieventAccessRecordConst; + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, const int iw6, const int ix2 ) <===] + static constexpr auto decodeRecordIw6Ix2 = MemoryAccessHelper::decodeRecord; - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, const int iw6, const int ix2 ) <===] - static constexpr auto decodeRecordIw6Ix2 = MemoryAccessHelper::decodeRecord; + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (const) ===> const fptype& decodeRecordConst( const fptype* buffer, const int iw6, const int ix2 ) <===] + static constexpr auto decodeRecordIw6Ix2Const = + MemoryAccessHelper::template decodeRecordConst; - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (const) ===> const fptype& decodeRecordConst( const fptype* buffer, const int iw6, const int ix2 ) <===] - static constexpr auto decodeRecordIw6Ix2Const = - MemoryAccessHelper::template decodeRecordConst; + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (non-const) ===> fptype& ieventAccessIw6Ix2( fptype* buffer, const ievt, const int iw6, const int ix2 ) <===] + static constexpr auto ieventAccessIw6Ix2 = + MemoryAccessHelper::template ieventAccessField; - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (non-const) ===> fptype& ieventAccessIw6Ix2( fptype* buffer, const ievt, const int iw6, const int ix2 ) <===] - static constexpr auto ieventAccessIw6Ix2 = - MemoryAccessHelper::template ieventAccessField; - - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (const) ===> const fptype& ieventAccessIw6Ix2Const( const fptype* buffer, const ievt, const int iw6, const int ix2 ) <===] - static constexpr auto ieventAccessIw6Ix2Const = - MemoryAccessHelper::template ieventAccessFieldConst; -}; + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (const) ===> const fptype& ieventAccessIw6Ix2Const( const fptype* buffer, const ievt, const int iw6, const int ix2 ) <===] + static constexpr auto ieventAccessIw6Ix2Const = + MemoryAccessHelper::template ieventAccessFieldConst; + }; #endif // #ifndef MGONGPU_TRIVIAL_WAVEFUNCTIONS -//---------------------------------------------------------------------------- + //---------------------------------------------------------------------------- -// A class providing access to memory buffers for a given event, based on implicit kernel rules -// Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations -template -class KernelAccessWavefunctions -{ -public: + // A class providing access to memory buffers for a given event, based on implicit kernel rules + // Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations + template + class KernelAccessWavefunctions + { + public: #ifndef MGONGPU_TRIVIAL_WAVEFUNCTIONS - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (non-const) ===> fptype& kernelAccessIw6Ix2( fptype* buffer, const int iw6, const int ix2 ) <===] - static constexpr auto kernelAccessIw6Ix2 = - KernelAccessHelper::template kernelAccessField; + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (non-const) ===> fptype& kernelAccessIw6Ix2( fptype* buffer, const int iw6, const int ix2 ) <===] + static constexpr auto kernelAccessIw6Ix2 = + KernelAccessHelper::template kernelAccessField; - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (const) ===> const fptype& kernelAccessIw6Ix2Const( const fptype* buffer, const int iw6, const int ix2 ) <===] - static constexpr auto kernelAccessIw6Ix2Const = - KernelAccessHelper::template kernelAccessFieldConst; + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (const) ===> const fptype& kernelAccessIw6Ix2Const( const fptype* buffer, const int iw6, const int ix2 ) <===] + static constexpr auto kernelAccessIw6Ix2Const = + KernelAccessHelper::template kernelAccessFieldConst; #else - static __host__ __device__ inline cxtype_sv* - kernelAccess( fptype* buffer ) - { - return reinterpret_cast( buffer ); - } + static __host__ __device__ inline cxtype_sv* + kernelAccess( fptype* buffer ) + { + return reinterpret_cast( buffer ); + } - static __host__ __device__ inline const cxtype_sv* - kernelAccessConst( const fptype* buffer ) - { - return reinterpret_cast( buffer ); - } + static __host__ __device__ inline const cxtype_sv* + kernelAccessConst( const fptype* buffer ) + { + return reinterpret_cast( buffer ); + } #endif // #ifndef MGONGPU_TRIVIAL_WAVEFUNCTIONS -}; + }; + + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- + typedef KernelAccessWavefunctions HostAccessWavefunctions; + typedef KernelAccessWavefunctions DeviceAccessWavefunctions; -typedef KernelAccessWavefunctions HostAccessWavefunctions; -typedef KernelAccessWavefunctions DeviceAccessWavefunctions; + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- +} // end namespace mg5amcGpu/mg5amcCpu #endif // MemoryAccessWavefunctions_H diff --git a/epochX/cudacpp/gg_ttgg.mad/SubProcesses/cudacpp.mk b/epochX/cudacpp/gg_ttgg.mad/SubProcesses/cudacpp.mk index a0397e9ecc..c2f7b8e0f6 100644 --- a/epochX/cudacpp/gg_ttgg.mad/SubProcesses/cudacpp.mk +++ b/epochX/cudacpp/gg_ttgg.mad/SubProcesses/cudacpp.mk @@ -76,7 +76,7 @@ endif CXXFLAGS = $(OPTFLAGS) -std=c++17 $(INCFLAGS) -Wall -Wshadow -Wextra ifeq ($(shell $(CXX) --version | grep ^nvc++),) -CXXFLAGS+= -ffast-math # see issue #117 +CXXFLAGS += -ffast-math # see issue #117 endif ###CXXFLAGS+= -Ofast # performance is not different from --fast-math ###CXXFLAGS+= -g # FOR DEBUGGING ONLY @@ -122,7 +122,7 @@ ifneq ($(wildcard $(CUDA_HOME)/bin/nvcc),) CUINC = -I$(CUDA_HOME)/include/ CURANDLIBFLAGS = -L$(CUDA_HOME)/lib64/ -lcurand # NB: -lcuda is not needed here! CUOPTFLAGS = -lineinfo - CUFLAGS = $(OPTFLAGS) $(CUOPTFLAGS) $(INCFLAGS) $(CUINC) $(USE_NVTX) $(CUARCHFLAGS) -use_fast_math + CUFLAGS = $(foreach opt, $(OPTFLAGS), -Xcompiler $(opt)) $(CUOPTFLAGS) $(INCFLAGS) $(CUINC) $(USE_NVTX) $(CUARCHFLAGS) -use_fast_math ###CUFLAGS += -Xcompiler -Wall -Xcompiler -Wextra -Xcompiler -Wshadow ###NVCC_VERSION = $(shell $(NVCC) --version | grep 'Cuda compilation tools' | cut -d' ' -f5 | cut -d, -f1) CUFLAGS += -std=c++17 # need CUDA >= 11.2 (see #333): this is enforced in mgOnGpuConfig.h @@ -142,6 +142,8 @@ else override CUINC= override CURANDLIBFLAGS= endif +export NVCC +export CUFLAGS # Set the host C++ compiler for nvcc via "-ccbin " # (NB issue #505: this must be a single word, "clang++ --gcc-toolchain..." is not supported) @@ -439,7 +441,7 @@ endif # Target (and build options): debug MAKEDEBUG= -debug: OPTFLAGS = -g -O0 -DDEBUG2 +debug: OPTFLAGS = -g -O0 debug: CUOPTFLAGS = -G debug: MAKEDEBUG := debug debug: all.$(TAG) @@ -468,9 +470,9 @@ $(BUILDDIR)/%.o : %.cc *.h ../../src/*.h $(BUILDDIR)/.build.$(TAG) @if [ ! -d $(BUILDDIR) ]; then echo "mkdir -p $(BUILDDIR)"; mkdir -p $(BUILDDIR); fi $(CXX) $(CPPFLAGS) $(CXXFLAGS) -fPIC -c $< -o $@ -# Apply special build flags only to CrossSectionKernel.cc and gCrossSectionKernel.cu (no fast math, see #117) +# Apply special build flags only to CrossSectionKernel.cc and gCrossSectionKernel.cu (no fast math, see #117 and #516) ifeq ($(shell $(CXX) --version | grep ^nvc++),) -$(BUILDDIR)/CrossSectionKernels.o: CXXFLAGS += -fno-fast-math +$(BUILDDIR)/CrossSectionKernels.o: CXXFLAGS := $(filter-out -ffast-math,$(CXXFLAGS)) $(BUILDDIR)/CrossSectionKernels.o: CXXFLAGS += -fno-fast-math ifneq ($(NVCC),) $(BUILDDIR)/gCrossSectionKernels.o: CUFLAGS += -Xcompiler -fno-fast-math diff --git a/epochX/cudacpp/gg_ttgg.mad/SubProcesses/runTest.cc b/epochX/cudacpp/gg_ttgg.mad/SubProcesses/runTest.cc index 572e28aaea..df7488178e 100644 --- a/epochX/cudacpp/gg_ttgg.mad/SubProcesses/runTest.cc +++ b/epochX/cudacpp/gg_ttgg.mad/SubProcesses/runTest.cc @@ -2,6 +2,9 @@ // Licensed under the GNU Lesser General Public License (version 3 or later). // Created by: S. Hageboeck (Nov 2020) for the MG5aMC CUDACPP plugin. // Further modified by: S. Hageboeck, O. Mattelaer, S. Roiser, A. Valassi (2020-2023) for the MG5aMC CUDACPP plugin. +//---------------------------------------------------------------------------- +// Use ./runTest.exe --gtest_filter=*xxx to run only testxxx.cc tests +//---------------------------------------------------------------------------- #include "mgOnGpuConfig.h" diff --git a/epochX/cudacpp/gg_ttgg.mad/SubProcesses/testmisc.cc b/epochX/cudacpp/gg_ttgg.mad/SubProcesses/testmisc.cc index 989aba1fdc..895d6eeb56 100644 --- a/epochX/cudacpp/gg_ttgg.mad/SubProcesses/testmisc.cc +++ b/epochX/cudacpp/gg_ttgg.mad/SubProcesses/testmisc.cc @@ -3,7 +3,7 @@ // Created by: A. Valassi (Jan 2022) for the MG5aMC CUDACPP plugin. // Further modified by: A. Valassi (2022-2023) for the MG5aMC CUDACPP plugin. //---------------------------------------------------------------------------- -// Use ./runTest.exe --gtest_filter=*misc to run only this test +// Use ./runTest.exe --gtest_filter=*misc to run only testmisc.cc tests //---------------------------------------------------------------------------- #include "mgOnGpuConfig.h" @@ -25,33 +25,48 @@ #define XTESTID( s ) TESTID( s ) +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif +{ #ifdef MGONGPU_CPPSIMD /* clang-format off */ -bool maskand( const bool_v& mask ){ bool out = true; for ( int i=0; i #include +#include // debug #701 (see https://stackoverflow.com/a/17473528) #include #include #include @@ -28,16 +32,47 @@ #define XTESTID( s ) TESTID( s ) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif +{ + std::string FPEhandlerMessage = "unknown"; + int FPEhandlerIevt = -1; + inline void FPEhandler( int sig ) + { +#ifdef __CUDACC__ + std::cerr << "Floating Point Exception (GPU): '" << FPEhandlerMessage << "' ievt=" << FPEhandlerIevt << std::endl; +#else + std::cerr << "Floating Point Exception (CPU neppV=" << neppV << "): '" << FPEhandlerMessage << "' ievt=" << FPEhandlerIevt << std::endl; +#endif + exit( 0 ); + } +} + TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) { +#ifdef __CUDACC__ + using namespace mg5amcGpu; +#else + using namespace mg5amcCpu; +#endif +#ifndef __APPLE__ // test #701 (except on MacOS where feenableexcept is not defined #730) + const bool enableFPE = !getenv( "CUDACPP_RUNTIME_DISABLEFPE" ); + if( enableFPE ) + { + feenableexcept( FE_INVALID | FE_DIVBYZERO | FE_OVERFLOW | FE_UNDERFLOW ); // debug #701 + signal( SIGFPE, FPEhandler ); + } +#endif constexpr bool dumpEvents = false; // dump the expected output of the test? constexpr bool testEvents = !dumpEvents; // run the test? constexpr fptype toleranceXXXs = std::is_same::value ? 1.E-15 : 1.E-5; // Constant parameters constexpr int neppM = MemoryAccessMomenta::neppM; // AOSOA layout - using mgOnGpu::neppV; constexpr int np4 = CPPProcess::np4; - const int nevt = 16; // 12 independent tests plus 4 duplicates (need a multiple of 8 for floats or for '512z') + const int nevt = 32; // 12 independent tests plus 20 duplicates (need a multiple of 16 for floats '512z') assert( nevt % neppM == 0 ); // nevt must be a multiple of neppM assert( nevt % neppV == 0 ); // nevt must be a multiple of neppV // Fill in the input momenta @@ -46,24 +81,41 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) #else mg5amcCpu::HostBufferMomenta hstMomenta( nevt ); // AOSOA[npagM][npar=4][np4=4][neppM] #endif /* clang-format off */ + // NB NEW TESTS FOR DEBUGGING #701: KEEP TWO SEPARATE SETS (16-SIMD-VECTORS!) OF TESTS FOR M==0 AND M!=0! const fptype par0[np4 * nevt] = // AOS[nevt][np4] { - 500, 0, 0, 500, // #0 (m=0 pT=0 E=pz>0) - 500, 0, 0, -500, // #1 (m=0 pT=0 -E=pz<0) - 500, 300, 400, 0, // #2 (m=0 pT>0 pz=0) - 500, 180, 240, 400, // #3 (m=0 pT>0 pz>0) - 500, 180, 240, -400, // #4 (m=0 pT>0 pz<0) - 500, 0, 0, 0, // #5 (m=50>0 pT=0 pz=0) - 500, 0, 0, 300, // #6 (m=40>0 pT=0 pz>0) - 500, 0, 0, -300, // #7 (m=40>0 pT=0 pz<0) - 500, 180, 240, 0, // #8 (m=40>0 pT>0 pz=0) - 500, -240, -180, 0, // #9 (m=40>0 pT>0 pz=0) - 500, 180, 192, 144, // #10 (m=40>0 pT>0 pz>0) - 500, 180, 192, -144, // #11 (m=40>0 pT>0 pz<0) - 500, 0, 0, 500, // DUPLICATE #12 == #0 (m=0 pT=0 E=pz>0) - 500, 0, 0, -500, // DUPLICATE #13 == #1 (m=0 pT=0 -E=pz<0) - 500, 300, 400, 0, // DUPLICATE #14 == #2 (m=0 pT>0 pz=0) - 500, 180, 240, 400 // DUPLICATE #15 == #3 (m=0 pT>0 pz>0) + 500, 0, 0, 500, // #0 (m=0 pT=0 E=pz>0) + 500, 0, 0, -500, // #1 (m=0 pT=0 -E=pz<0) + 500, 300, 400, 0, // #2 (m=0 pT>0 pz=0) + 500, 180, 240, 400, // #3 (m=0 pT>0 pz>0) + 500, 180, 240, -400, // #4 (m=0 pT>0 pz<0) + 500, 0, 0, 500, // #5 DUPLICATE == #0 (m=0 pT=0 E=pz>0) + 500, 0, 0, -500, // #6 DUPLICATE == #1 (m=0 pT=0 -E=pz<0) + 500, 300, 400, 0, // #7 DUPLICATE == #2 (m=0 pT>0 pz=0) + 500, 180, 240, 400, // #8 DUPLICATE == #3 (m=0 pT>0 pz>0) + 500, 180, 240, -400, // #9 DUPLICATE == #4 (m=0 pT>0 pz<0) + 500, 0, 0, 500, // #10 DUPLICATE == #0 (m=0 pT=0 E=pz>0) + 500, 0, 0, -500, // #11 DUPLICATE == #1 (m=0 pT=0 -E=pz<0) + 500, 300, 400, 0, // #12 DUPLICATE == #2 (m=0 pT>0 pz=0) + 500, 180, 240, 400, // #13 DUPLICATE == #3 (m=0 pT>0 pz>0) + 500, 180, 240, -400, // #14 DUPLICATE == #4 (m=0 pT>0 pz<0) + 500, 0, 0, 500, // #15 DUPLICATE == #0 (m=0 pT=0 E=pz>0) + 500, 0, 0, 0, // #16 (m=50>0 pT=0 pz=0) + 500, 0, 0, 300, // #17 (m=40>0 pT=0 pz>0) + 500, 0, 0, -300, // #18 (m=40>0 pT=0 pz<0) + 500, 180, 240, 0, // #19 (m=40>0 pT>0 pz=0) + 500, -240, -180, 0, // #20 (m=40>0 pT>0 pz=0) + 500, 180, 192, 144, // #21 (m=40>0 pT>0 pz>0) + 500, 180, 192, -144, // #22 (m=40>0 pT>0 pz<0) + 500, 0, 0, 0, // #23 DUPLICATE == #16 (m=50>0 pT=0 pz=0) + 500, 0, 0, 300, // #24 DUPLICATE == #17 (m=40>0 pT=0 pz>0) + 500, 0, 0, -300, // #25 DUPLICATE == #18 (m=40>0 pT=0 pz<0) + 500, 180, 240, 0, // #26 DUPLICATE == #19 (m=40>0 pT>0 pz=0) + 500, -240, -180, 0, // #27 DUPLICATE == #20 (m=40>0 pT>0 pz=0) + 500, 180, 192, 144, // #28 DUPLICATE == #21 (m=40>0 pT>0 pz>0) + 500, 180, 192, -144, // #29 DUPLICATE == #22 (m=40>0 pT>0 pz<0) + 500, 0, 0, 0, // #30 DUPLICATE == #16 (m=50>0 pT=0 pz=0) + 500, 0, 0, 300 // #31 DUPLICATE == #17 (m=40>0 pT=0 pz>0) }; /* clang-format on */ // Array initialization: zero-out as "{0}" (C and C++) or as "{}" (C++ only) // See https://en.cppreference.com/w/c/language/array_initialization#Notes @@ -99,7 +151,15 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) constexpr int nw6 = CPPProcess::nw6; // dimensions of each wavefunction (HELAS KEK 91-11): e.g. 6 for e+ e- -> mu+ mu- (fermions and vectors) int itest = 0; // index on the expected output vector std::ofstream dumpFile; - if( dumpEvents ) dumpFile.open( dumpFileName, std::ios::trunc ); + if( dumpEvents ) + { + dumpFile.open( dumpFileName, std::ios::trunc ); + dumpFile << " // Copyright (C) 2020-2023 CERN and UCLouvain." << std::endl + << " // Licensed under the GNU Lesser General Public License (version 3 or later)." << std::endl + << " // Created by: A. Valassi (Apr 2021) for the MG5aMC CUDACPP plugin." << std::endl + << " // Further modified by: A. Valassi (2021-2023) for the MG5aMC CUDACPP plugin." << std::endl; + } + // Lambda function for dumping wavefunctions auto dumpwf6 = [&]( std::ostream& out, const cxtype_sv wf[6], const char* xxx, int ievt, int nsp, fptype mass ) { out << std::setprecision( 15 ) << std::scientific; @@ -129,6 +189,7 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) } out << std::defaultfloat; }; + // Lambda function for testing wavefunctions (1) auto testwf6 = [&]( const cxtype_sv wf[6], const char* xxx, int ievt, int nsp, fptype mass ) { if( dumpEvents ) dumpwf6( dumpFile, wf, xxx, ievt, nsp, mass ); @@ -170,6 +231,7 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) } itest++; }; + // Lambda function for testing wavefunctions (2) auto testwf6two = [&]( const cxtype_sv wf[6], const cxtype_sv expwf[6], const char* xxx, int ievt ) { if( testEvents ) @@ -213,6 +275,32 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) } } }; + // Lambda function for resetting hstMomenta to the values of par0 + // This is needed in each test because hstMomenta may have been modified to ensure a function like ipzxxx can be used (#701) + auto resetHstMomentaToPar0 = [&]() + { + for( int ievt = 0; ievt < nevt; ievt++ ) + for( int ip4 = 0; ip4 < np4; ip4++ ) + MemoryAccessMomenta::ieventAccessIp4Ipar( hstMomenta.data(), ievt, ip4, ipar0 ) = par0[ievt * np4 + ip4]; // AOS to AOSOA + }; + // Lambda function for preparing the test of one specific function + const bool debug = false; + auto prepareTest = [&]( const char* xxx, int ievt ) + { + if( debug ) std::cout << "Prepare test " << xxx << " ievt=" << ievt << std::endl; + resetHstMomentaToPar0(); + FPEhandlerMessage = xxx; + FPEhandlerIevt = ievt; + if( std::string( xxx ) == "ipzxxx" || std::string( xxx ) == "opzxxx" || std::string( xxx ) == "imzxxx" || std::string( xxx ) == "omzxxx" || std::string( xxx ) == "ixzxxx" || std::string( xxx ) == "oxzxxx" ) + { + // Modify hstMomenta so that ALL events have the momenta of a single ievt + // This ensures that a function like ipzxxx (which assumes pZ>0) can be used without triggering FPEs (#701) + // This is done by filling the full SIMD vector with the value of ievt, which was already tested to respect the relevant assumptions + for( int jevt = 0; jevt < nevt; jevt++ ) + for( int ip4 = 0; ip4 < np4; ip4++ ) + MemoryAccessMomenta::ieventAccessIp4Ipar( hstMomenta.data(), jevt, ip4, ipar0 ) = par0[ievt * np4 + ip4]; // AOS to AOSOA + } + }; // Array initialization: zero-out as "{0}" (C and C++) or as "{}" (C++ only) // See https://en.cppreference.com/w/c/language/array_initialization#Notes cxtype_sv outwfI[6] = {}; // last result of ixxxxx (mass==0) @@ -224,6 +312,7 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) fptype* fp_outwf = reinterpret_cast( outwf ); // proof of concept for using fptype* in the interface fptype* fp_outwf3 = reinterpret_cast( outwf3 ); // proof of concept for using fptype* in the interface const int nhel = 1; + // *** START OF TESTING LOOP for( auto nsp: { -1, +1 } ) // antifermion/fermion (or initial/final for scalar and vector) { for( int ievt = 0; ievt < nevt; ievt++ ) @@ -233,9 +322,10 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) #else using namespace mg5amcCpu; #endif - if( false ) + if( debug ) { std::cout << std::endl; + std::cout << "nsp=" << nsp << " ievt=" << ievt << ": "; for( int ip4 = 0; ip4 < np4; ip4++ ) std::cout << par0[ievt * np4 + ip4] << ", "; std::cout << std::endl; } @@ -243,6 +333,7 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) const fptype* ievt0Momenta = MemoryAccessMomenta::ieventAccessRecordConst( hstMomenta.data(), ipagV * neppV ); // Test ixxxxx - NO ASSUMPTIONS { + prepareTest( "ixxxxx", ievt ); const fptype fmass = mass0[ievt]; ixxxxx( ievt0Momenta, fmass, nhel, nsp, fp_outwfI, ipar0 ); testwf6( outwfI, "ixxxxx", ievt, nsp, fmass ); @@ -252,6 +343,7 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) // Test ipzxxx - ASSUMPTIONS: (FMASS == 0) and (PX == PY == 0 and E == +PZ > 0) if( mass0[ievt] == 0 && !isptgt0[ievt] && ispzgt0[ievt] ) { + prepareTest( "ipzxxx", ievt ); ipzxxx( ievt0Momenta, nhel, nsp, fp_outwf, ipar0 ); testwf6two( outwf, outwfI, "ipzxxx", ievt ); testwf6( outwf, "ipzxxx", ievt, nsp, 0 ); @@ -259,6 +351,7 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) // Test imzxxx - ASSUMPTIONS: (FMASS == 0) and (PX == PY == 0 and E == -PZ > 0) if( mass0[ievt] == 0 && !isptgt0[ievt] && ispzlt0[ievt] ) { + prepareTest( "imzxxx", ievt ); imzxxx( ievt0Momenta, nhel, nsp, fp_outwf, ipar0 ); testwf6two( outwf, outwfI, "imzxxx", ievt ); testwf6( outwf, "imzxxx", ievt, nsp, 0 ); @@ -266,12 +359,14 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) // Test ixzxxx - ASSUMPTIONS: (FMASS == 0) and (PT > 0) if( mass0[ievt] == 0 && isptgt0[ievt] ) { + prepareTest( "ixzxxx", ievt ); ixzxxx( ievt0Momenta, nhel, nsp, fp_outwf, ipar0 ); testwf6two( outwf, outwfI, "ixzxxx", ievt ); testwf6( outwf, "ixzxxx", ievt, nsp, 0 ); } // Test vxxxxx - NO ASSUMPTIONS { + prepareTest( "vxxxxx", ievt ); const fptype vmass = mass0[ievt]; vxxxxx( ievt0Momenta, vmass, nhel, nsp, fp_outwf, ipar0 ); testwf6( outwf, "vxxxxx", ievt, nsp, vmass ); @@ -280,6 +375,7 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) } // Test sxxxxx - NO ASSUMPTIONS { + prepareTest( "sxxxxx", ievt ); const fptype smass = mass0[ievt]; sxxxxx( ievt0Momenta, nsp, fp_outwf3, ipar0 ); // no mass, no helicity (was "smass>0") testwf6( outwf3, "sxxxxx", ievt, nsp, smass ); @@ -288,6 +384,7 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) } // Test oxxxxx - NO ASSUMPTIONS { + prepareTest( "oxxxxx", ievt ); const fptype fmass = mass0[ievt]; oxxxxx( ievt0Momenta, fmass, nhel, nsp, fp_outwfO, ipar0 ); testwf6( outwfO, "oxxxxx", ievt, nsp, fmass ); @@ -297,6 +394,7 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) // Test opzxxx - ASSUMPTIONS: (FMASS == 0) and (PX == PY == 0 and E == +PZ > 0) if( mass0[ievt] == 0 && !isptgt0[ievt] && ispzgt0[ievt] ) { + prepareTest( "opzxxx", ievt ); opzxxx( ievt0Momenta, nhel, nsp, fp_outwf, ipar0 ); testwf6two( outwf, outwfO, "opzxxx", ievt ); testwf6( outwf, "opzxxx", ievt, nsp, 0 ); @@ -304,6 +402,7 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) // Test omzxxx - ASSUMPTIONS: (FMASS == 0) and (PX == PY == 0 and E == -PZ > 0) if( mass0[ievt] == 0 && !isptgt0[ievt] && ispzlt0[ievt] ) { + prepareTest( "omzxxx", ievt ); omzxxx( ievt0Momenta, nhel, nsp, fp_outwf, ipar0 ); testwf6two( outwf, outwfO, "omzxxx", ievt ); testwf6( outwf, "omzxxx", ievt, nsp, 0 ); @@ -311,17 +410,25 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) // Test oxzxxx - ASSUMPTIONS: (FMASS == 0) and (PT > 0) if( mass0[ievt] == 0 && isptgt0[ievt] ) { - oxzxxx( ievt0Momenta, nhel, nsp, reinterpret_cast( outwf ), ipar0 ); + prepareTest( "oxzxxx", ievt ); + oxzxxx( ievt0Momenta, nhel, nsp, fp_outwf, ipar0 ); testwf6two( outwf, outwfO, "oxzxxx", ievt ); testwf6( outwf, "oxzxxx", ievt, nsp, 0 ); } } } + // *** END OF TESTING LOOP if( dumpEvents ) { dumpFile.close(); std::cout << "INFO: New reference data dumped to file '" << dumpFileName << "'" << std::endl; } +#ifndef __APPLE__ // test #701 (except on MacOS where fedisableexcept is not defined #730) + if( enableFPE ) + { + fedisableexcept( FE_INVALID | FE_DIVBYZERO | FE_OVERFLOW | FE_UNDERFLOW ); // debug #701 + } +#endif } //========================================================================== diff --git a/epochX/cudacpp/gg_ttgg.mad/SubProcesses/testxxx_cc_ref.txt b/epochX/cudacpp/gg_ttgg.mad/SubProcesses/testxxx_cc_ref.txt index acb9bde918..637530d1f5 100644 --- a/epochX/cudacpp/gg_ttgg.mad/SubProcesses/testxxx_cc_ref.txt +++ b/epochX/cudacpp/gg_ttgg.mad/SubProcesses/testxxx_cc_ref.txt @@ -5,14 +5,14 @@ expwfs.push_back( { // --------- 5.000000000000000e+02, 5.000000000000000e+02, // itest=0: ixxxxx#0 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=0: ixxxxx#0 nsp=-1 mass=0 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=0: ixxxxx#0 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=0: ixxxxx#0 nsp=-1 mass=0 -3.162277660168379e+01, 0.000000000000000e+00, // itest=0: ixxxxx#0 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=0: ixxxxx#0 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=0: ixxxxx#0 nsp=-1 mass=0 expwfs.push_back( { // --------- 5.000000000000000e+02, 5.000000000000000e+02, // itest=1: ixxxxx#0 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=1: ixxxxx#0 nsp=-1 mass=0 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=1: ixxxxx#0 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=1: ixxxxx#0 nsp=-1 mass=0 -3.162277660168379e+01, 0.000000000000000e+00, // itest=1: ixxxxx#0 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=1: ixxxxx#0 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=1: ixxxxx#0 nsp=-1 mass=0 @@ -82,8 +82,8 @@ expwfs.push_back( { // --------- 5.000000000000000e+02, -5.000000000000000e+02, // itest=11: ixxxxx#1 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=11: ixxxxx#1 nsp=-1 mass=0 - -3.162277660168379e+01, -0.000000000000000e+00, // itest=11: ixxxxx#1 nsp=-1 mass=0 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=11: ixxxxx#1 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=11: ixxxxx#1 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=11: ixxxxx#1 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=11: ixxxxx#1 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=11: ixxxxx#1 nsp=-1 mass=0 expwfs.push_back( { // --------- @@ -133,8 +133,8 @@ -0.000000000000000e+00, -0.000000000000000e+00, // itest=18: oxxxxx#1 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=18: oxxxxx#1 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=18: oxxxxx#1 nsp=-1 mass=0 - -3.162277660168379e+01, -0.000000000000000e+00, // itest=18: oxxxxx#1 nsp=-1 mass=0 - -0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=18: oxxxxx#1 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=18: oxxxxx#1 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=18: oxxxxx#1 nsp=-1 mass=0 expwfs.push_back( { // --------- -5.000000000000000e+02, 5.000000000000000e+02, // itest=19: omzxxx#1 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=19: omzxxx#1 nsp=-1 mass=0 @@ -145,14 +145,14 @@ expwfs.push_back( { // --------- 5.000000000000000e+02, 0.000000000000000e+00, // itest=20: ixxxxx#2 nsp=-1 mass=0 3.000000000000000e+02, 4.000000000000000e+02, // itest=20: ixxxxx#2 nsp=-1 mass=0 - 1.341640786499874e+01, -1.788854381999832e+01, // itest=20: ixxxxx#2 nsp=-1 mass=0 + 1.341640786499874e+01, -1.788854381999831e+01, // itest=20: ixxxxx#2 nsp=-1 mass=0 -2.236067977499790e+01, 0.000000000000000e+00, // itest=20: ixxxxx#2 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=20: ixxxxx#2 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=20: ixxxxx#2 nsp=-1 mass=0 expwfs.push_back( { // --------- 5.000000000000000e+02, 0.000000000000000e+00, // itest=21: ixxxxx#2 nsp=-1 mass=0 3.000000000000000e+02, 4.000000000000000e+02, // itest=21: ixxxxx#2 nsp=-1 mass=0 - 1.341640786499874e+01, -1.788854381999832e+01, // itest=21: ixxxxx#2 nsp=-1 mass=0 + 1.341640786499874e+01, -1.788854381999831e+01, // itest=21: ixxxxx#2 nsp=-1 mass=0 -2.236067977499790e+01, 0.000000000000000e+00, // itest=21: ixxxxx#2 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=21: ixxxxx#2 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=21: ixxxxx#2 nsp=-1 mass=0 @@ -196,14 +196,14 @@ -3.000000000000000e+02, -4.000000000000000e+02, // itest=27: oxxxxx#2 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=27: oxxxxx#2 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=27: oxxxxx#2 nsp=-1 mass=0 - 1.341640786499874e+01, 1.788854381999832e+01, // itest=27: oxxxxx#2 nsp=-1 mass=0 + 1.341640786499874e+01, 1.788854381999831e+01, // itest=27: oxxxxx#2 nsp=-1 mass=0 -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=27: oxxxxx#2 nsp=-1 mass=0 expwfs.push_back( { // --------- -5.000000000000000e+02, -0.000000000000000e+00, // itest=28: oxxxxx#2 nsp=-1 mass=0 -3.000000000000000e+02, -4.000000000000000e+02, // itest=28: oxxxxx#2 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=28: oxxxxx#2 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=28: oxxxxx#2 nsp=-1 mass=0 - 1.341640786499874e+01, 1.788854381999832e+01, // itest=28: oxxxxx#2 nsp=-1 mass=0 + 1.341640786499874e+01, 1.788854381999831e+01, // itest=28: oxxxxx#2 nsp=-1 mass=0 -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=28: oxxxxx#2 nsp=-1 mass=0 expwfs.push_back( { // --------- -5.000000000000000e+02, -0.000000000000000e+00, // itest=29: oxzxxx#2 nsp=-1 mass=0 @@ -353,1696 +353,3684 @@ 1.800000000000000e+01, 2.400000000000000e+01, // itest=49: oxzxxx#4 nsp=-1 mass=0 -1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=49: oxzxxx#4 nsp=-1 mass=0 expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=50: ixxxxx#5 nsp=-1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=50: ixxxxx#5 nsp=-1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=50: ixxxxx#5 nsp=-1 mass=500 - -2.236067977499790e+01, 0.000000000000000e+00, // itest=50: ixxxxx#5 nsp=-1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=50: ixxxxx#5 nsp=-1 mass=500 - 2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=50: ixxxxx#5 nsp=-1 mass=500 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=51: ixxxxx#5 nsp=-1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=51: ixxxxx#5 nsp=-1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=51: ixxxxx#5 nsp=-1 mass=-500 - -2.236067977499790e+01, 0.000000000000000e+00, // itest=51: ixxxxx#5 nsp=-1 mass=-500 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=51: ixxxxx#5 nsp=-1 mass=-500 - -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=51: ixxxxx#5 nsp=-1 mass=-500 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=52: vxxxxx#5 nsp=-1 mass=500 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=52: vxxxxx#5 nsp=-1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=52: vxxxxx#5 nsp=-1 mass=500 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=52: vxxxxx#5 nsp=-1 mass=500 - 0.000000000000000e+00, -7.071067811865476e-01, // itest=52: vxxxxx#5 nsp=-1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=52: vxxxxx#5 nsp=-1 mass=500 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=53: vxxxxx#5 nsp=-1 mass=-500 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=53: vxxxxx#5 nsp=-1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=53: vxxxxx#5 nsp=-1 mass=-500 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=53: vxxxxx#5 nsp=-1 mass=-500 - 0.000000000000000e+00, -7.071067811865476e-01, // itest=53: vxxxxx#5 nsp=-1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=53: vxxxxx#5 nsp=-1 mass=-500 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=54: sxxxxx#5 nsp=-1 mass=500 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=54: sxxxxx#5 nsp=-1 mass=500 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=54: sxxxxx#5 nsp=-1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=54: sxxxxx#5 nsp=-1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=54: sxxxxx#5 nsp=-1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=54: sxxxxx#5 nsp=-1 mass=500 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=55: sxxxxx#5 nsp=-1 mass=-500 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=55: sxxxxx#5 nsp=-1 mass=-500 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=55: sxxxxx#5 nsp=-1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=55: sxxxxx#5 nsp=-1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=55: sxxxxx#5 nsp=-1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=55: sxxxxx#5 nsp=-1 mass=-500 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=56: oxxxxx#5 nsp=-1 mass=500 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=56: oxxxxx#5 nsp=-1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=56: oxxxxx#5 nsp=-1 mass=500 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=56: oxxxxx#5 nsp=-1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=56: oxxxxx#5 nsp=-1 mass=500 - -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=56: oxxxxx#5 nsp=-1 mass=500 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=57: oxxxxx#5 nsp=-1 mass=-500 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=57: oxxxxx#5 nsp=-1 mass=-500 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=57: oxxxxx#5 nsp=-1 mass=-500 - -2.236067977499790e+01, 0.000000000000000e+00, // itest=57: oxxxxx#5 nsp=-1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=57: oxxxxx#5 nsp=-1 mass=-500 - -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=57: oxxxxx#5 nsp=-1 mass=-500 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 3.000000000000000e+02, // itest=58: ixxxxx#6 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=58: ixxxxx#6 nsp=-1 mass=400 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=58: ixxxxx#6 nsp=-1 mass=400 - -2.828427124746190e+01, -0.000000000000000e+00, // itest=58: ixxxxx#6 nsp=-1 mass=400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=58: ixxxxx#6 nsp=-1 mass=400 - 1.414213562373095e+01, 0.000000000000000e+00 } ); // itest=58: ixxxxx#6 nsp=-1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 3.000000000000000e+02, // itest=59: ixxxxx#6 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=59: ixxxxx#6 nsp=-1 mass=-400 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=59: ixxxxx#6 nsp=-1 mass=-400 - -2.828427124746190e+01, -0.000000000000000e+00, // itest=59: ixxxxx#6 nsp=-1 mass=-400 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=59: ixxxxx#6 nsp=-1 mass=-400 - -1.414213562373095e+01, -0.000000000000000e+00 } ); // itest=59: ixxxxx#6 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -3.000000000000000e+02, // itest=60: vxxxxx#6 nsp=-1 mass=400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=60: vxxxxx#6 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=60: vxxxxx#6 nsp=-1 mass=400 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=60: vxxxxx#6 nsp=-1 mass=400 - 0.000000000000000e+00, -7.071067811865476e-01, // itest=60: vxxxxx#6 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=60: vxxxxx#6 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -3.000000000000000e+02, // itest=61: vxxxxx#6 nsp=-1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=61: vxxxxx#6 nsp=-1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=61: vxxxxx#6 nsp=-1 mass=-400 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=61: vxxxxx#6 nsp=-1 mass=-400 - 0.000000000000000e+00, -7.071067811865476e-01, // itest=61: vxxxxx#6 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=61: vxxxxx#6 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -3.000000000000000e+02, // itest=62: sxxxxx#6 nsp=-1 mass=400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=62: sxxxxx#6 nsp=-1 mass=400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=62: sxxxxx#6 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=62: sxxxxx#6 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=62: sxxxxx#6 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=62: sxxxxx#6 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -3.000000000000000e+02, // itest=63: sxxxxx#6 nsp=-1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=63: sxxxxx#6 nsp=-1 mass=-400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=63: sxxxxx#6 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=63: sxxxxx#6 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=63: sxxxxx#6 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=63: sxxxxx#6 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -3.000000000000000e+02, // itest=64: oxxxxx#6 nsp=-1 mass=400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=64: oxxxxx#6 nsp=-1 mass=400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=64: oxxxxx#6 nsp=-1 mass=400 - 1.414213562373095e+01, 0.000000000000000e+00, // itest=64: oxxxxx#6 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=64: oxxxxx#6 nsp=-1 mass=400 - -2.828427124746190e+01, -0.000000000000000e+00 } ); // itest=64: oxxxxx#6 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -3.000000000000000e+02, // itest=65: oxxxxx#6 nsp=-1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=65: oxxxxx#6 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=65: oxxxxx#6 nsp=-1 mass=-400 - -1.414213562373095e+01, -0.000000000000000e+00, // itest=65: oxxxxx#6 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=65: oxxxxx#6 nsp=-1 mass=-400 - -2.828427124746190e+01, -0.000000000000000e+00 } ); // itest=65: oxxxxx#6 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -3.000000000000000e+02, // itest=66: ixxxxx#7 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=66: ixxxxx#7 nsp=-1 mass=400 - -2.828427124746190e+01, -0.000000000000000e+00, // itest=66: ixxxxx#7 nsp=-1 mass=400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=66: ixxxxx#7 nsp=-1 mass=400 - 1.414213562373095e+01, 0.000000000000000e+00, // itest=66: ixxxxx#7 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=66: ixxxxx#7 nsp=-1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -3.000000000000000e+02, // itest=67: ixxxxx#7 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=67: ixxxxx#7 nsp=-1 mass=-400 - -2.828427124746190e+01, -0.000000000000000e+00, // itest=67: ixxxxx#7 nsp=-1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=67: ixxxxx#7 nsp=-1 mass=-400 - -1.414213562373095e+01, -0.000000000000000e+00, // itest=67: ixxxxx#7 nsp=-1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=67: ixxxxx#7 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 3.000000000000000e+02, // itest=68: vxxxxx#7 nsp=-1 mass=400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=68: vxxxxx#7 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=68: vxxxxx#7 nsp=-1 mass=400 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=68: vxxxxx#7 nsp=-1 mass=400 - 0.000000000000000e+00, 7.071067811865476e-01, // itest=68: vxxxxx#7 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=68: vxxxxx#7 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 3.000000000000000e+02, // itest=69: vxxxxx#7 nsp=-1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=69: vxxxxx#7 nsp=-1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=69: vxxxxx#7 nsp=-1 mass=-400 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=69: vxxxxx#7 nsp=-1 mass=-400 - 0.000000000000000e+00, 7.071067811865476e-01, // itest=69: vxxxxx#7 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=69: vxxxxx#7 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 3.000000000000000e+02, // itest=70: sxxxxx#7 nsp=-1 mass=400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=70: sxxxxx#7 nsp=-1 mass=400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=70: sxxxxx#7 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=70: sxxxxx#7 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=70: sxxxxx#7 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=70: sxxxxx#7 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 3.000000000000000e+02, // itest=71: sxxxxx#7 nsp=-1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=71: sxxxxx#7 nsp=-1 mass=-400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=71: sxxxxx#7 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=71: sxxxxx#7 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=71: sxxxxx#7 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=71: sxxxxx#7 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 3.000000000000000e+02, // itest=72: oxxxxx#7 nsp=-1 mass=400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=72: oxxxxx#7 nsp=-1 mass=400 - 1.414213562373095e+01, 0.000000000000000e+00, // itest=72: oxxxxx#7 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=72: oxxxxx#7 nsp=-1 mass=400 - -2.828427124746190e+01, -0.000000000000000e+00, // itest=72: oxxxxx#7 nsp=-1 mass=400 - -0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=72: oxxxxx#7 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 3.000000000000000e+02, // itest=73: oxxxxx#7 nsp=-1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=73: oxxxxx#7 nsp=-1 mass=-400 - -1.414213562373095e+01, -0.000000000000000e+00, // itest=73: oxxxxx#7 nsp=-1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=73: oxxxxx#7 nsp=-1 mass=-400 - -2.828427124746190e+01, -0.000000000000000e+00, // itest=73: oxxxxx#7 nsp=-1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=73: oxxxxx#7 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=74: ixxxxx#8 nsp=-1 mass=400 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=74: ixxxxx#8 nsp=-1 mass=400 - 1.200000000000000e+01, -1.600000000000000e+01, // itest=74: ixxxxx#8 nsp=-1 mass=400 - -2.000000000000000e+01, -0.000000000000000e+00, // itest=74: ixxxxx#8 nsp=-1 mass=400 - -5.999999999999999e+00, 7.999999999999999e+00, // itest=74: ixxxxx#8 nsp=-1 mass=400 - 1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=74: ixxxxx#8 nsp=-1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=75: ixxxxx#8 nsp=-1 mass=-400 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=75: ixxxxx#8 nsp=-1 mass=-400 - 1.200000000000000e+01, -1.600000000000000e+01, // itest=75: ixxxxx#8 nsp=-1 mass=-400 - -2.000000000000000e+01, -0.000000000000000e+00, // itest=75: ixxxxx#8 nsp=-1 mass=-400 - 5.999999999999999e+00, -7.999999999999999e+00, // itest=75: ixxxxx#8 nsp=-1 mass=-400 - -1.000000000000000e+01, -0.000000000000000e+00 } ); // itest=75: ixxxxx#8 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=76: vxxxxx#8 nsp=-1 mass=400 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=76: vxxxxx#8 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=76: vxxxxx#8 nsp=-1 mass=400 - 0.000000000000000e+00, 5.656854249492381e-01, // itest=76: vxxxxx#8 nsp=-1 mass=400 - 0.000000000000000e+00, -4.242640687119285e-01, // itest=76: vxxxxx#8 nsp=-1 mass=400 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=76: vxxxxx#8 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=77: vxxxxx#8 nsp=-1 mass=-400 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=77: vxxxxx#8 nsp=-1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=77: vxxxxx#8 nsp=-1 mass=-400 - -0.000000000000000e+00, 5.656854249492381e-01, // itest=77: vxxxxx#8 nsp=-1 mass=-400 - -0.000000000000000e+00, -4.242640687119285e-01, // itest=77: vxxxxx#8 nsp=-1 mass=-400 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=77: vxxxxx#8 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=78: sxxxxx#8 nsp=-1 mass=400 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=78: sxxxxx#8 nsp=-1 mass=400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=78: sxxxxx#8 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=78: sxxxxx#8 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=78: sxxxxx#8 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=78: sxxxxx#8 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=79: sxxxxx#8 nsp=-1 mass=-400 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=79: sxxxxx#8 nsp=-1 mass=-400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=79: sxxxxx#8 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=79: sxxxxx#8 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=79: sxxxxx#8 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=79: sxxxxx#8 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=80: oxxxxx#8 nsp=-1 mass=400 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=80: oxxxxx#8 nsp=-1 mass=400 - -5.999999999999999e+00, -7.999999999999999e+00, // itest=80: oxxxxx#8 nsp=-1 mass=400 - 1.000000000000000e+01, 0.000000000000000e+00, // itest=80: oxxxxx#8 nsp=-1 mass=400 - 1.200000000000000e+01, 1.600000000000000e+01, // itest=80: oxxxxx#8 nsp=-1 mass=400 - -2.000000000000000e+01, -0.000000000000000e+00 } ); // itest=80: oxxxxx#8 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=81: oxxxxx#8 nsp=-1 mass=-400 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=81: oxxxxx#8 nsp=-1 mass=-400 - 5.999999999999999e+00, 7.999999999999999e+00, // itest=81: oxxxxx#8 nsp=-1 mass=-400 - -1.000000000000000e+01, -0.000000000000000e+00, // itest=81: oxxxxx#8 nsp=-1 mass=-400 - 1.200000000000000e+01, 1.600000000000000e+01, // itest=81: oxxxxx#8 nsp=-1 mass=-400 - -2.000000000000000e+01, -0.000000000000000e+00 } ); // itest=81: oxxxxx#8 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=82: ixxxxx#9 nsp=-1 mass=400 - -2.400000000000000e+02, -1.800000000000000e+02, // itest=82: ixxxxx#9 nsp=-1 mass=400 - -1.600000000000000e+01, 1.200000000000000e+01, // itest=82: ixxxxx#9 nsp=-1 mass=400 - -2.000000000000000e+01, -0.000000000000000e+00, // itest=82: ixxxxx#9 nsp=-1 mass=400 - 7.999999999999999e+00, -5.999999999999999e+00, // itest=82: ixxxxx#9 nsp=-1 mass=400 - 1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=82: ixxxxx#9 nsp=-1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=83: ixxxxx#9 nsp=-1 mass=-400 - -2.400000000000000e+02, -1.800000000000000e+02, // itest=83: ixxxxx#9 nsp=-1 mass=-400 - -1.600000000000000e+01, 1.200000000000000e+01, // itest=83: ixxxxx#9 nsp=-1 mass=-400 - -2.000000000000000e+01, -0.000000000000000e+00, // itest=83: ixxxxx#9 nsp=-1 mass=-400 - -7.999999999999999e+00, 5.999999999999999e+00, // itest=83: ixxxxx#9 nsp=-1 mass=-400 - -1.000000000000000e+01, -0.000000000000000e+00 } ); // itest=83: ixxxxx#9 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=84: vxxxxx#9 nsp=-1 mass=400 - 2.400000000000000e+02, 1.800000000000000e+02, // itest=84: vxxxxx#9 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=84: vxxxxx#9 nsp=-1 mass=400 - 0.000000000000000e+00, -4.242640687119285e-01, // itest=84: vxxxxx#9 nsp=-1 mass=400 - 0.000000000000000e+00, 5.656854249492381e-01, // itest=84: vxxxxx#9 nsp=-1 mass=400 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=84: vxxxxx#9 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=85: vxxxxx#9 nsp=-1 mass=-400 - 2.400000000000000e+02, 1.800000000000000e+02, // itest=85: vxxxxx#9 nsp=-1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=85: vxxxxx#9 nsp=-1 mass=-400 - 0.000000000000000e+00, -4.242640687119285e-01, // itest=85: vxxxxx#9 nsp=-1 mass=-400 - 0.000000000000000e+00, 5.656854249492381e-01, // itest=85: vxxxxx#9 nsp=-1 mass=-400 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=85: vxxxxx#9 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=86: sxxxxx#9 nsp=-1 mass=400 - 2.400000000000000e+02, 1.800000000000000e+02, // itest=86: sxxxxx#9 nsp=-1 mass=400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=86: sxxxxx#9 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=86: sxxxxx#9 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=86: sxxxxx#9 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=86: sxxxxx#9 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=87: sxxxxx#9 nsp=-1 mass=-400 - 2.400000000000000e+02, 1.800000000000000e+02, // itest=87: sxxxxx#9 nsp=-1 mass=-400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=87: sxxxxx#9 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=87: sxxxxx#9 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=87: sxxxxx#9 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=87: sxxxxx#9 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=88: oxxxxx#9 nsp=-1 mass=400 - 2.400000000000000e+02, 1.800000000000000e+02, // itest=88: oxxxxx#9 nsp=-1 mass=400 - 7.999999999999999e+00, 5.999999999999999e+00, // itest=88: oxxxxx#9 nsp=-1 mass=400 - 1.000000000000000e+01, 0.000000000000000e+00, // itest=88: oxxxxx#9 nsp=-1 mass=400 - -1.600000000000000e+01, -1.200000000000000e+01, // itest=88: oxxxxx#9 nsp=-1 mass=400 - -2.000000000000000e+01, -0.000000000000000e+00 } ); // itest=88: oxxxxx#9 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=89: oxxxxx#9 nsp=-1 mass=-400 - 2.400000000000000e+02, 1.800000000000000e+02, // itest=89: oxxxxx#9 nsp=-1 mass=-400 - -7.999999999999999e+00, -5.999999999999999e+00, // itest=89: oxxxxx#9 nsp=-1 mass=-400 - -1.000000000000000e+01, -0.000000000000000e+00, // itest=89: oxxxxx#9 nsp=-1 mass=-400 - -1.600000000000000e+01, -1.200000000000000e+01, // itest=89: oxxxxx#9 nsp=-1 mass=-400 - -2.000000000000000e+01, -0.000000000000000e+00 } ); // itest=89: oxxxxx#9 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 1.440000000000000e+02, // itest=90: ixxxxx#10 nsp=-1 mass=400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=90: ixxxxx#10 nsp=-1 mass=400 - 9.863939238321439e+00, -1.052153518754287e+01, // itest=90: ixxxxx#10 nsp=-1 mass=400 - -2.433105012119288e+01, -0.000000000000000e+00, // itest=90: ixxxxx#10 nsp=-1 mass=400 - -4.931969619160719e+00, 5.260767593771432e+00, // itest=90: ixxxxx#10 nsp=-1 mass=400 - 1.216552506059644e+01, 0.000000000000000e+00 } ); // itest=90: ixxxxx#10 nsp=-1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 1.440000000000000e+02, // itest=91: ixxxxx#10 nsp=-1 mass=-400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=91: ixxxxx#10 nsp=-1 mass=-400 - 9.863939238321439e+00, -1.052153518754287e+01, // itest=91: ixxxxx#10 nsp=-1 mass=-400 - -2.433105012119288e+01, -0.000000000000000e+00, // itest=91: ixxxxx#10 nsp=-1 mass=-400 - 4.931969619160719e+00, -5.260767593771432e+00, // itest=91: ixxxxx#10 nsp=-1 mass=-400 - -1.216552506059644e+01, -0.000000000000000e+00 } ); // itest=91: ixxxxx#10 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -1.440000000000000e+02, // itest=92: vxxxxx#10 nsp=-1 mass=400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=92: vxxxxx#10 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=92: vxxxxx#10 nsp=-1 mass=400 - -2.321373168788980e-01, 5.158607041753289e-01, // itest=92: vxxxxx#10 nsp=-1 mass=400 - -2.476131380041579e-01, -4.836194101643708e-01, // itest=92: vxxxxx#10 nsp=-1 mass=400 - 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=92: vxxxxx#10 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -1.440000000000000e+02, // itest=93: vxxxxx#10 nsp=-1 mass=-400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=93: vxxxxx#10 nsp=-1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=93: vxxxxx#10 nsp=-1 mass=-400 - -2.321373168788980e-01, 5.158607041753289e-01, // itest=93: vxxxxx#10 nsp=-1 mass=-400 - -2.476131380041579e-01, -4.836194101643708e-01, // itest=93: vxxxxx#10 nsp=-1 mass=-400 - 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=93: vxxxxx#10 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -1.440000000000000e+02, // itest=94: sxxxxx#10 nsp=-1 mass=400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=94: sxxxxx#10 nsp=-1 mass=400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=94: sxxxxx#10 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=94: sxxxxx#10 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=94: sxxxxx#10 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=94: sxxxxx#10 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -1.440000000000000e+02, // itest=95: sxxxxx#10 nsp=-1 mass=-400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=95: sxxxxx#10 nsp=-1 mass=-400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=95: sxxxxx#10 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=95: sxxxxx#10 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=95: sxxxxx#10 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=95: sxxxxx#10 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -1.440000000000000e+02, // itest=96: oxxxxx#10 nsp=-1 mass=400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=96: oxxxxx#10 nsp=-1 mass=400 - -4.931969619160719e+00, -5.260767593771432e+00, // itest=96: oxxxxx#10 nsp=-1 mass=400 - 1.216552506059644e+01, 0.000000000000000e+00, // itest=96: oxxxxx#10 nsp=-1 mass=400 - 9.863939238321439e+00, 1.052153518754287e+01, // itest=96: oxxxxx#10 nsp=-1 mass=400 - -2.433105012119288e+01, -0.000000000000000e+00 } ); // itest=96: oxxxxx#10 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -1.440000000000000e+02, // itest=97: oxxxxx#10 nsp=-1 mass=-400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=97: oxxxxx#10 nsp=-1 mass=-400 - 4.931969619160719e+00, 5.260767593771432e+00, // itest=97: oxxxxx#10 nsp=-1 mass=-400 - -1.216552506059644e+01, -0.000000000000000e+00, // itest=97: oxxxxx#10 nsp=-1 mass=-400 - 9.863939238321439e+00, 1.052153518754287e+01, // itest=97: oxxxxx#10 nsp=-1 mass=-400 - -2.433105012119288e+01, -0.000000000000000e+00 } ); // itest=97: oxxxxx#10 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -1.440000000000000e+02, // itest=98: ixxxxx#11 nsp=-1 mass=400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=98: ixxxxx#11 nsp=-1 mass=400 - 1.664100588675688e+01, -1.775040627920733e+01, // itest=98: ixxxxx#11 nsp=-1 mass=400 - -1.442220510185596e+01, -0.000000000000000e+00, // itest=98: ixxxxx#11 nsp=-1 mass=400 - -8.320502943378436e+00, 8.875203139603666e+00, // itest=98: ixxxxx#11 nsp=-1 mass=400 - 7.211102550927978e+00, 0.000000000000000e+00 } ); // itest=98: ixxxxx#11 nsp=-1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -1.440000000000000e+02, // itest=99: ixxxxx#11 nsp=-1 mass=-400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=99: ixxxxx#11 nsp=-1 mass=-400 - 1.664100588675688e+01, -1.775040627920733e+01, // itest=99: ixxxxx#11 nsp=-1 mass=-400 - -1.442220510185596e+01, -0.000000000000000e+00, // itest=99: ixxxxx#11 nsp=-1 mass=-400 - 8.320502943378436e+00, -8.875203139603666e+00, // itest=99: ixxxxx#11 nsp=-1 mass=-400 - -7.211102550927978e+00, -0.000000000000000e+00 } ); // itest=99: ixxxxx#11 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 1.440000000000000e+02, // itest=100: vxxxxx#11 nsp=-1 mass=400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=100: vxxxxx#11 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=100: vxxxxx#11 nsp=-1 mass=400 - 2.321373168788980e-01, 5.158607041753289e-01, // itest=100: vxxxxx#11 nsp=-1 mass=400 - 2.476131380041579e-01, -4.836194101643708e-01, // itest=100: vxxxxx#11 nsp=-1 mass=400 - 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=100: vxxxxx#11 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 1.440000000000000e+02, // itest=101: vxxxxx#11 nsp=-1 mass=-400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=101: vxxxxx#11 nsp=-1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=101: vxxxxx#11 nsp=-1 mass=-400 - 2.321373168788980e-01, 5.158607041753289e-01, // itest=101: vxxxxx#11 nsp=-1 mass=-400 - 2.476131380041579e-01, -4.836194101643708e-01, // itest=101: vxxxxx#11 nsp=-1 mass=-400 - 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=101: vxxxxx#11 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 1.440000000000000e+02, // itest=102: sxxxxx#11 nsp=-1 mass=400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=102: sxxxxx#11 nsp=-1 mass=400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=102: sxxxxx#11 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=102: sxxxxx#11 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=102: sxxxxx#11 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=102: sxxxxx#11 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 1.440000000000000e+02, // itest=103: sxxxxx#11 nsp=-1 mass=-400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=103: sxxxxx#11 nsp=-1 mass=-400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=103: sxxxxx#11 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=103: sxxxxx#11 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=103: sxxxxx#11 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=103: sxxxxx#11 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 1.440000000000000e+02, // itest=104: oxxxxx#11 nsp=-1 mass=400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=104: oxxxxx#11 nsp=-1 mass=400 - -8.320502943378436e+00, -8.875203139603666e+00, // itest=104: oxxxxx#11 nsp=-1 mass=400 - 7.211102550927978e+00, 0.000000000000000e+00, // itest=104: oxxxxx#11 nsp=-1 mass=400 - 1.664100588675688e+01, 1.775040627920733e+01, // itest=104: oxxxxx#11 nsp=-1 mass=400 - -1.442220510185596e+01, -0.000000000000000e+00 } ); // itest=104: oxxxxx#11 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 1.440000000000000e+02, // itest=105: oxxxxx#11 nsp=-1 mass=-400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=105: oxxxxx#11 nsp=-1 mass=-400 - 8.320502943378436e+00, 8.875203139603666e+00, // itest=105: oxxxxx#11 nsp=-1 mass=-400 - -7.211102550927978e+00, -0.000000000000000e+00, // itest=105: oxxxxx#11 nsp=-1 mass=-400 - 1.664100588675688e+01, 1.775040627920733e+01, // itest=105: oxxxxx#11 nsp=-1 mass=-400 - -1.442220510185596e+01, -0.000000000000000e+00 } ); // itest=105: oxxxxx#11 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=106: ixxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=106: ixxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=106: ixxxxx#12 nsp=-1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00, // itest=106: ixxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=106: ixxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=106: ixxxxx#12 nsp=-1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=107: ixxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=107: ixxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=107: ixxxxx#12 nsp=-1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00, // itest=107: ixxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=107: ixxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=107: ixxxxx#12 nsp=-1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=108: ipzxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=108: ipzxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=108: ipzxxx#12 nsp=-1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00, // itest=108: ipzxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=108: ipzxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=108: ipzxxx#12 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=109: vxxxxx#12 nsp=-1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=109: vxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=109: vxxxxx#12 nsp=-1 mass=0 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=109: vxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, -7.071067811865476e-01, // itest=109: vxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=109: vxxxxx#12 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=110: vxxxxx#12 nsp=-1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=110: vxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=110: vxxxxx#12 nsp=-1 mass=0 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=110: vxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, -7.071067811865476e-01, // itest=110: vxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=110: vxxxxx#12 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=111: sxxxxx#12 nsp=-1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=111: sxxxxx#12 nsp=-1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=111: sxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=111: sxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=111: sxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=111: sxxxxx#12 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=112: sxxxxx#12 nsp=-1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=112: sxxxxx#12 nsp=-1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=112: sxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=112: sxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=112: sxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=112: sxxxxx#12 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=113: oxxxxx#12 nsp=-1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=113: oxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=113: oxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=113: oxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=113: oxxxxx#12 nsp=-1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=113: oxxxxx#12 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=114: oxxxxx#12 nsp=-1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=114: oxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=114: oxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=114: oxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=114: oxxxxx#12 nsp=-1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=114: oxxxxx#12 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=115: opzxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=115: opzxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=115: opzxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=115: opzxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=115: opzxxx#12 nsp=-1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=115: opzxxx#12 nsp=-1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=116: ixxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=116: ixxxxx#13 nsp=-1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00, // itest=116: ixxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=116: ixxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=116: ixxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=116: ixxxxx#13 nsp=-1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=117: ixxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=117: ixxxxx#13 nsp=-1 mass=0 - -3.162277660168379e+01, -0.000000000000000e+00, // itest=117: ixxxxx#13 nsp=-1 mass=0 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=117: ixxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=117: ixxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=117: ixxxxx#13 nsp=-1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=118: imzxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=118: imzxxx#13 nsp=-1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00, // itest=118: imzxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=118: imzxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=118: imzxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=118: imzxxx#13 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=119: vxxxxx#13 nsp=-1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=119: vxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=119: vxxxxx#13 nsp=-1 mass=0 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=119: vxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 7.071067811865476e-01, // itest=119: vxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=119: vxxxxx#13 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=120: vxxxxx#13 nsp=-1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=120: vxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=120: vxxxxx#13 nsp=-1 mass=0 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=120: vxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 7.071067811865476e-01, // itest=120: vxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=120: vxxxxx#13 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=121: sxxxxx#13 nsp=-1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=121: sxxxxx#13 nsp=-1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=121: sxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=121: sxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=121: sxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=121: sxxxxx#13 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=122: sxxxxx#13 nsp=-1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=122: sxxxxx#13 nsp=-1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=122: sxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=122: sxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=122: sxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=122: sxxxxx#13 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=123: oxxxxx#13 nsp=-1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=123: oxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=123: oxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=123: oxxxxx#13 nsp=-1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00, // itest=123: oxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=123: oxxxxx#13 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=124: oxxxxx#13 nsp=-1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=124: oxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=124: oxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=124: oxxxxx#13 nsp=-1 mass=0 - -3.162277660168379e+01, -0.000000000000000e+00, // itest=124: oxxxxx#13 nsp=-1 mass=0 - -0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=124: oxxxxx#13 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=125: omzxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=125: omzxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=125: omzxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=125: omzxxx#13 nsp=-1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00, // itest=125: omzxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=125: omzxxx#13 nsp=-1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=126: ixxxxx#14 nsp=-1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=126: ixxxxx#14 nsp=-1 mass=0 - 1.341640786499874e+01, -1.788854381999832e+01, // itest=126: ixxxxx#14 nsp=-1 mass=0 - -2.236067977499790e+01, 0.000000000000000e+00, // itest=126: ixxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=126: ixxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=126: ixxxxx#14 nsp=-1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=127: ixxxxx#14 nsp=-1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=127: ixxxxx#14 nsp=-1 mass=0 - 1.341640786499874e+01, -1.788854381999832e+01, // itest=127: ixxxxx#14 nsp=-1 mass=0 - -2.236067977499790e+01, 0.000000000000000e+00, // itest=127: ixxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=127: ixxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=127: ixxxxx#14 nsp=-1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=128: ixzxxx#14 nsp=-1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=128: ixzxxx#14 nsp=-1 mass=0 - 1.341640786499874e+01, -1.788854381999832e+01, // itest=128: ixzxxx#14 nsp=-1 mass=0 - -2.236067977499790e+01, 0.000000000000000e+00, // itest=128: ixzxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=128: ixzxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=128: ixzxxx#14 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=129: vxxxxx#14 nsp=-1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=129: vxxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=129: vxxxxx#14 nsp=-1 mass=0 - -0.000000000000000e+00, 5.656854249492381e-01, // itest=129: vxxxxx#14 nsp=-1 mass=0 - -0.000000000000000e+00, -4.242640687119285e-01, // itest=129: vxxxxx#14 nsp=-1 mass=0 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=129: vxxxxx#14 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=130: vxxxxx#14 nsp=-1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=130: vxxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=130: vxxxxx#14 nsp=-1 mass=0 - -0.000000000000000e+00, 5.656854249492381e-01, // itest=130: vxxxxx#14 nsp=-1 mass=0 - -0.000000000000000e+00, -4.242640687119285e-01, // itest=130: vxxxxx#14 nsp=-1 mass=0 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=130: vxxxxx#14 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=131: sxxxxx#14 nsp=-1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=131: sxxxxx#14 nsp=-1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=131: sxxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=131: sxxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=131: sxxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=131: sxxxxx#14 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=132: sxxxxx#14 nsp=-1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=132: sxxxxx#14 nsp=-1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=132: sxxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=132: sxxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=132: sxxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=132: sxxxxx#14 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=133: oxxxxx#14 nsp=-1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=133: oxxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=133: oxxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=133: oxxxxx#14 nsp=-1 mass=0 - 1.341640786499874e+01, 1.788854381999832e+01, // itest=133: oxxxxx#14 nsp=-1 mass=0 - -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=133: oxxxxx#14 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=134: oxxxxx#14 nsp=-1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=134: oxxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=134: oxxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=134: oxxxxx#14 nsp=-1 mass=0 - 1.341640786499874e+01, 1.788854381999832e+01, // itest=134: oxxxxx#14 nsp=-1 mass=0 - -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=134: oxxxxx#14 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=135: oxzxxx#14 nsp=-1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=135: oxzxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=135: oxzxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=135: oxzxxx#14 nsp=-1 mass=0 - 1.341640786499874e+01, 1.788854381999832e+01, // itest=135: oxzxxx#14 nsp=-1 mass=0 - -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=135: oxzxxx#14 nsp=-1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=136: ixxxxx#15 nsp=-1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=136: ixxxxx#15 nsp=-1 mass=0 - 6.000000000000000e+00, -8.000000000000000e+00, // itest=136: ixxxxx#15 nsp=-1 mass=0 - -3.000000000000000e+01, 0.000000000000000e+00, // itest=136: ixxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=136: ixxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=136: ixxxxx#15 nsp=-1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=137: ixxxxx#15 nsp=-1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=137: ixxxxx#15 nsp=-1 mass=0 - 6.000000000000000e+00, -8.000000000000000e+00, // itest=137: ixxxxx#15 nsp=-1 mass=0 - -3.000000000000000e+01, 0.000000000000000e+00, // itest=137: ixxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=137: ixxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=137: ixxxxx#15 nsp=-1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=138: ixzxxx#15 nsp=-1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=138: ixzxxx#15 nsp=-1 mass=0 - 6.000000000000000e+00, -8.000000000000000e+00, // itest=138: ixzxxx#15 nsp=-1 mass=0 - -3.000000000000000e+01, 0.000000000000000e+00, // itest=138: ixzxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=138: ixzxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=138: ixzxxx#15 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=139: vxxxxx#15 nsp=-1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=139: vxxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=139: vxxxxx#15 nsp=-1 mass=0 - -3.394112549695428e-01, 5.656854249492381e-01, // itest=139: vxxxxx#15 nsp=-1 mass=0 - -4.525483399593904e-01, -4.242640687119285e-01, // itest=139: vxxxxx#15 nsp=-1 mass=0 - 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=139: vxxxxx#15 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=140: vxxxxx#15 nsp=-1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=140: vxxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=140: vxxxxx#15 nsp=-1 mass=0 - -3.394112549695428e-01, 5.656854249492381e-01, // itest=140: vxxxxx#15 nsp=-1 mass=0 - -4.525483399593904e-01, -4.242640687119285e-01, // itest=140: vxxxxx#15 nsp=-1 mass=0 - 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=140: vxxxxx#15 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=141: sxxxxx#15 nsp=-1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=141: sxxxxx#15 nsp=-1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=141: sxxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=141: sxxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=141: sxxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=141: sxxxxx#15 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=142: sxxxxx#15 nsp=-1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=142: sxxxxx#15 nsp=-1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=142: sxxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=142: sxxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=142: sxxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=142: sxxxxx#15 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=143: oxxxxx#15 nsp=-1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=143: oxxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=143: oxxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=143: oxxxxx#15 nsp=-1 mass=0 - 6.000000000000000e+00, 8.000000000000000e+00, // itest=143: oxxxxx#15 nsp=-1 mass=0 - -3.000000000000000e+01, 0.000000000000000e+00 } ); // itest=143: oxxxxx#15 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=144: oxxxxx#15 nsp=-1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=144: oxxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=144: oxxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=144: oxxxxx#15 nsp=-1 mass=0 - 6.000000000000000e+00, 8.000000000000000e+00, // itest=144: oxxxxx#15 nsp=-1 mass=0 - -3.000000000000000e+01, 0.000000000000000e+00 } ); // itest=144: oxxxxx#15 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=145: oxzxxx#15 nsp=-1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=145: oxzxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=145: oxzxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=145: oxzxxx#15 nsp=-1 mass=0 - 6.000000000000000e+00, 8.000000000000000e+00, // itest=145: oxzxxx#15 nsp=-1 mass=0 - -3.000000000000000e+01, 0.000000000000000e+00 } ); // itest=145: oxzxxx#15 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=146: ixxxxx#0 nsp=1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=146: ixxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=146: ixxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=146: ixxxxx#0 nsp=1 mass=0 - 3.162277660168379e+01, 0.000000000000000e+00, // itest=146: ixxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=146: ixxxxx#0 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=147: ixxxxx#0 nsp=1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=147: ixxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=147: ixxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=147: ixxxxx#0 nsp=1 mass=0 - 3.162277660168379e+01, 0.000000000000000e+00, // itest=147: ixxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=147: ixxxxx#0 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=148: ipzxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=148: ipzxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=148: ipzxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=148: ipzxxx#0 nsp=1 mass=0 - 3.162277660168379e+01, 0.000000000000000e+00, // itest=148: ipzxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=148: ipzxxx#0 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=149: vxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=149: vxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=149: vxxxxx#0 nsp=1 mass=0 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=149: vxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 7.071067811865476e-01, // itest=149: vxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=149: vxxxxx#0 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=150: vxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=150: vxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=150: vxxxxx#0 nsp=1 mass=0 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=150: vxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 7.071067811865476e-01, // itest=150: vxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=150: vxxxxx#0 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=151: sxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=151: sxxxxx#0 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=151: sxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=151: sxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=151: sxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=151: sxxxxx#0 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=152: sxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=152: sxxxxx#0 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=152: sxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=152: sxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=152: sxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=152: sxxxxx#0 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=153: oxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=153: oxxxxx#0 nsp=1 mass=0 - 3.162277660168379e+01, 0.000000000000000e+00, // itest=153: oxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=153: oxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=153: oxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=153: oxxxxx#0 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=154: oxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=154: oxxxxx#0 nsp=1 mass=0 - 3.162277660168379e+01, 0.000000000000000e+00, // itest=154: oxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=154: oxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=154: oxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=154: oxxxxx#0 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=155: opzxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=155: opzxxx#0 nsp=1 mass=0 - 3.162277660168379e+01, 0.000000000000000e+00, // itest=155: opzxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=155: opzxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=155: opzxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=155: opzxxx#0 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=156: ixxxxx#1 nsp=1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=156: ixxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=156: ixxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=156: ixxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=156: ixxxxx#1 nsp=1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=156: ixxxxx#1 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=157: ixxxxx#1 nsp=1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=157: ixxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=157: ixxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=157: ixxxxx#1 nsp=1 mass=0 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=157: ixxxxx#1 nsp=1 mass=0 - -3.162277660168379e+01, -0.000000000000000e+00 } ); // itest=157: ixxxxx#1 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=158: imzxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=158: imzxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=158: imzxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=158: imzxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=158: imzxxx#1 nsp=1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=158: imzxxx#1 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=159: vxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=159: vxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=159: vxxxxx#1 nsp=1 mass=0 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=159: vxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, -7.071067811865476e-01, // itest=159: vxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=159: vxxxxx#1 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=160: vxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=160: vxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=160: vxxxxx#1 nsp=1 mass=0 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=160: vxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, -7.071067811865476e-01, // itest=160: vxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=160: vxxxxx#1 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=161: sxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=161: sxxxxx#1 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=161: sxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=161: sxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=161: sxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=161: sxxxxx#1 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=162: sxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=162: sxxxxx#1 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=162: sxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=162: sxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=162: sxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=162: sxxxxx#1 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=163: oxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=163: oxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=163: oxxxxx#1 nsp=1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00, // itest=163: oxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=163: oxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=163: oxxxxx#1 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=164: oxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=164: oxxxxx#1 nsp=1 mass=0 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=164: oxxxxx#1 nsp=1 mass=0 - -3.162277660168379e+01, -0.000000000000000e+00, // itest=164: oxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=164: oxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=164: oxxxxx#1 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=165: omzxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=165: omzxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=165: omzxxx#1 nsp=1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00, // itest=165: omzxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=165: omzxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=165: omzxxx#1 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=166: ixxxxx#2 nsp=1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=166: ixxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=166: ixxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=166: ixxxxx#2 nsp=1 mass=0 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=166: ixxxxx#2 nsp=1 mass=0 - 1.341640786499874e+01, 1.788854381999832e+01 } ); // itest=166: ixxxxx#2 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=167: ixxxxx#2 nsp=1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=167: ixxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=167: ixxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=167: ixxxxx#2 nsp=1 mass=0 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=167: ixxxxx#2 nsp=1 mass=0 - 1.341640786499874e+01, 1.788854381999832e+01 } ); // itest=167: ixxxxx#2 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=168: ixzxxx#2 nsp=1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=168: ixzxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=168: ixzxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=168: ixzxxx#2 nsp=1 mass=0 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=168: ixzxxx#2 nsp=1 mass=0 - 1.341640786499874e+01, 1.788854381999832e+01 } ); // itest=168: ixzxxx#2 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=169: vxxxxx#2 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=169: vxxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=169: vxxxxx#2 nsp=1 mass=0 - -0.000000000000000e+00, -5.656854249492381e-01, // itest=169: vxxxxx#2 nsp=1 mass=0 - -0.000000000000000e+00, 4.242640687119285e-01, // itest=169: vxxxxx#2 nsp=1 mass=0 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=169: vxxxxx#2 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=170: vxxxxx#2 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=170: vxxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=170: vxxxxx#2 nsp=1 mass=0 - -0.000000000000000e+00, -5.656854249492381e-01, // itest=170: vxxxxx#2 nsp=1 mass=0 - -0.000000000000000e+00, 4.242640687119285e-01, // itest=170: vxxxxx#2 nsp=1 mass=0 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=170: vxxxxx#2 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=171: sxxxxx#2 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=171: sxxxxx#2 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=171: sxxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=171: sxxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=171: sxxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=171: sxxxxx#2 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=172: sxxxxx#2 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=172: sxxxxx#2 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=172: sxxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=172: sxxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=172: sxxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=172: sxxxxx#2 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=173: oxxxxx#2 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=173: oxxxxx#2 nsp=1 mass=0 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=173: oxxxxx#2 nsp=1 mass=0 - 1.341640786499874e+01, -1.788854381999832e+01, // itest=173: oxxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=173: oxxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=173: oxxxxx#2 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=174: oxxxxx#2 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=174: oxxxxx#2 nsp=1 mass=0 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=174: oxxxxx#2 nsp=1 mass=0 - 1.341640786499874e+01, -1.788854381999832e+01, // itest=174: oxxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=174: oxxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=174: oxxxxx#2 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=175: oxzxxx#2 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=175: oxzxxx#2 nsp=1 mass=0 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=175: oxzxxx#2 nsp=1 mass=0 - 1.341640786499874e+01, -1.788854381999832e+01, // itest=175: oxzxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=175: oxzxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=175: oxzxxx#2 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=176: ixxxxx#3 nsp=1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=176: ixxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=176: ixxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=176: ixxxxx#3 nsp=1 mass=0 - 3.000000000000000e+01, 0.000000000000000e+00, // itest=176: ixxxxx#3 nsp=1 mass=0 - 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=176: ixxxxx#3 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=177: ixxxxx#3 nsp=1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=177: ixxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=177: ixxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=177: ixxxxx#3 nsp=1 mass=0 - 3.000000000000000e+01, 0.000000000000000e+00, // itest=177: ixxxxx#3 nsp=1 mass=0 - 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=177: ixxxxx#3 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=178: ixzxxx#3 nsp=1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=178: ixzxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=178: ixzxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=178: ixzxxx#3 nsp=1 mass=0 - 3.000000000000000e+01, 0.000000000000000e+00, // itest=178: ixzxxx#3 nsp=1 mass=0 - 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=178: ixzxxx#3 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=179: vxxxxx#3 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=179: vxxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=179: vxxxxx#3 nsp=1 mass=0 - -3.394112549695428e-01, -5.656854249492381e-01, // itest=179: vxxxxx#3 nsp=1 mass=0 - -4.525483399593904e-01, 4.242640687119285e-01, // itest=179: vxxxxx#3 nsp=1 mass=0 - 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=179: vxxxxx#3 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=180: vxxxxx#3 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=180: vxxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=180: vxxxxx#3 nsp=1 mass=0 - -3.394112549695428e-01, -5.656854249492381e-01, // itest=180: vxxxxx#3 nsp=1 mass=0 - -4.525483399593904e-01, 4.242640687119285e-01, // itest=180: vxxxxx#3 nsp=1 mass=0 - 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=180: vxxxxx#3 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=181: sxxxxx#3 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=181: sxxxxx#3 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=181: sxxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=181: sxxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=181: sxxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=181: sxxxxx#3 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=182: sxxxxx#3 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=182: sxxxxx#3 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=182: sxxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=182: sxxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=182: sxxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=182: sxxxxx#3 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=183: oxxxxx#3 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=183: oxxxxx#3 nsp=1 mass=0 - 3.000000000000000e+01, 0.000000000000000e+00, // itest=183: oxxxxx#3 nsp=1 mass=0 - 6.000000000000000e+00, -8.000000000000000e+00, // itest=183: oxxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=183: oxxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=183: oxxxxx#3 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=184: oxxxxx#3 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=184: oxxxxx#3 nsp=1 mass=0 - 3.000000000000000e+01, 0.000000000000000e+00, // itest=184: oxxxxx#3 nsp=1 mass=0 - 6.000000000000000e+00, -8.000000000000000e+00, // itest=184: oxxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=184: oxxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=184: oxxxxx#3 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=185: oxzxxx#3 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=185: oxzxxx#3 nsp=1 mass=0 - 3.000000000000000e+01, 0.000000000000000e+00, // itest=185: oxzxxx#3 nsp=1 mass=0 - 6.000000000000000e+00, -8.000000000000000e+00, // itest=185: oxzxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=185: oxzxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=185: oxzxxx#3 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 4.000000000000000e+02, // itest=186: ixxxxx#4 nsp=1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=186: ixxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=186: ixxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=186: ixxxxx#4 nsp=1 mass=0 - 1.000000000000000e+01, 0.000000000000000e+00, // itest=186: ixxxxx#4 nsp=1 mass=0 - 1.800000000000000e+01, 2.400000000000000e+01 } ); // itest=186: ixxxxx#4 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 4.000000000000000e+02, // itest=187: ixxxxx#4 nsp=1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=187: ixxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=187: ixxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=187: ixxxxx#4 nsp=1 mass=0 - 1.000000000000000e+01, 0.000000000000000e+00, // itest=187: ixxxxx#4 nsp=1 mass=0 - 1.800000000000000e+01, 2.400000000000000e+01 } ); // itest=187: ixxxxx#4 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 4.000000000000000e+02, // itest=188: ixzxxx#4 nsp=1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=188: ixzxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=188: ixzxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=188: ixzxxx#4 nsp=1 mass=0 - 1.000000000000000e+01, 0.000000000000000e+00, // itest=188: ixzxxx#4 nsp=1 mass=0 - 1.800000000000000e+01, 2.400000000000000e+01 } ); // itest=188: ixzxxx#4 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -4.000000000000000e+02, // itest=189: vxxxxx#4 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=189: vxxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=189: vxxxxx#4 nsp=1 mass=0 - 3.394112549695428e-01, -5.656854249492381e-01, // itest=189: vxxxxx#4 nsp=1 mass=0 - 4.525483399593904e-01, 4.242640687119285e-01, // itest=189: vxxxxx#4 nsp=1 mass=0 - 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=189: vxxxxx#4 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -4.000000000000000e+02, // itest=190: vxxxxx#4 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=190: vxxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=190: vxxxxx#4 nsp=1 mass=0 - 3.394112549695428e-01, -5.656854249492381e-01, // itest=190: vxxxxx#4 nsp=1 mass=0 - 4.525483399593904e-01, 4.242640687119285e-01, // itest=190: vxxxxx#4 nsp=1 mass=0 - 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=190: vxxxxx#4 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -4.000000000000000e+02, // itest=191: sxxxxx#4 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=191: sxxxxx#4 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=191: sxxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=191: sxxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=191: sxxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=191: sxxxxx#4 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -4.000000000000000e+02, // itest=192: sxxxxx#4 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=192: sxxxxx#4 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=192: sxxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=192: sxxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=192: sxxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=192: sxxxxx#4 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -4.000000000000000e+02, // itest=193: oxxxxx#4 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=193: oxxxxx#4 nsp=1 mass=0 - 1.000000000000000e+01, 0.000000000000000e+00, // itest=193: oxxxxx#4 nsp=1 mass=0 - 1.800000000000000e+01, -2.400000000000000e+01, // itest=193: oxxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=193: oxxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=193: oxxxxx#4 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -4.000000000000000e+02, // itest=194: oxxxxx#4 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=194: oxxxxx#4 nsp=1 mass=0 - 1.000000000000000e+01, 0.000000000000000e+00, // itest=194: oxxxxx#4 nsp=1 mass=0 - 1.800000000000000e+01, -2.400000000000000e+01, // itest=194: oxxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=194: oxxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=194: oxxxxx#4 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -4.000000000000000e+02, // itest=195: oxzxxx#4 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=195: oxzxxx#4 nsp=1 mass=0 - 1.000000000000000e+01, 0.000000000000000e+00, // itest=195: oxzxxx#4 nsp=1 mass=0 - 1.800000000000000e+01, -2.400000000000000e+01, // itest=195: oxzxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=195: oxzxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=195: oxzxxx#4 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=196: ixxxxx#5 nsp=1 mass=500 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=196: ixxxxx#5 nsp=1 mass=500 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=196: ixxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=196: ixxxxx#5 nsp=1 mass=500 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=196: ixxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=196: ixxxxx#5 nsp=1 mass=500 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=197: ixxxxx#5 nsp=1 mass=-500 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=197: ixxxxx#5 nsp=1 mass=-500 - -2.236067977499790e+01, 0.000000000000000e+00, // itest=197: ixxxxx#5 nsp=1 mass=-500 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=197: ixxxxx#5 nsp=1 mass=-500 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=197: ixxxxx#5 nsp=1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=197: ixxxxx#5 nsp=1 mass=-500 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=198: vxxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=198: vxxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=198: vxxxxx#5 nsp=1 mass=500 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=198: vxxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 7.071067811865476e-01, // itest=198: vxxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=198: vxxxxx#5 nsp=1 mass=500 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=199: vxxxxx#5 nsp=1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=199: vxxxxx#5 nsp=1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=199: vxxxxx#5 nsp=1 mass=-500 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=199: vxxxxx#5 nsp=1 mass=-500 - 0.000000000000000e+00, 7.071067811865476e-01, // itest=199: vxxxxx#5 nsp=1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=199: vxxxxx#5 nsp=1 mass=-500 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=200: sxxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=200: sxxxxx#5 nsp=1 mass=500 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=200: sxxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=200: sxxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=200: sxxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=200: sxxxxx#5 nsp=1 mass=500 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=201: sxxxxx#5 nsp=1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=201: sxxxxx#5 nsp=1 mass=-500 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=201: sxxxxx#5 nsp=1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=201: sxxxxx#5 nsp=1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=201: sxxxxx#5 nsp=1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=201: sxxxxx#5 nsp=1 mass=-500 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=202: oxxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=202: oxxxxx#5 nsp=1 mass=500 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=202: oxxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=202: oxxxxx#5 nsp=1 mass=500 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=202: oxxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=202: oxxxxx#5 nsp=1 mass=500 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=203: oxxxxx#5 nsp=1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=203: oxxxxx#5 nsp=1 mass=-500 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=203: oxxxxx#5 nsp=1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=203: oxxxxx#5 nsp=1 mass=-500 - -2.236067977499790e+01, 0.000000000000000e+00, // itest=203: oxxxxx#5 nsp=1 mass=-500 - -0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=203: oxxxxx#5 nsp=1 mass=-500 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -3.000000000000000e+02, // itest=204: ixxxxx#6 nsp=1 mass=400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=204: ixxxxx#6 nsp=1 mass=400 - 1.414213562373095e+01, 0.000000000000000e+00, // itest=204: ixxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=204: ixxxxx#6 nsp=1 mass=400 - 2.828427124746190e+01, 0.000000000000000e+00, // itest=204: ixxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=204: ixxxxx#6 nsp=1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -3.000000000000000e+02, // itest=205: ixxxxx#6 nsp=1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=205: ixxxxx#6 nsp=1 mass=-400 - -1.414213562373095e+01, -0.000000000000000e+00, // itest=205: ixxxxx#6 nsp=1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=205: ixxxxx#6 nsp=1 mass=-400 - 2.828427124746190e+01, 0.000000000000000e+00, // itest=205: ixxxxx#6 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=205: ixxxxx#6 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 3.000000000000000e+02, // itest=206: vxxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=206: vxxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=206: vxxxxx#6 nsp=1 mass=400 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=206: vxxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, 7.071067811865476e-01, // itest=206: vxxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=206: vxxxxx#6 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 3.000000000000000e+02, // itest=207: vxxxxx#6 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=207: vxxxxx#6 nsp=1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=207: vxxxxx#6 nsp=1 mass=-400 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=207: vxxxxx#6 nsp=1 mass=-400 - 0.000000000000000e+00, 7.071067811865476e-01, // itest=207: vxxxxx#6 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=207: vxxxxx#6 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 3.000000000000000e+02, // itest=208: sxxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=208: sxxxxx#6 nsp=1 mass=400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=208: sxxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=208: sxxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=208: sxxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=208: sxxxxx#6 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 3.000000000000000e+02, // itest=209: sxxxxx#6 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=209: sxxxxx#6 nsp=1 mass=-400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=209: sxxxxx#6 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=209: sxxxxx#6 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=209: sxxxxx#6 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=209: sxxxxx#6 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 3.000000000000000e+02, // itest=210: oxxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=210: oxxxxx#6 nsp=1 mass=400 - 2.828427124746190e+01, 0.000000000000000e+00, // itest=210: oxxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=210: oxxxxx#6 nsp=1 mass=400 - 1.414213562373095e+01, 0.000000000000000e+00, // itest=210: oxxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=210: oxxxxx#6 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 3.000000000000000e+02, // itest=211: oxxxxx#6 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=211: oxxxxx#6 nsp=1 mass=-400 - 2.828427124746190e+01, 0.000000000000000e+00, // itest=211: oxxxxx#6 nsp=1 mass=-400 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=211: oxxxxx#6 nsp=1 mass=-400 - -1.414213562373095e+01, -0.000000000000000e+00, // itest=211: oxxxxx#6 nsp=1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=211: oxxxxx#6 nsp=1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 3.000000000000000e+02, // itest=212: ixxxxx#7 nsp=1 mass=400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=212: ixxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=212: ixxxxx#7 nsp=1 mass=400 - -1.414213562373095e+01, 0.000000000000000e+00, // itest=212: ixxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=212: ixxxxx#7 nsp=1 mass=400 - -2.828427124746190e+01, 0.000000000000000e+00 } ); // itest=212: ixxxxx#7 nsp=1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 3.000000000000000e+02, // itest=213: ixxxxx#7 nsp=1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=213: ixxxxx#7 nsp=1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=213: ixxxxx#7 nsp=1 mass=-400 - 1.414213562373095e+01, -0.000000000000000e+00, // itest=213: ixxxxx#7 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=213: ixxxxx#7 nsp=1 mass=-400 - -2.828427124746190e+01, 0.000000000000000e+00 } ); // itest=213: ixxxxx#7 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -3.000000000000000e+02, // itest=214: vxxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=214: vxxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=214: vxxxxx#7 nsp=1 mass=400 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=214: vxxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, -7.071067811865476e-01, // itest=214: vxxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=214: vxxxxx#7 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -3.000000000000000e+02, // itest=215: vxxxxx#7 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=215: vxxxxx#7 nsp=1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=215: vxxxxx#7 nsp=1 mass=-400 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=215: vxxxxx#7 nsp=1 mass=-400 - 0.000000000000000e+00, -7.071067811865476e-01, // itest=215: vxxxxx#7 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=215: vxxxxx#7 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -3.000000000000000e+02, // itest=216: sxxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=216: sxxxxx#7 nsp=1 mass=400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=216: sxxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=216: sxxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=216: sxxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=216: sxxxxx#7 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -3.000000000000000e+02, // itest=217: sxxxxx#7 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=217: sxxxxx#7 nsp=1 mass=-400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=217: sxxxxx#7 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=217: sxxxxx#7 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=217: sxxxxx#7 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=217: sxxxxx#7 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -3.000000000000000e+02, // itest=218: oxxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=218: oxxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=218: oxxxxx#7 nsp=1 mass=400 - -2.828427124746190e+01, 0.000000000000000e+00, // itest=218: oxxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=218: oxxxxx#7 nsp=1 mass=400 - -1.414213562373095e+01, 0.000000000000000e+00 } ); // itest=218: oxxxxx#7 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -3.000000000000000e+02, // itest=219: oxxxxx#7 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=219: oxxxxx#7 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=219: oxxxxx#7 nsp=1 mass=-400 - -2.828427124746190e+01, 0.000000000000000e+00, // itest=219: oxxxxx#7 nsp=1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=219: oxxxxx#7 nsp=1 mass=-400 - 1.414213562373095e+01, -0.000000000000000e+00 } ); // itest=219: oxxxxx#7 nsp=1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=220: ixxxxx#8 nsp=1 mass=400 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=220: ixxxxx#8 nsp=1 mass=400 - 1.000000000000000e+01, 0.000000000000000e+00, // itest=220: ixxxxx#8 nsp=1 mass=400 - 5.999999999999999e+00, 7.999999999999999e+00, // itest=220: ixxxxx#8 nsp=1 mass=400 - 2.000000000000000e+01, 0.000000000000000e+00, // itest=220: ixxxxx#8 nsp=1 mass=400 - 1.200000000000000e+01, 1.600000000000000e+01 } ); // itest=220: ixxxxx#8 nsp=1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=221: ixxxxx#8 nsp=1 mass=-400 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=221: ixxxxx#8 nsp=1 mass=-400 - -1.000000000000000e+01, -0.000000000000000e+00, // itest=221: ixxxxx#8 nsp=1 mass=-400 - -5.999999999999999e+00, -7.999999999999999e+00, // itest=221: ixxxxx#8 nsp=1 mass=-400 - 2.000000000000000e+01, 0.000000000000000e+00, // itest=221: ixxxxx#8 nsp=1 mass=-400 - 1.200000000000000e+01, 1.600000000000000e+01 } ); // itest=221: ixxxxx#8 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=222: vxxxxx#8 nsp=1 mass=400 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=222: vxxxxx#8 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=222: vxxxxx#8 nsp=1 mass=400 - 0.000000000000000e+00, -5.656854249492381e-01, // itest=222: vxxxxx#8 nsp=1 mass=400 - 0.000000000000000e+00, 4.242640687119285e-01, // itest=222: vxxxxx#8 nsp=1 mass=400 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=222: vxxxxx#8 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=223: vxxxxx#8 nsp=1 mass=-400 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=223: vxxxxx#8 nsp=1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=223: vxxxxx#8 nsp=1 mass=-400 - -0.000000000000000e+00, -5.656854249492381e-01, // itest=223: vxxxxx#8 nsp=1 mass=-400 - -0.000000000000000e+00, 4.242640687119285e-01, // itest=223: vxxxxx#8 nsp=1 mass=-400 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=223: vxxxxx#8 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=224: sxxxxx#8 nsp=1 mass=400 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=224: sxxxxx#8 nsp=1 mass=400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=224: sxxxxx#8 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=224: sxxxxx#8 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=224: sxxxxx#8 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=224: sxxxxx#8 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=225: sxxxxx#8 nsp=1 mass=-400 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=225: sxxxxx#8 nsp=1 mass=-400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=225: sxxxxx#8 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=225: sxxxxx#8 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=225: sxxxxx#8 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=225: sxxxxx#8 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=226: oxxxxx#8 nsp=1 mass=400 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=226: oxxxxx#8 nsp=1 mass=400 - 2.000000000000000e+01, 0.000000000000000e+00, // itest=226: oxxxxx#8 nsp=1 mass=400 - 1.200000000000000e+01, -1.600000000000000e+01, // itest=226: oxxxxx#8 nsp=1 mass=400 - 1.000000000000000e+01, 0.000000000000000e+00, // itest=226: oxxxxx#8 nsp=1 mass=400 - 5.999999999999999e+00, -7.999999999999999e+00 } ); // itest=226: oxxxxx#8 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=227: oxxxxx#8 nsp=1 mass=-400 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=227: oxxxxx#8 nsp=1 mass=-400 - 2.000000000000000e+01, 0.000000000000000e+00, // itest=227: oxxxxx#8 nsp=1 mass=-400 - 1.200000000000000e+01, -1.600000000000000e+01, // itest=227: oxxxxx#8 nsp=1 mass=-400 - -1.000000000000000e+01, -0.000000000000000e+00, // itest=227: oxxxxx#8 nsp=1 mass=-400 - -5.999999999999999e+00, 7.999999999999999e+00 } ); // itest=227: oxxxxx#8 nsp=1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=228: ixxxxx#9 nsp=1 mass=400 - 2.400000000000000e+02, 1.800000000000000e+02, // itest=228: ixxxxx#9 nsp=1 mass=400 - 1.000000000000000e+01, 0.000000000000000e+00, // itest=228: ixxxxx#9 nsp=1 mass=400 - -7.999999999999999e+00, -5.999999999999999e+00, // itest=228: ixxxxx#9 nsp=1 mass=400 - 2.000000000000000e+01, 0.000000000000000e+00, // itest=228: ixxxxx#9 nsp=1 mass=400 - -1.600000000000000e+01, -1.200000000000000e+01 } ); // itest=228: ixxxxx#9 nsp=1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=229: ixxxxx#9 nsp=1 mass=-400 - 2.400000000000000e+02, 1.800000000000000e+02, // itest=229: ixxxxx#9 nsp=1 mass=-400 - -1.000000000000000e+01, -0.000000000000000e+00, // itest=229: ixxxxx#9 nsp=1 mass=-400 - 7.999999999999999e+00, 5.999999999999999e+00, // itest=229: ixxxxx#9 nsp=1 mass=-400 - 2.000000000000000e+01, 0.000000000000000e+00, // itest=229: ixxxxx#9 nsp=1 mass=-400 - -1.600000000000000e+01, -1.200000000000000e+01 } ); // itest=229: ixxxxx#9 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=230: vxxxxx#9 nsp=1 mass=400 - -2.400000000000000e+02, -1.800000000000000e+02, // itest=230: vxxxxx#9 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=230: vxxxxx#9 nsp=1 mass=400 - 0.000000000000000e+00, 4.242640687119285e-01, // itest=230: vxxxxx#9 nsp=1 mass=400 - 0.000000000000000e+00, -5.656854249492381e-01, // itest=230: vxxxxx#9 nsp=1 mass=400 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=230: vxxxxx#9 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=231: vxxxxx#9 nsp=1 mass=-400 - -2.400000000000000e+02, -1.800000000000000e+02, // itest=231: vxxxxx#9 nsp=1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=231: vxxxxx#9 nsp=1 mass=-400 - 0.000000000000000e+00, 4.242640687119285e-01, // itest=231: vxxxxx#9 nsp=1 mass=-400 - 0.000000000000000e+00, -5.656854249492381e-01, // itest=231: vxxxxx#9 nsp=1 mass=-400 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=231: vxxxxx#9 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=232: sxxxxx#9 nsp=1 mass=400 - -2.400000000000000e+02, -1.800000000000000e+02, // itest=232: sxxxxx#9 nsp=1 mass=400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=232: sxxxxx#9 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=232: sxxxxx#9 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=232: sxxxxx#9 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=232: sxxxxx#9 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=233: sxxxxx#9 nsp=1 mass=-400 - -2.400000000000000e+02, -1.800000000000000e+02, // itest=233: sxxxxx#9 nsp=1 mass=-400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=233: sxxxxx#9 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=233: sxxxxx#9 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=233: sxxxxx#9 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=233: sxxxxx#9 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=234: oxxxxx#9 nsp=1 mass=400 - -2.400000000000000e+02, -1.800000000000000e+02, // itest=234: oxxxxx#9 nsp=1 mass=400 - 2.000000000000000e+01, 0.000000000000000e+00, // itest=234: oxxxxx#9 nsp=1 mass=400 - -1.600000000000000e+01, 1.200000000000000e+01, // itest=234: oxxxxx#9 nsp=1 mass=400 - 1.000000000000000e+01, 0.000000000000000e+00, // itest=234: oxxxxx#9 nsp=1 mass=400 - -7.999999999999999e+00, 5.999999999999999e+00 } ); // itest=234: oxxxxx#9 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=235: oxxxxx#9 nsp=1 mass=-400 - -2.400000000000000e+02, -1.800000000000000e+02, // itest=235: oxxxxx#9 nsp=1 mass=-400 - 2.000000000000000e+01, 0.000000000000000e+00, // itest=235: oxxxxx#9 nsp=1 mass=-400 - -1.600000000000000e+01, 1.200000000000000e+01, // itest=235: oxxxxx#9 nsp=1 mass=-400 - -1.000000000000000e+01, -0.000000000000000e+00, // itest=235: oxxxxx#9 nsp=1 mass=-400 - 7.999999999999999e+00, -5.999999999999999e+00 } ); // itest=235: oxxxxx#9 nsp=1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -1.440000000000000e+02, // itest=236: ixxxxx#10 nsp=1 mass=400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=236: ixxxxx#10 nsp=1 mass=400 - 1.216552506059644e+01, 0.000000000000000e+00, // itest=236: ixxxxx#10 nsp=1 mass=400 - 4.931969619160719e+00, 5.260767593771432e+00, // itest=236: ixxxxx#10 nsp=1 mass=400 - 2.433105012119288e+01, 0.000000000000000e+00, // itest=236: ixxxxx#10 nsp=1 mass=400 - 9.863939238321439e+00, 1.052153518754287e+01 } ); // itest=236: ixxxxx#10 nsp=1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -1.440000000000000e+02, // itest=237: ixxxxx#10 nsp=1 mass=-400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=237: ixxxxx#10 nsp=1 mass=-400 - -1.216552506059644e+01, -0.000000000000000e+00, // itest=237: ixxxxx#10 nsp=1 mass=-400 - -4.931969619160719e+00, -5.260767593771432e+00, // itest=237: ixxxxx#10 nsp=1 mass=-400 - 2.433105012119288e+01, 0.000000000000000e+00, // itest=237: ixxxxx#10 nsp=1 mass=-400 - 9.863939238321439e+00, 1.052153518754287e+01 } ); // itest=237: ixxxxx#10 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 1.440000000000000e+02, // itest=238: vxxxxx#10 nsp=1 mass=400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=238: vxxxxx#10 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=238: vxxxxx#10 nsp=1 mass=400 - -2.321373168788980e-01, -5.158607041753289e-01, // itest=238: vxxxxx#10 nsp=1 mass=400 - -2.476131380041579e-01, 4.836194101643708e-01, // itest=238: vxxxxx#10 nsp=1 mass=400 - 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=238: vxxxxx#10 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 1.440000000000000e+02, // itest=239: vxxxxx#10 nsp=1 mass=-400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=239: vxxxxx#10 nsp=1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=239: vxxxxx#10 nsp=1 mass=-400 - -2.321373168788980e-01, -5.158607041753289e-01, // itest=239: vxxxxx#10 nsp=1 mass=-400 - -2.476131380041579e-01, 4.836194101643708e-01, // itest=239: vxxxxx#10 nsp=1 mass=-400 - 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=239: vxxxxx#10 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 1.440000000000000e+02, // itest=240: sxxxxx#10 nsp=1 mass=400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=240: sxxxxx#10 nsp=1 mass=400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=240: sxxxxx#10 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=240: sxxxxx#10 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=240: sxxxxx#10 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=240: sxxxxx#10 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 1.440000000000000e+02, // itest=241: sxxxxx#10 nsp=1 mass=-400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=241: sxxxxx#10 nsp=1 mass=-400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=241: sxxxxx#10 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=241: sxxxxx#10 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=241: sxxxxx#10 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=241: sxxxxx#10 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 1.440000000000000e+02, // itest=242: oxxxxx#10 nsp=1 mass=400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=242: oxxxxx#10 nsp=1 mass=400 - 2.433105012119288e+01, 0.000000000000000e+00, // itest=242: oxxxxx#10 nsp=1 mass=400 - 9.863939238321439e+00, -1.052153518754287e+01, // itest=242: oxxxxx#10 nsp=1 mass=400 - 1.216552506059644e+01, 0.000000000000000e+00, // itest=242: oxxxxx#10 nsp=1 mass=400 - 4.931969619160719e+00, -5.260767593771432e+00 } ); // itest=242: oxxxxx#10 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 1.440000000000000e+02, // itest=243: oxxxxx#10 nsp=1 mass=-400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=243: oxxxxx#10 nsp=1 mass=-400 - 2.433105012119288e+01, 0.000000000000000e+00, // itest=243: oxxxxx#10 nsp=1 mass=-400 - 9.863939238321439e+00, -1.052153518754287e+01, // itest=243: oxxxxx#10 nsp=1 mass=-400 - -1.216552506059644e+01, -0.000000000000000e+00, // itest=243: oxxxxx#10 nsp=1 mass=-400 - -4.931969619160719e+00, 5.260767593771432e+00 } ); // itest=243: oxxxxx#10 nsp=1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 1.440000000000000e+02, // itest=244: ixxxxx#11 nsp=1 mass=400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=244: ixxxxx#11 nsp=1 mass=400 - 7.211102550927978e+00, 0.000000000000000e+00, // itest=244: ixxxxx#11 nsp=1 mass=400 - 8.320502943378436e+00, 8.875203139603666e+00, // itest=244: ixxxxx#11 nsp=1 mass=400 - 1.442220510185596e+01, 0.000000000000000e+00, // itest=244: ixxxxx#11 nsp=1 mass=400 - 1.664100588675688e+01, 1.775040627920733e+01 } ); // itest=244: ixxxxx#11 nsp=1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 1.440000000000000e+02, // itest=245: ixxxxx#11 nsp=1 mass=-400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=245: ixxxxx#11 nsp=1 mass=-400 - -7.211102550927978e+00, -0.000000000000000e+00, // itest=245: ixxxxx#11 nsp=1 mass=-400 - -8.320502943378436e+00, -8.875203139603666e+00, // itest=245: ixxxxx#11 nsp=1 mass=-400 - 1.442220510185596e+01, 0.000000000000000e+00, // itest=245: ixxxxx#11 nsp=1 mass=-400 - 1.664100588675688e+01, 1.775040627920733e+01 } ); // itest=245: ixxxxx#11 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -1.440000000000000e+02, // itest=246: vxxxxx#11 nsp=1 mass=400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=246: vxxxxx#11 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=246: vxxxxx#11 nsp=1 mass=400 - 2.321373168788980e-01, -5.158607041753289e-01, // itest=246: vxxxxx#11 nsp=1 mass=400 - 2.476131380041579e-01, 4.836194101643708e-01, // itest=246: vxxxxx#11 nsp=1 mass=400 - 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=246: vxxxxx#11 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -1.440000000000000e+02, // itest=247: vxxxxx#11 nsp=1 mass=-400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=247: vxxxxx#11 nsp=1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=247: vxxxxx#11 nsp=1 mass=-400 - 2.321373168788980e-01, -5.158607041753289e-01, // itest=247: vxxxxx#11 nsp=1 mass=-400 - 2.476131380041579e-01, 4.836194101643708e-01, // itest=247: vxxxxx#11 nsp=1 mass=-400 - 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=247: vxxxxx#11 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -1.440000000000000e+02, // itest=248: sxxxxx#11 nsp=1 mass=400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=248: sxxxxx#11 nsp=1 mass=400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=248: sxxxxx#11 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=248: sxxxxx#11 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=248: sxxxxx#11 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=248: sxxxxx#11 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -1.440000000000000e+02, // itest=249: sxxxxx#11 nsp=1 mass=-400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=249: sxxxxx#11 nsp=1 mass=-400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=249: sxxxxx#11 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=249: sxxxxx#11 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=249: sxxxxx#11 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=249: sxxxxx#11 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -1.440000000000000e+02, // itest=250: oxxxxx#11 nsp=1 mass=400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=250: oxxxxx#11 nsp=1 mass=400 - 1.442220510185596e+01, 0.000000000000000e+00, // itest=250: oxxxxx#11 nsp=1 mass=400 - 1.664100588675688e+01, -1.775040627920733e+01, // itest=250: oxxxxx#11 nsp=1 mass=400 - 7.211102550927978e+00, 0.000000000000000e+00, // itest=250: oxxxxx#11 nsp=1 mass=400 - 8.320502943378436e+00, -8.875203139603666e+00 } ); // itest=250: oxxxxx#11 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -1.440000000000000e+02, // itest=251: oxxxxx#11 nsp=1 mass=-400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=251: oxxxxx#11 nsp=1 mass=-400 - 1.442220510185596e+01, 0.000000000000000e+00, // itest=251: oxxxxx#11 nsp=1 mass=-400 - 1.664100588675688e+01, -1.775040627920733e+01, // itest=251: oxxxxx#11 nsp=1 mass=-400 - -7.211102550927978e+00, -0.000000000000000e+00, // itest=251: oxxxxx#11 nsp=1 mass=-400 - -8.320502943378436e+00, 8.875203139603666e+00 } ); // itest=251: oxxxxx#11 nsp=1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=252: ixxxxx#12 nsp=1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=252: ixxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=252: ixxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=252: ixxxxx#12 nsp=1 mass=0 - 3.162277660168379e+01, 0.000000000000000e+00, // itest=252: ixxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=252: ixxxxx#12 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=253: ixxxxx#12 nsp=1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=253: ixxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=253: ixxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=253: ixxxxx#12 nsp=1 mass=0 - 3.162277660168379e+01, 0.000000000000000e+00, // itest=253: ixxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=253: ixxxxx#12 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=254: ipzxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=254: ipzxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=254: ipzxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=254: ipzxxx#12 nsp=1 mass=0 - 3.162277660168379e+01, 0.000000000000000e+00, // itest=254: ipzxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=254: ipzxxx#12 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=255: vxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=255: vxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=255: vxxxxx#12 nsp=1 mass=0 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=255: vxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 7.071067811865476e-01, // itest=255: vxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=255: vxxxxx#12 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=256: vxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=256: vxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=256: vxxxxx#12 nsp=1 mass=0 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=256: vxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 7.071067811865476e-01, // itest=256: vxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=256: vxxxxx#12 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=257: sxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=257: sxxxxx#12 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=257: sxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=257: sxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=257: sxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=257: sxxxxx#12 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=258: sxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=258: sxxxxx#12 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=258: sxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=258: sxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=258: sxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=258: sxxxxx#12 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=259: oxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=259: oxxxxx#12 nsp=1 mass=0 - 3.162277660168379e+01, 0.000000000000000e+00, // itest=259: oxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=259: oxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=259: oxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=259: oxxxxx#12 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=260: oxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=260: oxxxxx#12 nsp=1 mass=0 - 3.162277660168379e+01, 0.000000000000000e+00, // itest=260: oxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=260: oxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=260: oxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=260: oxxxxx#12 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=261: opzxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=261: opzxxx#12 nsp=1 mass=0 - 3.162277660168379e+01, 0.000000000000000e+00, // itest=261: opzxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=261: opzxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=261: opzxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=261: opzxxx#12 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=262: ixxxxx#13 nsp=1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=262: ixxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=262: ixxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=262: ixxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=262: ixxxxx#13 nsp=1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=262: ixxxxx#13 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=263: ixxxxx#13 nsp=1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=263: ixxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=263: ixxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=263: ixxxxx#13 nsp=1 mass=0 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=263: ixxxxx#13 nsp=1 mass=0 - -3.162277660168379e+01, -0.000000000000000e+00 } ); // itest=263: ixxxxx#13 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=264: imzxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=264: imzxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=264: imzxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=264: imzxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=264: imzxxx#13 nsp=1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=264: imzxxx#13 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=265: vxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=265: vxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=265: vxxxxx#13 nsp=1 mass=0 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=265: vxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, -7.071067811865476e-01, // itest=265: vxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=265: vxxxxx#13 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=266: vxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=266: vxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=266: vxxxxx#13 nsp=1 mass=0 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=266: vxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, -7.071067811865476e-01, // itest=266: vxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=266: vxxxxx#13 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=267: sxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=267: sxxxxx#13 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=267: sxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=267: sxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=267: sxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=267: sxxxxx#13 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=268: sxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=268: sxxxxx#13 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=268: sxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=268: sxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=268: sxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=268: sxxxxx#13 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=269: oxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=269: oxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=269: oxxxxx#13 nsp=1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00, // itest=269: oxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=269: oxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=269: oxxxxx#13 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=270: oxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=270: oxxxxx#13 nsp=1 mass=0 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=270: oxxxxx#13 nsp=1 mass=0 - -3.162277660168379e+01, -0.000000000000000e+00, // itest=270: oxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=270: oxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=270: oxxxxx#13 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=271: omzxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=271: omzxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=271: omzxxx#13 nsp=1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00, // itest=271: omzxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=271: omzxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=271: omzxxx#13 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=272: ixxxxx#14 nsp=1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=272: ixxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=272: ixxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=272: ixxxxx#14 nsp=1 mass=0 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=272: ixxxxx#14 nsp=1 mass=0 - 1.341640786499874e+01, 1.788854381999832e+01 } ); // itest=272: ixxxxx#14 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=273: ixxxxx#14 nsp=1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=273: ixxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=273: ixxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=273: ixxxxx#14 nsp=1 mass=0 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=273: ixxxxx#14 nsp=1 mass=0 - 1.341640786499874e+01, 1.788854381999832e+01 } ); // itest=273: ixxxxx#14 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=274: ixzxxx#14 nsp=1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=274: ixzxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=274: ixzxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=274: ixzxxx#14 nsp=1 mass=0 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=274: ixzxxx#14 nsp=1 mass=0 - 1.341640786499874e+01, 1.788854381999832e+01 } ); // itest=274: ixzxxx#14 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=275: vxxxxx#14 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=275: vxxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=275: vxxxxx#14 nsp=1 mass=0 - -0.000000000000000e+00, -5.656854249492381e-01, // itest=275: vxxxxx#14 nsp=1 mass=0 - -0.000000000000000e+00, 4.242640687119285e-01, // itest=275: vxxxxx#14 nsp=1 mass=0 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=275: vxxxxx#14 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=276: vxxxxx#14 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=276: vxxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=276: vxxxxx#14 nsp=1 mass=0 - -0.000000000000000e+00, -5.656854249492381e-01, // itest=276: vxxxxx#14 nsp=1 mass=0 - -0.000000000000000e+00, 4.242640687119285e-01, // itest=276: vxxxxx#14 nsp=1 mass=0 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=276: vxxxxx#14 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=277: sxxxxx#14 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=277: sxxxxx#14 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=277: sxxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=277: sxxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=277: sxxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=277: sxxxxx#14 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=278: sxxxxx#14 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=278: sxxxxx#14 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=278: sxxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=278: sxxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=278: sxxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=278: sxxxxx#14 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=279: oxxxxx#14 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=279: oxxxxx#14 nsp=1 mass=0 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=279: oxxxxx#14 nsp=1 mass=0 - 1.341640786499874e+01, -1.788854381999832e+01, // itest=279: oxxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=279: oxxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=279: oxxxxx#14 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=280: oxxxxx#14 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=280: oxxxxx#14 nsp=1 mass=0 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=280: oxxxxx#14 nsp=1 mass=0 - 1.341640786499874e+01, -1.788854381999832e+01, // itest=280: oxxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=280: oxxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=280: oxxxxx#14 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=281: oxzxxx#14 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=281: oxzxxx#14 nsp=1 mass=0 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=281: oxzxxx#14 nsp=1 mass=0 - 1.341640786499874e+01, -1.788854381999832e+01, // itest=281: oxzxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=281: oxzxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=281: oxzxxx#14 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=282: ixxxxx#15 nsp=1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=282: ixxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=282: ixxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=282: ixxxxx#15 nsp=1 mass=0 - 3.000000000000000e+01, 0.000000000000000e+00, // itest=282: ixxxxx#15 nsp=1 mass=0 - 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=282: ixxxxx#15 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=283: ixxxxx#15 nsp=1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=283: ixxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=283: ixxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=283: ixxxxx#15 nsp=1 mass=0 - 3.000000000000000e+01, 0.000000000000000e+00, // itest=283: ixxxxx#15 nsp=1 mass=0 - 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=283: ixxxxx#15 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=284: ixzxxx#15 nsp=1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=284: ixzxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=284: ixzxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=284: ixzxxx#15 nsp=1 mass=0 - 3.000000000000000e+01, 0.000000000000000e+00, // itest=284: ixzxxx#15 nsp=1 mass=0 - 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=284: ixzxxx#15 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=285: vxxxxx#15 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=285: vxxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=285: vxxxxx#15 nsp=1 mass=0 - -3.394112549695428e-01, -5.656854249492381e-01, // itest=285: vxxxxx#15 nsp=1 mass=0 - -4.525483399593904e-01, 4.242640687119285e-01, // itest=285: vxxxxx#15 nsp=1 mass=0 - 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=285: vxxxxx#15 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=286: vxxxxx#15 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=286: vxxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=286: vxxxxx#15 nsp=1 mass=0 - -3.394112549695428e-01, -5.656854249492381e-01, // itest=286: vxxxxx#15 nsp=1 mass=0 - -4.525483399593904e-01, 4.242640687119285e-01, // itest=286: vxxxxx#15 nsp=1 mass=0 - 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=286: vxxxxx#15 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=287: sxxxxx#15 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=287: sxxxxx#15 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=287: sxxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=287: sxxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=287: sxxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=287: sxxxxx#15 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=288: sxxxxx#15 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=288: sxxxxx#15 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=288: sxxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=288: sxxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=288: sxxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=288: sxxxxx#15 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=289: oxxxxx#15 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=289: oxxxxx#15 nsp=1 mass=0 - 3.000000000000000e+01, 0.000000000000000e+00, // itest=289: oxxxxx#15 nsp=1 mass=0 - 6.000000000000000e+00, -8.000000000000000e+00, // itest=289: oxxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=289: oxxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=289: oxxxxx#15 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=290: oxxxxx#15 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=290: oxxxxx#15 nsp=1 mass=0 - 3.000000000000000e+01, 0.000000000000000e+00, // itest=290: oxxxxx#15 nsp=1 mass=0 - 6.000000000000000e+00, -8.000000000000000e+00, // itest=290: oxxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=290: oxxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=290: oxxxxx#15 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=291: oxzxxx#15 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=291: oxzxxx#15 nsp=1 mass=0 - 3.000000000000000e+01, 0.000000000000000e+00, // itest=291: oxzxxx#15 nsp=1 mass=0 - 6.000000000000000e+00, -8.000000000000000e+00, // itest=291: oxzxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=291: oxzxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=291: oxzxxx#15 nsp=1 mass=0 + 5.000000000000000e+02, 5.000000000000000e+02, // itest=50: ixxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=50: ixxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=50: ixxxxx#5 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=50: ixxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=50: ixxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=50: ixxxxx#5 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=51: ixxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=51: ixxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=51: ixxxxx#5 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=51: ixxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=51: ixxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=51: ixxxxx#5 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=52: ipzxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=52: ipzxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=52: ipzxxx#5 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=52: ipzxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=52: ipzxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=52: ipzxxx#5 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=53: vxxxxx#5 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=53: vxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=53: vxxxxx#5 nsp=-1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=53: vxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=53: vxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=53: vxxxxx#5 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=54: vxxxxx#5 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=54: vxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=54: vxxxxx#5 nsp=-1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=54: vxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=54: vxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=54: vxxxxx#5 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=55: sxxxxx#5 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=55: sxxxxx#5 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=55: sxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=55: sxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=55: sxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=55: sxxxxx#5 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=56: sxxxxx#5 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=56: sxxxxx#5 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=56: sxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=56: sxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=56: sxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=56: sxxxxx#5 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=57: oxxxxx#5 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=57: oxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=57: oxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=57: oxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=57: oxxxxx#5 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=57: oxxxxx#5 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=58: oxxxxx#5 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=58: oxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=58: oxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=58: oxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=58: oxxxxx#5 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=58: oxxxxx#5 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=59: opzxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=59: opzxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=59: opzxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=59: opzxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=59: opzxxx#5 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=59: opzxxx#5 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=60: ixxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=60: ixxxxx#6 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=60: ixxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=60: ixxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=60: ixxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=60: ixxxxx#6 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=61: ixxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=61: ixxxxx#6 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=61: ixxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=61: ixxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=61: ixxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=61: ixxxxx#6 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=62: imzxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=62: imzxxx#6 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=62: imzxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=62: imzxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=62: imzxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=62: imzxxx#6 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=63: vxxxxx#6 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=63: vxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=63: vxxxxx#6 nsp=-1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=63: vxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=63: vxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=63: vxxxxx#6 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=64: vxxxxx#6 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=64: vxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=64: vxxxxx#6 nsp=-1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=64: vxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=64: vxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=64: vxxxxx#6 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=65: sxxxxx#6 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=65: sxxxxx#6 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=65: sxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=65: sxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=65: sxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=65: sxxxxx#6 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=66: sxxxxx#6 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=66: sxxxxx#6 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=66: sxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=66: sxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=66: sxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=66: sxxxxx#6 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=67: oxxxxx#6 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=67: oxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=67: oxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=67: oxxxxx#6 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=67: oxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=67: oxxxxx#6 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=68: oxxxxx#6 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=68: oxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=68: oxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=68: oxxxxx#6 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=68: oxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=68: oxxxxx#6 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=69: omzxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=69: omzxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=69: omzxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=69: omzxxx#6 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=69: omzxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=69: omzxxx#6 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=70: ixxxxx#7 nsp=-1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=70: ixxxxx#7 nsp=-1 mass=0 + 1.341640786499874e+01, -1.788854381999831e+01, // itest=70: ixxxxx#7 nsp=-1 mass=0 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=70: ixxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=70: ixxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=70: ixxxxx#7 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=71: ixxxxx#7 nsp=-1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=71: ixxxxx#7 nsp=-1 mass=0 + 1.341640786499874e+01, -1.788854381999831e+01, // itest=71: ixxxxx#7 nsp=-1 mass=0 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=71: ixxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=71: ixxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=71: ixxxxx#7 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=72: ixzxxx#7 nsp=-1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=72: ixzxxx#7 nsp=-1 mass=0 + 1.341640786499874e+01, -1.788854381999832e+01, // itest=72: ixzxxx#7 nsp=-1 mass=0 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=72: ixzxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=72: ixzxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=72: ixzxxx#7 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=73: vxxxxx#7 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=73: vxxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=73: vxxxxx#7 nsp=-1 mass=0 + -0.000000000000000e+00, 5.656854249492381e-01, // itest=73: vxxxxx#7 nsp=-1 mass=0 + -0.000000000000000e+00, -4.242640687119285e-01, // itest=73: vxxxxx#7 nsp=-1 mass=0 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=73: vxxxxx#7 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=74: vxxxxx#7 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=74: vxxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=74: vxxxxx#7 nsp=-1 mass=0 + -0.000000000000000e+00, 5.656854249492381e-01, // itest=74: vxxxxx#7 nsp=-1 mass=0 + -0.000000000000000e+00, -4.242640687119285e-01, // itest=74: vxxxxx#7 nsp=-1 mass=0 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=74: vxxxxx#7 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=75: sxxxxx#7 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=75: sxxxxx#7 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=75: sxxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=75: sxxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=75: sxxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=75: sxxxxx#7 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=76: sxxxxx#7 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=76: sxxxxx#7 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=76: sxxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=76: sxxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=76: sxxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=76: sxxxxx#7 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=77: oxxxxx#7 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=77: oxxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=77: oxxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=77: oxxxxx#7 nsp=-1 mass=0 + 1.341640786499874e+01, 1.788854381999831e+01, // itest=77: oxxxxx#7 nsp=-1 mass=0 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=77: oxxxxx#7 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=78: oxxxxx#7 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=78: oxxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=78: oxxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=78: oxxxxx#7 nsp=-1 mass=0 + 1.341640786499874e+01, 1.788854381999831e+01, // itest=78: oxxxxx#7 nsp=-1 mass=0 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=78: oxxxxx#7 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=79: oxzxxx#7 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=79: oxzxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=79: oxzxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=79: oxzxxx#7 nsp=-1 mass=0 + 1.341640786499874e+01, 1.788854381999832e+01, // itest=79: oxzxxx#7 nsp=-1 mass=0 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=79: oxzxxx#7 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=80: ixxxxx#8 nsp=-1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=80: ixxxxx#8 nsp=-1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=80: ixxxxx#8 nsp=-1 mass=0 + -3.000000000000000e+01, 0.000000000000000e+00, // itest=80: ixxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=80: ixxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=80: ixxxxx#8 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=81: ixxxxx#8 nsp=-1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=81: ixxxxx#8 nsp=-1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=81: ixxxxx#8 nsp=-1 mass=0 + -3.000000000000000e+01, 0.000000000000000e+00, // itest=81: ixxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=81: ixxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=81: ixxxxx#8 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=82: ixzxxx#8 nsp=-1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=82: ixzxxx#8 nsp=-1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=82: ixzxxx#8 nsp=-1 mass=0 + -3.000000000000000e+01, 0.000000000000000e+00, // itest=82: ixzxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=82: ixzxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=82: ixzxxx#8 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=83: vxxxxx#8 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=83: vxxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=83: vxxxxx#8 nsp=-1 mass=0 + -3.394112549695428e-01, 5.656854249492381e-01, // itest=83: vxxxxx#8 nsp=-1 mass=0 + -4.525483399593904e-01, -4.242640687119285e-01, // itest=83: vxxxxx#8 nsp=-1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=83: vxxxxx#8 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=84: vxxxxx#8 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=84: vxxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=84: vxxxxx#8 nsp=-1 mass=0 + -3.394112549695428e-01, 5.656854249492381e-01, // itest=84: vxxxxx#8 nsp=-1 mass=0 + -4.525483399593904e-01, -4.242640687119285e-01, // itest=84: vxxxxx#8 nsp=-1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=84: vxxxxx#8 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=85: sxxxxx#8 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=85: sxxxxx#8 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=85: sxxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=85: sxxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=85: sxxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=85: sxxxxx#8 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=86: sxxxxx#8 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=86: sxxxxx#8 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=86: sxxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=86: sxxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=86: sxxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=86: sxxxxx#8 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=87: oxxxxx#8 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=87: oxxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=87: oxxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=87: oxxxxx#8 nsp=-1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00, // itest=87: oxxxxx#8 nsp=-1 mass=0 + -3.000000000000000e+01, 0.000000000000000e+00 } ); // itest=87: oxxxxx#8 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=88: oxxxxx#8 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=88: oxxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=88: oxxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=88: oxxxxx#8 nsp=-1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00, // itest=88: oxxxxx#8 nsp=-1 mass=0 + -3.000000000000000e+01, 0.000000000000000e+00 } ); // itest=88: oxxxxx#8 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=89: oxzxxx#8 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=89: oxzxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=89: oxzxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=89: oxzxxx#8 nsp=-1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00, // itest=89: oxzxxx#8 nsp=-1 mass=0 + -3.000000000000000e+01, 0.000000000000000e+00 } ); // itest=89: oxzxxx#8 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=90: ixxxxx#9 nsp=-1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=90: ixxxxx#9 nsp=-1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=90: ixxxxx#9 nsp=-1 mass=0 + -1.000000000000000e+01, 0.000000000000000e+00, // itest=90: ixxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=90: ixxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=90: ixxxxx#9 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=91: ixxxxx#9 nsp=-1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=91: ixxxxx#9 nsp=-1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=91: ixxxxx#9 nsp=-1 mass=0 + -1.000000000000000e+01, 0.000000000000000e+00, // itest=91: ixxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=91: ixxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=91: ixxxxx#9 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=92: ixzxxx#9 nsp=-1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=92: ixzxxx#9 nsp=-1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=92: ixzxxx#9 nsp=-1 mass=0 + -1.000000000000000e+01, 0.000000000000000e+00, // itest=92: ixzxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=92: ixzxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=92: ixzxxx#9 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=93: vxxxxx#9 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=93: vxxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=93: vxxxxx#9 nsp=-1 mass=0 + 3.394112549695428e-01, 5.656854249492381e-01, // itest=93: vxxxxx#9 nsp=-1 mass=0 + 4.525483399593904e-01, -4.242640687119285e-01, // itest=93: vxxxxx#9 nsp=-1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=93: vxxxxx#9 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=94: vxxxxx#9 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=94: vxxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=94: vxxxxx#9 nsp=-1 mass=0 + 3.394112549695428e-01, 5.656854249492381e-01, // itest=94: vxxxxx#9 nsp=-1 mass=0 + 4.525483399593904e-01, -4.242640687119285e-01, // itest=94: vxxxxx#9 nsp=-1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=94: vxxxxx#9 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=95: sxxxxx#9 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=95: sxxxxx#9 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=95: sxxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=95: sxxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=95: sxxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=95: sxxxxx#9 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=96: sxxxxx#9 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=96: sxxxxx#9 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=96: sxxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=96: sxxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=96: sxxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=96: sxxxxx#9 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=97: oxxxxx#9 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=97: oxxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=97: oxxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=97: oxxxxx#9 nsp=-1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01, // itest=97: oxxxxx#9 nsp=-1 mass=0 + -1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=97: oxxxxx#9 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=98: oxxxxx#9 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=98: oxxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=98: oxxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=98: oxxxxx#9 nsp=-1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01, // itest=98: oxxxxx#9 nsp=-1 mass=0 + -1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=98: oxxxxx#9 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=99: oxzxxx#9 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=99: oxzxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=99: oxzxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=99: oxzxxx#9 nsp=-1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01, // itest=99: oxzxxx#9 nsp=-1 mass=0 + -1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=99: oxzxxx#9 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=100: ixxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=100: ixxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=100: ixxxxx#10 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=100: ixxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=100: ixxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=100: ixxxxx#10 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=101: ixxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=101: ixxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=101: ixxxxx#10 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=101: ixxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=101: ixxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=101: ixxxxx#10 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=102: ipzxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=102: ipzxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=102: ipzxxx#10 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=102: ipzxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=102: ipzxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=102: ipzxxx#10 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=103: vxxxxx#10 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=103: vxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=103: vxxxxx#10 nsp=-1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=103: vxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=103: vxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=103: vxxxxx#10 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=104: vxxxxx#10 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=104: vxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=104: vxxxxx#10 nsp=-1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=104: vxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=104: vxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=104: vxxxxx#10 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=105: sxxxxx#10 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=105: sxxxxx#10 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=105: sxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=105: sxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=105: sxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=105: sxxxxx#10 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=106: sxxxxx#10 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=106: sxxxxx#10 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=106: sxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=106: sxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=106: sxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=106: sxxxxx#10 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=107: oxxxxx#10 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=107: oxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=107: oxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=107: oxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=107: oxxxxx#10 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=107: oxxxxx#10 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=108: oxxxxx#10 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=108: oxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=108: oxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=108: oxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=108: oxxxxx#10 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=108: oxxxxx#10 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=109: opzxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=109: opzxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=109: opzxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=109: opzxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=109: opzxxx#10 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=109: opzxxx#10 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=110: ixxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=110: ixxxxx#11 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=110: ixxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=110: ixxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=110: ixxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=110: ixxxxx#11 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=111: ixxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=111: ixxxxx#11 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=111: ixxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=111: ixxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=111: ixxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=111: ixxxxx#11 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=112: imzxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=112: imzxxx#11 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=112: imzxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=112: imzxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=112: imzxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=112: imzxxx#11 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=113: vxxxxx#11 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=113: vxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=113: vxxxxx#11 nsp=-1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=113: vxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=113: vxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=113: vxxxxx#11 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=114: vxxxxx#11 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=114: vxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=114: vxxxxx#11 nsp=-1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=114: vxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=114: vxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=114: vxxxxx#11 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=115: sxxxxx#11 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=115: sxxxxx#11 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=115: sxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=115: sxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=115: sxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=115: sxxxxx#11 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=116: sxxxxx#11 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=116: sxxxxx#11 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=116: sxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=116: sxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=116: sxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=116: sxxxxx#11 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=117: oxxxxx#11 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=117: oxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=117: oxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=117: oxxxxx#11 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=117: oxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=117: oxxxxx#11 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=118: oxxxxx#11 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=118: oxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=118: oxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=118: oxxxxx#11 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=118: oxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=118: oxxxxx#11 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=119: omzxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=119: omzxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=119: omzxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=119: omzxxx#11 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=119: omzxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=119: omzxxx#11 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=120: ixxxxx#12 nsp=-1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=120: ixxxxx#12 nsp=-1 mass=0 + 1.341640786499874e+01, -1.788854381999831e+01, // itest=120: ixxxxx#12 nsp=-1 mass=0 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=120: ixxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=120: ixxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=120: ixxxxx#12 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=121: ixxxxx#12 nsp=-1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=121: ixxxxx#12 nsp=-1 mass=0 + 1.341640786499874e+01, -1.788854381999831e+01, // itest=121: ixxxxx#12 nsp=-1 mass=0 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=121: ixxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=121: ixxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=121: ixxxxx#12 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=122: ixzxxx#12 nsp=-1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=122: ixzxxx#12 nsp=-1 mass=0 + 1.341640786499874e+01, -1.788854381999832e+01, // itest=122: ixzxxx#12 nsp=-1 mass=0 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=122: ixzxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=122: ixzxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=122: ixzxxx#12 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=123: vxxxxx#12 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=123: vxxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=123: vxxxxx#12 nsp=-1 mass=0 + -0.000000000000000e+00, 5.656854249492381e-01, // itest=123: vxxxxx#12 nsp=-1 mass=0 + -0.000000000000000e+00, -4.242640687119285e-01, // itest=123: vxxxxx#12 nsp=-1 mass=0 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=123: vxxxxx#12 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=124: vxxxxx#12 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=124: vxxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=124: vxxxxx#12 nsp=-1 mass=0 + -0.000000000000000e+00, 5.656854249492381e-01, // itest=124: vxxxxx#12 nsp=-1 mass=0 + -0.000000000000000e+00, -4.242640687119285e-01, // itest=124: vxxxxx#12 nsp=-1 mass=0 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=124: vxxxxx#12 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=125: sxxxxx#12 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=125: sxxxxx#12 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=125: sxxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=125: sxxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=125: sxxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=125: sxxxxx#12 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=126: sxxxxx#12 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=126: sxxxxx#12 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=126: sxxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=126: sxxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=126: sxxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=126: sxxxxx#12 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=127: oxxxxx#12 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=127: oxxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=127: oxxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=127: oxxxxx#12 nsp=-1 mass=0 + 1.341640786499874e+01, 1.788854381999831e+01, // itest=127: oxxxxx#12 nsp=-1 mass=0 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=127: oxxxxx#12 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=128: oxxxxx#12 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=128: oxxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=128: oxxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=128: oxxxxx#12 nsp=-1 mass=0 + 1.341640786499874e+01, 1.788854381999831e+01, // itest=128: oxxxxx#12 nsp=-1 mass=0 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=128: oxxxxx#12 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=129: oxzxxx#12 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=129: oxzxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=129: oxzxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=129: oxzxxx#12 nsp=-1 mass=0 + 1.341640786499874e+01, 1.788854381999832e+01, // itest=129: oxzxxx#12 nsp=-1 mass=0 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=129: oxzxxx#12 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=130: ixxxxx#13 nsp=-1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=130: ixxxxx#13 nsp=-1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=130: ixxxxx#13 nsp=-1 mass=0 + -3.000000000000000e+01, 0.000000000000000e+00, // itest=130: ixxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=130: ixxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=130: ixxxxx#13 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=131: ixxxxx#13 nsp=-1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=131: ixxxxx#13 nsp=-1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=131: ixxxxx#13 nsp=-1 mass=0 + -3.000000000000000e+01, 0.000000000000000e+00, // itest=131: ixxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=131: ixxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=131: ixxxxx#13 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=132: ixzxxx#13 nsp=-1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=132: ixzxxx#13 nsp=-1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=132: ixzxxx#13 nsp=-1 mass=0 + -3.000000000000000e+01, 0.000000000000000e+00, // itest=132: ixzxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=132: ixzxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=132: ixzxxx#13 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=133: vxxxxx#13 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=133: vxxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=133: vxxxxx#13 nsp=-1 mass=0 + -3.394112549695428e-01, 5.656854249492381e-01, // itest=133: vxxxxx#13 nsp=-1 mass=0 + -4.525483399593904e-01, -4.242640687119285e-01, // itest=133: vxxxxx#13 nsp=-1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=133: vxxxxx#13 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=134: vxxxxx#13 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=134: vxxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=134: vxxxxx#13 nsp=-1 mass=0 + -3.394112549695428e-01, 5.656854249492381e-01, // itest=134: vxxxxx#13 nsp=-1 mass=0 + -4.525483399593904e-01, -4.242640687119285e-01, // itest=134: vxxxxx#13 nsp=-1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=134: vxxxxx#13 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=135: sxxxxx#13 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=135: sxxxxx#13 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=135: sxxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=135: sxxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=135: sxxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=135: sxxxxx#13 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=136: sxxxxx#13 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=136: sxxxxx#13 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=136: sxxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=136: sxxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=136: sxxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=136: sxxxxx#13 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=137: oxxxxx#13 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=137: oxxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=137: oxxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=137: oxxxxx#13 nsp=-1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00, // itest=137: oxxxxx#13 nsp=-1 mass=0 + -3.000000000000000e+01, 0.000000000000000e+00 } ); // itest=137: oxxxxx#13 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=138: oxxxxx#13 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=138: oxxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=138: oxxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=138: oxxxxx#13 nsp=-1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00, // itest=138: oxxxxx#13 nsp=-1 mass=0 + -3.000000000000000e+01, 0.000000000000000e+00 } ); // itest=138: oxxxxx#13 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=139: oxzxxx#13 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=139: oxzxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=139: oxzxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=139: oxzxxx#13 nsp=-1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00, // itest=139: oxzxxx#13 nsp=-1 mass=0 + -3.000000000000000e+01, 0.000000000000000e+00 } ); // itest=139: oxzxxx#13 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=140: ixxxxx#14 nsp=-1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=140: ixxxxx#14 nsp=-1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=140: ixxxxx#14 nsp=-1 mass=0 + -1.000000000000000e+01, 0.000000000000000e+00, // itest=140: ixxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=140: ixxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=140: ixxxxx#14 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=141: ixxxxx#14 nsp=-1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=141: ixxxxx#14 nsp=-1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=141: ixxxxx#14 nsp=-1 mass=0 + -1.000000000000000e+01, 0.000000000000000e+00, // itest=141: ixxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=141: ixxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=141: ixxxxx#14 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=142: ixzxxx#14 nsp=-1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=142: ixzxxx#14 nsp=-1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=142: ixzxxx#14 nsp=-1 mass=0 + -1.000000000000000e+01, 0.000000000000000e+00, // itest=142: ixzxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=142: ixzxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=142: ixzxxx#14 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=143: vxxxxx#14 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=143: vxxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=143: vxxxxx#14 nsp=-1 mass=0 + 3.394112549695428e-01, 5.656854249492381e-01, // itest=143: vxxxxx#14 nsp=-1 mass=0 + 4.525483399593904e-01, -4.242640687119285e-01, // itest=143: vxxxxx#14 nsp=-1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=143: vxxxxx#14 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=144: vxxxxx#14 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=144: vxxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=144: vxxxxx#14 nsp=-1 mass=0 + 3.394112549695428e-01, 5.656854249492381e-01, // itest=144: vxxxxx#14 nsp=-1 mass=0 + 4.525483399593904e-01, -4.242640687119285e-01, // itest=144: vxxxxx#14 nsp=-1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=144: vxxxxx#14 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=145: sxxxxx#14 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=145: sxxxxx#14 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=145: sxxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=145: sxxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=145: sxxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=145: sxxxxx#14 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=146: sxxxxx#14 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=146: sxxxxx#14 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=146: sxxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=146: sxxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=146: sxxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=146: sxxxxx#14 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=147: oxxxxx#14 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=147: oxxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=147: oxxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=147: oxxxxx#14 nsp=-1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01, // itest=147: oxxxxx#14 nsp=-1 mass=0 + -1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=147: oxxxxx#14 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=148: oxxxxx#14 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=148: oxxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=148: oxxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=148: oxxxxx#14 nsp=-1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01, // itest=148: oxxxxx#14 nsp=-1 mass=0 + -1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=148: oxxxxx#14 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=149: oxzxxx#14 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=149: oxzxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=149: oxzxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=149: oxzxxx#14 nsp=-1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01, // itest=149: oxzxxx#14 nsp=-1 mass=0 + -1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=149: oxzxxx#14 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=150: ixxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=150: ixxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=150: ixxxxx#15 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=150: ixxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=150: ixxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=150: ixxxxx#15 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=151: ixxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=151: ixxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=151: ixxxxx#15 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=151: ixxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=151: ixxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=151: ixxxxx#15 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=152: ipzxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=152: ipzxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=152: ipzxxx#15 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=152: ipzxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=152: ipzxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=152: ipzxxx#15 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=153: vxxxxx#15 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=153: vxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=153: vxxxxx#15 nsp=-1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=153: vxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=153: vxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=153: vxxxxx#15 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=154: vxxxxx#15 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=154: vxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=154: vxxxxx#15 nsp=-1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=154: vxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=154: vxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=154: vxxxxx#15 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=155: sxxxxx#15 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=155: sxxxxx#15 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=155: sxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=155: sxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=155: sxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=155: sxxxxx#15 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=156: sxxxxx#15 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=156: sxxxxx#15 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=156: sxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=156: sxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=156: sxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=156: sxxxxx#15 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=157: oxxxxx#15 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=157: oxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=157: oxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=157: oxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=157: oxxxxx#15 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=157: oxxxxx#15 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=158: oxxxxx#15 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=158: oxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=158: oxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=158: oxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=158: oxxxxx#15 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=158: oxxxxx#15 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=159: opzxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=159: opzxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=159: opzxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=159: opzxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=159: opzxxx#15 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=159: opzxxx#15 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=160: ixxxxx#16 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=160: ixxxxx#16 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=160: ixxxxx#16 nsp=-1 mass=500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=160: ixxxxx#16 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=160: ixxxxx#16 nsp=-1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=160: ixxxxx#16 nsp=-1 mass=500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=161: ixxxxx#16 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=161: ixxxxx#16 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=161: ixxxxx#16 nsp=-1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=161: ixxxxx#16 nsp=-1 mass=-500 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=161: ixxxxx#16 nsp=-1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=161: ixxxxx#16 nsp=-1 mass=-500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=162: vxxxxx#16 nsp=-1 mass=500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=162: vxxxxx#16 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=162: vxxxxx#16 nsp=-1 mass=500 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=162: vxxxxx#16 nsp=-1 mass=500 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=162: vxxxxx#16 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=162: vxxxxx#16 nsp=-1 mass=500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=163: vxxxxx#16 nsp=-1 mass=-500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=163: vxxxxx#16 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=163: vxxxxx#16 nsp=-1 mass=-500 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=163: vxxxxx#16 nsp=-1 mass=-500 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=163: vxxxxx#16 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=163: vxxxxx#16 nsp=-1 mass=-500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=164: sxxxxx#16 nsp=-1 mass=500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=164: sxxxxx#16 nsp=-1 mass=500 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=164: sxxxxx#16 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=164: sxxxxx#16 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=164: sxxxxx#16 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=164: sxxxxx#16 nsp=-1 mass=500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=165: sxxxxx#16 nsp=-1 mass=-500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=165: sxxxxx#16 nsp=-1 mass=-500 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=165: sxxxxx#16 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=165: sxxxxx#16 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=165: sxxxxx#16 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=165: sxxxxx#16 nsp=-1 mass=-500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=166: oxxxxx#16 nsp=-1 mass=500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=166: oxxxxx#16 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=166: oxxxxx#16 nsp=-1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=166: oxxxxx#16 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=166: oxxxxx#16 nsp=-1 mass=500 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=166: oxxxxx#16 nsp=-1 mass=500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=167: oxxxxx#16 nsp=-1 mass=-500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=167: oxxxxx#16 nsp=-1 mass=-500 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=167: oxxxxx#16 nsp=-1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=167: oxxxxx#16 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=167: oxxxxx#16 nsp=-1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=167: oxxxxx#16 nsp=-1 mass=-500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=168: ixxxxx#17 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=168: ixxxxx#17 nsp=-1 mass=400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=168: ixxxxx#17 nsp=-1 mass=400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=168: ixxxxx#17 nsp=-1 mass=400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=168: ixxxxx#17 nsp=-1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00 } ); // itest=168: ixxxxx#17 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=169: ixxxxx#17 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=169: ixxxxx#17 nsp=-1 mass=-400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=169: ixxxxx#17 nsp=-1 mass=-400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=169: ixxxxx#17 nsp=-1 mass=-400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=169: ixxxxx#17 nsp=-1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00 } ); // itest=169: ixxxxx#17 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=170: vxxxxx#17 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=170: vxxxxx#17 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=170: vxxxxx#17 nsp=-1 mass=400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=170: vxxxxx#17 nsp=-1 mass=400 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=170: vxxxxx#17 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=170: vxxxxx#17 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=171: vxxxxx#17 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=171: vxxxxx#17 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=171: vxxxxx#17 nsp=-1 mass=-400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=171: vxxxxx#17 nsp=-1 mass=-400 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=171: vxxxxx#17 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=171: vxxxxx#17 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=172: sxxxxx#17 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=172: sxxxxx#17 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=172: sxxxxx#17 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=172: sxxxxx#17 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=172: sxxxxx#17 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=172: sxxxxx#17 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=173: sxxxxx#17 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=173: sxxxxx#17 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=173: sxxxxx#17 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=173: sxxxxx#17 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=173: sxxxxx#17 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=173: sxxxxx#17 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=174: oxxxxx#17 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=174: oxxxxx#17 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=174: oxxxxx#17 nsp=-1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=174: oxxxxx#17 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=174: oxxxxx#17 nsp=-1 mass=400 + -2.828427124746190e+01, -0.000000000000000e+00 } ); // itest=174: oxxxxx#17 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=175: oxxxxx#17 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=175: oxxxxx#17 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=175: oxxxxx#17 nsp=-1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=175: oxxxxx#17 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=175: oxxxxx#17 nsp=-1 mass=-400 + -2.828427124746190e+01, -0.000000000000000e+00 } ); // itest=175: oxxxxx#17 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=176: ixxxxx#18 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=176: ixxxxx#18 nsp=-1 mass=400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=176: ixxxxx#18 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=176: ixxxxx#18 nsp=-1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=176: ixxxxx#18 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=176: ixxxxx#18 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=177: ixxxxx#18 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=177: ixxxxx#18 nsp=-1 mass=-400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=177: ixxxxx#18 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=177: ixxxxx#18 nsp=-1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=177: ixxxxx#18 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=177: ixxxxx#18 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=178: vxxxxx#18 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=178: vxxxxx#18 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=178: vxxxxx#18 nsp=-1 mass=400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=178: vxxxxx#18 nsp=-1 mass=400 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=178: vxxxxx#18 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=178: vxxxxx#18 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=179: vxxxxx#18 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=179: vxxxxx#18 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=179: vxxxxx#18 nsp=-1 mass=-400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=179: vxxxxx#18 nsp=-1 mass=-400 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=179: vxxxxx#18 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=179: vxxxxx#18 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=180: sxxxxx#18 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=180: sxxxxx#18 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=180: sxxxxx#18 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=180: sxxxxx#18 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=180: sxxxxx#18 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=180: sxxxxx#18 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=181: sxxxxx#18 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=181: sxxxxx#18 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=181: sxxxxx#18 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=181: sxxxxx#18 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=181: sxxxxx#18 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=181: sxxxxx#18 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=182: oxxxxx#18 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=182: oxxxxx#18 nsp=-1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=182: oxxxxx#18 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=182: oxxxxx#18 nsp=-1 mass=400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=182: oxxxxx#18 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=182: oxxxxx#18 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=183: oxxxxx#18 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=183: oxxxxx#18 nsp=-1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=183: oxxxxx#18 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=183: oxxxxx#18 nsp=-1 mass=-400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=183: oxxxxx#18 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=183: oxxxxx#18 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=184: ixxxxx#19 nsp=-1 mass=400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=184: ixxxxx#19 nsp=-1 mass=400 + 1.200000000000000e+01, -1.600000000000000e+01, // itest=184: ixxxxx#19 nsp=-1 mass=400 + -2.000000000000000e+01, -0.000000000000000e+00, // itest=184: ixxxxx#19 nsp=-1 mass=400 + -5.999999999999999e+00, 7.999999999999999e+00, // itest=184: ixxxxx#19 nsp=-1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=184: ixxxxx#19 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=185: ixxxxx#19 nsp=-1 mass=-400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=185: ixxxxx#19 nsp=-1 mass=-400 + 1.200000000000000e+01, -1.600000000000000e+01, // itest=185: ixxxxx#19 nsp=-1 mass=-400 + -2.000000000000000e+01, -0.000000000000000e+00, // itest=185: ixxxxx#19 nsp=-1 mass=-400 + 5.999999999999999e+00, -7.999999999999999e+00, // itest=185: ixxxxx#19 nsp=-1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00 } ); // itest=185: ixxxxx#19 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=186: vxxxxx#19 nsp=-1 mass=400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=186: vxxxxx#19 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=186: vxxxxx#19 nsp=-1 mass=400 + 0.000000000000000e+00, 5.656854249492381e-01, // itest=186: vxxxxx#19 nsp=-1 mass=400 + 0.000000000000000e+00, -4.242640687119285e-01, // itest=186: vxxxxx#19 nsp=-1 mass=400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=186: vxxxxx#19 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=187: vxxxxx#19 nsp=-1 mass=-400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=187: vxxxxx#19 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=187: vxxxxx#19 nsp=-1 mass=-400 + -0.000000000000000e+00, 5.656854249492381e-01, // itest=187: vxxxxx#19 nsp=-1 mass=-400 + -0.000000000000000e+00, -4.242640687119285e-01, // itest=187: vxxxxx#19 nsp=-1 mass=-400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=187: vxxxxx#19 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=188: sxxxxx#19 nsp=-1 mass=400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=188: sxxxxx#19 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=188: sxxxxx#19 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=188: sxxxxx#19 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=188: sxxxxx#19 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=188: sxxxxx#19 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=189: sxxxxx#19 nsp=-1 mass=-400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=189: sxxxxx#19 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=189: sxxxxx#19 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=189: sxxxxx#19 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=189: sxxxxx#19 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=189: sxxxxx#19 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=190: oxxxxx#19 nsp=-1 mass=400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=190: oxxxxx#19 nsp=-1 mass=400 + -5.999999999999999e+00, -7.999999999999999e+00, // itest=190: oxxxxx#19 nsp=-1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=190: oxxxxx#19 nsp=-1 mass=400 + 1.200000000000000e+01, 1.600000000000000e+01, // itest=190: oxxxxx#19 nsp=-1 mass=400 + -2.000000000000000e+01, -0.000000000000000e+00 } ); // itest=190: oxxxxx#19 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=191: oxxxxx#19 nsp=-1 mass=-400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=191: oxxxxx#19 nsp=-1 mass=-400 + 5.999999999999999e+00, 7.999999999999999e+00, // itest=191: oxxxxx#19 nsp=-1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00, // itest=191: oxxxxx#19 nsp=-1 mass=-400 + 1.200000000000000e+01, 1.600000000000000e+01, // itest=191: oxxxxx#19 nsp=-1 mass=-400 + -2.000000000000000e+01, -0.000000000000000e+00 } ); // itest=191: oxxxxx#19 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=192: ixxxxx#20 nsp=-1 mass=400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=192: ixxxxx#20 nsp=-1 mass=400 + -1.600000000000000e+01, 1.200000000000000e+01, // itest=192: ixxxxx#20 nsp=-1 mass=400 + -2.000000000000000e+01, -0.000000000000000e+00, // itest=192: ixxxxx#20 nsp=-1 mass=400 + 7.999999999999999e+00, -5.999999999999999e+00, // itest=192: ixxxxx#20 nsp=-1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=192: ixxxxx#20 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=193: ixxxxx#20 nsp=-1 mass=-400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=193: ixxxxx#20 nsp=-1 mass=-400 + -1.600000000000000e+01, 1.200000000000000e+01, // itest=193: ixxxxx#20 nsp=-1 mass=-400 + -2.000000000000000e+01, -0.000000000000000e+00, // itest=193: ixxxxx#20 nsp=-1 mass=-400 + -7.999999999999999e+00, 5.999999999999999e+00, // itest=193: ixxxxx#20 nsp=-1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00 } ); // itest=193: ixxxxx#20 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=194: vxxxxx#20 nsp=-1 mass=400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=194: vxxxxx#20 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=194: vxxxxx#20 nsp=-1 mass=400 + 0.000000000000000e+00, -4.242640687119285e-01, // itest=194: vxxxxx#20 nsp=-1 mass=400 + 0.000000000000000e+00, 5.656854249492381e-01, // itest=194: vxxxxx#20 nsp=-1 mass=400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=194: vxxxxx#20 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=195: vxxxxx#20 nsp=-1 mass=-400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=195: vxxxxx#20 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=195: vxxxxx#20 nsp=-1 mass=-400 + 0.000000000000000e+00, -4.242640687119285e-01, // itest=195: vxxxxx#20 nsp=-1 mass=-400 + 0.000000000000000e+00, 5.656854249492381e-01, // itest=195: vxxxxx#20 nsp=-1 mass=-400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=195: vxxxxx#20 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=196: sxxxxx#20 nsp=-1 mass=400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=196: sxxxxx#20 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=196: sxxxxx#20 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=196: sxxxxx#20 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=196: sxxxxx#20 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=196: sxxxxx#20 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=197: sxxxxx#20 nsp=-1 mass=-400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=197: sxxxxx#20 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=197: sxxxxx#20 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=197: sxxxxx#20 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=197: sxxxxx#20 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=197: sxxxxx#20 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=198: oxxxxx#20 nsp=-1 mass=400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=198: oxxxxx#20 nsp=-1 mass=400 + 7.999999999999999e+00, 5.999999999999999e+00, // itest=198: oxxxxx#20 nsp=-1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=198: oxxxxx#20 nsp=-1 mass=400 + -1.600000000000000e+01, -1.200000000000000e+01, // itest=198: oxxxxx#20 nsp=-1 mass=400 + -2.000000000000000e+01, -0.000000000000000e+00 } ); // itest=198: oxxxxx#20 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=199: oxxxxx#20 nsp=-1 mass=-400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=199: oxxxxx#20 nsp=-1 mass=-400 + -7.999999999999999e+00, -5.999999999999999e+00, // itest=199: oxxxxx#20 nsp=-1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00, // itest=199: oxxxxx#20 nsp=-1 mass=-400 + -1.600000000000000e+01, -1.200000000000000e+01, // itest=199: oxxxxx#20 nsp=-1 mass=-400 + -2.000000000000000e+01, -0.000000000000000e+00 } ); // itest=199: oxxxxx#20 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=200: ixxxxx#21 nsp=-1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=200: ixxxxx#21 nsp=-1 mass=400 + 9.863939238321439e+00, -1.052153518754287e+01, // itest=200: ixxxxx#21 nsp=-1 mass=400 + -2.433105012119288e+01, -0.000000000000000e+00, // itest=200: ixxxxx#21 nsp=-1 mass=400 + -4.931969619160719e+00, 5.260767593771432e+00, // itest=200: ixxxxx#21 nsp=-1 mass=400 + 1.216552506059644e+01, 0.000000000000000e+00 } ); // itest=200: ixxxxx#21 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=201: ixxxxx#21 nsp=-1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=201: ixxxxx#21 nsp=-1 mass=-400 + 9.863939238321439e+00, -1.052153518754287e+01, // itest=201: ixxxxx#21 nsp=-1 mass=-400 + -2.433105012119288e+01, -0.000000000000000e+00, // itest=201: ixxxxx#21 nsp=-1 mass=-400 + 4.931969619160719e+00, -5.260767593771432e+00, // itest=201: ixxxxx#21 nsp=-1 mass=-400 + -1.216552506059644e+01, -0.000000000000000e+00 } ); // itest=201: ixxxxx#21 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=202: vxxxxx#21 nsp=-1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=202: vxxxxx#21 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=202: vxxxxx#21 nsp=-1 mass=400 + -2.321373168788980e-01, 5.158607041753289e-01, // itest=202: vxxxxx#21 nsp=-1 mass=400 + -2.476131380041579e-01, -4.836194101643708e-01, // itest=202: vxxxxx#21 nsp=-1 mass=400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=202: vxxxxx#21 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=203: vxxxxx#21 nsp=-1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=203: vxxxxx#21 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=203: vxxxxx#21 nsp=-1 mass=-400 + -2.321373168788980e-01, 5.158607041753289e-01, // itest=203: vxxxxx#21 nsp=-1 mass=-400 + -2.476131380041579e-01, -4.836194101643708e-01, // itest=203: vxxxxx#21 nsp=-1 mass=-400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=203: vxxxxx#21 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=204: sxxxxx#21 nsp=-1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=204: sxxxxx#21 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=204: sxxxxx#21 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=204: sxxxxx#21 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=204: sxxxxx#21 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=204: sxxxxx#21 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=205: sxxxxx#21 nsp=-1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=205: sxxxxx#21 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=205: sxxxxx#21 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=205: sxxxxx#21 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=205: sxxxxx#21 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=205: sxxxxx#21 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=206: oxxxxx#21 nsp=-1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=206: oxxxxx#21 nsp=-1 mass=400 + -4.931969619160719e+00, -5.260767593771432e+00, // itest=206: oxxxxx#21 nsp=-1 mass=400 + 1.216552506059644e+01, 0.000000000000000e+00, // itest=206: oxxxxx#21 nsp=-1 mass=400 + 9.863939238321439e+00, 1.052153518754287e+01, // itest=206: oxxxxx#21 nsp=-1 mass=400 + -2.433105012119288e+01, -0.000000000000000e+00 } ); // itest=206: oxxxxx#21 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=207: oxxxxx#21 nsp=-1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=207: oxxxxx#21 nsp=-1 mass=-400 + 4.931969619160719e+00, 5.260767593771432e+00, // itest=207: oxxxxx#21 nsp=-1 mass=-400 + -1.216552506059644e+01, -0.000000000000000e+00, // itest=207: oxxxxx#21 nsp=-1 mass=-400 + 9.863939238321439e+00, 1.052153518754287e+01, // itest=207: oxxxxx#21 nsp=-1 mass=-400 + -2.433105012119288e+01, -0.000000000000000e+00 } ); // itest=207: oxxxxx#21 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=208: ixxxxx#22 nsp=-1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=208: ixxxxx#22 nsp=-1 mass=400 + 1.664100588675688e+01, -1.775040627920733e+01, // itest=208: ixxxxx#22 nsp=-1 mass=400 + -1.442220510185596e+01, -0.000000000000000e+00, // itest=208: ixxxxx#22 nsp=-1 mass=400 + -8.320502943378436e+00, 8.875203139603666e+00, // itest=208: ixxxxx#22 nsp=-1 mass=400 + 7.211102550927978e+00, 0.000000000000000e+00 } ); // itest=208: ixxxxx#22 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=209: ixxxxx#22 nsp=-1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=209: ixxxxx#22 nsp=-1 mass=-400 + 1.664100588675688e+01, -1.775040627920733e+01, // itest=209: ixxxxx#22 nsp=-1 mass=-400 + -1.442220510185596e+01, -0.000000000000000e+00, // itest=209: ixxxxx#22 nsp=-1 mass=-400 + 8.320502943378436e+00, -8.875203139603666e+00, // itest=209: ixxxxx#22 nsp=-1 mass=-400 + -7.211102550927978e+00, -0.000000000000000e+00 } ); // itest=209: ixxxxx#22 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=210: vxxxxx#22 nsp=-1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=210: vxxxxx#22 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=210: vxxxxx#22 nsp=-1 mass=400 + 2.321373168788980e-01, 5.158607041753289e-01, // itest=210: vxxxxx#22 nsp=-1 mass=400 + 2.476131380041579e-01, -4.836194101643708e-01, // itest=210: vxxxxx#22 nsp=-1 mass=400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=210: vxxxxx#22 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=211: vxxxxx#22 nsp=-1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=211: vxxxxx#22 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=211: vxxxxx#22 nsp=-1 mass=-400 + 2.321373168788980e-01, 5.158607041753289e-01, // itest=211: vxxxxx#22 nsp=-1 mass=-400 + 2.476131380041579e-01, -4.836194101643708e-01, // itest=211: vxxxxx#22 nsp=-1 mass=-400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=211: vxxxxx#22 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=212: sxxxxx#22 nsp=-1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=212: sxxxxx#22 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=212: sxxxxx#22 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=212: sxxxxx#22 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=212: sxxxxx#22 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=212: sxxxxx#22 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=213: sxxxxx#22 nsp=-1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=213: sxxxxx#22 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=213: sxxxxx#22 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=213: sxxxxx#22 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=213: sxxxxx#22 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=213: sxxxxx#22 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=214: oxxxxx#22 nsp=-1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=214: oxxxxx#22 nsp=-1 mass=400 + -8.320502943378436e+00, -8.875203139603666e+00, // itest=214: oxxxxx#22 nsp=-1 mass=400 + 7.211102550927978e+00, 0.000000000000000e+00, // itest=214: oxxxxx#22 nsp=-1 mass=400 + 1.664100588675688e+01, 1.775040627920733e+01, // itest=214: oxxxxx#22 nsp=-1 mass=400 + -1.442220510185596e+01, -0.000000000000000e+00 } ); // itest=214: oxxxxx#22 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=215: oxxxxx#22 nsp=-1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=215: oxxxxx#22 nsp=-1 mass=-400 + 8.320502943378436e+00, 8.875203139603666e+00, // itest=215: oxxxxx#22 nsp=-1 mass=-400 + -7.211102550927978e+00, -0.000000000000000e+00, // itest=215: oxxxxx#22 nsp=-1 mass=-400 + 1.664100588675688e+01, 1.775040627920733e+01, // itest=215: oxxxxx#22 nsp=-1 mass=-400 + -1.442220510185596e+01, -0.000000000000000e+00 } ); // itest=215: oxxxxx#22 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=216: ixxxxx#23 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=216: ixxxxx#23 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=216: ixxxxx#23 nsp=-1 mass=500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=216: ixxxxx#23 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=216: ixxxxx#23 nsp=-1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=216: ixxxxx#23 nsp=-1 mass=500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=217: ixxxxx#23 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=217: ixxxxx#23 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=217: ixxxxx#23 nsp=-1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=217: ixxxxx#23 nsp=-1 mass=-500 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=217: ixxxxx#23 nsp=-1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=217: ixxxxx#23 nsp=-1 mass=-500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=218: vxxxxx#23 nsp=-1 mass=500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=218: vxxxxx#23 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=218: vxxxxx#23 nsp=-1 mass=500 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=218: vxxxxx#23 nsp=-1 mass=500 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=218: vxxxxx#23 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=218: vxxxxx#23 nsp=-1 mass=500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=219: vxxxxx#23 nsp=-1 mass=-500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=219: vxxxxx#23 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=219: vxxxxx#23 nsp=-1 mass=-500 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=219: vxxxxx#23 nsp=-1 mass=-500 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=219: vxxxxx#23 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=219: vxxxxx#23 nsp=-1 mass=-500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=220: sxxxxx#23 nsp=-1 mass=500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=220: sxxxxx#23 nsp=-1 mass=500 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=220: sxxxxx#23 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=220: sxxxxx#23 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=220: sxxxxx#23 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=220: sxxxxx#23 nsp=-1 mass=500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=221: sxxxxx#23 nsp=-1 mass=-500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=221: sxxxxx#23 nsp=-1 mass=-500 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=221: sxxxxx#23 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=221: sxxxxx#23 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=221: sxxxxx#23 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=221: sxxxxx#23 nsp=-1 mass=-500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=222: oxxxxx#23 nsp=-1 mass=500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=222: oxxxxx#23 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=222: oxxxxx#23 nsp=-1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=222: oxxxxx#23 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=222: oxxxxx#23 nsp=-1 mass=500 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=222: oxxxxx#23 nsp=-1 mass=500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=223: oxxxxx#23 nsp=-1 mass=-500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=223: oxxxxx#23 nsp=-1 mass=-500 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=223: oxxxxx#23 nsp=-1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=223: oxxxxx#23 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=223: oxxxxx#23 nsp=-1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=223: oxxxxx#23 nsp=-1 mass=-500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=224: ixxxxx#24 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=224: ixxxxx#24 nsp=-1 mass=400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=224: ixxxxx#24 nsp=-1 mass=400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=224: ixxxxx#24 nsp=-1 mass=400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=224: ixxxxx#24 nsp=-1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00 } ); // itest=224: ixxxxx#24 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=225: ixxxxx#24 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=225: ixxxxx#24 nsp=-1 mass=-400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=225: ixxxxx#24 nsp=-1 mass=-400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=225: ixxxxx#24 nsp=-1 mass=-400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=225: ixxxxx#24 nsp=-1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00 } ); // itest=225: ixxxxx#24 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=226: vxxxxx#24 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=226: vxxxxx#24 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=226: vxxxxx#24 nsp=-1 mass=400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=226: vxxxxx#24 nsp=-1 mass=400 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=226: vxxxxx#24 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=226: vxxxxx#24 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=227: vxxxxx#24 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=227: vxxxxx#24 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=227: vxxxxx#24 nsp=-1 mass=-400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=227: vxxxxx#24 nsp=-1 mass=-400 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=227: vxxxxx#24 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=227: vxxxxx#24 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=228: sxxxxx#24 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=228: sxxxxx#24 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=228: sxxxxx#24 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=228: sxxxxx#24 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=228: sxxxxx#24 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=228: sxxxxx#24 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=229: sxxxxx#24 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=229: sxxxxx#24 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=229: sxxxxx#24 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=229: sxxxxx#24 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=229: sxxxxx#24 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=229: sxxxxx#24 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=230: oxxxxx#24 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=230: oxxxxx#24 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=230: oxxxxx#24 nsp=-1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=230: oxxxxx#24 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=230: oxxxxx#24 nsp=-1 mass=400 + -2.828427124746190e+01, -0.000000000000000e+00 } ); // itest=230: oxxxxx#24 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=231: oxxxxx#24 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=231: oxxxxx#24 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=231: oxxxxx#24 nsp=-1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=231: oxxxxx#24 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=231: oxxxxx#24 nsp=-1 mass=-400 + -2.828427124746190e+01, -0.000000000000000e+00 } ); // itest=231: oxxxxx#24 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=232: ixxxxx#25 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=232: ixxxxx#25 nsp=-1 mass=400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=232: ixxxxx#25 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=232: ixxxxx#25 nsp=-1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=232: ixxxxx#25 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=232: ixxxxx#25 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=233: ixxxxx#25 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=233: ixxxxx#25 nsp=-1 mass=-400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=233: ixxxxx#25 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=233: ixxxxx#25 nsp=-1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=233: ixxxxx#25 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=233: ixxxxx#25 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=234: vxxxxx#25 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=234: vxxxxx#25 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=234: vxxxxx#25 nsp=-1 mass=400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=234: vxxxxx#25 nsp=-1 mass=400 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=234: vxxxxx#25 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=234: vxxxxx#25 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=235: vxxxxx#25 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=235: vxxxxx#25 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=235: vxxxxx#25 nsp=-1 mass=-400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=235: vxxxxx#25 nsp=-1 mass=-400 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=235: vxxxxx#25 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=235: vxxxxx#25 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=236: sxxxxx#25 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=236: sxxxxx#25 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=236: sxxxxx#25 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=236: sxxxxx#25 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=236: sxxxxx#25 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=236: sxxxxx#25 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=237: sxxxxx#25 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=237: sxxxxx#25 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=237: sxxxxx#25 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=237: sxxxxx#25 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=237: sxxxxx#25 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=237: sxxxxx#25 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=238: oxxxxx#25 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=238: oxxxxx#25 nsp=-1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=238: oxxxxx#25 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=238: oxxxxx#25 nsp=-1 mass=400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=238: oxxxxx#25 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=238: oxxxxx#25 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=239: oxxxxx#25 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=239: oxxxxx#25 nsp=-1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=239: oxxxxx#25 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=239: oxxxxx#25 nsp=-1 mass=-400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=239: oxxxxx#25 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=239: oxxxxx#25 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=240: ixxxxx#26 nsp=-1 mass=400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=240: ixxxxx#26 nsp=-1 mass=400 + 1.200000000000000e+01, -1.600000000000000e+01, // itest=240: ixxxxx#26 nsp=-1 mass=400 + -2.000000000000000e+01, -0.000000000000000e+00, // itest=240: ixxxxx#26 nsp=-1 mass=400 + -5.999999999999999e+00, 7.999999999999999e+00, // itest=240: ixxxxx#26 nsp=-1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=240: ixxxxx#26 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=241: ixxxxx#26 nsp=-1 mass=-400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=241: ixxxxx#26 nsp=-1 mass=-400 + 1.200000000000000e+01, -1.600000000000000e+01, // itest=241: ixxxxx#26 nsp=-1 mass=-400 + -2.000000000000000e+01, -0.000000000000000e+00, // itest=241: ixxxxx#26 nsp=-1 mass=-400 + 5.999999999999999e+00, -7.999999999999999e+00, // itest=241: ixxxxx#26 nsp=-1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00 } ); // itest=241: ixxxxx#26 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=242: vxxxxx#26 nsp=-1 mass=400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=242: vxxxxx#26 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=242: vxxxxx#26 nsp=-1 mass=400 + 0.000000000000000e+00, 5.656854249492381e-01, // itest=242: vxxxxx#26 nsp=-1 mass=400 + 0.000000000000000e+00, -4.242640687119285e-01, // itest=242: vxxxxx#26 nsp=-1 mass=400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=242: vxxxxx#26 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=243: vxxxxx#26 nsp=-1 mass=-400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=243: vxxxxx#26 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=243: vxxxxx#26 nsp=-1 mass=-400 + -0.000000000000000e+00, 5.656854249492381e-01, // itest=243: vxxxxx#26 nsp=-1 mass=-400 + -0.000000000000000e+00, -4.242640687119285e-01, // itest=243: vxxxxx#26 nsp=-1 mass=-400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=243: vxxxxx#26 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=244: sxxxxx#26 nsp=-1 mass=400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=244: sxxxxx#26 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=244: sxxxxx#26 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=244: sxxxxx#26 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=244: sxxxxx#26 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=244: sxxxxx#26 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=245: sxxxxx#26 nsp=-1 mass=-400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=245: sxxxxx#26 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=245: sxxxxx#26 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=245: sxxxxx#26 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=245: sxxxxx#26 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=245: sxxxxx#26 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=246: oxxxxx#26 nsp=-1 mass=400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=246: oxxxxx#26 nsp=-1 mass=400 + -5.999999999999999e+00, -7.999999999999999e+00, // itest=246: oxxxxx#26 nsp=-1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=246: oxxxxx#26 nsp=-1 mass=400 + 1.200000000000000e+01, 1.600000000000000e+01, // itest=246: oxxxxx#26 nsp=-1 mass=400 + -2.000000000000000e+01, -0.000000000000000e+00 } ); // itest=246: oxxxxx#26 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=247: oxxxxx#26 nsp=-1 mass=-400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=247: oxxxxx#26 nsp=-1 mass=-400 + 5.999999999999999e+00, 7.999999999999999e+00, // itest=247: oxxxxx#26 nsp=-1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00, // itest=247: oxxxxx#26 nsp=-1 mass=-400 + 1.200000000000000e+01, 1.600000000000000e+01, // itest=247: oxxxxx#26 nsp=-1 mass=-400 + -2.000000000000000e+01, -0.000000000000000e+00 } ); // itest=247: oxxxxx#26 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=248: ixxxxx#27 nsp=-1 mass=400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=248: ixxxxx#27 nsp=-1 mass=400 + -1.600000000000000e+01, 1.200000000000000e+01, // itest=248: ixxxxx#27 nsp=-1 mass=400 + -2.000000000000000e+01, -0.000000000000000e+00, // itest=248: ixxxxx#27 nsp=-1 mass=400 + 7.999999999999999e+00, -5.999999999999999e+00, // itest=248: ixxxxx#27 nsp=-1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=248: ixxxxx#27 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=249: ixxxxx#27 nsp=-1 mass=-400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=249: ixxxxx#27 nsp=-1 mass=-400 + -1.600000000000000e+01, 1.200000000000000e+01, // itest=249: ixxxxx#27 nsp=-1 mass=-400 + -2.000000000000000e+01, -0.000000000000000e+00, // itest=249: ixxxxx#27 nsp=-1 mass=-400 + -7.999999999999999e+00, 5.999999999999999e+00, // itest=249: ixxxxx#27 nsp=-1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00 } ); // itest=249: ixxxxx#27 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=250: vxxxxx#27 nsp=-1 mass=400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=250: vxxxxx#27 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=250: vxxxxx#27 nsp=-1 mass=400 + 0.000000000000000e+00, -4.242640687119285e-01, // itest=250: vxxxxx#27 nsp=-1 mass=400 + 0.000000000000000e+00, 5.656854249492381e-01, // itest=250: vxxxxx#27 nsp=-1 mass=400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=250: vxxxxx#27 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=251: vxxxxx#27 nsp=-1 mass=-400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=251: vxxxxx#27 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=251: vxxxxx#27 nsp=-1 mass=-400 + 0.000000000000000e+00, -4.242640687119285e-01, // itest=251: vxxxxx#27 nsp=-1 mass=-400 + 0.000000000000000e+00, 5.656854249492381e-01, // itest=251: vxxxxx#27 nsp=-1 mass=-400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=251: vxxxxx#27 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=252: sxxxxx#27 nsp=-1 mass=400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=252: sxxxxx#27 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=252: sxxxxx#27 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=252: sxxxxx#27 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=252: sxxxxx#27 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=252: sxxxxx#27 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=253: sxxxxx#27 nsp=-1 mass=-400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=253: sxxxxx#27 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=253: sxxxxx#27 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=253: sxxxxx#27 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=253: sxxxxx#27 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=253: sxxxxx#27 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=254: oxxxxx#27 nsp=-1 mass=400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=254: oxxxxx#27 nsp=-1 mass=400 + 7.999999999999999e+00, 5.999999999999999e+00, // itest=254: oxxxxx#27 nsp=-1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=254: oxxxxx#27 nsp=-1 mass=400 + -1.600000000000000e+01, -1.200000000000000e+01, // itest=254: oxxxxx#27 nsp=-1 mass=400 + -2.000000000000000e+01, -0.000000000000000e+00 } ); // itest=254: oxxxxx#27 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=255: oxxxxx#27 nsp=-1 mass=-400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=255: oxxxxx#27 nsp=-1 mass=-400 + -7.999999999999999e+00, -5.999999999999999e+00, // itest=255: oxxxxx#27 nsp=-1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00, // itest=255: oxxxxx#27 nsp=-1 mass=-400 + -1.600000000000000e+01, -1.200000000000000e+01, // itest=255: oxxxxx#27 nsp=-1 mass=-400 + -2.000000000000000e+01, -0.000000000000000e+00 } ); // itest=255: oxxxxx#27 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=256: ixxxxx#28 nsp=-1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=256: ixxxxx#28 nsp=-1 mass=400 + 9.863939238321439e+00, -1.052153518754287e+01, // itest=256: ixxxxx#28 nsp=-1 mass=400 + -2.433105012119288e+01, -0.000000000000000e+00, // itest=256: ixxxxx#28 nsp=-1 mass=400 + -4.931969619160719e+00, 5.260767593771432e+00, // itest=256: ixxxxx#28 nsp=-1 mass=400 + 1.216552506059644e+01, 0.000000000000000e+00 } ); // itest=256: ixxxxx#28 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=257: ixxxxx#28 nsp=-1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=257: ixxxxx#28 nsp=-1 mass=-400 + 9.863939238321439e+00, -1.052153518754287e+01, // itest=257: ixxxxx#28 nsp=-1 mass=-400 + -2.433105012119288e+01, -0.000000000000000e+00, // itest=257: ixxxxx#28 nsp=-1 mass=-400 + 4.931969619160719e+00, -5.260767593771432e+00, // itest=257: ixxxxx#28 nsp=-1 mass=-400 + -1.216552506059644e+01, -0.000000000000000e+00 } ); // itest=257: ixxxxx#28 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=258: vxxxxx#28 nsp=-1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=258: vxxxxx#28 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=258: vxxxxx#28 nsp=-1 mass=400 + -2.321373168788980e-01, 5.158607041753289e-01, // itest=258: vxxxxx#28 nsp=-1 mass=400 + -2.476131380041579e-01, -4.836194101643708e-01, // itest=258: vxxxxx#28 nsp=-1 mass=400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=258: vxxxxx#28 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=259: vxxxxx#28 nsp=-1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=259: vxxxxx#28 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=259: vxxxxx#28 nsp=-1 mass=-400 + -2.321373168788980e-01, 5.158607041753289e-01, // itest=259: vxxxxx#28 nsp=-1 mass=-400 + -2.476131380041579e-01, -4.836194101643708e-01, // itest=259: vxxxxx#28 nsp=-1 mass=-400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=259: vxxxxx#28 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=260: sxxxxx#28 nsp=-1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=260: sxxxxx#28 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=260: sxxxxx#28 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=260: sxxxxx#28 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=260: sxxxxx#28 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=260: sxxxxx#28 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=261: sxxxxx#28 nsp=-1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=261: sxxxxx#28 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=261: sxxxxx#28 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=261: sxxxxx#28 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=261: sxxxxx#28 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=261: sxxxxx#28 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=262: oxxxxx#28 nsp=-1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=262: oxxxxx#28 nsp=-1 mass=400 + -4.931969619160719e+00, -5.260767593771432e+00, // itest=262: oxxxxx#28 nsp=-1 mass=400 + 1.216552506059644e+01, 0.000000000000000e+00, // itest=262: oxxxxx#28 nsp=-1 mass=400 + 9.863939238321439e+00, 1.052153518754287e+01, // itest=262: oxxxxx#28 nsp=-1 mass=400 + -2.433105012119288e+01, -0.000000000000000e+00 } ); // itest=262: oxxxxx#28 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=263: oxxxxx#28 nsp=-1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=263: oxxxxx#28 nsp=-1 mass=-400 + 4.931969619160719e+00, 5.260767593771432e+00, // itest=263: oxxxxx#28 nsp=-1 mass=-400 + -1.216552506059644e+01, -0.000000000000000e+00, // itest=263: oxxxxx#28 nsp=-1 mass=-400 + 9.863939238321439e+00, 1.052153518754287e+01, // itest=263: oxxxxx#28 nsp=-1 mass=-400 + -2.433105012119288e+01, -0.000000000000000e+00 } ); // itest=263: oxxxxx#28 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=264: ixxxxx#29 nsp=-1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=264: ixxxxx#29 nsp=-1 mass=400 + 1.664100588675688e+01, -1.775040627920733e+01, // itest=264: ixxxxx#29 nsp=-1 mass=400 + -1.442220510185596e+01, -0.000000000000000e+00, // itest=264: ixxxxx#29 nsp=-1 mass=400 + -8.320502943378436e+00, 8.875203139603666e+00, // itest=264: ixxxxx#29 nsp=-1 mass=400 + 7.211102550927978e+00, 0.000000000000000e+00 } ); // itest=264: ixxxxx#29 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=265: ixxxxx#29 nsp=-1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=265: ixxxxx#29 nsp=-1 mass=-400 + 1.664100588675688e+01, -1.775040627920733e+01, // itest=265: ixxxxx#29 nsp=-1 mass=-400 + -1.442220510185596e+01, -0.000000000000000e+00, // itest=265: ixxxxx#29 nsp=-1 mass=-400 + 8.320502943378436e+00, -8.875203139603666e+00, // itest=265: ixxxxx#29 nsp=-1 mass=-400 + -7.211102550927978e+00, -0.000000000000000e+00 } ); // itest=265: ixxxxx#29 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=266: vxxxxx#29 nsp=-1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=266: vxxxxx#29 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=266: vxxxxx#29 nsp=-1 mass=400 + 2.321373168788980e-01, 5.158607041753289e-01, // itest=266: vxxxxx#29 nsp=-1 mass=400 + 2.476131380041579e-01, -4.836194101643708e-01, // itest=266: vxxxxx#29 nsp=-1 mass=400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=266: vxxxxx#29 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=267: vxxxxx#29 nsp=-1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=267: vxxxxx#29 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=267: vxxxxx#29 nsp=-1 mass=-400 + 2.321373168788980e-01, 5.158607041753289e-01, // itest=267: vxxxxx#29 nsp=-1 mass=-400 + 2.476131380041579e-01, -4.836194101643708e-01, // itest=267: vxxxxx#29 nsp=-1 mass=-400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=267: vxxxxx#29 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=268: sxxxxx#29 nsp=-1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=268: sxxxxx#29 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=268: sxxxxx#29 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=268: sxxxxx#29 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=268: sxxxxx#29 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=268: sxxxxx#29 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=269: sxxxxx#29 nsp=-1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=269: sxxxxx#29 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=269: sxxxxx#29 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=269: sxxxxx#29 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=269: sxxxxx#29 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=269: sxxxxx#29 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=270: oxxxxx#29 nsp=-1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=270: oxxxxx#29 nsp=-1 mass=400 + -8.320502943378436e+00, -8.875203139603666e+00, // itest=270: oxxxxx#29 nsp=-1 mass=400 + 7.211102550927978e+00, 0.000000000000000e+00, // itest=270: oxxxxx#29 nsp=-1 mass=400 + 1.664100588675688e+01, 1.775040627920733e+01, // itest=270: oxxxxx#29 nsp=-1 mass=400 + -1.442220510185596e+01, -0.000000000000000e+00 } ); // itest=270: oxxxxx#29 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=271: oxxxxx#29 nsp=-1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=271: oxxxxx#29 nsp=-1 mass=-400 + 8.320502943378436e+00, 8.875203139603666e+00, // itest=271: oxxxxx#29 nsp=-1 mass=-400 + -7.211102550927978e+00, -0.000000000000000e+00, // itest=271: oxxxxx#29 nsp=-1 mass=-400 + 1.664100588675688e+01, 1.775040627920733e+01, // itest=271: oxxxxx#29 nsp=-1 mass=-400 + -1.442220510185596e+01, -0.000000000000000e+00 } ); // itest=271: oxxxxx#29 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=272: ixxxxx#30 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=272: ixxxxx#30 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=272: ixxxxx#30 nsp=-1 mass=500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=272: ixxxxx#30 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=272: ixxxxx#30 nsp=-1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=272: ixxxxx#30 nsp=-1 mass=500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=273: ixxxxx#30 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=273: ixxxxx#30 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=273: ixxxxx#30 nsp=-1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=273: ixxxxx#30 nsp=-1 mass=-500 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=273: ixxxxx#30 nsp=-1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=273: ixxxxx#30 nsp=-1 mass=-500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=274: vxxxxx#30 nsp=-1 mass=500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=274: vxxxxx#30 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=274: vxxxxx#30 nsp=-1 mass=500 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=274: vxxxxx#30 nsp=-1 mass=500 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=274: vxxxxx#30 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=274: vxxxxx#30 nsp=-1 mass=500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=275: vxxxxx#30 nsp=-1 mass=-500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=275: vxxxxx#30 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=275: vxxxxx#30 nsp=-1 mass=-500 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=275: vxxxxx#30 nsp=-1 mass=-500 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=275: vxxxxx#30 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=275: vxxxxx#30 nsp=-1 mass=-500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=276: sxxxxx#30 nsp=-1 mass=500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=276: sxxxxx#30 nsp=-1 mass=500 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=276: sxxxxx#30 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=276: sxxxxx#30 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=276: sxxxxx#30 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=276: sxxxxx#30 nsp=-1 mass=500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=277: sxxxxx#30 nsp=-1 mass=-500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=277: sxxxxx#30 nsp=-1 mass=-500 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=277: sxxxxx#30 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=277: sxxxxx#30 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=277: sxxxxx#30 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=277: sxxxxx#30 nsp=-1 mass=-500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=278: oxxxxx#30 nsp=-1 mass=500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=278: oxxxxx#30 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=278: oxxxxx#30 nsp=-1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=278: oxxxxx#30 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=278: oxxxxx#30 nsp=-1 mass=500 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=278: oxxxxx#30 nsp=-1 mass=500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=279: oxxxxx#30 nsp=-1 mass=-500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=279: oxxxxx#30 nsp=-1 mass=-500 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=279: oxxxxx#30 nsp=-1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=279: oxxxxx#30 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=279: oxxxxx#30 nsp=-1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=279: oxxxxx#30 nsp=-1 mass=-500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=280: ixxxxx#31 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=280: ixxxxx#31 nsp=-1 mass=400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=280: ixxxxx#31 nsp=-1 mass=400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=280: ixxxxx#31 nsp=-1 mass=400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=280: ixxxxx#31 nsp=-1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00 } ); // itest=280: ixxxxx#31 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=281: ixxxxx#31 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=281: ixxxxx#31 nsp=-1 mass=-400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=281: ixxxxx#31 nsp=-1 mass=-400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=281: ixxxxx#31 nsp=-1 mass=-400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=281: ixxxxx#31 nsp=-1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00 } ); // itest=281: ixxxxx#31 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=282: vxxxxx#31 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=282: vxxxxx#31 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=282: vxxxxx#31 nsp=-1 mass=400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=282: vxxxxx#31 nsp=-1 mass=400 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=282: vxxxxx#31 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=282: vxxxxx#31 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=283: vxxxxx#31 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=283: vxxxxx#31 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=283: vxxxxx#31 nsp=-1 mass=-400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=283: vxxxxx#31 nsp=-1 mass=-400 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=283: vxxxxx#31 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=283: vxxxxx#31 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=284: sxxxxx#31 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=284: sxxxxx#31 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=284: sxxxxx#31 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=284: sxxxxx#31 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=284: sxxxxx#31 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=284: sxxxxx#31 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=285: sxxxxx#31 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=285: sxxxxx#31 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=285: sxxxxx#31 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=285: sxxxxx#31 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=285: sxxxxx#31 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=285: sxxxxx#31 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=286: oxxxxx#31 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=286: oxxxxx#31 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=286: oxxxxx#31 nsp=-1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=286: oxxxxx#31 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=286: oxxxxx#31 nsp=-1 mass=400 + -2.828427124746190e+01, -0.000000000000000e+00 } ); // itest=286: oxxxxx#31 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=287: oxxxxx#31 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=287: oxxxxx#31 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=287: oxxxxx#31 nsp=-1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=287: oxxxxx#31 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=287: oxxxxx#31 nsp=-1 mass=-400 + -2.828427124746190e+01, -0.000000000000000e+00 } ); // itest=287: oxxxxx#31 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=288: ixxxxx#0 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=288: ixxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=288: ixxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=288: ixxxxx#0 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=288: ixxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=288: ixxxxx#0 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=289: ixxxxx#0 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=289: ixxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=289: ixxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=289: ixxxxx#0 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=289: ixxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=289: ixxxxx#0 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=290: ipzxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=290: ipzxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=290: ipzxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=290: ipzxxx#0 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=290: ipzxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=290: ipzxxx#0 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=291: vxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=291: vxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=291: vxxxxx#0 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=291: vxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=291: vxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=291: vxxxxx#0 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=292: vxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=292: vxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=292: vxxxxx#0 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=292: vxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=292: vxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=292: vxxxxx#0 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=293: sxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=293: sxxxxx#0 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=293: sxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=293: sxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=293: sxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=293: sxxxxx#0 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=294: sxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=294: sxxxxx#0 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=294: sxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=294: sxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=294: sxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=294: sxxxxx#0 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=295: oxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=295: oxxxxx#0 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=295: oxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=295: oxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=295: oxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=295: oxxxxx#0 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=296: oxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=296: oxxxxx#0 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=296: oxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=296: oxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=296: oxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=296: oxxxxx#0 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=297: opzxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=297: opzxxx#0 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=297: opzxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=297: opzxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=297: opzxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=297: opzxxx#0 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=298: ixxxxx#1 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=298: ixxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=298: ixxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=298: ixxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=298: ixxxxx#1 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=298: ixxxxx#1 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=299: ixxxxx#1 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=299: ixxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=299: ixxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=299: ixxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=299: ixxxxx#1 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=299: ixxxxx#1 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=300: imzxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=300: imzxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=300: imzxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=300: imzxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=300: imzxxx#1 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=300: imzxxx#1 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=301: vxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=301: vxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=301: vxxxxx#1 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=301: vxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=301: vxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=301: vxxxxx#1 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=302: vxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=302: vxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=302: vxxxxx#1 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=302: vxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=302: vxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=302: vxxxxx#1 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=303: sxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=303: sxxxxx#1 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=303: sxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=303: sxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=303: sxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=303: sxxxxx#1 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=304: sxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=304: sxxxxx#1 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=304: sxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=304: sxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=304: sxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=304: sxxxxx#1 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=305: oxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=305: oxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=305: oxxxxx#1 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=305: oxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=305: oxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=305: oxxxxx#1 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=306: oxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=306: oxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=306: oxxxxx#1 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=306: oxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=306: oxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=306: oxxxxx#1 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=307: omzxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=307: omzxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=307: omzxxx#1 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=307: omzxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=307: omzxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=307: omzxxx#1 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=308: ixxxxx#2 nsp=1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=308: ixxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=308: ixxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=308: ixxxxx#2 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=308: ixxxxx#2 nsp=1 mass=0 + 1.341640786499874e+01, 1.788854381999831e+01 } ); // itest=308: ixxxxx#2 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=309: ixxxxx#2 nsp=1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=309: ixxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=309: ixxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=309: ixxxxx#2 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=309: ixxxxx#2 nsp=1 mass=0 + 1.341640786499874e+01, 1.788854381999831e+01 } ); // itest=309: ixxxxx#2 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=310: ixzxxx#2 nsp=1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=310: ixzxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=310: ixzxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=310: ixzxxx#2 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=310: ixzxxx#2 nsp=1 mass=0 + 1.341640786499874e+01, 1.788854381999832e+01 } ); // itest=310: ixzxxx#2 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=311: vxxxxx#2 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=311: vxxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=311: vxxxxx#2 nsp=1 mass=0 + -0.000000000000000e+00, -5.656854249492381e-01, // itest=311: vxxxxx#2 nsp=1 mass=0 + -0.000000000000000e+00, 4.242640687119285e-01, // itest=311: vxxxxx#2 nsp=1 mass=0 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=311: vxxxxx#2 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=312: vxxxxx#2 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=312: vxxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=312: vxxxxx#2 nsp=1 mass=0 + -0.000000000000000e+00, -5.656854249492381e-01, // itest=312: vxxxxx#2 nsp=1 mass=0 + -0.000000000000000e+00, 4.242640687119285e-01, // itest=312: vxxxxx#2 nsp=1 mass=0 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=312: vxxxxx#2 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=313: sxxxxx#2 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=313: sxxxxx#2 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=313: sxxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=313: sxxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=313: sxxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=313: sxxxxx#2 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=314: sxxxxx#2 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=314: sxxxxx#2 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=314: sxxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=314: sxxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=314: sxxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=314: sxxxxx#2 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=315: oxxxxx#2 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=315: oxxxxx#2 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=315: oxxxxx#2 nsp=1 mass=0 + 1.341640786499874e+01, -1.788854381999831e+01, // itest=315: oxxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=315: oxxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=315: oxxxxx#2 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=316: oxxxxx#2 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=316: oxxxxx#2 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=316: oxxxxx#2 nsp=1 mass=0 + 1.341640786499874e+01, -1.788854381999831e+01, // itest=316: oxxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=316: oxxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=316: oxxxxx#2 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=317: oxzxxx#2 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=317: oxzxxx#2 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=317: oxzxxx#2 nsp=1 mass=0 + 1.341640786499874e+01, -1.788854381999832e+01, // itest=317: oxzxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=317: oxzxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=317: oxzxxx#2 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=318: ixxxxx#3 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=318: ixxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=318: ixxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=318: ixxxxx#3 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=318: ixxxxx#3 nsp=1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=318: ixxxxx#3 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=319: ixxxxx#3 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=319: ixxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=319: ixxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=319: ixxxxx#3 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=319: ixxxxx#3 nsp=1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=319: ixxxxx#3 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=320: ixzxxx#3 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=320: ixzxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=320: ixzxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=320: ixzxxx#3 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=320: ixzxxx#3 nsp=1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=320: ixzxxx#3 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=321: vxxxxx#3 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=321: vxxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=321: vxxxxx#3 nsp=1 mass=0 + -3.394112549695428e-01, -5.656854249492381e-01, // itest=321: vxxxxx#3 nsp=1 mass=0 + -4.525483399593904e-01, 4.242640687119285e-01, // itest=321: vxxxxx#3 nsp=1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=321: vxxxxx#3 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=322: vxxxxx#3 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=322: vxxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=322: vxxxxx#3 nsp=1 mass=0 + -3.394112549695428e-01, -5.656854249492381e-01, // itest=322: vxxxxx#3 nsp=1 mass=0 + -4.525483399593904e-01, 4.242640687119285e-01, // itest=322: vxxxxx#3 nsp=1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=322: vxxxxx#3 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=323: sxxxxx#3 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=323: sxxxxx#3 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=323: sxxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=323: sxxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=323: sxxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=323: sxxxxx#3 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=324: sxxxxx#3 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=324: sxxxxx#3 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=324: sxxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=324: sxxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=324: sxxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=324: sxxxxx#3 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=325: oxxxxx#3 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=325: oxxxxx#3 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=325: oxxxxx#3 nsp=1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=325: oxxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=325: oxxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=325: oxxxxx#3 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=326: oxxxxx#3 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=326: oxxxxx#3 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=326: oxxxxx#3 nsp=1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=326: oxxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=326: oxxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=326: oxxxxx#3 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=327: oxzxxx#3 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=327: oxzxxx#3 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=327: oxzxxx#3 nsp=1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=327: oxzxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=327: oxzxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=327: oxzxxx#3 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=328: ixxxxx#4 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=328: ixxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=328: ixxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=328: ixxxxx#4 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=328: ixxxxx#4 nsp=1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01 } ); // itest=328: ixxxxx#4 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=329: ixxxxx#4 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=329: ixxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=329: ixxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=329: ixxxxx#4 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=329: ixxxxx#4 nsp=1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01 } ); // itest=329: ixxxxx#4 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=330: ixzxxx#4 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=330: ixzxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=330: ixzxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=330: ixzxxx#4 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=330: ixzxxx#4 nsp=1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01 } ); // itest=330: ixzxxx#4 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=331: vxxxxx#4 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=331: vxxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=331: vxxxxx#4 nsp=1 mass=0 + 3.394112549695428e-01, -5.656854249492381e-01, // itest=331: vxxxxx#4 nsp=1 mass=0 + 4.525483399593904e-01, 4.242640687119285e-01, // itest=331: vxxxxx#4 nsp=1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=331: vxxxxx#4 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=332: vxxxxx#4 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=332: vxxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=332: vxxxxx#4 nsp=1 mass=0 + 3.394112549695428e-01, -5.656854249492381e-01, // itest=332: vxxxxx#4 nsp=1 mass=0 + 4.525483399593904e-01, 4.242640687119285e-01, // itest=332: vxxxxx#4 nsp=1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=332: vxxxxx#4 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=333: sxxxxx#4 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=333: sxxxxx#4 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=333: sxxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=333: sxxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=333: sxxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=333: sxxxxx#4 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=334: sxxxxx#4 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=334: sxxxxx#4 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=334: sxxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=334: sxxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=334: sxxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=334: sxxxxx#4 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=335: oxxxxx#4 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=335: oxxxxx#4 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=335: oxxxxx#4 nsp=1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=335: oxxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=335: oxxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=335: oxxxxx#4 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=336: oxxxxx#4 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=336: oxxxxx#4 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=336: oxxxxx#4 nsp=1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=336: oxxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=336: oxxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=336: oxxxxx#4 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=337: oxzxxx#4 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=337: oxzxxx#4 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=337: oxzxxx#4 nsp=1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=337: oxzxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=337: oxzxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=337: oxzxxx#4 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=338: ixxxxx#5 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=338: ixxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=338: ixxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=338: ixxxxx#5 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=338: ixxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=338: ixxxxx#5 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=339: ixxxxx#5 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=339: ixxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=339: ixxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=339: ixxxxx#5 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=339: ixxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=339: ixxxxx#5 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=340: ipzxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=340: ipzxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=340: ipzxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=340: ipzxxx#5 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=340: ipzxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=340: ipzxxx#5 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=341: vxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=341: vxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=341: vxxxxx#5 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=341: vxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=341: vxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=341: vxxxxx#5 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=342: vxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=342: vxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=342: vxxxxx#5 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=342: vxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=342: vxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=342: vxxxxx#5 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=343: sxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=343: sxxxxx#5 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=343: sxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=343: sxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=343: sxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=343: sxxxxx#5 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=344: sxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=344: sxxxxx#5 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=344: sxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=344: sxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=344: sxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=344: sxxxxx#5 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=345: oxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=345: oxxxxx#5 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=345: oxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=345: oxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=345: oxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=345: oxxxxx#5 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=346: oxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=346: oxxxxx#5 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=346: oxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=346: oxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=346: oxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=346: oxxxxx#5 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=347: opzxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=347: opzxxx#5 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=347: opzxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=347: opzxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=347: opzxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=347: opzxxx#5 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=348: ixxxxx#6 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=348: ixxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=348: ixxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=348: ixxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=348: ixxxxx#6 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=348: ixxxxx#6 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=349: ixxxxx#6 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=349: ixxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=349: ixxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=349: ixxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=349: ixxxxx#6 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=349: ixxxxx#6 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=350: imzxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=350: imzxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=350: imzxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=350: imzxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=350: imzxxx#6 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=350: imzxxx#6 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=351: vxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=351: vxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=351: vxxxxx#6 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=351: vxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=351: vxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=351: vxxxxx#6 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=352: vxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=352: vxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=352: vxxxxx#6 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=352: vxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=352: vxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=352: vxxxxx#6 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=353: sxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=353: sxxxxx#6 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=353: sxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=353: sxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=353: sxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=353: sxxxxx#6 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=354: sxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=354: sxxxxx#6 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=354: sxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=354: sxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=354: sxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=354: sxxxxx#6 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=355: oxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=355: oxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=355: oxxxxx#6 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=355: oxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=355: oxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=355: oxxxxx#6 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=356: oxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=356: oxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=356: oxxxxx#6 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=356: oxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=356: oxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=356: oxxxxx#6 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=357: omzxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=357: omzxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=357: omzxxx#6 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=357: omzxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=357: omzxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=357: omzxxx#6 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=358: ixxxxx#7 nsp=1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=358: ixxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=358: ixxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=358: ixxxxx#7 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=358: ixxxxx#7 nsp=1 mass=0 + 1.341640786499874e+01, 1.788854381999831e+01 } ); // itest=358: ixxxxx#7 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=359: ixxxxx#7 nsp=1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=359: ixxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=359: ixxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=359: ixxxxx#7 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=359: ixxxxx#7 nsp=1 mass=0 + 1.341640786499874e+01, 1.788854381999831e+01 } ); // itest=359: ixxxxx#7 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=360: ixzxxx#7 nsp=1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=360: ixzxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=360: ixzxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=360: ixzxxx#7 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=360: ixzxxx#7 nsp=1 mass=0 + 1.341640786499874e+01, 1.788854381999832e+01 } ); // itest=360: ixzxxx#7 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=361: vxxxxx#7 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=361: vxxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=361: vxxxxx#7 nsp=1 mass=0 + -0.000000000000000e+00, -5.656854249492381e-01, // itest=361: vxxxxx#7 nsp=1 mass=0 + -0.000000000000000e+00, 4.242640687119285e-01, // itest=361: vxxxxx#7 nsp=1 mass=0 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=361: vxxxxx#7 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=362: vxxxxx#7 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=362: vxxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=362: vxxxxx#7 nsp=1 mass=0 + -0.000000000000000e+00, -5.656854249492381e-01, // itest=362: vxxxxx#7 nsp=1 mass=0 + -0.000000000000000e+00, 4.242640687119285e-01, // itest=362: vxxxxx#7 nsp=1 mass=0 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=362: vxxxxx#7 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=363: sxxxxx#7 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=363: sxxxxx#7 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=363: sxxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=363: sxxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=363: sxxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=363: sxxxxx#7 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=364: sxxxxx#7 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=364: sxxxxx#7 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=364: sxxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=364: sxxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=364: sxxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=364: sxxxxx#7 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=365: oxxxxx#7 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=365: oxxxxx#7 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=365: oxxxxx#7 nsp=1 mass=0 + 1.341640786499874e+01, -1.788854381999831e+01, // itest=365: oxxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=365: oxxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=365: oxxxxx#7 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=366: oxxxxx#7 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=366: oxxxxx#7 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=366: oxxxxx#7 nsp=1 mass=0 + 1.341640786499874e+01, -1.788854381999831e+01, // itest=366: oxxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=366: oxxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=366: oxxxxx#7 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=367: oxzxxx#7 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=367: oxzxxx#7 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=367: oxzxxx#7 nsp=1 mass=0 + 1.341640786499874e+01, -1.788854381999832e+01, // itest=367: oxzxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=367: oxzxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=367: oxzxxx#7 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=368: ixxxxx#8 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=368: ixxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=368: ixxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=368: ixxxxx#8 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=368: ixxxxx#8 nsp=1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=368: ixxxxx#8 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=369: ixxxxx#8 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=369: ixxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=369: ixxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=369: ixxxxx#8 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=369: ixxxxx#8 nsp=1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=369: ixxxxx#8 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=370: ixzxxx#8 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=370: ixzxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=370: ixzxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=370: ixzxxx#8 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=370: ixzxxx#8 nsp=1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=370: ixzxxx#8 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=371: vxxxxx#8 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=371: vxxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=371: vxxxxx#8 nsp=1 mass=0 + -3.394112549695428e-01, -5.656854249492381e-01, // itest=371: vxxxxx#8 nsp=1 mass=0 + -4.525483399593904e-01, 4.242640687119285e-01, // itest=371: vxxxxx#8 nsp=1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=371: vxxxxx#8 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=372: vxxxxx#8 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=372: vxxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=372: vxxxxx#8 nsp=1 mass=0 + -3.394112549695428e-01, -5.656854249492381e-01, // itest=372: vxxxxx#8 nsp=1 mass=0 + -4.525483399593904e-01, 4.242640687119285e-01, // itest=372: vxxxxx#8 nsp=1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=372: vxxxxx#8 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=373: sxxxxx#8 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=373: sxxxxx#8 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=373: sxxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=373: sxxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=373: sxxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=373: sxxxxx#8 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=374: sxxxxx#8 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=374: sxxxxx#8 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=374: sxxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=374: sxxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=374: sxxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=374: sxxxxx#8 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=375: oxxxxx#8 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=375: oxxxxx#8 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=375: oxxxxx#8 nsp=1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=375: oxxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=375: oxxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=375: oxxxxx#8 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=376: oxxxxx#8 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=376: oxxxxx#8 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=376: oxxxxx#8 nsp=1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=376: oxxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=376: oxxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=376: oxxxxx#8 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=377: oxzxxx#8 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=377: oxzxxx#8 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=377: oxzxxx#8 nsp=1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=377: oxzxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=377: oxzxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=377: oxzxxx#8 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=378: ixxxxx#9 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=378: ixxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=378: ixxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=378: ixxxxx#9 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=378: ixxxxx#9 nsp=1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01 } ); // itest=378: ixxxxx#9 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=379: ixxxxx#9 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=379: ixxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=379: ixxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=379: ixxxxx#9 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=379: ixxxxx#9 nsp=1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01 } ); // itest=379: ixxxxx#9 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=380: ixzxxx#9 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=380: ixzxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=380: ixzxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=380: ixzxxx#9 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=380: ixzxxx#9 nsp=1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01 } ); // itest=380: ixzxxx#9 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=381: vxxxxx#9 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=381: vxxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=381: vxxxxx#9 nsp=1 mass=0 + 3.394112549695428e-01, -5.656854249492381e-01, // itest=381: vxxxxx#9 nsp=1 mass=0 + 4.525483399593904e-01, 4.242640687119285e-01, // itest=381: vxxxxx#9 nsp=1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=381: vxxxxx#9 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=382: vxxxxx#9 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=382: vxxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=382: vxxxxx#9 nsp=1 mass=0 + 3.394112549695428e-01, -5.656854249492381e-01, // itest=382: vxxxxx#9 nsp=1 mass=0 + 4.525483399593904e-01, 4.242640687119285e-01, // itest=382: vxxxxx#9 nsp=1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=382: vxxxxx#9 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=383: sxxxxx#9 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=383: sxxxxx#9 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=383: sxxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=383: sxxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=383: sxxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=383: sxxxxx#9 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=384: sxxxxx#9 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=384: sxxxxx#9 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=384: sxxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=384: sxxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=384: sxxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=384: sxxxxx#9 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=385: oxxxxx#9 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=385: oxxxxx#9 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=385: oxxxxx#9 nsp=1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=385: oxxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=385: oxxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=385: oxxxxx#9 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=386: oxxxxx#9 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=386: oxxxxx#9 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=386: oxxxxx#9 nsp=1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=386: oxxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=386: oxxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=386: oxxxxx#9 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=387: oxzxxx#9 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=387: oxzxxx#9 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=387: oxzxxx#9 nsp=1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=387: oxzxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=387: oxzxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=387: oxzxxx#9 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=388: ixxxxx#10 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=388: ixxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=388: ixxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=388: ixxxxx#10 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=388: ixxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=388: ixxxxx#10 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=389: ixxxxx#10 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=389: ixxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=389: ixxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=389: ixxxxx#10 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=389: ixxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=389: ixxxxx#10 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=390: ipzxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=390: ipzxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=390: ipzxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=390: ipzxxx#10 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=390: ipzxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=390: ipzxxx#10 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=391: vxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=391: vxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=391: vxxxxx#10 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=391: vxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=391: vxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=391: vxxxxx#10 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=392: vxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=392: vxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=392: vxxxxx#10 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=392: vxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=392: vxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=392: vxxxxx#10 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=393: sxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=393: sxxxxx#10 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=393: sxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=393: sxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=393: sxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=393: sxxxxx#10 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=394: sxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=394: sxxxxx#10 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=394: sxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=394: sxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=394: sxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=394: sxxxxx#10 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=395: oxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=395: oxxxxx#10 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=395: oxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=395: oxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=395: oxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=395: oxxxxx#10 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=396: oxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=396: oxxxxx#10 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=396: oxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=396: oxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=396: oxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=396: oxxxxx#10 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=397: opzxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=397: opzxxx#10 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=397: opzxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=397: opzxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=397: opzxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=397: opzxxx#10 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=398: ixxxxx#11 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=398: ixxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=398: ixxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=398: ixxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=398: ixxxxx#11 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=398: ixxxxx#11 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=399: ixxxxx#11 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=399: ixxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=399: ixxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=399: ixxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=399: ixxxxx#11 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=399: ixxxxx#11 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=400: imzxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=400: imzxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=400: imzxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=400: imzxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=400: imzxxx#11 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=400: imzxxx#11 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=401: vxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=401: vxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=401: vxxxxx#11 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=401: vxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=401: vxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=401: vxxxxx#11 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=402: vxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=402: vxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=402: vxxxxx#11 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=402: vxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=402: vxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=402: vxxxxx#11 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=403: sxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=403: sxxxxx#11 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=403: sxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=403: sxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=403: sxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=403: sxxxxx#11 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=404: sxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=404: sxxxxx#11 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=404: sxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=404: sxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=404: sxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=404: sxxxxx#11 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=405: oxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=405: oxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=405: oxxxxx#11 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=405: oxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=405: oxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=405: oxxxxx#11 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=406: oxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=406: oxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=406: oxxxxx#11 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=406: oxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=406: oxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=406: oxxxxx#11 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=407: omzxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=407: omzxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=407: omzxxx#11 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=407: omzxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=407: omzxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=407: omzxxx#11 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=408: ixxxxx#12 nsp=1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=408: ixxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=408: ixxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=408: ixxxxx#12 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=408: ixxxxx#12 nsp=1 mass=0 + 1.341640786499874e+01, 1.788854381999831e+01 } ); // itest=408: ixxxxx#12 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=409: ixxxxx#12 nsp=1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=409: ixxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=409: ixxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=409: ixxxxx#12 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=409: ixxxxx#12 nsp=1 mass=0 + 1.341640786499874e+01, 1.788854381999831e+01 } ); // itest=409: ixxxxx#12 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=410: ixzxxx#12 nsp=1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=410: ixzxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=410: ixzxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=410: ixzxxx#12 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=410: ixzxxx#12 nsp=1 mass=0 + 1.341640786499874e+01, 1.788854381999832e+01 } ); // itest=410: ixzxxx#12 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=411: vxxxxx#12 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=411: vxxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=411: vxxxxx#12 nsp=1 mass=0 + -0.000000000000000e+00, -5.656854249492381e-01, // itest=411: vxxxxx#12 nsp=1 mass=0 + -0.000000000000000e+00, 4.242640687119285e-01, // itest=411: vxxxxx#12 nsp=1 mass=0 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=411: vxxxxx#12 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=412: vxxxxx#12 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=412: vxxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=412: vxxxxx#12 nsp=1 mass=0 + -0.000000000000000e+00, -5.656854249492381e-01, // itest=412: vxxxxx#12 nsp=1 mass=0 + -0.000000000000000e+00, 4.242640687119285e-01, // itest=412: vxxxxx#12 nsp=1 mass=0 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=412: vxxxxx#12 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=413: sxxxxx#12 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=413: sxxxxx#12 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=413: sxxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=413: sxxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=413: sxxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=413: sxxxxx#12 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=414: sxxxxx#12 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=414: sxxxxx#12 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=414: sxxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=414: sxxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=414: sxxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=414: sxxxxx#12 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=415: oxxxxx#12 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=415: oxxxxx#12 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=415: oxxxxx#12 nsp=1 mass=0 + 1.341640786499874e+01, -1.788854381999831e+01, // itest=415: oxxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=415: oxxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=415: oxxxxx#12 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=416: oxxxxx#12 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=416: oxxxxx#12 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=416: oxxxxx#12 nsp=1 mass=0 + 1.341640786499874e+01, -1.788854381999831e+01, // itest=416: oxxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=416: oxxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=416: oxxxxx#12 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=417: oxzxxx#12 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=417: oxzxxx#12 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=417: oxzxxx#12 nsp=1 mass=0 + 1.341640786499874e+01, -1.788854381999832e+01, // itest=417: oxzxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=417: oxzxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=417: oxzxxx#12 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=418: ixxxxx#13 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=418: ixxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=418: ixxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=418: ixxxxx#13 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=418: ixxxxx#13 nsp=1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=418: ixxxxx#13 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=419: ixxxxx#13 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=419: ixxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=419: ixxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=419: ixxxxx#13 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=419: ixxxxx#13 nsp=1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=419: ixxxxx#13 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=420: ixzxxx#13 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=420: ixzxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=420: ixzxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=420: ixzxxx#13 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=420: ixzxxx#13 nsp=1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=420: ixzxxx#13 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=421: vxxxxx#13 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=421: vxxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=421: vxxxxx#13 nsp=1 mass=0 + -3.394112549695428e-01, -5.656854249492381e-01, // itest=421: vxxxxx#13 nsp=1 mass=0 + -4.525483399593904e-01, 4.242640687119285e-01, // itest=421: vxxxxx#13 nsp=1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=421: vxxxxx#13 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=422: vxxxxx#13 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=422: vxxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=422: vxxxxx#13 nsp=1 mass=0 + -3.394112549695428e-01, -5.656854249492381e-01, // itest=422: vxxxxx#13 nsp=1 mass=0 + -4.525483399593904e-01, 4.242640687119285e-01, // itest=422: vxxxxx#13 nsp=1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=422: vxxxxx#13 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=423: sxxxxx#13 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=423: sxxxxx#13 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=423: sxxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=423: sxxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=423: sxxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=423: sxxxxx#13 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=424: sxxxxx#13 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=424: sxxxxx#13 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=424: sxxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=424: sxxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=424: sxxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=424: sxxxxx#13 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=425: oxxxxx#13 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=425: oxxxxx#13 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=425: oxxxxx#13 nsp=1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=425: oxxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=425: oxxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=425: oxxxxx#13 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=426: oxxxxx#13 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=426: oxxxxx#13 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=426: oxxxxx#13 nsp=1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=426: oxxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=426: oxxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=426: oxxxxx#13 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=427: oxzxxx#13 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=427: oxzxxx#13 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=427: oxzxxx#13 nsp=1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=427: oxzxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=427: oxzxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=427: oxzxxx#13 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=428: ixxxxx#14 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=428: ixxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=428: ixxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=428: ixxxxx#14 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=428: ixxxxx#14 nsp=1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01 } ); // itest=428: ixxxxx#14 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=429: ixxxxx#14 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=429: ixxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=429: ixxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=429: ixxxxx#14 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=429: ixxxxx#14 nsp=1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01 } ); // itest=429: ixxxxx#14 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=430: ixzxxx#14 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=430: ixzxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=430: ixzxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=430: ixzxxx#14 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=430: ixzxxx#14 nsp=1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01 } ); // itest=430: ixzxxx#14 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=431: vxxxxx#14 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=431: vxxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=431: vxxxxx#14 nsp=1 mass=0 + 3.394112549695428e-01, -5.656854249492381e-01, // itest=431: vxxxxx#14 nsp=1 mass=0 + 4.525483399593904e-01, 4.242640687119285e-01, // itest=431: vxxxxx#14 nsp=1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=431: vxxxxx#14 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=432: vxxxxx#14 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=432: vxxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=432: vxxxxx#14 nsp=1 mass=0 + 3.394112549695428e-01, -5.656854249492381e-01, // itest=432: vxxxxx#14 nsp=1 mass=0 + 4.525483399593904e-01, 4.242640687119285e-01, // itest=432: vxxxxx#14 nsp=1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=432: vxxxxx#14 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=433: sxxxxx#14 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=433: sxxxxx#14 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=433: sxxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=433: sxxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=433: sxxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=433: sxxxxx#14 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=434: sxxxxx#14 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=434: sxxxxx#14 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=434: sxxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=434: sxxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=434: sxxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=434: sxxxxx#14 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=435: oxxxxx#14 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=435: oxxxxx#14 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=435: oxxxxx#14 nsp=1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=435: oxxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=435: oxxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=435: oxxxxx#14 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=436: oxxxxx#14 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=436: oxxxxx#14 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=436: oxxxxx#14 nsp=1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=436: oxxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=436: oxxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=436: oxxxxx#14 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=437: oxzxxx#14 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=437: oxzxxx#14 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=437: oxzxxx#14 nsp=1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=437: oxzxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=437: oxzxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=437: oxzxxx#14 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=438: ixxxxx#15 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=438: ixxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=438: ixxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=438: ixxxxx#15 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=438: ixxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=438: ixxxxx#15 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=439: ixxxxx#15 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=439: ixxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=439: ixxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=439: ixxxxx#15 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=439: ixxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=439: ixxxxx#15 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=440: ipzxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=440: ipzxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=440: ipzxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=440: ipzxxx#15 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=440: ipzxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=440: ipzxxx#15 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=441: vxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=441: vxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=441: vxxxxx#15 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=441: vxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=441: vxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=441: vxxxxx#15 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=442: vxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=442: vxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=442: vxxxxx#15 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=442: vxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=442: vxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=442: vxxxxx#15 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=443: sxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=443: sxxxxx#15 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=443: sxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=443: sxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=443: sxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=443: sxxxxx#15 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=444: sxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=444: sxxxxx#15 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=444: sxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=444: sxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=444: sxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=444: sxxxxx#15 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=445: oxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=445: oxxxxx#15 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=445: oxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=445: oxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=445: oxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=445: oxxxxx#15 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=446: oxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=446: oxxxxx#15 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=446: oxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=446: oxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=446: oxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=446: oxxxxx#15 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=447: opzxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=447: opzxxx#15 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=447: opzxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=447: opzxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=447: opzxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=447: opzxxx#15 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=448: ixxxxx#16 nsp=1 mass=500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=448: ixxxxx#16 nsp=1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=448: ixxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=448: ixxxxx#16 nsp=1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=448: ixxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=448: ixxxxx#16 nsp=1 mass=500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=449: ixxxxx#16 nsp=1 mass=-500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=449: ixxxxx#16 nsp=1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=449: ixxxxx#16 nsp=1 mass=-500 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=449: ixxxxx#16 nsp=1 mass=-500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=449: ixxxxx#16 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=449: ixxxxx#16 nsp=1 mass=-500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=450: vxxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=450: vxxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=450: vxxxxx#16 nsp=1 mass=500 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=450: vxxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=450: vxxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=450: vxxxxx#16 nsp=1 mass=500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=451: vxxxxx#16 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=451: vxxxxx#16 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=451: vxxxxx#16 nsp=1 mass=-500 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=451: vxxxxx#16 nsp=1 mass=-500 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=451: vxxxxx#16 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=451: vxxxxx#16 nsp=1 mass=-500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=452: sxxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=452: sxxxxx#16 nsp=1 mass=500 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=452: sxxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=452: sxxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=452: sxxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=452: sxxxxx#16 nsp=1 mass=500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=453: sxxxxx#16 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=453: sxxxxx#16 nsp=1 mass=-500 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=453: sxxxxx#16 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=453: sxxxxx#16 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=453: sxxxxx#16 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=453: sxxxxx#16 nsp=1 mass=-500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=454: oxxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=454: oxxxxx#16 nsp=1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=454: oxxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=454: oxxxxx#16 nsp=1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=454: oxxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=454: oxxxxx#16 nsp=1 mass=500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=455: oxxxxx#16 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=455: oxxxxx#16 nsp=1 mass=-500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=455: oxxxxx#16 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=455: oxxxxx#16 nsp=1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=455: oxxxxx#16 nsp=1 mass=-500 + -0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=455: oxxxxx#16 nsp=1 mass=-500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=456: ixxxxx#17 nsp=1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=456: ixxxxx#17 nsp=1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=456: ixxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=456: ixxxxx#17 nsp=1 mass=400 + 2.828427124746190e+01, 0.000000000000000e+00, // itest=456: ixxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=456: ixxxxx#17 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=457: ixxxxx#17 nsp=1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=457: ixxxxx#17 nsp=1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=457: ixxxxx#17 nsp=1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=457: ixxxxx#17 nsp=1 mass=-400 + 2.828427124746190e+01, 0.000000000000000e+00, // itest=457: ixxxxx#17 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=457: ixxxxx#17 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=458: vxxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=458: vxxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=458: vxxxxx#17 nsp=1 mass=400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=458: vxxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=458: vxxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=458: vxxxxx#17 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=459: vxxxxx#17 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=459: vxxxxx#17 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=459: vxxxxx#17 nsp=1 mass=-400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=459: vxxxxx#17 nsp=1 mass=-400 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=459: vxxxxx#17 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=459: vxxxxx#17 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=460: sxxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=460: sxxxxx#17 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=460: sxxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=460: sxxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=460: sxxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=460: sxxxxx#17 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=461: sxxxxx#17 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=461: sxxxxx#17 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=461: sxxxxx#17 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=461: sxxxxx#17 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=461: sxxxxx#17 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=461: sxxxxx#17 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=462: oxxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=462: oxxxxx#17 nsp=1 mass=400 + 2.828427124746190e+01, 0.000000000000000e+00, // itest=462: oxxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=462: oxxxxx#17 nsp=1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=462: oxxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=462: oxxxxx#17 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=463: oxxxxx#17 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=463: oxxxxx#17 nsp=1 mass=-400 + 2.828427124746190e+01, 0.000000000000000e+00, // itest=463: oxxxxx#17 nsp=1 mass=-400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=463: oxxxxx#17 nsp=1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=463: oxxxxx#17 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=463: oxxxxx#17 nsp=1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=464: ixxxxx#18 nsp=1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=464: ixxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=464: ixxxxx#18 nsp=1 mass=400 + -1.414213562373095e+01, 0.000000000000000e+00, // itest=464: ixxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=464: ixxxxx#18 nsp=1 mass=400 + -2.828427124746190e+01, 0.000000000000000e+00 } ); // itest=464: ixxxxx#18 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=465: ixxxxx#18 nsp=1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=465: ixxxxx#18 nsp=1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=465: ixxxxx#18 nsp=1 mass=-400 + 1.414213562373095e+01, -0.000000000000000e+00, // itest=465: ixxxxx#18 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=465: ixxxxx#18 nsp=1 mass=-400 + -2.828427124746190e+01, 0.000000000000000e+00 } ); // itest=465: ixxxxx#18 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=466: vxxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=466: vxxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=466: vxxxxx#18 nsp=1 mass=400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=466: vxxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=466: vxxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=466: vxxxxx#18 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=467: vxxxxx#18 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=467: vxxxxx#18 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=467: vxxxxx#18 nsp=1 mass=-400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=467: vxxxxx#18 nsp=1 mass=-400 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=467: vxxxxx#18 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=467: vxxxxx#18 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=468: sxxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=468: sxxxxx#18 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=468: sxxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=468: sxxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=468: sxxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=468: sxxxxx#18 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=469: sxxxxx#18 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=469: sxxxxx#18 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=469: sxxxxx#18 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=469: sxxxxx#18 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=469: sxxxxx#18 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=469: sxxxxx#18 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=470: oxxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=470: oxxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=470: oxxxxx#18 nsp=1 mass=400 + -2.828427124746190e+01, 0.000000000000000e+00, // itest=470: oxxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=470: oxxxxx#18 nsp=1 mass=400 + -1.414213562373095e+01, 0.000000000000000e+00 } ); // itest=470: oxxxxx#18 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=471: oxxxxx#18 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=471: oxxxxx#18 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=471: oxxxxx#18 nsp=1 mass=-400 + -2.828427124746190e+01, 0.000000000000000e+00, // itest=471: oxxxxx#18 nsp=1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=471: oxxxxx#18 nsp=1 mass=-400 + 1.414213562373095e+01, -0.000000000000000e+00 } ); // itest=471: oxxxxx#18 nsp=1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=472: ixxxxx#19 nsp=1 mass=400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=472: ixxxxx#19 nsp=1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=472: ixxxxx#19 nsp=1 mass=400 + 5.999999999999999e+00, 7.999999999999999e+00, // itest=472: ixxxxx#19 nsp=1 mass=400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=472: ixxxxx#19 nsp=1 mass=400 + 1.200000000000000e+01, 1.600000000000000e+01 } ); // itest=472: ixxxxx#19 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=473: ixxxxx#19 nsp=1 mass=-400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=473: ixxxxx#19 nsp=1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00, // itest=473: ixxxxx#19 nsp=1 mass=-400 + -5.999999999999999e+00, -7.999999999999999e+00, // itest=473: ixxxxx#19 nsp=1 mass=-400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=473: ixxxxx#19 nsp=1 mass=-400 + 1.200000000000000e+01, 1.600000000000000e+01 } ); // itest=473: ixxxxx#19 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=474: vxxxxx#19 nsp=1 mass=400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=474: vxxxxx#19 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=474: vxxxxx#19 nsp=1 mass=400 + 0.000000000000000e+00, -5.656854249492381e-01, // itest=474: vxxxxx#19 nsp=1 mass=400 + 0.000000000000000e+00, 4.242640687119285e-01, // itest=474: vxxxxx#19 nsp=1 mass=400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=474: vxxxxx#19 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=475: vxxxxx#19 nsp=1 mass=-400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=475: vxxxxx#19 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=475: vxxxxx#19 nsp=1 mass=-400 + -0.000000000000000e+00, -5.656854249492381e-01, // itest=475: vxxxxx#19 nsp=1 mass=-400 + -0.000000000000000e+00, 4.242640687119285e-01, // itest=475: vxxxxx#19 nsp=1 mass=-400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=475: vxxxxx#19 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=476: sxxxxx#19 nsp=1 mass=400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=476: sxxxxx#19 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=476: sxxxxx#19 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=476: sxxxxx#19 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=476: sxxxxx#19 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=476: sxxxxx#19 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=477: sxxxxx#19 nsp=1 mass=-400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=477: sxxxxx#19 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=477: sxxxxx#19 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=477: sxxxxx#19 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=477: sxxxxx#19 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=477: sxxxxx#19 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=478: oxxxxx#19 nsp=1 mass=400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=478: oxxxxx#19 nsp=1 mass=400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=478: oxxxxx#19 nsp=1 mass=400 + 1.200000000000000e+01, -1.600000000000000e+01, // itest=478: oxxxxx#19 nsp=1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=478: oxxxxx#19 nsp=1 mass=400 + 5.999999999999999e+00, -7.999999999999999e+00 } ); // itest=478: oxxxxx#19 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=479: oxxxxx#19 nsp=1 mass=-400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=479: oxxxxx#19 nsp=1 mass=-400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=479: oxxxxx#19 nsp=1 mass=-400 + 1.200000000000000e+01, -1.600000000000000e+01, // itest=479: oxxxxx#19 nsp=1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00, // itest=479: oxxxxx#19 nsp=1 mass=-400 + -5.999999999999999e+00, 7.999999999999999e+00 } ); // itest=479: oxxxxx#19 nsp=1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=480: ixxxxx#20 nsp=1 mass=400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=480: ixxxxx#20 nsp=1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=480: ixxxxx#20 nsp=1 mass=400 + -7.999999999999999e+00, -5.999999999999999e+00, // itest=480: ixxxxx#20 nsp=1 mass=400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=480: ixxxxx#20 nsp=1 mass=400 + -1.600000000000000e+01, -1.200000000000000e+01 } ); // itest=480: ixxxxx#20 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=481: ixxxxx#20 nsp=1 mass=-400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=481: ixxxxx#20 nsp=1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00, // itest=481: ixxxxx#20 nsp=1 mass=-400 + 7.999999999999999e+00, 5.999999999999999e+00, // itest=481: ixxxxx#20 nsp=1 mass=-400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=481: ixxxxx#20 nsp=1 mass=-400 + -1.600000000000000e+01, -1.200000000000000e+01 } ); // itest=481: ixxxxx#20 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=482: vxxxxx#20 nsp=1 mass=400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=482: vxxxxx#20 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=482: vxxxxx#20 nsp=1 mass=400 + 0.000000000000000e+00, 4.242640687119285e-01, // itest=482: vxxxxx#20 nsp=1 mass=400 + 0.000000000000000e+00, -5.656854249492381e-01, // itest=482: vxxxxx#20 nsp=1 mass=400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=482: vxxxxx#20 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=483: vxxxxx#20 nsp=1 mass=-400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=483: vxxxxx#20 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=483: vxxxxx#20 nsp=1 mass=-400 + 0.000000000000000e+00, 4.242640687119285e-01, // itest=483: vxxxxx#20 nsp=1 mass=-400 + 0.000000000000000e+00, -5.656854249492381e-01, // itest=483: vxxxxx#20 nsp=1 mass=-400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=483: vxxxxx#20 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=484: sxxxxx#20 nsp=1 mass=400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=484: sxxxxx#20 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=484: sxxxxx#20 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=484: sxxxxx#20 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=484: sxxxxx#20 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=484: sxxxxx#20 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=485: sxxxxx#20 nsp=1 mass=-400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=485: sxxxxx#20 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=485: sxxxxx#20 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=485: sxxxxx#20 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=485: sxxxxx#20 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=485: sxxxxx#20 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=486: oxxxxx#20 nsp=1 mass=400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=486: oxxxxx#20 nsp=1 mass=400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=486: oxxxxx#20 nsp=1 mass=400 + -1.600000000000000e+01, 1.200000000000000e+01, // itest=486: oxxxxx#20 nsp=1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=486: oxxxxx#20 nsp=1 mass=400 + -7.999999999999999e+00, 5.999999999999999e+00 } ); // itest=486: oxxxxx#20 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=487: oxxxxx#20 nsp=1 mass=-400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=487: oxxxxx#20 nsp=1 mass=-400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=487: oxxxxx#20 nsp=1 mass=-400 + -1.600000000000000e+01, 1.200000000000000e+01, // itest=487: oxxxxx#20 nsp=1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00, // itest=487: oxxxxx#20 nsp=1 mass=-400 + 7.999999999999999e+00, -5.999999999999999e+00 } ); // itest=487: oxxxxx#20 nsp=1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=488: ixxxxx#21 nsp=1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=488: ixxxxx#21 nsp=1 mass=400 + 1.216552506059644e+01, 0.000000000000000e+00, // itest=488: ixxxxx#21 nsp=1 mass=400 + 4.931969619160719e+00, 5.260767593771432e+00, // itest=488: ixxxxx#21 nsp=1 mass=400 + 2.433105012119288e+01, 0.000000000000000e+00, // itest=488: ixxxxx#21 nsp=1 mass=400 + 9.863939238321439e+00, 1.052153518754287e+01 } ); // itest=488: ixxxxx#21 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=489: ixxxxx#21 nsp=1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=489: ixxxxx#21 nsp=1 mass=-400 + -1.216552506059644e+01, -0.000000000000000e+00, // itest=489: ixxxxx#21 nsp=1 mass=-400 + -4.931969619160719e+00, -5.260767593771432e+00, // itest=489: ixxxxx#21 nsp=1 mass=-400 + 2.433105012119288e+01, 0.000000000000000e+00, // itest=489: ixxxxx#21 nsp=1 mass=-400 + 9.863939238321439e+00, 1.052153518754287e+01 } ); // itest=489: ixxxxx#21 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=490: vxxxxx#21 nsp=1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=490: vxxxxx#21 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=490: vxxxxx#21 nsp=1 mass=400 + -2.321373168788980e-01, -5.158607041753289e-01, // itest=490: vxxxxx#21 nsp=1 mass=400 + -2.476131380041579e-01, 4.836194101643708e-01, // itest=490: vxxxxx#21 nsp=1 mass=400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=490: vxxxxx#21 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=491: vxxxxx#21 nsp=1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=491: vxxxxx#21 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=491: vxxxxx#21 nsp=1 mass=-400 + -2.321373168788980e-01, -5.158607041753289e-01, // itest=491: vxxxxx#21 nsp=1 mass=-400 + -2.476131380041579e-01, 4.836194101643708e-01, // itest=491: vxxxxx#21 nsp=1 mass=-400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=491: vxxxxx#21 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=492: sxxxxx#21 nsp=1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=492: sxxxxx#21 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=492: sxxxxx#21 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=492: sxxxxx#21 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=492: sxxxxx#21 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=492: sxxxxx#21 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=493: sxxxxx#21 nsp=1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=493: sxxxxx#21 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=493: sxxxxx#21 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=493: sxxxxx#21 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=493: sxxxxx#21 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=493: sxxxxx#21 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=494: oxxxxx#21 nsp=1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=494: oxxxxx#21 nsp=1 mass=400 + 2.433105012119288e+01, 0.000000000000000e+00, // itest=494: oxxxxx#21 nsp=1 mass=400 + 9.863939238321439e+00, -1.052153518754287e+01, // itest=494: oxxxxx#21 nsp=1 mass=400 + 1.216552506059644e+01, 0.000000000000000e+00, // itest=494: oxxxxx#21 nsp=1 mass=400 + 4.931969619160719e+00, -5.260767593771432e+00 } ); // itest=494: oxxxxx#21 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=495: oxxxxx#21 nsp=1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=495: oxxxxx#21 nsp=1 mass=-400 + 2.433105012119288e+01, 0.000000000000000e+00, // itest=495: oxxxxx#21 nsp=1 mass=-400 + 9.863939238321439e+00, -1.052153518754287e+01, // itest=495: oxxxxx#21 nsp=1 mass=-400 + -1.216552506059644e+01, -0.000000000000000e+00, // itest=495: oxxxxx#21 nsp=1 mass=-400 + -4.931969619160719e+00, 5.260767593771432e+00 } ); // itest=495: oxxxxx#21 nsp=1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=496: ixxxxx#22 nsp=1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=496: ixxxxx#22 nsp=1 mass=400 + 7.211102550927978e+00, 0.000000000000000e+00, // itest=496: ixxxxx#22 nsp=1 mass=400 + 8.320502943378436e+00, 8.875203139603666e+00, // itest=496: ixxxxx#22 nsp=1 mass=400 + 1.442220510185596e+01, 0.000000000000000e+00, // itest=496: ixxxxx#22 nsp=1 mass=400 + 1.664100588675688e+01, 1.775040627920733e+01 } ); // itest=496: ixxxxx#22 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=497: ixxxxx#22 nsp=1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=497: ixxxxx#22 nsp=1 mass=-400 + -7.211102550927978e+00, -0.000000000000000e+00, // itest=497: ixxxxx#22 nsp=1 mass=-400 + -8.320502943378436e+00, -8.875203139603666e+00, // itest=497: ixxxxx#22 nsp=1 mass=-400 + 1.442220510185596e+01, 0.000000000000000e+00, // itest=497: ixxxxx#22 nsp=1 mass=-400 + 1.664100588675688e+01, 1.775040627920733e+01 } ); // itest=497: ixxxxx#22 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=498: vxxxxx#22 nsp=1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=498: vxxxxx#22 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=498: vxxxxx#22 nsp=1 mass=400 + 2.321373168788980e-01, -5.158607041753289e-01, // itest=498: vxxxxx#22 nsp=1 mass=400 + 2.476131380041579e-01, 4.836194101643708e-01, // itest=498: vxxxxx#22 nsp=1 mass=400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=498: vxxxxx#22 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=499: vxxxxx#22 nsp=1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=499: vxxxxx#22 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=499: vxxxxx#22 nsp=1 mass=-400 + 2.321373168788980e-01, -5.158607041753289e-01, // itest=499: vxxxxx#22 nsp=1 mass=-400 + 2.476131380041579e-01, 4.836194101643708e-01, // itest=499: vxxxxx#22 nsp=1 mass=-400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=499: vxxxxx#22 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=500: sxxxxx#22 nsp=1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=500: sxxxxx#22 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=500: sxxxxx#22 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=500: sxxxxx#22 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=500: sxxxxx#22 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=500: sxxxxx#22 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=501: sxxxxx#22 nsp=1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=501: sxxxxx#22 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=501: sxxxxx#22 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=501: sxxxxx#22 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=501: sxxxxx#22 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=501: sxxxxx#22 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=502: oxxxxx#22 nsp=1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=502: oxxxxx#22 nsp=1 mass=400 + 1.442220510185596e+01, 0.000000000000000e+00, // itest=502: oxxxxx#22 nsp=1 mass=400 + 1.664100588675688e+01, -1.775040627920733e+01, // itest=502: oxxxxx#22 nsp=1 mass=400 + 7.211102550927978e+00, 0.000000000000000e+00, // itest=502: oxxxxx#22 nsp=1 mass=400 + 8.320502943378436e+00, -8.875203139603666e+00 } ); // itest=502: oxxxxx#22 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=503: oxxxxx#22 nsp=1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=503: oxxxxx#22 nsp=1 mass=-400 + 1.442220510185596e+01, 0.000000000000000e+00, // itest=503: oxxxxx#22 nsp=1 mass=-400 + 1.664100588675688e+01, -1.775040627920733e+01, // itest=503: oxxxxx#22 nsp=1 mass=-400 + -7.211102550927978e+00, -0.000000000000000e+00, // itest=503: oxxxxx#22 nsp=1 mass=-400 + -8.320502943378436e+00, 8.875203139603666e+00 } ); // itest=503: oxxxxx#22 nsp=1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=504: ixxxxx#23 nsp=1 mass=500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=504: ixxxxx#23 nsp=1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=504: ixxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=504: ixxxxx#23 nsp=1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=504: ixxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=504: ixxxxx#23 nsp=1 mass=500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=505: ixxxxx#23 nsp=1 mass=-500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=505: ixxxxx#23 nsp=1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=505: ixxxxx#23 nsp=1 mass=-500 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=505: ixxxxx#23 nsp=1 mass=-500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=505: ixxxxx#23 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=505: ixxxxx#23 nsp=1 mass=-500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=506: vxxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=506: vxxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=506: vxxxxx#23 nsp=1 mass=500 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=506: vxxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=506: vxxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=506: vxxxxx#23 nsp=1 mass=500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=507: vxxxxx#23 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=507: vxxxxx#23 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=507: vxxxxx#23 nsp=1 mass=-500 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=507: vxxxxx#23 nsp=1 mass=-500 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=507: vxxxxx#23 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=507: vxxxxx#23 nsp=1 mass=-500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=508: sxxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=508: sxxxxx#23 nsp=1 mass=500 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=508: sxxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=508: sxxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=508: sxxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=508: sxxxxx#23 nsp=1 mass=500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=509: sxxxxx#23 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=509: sxxxxx#23 nsp=1 mass=-500 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=509: sxxxxx#23 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=509: sxxxxx#23 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=509: sxxxxx#23 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=509: sxxxxx#23 nsp=1 mass=-500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=510: oxxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=510: oxxxxx#23 nsp=1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=510: oxxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=510: oxxxxx#23 nsp=1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=510: oxxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=510: oxxxxx#23 nsp=1 mass=500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=511: oxxxxx#23 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=511: oxxxxx#23 nsp=1 mass=-500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=511: oxxxxx#23 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=511: oxxxxx#23 nsp=1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=511: oxxxxx#23 nsp=1 mass=-500 + -0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=511: oxxxxx#23 nsp=1 mass=-500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=512: ixxxxx#24 nsp=1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=512: ixxxxx#24 nsp=1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=512: ixxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=512: ixxxxx#24 nsp=1 mass=400 + 2.828427124746190e+01, 0.000000000000000e+00, // itest=512: ixxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=512: ixxxxx#24 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=513: ixxxxx#24 nsp=1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=513: ixxxxx#24 nsp=1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=513: ixxxxx#24 nsp=1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=513: ixxxxx#24 nsp=1 mass=-400 + 2.828427124746190e+01, 0.000000000000000e+00, // itest=513: ixxxxx#24 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=513: ixxxxx#24 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=514: vxxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=514: vxxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=514: vxxxxx#24 nsp=1 mass=400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=514: vxxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=514: vxxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=514: vxxxxx#24 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=515: vxxxxx#24 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=515: vxxxxx#24 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=515: vxxxxx#24 nsp=1 mass=-400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=515: vxxxxx#24 nsp=1 mass=-400 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=515: vxxxxx#24 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=515: vxxxxx#24 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=516: sxxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=516: sxxxxx#24 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=516: sxxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=516: sxxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=516: sxxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=516: sxxxxx#24 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=517: sxxxxx#24 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=517: sxxxxx#24 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=517: sxxxxx#24 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=517: sxxxxx#24 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=517: sxxxxx#24 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=517: sxxxxx#24 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=518: oxxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=518: oxxxxx#24 nsp=1 mass=400 + 2.828427124746190e+01, 0.000000000000000e+00, // itest=518: oxxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=518: oxxxxx#24 nsp=1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=518: oxxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=518: oxxxxx#24 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=519: oxxxxx#24 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=519: oxxxxx#24 nsp=1 mass=-400 + 2.828427124746190e+01, 0.000000000000000e+00, // itest=519: oxxxxx#24 nsp=1 mass=-400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=519: oxxxxx#24 nsp=1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=519: oxxxxx#24 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=519: oxxxxx#24 nsp=1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=520: ixxxxx#25 nsp=1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=520: ixxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=520: ixxxxx#25 nsp=1 mass=400 + -1.414213562373095e+01, 0.000000000000000e+00, // itest=520: ixxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=520: ixxxxx#25 nsp=1 mass=400 + -2.828427124746190e+01, 0.000000000000000e+00 } ); // itest=520: ixxxxx#25 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=521: ixxxxx#25 nsp=1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=521: ixxxxx#25 nsp=1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=521: ixxxxx#25 nsp=1 mass=-400 + 1.414213562373095e+01, -0.000000000000000e+00, // itest=521: ixxxxx#25 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=521: ixxxxx#25 nsp=1 mass=-400 + -2.828427124746190e+01, 0.000000000000000e+00 } ); // itest=521: ixxxxx#25 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=522: vxxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=522: vxxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=522: vxxxxx#25 nsp=1 mass=400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=522: vxxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=522: vxxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=522: vxxxxx#25 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=523: vxxxxx#25 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=523: vxxxxx#25 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=523: vxxxxx#25 nsp=1 mass=-400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=523: vxxxxx#25 nsp=1 mass=-400 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=523: vxxxxx#25 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=523: vxxxxx#25 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=524: sxxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=524: sxxxxx#25 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=524: sxxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=524: sxxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=524: sxxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=524: sxxxxx#25 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=525: sxxxxx#25 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=525: sxxxxx#25 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=525: sxxxxx#25 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=525: sxxxxx#25 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=525: sxxxxx#25 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=525: sxxxxx#25 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=526: oxxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=526: oxxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=526: oxxxxx#25 nsp=1 mass=400 + -2.828427124746190e+01, 0.000000000000000e+00, // itest=526: oxxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=526: oxxxxx#25 nsp=1 mass=400 + -1.414213562373095e+01, 0.000000000000000e+00 } ); // itest=526: oxxxxx#25 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=527: oxxxxx#25 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=527: oxxxxx#25 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=527: oxxxxx#25 nsp=1 mass=-400 + -2.828427124746190e+01, 0.000000000000000e+00, // itest=527: oxxxxx#25 nsp=1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=527: oxxxxx#25 nsp=1 mass=-400 + 1.414213562373095e+01, -0.000000000000000e+00 } ); // itest=527: oxxxxx#25 nsp=1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=528: ixxxxx#26 nsp=1 mass=400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=528: ixxxxx#26 nsp=1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=528: ixxxxx#26 nsp=1 mass=400 + 5.999999999999999e+00, 7.999999999999999e+00, // itest=528: ixxxxx#26 nsp=1 mass=400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=528: ixxxxx#26 nsp=1 mass=400 + 1.200000000000000e+01, 1.600000000000000e+01 } ); // itest=528: ixxxxx#26 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=529: ixxxxx#26 nsp=1 mass=-400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=529: ixxxxx#26 nsp=1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00, // itest=529: ixxxxx#26 nsp=1 mass=-400 + -5.999999999999999e+00, -7.999999999999999e+00, // itest=529: ixxxxx#26 nsp=1 mass=-400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=529: ixxxxx#26 nsp=1 mass=-400 + 1.200000000000000e+01, 1.600000000000000e+01 } ); // itest=529: ixxxxx#26 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=530: vxxxxx#26 nsp=1 mass=400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=530: vxxxxx#26 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=530: vxxxxx#26 nsp=1 mass=400 + 0.000000000000000e+00, -5.656854249492381e-01, // itest=530: vxxxxx#26 nsp=1 mass=400 + 0.000000000000000e+00, 4.242640687119285e-01, // itest=530: vxxxxx#26 nsp=1 mass=400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=530: vxxxxx#26 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=531: vxxxxx#26 nsp=1 mass=-400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=531: vxxxxx#26 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=531: vxxxxx#26 nsp=1 mass=-400 + -0.000000000000000e+00, -5.656854249492381e-01, // itest=531: vxxxxx#26 nsp=1 mass=-400 + -0.000000000000000e+00, 4.242640687119285e-01, // itest=531: vxxxxx#26 nsp=1 mass=-400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=531: vxxxxx#26 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=532: sxxxxx#26 nsp=1 mass=400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=532: sxxxxx#26 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=532: sxxxxx#26 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=532: sxxxxx#26 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=532: sxxxxx#26 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=532: sxxxxx#26 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=533: sxxxxx#26 nsp=1 mass=-400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=533: sxxxxx#26 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=533: sxxxxx#26 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=533: sxxxxx#26 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=533: sxxxxx#26 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=533: sxxxxx#26 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=534: oxxxxx#26 nsp=1 mass=400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=534: oxxxxx#26 nsp=1 mass=400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=534: oxxxxx#26 nsp=1 mass=400 + 1.200000000000000e+01, -1.600000000000000e+01, // itest=534: oxxxxx#26 nsp=1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=534: oxxxxx#26 nsp=1 mass=400 + 5.999999999999999e+00, -7.999999999999999e+00 } ); // itest=534: oxxxxx#26 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=535: oxxxxx#26 nsp=1 mass=-400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=535: oxxxxx#26 nsp=1 mass=-400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=535: oxxxxx#26 nsp=1 mass=-400 + 1.200000000000000e+01, -1.600000000000000e+01, // itest=535: oxxxxx#26 nsp=1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00, // itest=535: oxxxxx#26 nsp=1 mass=-400 + -5.999999999999999e+00, 7.999999999999999e+00 } ); // itest=535: oxxxxx#26 nsp=1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=536: ixxxxx#27 nsp=1 mass=400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=536: ixxxxx#27 nsp=1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=536: ixxxxx#27 nsp=1 mass=400 + -7.999999999999999e+00, -5.999999999999999e+00, // itest=536: ixxxxx#27 nsp=1 mass=400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=536: ixxxxx#27 nsp=1 mass=400 + -1.600000000000000e+01, -1.200000000000000e+01 } ); // itest=536: ixxxxx#27 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=537: ixxxxx#27 nsp=1 mass=-400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=537: ixxxxx#27 nsp=1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00, // itest=537: ixxxxx#27 nsp=1 mass=-400 + 7.999999999999999e+00, 5.999999999999999e+00, // itest=537: ixxxxx#27 nsp=1 mass=-400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=537: ixxxxx#27 nsp=1 mass=-400 + -1.600000000000000e+01, -1.200000000000000e+01 } ); // itest=537: ixxxxx#27 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=538: vxxxxx#27 nsp=1 mass=400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=538: vxxxxx#27 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=538: vxxxxx#27 nsp=1 mass=400 + 0.000000000000000e+00, 4.242640687119285e-01, // itest=538: vxxxxx#27 nsp=1 mass=400 + 0.000000000000000e+00, -5.656854249492381e-01, // itest=538: vxxxxx#27 nsp=1 mass=400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=538: vxxxxx#27 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=539: vxxxxx#27 nsp=1 mass=-400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=539: vxxxxx#27 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=539: vxxxxx#27 nsp=1 mass=-400 + 0.000000000000000e+00, 4.242640687119285e-01, // itest=539: vxxxxx#27 nsp=1 mass=-400 + 0.000000000000000e+00, -5.656854249492381e-01, // itest=539: vxxxxx#27 nsp=1 mass=-400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=539: vxxxxx#27 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=540: sxxxxx#27 nsp=1 mass=400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=540: sxxxxx#27 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=540: sxxxxx#27 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=540: sxxxxx#27 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=540: sxxxxx#27 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=540: sxxxxx#27 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=541: sxxxxx#27 nsp=1 mass=-400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=541: sxxxxx#27 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=541: sxxxxx#27 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=541: sxxxxx#27 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=541: sxxxxx#27 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=541: sxxxxx#27 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=542: oxxxxx#27 nsp=1 mass=400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=542: oxxxxx#27 nsp=1 mass=400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=542: oxxxxx#27 nsp=1 mass=400 + -1.600000000000000e+01, 1.200000000000000e+01, // itest=542: oxxxxx#27 nsp=1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=542: oxxxxx#27 nsp=1 mass=400 + -7.999999999999999e+00, 5.999999999999999e+00 } ); // itest=542: oxxxxx#27 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=543: oxxxxx#27 nsp=1 mass=-400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=543: oxxxxx#27 nsp=1 mass=-400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=543: oxxxxx#27 nsp=1 mass=-400 + -1.600000000000000e+01, 1.200000000000000e+01, // itest=543: oxxxxx#27 nsp=1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00, // itest=543: oxxxxx#27 nsp=1 mass=-400 + 7.999999999999999e+00, -5.999999999999999e+00 } ); // itest=543: oxxxxx#27 nsp=1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=544: ixxxxx#28 nsp=1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=544: ixxxxx#28 nsp=1 mass=400 + 1.216552506059644e+01, 0.000000000000000e+00, // itest=544: ixxxxx#28 nsp=1 mass=400 + 4.931969619160719e+00, 5.260767593771432e+00, // itest=544: ixxxxx#28 nsp=1 mass=400 + 2.433105012119288e+01, 0.000000000000000e+00, // itest=544: ixxxxx#28 nsp=1 mass=400 + 9.863939238321439e+00, 1.052153518754287e+01 } ); // itest=544: ixxxxx#28 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=545: ixxxxx#28 nsp=1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=545: ixxxxx#28 nsp=1 mass=-400 + -1.216552506059644e+01, -0.000000000000000e+00, // itest=545: ixxxxx#28 nsp=1 mass=-400 + -4.931969619160719e+00, -5.260767593771432e+00, // itest=545: ixxxxx#28 nsp=1 mass=-400 + 2.433105012119288e+01, 0.000000000000000e+00, // itest=545: ixxxxx#28 nsp=1 mass=-400 + 9.863939238321439e+00, 1.052153518754287e+01 } ); // itest=545: ixxxxx#28 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=546: vxxxxx#28 nsp=1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=546: vxxxxx#28 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=546: vxxxxx#28 nsp=1 mass=400 + -2.321373168788980e-01, -5.158607041753289e-01, // itest=546: vxxxxx#28 nsp=1 mass=400 + -2.476131380041579e-01, 4.836194101643708e-01, // itest=546: vxxxxx#28 nsp=1 mass=400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=546: vxxxxx#28 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=547: vxxxxx#28 nsp=1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=547: vxxxxx#28 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=547: vxxxxx#28 nsp=1 mass=-400 + -2.321373168788980e-01, -5.158607041753289e-01, // itest=547: vxxxxx#28 nsp=1 mass=-400 + -2.476131380041579e-01, 4.836194101643708e-01, // itest=547: vxxxxx#28 nsp=1 mass=-400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=547: vxxxxx#28 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=548: sxxxxx#28 nsp=1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=548: sxxxxx#28 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=548: sxxxxx#28 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=548: sxxxxx#28 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=548: sxxxxx#28 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=548: sxxxxx#28 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=549: sxxxxx#28 nsp=1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=549: sxxxxx#28 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=549: sxxxxx#28 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=549: sxxxxx#28 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=549: sxxxxx#28 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=549: sxxxxx#28 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=550: oxxxxx#28 nsp=1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=550: oxxxxx#28 nsp=1 mass=400 + 2.433105012119288e+01, 0.000000000000000e+00, // itest=550: oxxxxx#28 nsp=1 mass=400 + 9.863939238321439e+00, -1.052153518754287e+01, // itest=550: oxxxxx#28 nsp=1 mass=400 + 1.216552506059644e+01, 0.000000000000000e+00, // itest=550: oxxxxx#28 nsp=1 mass=400 + 4.931969619160719e+00, -5.260767593771432e+00 } ); // itest=550: oxxxxx#28 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=551: oxxxxx#28 nsp=1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=551: oxxxxx#28 nsp=1 mass=-400 + 2.433105012119288e+01, 0.000000000000000e+00, // itest=551: oxxxxx#28 nsp=1 mass=-400 + 9.863939238321439e+00, -1.052153518754287e+01, // itest=551: oxxxxx#28 nsp=1 mass=-400 + -1.216552506059644e+01, -0.000000000000000e+00, // itest=551: oxxxxx#28 nsp=1 mass=-400 + -4.931969619160719e+00, 5.260767593771432e+00 } ); // itest=551: oxxxxx#28 nsp=1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=552: ixxxxx#29 nsp=1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=552: ixxxxx#29 nsp=1 mass=400 + 7.211102550927978e+00, 0.000000000000000e+00, // itest=552: ixxxxx#29 nsp=1 mass=400 + 8.320502943378436e+00, 8.875203139603666e+00, // itest=552: ixxxxx#29 nsp=1 mass=400 + 1.442220510185596e+01, 0.000000000000000e+00, // itest=552: ixxxxx#29 nsp=1 mass=400 + 1.664100588675688e+01, 1.775040627920733e+01 } ); // itest=552: ixxxxx#29 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=553: ixxxxx#29 nsp=1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=553: ixxxxx#29 nsp=1 mass=-400 + -7.211102550927978e+00, -0.000000000000000e+00, // itest=553: ixxxxx#29 nsp=1 mass=-400 + -8.320502943378436e+00, -8.875203139603666e+00, // itest=553: ixxxxx#29 nsp=1 mass=-400 + 1.442220510185596e+01, 0.000000000000000e+00, // itest=553: ixxxxx#29 nsp=1 mass=-400 + 1.664100588675688e+01, 1.775040627920733e+01 } ); // itest=553: ixxxxx#29 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=554: vxxxxx#29 nsp=1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=554: vxxxxx#29 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=554: vxxxxx#29 nsp=1 mass=400 + 2.321373168788980e-01, -5.158607041753289e-01, // itest=554: vxxxxx#29 nsp=1 mass=400 + 2.476131380041579e-01, 4.836194101643708e-01, // itest=554: vxxxxx#29 nsp=1 mass=400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=554: vxxxxx#29 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=555: vxxxxx#29 nsp=1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=555: vxxxxx#29 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=555: vxxxxx#29 nsp=1 mass=-400 + 2.321373168788980e-01, -5.158607041753289e-01, // itest=555: vxxxxx#29 nsp=1 mass=-400 + 2.476131380041579e-01, 4.836194101643708e-01, // itest=555: vxxxxx#29 nsp=1 mass=-400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=555: vxxxxx#29 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=556: sxxxxx#29 nsp=1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=556: sxxxxx#29 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=556: sxxxxx#29 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=556: sxxxxx#29 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=556: sxxxxx#29 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=556: sxxxxx#29 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=557: sxxxxx#29 nsp=1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=557: sxxxxx#29 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=557: sxxxxx#29 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=557: sxxxxx#29 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=557: sxxxxx#29 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=557: sxxxxx#29 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=558: oxxxxx#29 nsp=1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=558: oxxxxx#29 nsp=1 mass=400 + 1.442220510185596e+01, 0.000000000000000e+00, // itest=558: oxxxxx#29 nsp=1 mass=400 + 1.664100588675688e+01, -1.775040627920733e+01, // itest=558: oxxxxx#29 nsp=1 mass=400 + 7.211102550927978e+00, 0.000000000000000e+00, // itest=558: oxxxxx#29 nsp=1 mass=400 + 8.320502943378436e+00, -8.875203139603666e+00 } ); // itest=558: oxxxxx#29 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=559: oxxxxx#29 nsp=1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=559: oxxxxx#29 nsp=1 mass=-400 + 1.442220510185596e+01, 0.000000000000000e+00, // itest=559: oxxxxx#29 nsp=1 mass=-400 + 1.664100588675688e+01, -1.775040627920733e+01, // itest=559: oxxxxx#29 nsp=1 mass=-400 + -7.211102550927978e+00, -0.000000000000000e+00, // itest=559: oxxxxx#29 nsp=1 mass=-400 + -8.320502943378436e+00, 8.875203139603666e+00 } ); // itest=559: oxxxxx#29 nsp=1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=560: ixxxxx#30 nsp=1 mass=500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=560: ixxxxx#30 nsp=1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=560: ixxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=560: ixxxxx#30 nsp=1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=560: ixxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=560: ixxxxx#30 nsp=1 mass=500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=561: ixxxxx#30 nsp=1 mass=-500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=561: ixxxxx#30 nsp=1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=561: ixxxxx#30 nsp=1 mass=-500 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=561: ixxxxx#30 nsp=1 mass=-500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=561: ixxxxx#30 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=561: ixxxxx#30 nsp=1 mass=-500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=562: vxxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=562: vxxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=562: vxxxxx#30 nsp=1 mass=500 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=562: vxxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=562: vxxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=562: vxxxxx#30 nsp=1 mass=500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=563: vxxxxx#30 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=563: vxxxxx#30 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=563: vxxxxx#30 nsp=1 mass=-500 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=563: vxxxxx#30 nsp=1 mass=-500 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=563: vxxxxx#30 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=563: vxxxxx#30 nsp=1 mass=-500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=564: sxxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=564: sxxxxx#30 nsp=1 mass=500 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=564: sxxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=564: sxxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=564: sxxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=564: sxxxxx#30 nsp=1 mass=500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=565: sxxxxx#30 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=565: sxxxxx#30 nsp=1 mass=-500 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=565: sxxxxx#30 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=565: sxxxxx#30 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=565: sxxxxx#30 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=565: sxxxxx#30 nsp=1 mass=-500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=566: oxxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=566: oxxxxx#30 nsp=1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=566: oxxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=566: oxxxxx#30 nsp=1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=566: oxxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=566: oxxxxx#30 nsp=1 mass=500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=567: oxxxxx#30 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=567: oxxxxx#30 nsp=1 mass=-500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=567: oxxxxx#30 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=567: oxxxxx#30 nsp=1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=567: oxxxxx#30 nsp=1 mass=-500 + -0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=567: oxxxxx#30 nsp=1 mass=-500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=568: ixxxxx#31 nsp=1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=568: ixxxxx#31 nsp=1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=568: ixxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=568: ixxxxx#31 nsp=1 mass=400 + 2.828427124746190e+01, 0.000000000000000e+00, // itest=568: ixxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=568: ixxxxx#31 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=569: ixxxxx#31 nsp=1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=569: ixxxxx#31 nsp=1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=569: ixxxxx#31 nsp=1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=569: ixxxxx#31 nsp=1 mass=-400 + 2.828427124746190e+01, 0.000000000000000e+00, // itest=569: ixxxxx#31 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=569: ixxxxx#31 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=570: vxxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=570: vxxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=570: vxxxxx#31 nsp=1 mass=400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=570: vxxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=570: vxxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=570: vxxxxx#31 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=571: vxxxxx#31 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=571: vxxxxx#31 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=571: vxxxxx#31 nsp=1 mass=-400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=571: vxxxxx#31 nsp=1 mass=-400 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=571: vxxxxx#31 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=571: vxxxxx#31 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=572: sxxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=572: sxxxxx#31 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=572: sxxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=572: sxxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=572: sxxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=572: sxxxxx#31 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=573: sxxxxx#31 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=573: sxxxxx#31 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=573: sxxxxx#31 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=573: sxxxxx#31 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=573: sxxxxx#31 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=573: sxxxxx#31 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=574: oxxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=574: oxxxxx#31 nsp=1 mass=400 + 2.828427124746190e+01, 0.000000000000000e+00, // itest=574: oxxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=574: oxxxxx#31 nsp=1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=574: oxxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=574: oxxxxx#31 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=575: oxxxxx#31 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=575: oxxxxx#31 nsp=1 mass=-400 + 2.828427124746190e+01, 0.000000000000000e+00, // itest=575: oxxxxx#31 nsp=1 mass=-400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=575: oxxxxx#31 nsp=1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=575: oxxxxx#31 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=575: oxxxxx#31 nsp=1 mass=-400 diff --git a/epochX/cudacpp/gg_ttgg.mad/src/HelAmps_sm.h b/epochX/cudacpp/gg_ttgg.mad/src/HelAmps_sm.h index ee2fcbbde5..b68cdea0db 100644 --- a/epochX/cudacpp/gg_ttgg.mad/src/HelAmps_sm.h +++ b/epochX/cudacpp/gg_ttgg.mad/src/HelAmps_sm.h @@ -1,3 +1,4 @@ +// Copyright (C) 2010 The ALOHA Development team and Contributors. // Copyright (C) 2010 The MadGraph5_aMC@NLO development team and contributors. // Created by: J. Alwall (Sep 2010) for the MG5aMC backend. //========================================================================== @@ -21,6 +22,7 @@ #include "Parameters_sm.h" +#include //#include //#include //#include @@ -190,6 +192,9 @@ namespace mg5amcCpu const int ipar ) // input: particle# out of npar { mgDebug( 0, __FUNCTION__ ); + // NEW IMPLEMENTATION FIXING FLOATING POINT EXCEPTIONS IN SIMD CODE (#701) + // Variables xxxDENOM are a hack to avoid division-by-0 FPE while preserving speed (#701 and #727) + // Variables xxxDENOM are declared as 'volatile' to make sure they are not optimized away on clang! (#724) const fptype_sv& pvec0 = M_ACCESS::kernelAccessIp4IparConst( momenta, 0, ipar ); const fptype_sv& pvec1 = M_ACCESS::kernelAccessIp4IparConst( momenta, 1, ipar ); const fptype_sv& pvec2 = M_ACCESS::kernelAccessIp4IparConst( momenta, 2, ipar ); @@ -201,6 +206,11 @@ namespace mg5amcCpu if( fmass != 0. ) { const fptype_sv pp = fpmin( pvec0, fpsqrt( pvec1 * pvec1 + pvec2 * pvec2 + pvec3 * pvec3 ) ); + // In C++ ixxxxx, use a single ip/im numbering that is valid both for pp==0 and pp>0, which have two numbering schemes in Fortran ixxxxx: + // for pp==0, Fortran sqm(0:1) has indexes 0,1 as in C++; but for Fortran pp>0, omega(2) has indexes 1,2 and not 0,1 + // NB: this is only possible in ixxxx, but in oxxxxx two different numbering schemes must be used + const int ip = ( 1 + nh ) / 2; // NB: same as in Fortran pp==0, differs from Fortran pp>0, which is (3+nh)/2 because omega(2) has indexes 1,2 + const int im = ( 1 - nh ) / 2; // NB: same as in Fortran pp==0, differs from Fortran pp>0, which is (3-nh)/2 because omega(2) has indexes 1,2 #ifndef MGONGPU_CPPSIMD if( pp == 0. ) { @@ -208,8 +218,6 @@ namespace mg5amcCpu fptype sqm[2] = { fpsqrt( std::abs( fmass ) ), 0. }; // possibility of negative fermion masses //sqm[1] = ( fmass < 0. ? -abs( sqm[0] ) : abs( sqm[0] ) ); // AV: why abs here? sqm[1] = ( fmass < 0. ? -sqm[0] : sqm[0] ); // AV: removed an abs here - const int ip = ( 1 + nh ) / 2; // NB: Fortran sqm(0:1) also has indexes 0,1 as in C++ - const int im = ( 1 - nh ) / 2; // NB: Fortran sqm(0:1) also has indexes 0,1 as in C++ fi[2] = cxmake( ip * sqm[ip], 0 ); fi[3] = cxmake( im * nsf * sqm[ip], 0 ); fi[4] = cxmake( ip * nsf * sqm[im], 0 ); @@ -221,8 +229,6 @@ namespace mg5amcCpu fptype( 1 + nsf - ( 1 - nsf ) * nh ) * (fptype)0.5 }; fptype omega[2] = { fpsqrt( pvec0 + pp ), 0. }; omega[1] = fmass / omega[0]; - const int ip = ( 1 + nh ) / 2; // NB: Fortran is (3+nh)/2 because omega(2) has indexes 1,2 and not 0,1 - const int im = ( 1 - nh ) / 2; // NB: Fortran is (3-nh)/2 because omega(2) has indexes 1,2 and not 0,1 const fptype sfomega[2] = { sf[0] * omega[ip], sf[1] * omega[im] }; const fptype pp3 = fpmax( pp + pvec3, 0. ); const cxtype chi[2] = { cxmake( fpsqrt( pp3 * (fptype)0.5 / pp ), 0. ), @@ -233,8 +239,6 @@ namespace mg5amcCpu fi[5] = sfomega[1] * chi[ip]; } #else - const int ip = ( 1 + nh ) / 2; - const int im = ( 1 - nh ) / 2; // Branch A: pp == 0. // NB: Do not use "abs" for floats! It returns an integer with no build warning! Use std::abs! fptype sqm[2] = { fpsqrt( std::abs( fmass ) ), 0 }; // possibility of negative fermion masses (NB: SCALAR!) @@ -250,10 +254,12 @@ namespace mg5amcCpu omega[1] = fmass / omega[0]; const fptype_v sfomega[2] = { sf[0] * omega[ip], sf[1] * omega[im] }; const fptype_v pp3 = fpmax( pp + pvec3, 0 ); - const cxtype_v chi[2] = { cxmake( fpsqrt( pp3 * 0.5 / pp ), 0 ), + volatile fptype_v ppDENOM = fpternary( pp != 0, pp, 1. ); // hack: ppDENOM[ieppV]=1 if pp[ieppV]==0 + volatile fptype_v pp3DENOM = fpternary( pp3 != 0, pp3, 1. ); // hack: pp3DENOM[ieppV]=1 if pp3[ieppV]==0 + const cxtype_v chi[2] = { cxmake( fpsqrt( pp3 * 0.5 / ppDENOM ), 0 ), // hack: dummy[ieppV] is not used if pp[ieppV]==0 cxternary( ( pp3 == 0. ), cxmake( -nh, 0 ), - cxmake( (fptype)nh * pvec1, pvec2 ) / fpsqrt( 2. * pp * pp3 ) ) }; + cxmake( (fptype)nh * pvec1, pvec2 ) / fpsqrt( 2. * ppDENOM * pp3DENOM ) ) }; // hack: dummy[ieppV] is not used if pp[ieppV]==0 const cxtype_v fiB_2 = sfomega[0] * chi[im]; const cxtype_v fiB_3 = sfomega[0] * chi[ip]; const cxtype_v fiB_4 = sfomega[1] * chi[im]; @@ -271,7 +277,16 @@ namespace mg5amcCpu const fptype_sv sqp0p3 = fpternary( ( pvec1 == 0. and pvec2 == 0. and pvec3 < 0. ), fptype_sv{ 0 }, fpsqrt( fpmax( pvec0 + pvec3, 0. ) ) * (fptype)nsf ); - const cxtype_sv chi[2] = { cxmake( sqp0p3, 0. ), cxternary( ( sqp0p3 == 0. ), cxmake( -(fptype)nhel * fpsqrt( 2. * pvec0 ), 0. ), cxmake( (fptype)nh * pvec1, pvec2 ) / sqp0p3 ) }; +#ifdef MGONGPU_CPPSIMD + volatile fptype_v sqp0p3DENOM = fpternary( sqp0p3 != 0, sqp0p3, 1. ); // hack: dummy sqp0p3DENOM[ieppV]=1 if sqp0p3[ieppV]==0 + cxtype_sv chi[2] = { cxmake( sqp0p3, 0. ), + cxternary( sqp0p3 == 0, + cxmake( -(fptype)nhel * fpsqrt( 2. * pvec0 ), 0. ), + cxmake( (fptype)nh * pvec1, pvec2 ) / (const fptype_v)sqp0p3DENOM ) }; // hack: dummy[ieppV] is not used if sqp0p3[ieppV]==0 +#else + const cxtype_sv chi[2] = { cxmake( sqp0p3, 0. ), + ( sqp0p3 == 0. ? cxmake( -(fptype)nhel * fpsqrt( 2. * pvec0 ), 0. ) : cxmake( (fptype)nh * pvec1, pvec2 ) / sqp0p3 ) }; +#endif if( nh == 1 ) { fi[2] = cxzero_sv(); @@ -422,6 +437,9 @@ namespace mg5amcCpu const int ipar ) // input: particle# out of npar { mgDebug( 0, __FUNCTION__ ); + // NEW IMPLEMENTATION FIXING FLOATING POINT EXCEPTIONS IN SIMD CODE (#701) + // Variables xxxDENOM are a hack to avoid division-by-0 FPE while preserving speed (#701 and #727) + // Variables xxxDENOM are declared as 'volatile' to make sure they are not optimized away on clang! (#724) const fptype_sv& pvec0 = M_ACCESS::kernelAccessIp4IparConst( momenta, 0, ipar ); const fptype_sv& pvec1 = M_ACCESS::kernelAccessIp4IparConst( momenta, 1, ipar ); const fptype_sv& pvec2 = M_ACCESS::kernelAccessIp4IparConst( momenta, 2, ipar ); @@ -472,13 +490,15 @@ namespace mg5amcCpu const cxtype vcA_4 = cxmake( 0, nsvahl * sqh ); const cxtype vcA_5 = cxmake( hel0, 0 ); // Branch B: pp != 0. - const fptype_v emp = pvec0 / ( vmass * pp ); + volatile fptype_v ppDENOM = fpternary( pp != 0, pp, 1. ); // hack: ppDENOM[ieppV]=1 if pp[ieppV]==0 + const fptype_v emp = pvec0 / ( vmass * ppDENOM ); // hack: dummy[ieppV] is not used if pp[ieppV]==0 const cxtype_v vcB_2 = cxmake( hel0 * pp / vmass, 0 ); - const cxtype_v vcB_5 = cxmake( hel0 * pvec3 * emp + hel * pt / pp * sqh, 0 ); + const cxtype_v vcB_5 = cxmake( hel0 * pvec3 * emp + hel * pt / ppDENOM * sqh, 0 ); // hack: dummy[ieppV] is not used if pp[ieppV]==0 // Branch B1: pp != 0. and pt != 0. - const fptype_v pzpt = pvec3 / ( pp * pt ) * sqh * hel; - const cxtype_v vcB1_3 = cxmake( hel0 * pvec1 * emp - pvec1 * pzpt, -(fptype)nsvahl * pvec2 / pt * sqh ); - const cxtype_v vcB1_4 = cxmake( hel0 * pvec2 * emp - pvec2 * pzpt, (fptype)nsvahl * pvec1 / pt * sqh ); + volatile fptype_v ptDENOM = fpternary( pt != 0, pt, 1. ); // hack: ptDENOM[ieppV]=1 if pt[ieppV]==0 + const fptype_v pzpt = pvec3 / ( ppDENOM * ptDENOM ) * sqh * hel; // hack: dummy[ieppV] is not used if pp[ieppV]==0 + const cxtype_v vcB1_3 = cxmake( hel0 * pvec1 * emp - pvec1 * pzpt, -(fptype)nsvahl * pvec2 / ptDENOM * sqh ); // hack: dummy[ieppV] is not used if pt[ieppV]==0 + const cxtype_v vcB1_4 = cxmake( hel0 * pvec2 * emp - pvec2 * pzpt, (fptype)nsvahl * pvec1 / ptDENOM * sqh ); // hack: dummy[ieppV] is not used if pt[ieppV]==0 // Branch B2: pp != 0. and pt == 0. const cxtype vcB2_3 = cxmake( -hel * sqh, 0. ); const cxtype_v vcB2_4 = cxmake( 0., (fptype)nsvahl * fpternary( ( pvec3 < 0 ), -sqh, sqh ) ); // AV: removed an abs here @@ -513,9 +533,10 @@ namespace mg5amcCpu } #else // Branch A: pt != 0. - const fptype_v pzpt = pvec3 / ( pp * pt ) * sqh * hel; - const cxtype_v vcA_3 = cxmake( -pvec1 * pzpt, -(fptype)nsv * pvec2 / pt * sqh ); - const cxtype_v vcA_4 = cxmake( -pvec2 * pzpt, (fptype)nsv * pvec1 / pt * sqh ); + volatile fptype_v ptDENOM = fpternary( pt != 0, pt, 1. ); // hack: ptDENOM[ieppV]=1 if pt[ieppV]==0 + const fptype_v pzpt = pvec3 / ( pp * ptDENOM ) * sqh * hel; // hack: dummy[ieppV] is not used if pt[ieppV]==0 + const cxtype_v vcA_3 = cxmake( -pvec1 * pzpt, -(fptype)nsv * pvec2 / ptDENOM * sqh ); // hack: dummy[ieppV] is not used if pt[ieppV]==0 + const cxtype_v vcA_4 = cxmake( -pvec2 * pzpt, (fptype)nsv * pvec1 / ptDENOM * sqh ); // hack: dummy[ieppV] is not used if pt[ieppV]==0 // Branch B: pt == 0. const cxtype vcB_3 = cxmake( -(fptype)hel * sqh, 0 ); const cxtype_v vcB_4 = cxmake( 0, (fptype)nsv * fpternary( ( pvec3 < 0 ), -sqh, sqh ) ); // AV: removed an abs here @@ -567,6 +588,9 @@ namespace mg5amcCpu const int ipar ) // input: particle# out of npar { mgDebug( 0, __FUNCTION__ ); + // NEW IMPLEMENTATION FIXING FLOATING POINT EXCEPTIONS IN SIMD CODE (#701) + // Variables xxxDENOM are a hack to avoid division-by-0 FPE while preserving speed (#701 and #727) + // Variables xxxDENOM are declared as 'volatile' to make sure they are not optimized away on clang! (#724) const fptype_sv& pvec0 = M_ACCESS::kernelAccessIp4IparConst( momenta, 0, ipar ); const fptype_sv& pvec1 = M_ACCESS::kernelAccessIp4IparConst( momenta, 1, ipar ); const fptype_sv& pvec2 = M_ACCESS::kernelAccessIp4IparConst( momenta, 2, ipar ); @@ -630,10 +654,12 @@ namespace mg5amcCpu const int imB = ( 1 - nh ) / 2; const fptype_v sfomeg[2] = { sf[0] * omega[ipB], sf[1] * omega[imB] }; const fptype_v pp3 = fpmax( pp + pvec3, 0. ); - const cxtype_v chi[2] = { cxmake( fpsqrt( pp3 * 0.5 / pp ), 0. ), + volatile fptype_v ppDENOM = fpternary( pp != 0, pp, 1. ); // hack: ppDENOM[ieppV]=1 if pp[ieppV]==0 + volatile fptype_v pp3DENOM = fpternary( pp3 != 0, pp3, 1. ); // hack: pp3DENOM[ieppV]=1 if pp3[ieppV]==0 + const cxtype_v chi[2] = { cxmake( fpsqrt( pp3 * 0.5 / ppDENOM ), 0. ), // hack: dummy[ieppV] is not used if pp[ieppV]==0 ( cxternary( ( pp3 == 0. ), cxmake( -nh, 0. ), - cxmake( (fptype)nh * pvec1, -pvec2 ) / fpsqrt( 2. * pp * pp3 ) ) ) }; + cxmake( (fptype)nh * pvec1, -pvec2 ) / fpsqrt( 2. * ppDENOM * pp3DENOM ) ) ) }; // hack: dummy[ieppV] is not used if pp[ieppV]==0 const cxtype_v foB_2 = sfomeg[1] * chi[imB]; const cxtype_v foB_3 = sfomeg[1] * chi[ipB]; const cxtype_v foB_4 = sfomeg[0] * chi[imB]; @@ -651,10 +677,16 @@ namespace mg5amcCpu const fptype_sv sqp0p3 = fpternary( ( pvec1 == 0. ) and ( pvec2 == 0. ) and ( pvec3 < 0. ), 0, fpsqrt( fpmax( pvec0 + pvec3, 0. ) ) * (fptype)nsf ); +#ifdef MGONGPU_CPPSIMD + volatile fptype_v sqp0p3DENOM = fpternary( sqp0p3 != 0, sqp0p3, 1. ); // hack: sqp0p3DENOM[ieppV]=1 if sqp0p3[ieppV]==0 + const cxtype_v chi[2] = { cxmake( sqp0p3, 0. ), + cxternary( ( sqp0p3 == 0. ), + cxmake( -nhel, 0. ) * fpsqrt( 2. * pvec0 ), + cxmake( (fptype)nh * pvec1, -pvec2 ) / (const fptype_sv)sqp0p3DENOM ) }; // hack: dummy[ieppV] is not used if sqp0p3[ieppV]==0 +#else const cxtype_sv chi[2] = { cxmake( sqp0p3, 0. ), - cxternary( ( sqp0p3 == 0. ), - cxmake( -nhel, 0. ) * fpsqrt( 2. * pvec0 ), - cxmake( (fptype)nh * pvec1, -pvec2 ) / sqp0p3 ) }; + ( sqp0p3 == 0. ? cxmake( -nhel, 0. ) * fpsqrt( 2. * pvec0 ) : cxmake( (fptype)nh * pvec1, -pvec2 ) / sqp0p3 ) }; +#endif if( nh == 1 ) { fo[2] = chi[0]; diff --git a/epochX/cudacpp/gg_ttgg.mad/src/Parameters_sm.cc b/epochX/cudacpp/gg_ttgg.mad/src/Parameters_sm.cc index d3d01102fd..22fdd96a68 100644 --- a/epochX/cudacpp/gg_ttgg.mad/src/Parameters_sm.cc +++ b/epochX/cudacpp/gg_ttgg.mad/src/Parameters_sm.cc @@ -17,6 +17,12 @@ #include #include +#ifdef __CUDACC__ +using namespace mg5amcGpu; +#else +using namespace mg5amcCpu; +#endif + #ifndef MGONGPU_HARDCODE_PARAM // Initialize static instance diff --git a/epochX/cudacpp/gg_ttgg.mad/src/Parameters_sm.h b/epochX/cudacpp/gg_ttgg.mad/src/Parameters_sm.h index 6551d8da81..11fd9e3c74 100644 --- a/epochX/cudacpp/gg_ttgg.mad/src/Parameters_sm.h +++ b/epochX/cudacpp/gg_ttgg.mad/src/Parameters_sm.h @@ -26,191 +26,216 @@ #include "read_slha.h" -class Parameters_sm +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { -public: + class Parameters_sm + { + public: - static Parameters_sm* getInstance(); + static Parameters_sm* getInstance(); - // Define "zero" - double zero, ZERO; + // Define "zero" + double zero, ZERO; - // Model parameters independent of aS - //double aS; // now retrieved event-by-event (as G) from Fortran (running alphas #373) - double mdl_WH, mdl_WW, mdl_WZ, mdl_WT, mdl_ymtau, mdl_ymt, mdl_ymb, mdl_Gf, aEWM1, mdl_MH, mdl_MZ, mdl_MTA, mdl_MT, mdl_MB, mdl_conjg__CKM3x3, mdl_conjg__CKM1x1, mdl_CKM3x3, mdl_MZ__exp__2, mdl_MZ__exp__4, mdl_sqrt__2, mdl_MH__exp__2, mdl_aEW, mdl_MW, mdl_sqrt__aEW, mdl_ee, mdl_MW__exp__2, mdl_sw2, mdl_cw, mdl_sqrt__sw2, mdl_sw, mdl_g1, mdl_gw, mdl_vev, mdl_vev__exp__2, mdl_lam, mdl_yb, mdl_yt, mdl_ytau, mdl_muH, mdl_ee__exp__2, mdl_sw__exp__2, mdl_cw__exp__2; - cxsmpl mdl_complexi, mdl_I1x33, mdl_I2x33, mdl_I3x33, mdl_I4x33; + // Model parameters independent of aS + //double aS; // now retrieved event-by-event (as G) from Fortran (running alphas #373) + double mdl_WH, mdl_WW, mdl_WZ, mdl_WT, mdl_ymtau, mdl_ymt, mdl_ymb, mdl_Gf, aEWM1, mdl_MH, mdl_MZ, mdl_MTA, mdl_MT, mdl_MB, mdl_conjg__CKM3x3, mdl_conjg__CKM1x1, mdl_CKM3x3, mdl_MZ__exp__2, mdl_MZ__exp__4, mdl_sqrt__2, mdl_MH__exp__2, mdl_aEW, mdl_MW, mdl_sqrt__aEW, mdl_ee, mdl_MW__exp__2, mdl_sw2, mdl_cw, mdl_sqrt__sw2, mdl_sw, mdl_g1, mdl_gw, mdl_vev, mdl_vev__exp__2, mdl_lam, mdl_yb, mdl_yt, mdl_ytau, mdl_muH, mdl_ee__exp__2, mdl_sw__exp__2, mdl_cw__exp__2; + cxsmpl mdl_complexi, mdl_I1x33, mdl_I2x33, mdl_I3x33, mdl_I4x33; - // Model couplings independent of aS - // (none) + // Model couplings independent of aS + // (none) - // Model parameters dependent on aS - //double mdl_sqrt__aS, G, mdl_G__exp__2; // now computed event-by-event (running alphas #373) + // Model parameters dependent on aS + //double mdl_sqrt__aS, G, mdl_G__exp__2; // now computed event-by-event (running alphas #373) - // Model couplings dependent on aS - //cxsmpl GC_10, GC_11, GC_12; // now computed event-by-event (running alphas #373) + // Model couplings dependent on aS + //cxsmpl GC_10, GC_11, GC_12; // now computed event-by-event (running alphas #373) - // Set parameters that are unchanged during the run - void setIndependentParameters( SLHAReader& slha ); + // Set parameters that are unchanged during the run + void setIndependentParameters( SLHAReader& slha ); - // Set couplings that are unchanged during the run - void setIndependentCouplings(); + // Set couplings that are unchanged during the run + void setIndependentCouplings(); - // Set parameters that are changed event by event - //void setDependentParameters(); // now computed event-by-event (running alphas #373) + // Set parameters that are changed event by event + //void setDependentParameters(); // now computed event-by-event (running alphas #373) - // Set couplings that are changed event by event - //void setDependentCouplings(); // now computed event-by-event (running alphas #373) + // Set couplings that are changed event by event + //void setDependentCouplings(); // now computed event-by-event (running alphas #373) - // Print parameters that are unchanged during the run - void printIndependentParameters(); + // Print parameters that are unchanged during the run + void printIndependentParameters(); - // Print couplings that are unchanged during the run - void printIndependentCouplings(); + // Print couplings that are unchanged during the run + void printIndependentCouplings(); - // Print parameters that are changed event by event - //void printDependentParameters(); // now computed event-by-event (running alphas #373) + // Print parameters that are changed event by event + //void printDependentParameters(); // now computed event-by-event (running alphas #373) - // Print couplings that are changed event by event - //void printDependentCouplings(); // now computed event-by-event (running alphas #373) + // Print couplings that are changed event by event + //void printDependentCouplings(); // now computed event-by-event (running alphas #373) -private: + private: - static Parameters_sm* instance; -}; + static Parameters_sm* instance; + }; + +} // end namespace mg5amcGpu/mg5amcCpu #else #include #include -// Hardcoded constexpr physics parameters -namespace Parameters_sm // keep the same name rather than HardcodedParameters_sm for simplicity +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { - // Constexpr implementation of sqrt (see https://stackoverflow.com/a/34134071) - double constexpr sqrtNewtonRaphson( double x, double curr, double prev ) + // Hardcoded constexpr physics parameters + namespace Parameters_sm // keep the same name rather than HardcodedParameters_sm for simplicity { - return curr == prev ? curr : sqrtNewtonRaphson( x, 0.5 * ( curr + x / curr ), curr ); - } - double constexpr constexpr_sqrt( double x ) - { - return x >= 0 // && x < std::numeric_limits::infinity() // avoid -Wtautological-constant-compare warning in fast math - ? sqrtNewtonRaphson( x, x, 0 ) - : std::numeric_limits::quiet_NaN(); - } + // Constexpr implementation of sqrt (see https://stackoverflow.com/a/34134071) + double constexpr sqrtNewtonRaphson( double x, double curr, double prev ) + { + return curr == prev ? curr : sqrtNewtonRaphson( x, 0.5 * ( curr + x / curr ), curr ); + } + double constexpr constexpr_sqrt( double x ) + { + return x >= 0 // && x < std::numeric_limits::infinity() // avoid -Wtautological-constant-compare warning in fast math + ? sqrtNewtonRaphson( x, x, 0 ) + : std::numeric_limits::quiet_NaN(); + } - // Constexpr implementation of floor (see https://stackoverflow.com/a/66146159) - constexpr int constexpr_floor( double d ) - { - const int i = static_cast( d ); - return d < i ? i - 1 : i; - } + // Constexpr implementation of floor (see https://stackoverflow.com/a/66146159) + constexpr int constexpr_floor( double d ) + { + const int i = static_cast( d ); + return d < i ? i - 1 : i; + } - // Constexpr implementation of pow - constexpr double constexpr_pow( double base, double exp ) - { - // NB(1): this implementation of constexpr_pow requires exponent >= 0 - assert( exp >= 0 ); // NB would fail at compile time with "error: call to non-‘constexpr’ function ‘void __assert_fail'" - // NB(2): this implementation of constexpr_pow requires an integer exponent - const int iexp = constexpr_floor( exp ); - assert( static_cast( iexp ) == exp ); // NB would fail at compile time with "error: call to non-‘constexpr’ function ‘void __assert_fail'" - // Iterative implementation of pow if exp is a non negative integer - return iexp == 0 ? 1 : base * constexpr_pow( base, iexp - 1 ); + // Constexpr implementation of pow + constexpr double constexpr_pow( double base, double exp ) + { + // NB(1): this implementation of constexpr_pow requires exponent >= 0 + assert( exp >= 0 ); // NB would fail at compile time with "error: call to non-‘constexpr’ function ‘void __assert_fail'" + // NB(2): this implementation of constexpr_pow requires an integer exponent + const int iexp = constexpr_floor( exp ); + assert( static_cast( iexp ) == exp ); // NB would fail at compile time with "error: call to non-‘constexpr’ function ‘void __assert_fail'" + // Iterative implementation of pow if exp is a non negative integer + return iexp == 0 ? 1 : base * constexpr_pow( base, iexp - 1 ); + } + + // Model parameters independent of aS + constexpr double zero = 0; + constexpr double ZERO = 0; + constexpr double mdl_WH = 6.382339e-03; + constexpr double mdl_WW = 2.047600e+00; + constexpr double mdl_WZ = 2.441404e+00; + constexpr double mdl_WT = 1.491500e+00; + constexpr double mdl_ymtau = 1.777000e+00; + constexpr double mdl_ymt = 1.730000e+02; + constexpr double mdl_ymb = 4.700000e+00; + //constexpr double aS = 1.180000e-01; // now retrieved event-by-event (as G) from Fortran (running alphas #373) + constexpr double mdl_Gf = 1.166390e-05; + constexpr double aEWM1 = 1.325070e+02; + constexpr double mdl_MH = 1.250000e+02; + constexpr double mdl_MZ = 9.118800e+01; + constexpr double mdl_MTA = 1.777000e+00; + constexpr double mdl_MT = 1.730000e+02; + constexpr double mdl_MB = 4.700000e+00; + constexpr double mdl_conjg__CKM3x3 = 1.; + constexpr double mdl_conjg__CKM1x1 = 1.; + constexpr double mdl_CKM3x3 = 1.; + constexpr cxsmpl mdl_complexi = cxsmpl( 0., 1. ); + constexpr double mdl_MZ__exp__2 = ( ( mdl_MZ ) * ( mdl_MZ ) ); + constexpr double mdl_MZ__exp__4 = ( ( mdl_MZ ) * ( mdl_MZ ) * ( mdl_MZ ) * ( mdl_MZ ) ); + constexpr double mdl_sqrt__2 = constexpr_sqrt( 2. ); + constexpr double mdl_MH__exp__2 = ( ( mdl_MH ) * ( mdl_MH ) ); + constexpr double mdl_aEW = 1. / aEWM1; + constexpr double mdl_MW = constexpr_sqrt( mdl_MZ__exp__2 / 2. + constexpr_sqrt( mdl_MZ__exp__4 / 4. - ( mdl_aEW * M_PI * mdl_MZ__exp__2 ) / ( mdl_Gf * mdl_sqrt__2 ) ) ); + constexpr double mdl_sqrt__aEW = constexpr_sqrt( mdl_aEW ); + constexpr double mdl_ee = 2. * mdl_sqrt__aEW * constexpr_sqrt( M_PI ); + constexpr double mdl_MW__exp__2 = ( ( mdl_MW ) * ( mdl_MW ) ); + constexpr double mdl_sw2 = 1. - mdl_MW__exp__2 / mdl_MZ__exp__2; + constexpr double mdl_cw = constexpr_sqrt( 1. - mdl_sw2 ); + constexpr double mdl_sqrt__sw2 = constexpr_sqrt( mdl_sw2 ); + constexpr double mdl_sw = mdl_sqrt__sw2; + constexpr double mdl_g1 = mdl_ee / mdl_cw; + constexpr double mdl_gw = mdl_ee / mdl_sw; + constexpr double mdl_vev = ( 2. * mdl_MW * mdl_sw ) / mdl_ee; + constexpr double mdl_vev__exp__2 = ( ( mdl_vev ) * ( mdl_vev ) ); + constexpr double mdl_lam = mdl_MH__exp__2 / ( 2. * mdl_vev__exp__2 ); + constexpr double mdl_yb = ( mdl_ymb * mdl_sqrt__2 ) / mdl_vev; + constexpr double mdl_yt = ( mdl_ymt * mdl_sqrt__2 ) / mdl_vev; + constexpr double mdl_ytau = ( mdl_ymtau * mdl_sqrt__2 ) / mdl_vev; + constexpr double mdl_muH = constexpr_sqrt( mdl_lam * mdl_vev__exp__2 ); + constexpr cxsmpl mdl_I1x33 = mdl_yb * mdl_conjg__CKM3x3; + constexpr cxsmpl mdl_I2x33 = mdl_yt * mdl_conjg__CKM3x3; + constexpr cxsmpl mdl_I3x33 = mdl_CKM3x3 * mdl_yt; + constexpr cxsmpl mdl_I4x33 = mdl_CKM3x3 * mdl_yb; + constexpr double mdl_ee__exp__2 = ( ( mdl_ee ) * ( mdl_ee ) ); + constexpr double mdl_sw__exp__2 = ( ( mdl_sw ) * ( mdl_sw ) ); + constexpr double mdl_cw__exp__2 = ( ( mdl_cw ) * ( mdl_cw ) ); + + // Model couplings independent of aS + // (none) + + // Model parameters dependent on aS + //constexpr double mdl_sqrt__aS = //constexpr_sqrt( aS ); // now computed event-by-event (running alphas #373) + //constexpr double G = 2. * mdl_sqrt__aS * //constexpr_sqrt( M_PI ); // now computed event-by-event (running alphas #373) + //constexpr double mdl_G__exp__2 = ( ( G ) * ( G ) ); // now computed event-by-event (running alphas #373) + + // Model couplings dependent on aS + //constexpr cxsmpl GC_10 = -G; // now computed event-by-event (running alphas #373) + //constexpr cxsmpl GC_11 = mdl_complexi * G; // now computed event-by-event (running alphas #373) + //constexpr cxsmpl GC_12 = mdl_complexi * mdl_G__exp__2; // now computed event-by-event (running alphas #373) + + // Print parameters that are unchanged during the run + void printIndependentParameters(); + + // Print couplings that are unchanged during the run + void printIndependentCouplings(); + + // Print parameters that are changed event by event + //void printDependentParameters(); // now computed event-by-event (running alphas #373) + + // Print couplings that are changed event by event + //void printDependentCouplings(); // now computed event-by-event (running alphas #373) } - // Model parameters independent of aS - constexpr double zero = 0; - constexpr double ZERO = 0; - constexpr double mdl_WH = 6.382339e-03; - constexpr double mdl_WW = 2.047600e+00; - constexpr double mdl_WZ = 2.441404e+00; - constexpr double mdl_WT = 1.491500e+00; - constexpr double mdl_ymtau = 1.777000e+00; - constexpr double mdl_ymt = 1.730000e+02; - constexpr double mdl_ymb = 4.700000e+00; - //constexpr double aS = 1.180000e-01; // now retrieved event-by-event (as G) from Fortran (running alphas #373) - constexpr double mdl_Gf = 1.166390e-05; - constexpr double aEWM1 = 1.325070e+02; - constexpr double mdl_MH = 1.250000e+02; - constexpr double mdl_MZ = 9.118800e+01; - constexpr double mdl_MTA = 1.777000e+00; - constexpr double mdl_MT = 1.730000e+02; - constexpr double mdl_MB = 4.700000e+00; - constexpr double mdl_conjg__CKM3x3 = 1.; - constexpr double mdl_conjg__CKM1x1 = 1.; - constexpr double mdl_CKM3x3 = 1.; - constexpr cxsmpl mdl_complexi = cxsmpl( 0., 1. ); - constexpr double mdl_MZ__exp__2 = ( ( mdl_MZ ) * ( mdl_MZ ) ); - constexpr double mdl_MZ__exp__4 = ( ( mdl_MZ ) * ( mdl_MZ ) * ( mdl_MZ ) * ( mdl_MZ ) ); - constexpr double mdl_sqrt__2 = constexpr_sqrt( 2. ); - constexpr double mdl_MH__exp__2 = ( ( mdl_MH ) * ( mdl_MH ) ); - constexpr double mdl_aEW = 1. / aEWM1; - constexpr double mdl_MW = constexpr_sqrt( mdl_MZ__exp__2 / 2. + constexpr_sqrt( mdl_MZ__exp__4 / 4. - ( mdl_aEW * M_PI * mdl_MZ__exp__2 ) / ( mdl_Gf * mdl_sqrt__2 ) ) ); - constexpr double mdl_sqrt__aEW = constexpr_sqrt( mdl_aEW ); - constexpr double mdl_ee = 2. * mdl_sqrt__aEW * constexpr_sqrt( M_PI ); - constexpr double mdl_MW__exp__2 = ( ( mdl_MW ) * ( mdl_MW ) ); - constexpr double mdl_sw2 = 1. - mdl_MW__exp__2 / mdl_MZ__exp__2; - constexpr double mdl_cw = constexpr_sqrt( 1. - mdl_sw2 ); - constexpr double mdl_sqrt__sw2 = constexpr_sqrt( mdl_sw2 ); - constexpr double mdl_sw = mdl_sqrt__sw2; - constexpr double mdl_g1 = mdl_ee / mdl_cw; - constexpr double mdl_gw = mdl_ee / mdl_sw; - constexpr double mdl_vev = ( 2. * mdl_MW * mdl_sw ) / mdl_ee; - constexpr double mdl_vev__exp__2 = ( ( mdl_vev ) * ( mdl_vev ) ); - constexpr double mdl_lam = mdl_MH__exp__2 / ( 2. * mdl_vev__exp__2 ); - constexpr double mdl_yb = ( mdl_ymb * mdl_sqrt__2 ) / mdl_vev; - constexpr double mdl_yt = ( mdl_ymt * mdl_sqrt__2 ) / mdl_vev; - constexpr double mdl_ytau = ( mdl_ymtau * mdl_sqrt__2 ) / mdl_vev; - constexpr double mdl_muH = constexpr_sqrt( mdl_lam * mdl_vev__exp__2 ); - constexpr cxsmpl mdl_I1x33 = mdl_yb * mdl_conjg__CKM3x3; - constexpr cxsmpl mdl_I2x33 = mdl_yt * mdl_conjg__CKM3x3; - constexpr cxsmpl mdl_I3x33 = mdl_CKM3x3 * mdl_yt; - constexpr cxsmpl mdl_I4x33 = mdl_CKM3x3 * mdl_yb; - constexpr double mdl_ee__exp__2 = ( ( mdl_ee ) * ( mdl_ee ) ); - constexpr double mdl_sw__exp__2 = ( ( mdl_sw ) * ( mdl_sw ) ); - constexpr double mdl_cw__exp__2 = ( ( mdl_cw ) * ( mdl_cw ) ); - - // Model couplings independent of aS - // (none) - - // Model parameters dependent on aS - //constexpr double mdl_sqrt__aS = //constexpr_sqrt( aS ); // now computed event-by-event (running alphas #373) - //constexpr double G = 2. * mdl_sqrt__aS * //constexpr_sqrt( M_PI ); // now computed event-by-event (running alphas #373) - //constexpr double mdl_G__exp__2 = ( ( G ) * ( G ) ); // now computed event-by-event (running alphas #373) - - // Model couplings dependent on aS - //constexpr cxsmpl GC_10 = -G; // now computed event-by-event (running alphas #373) - //constexpr cxsmpl GC_11 = mdl_complexi * G; // now computed event-by-event (running alphas #373) - //constexpr cxsmpl GC_12 = mdl_complexi * mdl_G__exp__2; // now computed event-by-event (running alphas #373) - - // Print parameters that are unchanged during the run - void printIndependentParameters(); - - // Print couplings that are unchanged during the run - void printIndependentCouplings(); - - // Print parameters that are changed event by event - //void printDependentParameters(); // now computed event-by-event (running alphas #373) - - // Print couplings that are changed event by event - //void printDependentCouplings(); // now computed event-by-event (running alphas #373) -} +} // end namespace mg5amcGpu/mg5amcCpu #endif //========================================================================== -namespace Parameters_sm_dependentCouplings +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { - constexpr size_t ndcoup = 3; // #couplings that vary event by event because they depend on the running alphas QCD - constexpr size_t idcoup_GC_10 = 0; - constexpr size_t idcoup_GC_11 = 1; - constexpr size_t idcoup_GC_12 = 2; - struct DependentCouplings_sv + namespace Parameters_sm_dependentCouplings { - cxtype_sv GC_10; - cxtype_sv GC_11; - cxtype_sv GC_12; - }; + constexpr size_t ndcoup = 3; // #couplings that vary event by event because they depend on the running alphas QCD + constexpr size_t idcoup_GC_10 = 0; + constexpr size_t idcoup_GC_11 = 1; + constexpr size_t idcoup_GC_12 = 2; + struct DependentCouplings_sv + { + cxtype_sv GC_10; + cxtype_sv GC_11; + cxtype_sv GC_12; + }; #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wunused-variable" // e.g. <> #pragma GCC diagnostic ignored "-Wunused-parameter" // e.g. <> @@ -218,52 +243,46 @@ namespace Parameters_sm_dependentCouplings #pragma nv_diagnostic push #pragma nv_diag_suppress 177 // e.g. <> #endif - __host__ __device__ inline const DependentCouplings_sv computeDependentCouplings_fromG( const fptype_sv& G_sv ) - { + __host__ __device__ inline const DependentCouplings_sv computeDependentCouplings_fromG( const fptype_sv& G_sv ) + { #ifdef MGONGPU_HARDCODE_PARAM - using namespace Parameters_sm; + using namespace Parameters_sm; #endif - // NB: hardcode cxtype cI(0,1) instead of cxtype (or hardcoded cxsmpl) mdl_complexi (which exists in Parameters_sm) because: - // (1) mdl_complexi is always (0,1); (2) mdl_complexi is undefined in device code; (3) need cxsmpl conversion to cxtype in code below - const cxtype cI( 0., 1. ); - DependentCouplings_sv out; - // Begin SM implementation - no special handling of vectors of floats as in EFT (#439) - { - const fptype_sv& G = G_sv; - // Model parameters dependent on aS - //const fptype_sv mdl_sqrt__aS = constexpr_sqrt( aS ); - //const fptype_sv G = 2. * mdl_sqrt__aS * constexpr_sqrt( M_PI ); - const fptype_sv mdl_G__exp__2 = ( ( G ) * ( G ) ); - // Model couplings dependent on aS - out.GC_10 = -G; - out.GC_11 = cI * G; - out.GC_12 = cI * mdl_G__exp__2; + // NB: hardcode cxtype cI(0,1) instead of cxtype (or hardcoded cxsmpl) mdl_complexi (which exists in Parameters_sm) because: + // (1) mdl_complexi is always (0,1); (2) mdl_complexi is undefined in device code; (3) need cxsmpl conversion to cxtype in code below + const cxtype cI( 0., 1. ); + DependentCouplings_sv out; + // Begin SM implementation - no special handling of vectors of floats as in EFT (#439) + { + const fptype_sv& G = G_sv; + // Model parameters dependent on aS + //const fptype_sv mdl_sqrt__aS = constexpr_sqrt( aS ); + //const fptype_sv G = 2. * mdl_sqrt__aS * constexpr_sqrt( M_PI ); + const fptype_sv mdl_G__exp__2 = ( ( G ) * ( G ) ); + // Model couplings dependent on aS + out.GC_10 = -G; + out.GC_11 = cI * G; + out.GC_12 = cI * mdl_G__exp__2; + } + // End SM implementation - no special handling of vectors of floats as in EFT (#439) + return out; } - // End SM implementation - no special handling of vectors of floats as in EFT (#439) - return out; - } #ifdef __CUDACC__ #pragma GCC diagnostic pop #pragma nv_diagnostic pop #endif -} + } -//========================================================================== + //========================================================================== -namespace Parameters_sm_independentCouplings -{ - constexpr size_t nicoup = 0; // #couplings that are fixed for all events because they do not depend on the running alphas QCD - // NB: there are no aS-independent couplings in this physics process -} + namespace Parameters_sm_independentCouplings + { + constexpr size_t nicoup = 0; // #couplings that are fixed for all events because they do not depend on the running alphas QCD + // NB: there are no aS-independent couplings in this physics process + } -//========================================================================== + //========================================================================== -#ifdef __CUDACC__ -namespace mg5amcGpu -#else -namespace mg5amcCpu -#endif -{ #pragma GCC diagnostic push #ifndef __clang__ #pragma GCC diagnostic ignored "-Wunused-but-set-variable" // e.g. <> @@ -291,7 +310,8 @@ namespace mg5amcCpu return; } #pragma GCC diagnostic pop -} + +} // end namespace mg5amcGpu/mg5amcCpu //========================================================================== diff --git a/epochX/cudacpp/gg_ttgg.mad/src/cudacpp_src.mk b/epochX/cudacpp/gg_ttgg.mad/src/cudacpp_src.mk index 21b6d924ff..554d7a704c 100644 --- a/epochX/cudacpp/gg_ttgg.mad/src/cudacpp_src.mk +++ b/epochX/cudacpp/gg_ttgg.mad/src/cudacpp_src.mk @@ -38,7 +38,13 @@ endif #------------------------------------------------------------------------------- -#=== Configure ccache for CUDA and C++ builds +#=== Configure the CUDA compiler (note: NVCC is already exported including ccache) + +###$(info NVCC=$(NVCC)) + +#------------------------------------------------------------------------------- + +#=== Configure ccache for C++ builds (note: NVCC is already exported including ccache) # Enable ccache if USECCACHE=1 ifeq ($(USECCACHE)$(shell echo $(CXX) | grep ccache),1) @@ -47,11 +53,6 @@ endif #ifeq ($(USECCACHE)$(shell echo $(AR) | grep ccache),1) # override AR:=ccache $(AR) #endif -#ifneq ($(NVCC),) -# ifeq ($(USECCACHE)$(shell echo $(NVCC) | grep ccache),1) -# override NVCC:=ccache $(NVCC) -# endif -#endif #------------------------------------------------------------------------------- @@ -115,7 +116,9 @@ else ifneq ($(shell $(CXX) --version | grep ^nvc++),) # support nvc++ #531 $(error Unknown AVX='$(AVX)': only 'none', 'sse4', 'avx2', '512y' and '512z' are supported) endif else - ifeq ($(AVX),sse4) + ifeq ($(AVX),none) + override AVXFLAGS = -march=x86-64 # no SIMD (see #588) + else ifeq ($(AVX),sse4) override AVXFLAGS = -march=nehalem # SSE4.2 with 128 width (xmm registers) else ifeq ($(AVX),avx2) override AVXFLAGS = -march=haswell # AVX2 with 256 width (ymm registers) [DEFAULT for clang] @@ -216,7 +219,7 @@ MG5AMC_COMMONLIB = mg5amc_common all.$(TAG): $(BUILDDIR)/.build.$(TAG) $(LIBDIR)/.build.$(TAG) $(LIBDIR)/lib$(MG5AMC_COMMONLIB).so # Target (and build options): debug -debug: OPTFLAGS = -g -O0 -DDEBUG2 +debug: OPTFLAGS = -g -O0 debug: all.$(TAG) # Target: tag-specific build lockfiles @@ -237,17 +240,31 @@ $(LIBDIR)/.build.$(TAG): # Generic target and build rules: objects from C++ compilation $(BUILDDIR)/%.o : %.cc *.h $(BUILDDIR)/.build.$(TAG) - @if [ ! -d $(BUILDDIR) ]; then mkdir -p $(BUILDDIR); fi - $(CXX) $(CPPFLAGS) $(CXXFLAGS) -c $< -o $@ + @if [ ! -d $(BUILDDIR) ]; then echo "mkdir -p $(BUILDDIR)"; mkdir -p $(BUILDDIR); fi + $(CXX) $(CPPFLAGS) $(CXXFLAGS) -fPIC -c $< -o $@ + +# Generic target and build rules: objects from CUDA compilation +$(BUILDDIR)/%_cu.o : %.cc *.h $(BUILDDIR)/.build.$(TAG) + @if [ ! -d $(BUILDDIR) ]; then echo "mkdir -p $(BUILDDIR)"; mkdir -p $(BUILDDIR); fi + $(NVCC) $(CPPFLAGS) $(CUFLAGS) -Xcompiler -fPIC -c -x cu $< -o $@ #------------------------------------------------------------------------------- cxx_objects=$(addprefix $(BUILDDIR)/, Parameters_sm.o read_slha.o) +ifneq ($(NVCC),) +cu_objects=$(addprefix $(BUILDDIR)/, Parameters_sm_cu.o) +endif # Target (and build rules): common (src) library +ifneq ($(NVCC),) +$(LIBDIR)/lib$(MG5AMC_COMMONLIB).so : $(cxx_objects) $(cu_objects) + @if [ ! -d $(LIBDIR) ]; then echo "mkdir -p $(LIBDIR)"; mkdir -p $(LIBDIR); fi + $(NVCC) -shared -o $@ $(cxx_objects) $(cu_objects) +else $(LIBDIR)/lib$(MG5AMC_COMMONLIB).so : $(cxx_objects) @if [ ! -d $(LIBDIR) ]; then echo "mkdir -p $(LIBDIR)"; mkdir -p $(LIBDIR); fi - $(CXX) -shared -o$@ $(cxx_objects) + $(CXX) -shared -o $@ $(cxx_objects) +endif #------------------------------------------------------------------------------- diff --git a/epochX/cudacpp/gg_ttgg.mad/src/mgOnGpuConfig.h b/epochX/cudacpp/gg_ttgg.mad/src/mgOnGpuConfig.h index 881353abac..cacab1031a 100644 --- a/epochX/cudacpp/gg_ttgg.mad/src/mgOnGpuConfig.h +++ b/epochX/cudacpp/gg_ttgg.mad/src/mgOnGpuConfig.h @@ -98,6 +98,7 @@ #endif #endif +// NB: namespace mgOnGpu includes types which are defined in exactly the same way for CPU and GPU builds (see #318 and #725) namespace mgOnGpu { diff --git a/epochX/cudacpp/gg_ttgg.mad/src/mgOnGpuCxtypes.h b/epochX/cudacpp/gg_ttgg.mad/src/mgOnGpuCxtypes.h index 0cb2f1db7e..b56348bc58 100644 --- a/epochX/cudacpp/gg_ttgg.mad/src/mgOnGpuCxtypes.h +++ b/epochX/cudacpp/gg_ttgg.mad/src/mgOnGpuCxtypes.h @@ -43,8 +43,12 @@ // COMPLEX TYPES: SIMPLE COMPLEX CLASS (cxsmpl) //========================================================================== +// NB: namespace mgOnGpu includes types which are defined in exactly the same way for CPU and GPU builds (see #318 and #725) namespace mgOnGpu /* clang-format off */ { + // The number of floating point types in a complex type (real, imaginary) + constexpr int nx2 = 2; + // --- Type definition (simple complex type derived from cxtype_v) template class cxsmpl @@ -78,128 +82,139 @@ namespace mgOnGpu /* clang-format off */ using mgOnGpu::cxsmpl; // Printout to stream for user defined types -template -inline __host__ __device__ std::ostream& -operator<<( std::ostream& out, const cxsmpl& c ) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { - out << std::complex( c.real(), c.imag() ); - return out; -} + template + inline __host__ std::ostream& + operator<<( std::ostream& out, const cxsmpl& c ) + { + out << std::complex( c.real(), c.imag() ); + return out; + } -// Operators for cxsmpl -template -inline __host__ __device__ constexpr cxsmpl -operator+( const cxsmpl a ) -{ - return a; -} + // Operators for cxsmpl + template + inline __host__ __device__ constexpr cxsmpl + operator+( const cxsmpl a ) + { + return a; + } -template -inline __host__ __device__ constexpr cxsmpl -operator-( const cxsmpl& a ) -{ - return cxsmpl( -a.real(), -a.imag() ); -} + template + inline __host__ __device__ constexpr cxsmpl + operator-( const cxsmpl& a ) + { + return cxsmpl( -a.real(), -a.imag() ); + } -template -inline __host__ __device__ constexpr cxsmpl -operator+( const cxsmpl& a, const cxsmpl& b ) -{ - return cxsmpl( a.real() + b.real(), a.imag() + b.imag() ); -} + template + inline __host__ __device__ constexpr cxsmpl + operator+( const cxsmpl& a, const cxsmpl& b ) + { + return cxsmpl( a.real() + b.real(), a.imag() + b.imag() ); + } -template -inline __host__ __device__ constexpr cxsmpl -operator+( const FP& a, const cxsmpl& b ) -{ - return cxsmpl( a, 0 ) + b; -} + template + inline __host__ __device__ constexpr cxsmpl + operator+( const FP& a, const cxsmpl& b ) + { + return cxsmpl( a, 0 ) + b; + } -template -inline __host__ __device__ constexpr cxsmpl -operator-( const cxsmpl& a, const cxsmpl& b ) -{ - return cxsmpl( a.real() - b.real(), a.imag() - b.imag() ); -} + template + inline __host__ __device__ constexpr cxsmpl + operator-( const cxsmpl& a, const cxsmpl& b ) + { + return cxsmpl( a.real() - b.real(), a.imag() - b.imag() ); + } -template -inline __host__ __device__ constexpr cxsmpl -operator-( const FP& a, const cxsmpl& b ) -{ - return cxsmpl( a, 0 ) - b; -} + template + inline __host__ __device__ constexpr cxsmpl + operator-( const FP& a, const cxsmpl& b ) + { + return cxsmpl( a, 0 ) - b; + } -template -inline __host__ __device__ constexpr cxsmpl -operator*( const cxsmpl& a, const cxsmpl& b ) -{ - return cxsmpl( a.real() * b.real() - a.imag() * b.imag(), a.imag() * b.real() + a.real() * b.imag() ); -} + template + inline __host__ __device__ constexpr cxsmpl + operator*( const cxsmpl& a, const cxsmpl& b ) + { + return cxsmpl( a.real() * b.real() - a.imag() * b.imag(), a.imag() * b.real() + a.real() * b.imag() ); + } -template -inline __host__ __device__ constexpr cxsmpl -operator*( const FP& a, const cxsmpl& b ) -{ - return cxsmpl( a, 0 ) * b; -} + template + inline __host__ __device__ constexpr cxsmpl + operator*( const FP& a, const cxsmpl& b ) + { + return cxsmpl( a, 0 ) * b; + } -inline __host__ __device__ constexpr cxsmpl -operator*( const double& a, const cxsmpl& b ) -{ - return cxsmpl( a, 0 ) * b; -} + inline __host__ __device__ constexpr cxsmpl + operator*( const double& a, const cxsmpl& b ) + { + return cxsmpl( a, 0 ) * b; + } -template -inline __host__ __device__ constexpr cxsmpl -operator/( const cxsmpl& a, const cxsmpl& b ) -{ - FP bnorm = b.real() * b.real() + b.imag() * b.imag(); - return cxsmpl( ( a.real() * b.real() + a.imag() * b.imag() ) / bnorm, - ( a.imag() * b.real() - a.real() * b.imag() ) / bnorm ); -} + template + inline __host__ __device__ constexpr cxsmpl + operator/( const cxsmpl& a, const cxsmpl& b ) + { + FP bnorm = b.real() * b.real() + b.imag() * b.imag(); + return cxsmpl( ( a.real() * b.real() + a.imag() * b.imag() ) / bnorm, + ( a.imag() * b.real() - a.real() * b.imag() ) / bnorm ); + } -template -inline __host__ __device__ constexpr cxsmpl -operator/( const FP& a, const cxsmpl& b ) -{ - return cxsmpl( a, 0 ) / b; -} + template + inline __host__ __device__ constexpr cxsmpl + operator/( const FP& a, const cxsmpl& b ) + { + return cxsmpl( a, 0 ) / b; + } -template -inline __host__ __device__ constexpr cxsmpl -operator+( const cxsmpl& a, const FP& b ) -{ - return a + cxsmpl( b, 0 ); -} + template + inline __host__ __device__ constexpr cxsmpl + operator+( const cxsmpl& a, const FP& b ) + { + return a + cxsmpl( b, 0 ); + } -template -inline __host__ __device__ constexpr cxsmpl -operator-( const cxsmpl& a, const FP& b ) -{ - return a - cxsmpl( b, 0 ); -} + template + inline __host__ __device__ constexpr cxsmpl + operator-( const cxsmpl& a, const FP& b ) + { + return a - cxsmpl( b, 0 ); + } -template -inline __host__ __device__ constexpr cxsmpl -operator*( const cxsmpl& a, const FP& b ) -{ - return a * cxsmpl( b, 0 ); -} + template + inline __host__ __device__ constexpr cxsmpl + operator*( const cxsmpl& a, const FP& b ) + { + return a * cxsmpl( b, 0 ); + } -template -inline __host__ __device__ constexpr cxsmpl -operator/( const cxsmpl& a, const FP& b ) -{ - return a / cxsmpl( b, 0 ); + template + inline __host__ __device__ constexpr cxsmpl + operator/( const cxsmpl& a, const FP& b ) + { + return a / cxsmpl( b, 0 ); + } } //========================================================================== // COMPLEX TYPES: (PLATFORM-SPECIFIC) TYPEDEFS //========================================================================== -namespace mgOnGpu +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { - // --- Type definitions (complex type: cxtype) #ifdef __CUDACC__ // cuda #if defined MGONGPU_CUCXTYPE_THRUST @@ -221,390 +236,402 @@ namespace mgOnGpu #endif #endif - // The number of floating point types in a complex type (real, imaginary) - constexpr int nx2 = 2; - // SANITY CHECK: memory access may be based on casts of fptype[2] to cxtype (e.g. for wavefunctions) - static_assert( sizeof( cxtype ) == nx2 * sizeof( fptype ), "sizeof(cxtype) is not 2*sizeof(fptype)" ); + static_assert( sizeof( cxtype ) == mgOnGpu::nx2 * sizeof( fptype ), "sizeof(cxtype) is not 2*sizeof(fptype)" ); } -// Expose typedefs and operators outside the namespace -using mgOnGpu::cxtype; +// DANGEROUS! this was mixing different cxtype definitions for CPU and GPU builds (see #318 and #725) +// DO NOT expose typedefs and operators outside the namespace +//using mgOnGpu::cxtype; //========================================================================== // COMPLEX TYPES: (PLATFORM-SPECIFIC) FUNCTIONS AND OPERATORS //========================================================================== +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif +{ #if defined MGONGPU_CUCXTYPE_CXSMPL or defined MGONGPU_CPPCXTYPE_CXSMPL -//------------------------------ -// CUDA or C++ - using cxsmpl -//------------------------------ + //------------------------------ + // CUDA or C++ - using cxsmpl + //------------------------------ -inline __host__ __device__ cxtype -cxmake( const fptype& r, const fptype& i ) -{ - return cxtype( r, i ); // cxsmpl constructor -} + inline __host__ __device__ cxtype + cxmake( const fptype& r, const fptype& i ) + { + return cxtype( r, i ); // cxsmpl constructor + } -inline __host__ __device__ fptype -cxreal( const cxtype& c ) -{ - return c.real(); // cxsmpl::real() -} + inline __host__ __device__ fptype + cxreal( const cxtype& c ) + { + return c.real(); // cxsmpl::real() + } -inline __host__ __device__ fptype -cximag( const cxtype& c ) -{ - return c.imag(); // cxsmpl::imag() -} + inline __host__ __device__ fptype + cximag( const cxtype& c ) + { + return c.imag(); // cxsmpl::imag() + } -inline __host__ __device__ cxtype -cxconj( const cxtype& c ) -{ - return conj( c ); // conj( cxsmpl ) -} + inline __host__ __device__ cxtype + cxconj( const cxtype& c ) + { + return conj( c ); // conj( cxsmpl ) + } -inline __host__ cxtype // NOT __device__ -cxmake( const std::complex& c ) // std::complex to cxsmpl (float-to-float or float-to-double) -{ - return cxmake( c.real(), c.imag() ); -} + inline __host__ cxtype // NOT __device__ + cxmake( const std::complex& c ) // std::complex to cxsmpl (float-to-float or float-to-double) + { + return cxmake( c.real(), c.imag() ); + } -inline __host__ cxtype // NOT __device__ -cxmake( const std::complex& c ) // std::complex to cxsmpl (double-to-float or double-to-double) -{ - return cxmake( c.real(), c.imag() ); -} + inline __host__ cxtype // NOT __device__ + cxmake( const std::complex& c ) // std::complex to cxsmpl (double-to-float or double-to-double) + { + return cxmake( c.real(), c.imag() ); + } #endif // #if defined MGONGPU_CUCXTYPE_CXSMPL or defined MGONGPU_CPPCXTYPE_CXSMPL -//========================================================================== + //========================================================================== #if defined __CUDACC__ and defined MGONGPU_CUCXTYPE_THRUST // cuda + thrust -//------------------------------ -// CUDA - using thrust::complex -//------------------------------ + //------------------------------ + // CUDA - using thrust::complex + //------------------------------ -inline __host__ __device__ cxtype -cxmake( const fptype& r, const fptype& i ) -{ - return cxtype( r, i ); // thrust::complex constructor -} + inline __host__ __device__ cxtype + cxmake( const fptype& r, const fptype& i ) + { + return cxtype( r, i ); // thrust::complex constructor + } -inline __host__ __device__ fptype -cxreal( const cxtype& c ) -{ - return c.real(); // thrust::complex::real() -} + inline __host__ __device__ fptype + cxreal( const cxtype& c ) + { + return c.real(); // thrust::complex::real() + } -inline __host__ __device__ fptype -cximag( const cxtype& c ) -{ - return c.imag(); // thrust::complex::imag() -} + inline __host__ __device__ fptype + cximag( const cxtype& c ) + { + return c.imag(); // thrust::complex::imag() + } -inline __host__ __device__ cxtype -cxconj( const cxtype& c ) -{ - return conj( c ); // conj( thrust::complex ) -} + inline __host__ __device__ cxtype + cxconj( const cxtype& c ) + { + return conj( c ); // conj( thrust::complex ) + } -inline __host__ __device__ const cxtype& -cxmake( const cxtype& c ) -{ - return c; -} + inline __host__ __device__ const cxtype& + cxmake( const cxtype& c ) + { + return c; + } #endif // #if defined __CUDACC__ and defined MGONGPU_CUCXTYPE_THRUST -//========================================================================== + //========================================================================== #if defined __CUDACC__ and defined MGONGPU_CUCXTYPE_CUCOMPLEX // cuda + cucomplex -//------------------------------ -// CUDA - using cuComplex -//------------------------------ + //------------------------------ + // CUDA - using cuComplex + //------------------------------ #if defined MGONGPU_FPTYPE_DOUBLE // cuda + cucomplex + double -//+++++++++++++++++++++++++ -// cuDoubleComplex ONLY -//+++++++++++++++++++++++++ + //+++++++++++++++++++++++++ + // cuDoubleComplex ONLY + //+++++++++++++++++++++++++ -inline __host__ __device__ cxtype -cxmake( const fptype& r, const fptype& i ) -{ - return make_cuDoubleComplex( r, i ); -} + inline __host__ __device__ cxtype + cxmake( const fptype& r, const fptype& i ) + { + return make_cuDoubleComplex( r, i ); + } -inline __host__ __device__ fptype -cxreal( const cxtype& c ) -{ - return cuCreal( c ); // returns by value -} + inline __host__ __device__ fptype + cxreal( const cxtype& c ) + { + return cuCreal( c ); // returns by value + } -inline __host__ __device__ fptype -cximag( const cxtype& c ) -{ - return cuCimag( c ); // returns by value -} + inline __host__ __device__ fptype + cximag( const cxtype& c ) + { + return cuCimag( c ); // returns by value + } -inline __host__ __device__ cxtype -operator+( const cxtype& a, const cxtype& b ) -{ - return cuCadd( a, b ); -} + inline __host__ __device__ cxtype + operator+( const cxtype& a, const cxtype& b ) + { + return cuCadd( a, b ); + } -inline __host__ __device__ cxtype& -operator+=( cxtype& a, const cxtype& b ) -{ - a = cuCadd( a, b ); - return a; -} + inline __host__ __device__ cxtype& + operator+=( cxtype& a, const cxtype& b ) + { + a = cuCadd( a, b ); + return a; + } -inline __host__ __device__ cxtype -operator-( const cxtype& a, const cxtype& b ) -{ - return cuCsub( a, b ); -} + inline __host__ __device__ cxtype + operator-( const cxtype& a, const cxtype& b ) + { + return cuCsub( a, b ); + } -inline __host__ __device__ cxtype& -operator-=( cxtype& a, const cxtype& b ) -{ - a = cuCsub( a, b ); - return a; -} + inline __host__ __device__ cxtype& + operator-=( cxtype& a, const cxtype& b ) + { + a = cuCsub( a, b ); + return a; + } -inline __host__ __device__ cxtype -operator*( const cxtype& a, const cxtype& b ) -{ - return cuCmul( a, b ); -} + inline __host__ __device__ cxtype + operator*( const cxtype& a, const cxtype& b ) + { + return cuCmul( a, b ); + } -inline __host__ __device__ cxtype -operator/( const cxtype& a, const cxtype& b ) -{ - return cuCdiv( a, b ); -} + inline __host__ __device__ cxtype + operator/( const cxtype& a, const cxtype& b ) + { + return cuCdiv( a, b ); + } #elif defined MGONGPU_FPTYPE_FLOAT // cuda + cucomplex + float -//+++++++++++++++++++++++++ -// cuFloatComplex ONLY -//+++++++++++++++++++++++++ + //+++++++++++++++++++++++++ + // cuFloatComplex ONLY + //+++++++++++++++++++++++++ -inline __host__ __device__ cxtype -cxmake( const fptype& r, const fptype& i ) -{ - return make_cuFloatComplex( r, i ); -} + inline __host__ __device__ cxtype + cxmake( const fptype& r, const fptype& i ) + { + return make_cuFloatComplex( r, i ); + } -inline __host__ __device__ fptype -cxreal( const cxtype& c ) -{ - return cuCrealf( c ); // returns by value -} + inline __host__ __device__ fptype + cxreal( const cxtype& c ) + { + return cuCrealf( c ); // returns by value + } -inline __host__ __device__ fptype -cximag( const cxtype& c ) -{ - return cuCimagf( c ); // returns by value -} + inline __host__ __device__ fptype + cximag( const cxtype& c ) + { + return cuCimagf( c ); // returns by value + } -inline __host__ __device__ cxtype -operator+( const cxtype& a, const cxtype& b ) -{ - return cuCaddf( a, b ); -} + inline __host__ __device__ cxtype + operator+( const cxtype& a, const cxtype& b ) + { + return cuCaddf( a, b ); + } -inline __host__ __device__ cxtype& -operator+=( cxtype& a, const cxtype& b ) -{ - a = cuCaddf( a, b ); - return a; -} + inline __host__ __device__ cxtype& + operator+=( cxtype& a, const cxtype& b ) + { + a = cuCaddf( a, b ); + return a; + } -inline __host__ __device__ cxtype -operator-( const cxtype& a, const cxtype& b ) -{ - return cuCsubf( a, b ); -} + inline __host__ __device__ cxtype + operator-( const cxtype& a, const cxtype& b ) + { + return cuCsubf( a, b ); + } -inline __host__ __device__ cxtype& -operator-=( cxtype& a, const cxtype& b ) -{ - a = cuCsubf( a, b ); - return a; -} + inline __host__ __device__ cxtype& + operator-=( cxtype& a, const cxtype& b ) + { + a = cuCsubf( a, b ); + return a; + } -inline __host__ __device__ cxtype -operator*( const cxtype& a, const cxtype& b ) -{ - return cuCmulf( a, b ); -} + inline __host__ __device__ cxtype + operator*( const cxtype& a, const cxtype& b ) + { + return cuCmulf( a, b ); + } -inline __host__ __device__ cxtype -operator/( const cxtype& a, const cxtype& b ) -{ - return cuCdivf( a, b ); -} + inline __host__ __device__ cxtype + operator/( const cxtype& a, const cxtype& b ) + { + return cuCdivf( a, b ); + } -inline __host__ cxtype // NOT __device__ -cxmake( const std::complex& c ) // std::complex to cucomplex (cast double-to-float) -{ - return cxmake( (fptype)c.real(), (fptype)c.imag() ); -} + inline __host__ cxtype // NOT __device__ + cxmake( const std::complex& c ) // std::complex to cucomplex (cast double-to-float) + { + return cxmake( (fptype)c.real(), (fptype)c.imag() ); + } #endif -//+++++++++++++++++++++++++ -// cuDoubleComplex OR -// cuFloatComplex -//+++++++++++++++++++++++++ + //+++++++++++++++++++++++++ + // cuDoubleComplex OR + // cuFloatComplex + //+++++++++++++++++++++++++ -inline __host__ __device__ cxtype -operator+( const cxtype a ) -{ - return a; -} + inline __host__ __device__ cxtype + operator+( const cxtype a ) + { + return a; + } -inline __host__ __device__ cxtype -operator-( const cxtype& a ) -{ - return cxmake( -cxreal( a ), -cximag( a ) ); -} + inline __host__ __device__ cxtype + operator-( const cxtype& a ) + { + return cxmake( -cxreal( a ), -cximag( a ) ); + } -inline __host__ __device__ cxtype -operator+( const fptype& a, const cxtype& b ) -{ - return cxmake( a, 0 ) + b; -} + inline __host__ __device__ cxtype + operator+( const fptype& a, const cxtype& b ) + { + return cxmake( a, 0 ) + b; + } -inline __host__ __device__ cxtype -operator-( const fptype& a, const cxtype& b ) -{ - return cxmake( a, 0 ) - b; -} + inline __host__ __device__ cxtype + operator-( const fptype& a, const cxtype& b ) + { + return cxmake( a, 0 ) - b; + } -inline __host__ __device__ cxtype -operator*( const fptype& a, const cxtype& b ) -{ - return cxmake( a, 0 ) * b; -} + inline __host__ __device__ cxtype + operator*( const fptype& a, const cxtype& b ) + { + return cxmake( a, 0 ) * b; + } -inline __host__ __device__ cxtype -operator/( const fptype& a, const cxtype& b ) -{ - return cxmake( a, 0 ) / b; -} + inline __host__ __device__ cxtype + operator/( const fptype& a, const cxtype& b ) + { + return cxmake( a, 0 ) / b; + } -inline __host__ __device__ cxtype -operator+( const cxtype& a, const fptype& b ) -{ - return a + cxmake( b, 0 ); -} + inline __host__ __device__ cxtype + operator+( const cxtype& a, const fptype& b ) + { + return a + cxmake( b, 0 ); + } -inline __host__ __device__ cxtype -operator-( const cxtype& a, const fptype& b ) -{ - return a - cxmake( b, 0 ); -} + inline __host__ __device__ cxtype + operator-( const cxtype& a, const fptype& b ) + { + return a - cxmake( b, 0 ); + } -inline __host__ __device__ cxtype -operator*( const cxtype& a, const fptype& b ) -{ - return a * cxmake( b, 0 ); -} + inline __host__ __device__ cxtype + operator*( const cxtype& a, const fptype& b ) + { + return a * cxmake( b, 0 ); + } -inline __host__ __device__ cxtype -operator/( const cxtype& a, const fptype& b ) -{ - return a / cxmake( b, 0 ); -} + inline __host__ __device__ cxtype + operator/( const cxtype& a, const fptype& b ) + { + return a / cxmake( b, 0 ); + } -inline __host__ __device__ cxtype -cxconj( const cxtype& c ) -{ - return cxmake( cxreal( c ), -cximag( c ) ); -} + inline __host__ __device__ cxtype + cxconj( const cxtype& c ) + { + return cxmake( cxreal( c ), -cximag( c ) ); + } -inline __host__ cxtype // NOT __device__ -cxmake( const std::complex& c ) // std::complex to cucomplex (float-to-float or double-to-double) -{ - return cxmake( c.real(), c.imag() ); -} + inline __host__ cxtype // NOT __device__ + cxmake( const std::complex& c ) // std::complex to cucomplex (float-to-float or double-to-double) + { + return cxmake( c.real(), c.imag() ); + } #endif // #if defined __CUDACC__ and defined MGONGPU_CUCXTYPE_CUCOMPLEX -//========================================================================== + //========================================================================== #if not defined __CUDACC__ and defined MGONGPU_CPPCXTYPE_STDCOMPLEX // c++ + stdcomplex -//------------------------------ -// C++ - using std::complex -//------------------------------ + //------------------------------ + // C++ - using std::complex + //------------------------------ -inline cxtype -cxmake( const fptype& r, const fptype& i ) -{ - return cxtype( r, i ); // std::complex constructor -} + inline cxtype + cxmake( const fptype& r, const fptype& i ) + { + return cxtype( r, i ); // std::complex constructor + } -inline fptype -cxreal( const cxtype& c ) -{ - return c.real(); // std::complex::real() -} + inline fptype + cxreal( const cxtype& c ) + { + return c.real(); // std::complex::real() + } -inline fptype -cximag( const cxtype& c ) -{ - return c.imag(); // std::complex::imag() -} + inline fptype + cximag( const cxtype& c ) + { + return c.imag(); // std::complex::imag() + } -inline cxtype -cxconj( const cxtype& c ) -{ - return conj( c ); // conj( std::complex ) -} + inline cxtype + cxconj( const cxtype& c ) + { + return conj( c ); // conj( std::complex ) + } -inline const cxtype& -cxmake( const cxtype& c ) // std::complex to std::complex (float-to-float or double-to-double) -{ - return c; -} + inline const cxtype& + cxmake( const cxtype& c ) // std::complex to std::complex (float-to-float or double-to-double) + { + return c; + } #if defined MGONGPU_FPTYPE_FLOAT -inline cxtype -cxmake( const std::complex& c ) // std::complex to std::complex (cast double-to-float) -{ - return cxmake( (fptype)c.real(), (fptype)c.imag() ); -} + inline cxtype + cxmake( const std::complex& c ) // std::complex to std::complex (cast double-to-float) + { + return cxmake( (fptype)c.real(), (fptype)c.imag() ); + } #endif #endif // #if not defined __CUDACC__ and defined MGONGPU_CPPCXTYPE_STDCOMPLEX -//========================================================================== + //========================================================================== -inline __host__ __device__ const cxtype -cxmake( const cxsmpl& c ) // cxsmpl to cxtype (float-to-float or float-to-double) -{ - return cxmake( c.real(), c.imag() ); -} + inline __host__ __device__ const cxtype + cxmake( const cxsmpl& c ) // cxsmpl to cxtype (float-to-float or float-to-double) + { + return cxmake( c.real(), c.imag() ); + } -inline __host__ __device__ const cxtype -cxmake( const cxsmpl& c ) // cxsmpl to cxtype (double-to-float or double-to-double) -{ - return cxmake( c.real(), c.imag() ); -} + inline __host__ __device__ const cxtype + cxmake( const cxsmpl& c ) // cxsmpl to cxtype (double-to-float or double-to-double) + { + return cxmake( c.real(), c.imag() ); + } + +} // end namespace mg5amcGpu/mg5amcCpu //========================================================================== // COMPLEX TYPES: WRAPPER OVER RI FLOATING POINT PAIR (cxtype_ref) //========================================================================== -namespace mgOnGpu /* clang-format off */ +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { // The cxtype_ref class (a non-const reference to two fp variables) was originally designed for cxtype_v::operator[] // It used to be included in the code only when MGONGPU_HAS_CPPCXTYPEV_BRK (originally MGONGPU_HAS_CPPCXTYPE_REF) is defined @@ -615,23 +642,30 @@ namespace mgOnGpu /* clang-format off */ cxtype_ref() = delete; cxtype_ref( const cxtype_ref& ) = delete; cxtype_ref( cxtype_ref&& ) = default; // copy refs - __host__ __device__ cxtype_ref( fptype& r, fptype& i ) : m_preal( &r ), m_pimag( &i ) {} // copy refs + __host__ __device__ cxtype_ref( fptype& r, fptype& i ) + : m_preal( &r ), m_pimag( &i ) {} // copy refs cxtype_ref& operator=( const cxtype_ref& ) = delete; //__host__ __device__ cxtype_ref& operator=( cxtype_ref&& c ) {...} // REMOVED! Should copy refs or copy values? No longer needed in cxternary - __host__ __device__ cxtype_ref& operator=( const cxtype& c ) { *m_preal = cxreal( c ); *m_pimag = cximag( c ); return *this; } // copy values + __host__ __device__ cxtype_ref& operator=( const cxtype& c ) + { + *m_preal = cxreal( c ); + *m_pimag = cximag( c ); + return *this; + } // copy values __host__ __device__ operator cxtype() const { return cxmake( *m_preal, *m_pimag ); } private: fptype *m_preal, *m_pimag; // RI }; -} /* clang-format on */ -// Printout to stream for user defined types -inline __host__ __device__ std::ostream& -operator<<( std::ostream& out, const mgOnGpu::cxtype_ref& c ) -{ - out << (cxtype)c; - return out; -} + // Printout to stream for user defined types + inline __host__ __device__ std::ostream& + operator<<( std::ostream& out, const cxtype_ref& c ) + { + out << (cxtype)c; + return out; + } + +} // end namespace mg5amcGpu/mg5amcCpu //========================================================================== diff --git a/epochX/cudacpp/gg_ttgg.mad/src/mgOnGpuFptypes.h b/epochX/cudacpp/gg_ttgg.mad/src/mgOnGpuFptypes.h index a1cde16a67..905c97d700 100644 --- a/epochX/cudacpp/gg_ttgg.mad/src/mgOnGpuFptypes.h +++ b/epochX/cudacpp/gg_ttgg.mad/src/mgOnGpuFptypes.h @@ -11,82 +11,91 @@ #include #include -//========================================================================== - -#ifdef __CUDACC__ // cuda - -//------------------------------ -// Floating point types - Cuda -//------------------------------ - -/* -inline __host__ __device__ fptype -fpmax( const fptype& a, const fptype& b ) -{ - return max( a, b ); -} - -inline __host__ __device__ fptype -fpmin( const fptype& a, const fptype& b ) -{ - return min( a, b ); -} -*/ - -inline __host__ __device__ const fptype& -fpmax( const fptype& a, const fptype& b ) +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { - return ( ( b < a ) ? a : b ); -} + //========================================================================== -inline __host__ __device__ const fptype& -fpmin( const fptype& a, const fptype& b ) -{ - return ( ( a < b ) ? a : b ); -} +#ifdef __CUDACC__ // cuda -inline __host__ __device__ fptype -fpsqrt( const fptype& f ) -{ + //------------------------------ + // Floating point types - Cuda + //------------------------------ + + /* + inline __host__ __device__ fptype + fpmax( const fptype& a, const fptype& b ) + { + return max( a, b ); + } + + inline __host__ __device__ fptype + fpmin( const fptype& a, const fptype& b ) + { + return min( a, b ); + } + */ + + inline __host__ __device__ const fptype& + fpmax( const fptype& a, const fptype& b ) + { + return ( ( b < a ) ? a : b ); + } + + inline __host__ __device__ const fptype& + fpmin( const fptype& a, const fptype& b ) + { + return ( ( a < b ) ? a : b ); + } + + inline __host__ __device__ fptype + fpsqrt( const fptype& f ) + { #if defined MGONGPU_FPTYPE_FLOAT - // See https://docs.nvidia.com/cuda/cuda-math-api/group__CUDA__MATH__SINGLE.html - return sqrtf( f ); + // See https://docs.nvidia.com/cuda/cuda-math-api/group__CUDA__MATH__SINGLE.html + return sqrtf( f ); #else - // See https://docs.nvidia.com/cuda/cuda-math-api/group__CUDA__MATH__DOUBLE.html - return sqrt( f ); + // See https://docs.nvidia.com/cuda/cuda-math-api/group__CUDA__MATH__DOUBLE.html + return sqrt( f ); #endif -} + } #endif // #ifdef __CUDACC__ -//========================================================================== + //========================================================================== #ifndef __CUDACC__ -//------------------------------ -// Floating point types - C++ -//------------------------------ + //------------------------------ + // Floating point types - C++ + //------------------------------ -inline const fptype& -fpmax( const fptype& a, const fptype& b ) -{ - return std::max( a, b ); -} + inline const fptype& + fpmax( const fptype& a, const fptype& b ) + { + return std::max( a, b ); + } -inline const fptype& -fpmin( const fptype& a, const fptype& b ) -{ - return std::min( a, b ); -} + inline const fptype& + fpmin( const fptype& a, const fptype& b ) + { + return std::min( a, b ); + } -inline fptype -fpsqrt( const fptype& f ) -{ - return std::sqrt( f ); -} + inline fptype + fpsqrt( const fptype& f ) + { + return std::sqrt( f ); + } #endif // #ifndef __CUDACC__ -//========================================================================== + //========================================================================== + +} // end namespace mg5amcGpu/mg5amcCpu #endif // MGONGPUFPTYPES_H diff --git a/epochX/cudacpp/gg_ttgg.mad/src/mgOnGpuVectors.h b/epochX/cudacpp/gg_ttgg.mad/src/mgOnGpuVectors.h index 9d3e82b1e3..0d3892d026 100644 --- a/epochX/cudacpp/gg_ttgg.mad/src/mgOnGpuVectors.h +++ b/epochX/cudacpp/gg_ttgg.mad/src/mgOnGpuVectors.h @@ -31,7 +31,12 @@ //#undef MGONGPU_HAS_CPPCXTYPEV_BRK // gcc test (very slightly slower? issue #172) #endif -namespace mgOnGpu /* clang-format off */ +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { #ifdef MGONGPU_CPPSIMD @@ -72,22 +77,40 @@ namespace mgOnGpu /* clang-format off */ public: // Array initialization: zero-out as "{0}" (C and C++) or as "{}" (C++ only) // See https://en.cppreference.com/w/c/language/array_initialization#Notes - cxtype_v() : m_real{ 0 }, m_imag{ 0 } {} // RRRR=0000 IIII=0000 + cxtype_v() + : m_real{ 0 }, m_imag{ 0 } {} // RRRR=0000 IIII=0000 cxtype_v( const cxtype_v& ) = default; cxtype_v( cxtype_v&& ) = default; - cxtype_v( const fptype_v& r, const fptype_v& i ) : m_real( r ), m_imag( i ) {} - cxtype_v( const fptype_v& r ) : m_real( r ), m_imag{ 0 } {} // IIII=0000 + cxtype_v( const fptype_v& r, const fptype_v& i ) + : m_real( r ), m_imag( i ) {} + cxtype_v( const fptype_v& r ) + : m_real( r ), m_imag{ 0 } {} // IIII=0000 + cxtype_v( const fptype& r ) + : m_real( fptype_v{} + r ), m_imag{ 0 } {} // IIII=0000 cxtype_v& operator=( const cxtype_v& ) = default; cxtype_v& operator=( cxtype_v&& ) = default; - cxtype_v& operator+=( const cxtype_v& c ) { m_real += c.real(); m_imag += c.imag(); return *this; } - cxtype_v& operator-=( const cxtype_v& c ) { m_real -= c.real(); m_imag -= c.imag(); return *this; } + cxtype_v& operator+=( const cxtype_v& c ) + { + m_real += c.real(); + m_imag += c.imag(); + return *this; + } + cxtype_v& operator-=( const cxtype_v& c ) + { + m_real -= c.real(); + m_imag -= c.imag(); + return *this; + } #ifdef MGONGPU_HAS_CPPCXTYPEV_BRK // NB: THIS IS THE FUNDAMENTAL DIFFERENCE BETWEEN MGONGPU_HAS_CPPCXTYPEV_BRK DEFINED AND NOT DEFINED // NB: the alternative "clang" implementation is simpler: it simply does not have any bracket operator[] // NB: ** do NOT implement operator[] to return a value: it does not fail the build (why?) and gives unexpected results! ** cxtype_ref operator[]( size_t i ) const { return cxtype_ref( m_real[i], m_imag[i] ); } #endif - const fptype_v& real() const { return m_real; } + const fptype_v& real() const + { + return m_real; + } const fptype_v& imag() const { return m_imag; } private: fptype_v m_real, m_imag; // RRRRIIII @@ -98,7 +121,7 @@ namespace mgOnGpu /* clang-format off */ #if defined MGONGPU_FPTYPE_DOUBLE typedef long int bool_v __attribute__( ( ext_vector_type( neppV ) ) ); // bbbb #elif defined MGONGPU_FPTYPE_FLOAT - typedef int bool_v __attribute__( ( ext_vector_type( neppV ) ) ); // bbbb + typedef int bool_v __attribute__( ( ext_vector_type( neppV ) ) ); // bbbb #endif #else // gcc #if defined MGONGPU_FPTYPE_DOUBLE @@ -113,532 +136,551 @@ namespace mgOnGpu /* clang-format off */ const int neppV = 1; #endif // #ifdef MGONGPU_CPPSIMD - -} /* clang-format on */ +} //-------------------------------------------------------------------------- -// Expose typedefs outside the namespace -using mgOnGpu::neppV; -#ifdef MGONGPU_CPPSIMD -using mgOnGpu::fptype_v; -using mgOnGpu::fptype2_v; -using mgOnGpu::cxtype_v; -using mgOnGpu::bool_v; -#endif +// DANGEROUS! this was mixing different cxtype definitions for CPU and GPU builds (see #318 and #725) +// DO NOT expose typedefs outside the namespace +//using mgOnGpu::neppV; +//#ifdef MGONGPU_CPPSIMD +//using mgOnGpu::fptype_v; +//using mgOnGpu::fptype2_v; +//using mgOnGpu::cxtype_v; +//using mgOnGpu::bool_v; +//#endif -//-------------------------------------------------------------------------- +//========================================================================== +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif +{ #ifndef __CUDACC__ -// Printout to stream for user defined types + // Printout to stream for user defined types #ifndef MGONGPU_CPPCXTYPE_CXSMPL // operator<< for cxsmpl has already been defined! -inline std::ostream& -operator<<( std::ostream& out, const cxtype& c ) -{ - out << "[" << cxreal( c ) << "," << cximag( c ) << "]"; - //out << cxreal(c) << "+i" << cximag(c); - return out; -} + inline std::ostream& + operator<<( std::ostream& out, const cxtype& c ) + { + out << "[" << cxreal( c ) << "," << cximag( c ) << "]"; + //out << cxreal(c) << "+i" << cximag(c); + return out; + } #endif -/* + /* #ifdef MGONGPU_CPPSIMD -inline std::ostream& -operator<<( std::ostream& out, const bool_v& v ) -{ - out << "{ " << v[0]; - for ( int i=1; i t t~ g g No model currently active, so we import the Standard Model INFO: load particles INFO: load vertices -DEBUG: model prefixing takes 0.004655122756958008  +DEBUG: model prefixing takes 0.004860401153564453  INFO: Restrict model sm with file models/sm/restrict_default.dat . DEBUG: Simplifying conditional expressions  DEBUG: remove interactions: u s w+ at order: QED=1  @@ -171,40 +171,40 @@ INFO: Processing color information for process: g g > t t~ g g @1 DEBUG: type(subproc_group)= [output.py at line 187]  DEBUG: type(fortran_model)= [output.py at line 188]  DEBUG: type(me)= me=0 [output.py at line 189]  -DEBUG: Entering PLUGIN_OneProcessExporter.__init__ [model_handling.py at line 1028]  -DEBUG: proc_id =  0 [model_handling.py at line 1034]  +DEBUG: Entering PLUGIN_OneProcessExporter.__init__ [model_handling.py at line 1039]  +DEBUG: proc_id =  0 [model_handling.py at line 1045]  INFO: Creating files in directory /data/avalassi/GPU2023/MG5aMC/ghav-mg5amcnlo/CODEGEN_cudacpp_gg_ttgg/SubProcesses/P1_Sigma_sm_gg_ttxgg -DEBUG: Entering PLUGIN_OneProcessExporter.generate_process_files [model_handling.py at line 1286]  -DEBUG: self.include_multi_channel is not yet defined: this is standalone_cudacpp mode [model_handling.py at line 1290]  +DEBUG: Entering PLUGIN_OneProcessExporter.generate_process_files [model_handling.py at line 1297]  +DEBUG: self.include_multi_channel is not yet defined: this is standalone_cudacpp mode [model_handling.py at line 1301]  FileWriter for /data/avalassi/GPU2023/MG5aMC/ghav-mg5amcnlo/CODEGEN_cudacpp_gg_ttgg/SubProcesses/P1_Sigma_sm_gg_ttxgg/./CPPProcess.h -DEBUG: Entering PLUGIN_OneProcessExporter.write_process_h_file [model_handling.py at line 1442]  +DEBUG: Entering PLUGIN_OneProcessExporter.write_process_h_file [model_handling.py at line 1453]  FileWriter for /data/avalassi/GPU2023/MG5aMC/ghav-mg5amcnlo/CODEGEN_cudacpp_gg_ttgg/SubProcesses/P1_Sigma_sm_gg_ttxgg/./CPPProcess.cc -DEBUG: Entering PLUGIN_OneProcessExporter.write_process_cc_file [model_handling.py at line 1464]  -DEBUG: Entering PLUGIN_OneProcessExporter.get_sigmaKin_lines [model_handling.py at line 1132]  -DEBUG: self.include_multi_channel =  False [model_handling.py at line 1133]  -DEBUG: self.support_multichannel =  True [model_handling.py at line 1134]  -DEBUG: type(self.helas_call_writer) =  [model_handling.py at line 1151]  -DEBUG: self.support_multichannel, self.include_multi_channel =  True False [model_handling.py at line 1152]  -DEBUG: multi_channel_map =  None [model_handling.py at line 1643]  -DEBUG: diag_to_config =  {} [model_handling.py at line 1698]  -DEBUG: call =  vxxxxx( momenta,m_pars->%s, cHel[ihel][%d],%+d, w_sv[%d], %d ); [model_handling.py at line 1810]  -DEBUG: ('ZERO', 0, -1, 0, 0) [model_handling.py at line 1811]  -DEBUG: call =  vxxxxx( momenta,m_pars->%s, cHel[ihel][%d],%+d, w_sv[%d], %d ); [model_handling.py at line 1810]  -DEBUG: ('ZERO', 1, -1, 1, 1) [model_handling.py at line 1811]  -DEBUG: call =  vxxxxx( momenta,m_pars->%s, cHel[ihel][%d],%+d, w_sv[%d], %d ); [model_handling.py at line 1810]  -DEBUG: ('ZERO', 4, 1, 4, 4) [model_handling.py at line 1811]  -DEBUG: call =  vxxxxx( momenta,m_pars->%s, cHel[ihel][%d],%+d, w_sv[%d], %d ); [model_handling.py at line 1810]  -DEBUG: ('ZERO', 5, 1, 5, 5) [model_handling.py at line 1811]  +DEBUG: Entering PLUGIN_OneProcessExporter.write_process_cc_file [model_handling.py at line 1475]  +DEBUG: Entering PLUGIN_OneProcessExporter.get_sigmaKin_lines [model_handling.py at line 1143]  +DEBUG: self.include_multi_channel =  False [model_handling.py at line 1144]  +DEBUG: self.support_multichannel =  True [model_handling.py at line 1145]  +DEBUG: type(self.helas_call_writer) =  [model_handling.py at line 1162]  +DEBUG: self.support_multichannel, self.include_multi_channel =  True False [model_handling.py at line 1163]  +DEBUG: multi_channel_map =  None [model_handling.py at line 1654]  +DEBUG: diag_to_config =  {} [model_handling.py at line 1709]  +DEBUG: call =  vxxxxx( momenta,m_pars->%s, cHel[ihel][%d],%+d, w_sv[%d], %d ); [model_handling.py at line 1821]  +DEBUG: ('ZERO', 0, -1, 0, 0) [model_handling.py at line 1822]  +DEBUG: call =  vxxxxx( momenta,m_pars->%s, cHel[ihel][%d],%+d, w_sv[%d], %d ); [model_handling.py at line 1821]  +DEBUG: ('ZERO', 1, -1, 1, 1) [model_handling.py at line 1822]  +DEBUG: call =  vxxxxx( momenta,m_pars->%s, cHel[ihel][%d],%+d, w_sv[%d], %d ); [model_handling.py at line 1821]  +DEBUG: ('ZERO', 4, 1, 4, 4) [model_handling.py at line 1822]  +DEBUG: call =  vxxxxx( momenta,m_pars->%s, cHel[ihel][%d],%+d, w_sv[%d], %d ); [model_handling.py at line 1821]  +DEBUG: ('ZERO', 5, 1, 5, 5) [model_handling.py at line 1822]  INFO: Created files CPPProcess.h and CPPProcess.cc in directory /data/avalassi/GPU2023/MG5aMC/ghav-mg5amcnlo/CODEGEN_cudacpp_gg_ttgg/SubProcesses/P1_Sigma_sm_gg_ttxgg/. -DEBUG: Entering PLUGIN_OneProcessExporter.edit_CMakeLists [model_handling.py at line 1332]  -DEBUG: Entering PLUGIN_OneProcessExporter.edit_check_sa [model_handling.py at line 1341]  -DEBUG: Entering PLUGIN_OneProcessExporter.edit_mgonGPU [model_handling.py at line 1358]  -DEBUG: Entering PLUGIN_OneProcessExporter.edit_processidfile [model_handling.py at line 1378]  -DEBUG: Entering PLUGIN_OneProcessExporter.edit_testxxx [model_handling.py at line 1408]  -DEBUG: Entering PLUGIN_OneProcessExporter.edit_memorybuffers [model_handling.py at line 1419]  -DEBUG: Entering PLUGIN_OneProcessExporter.edit_memoryaccesscouplings [model_handling.py at line 1430]  -DEBUG: 'Copying test reference file: ', template_ref =  Copying test reference file: /data/avalassi/GPU2023/MG5aMC/ghav-mg5amcnlo/PLUGIN/CUDACPP_SA_OUTPUT/madgraph/iolibs/template_files/../../../test/ref/dump_CPUTest.Sigma_sm_gg_ttxgg.txt [model_handling.py at line 1324]  -Generated helas calls for 1 subprocesses (123 diagrams) in 0.380 s +DEBUG: Entering PLUGIN_OneProcessExporter.edit_CMakeLists [model_handling.py at line 1343]  +DEBUG: Entering PLUGIN_OneProcessExporter.edit_check_sa [model_handling.py at line 1352]  +DEBUG: Entering PLUGIN_OneProcessExporter.edit_mgonGPU [model_handling.py at line 1369]  +DEBUG: Entering PLUGIN_OneProcessExporter.edit_processidfile [model_handling.py at line 1389]  +DEBUG: Entering PLUGIN_OneProcessExporter.edit_testxxx [model_handling.py at line 1419]  +DEBUG: Entering PLUGIN_OneProcessExporter.edit_memorybuffers [model_handling.py at line 1430]  +DEBUG: Entering PLUGIN_OneProcessExporter.edit_memoryaccesscouplings [model_handling.py at line 1441]  +DEBUG: 'Copying test reference file: ', template_ref =  Copying test reference file: /data/avalassi/GPU2023/MG5aMC/ghav-mg5amcnlo/PLUGIN/CUDACPP_SA_OUTPUT/madgraph/iolibs/template_files/../../../test/ref/dump_CPUTest.Sigma_sm_gg_ttxgg.txt [model_handling.py at line 1335]  +Generated helas calls for 1 subprocesses (123 diagrams) in 0.381 s DEBUG: Entering PLUGIN_ProcessExporter.convert_model (create the model) [output.py at line 194]  ALOHA: aloha starts to compute helicity amplitudes ALOHA: aloha creates VVV1 routines @@ -212,7 +212,7 @@ ALOHA: aloha creates FFV1 routines ALOHA: aloha creates VVVV1 routines ALOHA: aloha creates VVVV3 routines ALOHA: aloha creates VVVV4 routines -ALOHA: aloha creates 5 routines in 0.271 s +ALOHA: aloha creates 5 routines in 0.276 s VVV1 VVV1 FFV1 @@ -228,25 +228,13 @@ ALOHA: aloha creates 5 routines in 0.271 s FileWriter for /data/avalassi/GPU2023/MG5aMC/ghav-mg5amcnlo/CODEGEN_cudacpp_gg_ttgg/src/./HelAmps_sm.h INFO: Created file HelAmps_sm.h in directory /data/avalassi/GPU2023/MG5aMC/ghav-mg5amcnlo/CODEGEN_cudacpp_gg_ttgg/src/. super_write_set_parameters_onlyfixMajorana (hardcoded=False) -DEBUG: 'pardef_lines size =', len(pardef_lines), ', keys size =', len(pardef_lines.keys()) =  pardef_lines size = 48 , keys size = 48 [model_handling.py at line 724]  -DEBUG: 'parset_pars size =', len(parset_pars) =  parset_pars size = 48 [model_handling.py at line 740]  -DEBUG: 'parset_lines size =', len(parset_lines), ', keys size =', len(parset_lines.keys()) =  parset_lines size = 48 , keys size = 48 [model_handling.py at line 741]  +DEBUG: 'pardef_lines size =', len(pardef_lines), ', keys size =', len(pardef_lines.keys()) =  pardef_lines size = 48 , keys size = 48 [model_handling.py at line 729]  super_write_set_parameters_onlyfixMajorana (hardcoded=True) -DEBUG: 'pardef_lines size =', len(pardef_lines), ', keys size =', len(pardef_lines.keys()) =  pardef_lines size = 3 , keys size = 3 [model_handling.py at line 724]  -DEBUG: 'parset_pars size =', len(parset_pars) =  parset_pars size = 3 [model_handling.py at line 740]  -DEBUG: 'parset_lines size =', len(parset_lines), ', keys size =', len(parset_lines.keys()) =  parset_lines size = 3 , keys size = 3 [model_handling.py at line 741]  -DEBUG: 'pardef_lines size =', len(pardef_lines), ', keys size =', len(pardef_lines.keys()) =  pardef_lines size = 3 , keys size = 3 [model_handling.py at line 724]  -DEBUG: 'parset_pars size =', len(parset_pars) =  parset_pars size = 3 [model_handling.py at line 740]  -DEBUG: 'parset_lines size =', len(parset_lines), ', keys size =', len(parset_lines.keys()) =  parset_lines size = 3 , keys size = 3 [model_handling.py at line 741]  -DEBUG: 'pardef_lines size =', len(pardef_lines), ', keys size =', len(pardef_lines.keys()) =  pardef_lines size = 3 , keys size = 3 [model_handling.py at line 724]  -DEBUG: 'parset_pars size =', len(parset_pars) =  parset_pars size = 3 [model_handling.py at line 740]  -DEBUG: 'parset_lines size =', len(parset_lines), ', keys size =', len(parset_lines.keys()) =  parset_lines size = 3 , keys size = 3 [model_handling.py at line 741]  -DEBUG: 'pardef_lines size =', len(pardef_lines), ', keys size =', len(pardef_lines.keys()) =  pardef_lines size = 3 , keys size = 3 [model_handling.py at line 724]  -DEBUG: 'parset_pars size =', len(parset_pars) =  parset_pars size = 3 [model_handling.py at line 740]  -DEBUG: 'parset_lines size =', len(parset_lines), ', keys size =', len(parset_lines.keys()) =  parset_lines size = 3 , keys size = 3 [model_handling.py at line 741]  -DEBUG: 'pardef_lines size =', len(pardef_lines), ', keys size =', len(pardef_lines.keys()) =  pardef_lines size = 3 , keys size = 3 [model_handling.py at line 724]  -DEBUG: 'parset_pars size =', len(parset_pars) =  parset_pars size = 3 [model_handling.py at line 740]  -DEBUG: 'parset_lines size =', len(parset_lines), ', keys size =', len(parset_lines.keys()) =  parset_lines size = 3 , keys size = 3 [model_handling.py at line 741]  +DEBUG: 'pardef_lines size =', len(pardef_lines), ', keys size =', len(pardef_lines.keys()) =  pardef_lines size = 3 , keys size = 3 [model_handling.py at line 729]  +DEBUG: 'pardef_lines size =', len(pardef_lines), ', keys size =', len(pardef_lines.keys()) =  pardef_lines size = 3 , keys size = 3 [model_handling.py at line 729]  +DEBUG: 'pardef_lines size =', len(pardef_lines), ', keys size =', len(pardef_lines.keys()) =  pardef_lines size = 3 , keys size = 3 [model_handling.py at line 729]  +DEBUG: 'pardef_lines size =', len(pardef_lines), ', keys size =', len(pardef_lines.keys()) =  pardef_lines size = 3 , keys size = 3 [model_handling.py at line 729]  +DEBUG: 'pardef_lines size =', len(pardef_lines), ', keys size =', len(pardef_lines.keys()) =  pardef_lines size = 3 , keys size = 3 [model_handling.py at line 729]  FileWriter for /data/avalassi/GPU2023/MG5aMC/ghav-mg5amcnlo/CODEGEN_cudacpp_gg_ttgg/src/./Parameters_sm.h FileWriter for /data/avalassi/GPU2023/MG5aMC/ghav-mg5amcnlo/CODEGEN_cudacpp_gg_ttgg/src/./Parameters_sm.cc INFO: Created files Parameters_sm.h and Parameters_sm.cc in directory @@ -254,6 +242,6 @@ INFO: /data/avalassi/GPU2023/MG5aMC/ghav-mg5amcnlo/CODEGEN_cudacpp_gg_ttgg/src/. DEBUG: Entering PLUGIN_ProcessExporter.finalize [output.py at line 203]  quit -real 0m1.382s -user 0m1.312s -sys 0m0.060s +real 0m1.371s +user 0m1.299s +sys 0m0.056s diff --git a/epochX/cudacpp/gg_ttgg.sa/SubProcesses/Bridge.h b/epochX/cudacpp/gg_ttgg.sa/SubProcesses/Bridge.h index 4cafe0c997..d7e629cacd 100644 --- a/epochX/cudacpp/gg_ttgg.sa/SubProcesses/Bridge.h +++ b/epochX/cudacpp/gg_ttgg.sa/SubProcesses/Bridge.h @@ -152,32 +152,32 @@ namespace mg5amcCpu #ifdef __CUDACC__ int m_gputhreads; // number of gpu threads (default set from number of events, can be modified) int m_gpublocks; // number of gpu blocks (default set from number of events, can be modified) - mg5amcGpu::DeviceBuffer m_devMomentaF; - mg5amcGpu::DeviceBufferMomenta m_devMomentaC; - mg5amcGpu::DeviceBufferGs m_devGs; - mg5amcGpu::DeviceBufferRndNumHelicity m_devRndHel; - mg5amcGpu::DeviceBufferRndNumColor m_devRndCol; - mg5amcGpu::DeviceBufferMatrixElements m_devMEs; - mg5amcGpu::DeviceBufferSelectedHelicity m_devSelHel; - mg5amcGpu::DeviceBufferSelectedColor m_devSelCol; - mg5amcGpu::PinnedHostBufferGs m_hstGs; - mg5amcGpu::PinnedHostBufferRndNumHelicity m_hstRndHel; - mg5amcGpu::PinnedHostBufferRndNumColor m_hstRndCol; - mg5amcGpu::PinnedHostBufferMatrixElements m_hstMEs; - mg5amcGpu::PinnedHostBufferSelectedHelicity m_hstSelHel; - mg5amcGpu::PinnedHostBufferSelectedColor m_hstSelCol; - std::unique_ptr m_pmek; + DeviceBuffer m_devMomentaF; + DeviceBufferMomenta m_devMomentaC; + DeviceBufferGs m_devGs; + DeviceBufferRndNumHelicity m_devRndHel; + DeviceBufferRndNumColor m_devRndCol; + DeviceBufferMatrixElements m_devMEs; + DeviceBufferSelectedHelicity m_devSelHel; + DeviceBufferSelectedColor m_devSelCol; + PinnedHostBufferGs m_hstGs; + PinnedHostBufferRndNumHelicity m_hstRndHel; + PinnedHostBufferRndNumColor m_hstRndCol; + PinnedHostBufferMatrixElements m_hstMEs; + PinnedHostBufferSelectedHelicity m_hstSelHel; + PinnedHostBufferSelectedColor m_hstSelCol; + std::unique_ptr m_pmek; //static constexpr int s_gputhreadsmin = 16; // minimum number of gpu threads (TEST VALUE FOR MADEVENT) static constexpr int s_gputhreadsmin = 32; // minimum number of gpu threads (DEFAULT) #else - mg5amcCpu::HostBufferMomenta m_hstMomentaC; - mg5amcCpu::HostBufferGs m_hstGs; - mg5amcCpu::HostBufferRndNumHelicity m_hstRndHel; - mg5amcCpu::HostBufferRndNumColor m_hstRndCol; - mg5amcCpu::HostBufferMatrixElements m_hstMEs; - mg5amcCpu::HostBufferSelectedHelicity m_hstSelHel; - mg5amcCpu::HostBufferSelectedColor m_hstSelCol; - std::unique_ptr m_pmek; + HostBufferMomenta m_hstMomentaC; + HostBufferGs m_hstGs; + HostBufferRndNumHelicity m_hstRndHel; + HostBufferRndNumColor m_hstRndCol; + HostBufferMatrixElements m_hstMEs; + HostBufferSelectedHelicity m_hstSelHel; + HostBufferSelectedColor m_hstSelCol; + std::unique_ptr m_pmek; #endif }; @@ -244,12 +244,12 @@ namespace mg5amcCpu } std::cout << "WARNING! Instantiate device Bridge (nevt=" << m_nevt << ", gpublocks=" << m_gpublocks << ", gputhreads=" << m_gputhreads << ", gpublocks*gputhreads=" << m_gpublocks * m_gputhreads << ")" << std::endl; - mg5amcGpu::CPPProcess process( /*verbose=*/false ); - m_pmek.reset( new mg5amcGpu::MatrixElementKernelDevice( m_devMomentaC, m_devGs, m_devRndHel, m_devRndCol, m_devMEs, m_devSelHel, m_devSelCol, m_gpublocks, m_gputhreads ) ); + CPPProcess process( /*verbose=*/false ); + m_pmek.reset( new MatrixElementKernelDevice( m_devMomentaC, m_devGs, m_devRndHel, m_devRndCol, m_devMEs, m_devSelHel, m_devSelCol, m_gpublocks, m_gputhreads ) ); #else std::cout << "WARNING! Instantiate host Bridge (nevt=" << m_nevt << ")" << std::endl; - mg5amcCpu::CPPProcess process( /*verbose=*/false ); - m_pmek.reset( new mg5amcCpu::MatrixElementKernelHost( m_hstMomentaC, m_hstGs, m_hstRndHel, m_hstRndCol, m_hstMEs, m_hstSelHel, m_hstSelCol, m_nevt ) ); + CPPProcess process( /*verbose=*/false ); + m_pmek.reset( new MatrixElementKernelHost( m_hstMomentaC, m_hstGs, m_hstRndHel, m_hstRndCol, m_hstMEs, m_hstSelHel, m_hstSelCol, m_nevt ) ); #endif // __CUDACC__ process.initProc( "../../Cards/param_card.dat" ); } diff --git a/epochX/cudacpp/gg_ttgg.sa/SubProcesses/BridgeKernels.cc b/epochX/cudacpp/gg_ttgg.sa/SubProcesses/BridgeKernels.cc index cef4cb3c71..d58066c9c1 100644 --- a/epochX/cudacpp/gg_ttgg.sa/SubProcesses/BridgeKernels.cc +++ b/epochX/cudacpp/gg_ttgg.sa/SubProcesses/BridgeKernels.cc @@ -9,9 +9,6 @@ #include -constexpr int np4 = CPPProcess::np4; // dimensions of 4-momenta (E,px,py,pz) -constexpr int npar = CPPProcess::npar; // #particles in total (external = initial + final): e.g. 4 for e+ e- -> mu+ mu- - //============================================================================ #ifdef __CUDACC__ @@ -20,6 +17,9 @@ namespace mg5amcGpu namespace mg5amcCpu #endif { + constexpr int np4 = CPPProcess::np4; // dimensions of 4-momenta (E,px,py,pz) + constexpr int npar = CPPProcess::npar; // #particles in total (external = initial + final): e.g. 4 for e+ e- -> mu+ mu- + //-------------------------------------------------------------------------- BridgeKernelBase::BridgeKernelBase( const BufferMomenta& momenta, // input: momenta diff --git a/epochX/cudacpp/gg_ttgg.sa/SubProcesses/MemoryAccessAmplitudes.h b/epochX/cudacpp/gg_ttgg.sa/SubProcesses/MemoryAccessAmplitudes.h index 68f6838b5c..573b3bbbc9 100644 --- a/epochX/cudacpp/gg_ttgg.sa/SubProcesses/MemoryAccessAmplitudes.h +++ b/epochX/cudacpp/gg_ttgg.sa/SubProcesses/MemoryAccessAmplitudes.h @@ -14,142 +14,151 @@ #define MGONGPU_TRIVIAL_AMPLITUDES 1 -//---------------------------------------------------------------------------- - -#ifndef MGONGPU_TRIVIAL_AMPLITUDES - -// A class describing the internal layout of memory buffers for amplitudes -// This implementation uses an AOSOA[npagA][nx2][neppA] where nevt=npagA*neppA -// [If many implementations are used, a suffix _AOSOAv1 should be appended to the class name] -class MemoryAccessAmplitudesBase //_AOSOAv1 +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { -public: - - // Number of Events Per Page in the amplitude AOSOA memory buffer layout - static constexpr int neppA = 1; // AOS (just a test...) + //---------------------------------------------------------------------------- -private: - - friend class MemoryAccessHelper; - friend class KernelAccessHelper; - friend class KernelAccessHelper; - - // The number of floating point components of a complex number - static constexpr int nx2 = mgOnGpu::nx2; - - //-------------------------------------------------------------------------- - // NB all KernelLaunchers assume that memory access can be decomposed as "accessField = decodeRecord( accessRecord )" - // (in other words: first locate the event record for a given event, then locate an element in that record) - //-------------------------------------------------------------------------- +#ifndef MGONGPU_TRIVIAL_AMPLITUDES - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] - static __host__ __device__ inline fptype* - ieventAccessRecord( fptype* buffer, - const int ievt ) + // A class describing the internal layout of memory buffers for amplitudes + // This implementation uses an AOSOA[npagA][nx2][neppA] where nevt=npagA*neppA + // [If many implementations are used, a suffix _AOSOAv1 should be appended to the class name] + class MemoryAccessAmplitudesBase //_AOSOAv1 { - const int ipagA = ievt / neppA; // #event "A-page" - const int ieppA = ievt % neppA; // #event in the current event A-page - constexpr int ix2 = 0; - return &( buffer[ipagA * nx2 * neppA + ix2 * neppA + ieppA] ); // AOSOA[ipagA][ix2][ieppA] - } - - //-------------------------------------------------------------------------- - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, Ts... args ) <===] - // [NB: expand variadic template "Ts... args" to "const int ix2" and rename "Field" as "Ix2"] - static __host__ __device__ inline fptype& - decodeRecord( fptype* buffer, - const int ix2 ) + public: + + // Number of Events Per Page in the amplitude AOSOA memory buffer layout + static constexpr int neppA = 1; // AOS (just a test...) + + private: + + friend class MemoryAccessHelper; + friend class KernelAccessHelper; + friend class KernelAccessHelper; + + // The number of floating point components of a complex number + static constexpr int nx2 = mgOnGpu::nx2; + + //-------------------------------------------------------------------------- + // NB all KernelLaunchers assume that memory access can be decomposed as "accessField = decodeRecord( accessRecord )" + // (in other words: first locate the event record for a given event, then locate an element in that record) + //-------------------------------------------------------------------------- + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] + static __host__ __device__ inline fptype* + ieventAccessRecord( fptype* buffer, + const int ievt ) + { + const int ipagA = ievt / neppA; // #event "A-page" + const int ieppA = ievt % neppA; // #event in the current event A-page + constexpr int ix2 = 0; + return &( buffer[ipagA * nx2 * neppA + ix2 * neppA + ieppA] ); // AOSOA[ipagA][ix2][ieppA] + } + + //-------------------------------------------------------------------------- + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, Ts... args ) <===] + // [NB: expand variadic template "Ts... args" to "const int ix2" and rename "Field" as "Ix2"] + static __host__ __device__ inline fptype& + decodeRecord( fptype* buffer, + const int ix2 ) + { + constexpr int ipagA = 0; + constexpr int ieppA = 0; + return buffer[ipagA * nx2 * neppA + ix2 * neppA + ieppA]; // AOSOA[ipagA][ix2][ieppA] + } + }; + + //---------------------------------------------------------------------------- + + // A class providing access to memory buffers for a given event, based on explicit event numbers + // Its methods use the MemoryAccessHelper templates - note the use of the template keyword in template function instantiations + class MemoryAccessAmplitudes : public MemoryAccessAmplitudesBase { - constexpr int ipagA = 0; - constexpr int ieppA = 0; - return buffer[ipagA * nx2 * neppA + ix2 * neppA + ieppA]; // AOSOA[ipagA][ix2][ieppA] - } -}; + public: -//---------------------------------------------------------------------------- + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] + static constexpr auto ieventAccessRecord = MemoryAccessHelper::ieventAccessRecord; -// A class providing access to memory buffers for a given event, based on explicit event numbers -// Its methods use the MemoryAccessHelper templates - note the use of the template keyword in template function instantiations -class MemoryAccessAmplitudes : public MemoryAccessAmplitudesBase -{ -public: - - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] - static constexpr auto ieventAccessRecord = MemoryAccessHelper::ieventAccessRecord; + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (const) ===> const fptype* ieventAccessRecordConst( const fptype* buffer, const int ievt ) <===] + static constexpr auto ieventAccessRecordConst = MemoryAccessHelper::ieventAccessRecordConst; - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (const) ===> const fptype* ieventAccessRecordConst( const fptype* buffer, const int ievt ) <===] - static constexpr auto ieventAccessRecordConst = MemoryAccessHelper::ieventAccessRecordConst; + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, const int ix2 ) <===] + static constexpr auto decodeRecordIx2 = MemoryAccessHelper::decodeRecord; - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, const int ix2 ) <===] - static constexpr auto decodeRecordIx2 = MemoryAccessHelper::decodeRecord; + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (const) ===> const fptype& decodeRecordConst( const fptype* buffer, const int ix2 ) <===] + static constexpr auto decodeRecordIx2Const = + MemoryAccessHelper::template decodeRecordConst; - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (const) ===> const fptype& decodeRecordConst( const fptype* buffer, const int ix2 ) <===] - static constexpr auto decodeRecordIx2Const = - MemoryAccessHelper::template decodeRecordConst; + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (non-const) ===> fptype& ieventAccessIx2( fptype* buffer, const ievt, const int ix2 ) <===] + static constexpr auto ieventAccessIx2 = + MemoryAccessHelper::template ieventAccessField; - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (non-const) ===> fptype& ieventAccessIx2( fptype* buffer, const ievt, const int ix2 ) <===] - static constexpr auto ieventAccessIx2 = - MemoryAccessHelper::template ieventAccessField; - - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (const) ===> const fptype& ieventAccessIx2Const( const fptype* buffer, const ievt, const int ix2 ) <===] - static constexpr auto ieventAccessIx2Const = - MemoryAccessHelper::template ieventAccessFieldConst; -}; + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (const) ===> const fptype& ieventAccessIx2Const( const fptype* buffer, const ievt, const int ix2 ) <===] + static constexpr auto ieventAccessIx2Const = + MemoryAccessHelper::template ieventAccessFieldConst; + }; #endif // #ifndef MGONGPU_TRIVIAL_AMPLITUDES -//---------------------------------------------------------------------------- + //---------------------------------------------------------------------------- -// A class providing access to memory buffers for a given event, based on implicit kernel rules -// Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations -template -class KernelAccessAmplitudes -{ -public: + // A class providing access to memory buffers for a given event, based on implicit kernel rules + // Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations + template + class KernelAccessAmplitudes + { + public: #ifndef MGONGPU_TRIVIAL_AMPLITUDES - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (non-const) ===> fptype& kernelAccessIx2( fptype* buffer, const int ix2 ) <===] - static constexpr auto kernelAccessIx2 = - KernelAccessHelper::template kernelAccessField; + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (non-const) ===> fptype& kernelAccessIx2( fptype* buffer, const int ix2 ) <===] + static constexpr auto kernelAccessIx2 = + KernelAccessHelper::template kernelAccessField; - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (const) ===> const fptype& kernelAccessIx2Const( const fptype* buffer, const int ix2 ) <===] - static constexpr auto kernelAccessIx2Const = - KernelAccessHelper::template kernelAccessFieldConst; + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (const) ===> const fptype& kernelAccessIx2Const( const fptype* buffer, const int ix2 ) <===] + static constexpr auto kernelAccessIx2Const = + KernelAccessHelper::template kernelAccessFieldConst; #else - static __host__ __device__ inline cxtype_sv* - kernelAccess( fptype* buffer ) - { - return reinterpret_cast( buffer ); - } + static __host__ __device__ inline cxtype_sv* + kernelAccess( fptype* buffer ) + { + return reinterpret_cast( buffer ); + } - static __host__ __device__ inline const cxtype_sv* - kernelAccessConst( const fptype* buffer ) - { - return reinterpret_cast( buffer ); - } + static __host__ __device__ inline const cxtype_sv* + kernelAccessConst( const fptype* buffer ) + { + return reinterpret_cast( buffer ); + } #endif // #ifndef MGONGPU_TRIVIAL_AMPLITUDES -}; + }; + + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- + typedef KernelAccessAmplitudes HostAccessAmplitudes; + typedef KernelAccessAmplitudes DeviceAccessAmplitudes; -typedef KernelAccessAmplitudes HostAccessAmplitudes; -typedef KernelAccessAmplitudes DeviceAccessAmplitudes; + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- +} // end namespace mg5amcGpu/mg5amcCpu #endif // MemoryAccessAmplitudes_H diff --git a/epochX/cudacpp/gg_ttgg.sa/SubProcesses/MemoryAccessCouplings.h b/epochX/cudacpp/gg_ttgg.sa/SubProcesses/MemoryAccessCouplings.h index 15793bbec3..35a3af42e0 100644 --- a/epochX/cudacpp/gg_ttgg.sa/SubProcesses/MemoryAccessCouplings.h +++ b/epochX/cudacpp/gg_ttgg.sa/SubProcesses/MemoryAccessCouplings.h @@ -14,248 +14,257 @@ #include "MemoryAccessMomenta.h" // for MemoryAccessMomentaBase::neppM #include "MemoryBuffers.h" // for HostBufferCouplings::isaligned -//---------------------------------------------------------------------------- - -// A class describing the internal layout of memory buffers for couplings -// This implementation uses an AOSOA[npagC][ndcoup][nx2][neppC] "super-buffer" where nevt=npagC*neppC -// From the "super-buffer" for ndcoup different couplings, use idcoupAccessBuffer to access the buffer for one specific coupling -// [If many implementations are used, a suffix _AOSOAv1 should be appended to the class name] -class MemoryAccessCouplingsBase //_AOSOAv1 +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { -public: - - // Number of Events Per Page in the coupling AOSOA memory buffer layout - static constexpr int neppC = MemoryAccessMomentaBase::neppM; // use the same AOSOA striding as for momenta - - // SANITY CHECK: check that neppC is a power of two - static_assert( ispoweroftwo( neppC ), "neppC is not a power of 2" ); - - //-------------------------------------------------------------------------- - // ** NB! A single super-buffer AOSOA[npagC][ndcoup][nx2][neppC] includes data for ndcoup different couplings ** - // ** NB! The ieventAccessRecord and kernelAccess functions refer to the buffer for one individual coupling ** - // ** NB! Use idcoupAccessBuffer to add a fixed offset and locate the buffer for one given individual coupling ** - //-------------------------------------------------------------------------- - - // Locate the buffer for a single coupling (output) in a memory super-buffer (input) from the given coupling index (input) - // [Signature (non-const) ===> fptype* idcoupAccessBuffer( fptype* buffer, const int idcoup ) <===] - // NB: keep this in public even if exposed through KernelAccessCouplings: nvcc says it is inaccesible otherwise? - static __host__ __device__ inline fptype* - idcoupAccessBuffer( fptype* buffer, // input "super-buffer" - const int idcoup ) - { - constexpr int ipagC = 0; - constexpr int ieppC = 0; - constexpr int ix2 = 0; - // NB! this effectively adds an offset "idcoup * nx2 * neppC" - return &( buffer[ipagC * ndcoup * nx2 * neppC + idcoup * nx2 * neppC + ix2 * neppC + ieppC] ); // AOSOA[ipagC][idcoup][ix2][ieppC] - } - - // Locate the buffer for a single coupling (output) in a memory super-buffer (input) from the given coupling index (input) - // [Signature (const) ===> const fptype* idcoupAccessBufferConst( const fptype* buffer, const int idcoup ) <===] - // NB: keep this in public even if exposed through KernelAccessCouplings: nvcc says it is inaccesible otherwise? - static __host__ __device__ inline const fptype* - idcoupAccessBufferConst( const fptype* buffer, // input "super-buffer" - const int idcoup ) - { - return idcoupAccessBuffer( const_cast( buffer ), idcoup ); - } - -private: + //---------------------------------------------------------------------------- - friend class MemoryAccessHelper; - friend class KernelAccessHelper; - friend class KernelAccessHelper; - - // The number of couplings that dependent on the running alphas QCD in this specific process - static constexpr size_t ndcoup = Parameters_sm_dependentCouplings::ndcoup; - - // The number of floating point components of a complex number - static constexpr int nx2 = mgOnGpu::nx2; - - //-------------------------------------------------------------------------- - // NB all KernelLaunchers assume that memory access can be decomposed as "accessField = decodeRecord( accessRecord )" - // (in other words: first locate the event record for a given event, then locate an element in that record) - //-------------------------------------------------------------------------- - - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] - static __host__ __device__ inline fptype* - ieventAccessRecord( fptype* buffer, - const int ievt ) + // A class describing the internal layout of memory buffers for couplings + // This implementation uses an AOSOA[npagC][ndcoup][nx2][neppC] "super-buffer" where nevt=npagC*neppC + // From the "super-buffer" for ndcoup different couplings, use idcoupAccessBuffer to access the buffer for one specific coupling + // [If many implementations are used, a suffix _AOSOAv1 should be appended to the class name] + class MemoryAccessCouplingsBase //_AOSOAv1 { - const int ipagC = ievt / neppC; // #event "C-page" - const int ieppC = ievt % neppC; // #event in the current event C-page - constexpr int idcoup = 0; - constexpr int ix2 = 0; - return &( buffer[ipagC * ndcoup * nx2 * neppC + idcoup * nx2 * neppC + ix2 * neppC + ieppC] ); // AOSOA[ipagC][idcoup][ix2][ieppC] - } - - //-------------------------------------------------------------------------- - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, Ts... args ) <===] - // [NB: expand variadic template "Ts... args" to "const int ix2" and rename "Field" as "Ix2"] - static __host__ __device__ inline fptype& - decodeRecord( fptype* buffer, - const int ix2 ) + public: + + // Number of Events Per Page in the coupling AOSOA memory buffer layout + static constexpr int neppC = MemoryAccessMomentaBase::neppM; // use the same AOSOA striding as for momenta + + // SANITY CHECK: check that neppC is a power of two + static_assert( ispoweroftwo( neppC ), "neppC is not a power of 2" ); + + //-------------------------------------------------------------------------- + // ** NB! A single super-buffer AOSOA[npagC][ndcoup][nx2][neppC] includes data for ndcoup different couplings ** + // ** NB! The ieventAccessRecord and kernelAccess functions refer to the buffer for one individual coupling ** + // ** NB! Use idcoupAccessBuffer to add a fixed offset and locate the buffer for one given individual coupling ** + //-------------------------------------------------------------------------- + + // Locate the buffer for a single coupling (output) in a memory super-buffer (input) from the given coupling index (input) + // [Signature (non-const) ===> fptype* idcoupAccessBuffer( fptype* buffer, const int idcoup ) <===] + // NB: keep this in public even if exposed through KernelAccessCouplings: nvcc says it is inaccesible otherwise? + static __host__ __device__ inline fptype* + idcoupAccessBuffer( fptype* buffer, // input "super-buffer" + const int idcoup ) + { + constexpr int ipagC = 0; + constexpr int ieppC = 0; + constexpr int ix2 = 0; + // NB! this effectively adds an offset "idcoup * nx2 * neppC" + return &( buffer[ipagC * ndcoup * nx2 * neppC + idcoup * nx2 * neppC + ix2 * neppC + ieppC] ); // AOSOA[ipagC][idcoup][ix2][ieppC] + } + + // Locate the buffer for a single coupling (output) in a memory super-buffer (input) from the given coupling index (input) + // [Signature (const) ===> const fptype* idcoupAccessBufferConst( const fptype* buffer, const int idcoup ) <===] + // NB: keep this in public even if exposed through KernelAccessCouplings: nvcc says it is inaccesible otherwise? + static __host__ __device__ inline const fptype* + idcoupAccessBufferConst( const fptype* buffer, // input "super-buffer" + const int idcoup ) + { + return idcoupAccessBuffer( const_cast( buffer ), idcoup ); + } + + private: + + friend class MemoryAccessHelper; + friend class KernelAccessHelper; + friend class KernelAccessHelper; + + // The number of couplings that dependent on the running alphas QCD in this specific process + static constexpr size_t ndcoup = Parameters_sm_dependentCouplings::ndcoup; + + // The number of floating point components of a complex number + static constexpr int nx2 = mgOnGpu::nx2; + + //-------------------------------------------------------------------------- + // NB all KernelLaunchers assume that memory access can be decomposed as "accessField = decodeRecord( accessRecord )" + // (in other words: first locate the event record for a given event, then locate an element in that record) + //-------------------------------------------------------------------------- + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] + static __host__ __device__ inline fptype* + ieventAccessRecord( fptype* buffer, + const int ievt ) + { + const int ipagC = ievt / neppC; // #event "C-page" + const int ieppC = ievt % neppC; // #event in the current event C-page + constexpr int idcoup = 0; + constexpr int ix2 = 0; + return &( buffer[ipagC * ndcoup * nx2 * neppC + idcoup * nx2 * neppC + ix2 * neppC + ieppC] ); // AOSOA[ipagC][idcoup][ix2][ieppC] + } + + //-------------------------------------------------------------------------- + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, Ts... args ) <===] + // [NB: expand variadic template "Ts... args" to "const int ix2" and rename "Field" as "Ix2"] + static __host__ __device__ inline fptype& + decodeRecord( fptype* buffer, + const int ix2 ) + { + constexpr int ipagC = 0; + constexpr int ieppC = 0; + // NB! the offset "idcoup * nx2 * neppC" has been added in idcoupAccessBuffer + constexpr int idcoup = 0; + return buffer[ipagC * ndcoup * nx2 * neppC + idcoup * nx2 * neppC + ix2 * neppC + ieppC]; // AOSOA[ipagC][idcoup][ix2][ieppC] + } + }; + + //---------------------------------------------------------------------------- + + // A class providing access to memory buffers for a given event, based on explicit event numbers + // Its methods use the MemoryAccessHelper templates - note the use of the template keyword in template function instantiations + class MemoryAccessCouplings : public MemoryAccessCouplingsBase { - constexpr int ipagC = 0; - constexpr int ieppC = 0; - // NB! the offset "idcoup * nx2 * neppC" has been added in idcoupAccessBuffer - constexpr int idcoup = 0; - return buffer[ipagC * ndcoup * nx2 * neppC + idcoup * nx2 * neppC + ix2 * neppC + ieppC]; // AOSOA[ipagC][idcoup][ix2][ieppC] - } -}; - -//---------------------------------------------------------------------------- - -// A class providing access to memory buffers for a given event, based on explicit event numbers -// Its methods use the MemoryAccessHelper templates - note the use of the template keyword in template function instantiations -class MemoryAccessCouplings : public MemoryAccessCouplingsBase -{ -public: - - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] - static constexpr auto ieventAccessRecord = MemoryAccessHelper::ieventAccessRecord; - - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (const) ===> const fptype* ieventAccessRecordConst( const fptype* buffer, const int ievt ) <===] - static constexpr auto ieventAccessRecordConst = MemoryAccessHelper::ieventAccessRecordConst; - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, const int ix2 ) <===] - static constexpr auto decodeRecordIx2 = MemoryAccessHelper::decodeRecord; - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (const) ===> const fptype& decodeRecordConst( const fptype* buffer, const int ix2 ) <===] - static constexpr auto decodeRecordIx2Const = - MemoryAccessHelper::template decodeRecordConst; - - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (non-const) ===> fptype& ieventAccessIx2( fptype* buffer, const ievt, const int ix2 ) <===] - static constexpr auto ieventAccessIx2 = - MemoryAccessHelper::template ieventAccessField; - - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (const) ===> const fptype& ieventAccessIx2Const( const fptype* buffer, const ievt, const int ix2 ) <===] - static constexpr auto ieventAccessIx2Const = - MemoryAccessHelper::template ieventAccessFieldConst; -}; - -//---------------------------------------------------------------------------- - -// A class providing access to memory buffers for a given event, based on implicit kernel rules -// Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations -template -class KernelAccessCouplings -{ -public: - - // Expose selected functions from MemoryAccessCouplingsBase - static constexpr auto idcoupAccessBuffer = MemoryAccessCouplingsBase::idcoupAccessBuffer; - static constexpr auto idcoupAccessBufferConst = MemoryAccessCouplingsBase::idcoupAccessBufferConst; - - // Expose selected functions from MemoryAccessCouplings - static constexpr auto ieventAccessRecordConst = MemoryAccessCouplings::ieventAccessRecordConst; - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (non-const, SCALAR) ===> fptype& kernelAccessIx2( fptype* buffer, const int ix2 ) <===] - static constexpr auto kernelAccessIx2_s = - KernelAccessHelper::template kernelAccessField; - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (const, SCALAR) ===> const fptype& kernelAccessIx2Const( const fptype* buffer, const int ix2 ) <===] - static constexpr auto kernelAccessIx2Const_s = - KernelAccessHelper::template kernelAccessFieldConst; - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (non const, SCALAR OR VECTOR) ===> fptype_sv& kernelAccessIx2( fptype* buffer, const int ix2 ) <===] - static __host__ __device__ inline fptype_sv& - kernelAccessIx2( fptype* buffer, - const int ix2 ) + public: + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] + static constexpr auto ieventAccessRecord = MemoryAccessHelper::ieventAccessRecord; + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (const) ===> const fptype* ieventAccessRecordConst( const fptype* buffer, const int ievt ) <===] + static constexpr auto ieventAccessRecordConst = MemoryAccessHelper::ieventAccessRecordConst; + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, const int ix2 ) <===] + static constexpr auto decodeRecordIx2 = MemoryAccessHelper::decodeRecord; + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (const) ===> const fptype& decodeRecordConst( const fptype* buffer, const int ix2 ) <===] + static constexpr auto decodeRecordIx2Const = + MemoryAccessHelper::template decodeRecordConst; + + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (non-const) ===> fptype& ieventAccessIx2( fptype* buffer, const ievt, const int ix2 ) <===] + static constexpr auto ieventAccessIx2 = + MemoryAccessHelper::template ieventAccessField; + + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (const) ===> const fptype& ieventAccessIx2Const( const fptype* buffer, const ievt, const int ix2 ) <===] + static constexpr auto ieventAccessIx2Const = + MemoryAccessHelper::template ieventAccessFieldConst; + }; + + //---------------------------------------------------------------------------- + + // A class providing access to memory buffers for a given event, based on implicit kernel rules + // Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations + template + class KernelAccessCouplings { - fptype& out = kernelAccessIx2_s( buffer, ix2 ); + public: + + // Expose selected functions from MemoryAccessCouplingsBase + static constexpr auto idcoupAccessBuffer = MemoryAccessCouplingsBase::idcoupAccessBuffer; + static constexpr auto idcoupAccessBufferConst = MemoryAccessCouplingsBase::idcoupAccessBufferConst; + + // Expose selected functions from MemoryAccessCouplings + static constexpr auto ieventAccessRecordConst = MemoryAccessCouplings::ieventAccessRecordConst; + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (non-const, SCALAR) ===> fptype& kernelAccessIx2( fptype* buffer, const int ix2 ) <===] + static constexpr auto kernelAccessIx2_s = + KernelAccessHelper::template kernelAccessField; + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (const, SCALAR) ===> const fptype& kernelAccessIx2Const( const fptype* buffer, const int ix2 ) <===] + static constexpr auto kernelAccessIx2Const_s = + KernelAccessHelper::template kernelAccessFieldConst; + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (non const, SCALAR OR VECTOR) ===> fptype_sv& kernelAccessIx2( fptype* buffer, const int ix2 ) <===] + static __host__ __device__ inline fptype_sv& + kernelAccessIx2( fptype* buffer, + const int ix2 ) + { + fptype& out = kernelAccessIx2_s( buffer, ix2 ); #ifndef MGONGPU_CPPSIMD - return out; + return out; #else - // NB: derived from MemoryAccessMomenta, restricting the implementation to contiguous aligned arrays - constexpr int neppC = MemoryAccessCouplingsBase::neppC; - static_assert( neppC >= neppV ); // ASSUME CONTIGUOUS ARRAYS - static_assert( neppC % neppV == 0 ); // ASSUME CONTIGUOUS ARRAYS - static_assert( mg5amcCpu::HostBufferCouplings::isaligned() ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) - //assert( (size_t)( buffer ) % mgOnGpu::cppAlign == 0 ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) - return mg5amcCpu::fptypevFromAlignedArray( out ); // SIMD bulk load of neppV, use reinterpret_cast + // NB: derived from MemoryAccessMomenta, restricting the implementation to contiguous aligned arrays + constexpr int neppC = MemoryAccessCouplingsBase::neppC; + static_assert( neppC >= neppV ); // ASSUME CONTIGUOUS ARRAYS + static_assert( neppC % neppV == 0 ); // ASSUME CONTIGUOUS ARRAYS + static_assert( mg5amcCpu::HostBufferCouplings::isaligned() ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) + //assert( (size_t)( buffer ) % mgOnGpu::cppAlign == 0 ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) + return mg5amcCpu::fptypevFromAlignedArray( out ); // SIMD bulk load of neppV, use reinterpret_cast #endif - } + } - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (const, SCALAR OR VECTOR) ===> const fptype_sv& kernelAccessIx2Const( const fptype* buffer, const int ix2 ) <===] - static __host__ __device__ inline const fptype_sv& - kernelAccessIx2Const( const fptype* buffer, - const int ix2 ) - { - return kernelAccessIx2( const_cast( buffer ), ix2 ); - } - - /* - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (const, SCALAR OR VECTOR) ===> const fptype_sv& kernelAccessIx2Const( const fptype* buffer, const int ix2 ) <===] - static __host__ __device__ inline const fptype_sv& - kernelAccessIx2Const( const fptype* buffer, - const int ix2 ) - { - const fptype& out = kernelAccessIx2Const_s( buffer, ix2 ); + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (const, SCALAR OR VECTOR) ===> const fptype_sv& kernelAccessIx2Const( const fptype* buffer, const int ix2 ) <===] + static __host__ __device__ inline const fptype_sv& + kernelAccessIx2Const( const fptype* buffer, + const int ix2 ) + { + return kernelAccessIx2( const_cast( buffer ), ix2 ); + } + + /* + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (const, SCALAR OR VECTOR) ===> const fptype_sv& kernelAccessIx2Const( const fptype* buffer, const int ix2 ) <===] + static __host__ __device__ inline const fptype_sv& + kernelAccessIx2Const( const fptype* buffer, + const int ix2 ) + { + const fptype& out = kernelAccessIx2Const_s( buffer, ix2 ); #ifndef MGONGPU_CPPSIMD - return out; + return out; #else - // NB: derived from MemoryAccessMomenta, restricting the implementation to contiguous aligned arrays - constexpr int neppC = MemoryAccessCouplingsBase::neppC; - static_assert( neppC >= neppV ); // ASSUME CONTIGUOUS ARRAYS - static_assert( neppC % neppV == 0 ); // ASSUME CONTIGUOUS ARRAYS - static_assert( mg5amcCpu::HostBufferCouplings::isaligned() ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) - //assert( (size_t)( buffer ) % mgOnGpu::cppAlign == 0 ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) - return mg5amcCpu::fptypevFromAlignedArray( out ); // SIMD bulk load of neppV, use reinterpret_cast + // NB: derived from MemoryAccessMomenta, restricting the implementation to contiguous aligned arrays + constexpr int neppC = MemoryAccessCouplingsBase::neppC; + static_assert( neppC >= neppV ); // ASSUME CONTIGUOUS ARRAYS + static_assert( neppC % neppV == 0 ); // ASSUME CONTIGUOUS ARRAYS + static_assert( mg5amcCpu::HostBufferCouplings::isaligned() ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) + //assert( (size_t)( buffer ) % mgOnGpu::cppAlign == 0 ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) + return mg5amcCpu::fptypevFromAlignedArray( out ); // SIMD bulk load of neppV, use reinterpret_cast #endif - } - */ - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (non const, SCALAR OR VECTOR) ===> cxtype_sv_ref kernelAccess( fptype* buffer ) <===] - static __host__ __device__ inline cxtype_sv_ref - kernelAccess( fptype* buffer ) - { - /* - fptype_sv& real = kernelAccessIx2( buffer, 0 ); - fptype_sv& imag = kernelAccessIx2( buffer, 1 ); - printf( "C_ACCESS::kernelAccess: pbuffer=%p pr=%p pi=%p\n", buffer, &real, &imag ); - return cxtype_sv_ref( real, imag ); - */ - return cxtype_sv_ref( kernelAccessIx2( buffer, 0 ), - kernelAccessIx2( buffer, 1 ) ); - } - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (const, SCALAR OR VECTOR) ===> cxtype_sv kernelAccessConst( const fptype* buffer ) <===] - static __host__ __device__ inline cxtype_sv - kernelAccessConst( const fptype* buffer ) - { - /* - const fptype_sv& real = kernelAccessIx2Const( buffer, 0 ); - const fptype_sv& imag = kernelAccessIx2Const( buffer, 1 ); - printf( "C_ACCESS::kernelAccessConst: pbuffer=%p pr=%p pi=%p\n", buffer, &real, &imag ); - return cxtype_sv( real, imag ); + } */ - return cxtype_sv( kernelAccessIx2Const( buffer, 0 ), - kernelAccessIx2Const( buffer, 1 ) ); - } -}; - -//---------------------------------------------------------------------------- - -typedef KernelAccessCouplings HostAccessCouplings; -typedef KernelAccessCouplings DeviceAccessCouplings; -//---------------------------------------------------------------------------- + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (non const, SCALAR OR VECTOR) ===> cxtype_sv_ref kernelAccess( fptype* buffer ) <===] + static __host__ __device__ inline cxtype_sv_ref + kernelAccess( fptype* buffer ) + { + /* + fptype_sv& real = kernelAccessIx2( buffer, 0 ); + fptype_sv& imag = kernelAccessIx2( buffer, 1 ); + printf( "C_ACCESS::kernelAccess: pbuffer=%p pr=%p pi=%p\n", buffer, &real, &imag ); + return cxtype_sv_ref( real, imag ); + */ + return cxtype_sv_ref( kernelAccessIx2( buffer, 0 ), + kernelAccessIx2( buffer, 1 ) ); + } + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (const, SCALAR OR VECTOR) ===> cxtype_sv kernelAccessConst( const fptype* buffer ) <===] + static __host__ __device__ inline cxtype_sv + kernelAccessConst( const fptype* buffer ) + { + /* + const fptype_sv& real = kernelAccessIx2Const( buffer, 0 ); + const fptype_sv& imag = kernelAccessIx2Const( buffer, 1 ); + printf( "C_ACCESS::kernelAccessConst: pbuffer=%p pr=%p pi=%p\n", buffer, &real, &imag ); + return cxtype_sv( real, imag ); + */ + return cxtype_sv( kernelAccessIx2Const( buffer, 0 ), + kernelAccessIx2Const( buffer, 1 ) ); + } + }; + + //---------------------------------------------------------------------------- + + typedef KernelAccessCouplings HostAccessCouplings; + typedef KernelAccessCouplings DeviceAccessCouplings; + + //---------------------------------------------------------------------------- + +} // end namespace mg5amcGpu/mg5amcCpu #endif // MemoryAccessCouplings_H diff --git a/epochX/cudacpp/gg_ttgg.sa/SubProcesses/MemoryAccessCouplingsFixed.h b/epochX/cudacpp/gg_ttgg.sa/SubProcesses/MemoryAccessCouplingsFixed.h index 81193ab261..dc0d93afff 100644 --- a/epochX/cudacpp/gg_ttgg.sa/SubProcesses/MemoryAccessCouplingsFixed.h +++ b/epochX/cudacpp/gg_ttgg.sa/SubProcesses/MemoryAccessCouplingsFixed.h @@ -13,63 +13,72 @@ //#include "MemoryAccessHelpers.h" -//---------------------------------------------------------------------------- - -// A class describing the internal layout of memory buffers for fixed couplings -// This implementation uses a STRUCT[ndcoup][nx2] "super-buffer" layout: in practice, the cIPC global array -// From the "super-buffer" for ndcoup different couplings, use idcoupAccessBuffer to access the buffer for one specific coupling -// [If many implementations are used, a suffix _Sv1 should be appended to the class name] -class MemoryAccessCouplingsFixedBase //_Sv1 +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { -public: + //---------------------------------------------------------------------------- - // Locate the buffer for a single coupling (output) in a memory super-buffer (input) from the given coupling index (input) - // [Signature (const) ===> const fptype* iicoupAccessBufferConst( const fptype* buffer, const int iicoup ) <===] - static __host__ __device__ inline const fptype* - iicoupAccessBufferConst( const fptype* buffer, // input "super-buffer": in practice, the cIPC global array - const int iicoup ) + // A class describing the internal layout of memory buffers for fixed couplings + // This implementation uses a STRUCT[ndcoup][nx2] "super-buffer" layout: in practice, the cIPC global array + // From the "super-buffer" for ndcoup different couplings, use idcoupAccessBuffer to access the buffer for one specific coupling + // [If many implementations are used, a suffix _Sv1 should be appended to the class name] + class MemoryAccessCouplingsFixedBase //_Sv1 { - constexpr int ix2 = 0; - // NB! this effectively adds an offset "iicoup * nx2" - return &( buffer[iicoup * nx2 + ix2] ); // STRUCT[idcoup][ix2] - } - -private: - - // The number of floating point components of a complex number - static constexpr int nx2 = mgOnGpu::nx2; -}; - -//---------------------------------------------------------------------------- + public: + + // Locate the buffer for a single coupling (output) in a memory super-buffer (input) from the given coupling index (input) + // [Signature (const) ===> const fptype* iicoupAccessBufferConst( const fptype* buffer, const int iicoup ) <===] + static __host__ __device__ inline const fptype* + iicoupAccessBufferConst( const fptype* buffer, // input "super-buffer": in practice, the cIPC global array + const int iicoup ) + { + constexpr int ix2 = 0; + // NB! this effectively adds an offset "iicoup * nx2" + return &( buffer[iicoup * nx2 + ix2] ); // STRUCT[idcoup][ix2] + } + + private: + + // The number of floating point components of a complex number + static constexpr int nx2 = mgOnGpu::nx2; + }; + + //---------------------------------------------------------------------------- + + // A class providing access to memory buffers for a given event, based on implicit kernel rules + // Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations + template + class KernelAccessCouplingsFixed + { + public: -// A class providing access to memory buffers for a given event, based on implicit kernel rules -// Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations -template -class KernelAccessCouplingsFixed -{ -public: + // Expose selected functions from MemoryAccessCouplingsFixedBase + static constexpr auto iicoupAccessBufferConst = MemoryAccessCouplingsFixedBase::iicoupAccessBufferConst; - // Expose selected functions from MemoryAccessCouplingsFixedBase - static constexpr auto iicoupAccessBufferConst = MemoryAccessCouplingsFixedBase::iicoupAccessBufferConst; + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (const, SCALAR OR VECTOR) ===> cxtype_sv kernelAccessConst( const fptype* buffer ) <===] + static __host__ __device__ inline const cxtype_sv + kernelAccessConst( const fptype* buffer ) + { + // TRIVIAL ACCESS to fixed-couplings buffers! + //return cxmake( fptype_sv{ buffer[0] }, fptype_sv{ buffer[1] } ); // NO! BUG #339! + const fptype_sv r_sv = fptype_sv{ 0 } + buffer[0]; + const fptype_sv i_sv = fptype_sv{ 0 } + buffer[1]; + return cxmake( r_sv, i_sv ); // ugly but effective + } + }; - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (const, SCALAR OR VECTOR) ===> cxtype_sv kernelAccessConst( const fptype* buffer ) <===] - static __host__ __device__ inline const cxtype_sv - kernelAccessConst( const fptype* buffer ) - { - // TRIVIAL ACCESS to fixed-couplings buffers! - //return cxmake( fptype_sv{ buffer[0] }, fptype_sv{ buffer[1] } ); // NO! BUG #339! - const fptype_sv r_sv = fptype_sv{ 0 } + buffer[0]; - const fptype_sv i_sv = fptype_sv{ 0 } + buffer[1]; - return cxmake( r_sv, i_sv ); // ugly but effective - } -}; + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- + typedef KernelAccessCouplingsFixed HostAccessCouplingsFixed; + typedef KernelAccessCouplingsFixed DeviceAccessCouplingsFixed; -typedef KernelAccessCouplingsFixed HostAccessCouplingsFixed; -typedef KernelAccessCouplingsFixed DeviceAccessCouplingsFixed; + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- +} // end namespace mg5amcGpu/mg5amcCpu #endif // MemoryAccessCouplingsFixed_H diff --git a/epochX/cudacpp/gg_ttgg.sa/SubProcesses/MemoryAccessDenominators.h b/epochX/cudacpp/gg_ttgg.sa/SubProcesses/MemoryAccessDenominators.h index e76ae65ff9..3bce635718 100644 --- a/epochX/cudacpp/gg_ttgg.sa/SubProcesses/MemoryAccessDenominators.h +++ b/epochX/cudacpp/gg_ttgg.sa/SubProcesses/MemoryAccessDenominators.h @@ -9,15 +9,24 @@ #include "MemoryAccessGs.h" -//---------------------------------------------------------------------------- +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif +{ + //---------------------------------------------------------------------------- + + // A class describing the internal layout of memory buffers for denominators + // This implementation reuses the plain ARRAY[nevt] implementation of MemoryAccessGs -// A class describing the internal layout of memory buffers for denominators -// This implementation reuses the plain ARRAY[nevt] implementation of MemoryAccessGs + typedef KernelAccessGs HostAccessDenominators; + typedef KernelAccessGs DeviceAccessDenominators; -typedef KernelAccessGs HostAccessDenominators; -typedef KernelAccessGs DeviceAccessDenominators; + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- +} // end namespace mg5amcGpu/mg5amcCpu #endif #endif // MemoryAccessDenominators_H diff --git a/epochX/cudacpp/gg_ttgg.sa/SubProcesses/MemoryAccessGs.h b/epochX/cudacpp/gg_ttgg.sa/SubProcesses/MemoryAccessGs.h index 8996c0554c..31311aa375 100644 --- a/epochX/cudacpp/gg_ttgg.sa/SubProcesses/MemoryAccessGs.h +++ b/epochX/cudacpp/gg_ttgg.sa/SubProcesses/MemoryAccessGs.h @@ -12,142 +12,151 @@ #include "MemoryAccessVectors.h" #include "MemoryBuffers.h" // for HostBufferMatrixElements::isaligned -//---------------------------------------------------------------------------- - -// A class describing the internal layout of memory buffers for Gs -// This implementation uses a plain ARRAY[nevt] -// [If many implementations are used, a suffix _ARRAYv1 should be appended to the class name] -class MemoryAccessGsBase //_ARRAYv1 +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { -private: - - friend class MemoryAccessHelper; - friend class KernelAccessHelper; - friend class KernelAccessHelper; - - //-------------------------------------------------------------------------- - // NB all KernelLaunchers assume that memory access can be decomposed as "accessField = decodeRecord( accessRecord )" - // (in other words: first locate the event record for a given event, then locate an element in that record) - //-------------------------------------------------------------------------- - - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] - static __host__ __device__ inline fptype* - ieventAccessRecord( fptype* buffer, - const int ievt ) - { - return &( buffer[ievt] ); // ARRAY[nevt] - } - - //-------------------------------------------------------------------------- + //---------------------------------------------------------------------------- - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, Ts... args ) <===] - // [NB: expand variadic template "Ts... args" to empty and rename "Field" as empty] - static __host__ __device__ inline fptype& - decodeRecord( fptype* buffer ) + // A class describing the internal layout of memory buffers for Gs + // This implementation uses a plain ARRAY[nevt] + // [If many implementations are used, a suffix _ARRAYv1 should be appended to the class name] + class MemoryAccessGsBase //_ARRAYv1 { - constexpr int ievt = 0; - return buffer[ievt]; // ARRAY[nevt] - } -}; - -//---------------------------------------------------------------------------- - -// A class providing access to memory buffers for a given event, based on explicit event numbers -// Its methods use the MemoryAccessHelper templates - note the use of the template keyword in template function instantiations -class MemoryAccessGs : public MemoryAccessGsBase -{ -public: - - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] - static constexpr auto ieventAccessRecord = MemoryAccessHelper::ieventAccessRecord; - - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (const) ===> const fptype* ieventAccessRecordConst( const fptype* buffer, const int ievt ) <===] - static constexpr auto ieventAccessRecordConst = MemoryAccessHelper::ieventAccessRecordConst; - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer ) <===] - static constexpr auto decodeRecord = MemoryAccessHelper::decodeRecord; - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (const) ===> const fptype& decodeRecordConst( const fptype* buffer ) <===] - static constexpr auto decodeRecordConst = - MemoryAccessHelper::template decodeRecordConst<>; - - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (non-const) ===> fptype& ieventAccess( fptype* buffer, const ievt ) <===] - static constexpr auto ieventAccess = - MemoryAccessHelper::template ieventAccessField<>; - - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (const) ===> const fptype& ieventAccessConst( const fptype* buffer, const ievt ) <===] - static constexpr auto ieventAccessConst = - MemoryAccessHelper::template ieventAccessFieldConst<>; -}; - -//---------------------------------------------------------------------------- - -// A class providing access to memory buffers for a given event, based on implicit kernel rules -// Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations -template -class KernelAccessGs -{ -public: - - // Expose selected functions from MemoryAccessGs - static constexpr auto ieventAccessRecord = MemoryAccessGs::ieventAccessRecord; - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (non-const, SCALAR) ===> fptype& kernelAccess( fptype* buffer ) <===] - static constexpr auto kernelAccess_s = - KernelAccessHelper::template kernelAccessField<>; // requires cuda 11.4 - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) - // [Signature (non-const, SCALAR OR VECTOR) ===> fptype_sv& kernelAccess( fptype* buffer ) <===] - static __host__ __device__ inline fptype_sv& - kernelAccess( fptype* buffer ) + private: + + friend class MemoryAccessHelper; + friend class KernelAccessHelper; + friend class KernelAccessHelper; + + //-------------------------------------------------------------------------- + // NB all KernelLaunchers assume that memory access can be decomposed as "accessField = decodeRecord( accessRecord )" + // (in other words: first locate the event record for a given event, then locate an element in that record) + //-------------------------------------------------------------------------- + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] + static __host__ __device__ inline fptype* + ieventAccessRecord( fptype* buffer, + const int ievt ) + { + return &( buffer[ievt] ); // ARRAY[nevt] + } + + //-------------------------------------------------------------------------- + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, Ts... args ) <===] + // [NB: expand variadic template "Ts... args" to empty and rename "Field" as empty] + static __host__ __device__ inline fptype& + decodeRecord( fptype* buffer ) + { + constexpr int ievt = 0; + return buffer[ievt]; // ARRAY[nevt] + } + }; + + //---------------------------------------------------------------------------- + + // A class providing access to memory buffers for a given event, based on explicit event numbers + // Its methods use the MemoryAccessHelper templates - note the use of the template keyword in template function instantiations + class MemoryAccessGs : public MemoryAccessGsBase + { + public: + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] + static constexpr auto ieventAccessRecord = MemoryAccessHelper::ieventAccessRecord; + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (const) ===> const fptype* ieventAccessRecordConst( const fptype* buffer, const int ievt ) <===] + static constexpr auto ieventAccessRecordConst = MemoryAccessHelper::ieventAccessRecordConst; + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer ) <===] + static constexpr auto decodeRecord = MemoryAccessHelper::decodeRecord; + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (const) ===> const fptype& decodeRecordConst( const fptype* buffer ) <===] + static constexpr auto decodeRecordConst = + MemoryAccessHelper::template decodeRecordConst<>; + + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (non-const) ===> fptype& ieventAccess( fptype* buffer, const ievt ) <===] + static constexpr auto ieventAccess = + MemoryAccessHelper::template ieventAccessField<>; + + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (const) ===> const fptype& ieventAccessConst( const fptype* buffer, const ievt ) <===] + static constexpr auto ieventAccessConst = + MemoryAccessHelper::template ieventAccessFieldConst<>; + }; + + //---------------------------------------------------------------------------- + + // A class providing access to memory buffers for a given event, based on implicit kernel rules + // Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations + template + class KernelAccessGs { - fptype& out = kernelAccess_s( buffer ); + public: + + // Expose selected functions from MemoryAccessGs + static constexpr auto ieventAccessRecord = MemoryAccessGs::ieventAccessRecord; + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (non-const, SCALAR) ===> fptype& kernelAccess( fptype* buffer ) <===] + static constexpr auto kernelAccess_s = + KernelAccessHelper::template kernelAccessField<>; // requires cuda 11.4 + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) + // [Signature (non-const, SCALAR OR VECTOR) ===> fptype_sv& kernelAccess( fptype* buffer ) <===] + static __host__ __device__ inline fptype_sv& + kernelAccess( fptype* buffer ) + { + fptype& out = kernelAccess_s( buffer ); #ifndef MGONGPU_CPPSIMD - return out; + return out; #else - // NB: derived from MemoryAccessMomenta, restricting the implementation to contiguous aligned arrays (#435) - static_assert( mg5amcCpu::HostBufferGs::isaligned() ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) - //assert( (size_t)( buffer ) % mgOnGpu::cppAlign == 0 ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) - return mg5amcCpu::fptypevFromAlignedArray( out ); // SIMD bulk load of neppV, use reinterpret_cast + // NB: derived from MemoryAccessMomenta, restricting the implementation to contiguous aligned arrays (#435) + static_assert( mg5amcCpu::HostBufferGs::isaligned() ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) + //assert( (size_t)( buffer ) % mgOnGpu::cppAlign == 0 ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) + return mg5amcCpu::fptypevFromAlignedArray( out ); // SIMD bulk load of neppV, use reinterpret_cast #endif - } - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (const, SCALAR) ===> const fptype& kernelAccessConst( const fptype* buffer ) <===] - static constexpr auto kernelAccessConst_s = - KernelAccessHelper::template kernelAccessFieldConst<>; // requires cuda 11.4 - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) - // [Signature (const, SCALAR OR VECTOR) ===> const fptype_sv& kernelAccess( const fptype* buffer ) <===] - static __host__ __device__ inline const fptype_sv& - kernelAccessConst( const fptype* buffer ) - { - const fptype& out = kernelAccessConst_s( buffer ); + } + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (const, SCALAR) ===> const fptype& kernelAccessConst( const fptype* buffer ) <===] + static constexpr auto kernelAccessConst_s = + KernelAccessHelper::template kernelAccessFieldConst<>; // requires cuda 11.4 + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) + // [Signature (const, SCALAR OR VECTOR) ===> const fptype_sv& kernelAccess( const fptype* buffer ) <===] + static __host__ __device__ inline const fptype_sv& + kernelAccessConst( const fptype* buffer ) + { + const fptype& out = kernelAccessConst_s( buffer ); #ifndef MGONGPU_CPPSIMD - return out; + return out; #else - // NB: derived from MemoryAccessMomenta, restricting the implementation to contiguous aligned arrays (#435) - static_assert( mg5amcCpu::HostBufferGs::isaligned() ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) - //assert( (size_t)( buffer ) % mgOnGpu::cppAlign == 0 ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) - return mg5amcCpu::fptypevFromAlignedArray( out ); // SIMD bulk load of neppV, use reinterpret_cast + // NB: derived from MemoryAccessMomenta, restricting the implementation to contiguous aligned arrays (#435) + static_assert( mg5amcCpu::HostBufferGs::isaligned() ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) + //assert( (size_t)( buffer ) % mgOnGpu::cppAlign == 0 ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) + return mg5amcCpu::fptypevFromAlignedArray( out ); // SIMD bulk load of neppV, use reinterpret_cast #endif - } -}; + } + }; + + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- + typedef KernelAccessGs HostAccessGs; + typedef KernelAccessGs DeviceAccessGs; -typedef KernelAccessGs HostAccessGs; -typedef KernelAccessGs DeviceAccessGs; + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- +} // end namespace mg5amcGpu/mg5amcCpu #endif // MemoryAccessGs_H diff --git a/epochX/cudacpp/gg_ttgg.sa/SubProcesses/MemoryAccessMatrixElements.h b/epochX/cudacpp/gg_ttgg.sa/SubProcesses/MemoryAccessMatrixElements.h index b2a82d9acf..f32e6fea5b 100644 --- a/epochX/cudacpp/gg_ttgg.sa/SubProcesses/MemoryAccessMatrixElements.h +++ b/epochX/cudacpp/gg_ttgg.sa/SubProcesses/MemoryAccessMatrixElements.h @@ -12,126 +12,135 @@ #include "MemoryAccessVectors.h" #include "MemoryBuffers.h" // for HostBufferMatrixElements::isaligned -//---------------------------------------------------------------------------- - -// A class describing the internal layout of memory buffers for matrix elements -// This implementation uses a plain ARRAY[nevt] -// [If many implementations are used, a suffix _ARRAYv1 should be appended to the class name] -class MemoryAccessMatrixElementsBase //_ARRAYv1 +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { -private: - - friend class MemoryAccessHelper; - friend class KernelAccessHelper; - friend class KernelAccessHelper; - - //-------------------------------------------------------------------------- - // NB all KernelLaunchers assume that memory access can be decomposed as "accessField = decodeRecord( accessRecord )" - // (in other words: first locate the event record for a given event, then locate an element in that record) - //-------------------------------------------------------------------------- - - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] - static __host__ __device__ inline fptype* - ieventAccessRecord( fptype* buffer, - const int ievt ) - { - return &( buffer[ievt] ); // ARRAY[nevt] - } + //---------------------------------------------------------------------------- - //-------------------------------------------------------------------------- - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, Ts... args ) <===] - // [NB: expand variadic template "Ts... args" to empty and rename "Field" as empty] - static __host__ __device__ inline fptype& - decodeRecord( fptype* buffer ) + // A class describing the internal layout of memory buffers for matrix elements + // This implementation uses a plain ARRAY[nevt] + // [If many implementations are used, a suffix _ARRAYv1 should be appended to the class name] + class MemoryAccessMatrixElementsBase //_ARRAYv1 { - constexpr int ievt = 0; - return buffer[ievt]; // ARRAY[nevt] - } -}; - -//---------------------------------------------------------------------------- - -// A class providing access to memory buffers for a given event, based on explicit event numbers -// Its methods use the MemoryAccessHelper templates - note the use of the template keyword in template function instantiations -class MemoryAccessMatrixElements : public MemoryAccessMatrixElementsBase -{ -public: - - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] - static constexpr auto ieventAccessRecord = MemoryAccessHelper::ieventAccessRecord; - - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (const) ===> const fptype* ieventAccessRecordConst( const fptype* buffer, const int ievt ) <===] - static constexpr auto ieventAccessRecordConst = MemoryAccessHelper::ieventAccessRecordConst; - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer ) <===] - static constexpr auto decodeRecord = MemoryAccessHelper::decodeRecord; - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (const) ===> const fptype& decodeRecordConst( const fptype* buffer ) <===] - static constexpr auto decodeRecordConst = - MemoryAccessHelper::template decodeRecordConst<>; - - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (non-const) ===> fptype& ieventAccess( fptype* buffer, const ievt ) <===] - static constexpr auto ieventAccess = - MemoryAccessHelper::template ieventAccessField<>; - - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (const) ===> const fptype& ieventAccessConst( const fptype* buffer, const ievt ) <===] - static constexpr auto ieventAccessConst = - MemoryAccessHelper::template ieventAccessFieldConst<>; -}; - -//---------------------------------------------------------------------------- - -// A class providing access to memory buffers for a given event, based on implicit kernel rules -// Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations -template -class KernelAccessMatrixElements -{ -public: - - // Expose selected functions from MemoryAccessMatrixElements - static constexpr auto ieventAccessRecord = MemoryAccessMatrixElements::ieventAccessRecord; - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (non-const, SCALAR) ===> fptype& kernelAccess_s( fptype* buffer ) <===] - static constexpr auto kernelAccess_s = - KernelAccessHelper::template kernelAccessField<>; // requires cuda 11.4 - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) - // [Signature (non const, SCALAR OR VECTOR) ===> fptype_sv& kernelAccess( const fptype* buffer ) <===] - static __host__ __device__ inline fptype_sv& - kernelAccess( fptype* buffer ) + private: + + friend class MemoryAccessHelper; + friend class KernelAccessHelper; + friend class KernelAccessHelper; + + //-------------------------------------------------------------------------- + // NB all KernelLaunchers assume that memory access can be decomposed as "accessField = decodeRecord( accessRecord )" + // (in other words: first locate the event record for a given event, then locate an element in that record) + //-------------------------------------------------------------------------- + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] + static __host__ __device__ inline fptype* + ieventAccessRecord( fptype* buffer, + const int ievt ) + { + return &( buffer[ievt] ); // ARRAY[nevt] + } + + //-------------------------------------------------------------------------- + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, Ts... args ) <===] + // [NB: expand variadic template "Ts... args" to empty and rename "Field" as empty] + static __host__ __device__ inline fptype& + decodeRecord( fptype* buffer ) + { + constexpr int ievt = 0; + return buffer[ievt]; // ARRAY[nevt] + } + }; + + //---------------------------------------------------------------------------- + + // A class providing access to memory buffers for a given event, based on explicit event numbers + // Its methods use the MemoryAccessHelper templates - note the use of the template keyword in template function instantiations + class MemoryAccessMatrixElements : public MemoryAccessMatrixElementsBase + { + public: + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] + static constexpr auto ieventAccessRecord = MemoryAccessHelper::ieventAccessRecord; + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (const) ===> const fptype* ieventAccessRecordConst( const fptype* buffer, const int ievt ) <===] + static constexpr auto ieventAccessRecordConst = MemoryAccessHelper::ieventAccessRecordConst; + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer ) <===] + static constexpr auto decodeRecord = MemoryAccessHelper::decodeRecord; + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (const) ===> const fptype& decodeRecordConst( const fptype* buffer ) <===] + static constexpr auto decodeRecordConst = + MemoryAccessHelper::template decodeRecordConst<>; + + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (non-const) ===> fptype& ieventAccess( fptype* buffer, const ievt ) <===] + static constexpr auto ieventAccess = + MemoryAccessHelper::template ieventAccessField<>; + + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (const) ===> const fptype& ieventAccessConst( const fptype* buffer, const ievt ) <===] + static constexpr auto ieventAccessConst = + MemoryAccessHelper::template ieventAccessFieldConst<>; + }; + + //---------------------------------------------------------------------------- + + // A class providing access to memory buffers for a given event, based on implicit kernel rules + // Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations + template + class KernelAccessMatrixElements { - fptype& out = kernelAccess_s( buffer ); + public: + + // Expose selected functions from MemoryAccessMatrixElements + static constexpr auto ieventAccessRecord = MemoryAccessMatrixElements::ieventAccessRecord; + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (non-const, SCALAR) ===> fptype& kernelAccess_s( fptype* buffer ) <===] + static constexpr auto kernelAccess_s = + KernelAccessHelper::template kernelAccessField<>; // requires cuda 11.4 + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) + // [Signature (non const, SCALAR OR VECTOR) ===> fptype_sv& kernelAccess( const fptype* buffer ) <===] + static __host__ __device__ inline fptype_sv& + kernelAccess( fptype* buffer ) + { + fptype& out = kernelAccess_s( buffer ); #ifndef MGONGPU_CPPSIMD - return out; + return out; #else - // NB: derived from MemoryAccessMomenta, restricting the implementation to contiguous aligned arrays (#435) - static_assert( mg5amcCpu::HostBufferMatrixElements::isaligned() ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) - //assert( (size_t)( buffer ) % mgOnGpu::cppAlign == 0 ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) - return mg5amcCpu::fptypevFromAlignedArray( out ); // SIMD bulk load of neppV, use reinterpret_cast + // NB: derived from MemoryAccessMomenta, restricting the implementation to contiguous aligned arrays (#435) + static_assert( mg5amcCpu::HostBufferMatrixElements::isaligned() ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) + //assert( (size_t)( buffer ) % mgOnGpu::cppAlign == 0 ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) + return mg5amcCpu::fptypevFromAlignedArray( out ); // SIMD bulk load of neppV, use reinterpret_cast #endif - } + } + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (const) ===> const fptype& kernelAccessConst( const fptype* buffer ) <===] + static constexpr auto kernelAccessConst = + KernelAccessHelper::template kernelAccessFieldConst<>; // requires cuda 11.4 + }; - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (const) ===> const fptype& kernelAccessConst( const fptype* buffer ) <===] - static constexpr auto kernelAccessConst = - KernelAccessHelper::template kernelAccessFieldConst<>; // requires cuda 11.4 -}; + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- + typedef KernelAccessMatrixElements HostAccessMatrixElements; + typedef KernelAccessMatrixElements DeviceAccessMatrixElements; -typedef KernelAccessMatrixElements HostAccessMatrixElements; -typedef KernelAccessMatrixElements DeviceAccessMatrixElements; + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- +} // end namespace mg5amcGpu/mg5amcCpu #endif // MemoryAccessMatrixElements_H diff --git a/epochX/cudacpp/gg_ttgg.sa/SubProcesses/MemoryAccessMomenta.h b/epochX/cudacpp/gg_ttgg.sa/SubProcesses/MemoryAccessMomenta.h index 0ac4faa3c7..29266de32c 100644 --- a/epochX/cudacpp/gg_ttgg.sa/SubProcesses/MemoryAccessMomenta.h +++ b/epochX/cudacpp/gg_ttgg.sa/SubProcesses/MemoryAccessMomenta.h @@ -12,261 +12,264 @@ #include "MemoryAccessHelpers.h" #include "MemoryAccessVectors.h" +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) #ifdef __CUDACC__ -using mg5amcGpu::CPPProcess; +namespace mg5amcGpu #else -using mg5amcCpu::CPPProcess; +namespace mg5amcCpu #endif - -//---------------------------------------------------------------------------- - -// A class describing the internal layout of memory buffers for momenta -// This implementation uses an AOSOA[npagM][npar][np4][neppM] where nevt=npagM*neppM -// [If many implementations are used, a suffix _AOSOAv1 should be appended to the class name] -class MemoryAccessMomentaBase //_AOSOAv1 { -public: + //---------------------------------------------------------------------------- + + // A class describing the internal layout of memory buffers for momenta + // This implementation uses an AOSOA[npagM][npar][np4][neppM] where nevt=npagM*neppM + // [If many implementations are used, a suffix _AOSOAv1 should be appended to the class name] + class MemoryAccessMomentaBase //_AOSOAv1 + { + public: - // Number of Events Per Page in the momenta AOSOA memory buffer layout - // (these are all best kept as a compile-time constants: see issue #23) + // Number of Events Per Page in the momenta AOSOA memory buffer layout + // (these are all best kept as a compile-time constants: see issue #23) #ifdef __CUDACC__ /* clang-format off */ - // ----------------------------------------------------------------------------------------------- - // --- GPUs: neppM is best set to a power of 2 times the number of fptype's in a 32-byte cacheline - // --- This is relevant to ensure coalesced access to momenta in global memory - // --- Note that neppR is hardcoded and may differ from neppM and neppV on some platforms - // ----------------------------------------------------------------------------------------------- - //static constexpr int neppM = 64/sizeof(fptype); // 2x 32-byte GPU cache lines (512 bits): 8 (DOUBLE) or 16 (FLOAT) - static constexpr int neppM = 32/sizeof(fptype); // (DEFAULT) 32-byte GPU cache line (256 bits): 4 (DOUBLE) or 8 (FLOAT) - //static constexpr int neppM = 1; // *** NB: this is equivalent to AOS *** (slower: 1.03E9 instead of 1.11E9 in eemumu) + // ----------------------------------------------------------------------------------------------- + // --- GPUs: neppM is best set to a power of 2 times the number of fptype's in a 32-byte cacheline + // --- This is relevant to ensure coalesced access to momenta in global memory + // --- Note that neppR is hardcoded and may differ from neppM and neppV on some platforms + // ----------------------------------------------------------------------------------------------- + //static constexpr int neppM = 64/sizeof(fptype); // 2x 32-byte GPU cache lines (512 bits): 8 (DOUBLE) or 16 (FLOAT) + static constexpr int neppM = 32/sizeof(fptype); // (DEFAULT) 32-byte GPU cache line (256 bits): 4 (DOUBLE) or 8 (FLOAT) + //static constexpr int neppM = 1; // *** NB: this is equivalent to AOS *** (slower: 1.03E9 instead of 1.11E9 in eemumu) #else - // ----------------------------------------------------------------------------------------------- - // --- CPUs: neppM is best set equal to the number of fptype's (neppV) in a vector register - // --- This is relevant to ensure faster access to momenta from C++ memory cache lines - // --- However, neppM is now decoupled from neppV (issue #176) and can be separately hardcoded - // --- In practice, neppR, neppM and neppV could now (in principle) all be different - // ----------------------------------------------------------------------------------------------- + // ----------------------------------------------------------------------------------------------- + // --- CPUs: neppM is best set equal to the number of fptype's (neppV) in a vector register + // --- This is relevant to ensure faster access to momenta from C++ memory cache lines + // --- However, neppM is now decoupled from neppV (issue #176) and can be separately hardcoded + // --- In practice, neppR, neppM and neppV could now (in principle) all be different + // ----------------------------------------------------------------------------------------------- #ifdef MGONGPU_CPPSIMD - static constexpr int neppM = MGONGPU_CPPSIMD; // (DEFAULT) neppM=neppV for optimal performance - //static constexpr int neppM = 64/sizeof(fptype); // maximum CPU vector width (512 bits): 8 (DOUBLE) or 16 (FLOAT) - //static constexpr int neppM = 32/sizeof(fptype); // lower CPU vector width (256 bits): 4 (DOUBLE) or 8 (FLOAT) - //static constexpr int neppM = 1; // *** NB: this is equivalent to AOS *** (slower: 4.66E6 instead of 5.09E9 in eemumu) - //static constexpr int neppM = MGONGPU_CPPSIMD*2; // FOR TESTS + static constexpr int neppM = MGONGPU_CPPSIMD; // (DEFAULT) neppM=neppV for optimal performance + //static constexpr int neppM = 64/sizeof(fptype); // maximum CPU vector width (512 bits): 8 (DOUBLE) or 16 (FLOAT) + //static constexpr int neppM = 32/sizeof(fptype); // lower CPU vector width (256 bits): 4 (DOUBLE) or 8 (FLOAT) + //static constexpr int neppM = 1; // *** NB: this is equivalent to AOS *** (slower: 4.66E6 instead of 5.09E9 in eemumu) + //static constexpr int neppM = MGONGPU_CPPSIMD*2; // FOR TESTS #else - static constexpr int neppM = 1; // (DEFAULT) neppM=neppV for optimal performance (NB: this is equivalent to AOS) + static constexpr int neppM = 1; // (DEFAULT) neppM=neppV for optimal performance (NB: this is equivalent to AOS) #endif #endif /* clang-format on */ - // SANITY CHECK: check that neppM is a power of two - static_assert( ispoweroftwo( neppM ), "neppM is not a power of 2" ); + // SANITY CHECK: check that neppM is a power of two + static_assert( ispoweroftwo( neppM ), "neppM is not a power of 2" ); -private: + private: - friend class MemoryAccessHelper; - friend class KernelAccessHelper; - friend class KernelAccessHelper; + friend class MemoryAccessHelper; + friend class KernelAccessHelper; + friend class KernelAccessHelper; - // The number of components of a 4-momentum - static constexpr int np4 = CPPProcess::np4; + // The number of components of a 4-momentum + static constexpr int np4 = CPPProcess::np4; - // The number of particles in this physics process - static constexpr int npar = CPPProcess::npar; + // The number of particles in this physics process + static constexpr int npar = CPPProcess::npar; - //-------------------------------------------------------------------------- - // NB all KernelLaunchers assume that memory access can be decomposed as "accessField = decodeRecord( accessRecord )" - // (in other words: first locate the event record for a given event, then locate an element in that record) - //-------------------------------------------------------------------------- + //-------------------------------------------------------------------------- + // NB all KernelLaunchers assume that memory access can be decomposed as "accessField = decodeRecord( accessRecord )" + // (in other words: first locate the event record for a given event, then locate an element in that record) + //-------------------------------------------------------------------------- - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] - static __host__ __device__ inline fptype* - ieventAccessRecord( fptype* buffer, - const int ievt ) - { - const int ipagM = ievt / neppM; // #event "M-page" - const int ieppM = ievt % neppM; // #event in the current event M-page - constexpr int ip4 = 0; - constexpr int ipar = 0; - return &( buffer[ipagM * npar * np4 * neppM + ipar * np4 * neppM + ip4 * neppM + ieppM] ); // AOSOA[ipagM][ipar][ip4][ieppM] - } - - //-------------------------------------------------------------------------- - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, Ts... args ) <===] - // [NB: expand variadic template "Ts... args" to "const int ip4, const int ipar" and rename "Field" as "Ip4Ipar"] - static __host__ __device__ inline fptype& - decodeRecord( fptype* buffer, - const int ip4, - const int ipar ) + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] + static __host__ __device__ inline fptype* + ieventAccessRecord( fptype* buffer, + const int ievt ) + { + const int ipagM = ievt / neppM; // #event "M-page" + const int ieppM = ievt % neppM; // #event in the current event M-page + constexpr int ip4 = 0; + constexpr int ipar = 0; + return &( buffer[ipagM * npar * np4 * neppM + ipar * np4 * neppM + ip4 * neppM + ieppM] ); // AOSOA[ipagM][ipar][ip4][ieppM] + } + + //-------------------------------------------------------------------------- + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, Ts... args ) <===] + // [NB: expand variadic template "Ts... args" to "const int ip4, const int ipar" and rename "Field" as "Ip4Ipar"] + static __host__ __device__ inline fptype& + decodeRecord( fptype* buffer, + const int ip4, + const int ipar ) + { + constexpr int ipagM = 0; + constexpr int ieppM = 0; + return buffer[ipagM * npar * np4 * neppM + ipar * np4 * neppM + ip4 * neppM + ieppM]; // AOSOA[ipagM][ipar][ip4][ieppM] + } + }; + + //---------------------------------------------------------------------------- + + // A class providing access to memory buffers for a given event, based on explicit event numbers + // Its methods use the MemoryAccessHelper templates - note the use of the template keyword in template function instantiations + class MemoryAccessMomenta : public MemoryAccessMomentaBase { - constexpr int ipagM = 0; - constexpr int ieppM = 0; - return buffer[ipagM * npar * np4 * neppM + ipar * np4 * neppM + ip4 * neppM + ieppM]; // AOSOA[ipagM][ipar][ip4][ieppM] - } -}; + public: + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] + static constexpr auto ieventAccessRecord = MemoryAccessHelper::ieventAccessRecord; + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (const) ===> const fptype* ieventAccessRecordConst( const fptype* buffer, const int ievt ) <===] + static constexpr auto ieventAccessRecordConst = MemoryAccessHelper::ieventAccessRecordConst; + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, const int ipar, const int ipar ) <===] + static constexpr auto decodeRecordIp4Ipar = MemoryAccessHelper::decodeRecord; + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (const) ===> const fptype& decodeRecordConst( const fptype* buffer, const int ipar, const int ipar ) <===] + static constexpr auto decodeRecordIp4IparConst = + MemoryAccessHelper::template decodeRecordConst; + + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (non-const) ===> fptype& ieventAccessIp4Ipar( fptype* buffer, const ievt, const int ipar, const int ipar ) <===] + static constexpr auto ieventAccessIp4Ipar = + MemoryAccessHelper::template ieventAccessField; + + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (const) ===> const fptype& ieventAccessIp4IparConst( const fptype* buffer, const ievt, const int ipar, const int ipar ) <===] + // DEFAULT VERSION + static constexpr auto ieventAccessIp4IparConst = + MemoryAccessHelper::template ieventAccessFieldConst; + + /* + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (const) ===> const fptype& ieventAccessIp4IparConst( const fptype* buffer, const ievt, const int ipar, const int ipar ) <===] + // DEBUG VERSION WITH PRINTOUTS + static __host__ __device__ inline const fptype& + ieventAccessIp4IparConst( const fptype* buffer, + const int ievt, + const int ip4, + const int ipar ) + { + const fptype& out = MemoryAccessHelper::template ieventAccessFieldConst( buffer, ievt, ip4, ipar ); + printf( "ipar=%2d ip4=%2d ievt=%8d out=%8.3f\n", ipar, ip4, ievt, out ); + return out; + } + */ + }; -//---------------------------------------------------------------------------- + //---------------------------------------------------------------------------- -// A class providing access to memory buffers for a given event, based on explicit event numbers -// Its methods use the MemoryAccessHelper templates - note the use of the template keyword in template function instantiations -class MemoryAccessMomenta : public MemoryAccessMomentaBase -{ -public: - - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] - static constexpr auto ieventAccessRecord = MemoryAccessHelper::ieventAccessRecord; - - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (const) ===> const fptype* ieventAccessRecordConst( const fptype* buffer, const int ievt ) <===] - static constexpr auto ieventAccessRecordConst = MemoryAccessHelper::ieventAccessRecordConst; - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, const int ipar, const int ipar ) <===] - static constexpr auto decodeRecordIp4Ipar = MemoryAccessHelper::decodeRecord; - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (const) ===> const fptype& decodeRecordConst( const fptype* buffer, const int ipar, const int ipar ) <===] - static constexpr auto decodeRecordIp4IparConst = - MemoryAccessHelper::template decodeRecordConst; - - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (non-const) ===> fptype& ieventAccessIp4Ipar( fptype* buffer, const ievt, const int ipar, const int ipar ) <===] - static constexpr auto ieventAccessIp4Ipar = - MemoryAccessHelper::template ieventAccessField; - - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (const) ===> const fptype& ieventAccessIp4IparConst( const fptype* buffer, const ievt, const int ipar, const int ipar ) <===] - // DEFAULT VERSION - static constexpr auto ieventAccessIp4IparConst = - MemoryAccessHelper::template ieventAccessFieldConst; - - /* - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (const) ===> const fptype& ieventAccessIp4IparConst( const fptype* buffer, const ievt, const int ipar, const int ipar ) <===] - // DEBUG VERSION WITH PRINTOUTS - static __host__ __device__ inline const fptype& - ieventAccessIp4IparConst( const fptype* buffer, - const int ievt, - const int ip4, - const int ipar ) + // A class providing access to memory buffers for a given event, based on implicit kernel rules + // Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations + template + class KernelAccessMomenta { - const fptype& out = MemoryAccessHelper::template ieventAccessFieldConst( buffer, ievt, ip4, ipar ); - printf( "ipar=%2d ip4=%2d ievt=%8d out=%8.3f\n", ipar, ip4, ievt, out ); - return out; - } - */ -}; - -//---------------------------------------------------------------------------- - -// A class providing access to memory buffers for a given event, based on implicit kernel rules -// Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations -template -class KernelAccessMomenta -{ -public: - - // Expose selected functions from MemoryAccessMomenta - static constexpr auto ieventAccessRecordConst = MemoryAccessMomenta::ieventAccessRecordConst; - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (non-const, SCALAR) ===> fptype& kernelAccessIp4Ipar( fptype* buffer, const int ipar, const int ipar ) <===] - static constexpr auto kernelAccessIp4Ipar = - KernelAccessHelper::template kernelAccessField; - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (const, SCALAR) ===> const fptype& kernelAccessIp4IparConst( const fptype* buffer, const int ipar, const int ipar ) <===] - // DEFAULT VERSION - static constexpr auto kernelAccessIp4IparConst_s = - KernelAccessHelper::template kernelAccessFieldConst; - - /* - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (const, SCALAR) ===> const fptype& kernelAccessIp4IparConst( const fptype* buffer, const int ipar, const int ipar ) <===] - // DEBUG VERSION WITH PRINTOUTS - static __host__ __device__ inline const fptype& - kernelAccessIp4IparConst_s( const fptype* buffer, + public: + + // Expose selected functions from MemoryAccessMomenta + static constexpr auto ieventAccessRecordConst = MemoryAccessMomenta::ieventAccessRecordConst; + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (non-const, SCALAR) ===> fptype& kernelAccessIp4Ipar( fptype* buffer, const int ipar, const int ipar ) <===] + static constexpr auto kernelAccessIp4Ipar = + KernelAccessHelper::template kernelAccessField; + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (const, SCALAR) ===> const fptype& kernelAccessIp4IparConst( const fptype* buffer, const int ipar, const int ipar ) <===] + // DEFAULT VERSION + static constexpr auto kernelAccessIp4IparConst_s = + KernelAccessHelper::template kernelAccessFieldConst; + + /* + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (const, SCALAR) ===> const fptype& kernelAccessIp4IparConst( const fptype* buffer, const int ipar, const int ipar ) <===] + // DEBUG VERSION WITH PRINTOUTS + static __host__ __device__ inline const fptype& + kernelAccessIp4IparConst_s( const fptype* buffer, + const int ip4, + const int ipar ) + { + const fptype& out = KernelAccessHelper::template kernelAccessFieldConst( buffer, ip4, ipar ); + printf( "ipar=%2d ip4=%2d ievt='kernel' out=%8.3f\n", ipar, ip4, out ); + return out; + } + */ + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (const, SCALAR OR VECTOR) ===> fptype_sv kernelAccessIp4IparConst( const fptype* buffer, const int ipar, const int ipar ) <===] + // FIXME? Eventually return by const reference and support aligned arrays only? + // FIXME? Currently return by value to support also unaligned and arbitrary arrays + static __host__ __device__ inline fptype_sv + kernelAccessIp4IparConst( const fptype* buffer, const int ip4, const int ipar ) - { - const fptype& out = KernelAccessHelper::template kernelAccessFieldConst( buffer, ip4, ipar ); - printf( "ipar=%2d ip4=%2d ievt='kernel' out=%8.3f\n", ipar, ip4, out ); - return out; - } - */ - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (const, SCALAR OR VECTOR) ===> fptype_sv kernelAccessIp4IparConst( const fptype* buffer, const int ipar, const int ipar ) <===] - // FIXME? Eventually return by const reference and support aligned arrays only? - // FIXME? Currently return by value to support also unaligned and arbitrary arrays - static __host__ __device__ inline fptype_sv - kernelAccessIp4IparConst( const fptype* buffer, - const int ip4, - const int ipar ) - { - const fptype& out = kernelAccessIp4IparConst_s( buffer, ip4, ipar ); + { + const fptype& out = kernelAccessIp4IparConst_s( buffer, ip4, ipar ); #ifndef MGONGPU_CPPSIMD - return out; + return out; #else - constexpr int neppM = MemoryAccessMomentaBase::neppM; - constexpr bool useContiguousEventsIfPossible = true; // DEFAULT - //constexpr bool useContiguousEventsIfPossible = false; // FOR PERFORMANCE TESTS (treat as arbitrary array even if it is an AOSOA) - // Use c++17 "if constexpr": compile-time branching - if constexpr( useContiguousEventsIfPossible && ( neppM >= neppV ) && ( neppM % neppV == 0 ) ) - { - //constexpr bool skipAlignmentCheck = true; // FASTEST (SEGFAULTS IF MISALIGNED ACCESS, NEEDS A SANITY CHECK ELSEWHERE!) - constexpr bool skipAlignmentCheck = false; // DEFAULT: A BIT SLOWER BUT SAFER [ALLOWS MISALIGNED ACCESS] - if constexpr( skipAlignmentCheck ) - { - //static bool first=true; if( first ){ std::cout << "WARNING! assume aligned AOSOA, skip check" << std::endl; first=false; } // SLOWER (5.06E6) - // FASTEST? (5.09E6 in eemumu 512y) - // This assumes alignment for momenta1d without checking - causes segmentation fault in reinterpret_cast if not aligned! - return mg5amcCpu::fptypevFromAlignedArray( out ); // use reinterpret_cast - } - else if( (size_t)( buffer ) % mgOnGpu::cppAlign == 0 ) + constexpr int neppM = MemoryAccessMomentaBase::neppM; + constexpr bool useContiguousEventsIfPossible = true; // DEFAULT + //constexpr bool useContiguousEventsIfPossible = false; // FOR PERFORMANCE TESTS (treat as arbitrary array even if it is an AOSOA) + // Use c++17 "if constexpr": compile-time branching + if constexpr( useContiguousEventsIfPossible && ( neppM >= neppV ) && ( neppM % neppV == 0 ) ) { - //static bool first=true; if( first ){ std::cout << "WARNING! aligned AOSOA, reinterpret cast" << std::endl; first=false; } // SLOWER (5.00E6) - // DEFAULT! A tiny bit (<1%) slower because of the alignment check (5.07E6 in eemumu 512y) - // This explicitly checks buffer alignment to avoid segmentation faults in reinterpret_cast - return mg5amcCpu::fptypevFromAlignedArray( out ); // SIMD bulk load of neppV, use reinterpret_cast + //constexpr bool skipAlignmentCheck = true; // FASTEST (SEGFAULTS IF MISALIGNED ACCESS, NEEDS A SANITY CHECK ELSEWHERE!) + constexpr bool skipAlignmentCheck = false; // DEFAULT: A BIT SLOWER BUT SAFER [ALLOWS MISALIGNED ACCESS] + if constexpr( skipAlignmentCheck ) + { + //static bool first=true; if( first ){ std::cout << "WARNING! assume aligned AOSOA, skip check" << std::endl; first=false; } // SLOWER (5.06E6) + // FASTEST? (5.09E6 in eemumu 512y) + // This assumes alignment for momenta1d without checking - causes segmentation fault in reinterpret_cast if not aligned! + return mg5amcCpu::fptypevFromAlignedArray( out ); // use reinterpret_cast + } + else if( (size_t)( buffer ) % mgOnGpu::cppAlign == 0 ) + { + //static bool first=true; if( first ){ std::cout << "WARNING! aligned AOSOA, reinterpret cast" << std::endl; first=false; } // SLOWER (5.00E6) + // DEFAULT! A tiny bit (<1%) slower because of the alignment check (5.07E6 in eemumu 512y) + // This explicitly checks buffer alignment to avoid segmentation faults in reinterpret_cast + return mg5amcCpu::fptypevFromAlignedArray( out ); // SIMD bulk load of neppV, use reinterpret_cast + } + else + { + //static bool first=true; if( first ){ std::cout << "WARNING! AOSOA but no reinterpret cast" << std::endl; first=false; } // SLOWER (4.93E6) + // A bit (1%) slower (5.05E6 in eemumu 512y) + // This does not require buffer alignment, but it requires AOSOA with neppM>=neppV and neppM%neppV==0 + return mg5amcCpu::fptypevFromUnalignedArray( out ); // SIMD bulk load of neppV, do not use reinterpret_cast (fewer SIMD operations) + } } else { - //static bool first=true; if( first ){ std::cout << "WARNING! AOSOA but no reinterpret cast" << std::endl; first=false; } // SLOWER (4.93E6) - // A bit (1%) slower (5.05E6 in eemumu 512y) - // This does not require buffer alignment, but it requires AOSOA with neppM>=neppV and neppM%neppV==0 - return mg5amcCpu::fptypevFromUnalignedArray( out ); // SIMD bulk load of neppV, do not use reinterpret_cast (fewer SIMD operations) + //static bool first=true; if( first ){ std::cout << "WARNING! arbitrary array" << std::endl; first=false; } // SLOWER (5.08E6) + // ?!Used to be much slower, now a tiny bit faster for AOSOA?! (5.11E6 for AOSOA, 4.64E6 for AOS in eemumu 512y) + // This does not even require AOSOA with neppM>=neppV and neppM%neppV==0 (e.g. can be used with AOS neppM==1) + constexpr int ievt0 = 0; // just make it explicit in the code that buffer refers to a given ievt0 and decoderIeppV fetches event ievt0+ieppV + auto decoderIeppv = [buffer, ip4, ipar]( int ieppV ) + -> const fptype& + { return MemoryAccessMomenta::ieventAccessIp4IparConst( buffer, ievt0 + ieppV, ip4, ipar ); }; + return mg5amcCpu::fptypevFromArbitraryArray( decoderIeppv ); // iterate over ieppV in neppV (no SIMD) } +#endif } - else + + // Is this a HostAccess or DeviceAccess class? + // [this is only needed for a warning printout in rambo.h for nparf==1 #358] + static __host__ __device__ inline constexpr bool + isOnDevice() { - //static bool first=true; if( first ){ std::cout << "WARNING! arbitrary array" << std::endl; first=false; } // SLOWER (5.08E6) - // ?!Used to be much slower, now a tiny bit faster for AOSOA?! (5.11E6 for AOSOA, 4.64E6 for AOS in eemumu 512y) - // This does not even require AOSOA with neppM>=neppV and neppM%neppV==0 (e.g. can be used with AOS neppM==1) - constexpr int ievt0 = 0; // just make it explicit in the code that buffer refers to a given ievt0 and decoderIeppV fetches event ievt0+ieppV - auto decoderIeppv = [buffer, ip4, ipar]( int ieppV ) - -> const fptype& - { return MemoryAccessMomenta::ieventAccessIp4IparConst( buffer, ievt0 + ieppV, ip4, ipar ); }; - return mg5amcCpu::fptypevFromArbitraryArray( decoderIeppv ); // iterate over ieppV in neppV (no SIMD) + return onDevice; } -#endif - } + }; - // Is this a HostAccess or DeviceAccess class? - // [this is only needed for a warning printout in rambo.h for nparf==1 #358] - static __host__ __device__ inline constexpr bool - isOnDevice() - { - return onDevice; - } -}; + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- + typedef KernelAccessMomenta HostAccessMomenta; + typedef KernelAccessMomenta DeviceAccessMomenta; -typedef KernelAccessMomenta HostAccessMomenta; -typedef KernelAccessMomenta DeviceAccessMomenta; + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- +} // end namespace mg5amcGpu/mg5amcCpu #endif // MemoryAccessMomenta_H diff --git a/epochX/cudacpp/gg_ttgg.sa/SubProcesses/MemoryAccessNumerators.h b/epochX/cudacpp/gg_ttgg.sa/SubProcesses/MemoryAccessNumerators.h index b373fd6048..b152183b28 100644 --- a/epochX/cudacpp/gg_ttgg.sa/SubProcesses/MemoryAccessNumerators.h +++ b/epochX/cudacpp/gg_ttgg.sa/SubProcesses/MemoryAccessNumerators.h @@ -9,15 +9,24 @@ #include "MemoryAccessGs.h" -//---------------------------------------------------------------------------- +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif +{ + //---------------------------------------------------------------------------- + + // A class describing the internal layout of memory buffers for numerators + // This implementation reuses the plain ARRAY[nevt] implementation of MemoryAccessGs -// A class describing the internal layout of memory buffers for numerators -// This implementation reuses the plain ARRAY[nevt] implementation of MemoryAccessGs + typedef KernelAccessGs HostAccessNumerators; + typedef KernelAccessGs DeviceAccessNumerators; -typedef KernelAccessGs HostAccessNumerators; -typedef KernelAccessGs DeviceAccessNumerators; + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- +} // end namespace mg5amcGpu/mg5amcCpu #endif #endif // MemoryAccessNumerators_H diff --git a/epochX/cudacpp/gg_ttgg.sa/SubProcesses/MemoryAccessWavefunctions.h b/epochX/cudacpp/gg_ttgg.sa/SubProcesses/MemoryAccessWavefunctions.h index f42f0d34ed..5428aaf933 100644 --- a/epochX/cudacpp/gg_ttgg.sa/SubProcesses/MemoryAccessWavefunctions.h +++ b/epochX/cudacpp/gg_ttgg.sa/SubProcesses/MemoryAccessWavefunctions.h @@ -14,147 +14,156 @@ #define MGONGPU_TRIVIAL_WAVEFUNCTIONS 1 -//---------------------------------------------------------------------------- - -#ifndef MGONGPU_TRIVIAL_WAVEFUNCTIONS - -// A class describing the internal layout of memory buffers for wavefunctions -// This implementation uses an AOSOA[npagW][nw6][nx2][neppW] where nevt=npagW*neppW -// [If many implementations are used, a suffix _AOSOAv1 should be appended to the class name] -class MemoryAccessWavefunctionsBase //_AOSOAv1 +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { -public: - - // Number of Events Per Page in the wavefunction AOSOA memory buffer layout - static constexpr int neppW = 1; // AOS (just a test...) - -private: - - friend class MemoryAccessHelper; - friend class KernelAccessHelper; - friend class KernelAccessHelper; - - // The number of components of a (fermion or vector) wavefunction - static constexpr int nw6 = mgOnGpu::nw6; - - // The number of floating point components of a complex number - static constexpr int nx2 = mgOnGpu::nx2; + //---------------------------------------------------------------------------- - //-------------------------------------------------------------------------- - // NB all KernelLaunchers assume that memory access can be decomposed as "accessField = decodeRecord( accessRecord )" - // (in other words: first locate the event record for a given event, then locate an element in that record) - //-------------------------------------------------------------------------- +#ifndef MGONGPU_TRIVIAL_WAVEFUNCTIONS - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] - static __host__ __device__ inline fptype* - ieventAccessRecord( fptype* buffer, - const int ievt ) + // A class describing the internal layout of memory buffers for wavefunctions + // This implementation uses an AOSOA[npagW][nw6][nx2][neppW] where nevt=npagW*neppW + // [If many implementations are used, a suffix _AOSOAv1 should be appended to the class name] + class MemoryAccessWavefunctionsBase //_AOSOAv1 { - const int ipagW = ievt / neppW; // #event "W-page" - const int ieppW = ievt % neppW; // #event in the current event W-page - constexpr int iw6 = 0; - constexpr int ix2 = 0; - return &( buffer[ipagW * nw6 * nx2 * neppW + iw6 * nx2 * neppW + ix2 * neppW + ieppW] ); // AOSOA[ipagW][iw6][ix2][ieppW] - } - - //-------------------------------------------------------------------------- - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, Ts... args ) <===] - // [NB: expand variadic template "Ts... args" to "const int iw6, const int ix2" and rename "Field" as "Iw6Ix2"] - static __host__ __device__ inline fptype& - decodeRecord( fptype* buffer, - const int iw6, - const int ix2 ) + public: + + // Number of Events Per Page in the wavefunction AOSOA memory buffer layout + static constexpr int neppW = 1; // AOS (just a test...) + + private: + + friend class MemoryAccessHelper; + friend class KernelAccessHelper; + friend class KernelAccessHelper; + + // The number of components of a (fermion or vector) wavefunction + static constexpr int nw6 = mgOnGpu::nw6; + + // The number of floating point components of a complex number + static constexpr int nx2 = mgOnGpu::nx2; + + //-------------------------------------------------------------------------- + // NB all KernelLaunchers assume that memory access can be decomposed as "accessField = decodeRecord( accessRecord )" + // (in other words: first locate the event record for a given event, then locate an element in that record) + //-------------------------------------------------------------------------- + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] + static __host__ __device__ inline fptype* + ieventAccessRecord( fptype* buffer, + const int ievt ) + { + const int ipagW = ievt / neppW; // #event "W-page" + const int ieppW = ievt % neppW; // #event in the current event W-page + constexpr int iw6 = 0; + constexpr int ix2 = 0; + return &( buffer[ipagW * nw6 * nx2 * neppW + iw6 * nx2 * neppW + ix2 * neppW + ieppW] ); // AOSOA[ipagW][iw6][ix2][ieppW] + } + + //-------------------------------------------------------------------------- + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, Ts... args ) <===] + // [NB: expand variadic template "Ts... args" to "const int iw6, const int ix2" and rename "Field" as "Iw6Ix2"] + static __host__ __device__ inline fptype& + decodeRecord( fptype* buffer, + const int iw6, + const int ix2 ) + { + constexpr int ipagW = 0; + constexpr int ieppW = 0; + return buffer[ipagW * nw6 * nx2 * neppW + iw6 * nx2 * neppW + ix2 * neppW + ieppW]; // AOSOA[ipagW][iw6][ix2][ieppW] + } + }; + + //---------------------------------------------------------------------------- + + // A class providing access to memory buffers for a given event, based on explicit event numbers + // Its methods use the MemoryAccessHelper templates - note the use of the template keyword in template function instantiations + class MemoryAccessWavefunctions : public MemoryAccessWavefunctionsBase { - constexpr int ipagW = 0; - constexpr int ieppW = 0; - return buffer[ipagW * nw6 * nx2 * neppW + iw6 * nx2 * neppW + ix2 * neppW + ieppW]; // AOSOA[ipagW][iw6][ix2][ieppW] - } -}; - -//---------------------------------------------------------------------------- + public: -// A class providing access to memory buffers for a given event, based on explicit event numbers -// Its methods use the MemoryAccessHelper templates - note the use of the template keyword in template function instantiations -class MemoryAccessWavefunctions : public MemoryAccessWavefunctionsBase -{ -public: + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] + static constexpr auto ieventAccessRecord = MemoryAccessHelper::ieventAccessRecord; - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] - static constexpr auto ieventAccessRecord = MemoryAccessHelper::ieventAccessRecord; + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (const) ===> const fptype* ieventAccessRecordConst( const fptype* buffer, const int ievt ) <===] + static constexpr auto ieventAccessRecordConst = MemoryAccessHelper::ieventAccessRecordConst; - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (const) ===> const fptype* ieventAccessRecordConst( const fptype* buffer, const int ievt ) <===] - static constexpr auto ieventAccessRecordConst = MemoryAccessHelper::ieventAccessRecordConst; + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, const int iw6, const int ix2 ) <===] + static constexpr auto decodeRecordIw6Ix2 = MemoryAccessHelper::decodeRecord; - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, const int iw6, const int ix2 ) <===] - static constexpr auto decodeRecordIw6Ix2 = MemoryAccessHelper::decodeRecord; + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (const) ===> const fptype& decodeRecordConst( const fptype* buffer, const int iw6, const int ix2 ) <===] + static constexpr auto decodeRecordIw6Ix2Const = + MemoryAccessHelper::template decodeRecordConst; - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (const) ===> const fptype& decodeRecordConst( const fptype* buffer, const int iw6, const int ix2 ) <===] - static constexpr auto decodeRecordIw6Ix2Const = - MemoryAccessHelper::template decodeRecordConst; + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (non-const) ===> fptype& ieventAccessIw6Ix2( fptype* buffer, const ievt, const int iw6, const int ix2 ) <===] + static constexpr auto ieventAccessIw6Ix2 = + MemoryAccessHelper::template ieventAccessField; - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (non-const) ===> fptype& ieventAccessIw6Ix2( fptype* buffer, const ievt, const int iw6, const int ix2 ) <===] - static constexpr auto ieventAccessIw6Ix2 = - MemoryAccessHelper::template ieventAccessField; - - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (const) ===> const fptype& ieventAccessIw6Ix2Const( const fptype* buffer, const ievt, const int iw6, const int ix2 ) <===] - static constexpr auto ieventAccessIw6Ix2Const = - MemoryAccessHelper::template ieventAccessFieldConst; -}; + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (const) ===> const fptype& ieventAccessIw6Ix2Const( const fptype* buffer, const ievt, const int iw6, const int ix2 ) <===] + static constexpr auto ieventAccessIw6Ix2Const = + MemoryAccessHelper::template ieventAccessFieldConst; + }; #endif // #ifndef MGONGPU_TRIVIAL_WAVEFUNCTIONS -//---------------------------------------------------------------------------- + //---------------------------------------------------------------------------- -// A class providing access to memory buffers for a given event, based on implicit kernel rules -// Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations -template -class KernelAccessWavefunctions -{ -public: + // A class providing access to memory buffers for a given event, based on implicit kernel rules + // Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations + template + class KernelAccessWavefunctions + { + public: #ifndef MGONGPU_TRIVIAL_WAVEFUNCTIONS - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (non-const) ===> fptype& kernelAccessIw6Ix2( fptype* buffer, const int iw6, const int ix2 ) <===] - static constexpr auto kernelAccessIw6Ix2 = - KernelAccessHelper::template kernelAccessField; + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (non-const) ===> fptype& kernelAccessIw6Ix2( fptype* buffer, const int iw6, const int ix2 ) <===] + static constexpr auto kernelAccessIw6Ix2 = + KernelAccessHelper::template kernelAccessField; - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (const) ===> const fptype& kernelAccessIw6Ix2Const( const fptype* buffer, const int iw6, const int ix2 ) <===] - static constexpr auto kernelAccessIw6Ix2Const = - KernelAccessHelper::template kernelAccessFieldConst; + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (const) ===> const fptype& kernelAccessIw6Ix2Const( const fptype* buffer, const int iw6, const int ix2 ) <===] + static constexpr auto kernelAccessIw6Ix2Const = + KernelAccessHelper::template kernelAccessFieldConst; #else - static __host__ __device__ inline cxtype_sv* - kernelAccess( fptype* buffer ) - { - return reinterpret_cast( buffer ); - } + static __host__ __device__ inline cxtype_sv* + kernelAccess( fptype* buffer ) + { + return reinterpret_cast( buffer ); + } - static __host__ __device__ inline const cxtype_sv* - kernelAccessConst( const fptype* buffer ) - { - return reinterpret_cast( buffer ); - } + static __host__ __device__ inline const cxtype_sv* + kernelAccessConst( const fptype* buffer ) + { + return reinterpret_cast( buffer ); + } #endif // #ifndef MGONGPU_TRIVIAL_WAVEFUNCTIONS -}; + }; + + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- + typedef KernelAccessWavefunctions HostAccessWavefunctions; + typedef KernelAccessWavefunctions DeviceAccessWavefunctions; -typedef KernelAccessWavefunctions HostAccessWavefunctions; -typedef KernelAccessWavefunctions DeviceAccessWavefunctions; + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- +} // end namespace mg5amcGpu/mg5amcCpu #endif // MemoryAccessWavefunctions_H diff --git a/epochX/cudacpp/gg_ttgg.sa/SubProcesses/cudacpp.mk b/epochX/cudacpp/gg_ttgg.sa/SubProcesses/cudacpp.mk index a0397e9ecc..c2f7b8e0f6 100644 --- a/epochX/cudacpp/gg_ttgg.sa/SubProcesses/cudacpp.mk +++ b/epochX/cudacpp/gg_ttgg.sa/SubProcesses/cudacpp.mk @@ -76,7 +76,7 @@ endif CXXFLAGS = $(OPTFLAGS) -std=c++17 $(INCFLAGS) -Wall -Wshadow -Wextra ifeq ($(shell $(CXX) --version | grep ^nvc++),) -CXXFLAGS+= -ffast-math # see issue #117 +CXXFLAGS += -ffast-math # see issue #117 endif ###CXXFLAGS+= -Ofast # performance is not different from --fast-math ###CXXFLAGS+= -g # FOR DEBUGGING ONLY @@ -122,7 +122,7 @@ ifneq ($(wildcard $(CUDA_HOME)/bin/nvcc),) CUINC = -I$(CUDA_HOME)/include/ CURANDLIBFLAGS = -L$(CUDA_HOME)/lib64/ -lcurand # NB: -lcuda is not needed here! CUOPTFLAGS = -lineinfo - CUFLAGS = $(OPTFLAGS) $(CUOPTFLAGS) $(INCFLAGS) $(CUINC) $(USE_NVTX) $(CUARCHFLAGS) -use_fast_math + CUFLAGS = $(foreach opt, $(OPTFLAGS), -Xcompiler $(opt)) $(CUOPTFLAGS) $(INCFLAGS) $(CUINC) $(USE_NVTX) $(CUARCHFLAGS) -use_fast_math ###CUFLAGS += -Xcompiler -Wall -Xcompiler -Wextra -Xcompiler -Wshadow ###NVCC_VERSION = $(shell $(NVCC) --version | grep 'Cuda compilation tools' | cut -d' ' -f5 | cut -d, -f1) CUFLAGS += -std=c++17 # need CUDA >= 11.2 (see #333): this is enforced in mgOnGpuConfig.h @@ -142,6 +142,8 @@ else override CUINC= override CURANDLIBFLAGS= endif +export NVCC +export CUFLAGS # Set the host C++ compiler for nvcc via "-ccbin " # (NB issue #505: this must be a single word, "clang++ --gcc-toolchain..." is not supported) @@ -439,7 +441,7 @@ endif # Target (and build options): debug MAKEDEBUG= -debug: OPTFLAGS = -g -O0 -DDEBUG2 +debug: OPTFLAGS = -g -O0 debug: CUOPTFLAGS = -G debug: MAKEDEBUG := debug debug: all.$(TAG) @@ -468,9 +470,9 @@ $(BUILDDIR)/%.o : %.cc *.h ../../src/*.h $(BUILDDIR)/.build.$(TAG) @if [ ! -d $(BUILDDIR) ]; then echo "mkdir -p $(BUILDDIR)"; mkdir -p $(BUILDDIR); fi $(CXX) $(CPPFLAGS) $(CXXFLAGS) -fPIC -c $< -o $@ -# Apply special build flags only to CrossSectionKernel.cc and gCrossSectionKernel.cu (no fast math, see #117) +# Apply special build flags only to CrossSectionKernel.cc and gCrossSectionKernel.cu (no fast math, see #117 and #516) ifeq ($(shell $(CXX) --version | grep ^nvc++),) -$(BUILDDIR)/CrossSectionKernels.o: CXXFLAGS += -fno-fast-math +$(BUILDDIR)/CrossSectionKernels.o: CXXFLAGS := $(filter-out -ffast-math,$(CXXFLAGS)) $(BUILDDIR)/CrossSectionKernels.o: CXXFLAGS += -fno-fast-math ifneq ($(NVCC),) $(BUILDDIR)/gCrossSectionKernels.o: CUFLAGS += -Xcompiler -fno-fast-math diff --git a/epochX/cudacpp/gg_ttgg.sa/SubProcesses/runTest.cc b/epochX/cudacpp/gg_ttgg.sa/SubProcesses/runTest.cc index 572e28aaea..df7488178e 100644 --- a/epochX/cudacpp/gg_ttgg.sa/SubProcesses/runTest.cc +++ b/epochX/cudacpp/gg_ttgg.sa/SubProcesses/runTest.cc @@ -2,6 +2,9 @@ // Licensed under the GNU Lesser General Public License (version 3 or later). // Created by: S. Hageboeck (Nov 2020) for the MG5aMC CUDACPP plugin. // Further modified by: S. Hageboeck, O. Mattelaer, S. Roiser, A. Valassi (2020-2023) for the MG5aMC CUDACPP plugin. +//---------------------------------------------------------------------------- +// Use ./runTest.exe --gtest_filter=*xxx to run only testxxx.cc tests +//---------------------------------------------------------------------------- #include "mgOnGpuConfig.h" diff --git a/epochX/cudacpp/gg_ttgg.sa/SubProcesses/testmisc.cc b/epochX/cudacpp/gg_ttgg.sa/SubProcesses/testmisc.cc index 989aba1fdc..895d6eeb56 100644 --- a/epochX/cudacpp/gg_ttgg.sa/SubProcesses/testmisc.cc +++ b/epochX/cudacpp/gg_ttgg.sa/SubProcesses/testmisc.cc @@ -3,7 +3,7 @@ // Created by: A. Valassi (Jan 2022) for the MG5aMC CUDACPP plugin. // Further modified by: A. Valassi (2022-2023) for the MG5aMC CUDACPP plugin. //---------------------------------------------------------------------------- -// Use ./runTest.exe --gtest_filter=*misc to run only this test +// Use ./runTest.exe --gtest_filter=*misc to run only testmisc.cc tests //---------------------------------------------------------------------------- #include "mgOnGpuConfig.h" @@ -25,33 +25,48 @@ #define XTESTID( s ) TESTID( s ) +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif +{ #ifdef MGONGPU_CPPSIMD /* clang-format off */ -bool maskand( const bool_v& mask ){ bool out = true; for ( int i=0; i #include +#include // debug #701 (see https://stackoverflow.com/a/17473528) #include #include #include @@ -28,16 +32,47 @@ #define XTESTID( s ) TESTID( s ) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif +{ + std::string FPEhandlerMessage = "unknown"; + int FPEhandlerIevt = -1; + inline void FPEhandler( int sig ) + { +#ifdef __CUDACC__ + std::cerr << "Floating Point Exception (GPU): '" << FPEhandlerMessage << "' ievt=" << FPEhandlerIevt << std::endl; +#else + std::cerr << "Floating Point Exception (CPU neppV=" << neppV << "): '" << FPEhandlerMessage << "' ievt=" << FPEhandlerIevt << std::endl; +#endif + exit( 0 ); + } +} + TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) { +#ifdef __CUDACC__ + using namespace mg5amcGpu; +#else + using namespace mg5amcCpu; +#endif +#ifndef __APPLE__ // test #701 (except on MacOS where feenableexcept is not defined #730) + const bool enableFPE = !getenv( "CUDACPP_RUNTIME_DISABLEFPE" ); + if( enableFPE ) + { + feenableexcept( FE_INVALID | FE_DIVBYZERO | FE_OVERFLOW | FE_UNDERFLOW ); // debug #701 + signal( SIGFPE, FPEhandler ); + } +#endif constexpr bool dumpEvents = false; // dump the expected output of the test? constexpr bool testEvents = !dumpEvents; // run the test? constexpr fptype toleranceXXXs = std::is_same::value ? 1.E-15 : 1.E-5; // Constant parameters constexpr int neppM = MemoryAccessMomenta::neppM; // AOSOA layout - using mgOnGpu::neppV; constexpr int np4 = CPPProcess::np4; - const int nevt = 16; // 12 independent tests plus 4 duplicates (need a multiple of 8 for floats or for '512z') + const int nevt = 32; // 12 independent tests plus 20 duplicates (need a multiple of 16 for floats '512z') assert( nevt % neppM == 0 ); // nevt must be a multiple of neppM assert( nevt % neppV == 0 ); // nevt must be a multiple of neppV // Fill in the input momenta @@ -46,24 +81,41 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) #else mg5amcCpu::HostBufferMomenta hstMomenta( nevt ); // AOSOA[npagM][npar=4][np4=4][neppM] #endif /* clang-format off */ + // NB NEW TESTS FOR DEBUGGING #701: KEEP TWO SEPARATE SETS (16-SIMD-VECTORS!) OF TESTS FOR M==0 AND M!=0! const fptype par0[np4 * nevt] = // AOS[nevt][np4] { - 500, 0, 0, 500, // #0 (m=0 pT=0 E=pz>0) - 500, 0, 0, -500, // #1 (m=0 pT=0 -E=pz<0) - 500, 300, 400, 0, // #2 (m=0 pT>0 pz=0) - 500, 180, 240, 400, // #3 (m=0 pT>0 pz>0) - 500, 180, 240, -400, // #4 (m=0 pT>0 pz<0) - 500, 0, 0, 0, // #5 (m=50>0 pT=0 pz=0) - 500, 0, 0, 300, // #6 (m=40>0 pT=0 pz>0) - 500, 0, 0, -300, // #7 (m=40>0 pT=0 pz<0) - 500, 180, 240, 0, // #8 (m=40>0 pT>0 pz=0) - 500, -240, -180, 0, // #9 (m=40>0 pT>0 pz=0) - 500, 180, 192, 144, // #10 (m=40>0 pT>0 pz>0) - 500, 180, 192, -144, // #11 (m=40>0 pT>0 pz<0) - 500, 0, 0, 500, // DUPLICATE #12 == #0 (m=0 pT=0 E=pz>0) - 500, 0, 0, -500, // DUPLICATE #13 == #1 (m=0 pT=0 -E=pz<0) - 500, 300, 400, 0, // DUPLICATE #14 == #2 (m=0 pT>0 pz=0) - 500, 180, 240, 400 // DUPLICATE #15 == #3 (m=0 pT>0 pz>0) + 500, 0, 0, 500, // #0 (m=0 pT=0 E=pz>0) + 500, 0, 0, -500, // #1 (m=0 pT=0 -E=pz<0) + 500, 300, 400, 0, // #2 (m=0 pT>0 pz=0) + 500, 180, 240, 400, // #3 (m=0 pT>0 pz>0) + 500, 180, 240, -400, // #4 (m=0 pT>0 pz<0) + 500, 0, 0, 500, // #5 DUPLICATE == #0 (m=0 pT=0 E=pz>0) + 500, 0, 0, -500, // #6 DUPLICATE == #1 (m=0 pT=0 -E=pz<0) + 500, 300, 400, 0, // #7 DUPLICATE == #2 (m=0 pT>0 pz=0) + 500, 180, 240, 400, // #8 DUPLICATE == #3 (m=0 pT>0 pz>0) + 500, 180, 240, -400, // #9 DUPLICATE == #4 (m=0 pT>0 pz<0) + 500, 0, 0, 500, // #10 DUPLICATE == #0 (m=0 pT=0 E=pz>0) + 500, 0, 0, -500, // #11 DUPLICATE == #1 (m=0 pT=0 -E=pz<0) + 500, 300, 400, 0, // #12 DUPLICATE == #2 (m=0 pT>0 pz=0) + 500, 180, 240, 400, // #13 DUPLICATE == #3 (m=0 pT>0 pz>0) + 500, 180, 240, -400, // #14 DUPLICATE == #4 (m=0 pT>0 pz<0) + 500, 0, 0, 500, // #15 DUPLICATE == #0 (m=0 pT=0 E=pz>0) + 500, 0, 0, 0, // #16 (m=50>0 pT=0 pz=0) + 500, 0, 0, 300, // #17 (m=40>0 pT=0 pz>0) + 500, 0, 0, -300, // #18 (m=40>0 pT=0 pz<0) + 500, 180, 240, 0, // #19 (m=40>0 pT>0 pz=0) + 500, -240, -180, 0, // #20 (m=40>0 pT>0 pz=0) + 500, 180, 192, 144, // #21 (m=40>0 pT>0 pz>0) + 500, 180, 192, -144, // #22 (m=40>0 pT>0 pz<0) + 500, 0, 0, 0, // #23 DUPLICATE == #16 (m=50>0 pT=0 pz=0) + 500, 0, 0, 300, // #24 DUPLICATE == #17 (m=40>0 pT=0 pz>0) + 500, 0, 0, -300, // #25 DUPLICATE == #18 (m=40>0 pT=0 pz<0) + 500, 180, 240, 0, // #26 DUPLICATE == #19 (m=40>0 pT>0 pz=0) + 500, -240, -180, 0, // #27 DUPLICATE == #20 (m=40>0 pT>0 pz=0) + 500, 180, 192, 144, // #28 DUPLICATE == #21 (m=40>0 pT>0 pz>0) + 500, 180, 192, -144, // #29 DUPLICATE == #22 (m=40>0 pT>0 pz<0) + 500, 0, 0, 0, // #30 DUPLICATE == #16 (m=50>0 pT=0 pz=0) + 500, 0, 0, 300 // #31 DUPLICATE == #17 (m=40>0 pT=0 pz>0) }; /* clang-format on */ // Array initialization: zero-out as "{0}" (C and C++) or as "{}" (C++ only) // See https://en.cppreference.com/w/c/language/array_initialization#Notes @@ -99,7 +151,15 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) constexpr int nw6 = CPPProcess::nw6; // dimensions of each wavefunction (HELAS KEK 91-11): e.g. 6 for e+ e- -> mu+ mu- (fermions and vectors) int itest = 0; // index on the expected output vector std::ofstream dumpFile; - if( dumpEvents ) dumpFile.open( dumpFileName, std::ios::trunc ); + if( dumpEvents ) + { + dumpFile.open( dumpFileName, std::ios::trunc ); + dumpFile << " // Copyright (C) 2020-2023 CERN and UCLouvain." << std::endl + << " // Licensed under the GNU Lesser General Public License (version 3 or later)." << std::endl + << " // Created by: A. Valassi (Apr 2021) for the MG5aMC CUDACPP plugin." << std::endl + << " // Further modified by: A. Valassi (2021-2023) for the MG5aMC CUDACPP plugin." << std::endl; + } + // Lambda function for dumping wavefunctions auto dumpwf6 = [&]( std::ostream& out, const cxtype_sv wf[6], const char* xxx, int ievt, int nsp, fptype mass ) { out << std::setprecision( 15 ) << std::scientific; @@ -129,6 +189,7 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) } out << std::defaultfloat; }; + // Lambda function for testing wavefunctions (1) auto testwf6 = [&]( const cxtype_sv wf[6], const char* xxx, int ievt, int nsp, fptype mass ) { if( dumpEvents ) dumpwf6( dumpFile, wf, xxx, ievt, nsp, mass ); @@ -170,6 +231,7 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) } itest++; }; + // Lambda function for testing wavefunctions (2) auto testwf6two = [&]( const cxtype_sv wf[6], const cxtype_sv expwf[6], const char* xxx, int ievt ) { if( testEvents ) @@ -213,6 +275,32 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) } } }; + // Lambda function for resetting hstMomenta to the values of par0 + // This is needed in each test because hstMomenta may have been modified to ensure a function like ipzxxx can be used (#701) + auto resetHstMomentaToPar0 = [&]() + { + for( int ievt = 0; ievt < nevt; ievt++ ) + for( int ip4 = 0; ip4 < np4; ip4++ ) + MemoryAccessMomenta::ieventAccessIp4Ipar( hstMomenta.data(), ievt, ip4, ipar0 ) = par0[ievt * np4 + ip4]; // AOS to AOSOA + }; + // Lambda function for preparing the test of one specific function + const bool debug = false; + auto prepareTest = [&]( const char* xxx, int ievt ) + { + if( debug ) std::cout << "Prepare test " << xxx << " ievt=" << ievt << std::endl; + resetHstMomentaToPar0(); + FPEhandlerMessage = xxx; + FPEhandlerIevt = ievt; + if( std::string( xxx ) == "ipzxxx" || std::string( xxx ) == "opzxxx" || std::string( xxx ) == "imzxxx" || std::string( xxx ) == "omzxxx" || std::string( xxx ) == "ixzxxx" || std::string( xxx ) == "oxzxxx" ) + { + // Modify hstMomenta so that ALL events have the momenta of a single ievt + // This ensures that a function like ipzxxx (which assumes pZ>0) can be used without triggering FPEs (#701) + // This is done by filling the full SIMD vector with the value of ievt, which was already tested to respect the relevant assumptions + for( int jevt = 0; jevt < nevt; jevt++ ) + for( int ip4 = 0; ip4 < np4; ip4++ ) + MemoryAccessMomenta::ieventAccessIp4Ipar( hstMomenta.data(), jevt, ip4, ipar0 ) = par0[ievt * np4 + ip4]; // AOS to AOSOA + } + }; // Array initialization: zero-out as "{0}" (C and C++) or as "{}" (C++ only) // See https://en.cppreference.com/w/c/language/array_initialization#Notes cxtype_sv outwfI[6] = {}; // last result of ixxxxx (mass==0) @@ -224,6 +312,7 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) fptype* fp_outwf = reinterpret_cast( outwf ); // proof of concept for using fptype* in the interface fptype* fp_outwf3 = reinterpret_cast( outwf3 ); // proof of concept for using fptype* in the interface const int nhel = 1; + // *** START OF TESTING LOOP for( auto nsp: { -1, +1 } ) // antifermion/fermion (or initial/final for scalar and vector) { for( int ievt = 0; ievt < nevt; ievt++ ) @@ -233,9 +322,10 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) #else using namespace mg5amcCpu; #endif - if( false ) + if( debug ) { std::cout << std::endl; + std::cout << "nsp=" << nsp << " ievt=" << ievt << ": "; for( int ip4 = 0; ip4 < np4; ip4++ ) std::cout << par0[ievt * np4 + ip4] << ", "; std::cout << std::endl; } @@ -243,6 +333,7 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) const fptype* ievt0Momenta = MemoryAccessMomenta::ieventAccessRecordConst( hstMomenta.data(), ipagV * neppV ); // Test ixxxxx - NO ASSUMPTIONS { + prepareTest( "ixxxxx", ievt ); const fptype fmass = mass0[ievt]; ixxxxx( ievt0Momenta, fmass, nhel, nsp, fp_outwfI, ipar0 ); testwf6( outwfI, "ixxxxx", ievt, nsp, fmass ); @@ -252,6 +343,7 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) // Test ipzxxx - ASSUMPTIONS: (FMASS == 0) and (PX == PY == 0 and E == +PZ > 0) if( mass0[ievt] == 0 && !isptgt0[ievt] && ispzgt0[ievt] ) { + prepareTest( "ipzxxx", ievt ); ipzxxx( ievt0Momenta, nhel, nsp, fp_outwf, ipar0 ); testwf6two( outwf, outwfI, "ipzxxx", ievt ); testwf6( outwf, "ipzxxx", ievt, nsp, 0 ); @@ -259,6 +351,7 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) // Test imzxxx - ASSUMPTIONS: (FMASS == 0) and (PX == PY == 0 and E == -PZ > 0) if( mass0[ievt] == 0 && !isptgt0[ievt] && ispzlt0[ievt] ) { + prepareTest( "imzxxx", ievt ); imzxxx( ievt0Momenta, nhel, nsp, fp_outwf, ipar0 ); testwf6two( outwf, outwfI, "imzxxx", ievt ); testwf6( outwf, "imzxxx", ievt, nsp, 0 ); @@ -266,12 +359,14 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) // Test ixzxxx - ASSUMPTIONS: (FMASS == 0) and (PT > 0) if( mass0[ievt] == 0 && isptgt0[ievt] ) { + prepareTest( "ixzxxx", ievt ); ixzxxx( ievt0Momenta, nhel, nsp, fp_outwf, ipar0 ); testwf6two( outwf, outwfI, "ixzxxx", ievt ); testwf6( outwf, "ixzxxx", ievt, nsp, 0 ); } // Test vxxxxx - NO ASSUMPTIONS { + prepareTest( "vxxxxx", ievt ); const fptype vmass = mass0[ievt]; vxxxxx( ievt0Momenta, vmass, nhel, nsp, fp_outwf, ipar0 ); testwf6( outwf, "vxxxxx", ievt, nsp, vmass ); @@ -280,6 +375,7 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) } // Test sxxxxx - NO ASSUMPTIONS { + prepareTest( "sxxxxx", ievt ); const fptype smass = mass0[ievt]; sxxxxx( ievt0Momenta, nsp, fp_outwf3, ipar0 ); // no mass, no helicity (was "smass>0") testwf6( outwf3, "sxxxxx", ievt, nsp, smass ); @@ -288,6 +384,7 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) } // Test oxxxxx - NO ASSUMPTIONS { + prepareTest( "oxxxxx", ievt ); const fptype fmass = mass0[ievt]; oxxxxx( ievt0Momenta, fmass, nhel, nsp, fp_outwfO, ipar0 ); testwf6( outwfO, "oxxxxx", ievt, nsp, fmass ); @@ -297,6 +394,7 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) // Test opzxxx - ASSUMPTIONS: (FMASS == 0) and (PX == PY == 0 and E == +PZ > 0) if( mass0[ievt] == 0 && !isptgt0[ievt] && ispzgt0[ievt] ) { + prepareTest( "opzxxx", ievt ); opzxxx( ievt0Momenta, nhel, nsp, fp_outwf, ipar0 ); testwf6two( outwf, outwfO, "opzxxx", ievt ); testwf6( outwf, "opzxxx", ievt, nsp, 0 ); @@ -304,6 +402,7 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) // Test omzxxx - ASSUMPTIONS: (FMASS == 0) and (PX == PY == 0 and E == -PZ > 0) if( mass0[ievt] == 0 && !isptgt0[ievt] && ispzlt0[ievt] ) { + prepareTest( "omzxxx", ievt ); omzxxx( ievt0Momenta, nhel, nsp, fp_outwf, ipar0 ); testwf6two( outwf, outwfO, "omzxxx", ievt ); testwf6( outwf, "omzxxx", ievt, nsp, 0 ); @@ -311,17 +410,25 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) // Test oxzxxx - ASSUMPTIONS: (FMASS == 0) and (PT > 0) if( mass0[ievt] == 0 && isptgt0[ievt] ) { - oxzxxx( ievt0Momenta, nhel, nsp, reinterpret_cast( outwf ), ipar0 ); + prepareTest( "oxzxxx", ievt ); + oxzxxx( ievt0Momenta, nhel, nsp, fp_outwf, ipar0 ); testwf6two( outwf, outwfO, "oxzxxx", ievt ); testwf6( outwf, "oxzxxx", ievt, nsp, 0 ); } } } + // *** END OF TESTING LOOP if( dumpEvents ) { dumpFile.close(); std::cout << "INFO: New reference data dumped to file '" << dumpFileName << "'" << std::endl; } +#ifndef __APPLE__ // test #701 (except on MacOS where fedisableexcept is not defined #730) + if( enableFPE ) + { + fedisableexcept( FE_INVALID | FE_DIVBYZERO | FE_OVERFLOW | FE_UNDERFLOW ); // debug #701 + } +#endif } //========================================================================== diff --git a/epochX/cudacpp/gg_ttgg.sa/SubProcesses/testxxx_cc_ref.txt b/epochX/cudacpp/gg_ttgg.sa/SubProcesses/testxxx_cc_ref.txt index acb9bde918..637530d1f5 100644 --- a/epochX/cudacpp/gg_ttgg.sa/SubProcesses/testxxx_cc_ref.txt +++ b/epochX/cudacpp/gg_ttgg.sa/SubProcesses/testxxx_cc_ref.txt @@ -5,14 +5,14 @@ expwfs.push_back( { // --------- 5.000000000000000e+02, 5.000000000000000e+02, // itest=0: ixxxxx#0 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=0: ixxxxx#0 nsp=-1 mass=0 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=0: ixxxxx#0 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=0: ixxxxx#0 nsp=-1 mass=0 -3.162277660168379e+01, 0.000000000000000e+00, // itest=0: ixxxxx#0 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=0: ixxxxx#0 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=0: ixxxxx#0 nsp=-1 mass=0 expwfs.push_back( { // --------- 5.000000000000000e+02, 5.000000000000000e+02, // itest=1: ixxxxx#0 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=1: ixxxxx#0 nsp=-1 mass=0 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=1: ixxxxx#0 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=1: ixxxxx#0 nsp=-1 mass=0 -3.162277660168379e+01, 0.000000000000000e+00, // itest=1: ixxxxx#0 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=1: ixxxxx#0 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=1: ixxxxx#0 nsp=-1 mass=0 @@ -82,8 +82,8 @@ expwfs.push_back( { // --------- 5.000000000000000e+02, -5.000000000000000e+02, // itest=11: ixxxxx#1 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=11: ixxxxx#1 nsp=-1 mass=0 - -3.162277660168379e+01, -0.000000000000000e+00, // itest=11: ixxxxx#1 nsp=-1 mass=0 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=11: ixxxxx#1 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=11: ixxxxx#1 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=11: ixxxxx#1 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=11: ixxxxx#1 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=11: ixxxxx#1 nsp=-1 mass=0 expwfs.push_back( { // --------- @@ -133,8 +133,8 @@ -0.000000000000000e+00, -0.000000000000000e+00, // itest=18: oxxxxx#1 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=18: oxxxxx#1 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=18: oxxxxx#1 nsp=-1 mass=0 - -3.162277660168379e+01, -0.000000000000000e+00, // itest=18: oxxxxx#1 nsp=-1 mass=0 - -0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=18: oxxxxx#1 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=18: oxxxxx#1 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=18: oxxxxx#1 nsp=-1 mass=0 expwfs.push_back( { // --------- -5.000000000000000e+02, 5.000000000000000e+02, // itest=19: omzxxx#1 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=19: omzxxx#1 nsp=-1 mass=0 @@ -145,14 +145,14 @@ expwfs.push_back( { // --------- 5.000000000000000e+02, 0.000000000000000e+00, // itest=20: ixxxxx#2 nsp=-1 mass=0 3.000000000000000e+02, 4.000000000000000e+02, // itest=20: ixxxxx#2 nsp=-1 mass=0 - 1.341640786499874e+01, -1.788854381999832e+01, // itest=20: ixxxxx#2 nsp=-1 mass=0 + 1.341640786499874e+01, -1.788854381999831e+01, // itest=20: ixxxxx#2 nsp=-1 mass=0 -2.236067977499790e+01, 0.000000000000000e+00, // itest=20: ixxxxx#2 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=20: ixxxxx#2 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=20: ixxxxx#2 nsp=-1 mass=0 expwfs.push_back( { // --------- 5.000000000000000e+02, 0.000000000000000e+00, // itest=21: ixxxxx#2 nsp=-1 mass=0 3.000000000000000e+02, 4.000000000000000e+02, // itest=21: ixxxxx#2 nsp=-1 mass=0 - 1.341640786499874e+01, -1.788854381999832e+01, // itest=21: ixxxxx#2 nsp=-1 mass=0 + 1.341640786499874e+01, -1.788854381999831e+01, // itest=21: ixxxxx#2 nsp=-1 mass=0 -2.236067977499790e+01, 0.000000000000000e+00, // itest=21: ixxxxx#2 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=21: ixxxxx#2 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=21: ixxxxx#2 nsp=-1 mass=0 @@ -196,14 +196,14 @@ -3.000000000000000e+02, -4.000000000000000e+02, // itest=27: oxxxxx#2 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=27: oxxxxx#2 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=27: oxxxxx#2 nsp=-1 mass=0 - 1.341640786499874e+01, 1.788854381999832e+01, // itest=27: oxxxxx#2 nsp=-1 mass=0 + 1.341640786499874e+01, 1.788854381999831e+01, // itest=27: oxxxxx#2 nsp=-1 mass=0 -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=27: oxxxxx#2 nsp=-1 mass=0 expwfs.push_back( { // --------- -5.000000000000000e+02, -0.000000000000000e+00, // itest=28: oxxxxx#2 nsp=-1 mass=0 -3.000000000000000e+02, -4.000000000000000e+02, // itest=28: oxxxxx#2 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=28: oxxxxx#2 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=28: oxxxxx#2 nsp=-1 mass=0 - 1.341640786499874e+01, 1.788854381999832e+01, // itest=28: oxxxxx#2 nsp=-1 mass=0 + 1.341640786499874e+01, 1.788854381999831e+01, // itest=28: oxxxxx#2 nsp=-1 mass=0 -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=28: oxxxxx#2 nsp=-1 mass=0 expwfs.push_back( { // --------- -5.000000000000000e+02, -0.000000000000000e+00, // itest=29: oxzxxx#2 nsp=-1 mass=0 @@ -353,1696 +353,3684 @@ 1.800000000000000e+01, 2.400000000000000e+01, // itest=49: oxzxxx#4 nsp=-1 mass=0 -1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=49: oxzxxx#4 nsp=-1 mass=0 expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=50: ixxxxx#5 nsp=-1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=50: ixxxxx#5 nsp=-1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=50: ixxxxx#5 nsp=-1 mass=500 - -2.236067977499790e+01, 0.000000000000000e+00, // itest=50: ixxxxx#5 nsp=-1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=50: ixxxxx#5 nsp=-1 mass=500 - 2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=50: ixxxxx#5 nsp=-1 mass=500 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=51: ixxxxx#5 nsp=-1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=51: ixxxxx#5 nsp=-1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=51: ixxxxx#5 nsp=-1 mass=-500 - -2.236067977499790e+01, 0.000000000000000e+00, // itest=51: ixxxxx#5 nsp=-1 mass=-500 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=51: ixxxxx#5 nsp=-1 mass=-500 - -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=51: ixxxxx#5 nsp=-1 mass=-500 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=52: vxxxxx#5 nsp=-1 mass=500 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=52: vxxxxx#5 nsp=-1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=52: vxxxxx#5 nsp=-1 mass=500 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=52: vxxxxx#5 nsp=-1 mass=500 - 0.000000000000000e+00, -7.071067811865476e-01, // itest=52: vxxxxx#5 nsp=-1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=52: vxxxxx#5 nsp=-1 mass=500 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=53: vxxxxx#5 nsp=-1 mass=-500 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=53: vxxxxx#5 nsp=-1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=53: vxxxxx#5 nsp=-1 mass=-500 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=53: vxxxxx#5 nsp=-1 mass=-500 - 0.000000000000000e+00, -7.071067811865476e-01, // itest=53: vxxxxx#5 nsp=-1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=53: vxxxxx#5 nsp=-1 mass=-500 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=54: sxxxxx#5 nsp=-1 mass=500 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=54: sxxxxx#5 nsp=-1 mass=500 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=54: sxxxxx#5 nsp=-1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=54: sxxxxx#5 nsp=-1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=54: sxxxxx#5 nsp=-1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=54: sxxxxx#5 nsp=-1 mass=500 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=55: sxxxxx#5 nsp=-1 mass=-500 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=55: sxxxxx#5 nsp=-1 mass=-500 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=55: sxxxxx#5 nsp=-1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=55: sxxxxx#5 nsp=-1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=55: sxxxxx#5 nsp=-1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=55: sxxxxx#5 nsp=-1 mass=-500 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=56: oxxxxx#5 nsp=-1 mass=500 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=56: oxxxxx#5 nsp=-1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=56: oxxxxx#5 nsp=-1 mass=500 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=56: oxxxxx#5 nsp=-1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=56: oxxxxx#5 nsp=-1 mass=500 - -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=56: oxxxxx#5 nsp=-1 mass=500 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=57: oxxxxx#5 nsp=-1 mass=-500 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=57: oxxxxx#5 nsp=-1 mass=-500 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=57: oxxxxx#5 nsp=-1 mass=-500 - -2.236067977499790e+01, 0.000000000000000e+00, // itest=57: oxxxxx#5 nsp=-1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=57: oxxxxx#5 nsp=-1 mass=-500 - -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=57: oxxxxx#5 nsp=-1 mass=-500 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 3.000000000000000e+02, // itest=58: ixxxxx#6 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=58: ixxxxx#6 nsp=-1 mass=400 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=58: ixxxxx#6 nsp=-1 mass=400 - -2.828427124746190e+01, -0.000000000000000e+00, // itest=58: ixxxxx#6 nsp=-1 mass=400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=58: ixxxxx#6 nsp=-1 mass=400 - 1.414213562373095e+01, 0.000000000000000e+00 } ); // itest=58: ixxxxx#6 nsp=-1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 3.000000000000000e+02, // itest=59: ixxxxx#6 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=59: ixxxxx#6 nsp=-1 mass=-400 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=59: ixxxxx#6 nsp=-1 mass=-400 - -2.828427124746190e+01, -0.000000000000000e+00, // itest=59: ixxxxx#6 nsp=-1 mass=-400 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=59: ixxxxx#6 nsp=-1 mass=-400 - -1.414213562373095e+01, -0.000000000000000e+00 } ); // itest=59: ixxxxx#6 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -3.000000000000000e+02, // itest=60: vxxxxx#6 nsp=-1 mass=400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=60: vxxxxx#6 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=60: vxxxxx#6 nsp=-1 mass=400 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=60: vxxxxx#6 nsp=-1 mass=400 - 0.000000000000000e+00, -7.071067811865476e-01, // itest=60: vxxxxx#6 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=60: vxxxxx#6 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -3.000000000000000e+02, // itest=61: vxxxxx#6 nsp=-1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=61: vxxxxx#6 nsp=-1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=61: vxxxxx#6 nsp=-1 mass=-400 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=61: vxxxxx#6 nsp=-1 mass=-400 - 0.000000000000000e+00, -7.071067811865476e-01, // itest=61: vxxxxx#6 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=61: vxxxxx#6 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -3.000000000000000e+02, // itest=62: sxxxxx#6 nsp=-1 mass=400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=62: sxxxxx#6 nsp=-1 mass=400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=62: sxxxxx#6 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=62: sxxxxx#6 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=62: sxxxxx#6 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=62: sxxxxx#6 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -3.000000000000000e+02, // itest=63: sxxxxx#6 nsp=-1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=63: sxxxxx#6 nsp=-1 mass=-400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=63: sxxxxx#6 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=63: sxxxxx#6 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=63: sxxxxx#6 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=63: sxxxxx#6 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -3.000000000000000e+02, // itest=64: oxxxxx#6 nsp=-1 mass=400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=64: oxxxxx#6 nsp=-1 mass=400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=64: oxxxxx#6 nsp=-1 mass=400 - 1.414213562373095e+01, 0.000000000000000e+00, // itest=64: oxxxxx#6 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=64: oxxxxx#6 nsp=-1 mass=400 - -2.828427124746190e+01, -0.000000000000000e+00 } ); // itest=64: oxxxxx#6 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -3.000000000000000e+02, // itest=65: oxxxxx#6 nsp=-1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=65: oxxxxx#6 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=65: oxxxxx#6 nsp=-1 mass=-400 - -1.414213562373095e+01, -0.000000000000000e+00, // itest=65: oxxxxx#6 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=65: oxxxxx#6 nsp=-1 mass=-400 - -2.828427124746190e+01, -0.000000000000000e+00 } ); // itest=65: oxxxxx#6 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -3.000000000000000e+02, // itest=66: ixxxxx#7 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=66: ixxxxx#7 nsp=-1 mass=400 - -2.828427124746190e+01, -0.000000000000000e+00, // itest=66: ixxxxx#7 nsp=-1 mass=400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=66: ixxxxx#7 nsp=-1 mass=400 - 1.414213562373095e+01, 0.000000000000000e+00, // itest=66: ixxxxx#7 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=66: ixxxxx#7 nsp=-1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -3.000000000000000e+02, // itest=67: ixxxxx#7 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=67: ixxxxx#7 nsp=-1 mass=-400 - -2.828427124746190e+01, -0.000000000000000e+00, // itest=67: ixxxxx#7 nsp=-1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=67: ixxxxx#7 nsp=-1 mass=-400 - -1.414213562373095e+01, -0.000000000000000e+00, // itest=67: ixxxxx#7 nsp=-1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=67: ixxxxx#7 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 3.000000000000000e+02, // itest=68: vxxxxx#7 nsp=-1 mass=400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=68: vxxxxx#7 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=68: vxxxxx#7 nsp=-1 mass=400 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=68: vxxxxx#7 nsp=-1 mass=400 - 0.000000000000000e+00, 7.071067811865476e-01, // itest=68: vxxxxx#7 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=68: vxxxxx#7 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 3.000000000000000e+02, // itest=69: vxxxxx#7 nsp=-1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=69: vxxxxx#7 nsp=-1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=69: vxxxxx#7 nsp=-1 mass=-400 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=69: vxxxxx#7 nsp=-1 mass=-400 - 0.000000000000000e+00, 7.071067811865476e-01, // itest=69: vxxxxx#7 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=69: vxxxxx#7 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 3.000000000000000e+02, // itest=70: sxxxxx#7 nsp=-1 mass=400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=70: sxxxxx#7 nsp=-1 mass=400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=70: sxxxxx#7 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=70: sxxxxx#7 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=70: sxxxxx#7 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=70: sxxxxx#7 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 3.000000000000000e+02, // itest=71: sxxxxx#7 nsp=-1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=71: sxxxxx#7 nsp=-1 mass=-400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=71: sxxxxx#7 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=71: sxxxxx#7 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=71: sxxxxx#7 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=71: sxxxxx#7 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 3.000000000000000e+02, // itest=72: oxxxxx#7 nsp=-1 mass=400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=72: oxxxxx#7 nsp=-1 mass=400 - 1.414213562373095e+01, 0.000000000000000e+00, // itest=72: oxxxxx#7 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=72: oxxxxx#7 nsp=-1 mass=400 - -2.828427124746190e+01, -0.000000000000000e+00, // itest=72: oxxxxx#7 nsp=-1 mass=400 - -0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=72: oxxxxx#7 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 3.000000000000000e+02, // itest=73: oxxxxx#7 nsp=-1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=73: oxxxxx#7 nsp=-1 mass=-400 - -1.414213562373095e+01, -0.000000000000000e+00, // itest=73: oxxxxx#7 nsp=-1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=73: oxxxxx#7 nsp=-1 mass=-400 - -2.828427124746190e+01, -0.000000000000000e+00, // itest=73: oxxxxx#7 nsp=-1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=73: oxxxxx#7 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=74: ixxxxx#8 nsp=-1 mass=400 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=74: ixxxxx#8 nsp=-1 mass=400 - 1.200000000000000e+01, -1.600000000000000e+01, // itest=74: ixxxxx#8 nsp=-1 mass=400 - -2.000000000000000e+01, -0.000000000000000e+00, // itest=74: ixxxxx#8 nsp=-1 mass=400 - -5.999999999999999e+00, 7.999999999999999e+00, // itest=74: ixxxxx#8 nsp=-1 mass=400 - 1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=74: ixxxxx#8 nsp=-1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=75: ixxxxx#8 nsp=-1 mass=-400 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=75: ixxxxx#8 nsp=-1 mass=-400 - 1.200000000000000e+01, -1.600000000000000e+01, // itest=75: ixxxxx#8 nsp=-1 mass=-400 - -2.000000000000000e+01, -0.000000000000000e+00, // itest=75: ixxxxx#8 nsp=-1 mass=-400 - 5.999999999999999e+00, -7.999999999999999e+00, // itest=75: ixxxxx#8 nsp=-1 mass=-400 - -1.000000000000000e+01, -0.000000000000000e+00 } ); // itest=75: ixxxxx#8 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=76: vxxxxx#8 nsp=-1 mass=400 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=76: vxxxxx#8 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=76: vxxxxx#8 nsp=-1 mass=400 - 0.000000000000000e+00, 5.656854249492381e-01, // itest=76: vxxxxx#8 nsp=-1 mass=400 - 0.000000000000000e+00, -4.242640687119285e-01, // itest=76: vxxxxx#8 nsp=-1 mass=400 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=76: vxxxxx#8 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=77: vxxxxx#8 nsp=-1 mass=-400 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=77: vxxxxx#8 nsp=-1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=77: vxxxxx#8 nsp=-1 mass=-400 - -0.000000000000000e+00, 5.656854249492381e-01, // itest=77: vxxxxx#8 nsp=-1 mass=-400 - -0.000000000000000e+00, -4.242640687119285e-01, // itest=77: vxxxxx#8 nsp=-1 mass=-400 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=77: vxxxxx#8 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=78: sxxxxx#8 nsp=-1 mass=400 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=78: sxxxxx#8 nsp=-1 mass=400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=78: sxxxxx#8 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=78: sxxxxx#8 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=78: sxxxxx#8 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=78: sxxxxx#8 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=79: sxxxxx#8 nsp=-1 mass=-400 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=79: sxxxxx#8 nsp=-1 mass=-400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=79: sxxxxx#8 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=79: sxxxxx#8 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=79: sxxxxx#8 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=79: sxxxxx#8 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=80: oxxxxx#8 nsp=-1 mass=400 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=80: oxxxxx#8 nsp=-1 mass=400 - -5.999999999999999e+00, -7.999999999999999e+00, // itest=80: oxxxxx#8 nsp=-1 mass=400 - 1.000000000000000e+01, 0.000000000000000e+00, // itest=80: oxxxxx#8 nsp=-1 mass=400 - 1.200000000000000e+01, 1.600000000000000e+01, // itest=80: oxxxxx#8 nsp=-1 mass=400 - -2.000000000000000e+01, -0.000000000000000e+00 } ); // itest=80: oxxxxx#8 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=81: oxxxxx#8 nsp=-1 mass=-400 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=81: oxxxxx#8 nsp=-1 mass=-400 - 5.999999999999999e+00, 7.999999999999999e+00, // itest=81: oxxxxx#8 nsp=-1 mass=-400 - -1.000000000000000e+01, -0.000000000000000e+00, // itest=81: oxxxxx#8 nsp=-1 mass=-400 - 1.200000000000000e+01, 1.600000000000000e+01, // itest=81: oxxxxx#8 nsp=-1 mass=-400 - -2.000000000000000e+01, -0.000000000000000e+00 } ); // itest=81: oxxxxx#8 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=82: ixxxxx#9 nsp=-1 mass=400 - -2.400000000000000e+02, -1.800000000000000e+02, // itest=82: ixxxxx#9 nsp=-1 mass=400 - -1.600000000000000e+01, 1.200000000000000e+01, // itest=82: ixxxxx#9 nsp=-1 mass=400 - -2.000000000000000e+01, -0.000000000000000e+00, // itest=82: ixxxxx#9 nsp=-1 mass=400 - 7.999999999999999e+00, -5.999999999999999e+00, // itest=82: ixxxxx#9 nsp=-1 mass=400 - 1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=82: ixxxxx#9 nsp=-1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=83: ixxxxx#9 nsp=-1 mass=-400 - -2.400000000000000e+02, -1.800000000000000e+02, // itest=83: ixxxxx#9 nsp=-1 mass=-400 - -1.600000000000000e+01, 1.200000000000000e+01, // itest=83: ixxxxx#9 nsp=-1 mass=-400 - -2.000000000000000e+01, -0.000000000000000e+00, // itest=83: ixxxxx#9 nsp=-1 mass=-400 - -7.999999999999999e+00, 5.999999999999999e+00, // itest=83: ixxxxx#9 nsp=-1 mass=-400 - -1.000000000000000e+01, -0.000000000000000e+00 } ); // itest=83: ixxxxx#9 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=84: vxxxxx#9 nsp=-1 mass=400 - 2.400000000000000e+02, 1.800000000000000e+02, // itest=84: vxxxxx#9 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=84: vxxxxx#9 nsp=-1 mass=400 - 0.000000000000000e+00, -4.242640687119285e-01, // itest=84: vxxxxx#9 nsp=-1 mass=400 - 0.000000000000000e+00, 5.656854249492381e-01, // itest=84: vxxxxx#9 nsp=-1 mass=400 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=84: vxxxxx#9 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=85: vxxxxx#9 nsp=-1 mass=-400 - 2.400000000000000e+02, 1.800000000000000e+02, // itest=85: vxxxxx#9 nsp=-1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=85: vxxxxx#9 nsp=-1 mass=-400 - 0.000000000000000e+00, -4.242640687119285e-01, // itest=85: vxxxxx#9 nsp=-1 mass=-400 - 0.000000000000000e+00, 5.656854249492381e-01, // itest=85: vxxxxx#9 nsp=-1 mass=-400 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=85: vxxxxx#9 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=86: sxxxxx#9 nsp=-1 mass=400 - 2.400000000000000e+02, 1.800000000000000e+02, // itest=86: sxxxxx#9 nsp=-1 mass=400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=86: sxxxxx#9 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=86: sxxxxx#9 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=86: sxxxxx#9 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=86: sxxxxx#9 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=87: sxxxxx#9 nsp=-1 mass=-400 - 2.400000000000000e+02, 1.800000000000000e+02, // itest=87: sxxxxx#9 nsp=-1 mass=-400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=87: sxxxxx#9 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=87: sxxxxx#9 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=87: sxxxxx#9 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=87: sxxxxx#9 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=88: oxxxxx#9 nsp=-1 mass=400 - 2.400000000000000e+02, 1.800000000000000e+02, // itest=88: oxxxxx#9 nsp=-1 mass=400 - 7.999999999999999e+00, 5.999999999999999e+00, // itest=88: oxxxxx#9 nsp=-1 mass=400 - 1.000000000000000e+01, 0.000000000000000e+00, // itest=88: oxxxxx#9 nsp=-1 mass=400 - -1.600000000000000e+01, -1.200000000000000e+01, // itest=88: oxxxxx#9 nsp=-1 mass=400 - -2.000000000000000e+01, -0.000000000000000e+00 } ); // itest=88: oxxxxx#9 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=89: oxxxxx#9 nsp=-1 mass=-400 - 2.400000000000000e+02, 1.800000000000000e+02, // itest=89: oxxxxx#9 nsp=-1 mass=-400 - -7.999999999999999e+00, -5.999999999999999e+00, // itest=89: oxxxxx#9 nsp=-1 mass=-400 - -1.000000000000000e+01, -0.000000000000000e+00, // itest=89: oxxxxx#9 nsp=-1 mass=-400 - -1.600000000000000e+01, -1.200000000000000e+01, // itest=89: oxxxxx#9 nsp=-1 mass=-400 - -2.000000000000000e+01, -0.000000000000000e+00 } ); // itest=89: oxxxxx#9 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 1.440000000000000e+02, // itest=90: ixxxxx#10 nsp=-1 mass=400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=90: ixxxxx#10 nsp=-1 mass=400 - 9.863939238321439e+00, -1.052153518754287e+01, // itest=90: ixxxxx#10 nsp=-1 mass=400 - -2.433105012119288e+01, -0.000000000000000e+00, // itest=90: ixxxxx#10 nsp=-1 mass=400 - -4.931969619160719e+00, 5.260767593771432e+00, // itest=90: ixxxxx#10 nsp=-1 mass=400 - 1.216552506059644e+01, 0.000000000000000e+00 } ); // itest=90: ixxxxx#10 nsp=-1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 1.440000000000000e+02, // itest=91: ixxxxx#10 nsp=-1 mass=-400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=91: ixxxxx#10 nsp=-1 mass=-400 - 9.863939238321439e+00, -1.052153518754287e+01, // itest=91: ixxxxx#10 nsp=-1 mass=-400 - -2.433105012119288e+01, -0.000000000000000e+00, // itest=91: ixxxxx#10 nsp=-1 mass=-400 - 4.931969619160719e+00, -5.260767593771432e+00, // itest=91: ixxxxx#10 nsp=-1 mass=-400 - -1.216552506059644e+01, -0.000000000000000e+00 } ); // itest=91: ixxxxx#10 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -1.440000000000000e+02, // itest=92: vxxxxx#10 nsp=-1 mass=400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=92: vxxxxx#10 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=92: vxxxxx#10 nsp=-1 mass=400 - -2.321373168788980e-01, 5.158607041753289e-01, // itest=92: vxxxxx#10 nsp=-1 mass=400 - -2.476131380041579e-01, -4.836194101643708e-01, // itest=92: vxxxxx#10 nsp=-1 mass=400 - 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=92: vxxxxx#10 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -1.440000000000000e+02, // itest=93: vxxxxx#10 nsp=-1 mass=-400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=93: vxxxxx#10 nsp=-1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=93: vxxxxx#10 nsp=-1 mass=-400 - -2.321373168788980e-01, 5.158607041753289e-01, // itest=93: vxxxxx#10 nsp=-1 mass=-400 - -2.476131380041579e-01, -4.836194101643708e-01, // itest=93: vxxxxx#10 nsp=-1 mass=-400 - 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=93: vxxxxx#10 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -1.440000000000000e+02, // itest=94: sxxxxx#10 nsp=-1 mass=400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=94: sxxxxx#10 nsp=-1 mass=400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=94: sxxxxx#10 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=94: sxxxxx#10 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=94: sxxxxx#10 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=94: sxxxxx#10 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -1.440000000000000e+02, // itest=95: sxxxxx#10 nsp=-1 mass=-400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=95: sxxxxx#10 nsp=-1 mass=-400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=95: sxxxxx#10 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=95: sxxxxx#10 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=95: sxxxxx#10 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=95: sxxxxx#10 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -1.440000000000000e+02, // itest=96: oxxxxx#10 nsp=-1 mass=400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=96: oxxxxx#10 nsp=-1 mass=400 - -4.931969619160719e+00, -5.260767593771432e+00, // itest=96: oxxxxx#10 nsp=-1 mass=400 - 1.216552506059644e+01, 0.000000000000000e+00, // itest=96: oxxxxx#10 nsp=-1 mass=400 - 9.863939238321439e+00, 1.052153518754287e+01, // itest=96: oxxxxx#10 nsp=-1 mass=400 - -2.433105012119288e+01, -0.000000000000000e+00 } ); // itest=96: oxxxxx#10 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -1.440000000000000e+02, // itest=97: oxxxxx#10 nsp=-1 mass=-400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=97: oxxxxx#10 nsp=-1 mass=-400 - 4.931969619160719e+00, 5.260767593771432e+00, // itest=97: oxxxxx#10 nsp=-1 mass=-400 - -1.216552506059644e+01, -0.000000000000000e+00, // itest=97: oxxxxx#10 nsp=-1 mass=-400 - 9.863939238321439e+00, 1.052153518754287e+01, // itest=97: oxxxxx#10 nsp=-1 mass=-400 - -2.433105012119288e+01, -0.000000000000000e+00 } ); // itest=97: oxxxxx#10 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -1.440000000000000e+02, // itest=98: ixxxxx#11 nsp=-1 mass=400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=98: ixxxxx#11 nsp=-1 mass=400 - 1.664100588675688e+01, -1.775040627920733e+01, // itest=98: ixxxxx#11 nsp=-1 mass=400 - -1.442220510185596e+01, -0.000000000000000e+00, // itest=98: ixxxxx#11 nsp=-1 mass=400 - -8.320502943378436e+00, 8.875203139603666e+00, // itest=98: ixxxxx#11 nsp=-1 mass=400 - 7.211102550927978e+00, 0.000000000000000e+00 } ); // itest=98: ixxxxx#11 nsp=-1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -1.440000000000000e+02, // itest=99: ixxxxx#11 nsp=-1 mass=-400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=99: ixxxxx#11 nsp=-1 mass=-400 - 1.664100588675688e+01, -1.775040627920733e+01, // itest=99: ixxxxx#11 nsp=-1 mass=-400 - -1.442220510185596e+01, -0.000000000000000e+00, // itest=99: ixxxxx#11 nsp=-1 mass=-400 - 8.320502943378436e+00, -8.875203139603666e+00, // itest=99: ixxxxx#11 nsp=-1 mass=-400 - -7.211102550927978e+00, -0.000000000000000e+00 } ); // itest=99: ixxxxx#11 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 1.440000000000000e+02, // itest=100: vxxxxx#11 nsp=-1 mass=400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=100: vxxxxx#11 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=100: vxxxxx#11 nsp=-1 mass=400 - 2.321373168788980e-01, 5.158607041753289e-01, // itest=100: vxxxxx#11 nsp=-1 mass=400 - 2.476131380041579e-01, -4.836194101643708e-01, // itest=100: vxxxxx#11 nsp=-1 mass=400 - 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=100: vxxxxx#11 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 1.440000000000000e+02, // itest=101: vxxxxx#11 nsp=-1 mass=-400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=101: vxxxxx#11 nsp=-1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=101: vxxxxx#11 nsp=-1 mass=-400 - 2.321373168788980e-01, 5.158607041753289e-01, // itest=101: vxxxxx#11 nsp=-1 mass=-400 - 2.476131380041579e-01, -4.836194101643708e-01, // itest=101: vxxxxx#11 nsp=-1 mass=-400 - 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=101: vxxxxx#11 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 1.440000000000000e+02, // itest=102: sxxxxx#11 nsp=-1 mass=400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=102: sxxxxx#11 nsp=-1 mass=400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=102: sxxxxx#11 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=102: sxxxxx#11 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=102: sxxxxx#11 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=102: sxxxxx#11 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 1.440000000000000e+02, // itest=103: sxxxxx#11 nsp=-1 mass=-400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=103: sxxxxx#11 nsp=-1 mass=-400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=103: sxxxxx#11 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=103: sxxxxx#11 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=103: sxxxxx#11 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=103: sxxxxx#11 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 1.440000000000000e+02, // itest=104: oxxxxx#11 nsp=-1 mass=400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=104: oxxxxx#11 nsp=-1 mass=400 - -8.320502943378436e+00, -8.875203139603666e+00, // itest=104: oxxxxx#11 nsp=-1 mass=400 - 7.211102550927978e+00, 0.000000000000000e+00, // itest=104: oxxxxx#11 nsp=-1 mass=400 - 1.664100588675688e+01, 1.775040627920733e+01, // itest=104: oxxxxx#11 nsp=-1 mass=400 - -1.442220510185596e+01, -0.000000000000000e+00 } ); // itest=104: oxxxxx#11 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 1.440000000000000e+02, // itest=105: oxxxxx#11 nsp=-1 mass=-400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=105: oxxxxx#11 nsp=-1 mass=-400 - 8.320502943378436e+00, 8.875203139603666e+00, // itest=105: oxxxxx#11 nsp=-1 mass=-400 - -7.211102550927978e+00, -0.000000000000000e+00, // itest=105: oxxxxx#11 nsp=-1 mass=-400 - 1.664100588675688e+01, 1.775040627920733e+01, // itest=105: oxxxxx#11 nsp=-1 mass=-400 - -1.442220510185596e+01, -0.000000000000000e+00 } ); // itest=105: oxxxxx#11 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=106: ixxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=106: ixxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=106: ixxxxx#12 nsp=-1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00, // itest=106: ixxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=106: ixxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=106: ixxxxx#12 nsp=-1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=107: ixxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=107: ixxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=107: ixxxxx#12 nsp=-1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00, // itest=107: ixxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=107: ixxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=107: ixxxxx#12 nsp=-1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=108: ipzxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=108: ipzxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=108: ipzxxx#12 nsp=-1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00, // itest=108: ipzxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=108: ipzxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=108: ipzxxx#12 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=109: vxxxxx#12 nsp=-1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=109: vxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=109: vxxxxx#12 nsp=-1 mass=0 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=109: vxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, -7.071067811865476e-01, // itest=109: vxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=109: vxxxxx#12 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=110: vxxxxx#12 nsp=-1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=110: vxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=110: vxxxxx#12 nsp=-1 mass=0 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=110: vxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, -7.071067811865476e-01, // itest=110: vxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=110: vxxxxx#12 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=111: sxxxxx#12 nsp=-1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=111: sxxxxx#12 nsp=-1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=111: sxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=111: sxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=111: sxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=111: sxxxxx#12 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=112: sxxxxx#12 nsp=-1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=112: sxxxxx#12 nsp=-1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=112: sxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=112: sxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=112: sxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=112: sxxxxx#12 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=113: oxxxxx#12 nsp=-1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=113: oxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=113: oxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=113: oxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=113: oxxxxx#12 nsp=-1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=113: oxxxxx#12 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=114: oxxxxx#12 nsp=-1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=114: oxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=114: oxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=114: oxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=114: oxxxxx#12 nsp=-1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=114: oxxxxx#12 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=115: opzxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=115: opzxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=115: opzxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=115: opzxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=115: opzxxx#12 nsp=-1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=115: opzxxx#12 nsp=-1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=116: ixxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=116: ixxxxx#13 nsp=-1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00, // itest=116: ixxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=116: ixxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=116: ixxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=116: ixxxxx#13 nsp=-1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=117: ixxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=117: ixxxxx#13 nsp=-1 mass=0 - -3.162277660168379e+01, -0.000000000000000e+00, // itest=117: ixxxxx#13 nsp=-1 mass=0 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=117: ixxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=117: ixxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=117: ixxxxx#13 nsp=-1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=118: imzxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=118: imzxxx#13 nsp=-1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00, // itest=118: imzxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=118: imzxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=118: imzxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=118: imzxxx#13 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=119: vxxxxx#13 nsp=-1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=119: vxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=119: vxxxxx#13 nsp=-1 mass=0 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=119: vxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 7.071067811865476e-01, // itest=119: vxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=119: vxxxxx#13 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=120: vxxxxx#13 nsp=-1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=120: vxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=120: vxxxxx#13 nsp=-1 mass=0 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=120: vxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 7.071067811865476e-01, // itest=120: vxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=120: vxxxxx#13 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=121: sxxxxx#13 nsp=-1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=121: sxxxxx#13 nsp=-1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=121: sxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=121: sxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=121: sxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=121: sxxxxx#13 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=122: sxxxxx#13 nsp=-1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=122: sxxxxx#13 nsp=-1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=122: sxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=122: sxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=122: sxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=122: sxxxxx#13 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=123: oxxxxx#13 nsp=-1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=123: oxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=123: oxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=123: oxxxxx#13 nsp=-1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00, // itest=123: oxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=123: oxxxxx#13 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=124: oxxxxx#13 nsp=-1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=124: oxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=124: oxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=124: oxxxxx#13 nsp=-1 mass=0 - -3.162277660168379e+01, -0.000000000000000e+00, // itest=124: oxxxxx#13 nsp=-1 mass=0 - -0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=124: oxxxxx#13 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=125: omzxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=125: omzxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=125: omzxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=125: omzxxx#13 nsp=-1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00, // itest=125: omzxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=125: omzxxx#13 nsp=-1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=126: ixxxxx#14 nsp=-1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=126: ixxxxx#14 nsp=-1 mass=0 - 1.341640786499874e+01, -1.788854381999832e+01, // itest=126: ixxxxx#14 nsp=-1 mass=0 - -2.236067977499790e+01, 0.000000000000000e+00, // itest=126: ixxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=126: ixxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=126: ixxxxx#14 nsp=-1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=127: ixxxxx#14 nsp=-1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=127: ixxxxx#14 nsp=-1 mass=0 - 1.341640786499874e+01, -1.788854381999832e+01, // itest=127: ixxxxx#14 nsp=-1 mass=0 - -2.236067977499790e+01, 0.000000000000000e+00, // itest=127: ixxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=127: ixxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=127: ixxxxx#14 nsp=-1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=128: ixzxxx#14 nsp=-1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=128: ixzxxx#14 nsp=-1 mass=0 - 1.341640786499874e+01, -1.788854381999832e+01, // itest=128: ixzxxx#14 nsp=-1 mass=0 - -2.236067977499790e+01, 0.000000000000000e+00, // itest=128: ixzxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=128: ixzxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=128: ixzxxx#14 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=129: vxxxxx#14 nsp=-1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=129: vxxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=129: vxxxxx#14 nsp=-1 mass=0 - -0.000000000000000e+00, 5.656854249492381e-01, // itest=129: vxxxxx#14 nsp=-1 mass=0 - -0.000000000000000e+00, -4.242640687119285e-01, // itest=129: vxxxxx#14 nsp=-1 mass=0 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=129: vxxxxx#14 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=130: vxxxxx#14 nsp=-1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=130: vxxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=130: vxxxxx#14 nsp=-1 mass=0 - -0.000000000000000e+00, 5.656854249492381e-01, // itest=130: vxxxxx#14 nsp=-1 mass=0 - -0.000000000000000e+00, -4.242640687119285e-01, // itest=130: vxxxxx#14 nsp=-1 mass=0 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=130: vxxxxx#14 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=131: sxxxxx#14 nsp=-1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=131: sxxxxx#14 nsp=-1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=131: sxxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=131: sxxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=131: sxxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=131: sxxxxx#14 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=132: sxxxxx#14 nsp=-1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=132: sxxxxx#14 nsp=-1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=132: sxxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=132: sxxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=132: sxxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=132: sxxxxx#14 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=133: oxxxxx#14 nsp=-1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=133: oxxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=133: oxxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=133: oxxxxx#14 nsp=-1 mass=0 - 1.341640786499874e+01, 1.788854381999832e+01, // itest=133: oxxxxx#14 nsp=-1 mass=0 - -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=133: oxxxxx#14 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=134: oxxxxx#14 nsp=-1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=134: oxxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=134: oxxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=134: oxxxxx#14 nsp=-1 mass=0 - 1.341640786499874e+01, 1.788854381999832e+01, // itest=134: oxxxxx#14 nsp=-1 mass=0 - -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=134: oxxxxx#14 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=135: oxzxxx#14 nsp=-1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=135: oxzxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=135: oxzxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=135: oxzxxx#14 nsp=-1 mass=0 - 1.341640786499874e+01, 1.788854381999832e+01, // itest=135: oxzxxx#14 nsp=-1 mass=0 - -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=135: oxzxxx#14 nsp=-1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=136: ixxxxx#15 nsp=-1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=136: ixxxxx#15 nsp=-1 mass=0 - 6.000000000000000e+00, -8.000000000000000e+00, // itest=136: ixxxxx#15 nsp=-1 mass=0 - -3.000000000000000e+01, 0.000000000000000e+00, // itest=136: ixxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=136: ixxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=136: ixxxxx#15 nsp=-1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=137: ixxxxx#15 nsp=-1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=137: ixxxxx#15 nsp=-1 mass=0 - 6.000000000000000e+00, -8.000000000000000e+00, // itest=137: ixxxxx#15 nsp=-1 mass=0 - -3.000000000000000e+01, 0.000000000000000e+00, // itest=137: ixxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=137: ixxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=137: ixxxxx#15 nsp=-1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=138: ixzxxx#15 nsp=-1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=138: ixzxxx#15 nsp=-1 mass=0 - 6.000000000000000e+00, -8.000000000000000e+00, // itest=138: ixzxxx#15 nsp=-1 mass=0 - -3.000000000000000e+01, 0.000000000000000e+00, // itest=138: ixzxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=138: ixzxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=138: ixzxxx#15 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=139: vxxxxx#15 nsp=-1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=139: vxxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=139: vxxxxx#15 nsp=-1 mass=0 - -3.394112549695428e-01, 5.656854249492381e-01, // itest=139: vxxxxx#15 nsp=-1 mass=0 - -4.525483399593904e-01, -4.242640687119285e-01, // itest=139: vxxxxx#15 nsp=-1 mass=0 - 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=139: vxxxxx#15 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=140: vxxxxx#15 nsp=-1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=140: vxxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=140: vxxxxx#15 nsp=-1 mass=0 - -3.394112549695428e-01, 5.656854249492381e-01, // itest=140: vxxxxx#15 nsp=-1 mass=0 - -4.525483399593904e-01, -4.242640687119285e-01, // itest=140: vxxxxx#15 nsp=-1 mass=0 - 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=140: vxxxxx#15 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=141: sxxxxx#15 nsp=-1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=141: sxxxxx#15 nsp=-1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=141: sxxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=141: sxxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=141: sxxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=141: sxxxxx#15 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=142: sxxxxx#15 nsp=-1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=142: sxxxxx#15 nsp=-1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=142: sxxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=142: sxxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=142: sxxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=142: sxxxxx#15 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=143: oxxxxx#15 nsp=-1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=143: oxxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=143: oxxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=143: oxxxxx#15 nsp=-1 mass=0 - 6.000000000000000e+00, 8.000000000000000e+00, // itest=143: oxxxxx#15 nsp=-1 mass=0 - -3.000000000000000e+01, 0.000000000000000e+00 } ); // itest=143: oxxxxx#15 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=144: oxxxxx#15 nsp=-1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=144: oxxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=144: oxxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=144: oxxxxx#15 nsp=-1 mass=0 - 6.000000000000000e+00, 8.000000000000000e+00, // itest=144: oxxxxx#15 nsp=-1 mass=0 - -3.000000000000000e+01, 0.000000000000000e+00 } ); // itest=144: oxxxxx#15 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=145: oxzxxx#15 nsp=-1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=145: oxzxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=145: oxzxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=145: oxzxxx#15 nsp=-1 mass=0 - 6.000000000000000e+00, 8.000000000000000e+00, // itest=145: oxzxxx#15 nsp=-1 mass=0 - -3.000000000000000e+01, 0.000000000000000e+00 } ); // itest=145: oxzxxx#15 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=146: ixxxxx#0 nsp=1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=146: ixxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=146: ixxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=146: ixxxxx#0 nsp=1 mass=0 - 3.162277660168379e+01, 0.000000000000000e+00, // itest=146: ixxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=146: ixxxxx#0 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=147: ixxxxx#0 nsp=1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=147: ixxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=147: ixxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=147: ixxxxx#0 nsp=1 mass=0 - 3.162277660168379e+01, 0.000000000000000e+00, // itest=147: ixxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=147: ixxxxx#0 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=148: ipzxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=148: ipzxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=148: ipzxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=148: ipzxxx#0 nsp=1 mass=0 - 3.162277660168379e+01, 0.000000000000000e+00, // itest=148: ipzxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=148: ipzxxx#0 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=149: vxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=149: vxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=149: vxxxxx#0 nsp=1 mass=0 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=149: vxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 7.071067811865476e-01, // itest=149: vxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=149: vxxxxx#0 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=150: vxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=150: vxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=150: vxxxxx#0 nsp=1 mass=0 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=150: vxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 7.071067811865476e-01, // itest=150: vxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=150: vxxxxx#0 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=151: sxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=151: sxxxxx#0 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=151: sxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=151: sxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=151: sxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=151: sxxxxx#0 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=152: sxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=152: sxxxxx#0 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=152: sxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=152: sxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=152: sxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=152: sxxxxx#0 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=153: oxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=153: oxxxxx#0 nsp=1 mass=0 - 3.162277660168379e+01, 0.000000000000000e+00, // itest=153: oxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=153: oxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=153: oxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=153: oxxxxx#0 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=154: oxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=154: oxxxxx#0 nsp=1 mass=0 - 3.162277660168379e+01, 0.000000000000000e+00, // itest=154: oxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=154: oxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=154: oxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=154: oxxxxx#0 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=155: opzxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=155: opzxxx#0 nsp=1 mass=0 - 3.162277660168379e+01, 0.000000000000000e+00, // itest=155: opzxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=155: opzxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=155: opzxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=155: opzxxx#0 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=156: ixxxxx#1 nsp=1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=156: ixxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=156: ixxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=156: ixxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=156: ixxxxx#1 nsp=1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=156: ixxxxx#1 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=157: ixxxxx#1 nsp=1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=157: ixxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=157: ixxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=157: ixxxxx#1 nsp=1 mass=0 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=157: ixxxxx#1 nsp=1 mass=0 - -3.162277660168379e+01, -0.000000000000000e+00 } ); // itest=157: ixxxxx#1 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=158: imzxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=158: imzxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=158: imzxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=158: imzxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=158: imzxxx#1 nsp=1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=158: imzxxx#1 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=159: vxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=159: vxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=159: vxxxxx#1 nsp=1 mass=0 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=159: vxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, -7.071067811865476e-01, // itest=159: vxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=159: vxxxxx#1 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=160: vxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=160: vxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=160: vxxxxx#1 nsp=1 mass=0 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=160: vxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, -7.071067811865476e-01, // itest=160: vxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=160: vxxxxx#1 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=161: sxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=161: sxxxxx#1 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=161: sxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=161: sxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=161: sxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=161: sxxxxx#1 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=162: sxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=162: sxxxxx#1 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=162: sxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=162: sxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=162: sxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=162: sxxxxx#1 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=163: oxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=163: oxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=163: oxxxxx#1 nsp=1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00, // itest=163: oxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=163: oxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=163: oxxxxx#1 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=164: oxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=164: oxxxxx#1 nsp=1 mass=0 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=164: oxxxxx#1 nsp=1 mass=0 - -3.162277660168379e+01, -0.000000000000000e+00, // itest=164: oxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=164: oxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=164: oxxxxx#1 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=165: omzxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=165: omzxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=165: omzxxx#1 nsp=1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00, // itest=165: omzxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=165: omzxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=165: omzxxx#1 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=166: ixxxxx#2 nsp=1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=166: ixxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=166: ixxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=166: ixxxxx#2 nsp=1 mass=0 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=166: ixxxxx#2 nsp=1 mass=0 - 1.341640786499874e+01, 1.788854381999832e+01 } ); // itest=166: ixxxxx#2 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=167: ixxxxx#2 nsp=1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=167: ixxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=167: ixxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=167: ixxxxx#2 nsp=1 mass=0 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=167: ixxxxx#2 nsp=1 mass=0 - 1.341640786499874e+01, 1.788854381999832e+01 } ); // itest=167: ixxxxx#2 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=168: ixzxxx#2 nsp=1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=168: ixzxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=168: ixzxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=168: ixzxxx#2 nsp=1 mass=0 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=168: ixzxxx#2 nsp=1 mass=0 - 1.341640786499874e+01, 1.788854381999832e+01 } ); // itest=168: ixzxxx#2 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=169: vxxxxx#2 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=169: vxxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=169: vxxxxx#2 nsp=1 mass=0 - -0.000000000000000e+00, -5.656854249492381e-01, // itest=169: vxxxxx#2 nsp=1 mass=0 - -0.000000000000000e+00, 4.242640687119285e-01, // itest=169: vxxxxx#2 nsp=1 mass=0 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=169: vxxxxx#2 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=170: vxxxxx#2 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=170: vxxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=170: vxxxxx#2 nsp=1 mass=0 - -0.000000000000000e+00, -5.656854249492381e-01, // itest=170: vxxxxx#2 nsp=1 mass=0 - -0.000000000000000e+00, 4.242640687119285e-01, // itest=170: vxxxxx#2 nsp=1 mass=0 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=170: vxxxxx#2 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=171: sxxxxx#2 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=171: sxxxxx#2 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=171: sxxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=171: sxxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=171: sxxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=171: sxxxxx#2 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=172: sxxxxx#2 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=172: sxxxxx#2 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=172: sxxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=172: sxxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=172: sxxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=172: sxxxxx#2 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=173: oxxxxx#2 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=173: oxxxxx#2 nsp=1 mass=0 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=173: oxxxxx#2 nsp=1 mass=0 - 1.341640786499874e+01, -1.788854381999832e+01, // itest=173: oxxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=173: oxxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=173: oxxxxx#2 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=174: oxxxxx#2 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=174: oxxxxx#2 nsp=1 mass=0 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=174: oxxxxx#2 nsp=1 mass=0 - 1.341640786499874e+01, -1.788854381999832e+01, // itest=174: oxxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=174: oxxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=174: oxxxxx#2 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=175: oxzxxx#2 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=175: oxzxxx#2 nsp=1 mass=0 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=175: oxzxxx#2 nsp=1 mass=0 - 1.341640786499874e+01, -1.788854381999832e+01, // itest=175: oxzxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=175: oxzxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=175: oxzxxx#2 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=176: ixxxxx#3 nsp=1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=176: ixxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=176: ixxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=176: ixxxxx#3 nsp=1 mass=0 - 3.000000000000000e+01, 0.000000000000000e+00, // itest=176: ixxxxx#3 nsp=1 mass=0 - 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=176: ixxxxx#3 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=177: ixxxxx#3 nsp=1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=177: ixxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=177: ixxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=177: ixxxxx#3 nsp=1 mass=0 - 3.000000000000000e+01, 0.000000000000000e+00, // itest=177: ixxxxx#3 nsp=1 mass=0 - 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=177: ixxxxx#3 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=178: ixzxxx#3 nsp=1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=178: ixzxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=178: ixzxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=178: ixzxxx#3 nsp=1 mass=0 - 3.000000000000000e+01, 0.000000000000000e+00, // itest=178: ixzxxx#3 nsp=1 mass=0 - 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=178: ixzxxx#3 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=179: vxxxxx#3 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=179: vxxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=179: vxxxxx#3 nsp=1 mass=0 - -3.394112549695428e-01, -5.656854249492381e-01, // itest=179: vxxxxx#3 nsp=1 mass=0 - -4.525483399593904e-01, 4.242640687119285e-01, // itest=179: vxxxxx#3 nsp=1 mass=0 - 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=179: vxxxxx#3 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=180: vxxxxx#3 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=180: vxxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=180: vxxxxx#3 nsp=1 mass=0 - -3.394112549695428e-01, -5.656854249492381e-01, // itest=180: vxxxxx#3 nsp=1 mass=0 - -4.525483399593904e-01, 4.242640687119285e-01, // itest=180: vxxxxx#3 nsp=1 mass=0 - 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=180: vxxxxx#3 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=181: sxxxxx#3 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=181: sxxxxx#3 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=181: sxxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=181: sxxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=181: sxxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=181: sxxxxx#3 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=182: sxxxxx#3 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=182: sxxxxx#3 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=182: sxxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=182: sxxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=182: sxxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=182: sxxxxx#3 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=183: oxxxxx#3 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=183: oxxxxx#3 nsp=1 mass=0 - 3.000000000000000e+01, 0.000000000000000e+00, // itest=183: oxxxxx#3 nsp=1 mass=0 - 6.000000000000000e+00, -8.000000000000000e+00, // itest=183: oxxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=183: oxxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=183: oxxxxx#3 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=184: oxxxxx#3 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=184: oxxxxx#3 nsp=1 mass=0 - 3.000000000000000e+01, 0.000000000000000e+00, // itest=184: oxxxxx#3 nsp=1 mass=0 - 6.000000000000000e+00, -8.000000000000000e+00, // itest=184: oxxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=184: oxxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=184: oxxxxx#3 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=185: oxzxxx#3 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=185: oxzxxx#3 nsp=1 mass=0 - 3.000000000000000e+01, 0.000000000000000e+00, // itest=185: oxzxxx#3 nsp=1 mass=0 - 6.000000000000000e+00, -8.000000000000000e+00, // itest=185: oxzxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=185: oxzxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=185: oxzxxx#3 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 4.000000000000000e+02, // itest=186: ixxxxx#4 nsp=1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=186: ixxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=186: ixxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=186: ixxxxx#4 nsp=1 mass=0 - 1.000000000000000e+01, 0.000000000000000e+00, // itest=186: ixxxxx#4 nsp=1 mass=0 - 1.800000000000000e+01, 2.400000000000000e+01 } ); // itest=186: ixxxxx#4 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 4.000000000000000e+02, // itest=187: ixxxxx#4 nsp=1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=187: ixxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=187: ixxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=187: ixxxxx#4 nsp=1 mass=0 - 1.000000000000000e+01, 0.000000000000000e+00, // itest=187: ixxxxx#4 nsp=1 mass=0 - 1.800000000000000e+01, 2.400000000000000e+01 } ); // itest=187: ixxxxx#4 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 4.000000000000000e+02, // itest=188: ixzxxx#4 nsp=1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=188: ixzxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=188: ixzxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=188: ixzxxx#4 nsp=1 mass=0 - 1.000000000000000e+01, 0.000000000000000e+00, // itest=188: ixzxxx#4 nsp=1 mass=0 - 1.800000000000000e+01, 2.400000000000000e+01 } ); // itest=188: ixzxxx#4 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -4.000000000000000e+02, // itest=189: vxxxxx#4 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=189: vxxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=189: vxxxxx#4 nsp=1 mass=0 - 3.394112549695428e-01, -5.656854249492381e-01, // itest=189: vxxxxx#4 nsp=1 mass=0 - 4.525483399593904e-01, 4.242640687119285e-01, // itest=189: vxxxxx#4 nsp=1 mass=0 - 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=189: vxxxxx#4 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -4.000000000000000e+02, // itest=190: vxxxxx#4 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=190: vxxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=190: vxxxxx#4 nsp=1 mass=0 - 3.394112549695428e-01, -5.656854249492381e-01, // itest=190: vxxxxx#4 nsp=1 mass=0 - 4.525483399593904e-01, 4.242640687119285e-01, // itest=190: vxxxxx#4 nsp=1 mass=0 - 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=190: vxxxxx#4 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -4.000000000000000e+02, // itest=191: sxxxxx#4 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=191: sxxxxx#4 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=191: sxxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=191: sxxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=191: sxxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=191: sxxxxx#4 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -4.000000000000000e+02, // itest=192: sxxxxx#4 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=192: sxxxxx#4 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=192: sxxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=192: sxxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=192: sxxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=192: sxxxxx#4 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -4.000000000000000e+02, // itest=193: oxxxxx#4 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=193: oxxxxx#4 nsp=1 mass=0 - 1.000000000000000e+01, 0.000000000000000e+00, // itest=193: oxxxxx#4 nsp=1 mass=0 - 1.800000000000000e+01, -2.400000000000000e+01, // itest=193: oxxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=193: oxxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=193: oxxxxx#4 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -4.000000000000000e+02, // itest=194: oxxxxx#4 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=194: oxxxxx#4 nsp=1 mass=0 - 1.000000000000000e+01, 0.000000000000000e+00, // itest=194: oxxxxx#4 nsp=1 mass=0 - 1.800000000000000e+01, -2.400000000000000e+01, // itest=194: oxxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=194: oxxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=194: oxxxxx#4 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -4.000000000000000e+02, // itest=195: oxzxxx#4 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=195: oxzxxx#4 nsp=1 mass=0 - 1.000000000000000e+01, 0.000000000000000e+00, // itest=195: oxzxxx#4 nsp=1 mass=0 - 1.800000000000000e+01, -2.400000000000000e+01, // itest=195: oxzxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=195: oxzxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=195: oxzxxx#4 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=196: ixxxxx#5 nsp=1 mass=500 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=196: ixxxxx#5 nsp=1 mass=500 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=196: ixxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=196: ixxxxx#5 nsp=1 mass=500 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=196: ixxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=196: ixxxxx#5 nsp=1 mass=500 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=197: ixxxxx#5 nsp=1 mass=-500 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=197: ixxxxx#5 nsp=1 mass=-500 - -2.236067977499790e+01, 0.000000000000000e+00, // itest=197: ixxxxx#5 nsp=1 mass=-500 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=197: ixxxxx#5 nsp=1 mass=-500 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=197: ixxxxx#5 nsp=1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=197: ixxxxx#5 nsp=1 mass=-500 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=198: vxxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=198: vxxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=198: vxxxxx#5 nsp=1 mass=500 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=198: vxxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 7.071067811865476e-01, // itest=198: vxxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=198: vxxxxx#5 nsp=1 mass=500 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=199: vxxxxx#5 nsp=1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=199: vxxxxx#5 nsp=1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=199: vxxxxx#5 nsp=1 mass=-500 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=199: vxxxxx#5 nsp=1 mass=-500 - 0.000000000000000e+00, 7.071067811865476e-01, // itest=199: vxxxxx#5 nsp=1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=199: vxxxxx#5 nsp=1 mass=-500 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=200: sxxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=200: sxxxxx#5 nsp=1 mass=500 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=200: sxxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=200: sxxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=200: sxxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=200: sxxxxx#5 nsp=1 mass=500 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=201: sxxxxx#5 nsp=1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=201: sxxxxx#5 nsp=1 mass=-500 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=201: sxxxxx#5 nsp=1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=201: sxxxxx#5 nsp=1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=201: sxxxxx#5 nsp=1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=201: sxxxxx#5 nsp=1 mass=-500 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=202: oxxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=202: oxxxxx#5 nsp=1 mass=500 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=202: oxxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=202: oxxxxx#5 nsp=1 mass=500 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=202: oxxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=202: oxxxxx#5 nsp=1 mass=500 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=203: oxxxxx#5 nsp=1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=203: oxxxxx#5 nsp=1 mass=-500 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=203: oxxxxx#5 nsp=1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=203: oxxxxx#5 nsp=1 mass=-500 - -2.236067977499790e+01, 0.000000000000000e+00, // itest=203: oxxxxx#5 nsp=1 mass=-500 - -0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=203: oxxxxx#5 nsp=1 mass=-500 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -3.000000000000000e+02, // itest=204: ixxxxx#6 nsp=1 mass=400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=204: ixxxxx#6 nsp=1 mass=400 - 1.414213562373095e+01, 0.000000000000000e+00, // itest=204: ixxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=204: ixxxxx#6 nsp=1 mass=400 - 2.828427124746190e+01, 0.000000000000000e+00, // itest=204: ixxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=204: ixxxxx#6 nsp=1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -3.000000000000000e+02, // itest=205: ixxxxx#6 nsp=1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=205: ixxxxx#6 nsp=1 mass=-400 - -1.414213562373095e+01, -0.000000000000000e+00, // itest=205: ixxxxx#6 nsp=1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=205: ixxxxx#6 nsp=1 mass=-400 - 2.828427124746190e+01, 0.000000000000000e+00, // itest=205: ixxxxx#6 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=205: ixxxxx#6 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 3.000000000000000e+02, // itest=206: vxxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=206: vxxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=206: vxxxxx#6 nsp=1 mass=400 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=206: vxxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, 7.071067811865476e-01, // itest=206: vxxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=206: vxxxxx#6 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 3.000000000000000e+02, // itest=207: vxxxxx#6 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=207: vxxxxx#6 nsp=1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=207: vxxxxx#6 nsp=1 mass=-400 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=207: vxxxxx#6 nsp=1 mass=-400 - 0.000000000000000e+00, 7.071067811865476e-01, // itest=207: vxxxxx#6 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=207: vxxxxx#6 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 3.000000000000000e+02, // itest=208: sxxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=208: sxxxxx#6 nsp=1 mass=400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=208: sxxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=208: sxxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=208: sxxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=208: sxxxxx#6 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 3.000000000000000e+02, // itest=209: sxxxxx#6 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=209: sxxxxx#6 nsp=1 mass=-400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=209: sxxxxx#6 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=209: sxxxxx#6 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=209: sxxxxx#6 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=209: sxxxxx#6 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 3.000000000000000e+02, // itest=210: oxxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=210: oxxxxx#6 nsp=1 mass=400 - 2.828427124746190e+01, 0.000000000000000e+00, // itest=210: oxxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=210: oxxxxx#6 nsp=1 mass=400 - 1.414213562373095e+01, 0.000000000000000e+00, // itest=210: oxxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=210: oxxxxx#6 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 3.000000000000000e+02, // itest=211: oxxxxx#6 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=211: oxxxxx#6 nsp=1 mass=-400 - 2.828427124746190e+01, 0.000000000000000e+00, // itest=211: oxxxxx#6 nsp=1 mass=-400 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=211: oxxxxx#6 nsp=1 mass=-400 - -1.414213562373095e+01, -0.000000000000000e+00, // itest=211: oxxxxx#6 nsp=1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=211: oxxxxx#6 nsp=1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 3.000000000000000e+02, // itest=212: ixxxxx#7 nsp=1 mass=400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=212: ixxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=212: ixxxxx#7 nsp=1 mass=400 - -1.414213562373095e+01, 0.000000000000000e+00, // itest=212: ixxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=212: ixxxxx#7 nsp=1 mass=400 - -2.828427124746190e+01, 0.000000000000000e+00 } ); // itest=212: ixxxxx#7 nsp=1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 3.000000000000000e+02, // itest=213: ixxxxx#7 nsp=1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=213: ixxxxx#7 nsp=1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=213: ixxxxx#7 nsp=1 mass=-400 - 1.414213562373095e+01, -0.000000000000000e+00, // itest=213: ixxxxx#7 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=213: ixxxxx#7 nsp=1 mass=-400 - -2.828427124746190e+01, 0.000000000000000e+00 } ); // itest=213: ixxxxx#7 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -3.000000000000000e+02, // itest=214: vxxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=214: vxxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=214: vxxxxx#7 nsp=1 mass=400 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=214: vxxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, -7.071067811865476e-01, // itest=214: vxxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=214: vxxxxx#7 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -3.000000000000000e+02, // itest=215: vxxxxx#7 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=215: vxxxxx#7 nsp=1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=215: vxxxxx#7 nsp=1 mass=-400 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=215: vxxxxx#7 nsp=1 mass=-400 - 0.000000000000000e+00, -7.071067811865476e-01, // itest=215: vxxxxx#7 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=215: vxxxxx#7 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -3.000000000000000e+02, // itest=216: sxxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=216: sxxxxx#7 nsp=1 mass=400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=216: sxxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=216: sxxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=216: sxxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=216: sxxxxx#7 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -3.000000000000000e+02, // itest=217: sxxxxx#7 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=217: sxxxxx#7 nsp=1 mass=-400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=217: sxxxxx#7 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=217: sxxxxx#7 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=217: sxxxxx#7 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=217: sxxxxx#7 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -3.000000000000000e+02, // itest=218: oxxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=218: oxxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=218: oxxxxx#7 nsp=1 mass=400 - -2.828427124746190e+01, 0.000000000000000e+00, // itest=218: oxxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=218: oxxxxx#7 nsp=1 mass=400 - -1.414213562373095e+01, 0.000000000000000e+00 } ); // itest=218: oxxxxx#7 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -3.000000000000000e+02, // itest=219: oxxxxx#7 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=219: oxxxxx#7 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=219: oxxxxx#7 nsp=1 mass=-400 - -2.828427124746190e+01, 0.000000000000000e+00, // itest=219: oxxxxx#7 nsp=1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=219: oxxxxx#7 nsp=1 mass=-400 - 1.414213562373095e+01, -0.000000000000000e+00 } ); // itest=219: oxxxxx#7 nsp=1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=220: ixxxxx#8 nsp=1 mass=400 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=220: ixxxxx#8 nsp=1 mass=400 - 1.000000000000000e+01, 0.000000000000000e+00, // itest=220: ixxxxx#8 nsp=1 mass=400 - 5.999999999999999e+00, 7.999999999999999e+00, // itest=220: ixxxxx#8 nsp=1 mass=400 - 2.000000000000000e+01, 0.000000000000000e+00, // itest=220: ixxxxx#8 nsp=1 mass=400 - 1.200000000000000e+01, 1.600000000000000e+01 } ); // itest=220: ixxxxx#8 nsp=1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=221: ixxxxx#8 nsp=1 mass=-400 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=221: ixxxxx#8 nsp=1 mass=-400 - -1.000000000000000e+01, -0.000000000000000e+00, // itest=221: ixxxxx#8 nsp=1 mass=-400 - -5.999999999999999e+00, -7.999999999999999e+00, // itest=221: ixxxxx#8 nsp=1 mass=-400 - 2.000000000000000e+01, 0.000000000000000e+00, // itest=221: ixxxxx#8 nsp=1 mass=-400 - 1.200000000000000e+01, 1.600000000000000e+01 } ); // itest=221: ixxxxx#8 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=222: vxxxxx#8 nsp=1 mass=400 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=222: vxxxxx#8 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=222: vxxxxx#8 nsp=1 mass=400 - 0.000000000000000e+00, -5.656854249492381e-01, // itest=222: vxxxxx#8 nsp=1 mass=400 - 0.000000000000000e+00, 4.242640687119285e-01, // itest=222: vxxxxx#8 nsp=1 mass=400 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=222: vxxxxx#8 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=223: vxxxxx#8 nsp=1 mass=-400 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=223: vxxxxx#8 nsp=1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=223: vxxxxx#8 nsp=1 mass=-400 - -0.000000000000000e+00, -5.656854249492381e-01, // itest=223: vxxxxx#8 nsp=1 mass=-400 - -0.000000000000000e+00, 4.242640687119285e-01, // itest=223: vxxxxx#8 nsp=1 mass=-400 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=223: vxxxxx#8 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=224: sxxxxx#8 nsp=1 mass=400 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=224: sxxxxx#8 nsp=1 mass=400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=224: sxxxxx#8 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=224: sxxxxx#8 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=224: sxxxxx#8 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=224: sxxxxx#8 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=225: sxxxxx#8 nsp=1 mass=-400 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=225: sxxxxx#8 nsp=1 mass=-400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=225: sxxxxx#8 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=225: sxxxxx#8 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=225: sxxxxx#8 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=225: sxxxxx#8 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=226: oxxxxx#8 nsp=1 mass=400 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=226: oxxxxx#8 nsp=1 mass=400 - 2.000000000000000e+01, 0.000000000000000e+00, // itest=226: oxxxxx#8 nsp=1 mass=400 - 1.200000000000000e+01, -1.600000000000000e+01, // itest=226: oxxxxx#8 nsp=1 mass=400 - 1.000000000000000e+01, 0.000000000000000e+00, // itest=226: oxxxxx#8 nsp=1 mass=400 - 5.999999999999999e+00, -7.999999999999999e+00 } ); // itest=226: oxxxxx#8 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=227: oxxxxx#8 nsp=1 mass=-400 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=227: oxxxxx#8 nsp=1 mass=-400 - 2.000000000000000e+01, 0.000000000000000e+00, // itest=227: oxxxxx#8 nsp=1 mass=-400 - 1.200000000000000e+01, -1.600000000000000e+01, // itest=227: oxxxxx#8 nsp=1 mass=-400 - -1.000000000000000e+01, -0.000000000000000e+00, // itest=227: oxxxxx#8 nsp=1 mass=-400 - -5.999999999999999e+00, 7.999999999999999e+00 } ); // itest=227: oxxxxx#8 nsp=1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=228: ixxxxx#9 nsp=1 mass=400 - 2.400000000000000e+02, 1.800000000000000e+02, // itest=228: ixxxxx#9 nsp=1 mass=400 - 1.000000000000000e+01, 0.000000000000000e+00, // itest=228: ixxxxx#9 nsp=1 mass=400 - -7.999999999999999e+00, -5.999999999999999e+00, // itest=228: ixxxxx#9 nsp=1 mass=400 - 2.000000000000000e+01, 0.000000000000000e+00, // itest=228: ixxxxx#9 nsp=1 mass=400 - -1.600000000000000e+01, -1.200000000000000e+01 } ); // itest=228: ixxxxx#9 nsp=1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=229: ixxxxx#9 nsp=1 mass=-400 - 2.400000000000000e+02, 1.800000000000000e+02, // itest=229: ixxxxx#9 nsp=1 mass=-400 - -1.000000000000000e+01, -0.000000000000000e+00, // itest=229: ixxxxx#9 nsp=1 mass=-400 - 7.999999999999999e+00, 5.999999999999999e+00, // itest=229: ixxxxx#9 nsp=1 mass=-400 - 2.000000000000000e+01, 0.000000000000000e+00, // itest=229: ixxxxx#9 nsp=1 mass=-400 - -1.600000000000000e+01, -1.200000000000000e+01 } ); // itest=229: ixxxxx#9 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=230: vxxxxx#9 nsp=1 mass=400 - -2.400000000000000e+02, -1.800000000000000e+02, // itest=230: vxxxxx#9 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=230: vxxxxx#9 nsp=1 mass=400 - 0.000000000000000e+00, 4.242640687119285e-01, // itest=230: vxxxxx#9 nsp=1 mass=400 - 0.000000000000000e+00, -5.656854249492381e-01, // itest=230: vxxxxx#9 nsp=1 mass=400 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=230: vxxxxx#9 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=231: vxxxxx#9 nsp=1 mass=-400 - -2.400000000000000e+02, -1.800000000000000e+02, // itest=231: vxxxxx#9 nsp=1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=231: vxxxxx#9 nsp=1 mass=-400 - 0.000000000000000e+00, 4.242640687119285e-01, // itest=231: vxxxxx#9 nsp=1 mass=-400 - 0.000000000000000e+00, -5.656854249492381e-01, // itest=231: vxxxxx#9 nsp=1 mass=-400 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=231: vxxxxx#9 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=232: sxxxxx#9 nsp=1 mass=400 - -2.400000000000000e+02, -1.800000000000000e+02, // itest=232: sxxxxx#9 nsp=1 mass=400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=232: sxxxxx#9 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=232: sxxxxx#9 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=232: sxxxxx#9 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=232: sxxxxx#9 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=233: sxxxxx#9 nsp=1 mass=-400 - -2.400000000000000e+02, -1.800000000000000e+02, // itest=233: sxxxxx#9 nsp=1 mass=-400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=233: sxxxxx#9 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=233: sxxxxx#9 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=233: sxxxxx#9 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=233: sxxxxx#9 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=234: oxxxxx#9 nsp=1 mass=400 - -2.400000000000000e+02, -1.800000000000000e+02, // itest=234: oxxxxx#9 nsp=1 mass=400 - 2.000000000000000e+01, 0.000000000000000e+00, // itest=234: oxxxxx#9 nsp=1 mass=400 - -1.600000000000000e+01, 1.200000000000000e+01, // itest=234: oxxxxx#9 nsp=1 mass=400 - 1.000000000000000e+01, 0.000000000000000e+00, // itest=234: oxxxxx#9 nsp=1 mass=400 - -7.999999999999999e+00, 5.999999999999999e+00 } ); // itest=234: oxxxxx#9 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=235: oxxxxx#9 nsp=1 mass=-400 - -2.400000000000000e+02, -1.800000000000000e+02, // itest=235: oxxxxx#9 nsp=1 mass=-400 - 2.000000000000000e+01, 0.000000000000000e+00, // itest=235: oxxxxx#9 nsp=1 mass=-400 - -1.600000000000000e+01, 1.200000000000000e+01, // itest=235: oxxxxx#9 nsp=1 mass=-400 - -1.000000000000000e+01, -0.000000000000000e+00, // itest=235: oxxxxx#9 nsp=1 mass=-400 - 7.999999999999999e+00, -5.999999999999999e+00 } ); // itest=235: oxxxxx#9 nsp=1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -1.440000000000000e+02, // itest=236: ixxxxx#10 nsp=1 mass=400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=236: ixxxxx#10 nsp=1 mass=400 - 1.216552506059644e+01, 0.000000000000000e+00, // itest=236: ixxxxx#10 nsp=1 mass=400 - 4.931969619160719e+00, 5.260767593771432e+00, // itest=236: ixxxxx#10 nsp=1 mass=400 - 2.433105012119288e+01, 0.000000000000000e+00, // itest=236: ixxxxx#10 nsp=1 mass=400 - 9.863939238321439e+00, 1.052153518754287e+01 } ); // itest=236: ixxxxx#10 nsp=1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -1.440000000000000e+02, // itest=237: ixxxxx#10 nsp=1 mass=-400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=237: ixxxxx#10 nsp=1 mass=-400 - -1.216552506059644e+01, -0.000000000000000e+00, // itest=237: ixxxxx#10 nsp=1 mass=-400 - -4.931969619160719e+00, -5.260767593771432e+00, // itest=237: ixxxxx#10 nsp=1 mass=-400 - 2.433105012119288e+01, 0.000000000000000e+00, // itest=237: ixxxxx#10 nsp=1 mass=-400 - 9.863939238321439e+00, 1.052153518754287e+01 } ); // itest=237: ixxxxx#10 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 1.440000000000000e+02, // itest=238: vxxxxx#10 nsp=1 mass=400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=238: vxxxxx#10 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=238: vxxxxx#10 nsp=1 mass=400 - -2.321373168788980e-01, -5.158607041753289e-01, // itest=238: vxxxxx#10 nsp=1 mass=400 - -2.476131380041579e-01, 4.836194101643708e-01, // itest=238: vxxxxx#10 nsp=1 mass=400 - 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=238: vxxxxx#10 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 1.440000000000000e+02, // itest=239: vxxxxx#10 nsp=1 mass=-400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=239: vxxxxx#10 nsp=1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=239: vxxxxx#10 nsp=1 mass=-400 - -2.321373168788980e-01, -5.158607041753289e-01, // itest=239: vxxxxx#10 nsp=1 mass=-400 - -2.476131380041579e-01, 4.836194101643708e-01, // itest=239: vxxxxx#10 nsp=1 mass=-400 - 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=239: vxxxxx#10 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 1.440000000000000e+02, // itest=240: sxxxxx#10 nsp=1 mass=400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=240: sxxxxx#10 nsp=1 mass=400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=240: sxxxxx#10 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=240: sxxxxx#10 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=240: sxxxxx#10 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=240: sxxxxx#10 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 1.440000000000000e+02, // itest=241: sxxxxx#10 nsp=1 mass=-400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=241: sxxxxx#10 nsp=1 mass=-400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=241: sxxxxx#10 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=241: sxxxxx#10 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=241: sxxxxx#10 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=241: sxxxxx#10 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 1.440000000000000e+02, // itest=242: oxxxxx#10 nsp=1 mass=400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=242: oxxxxx#10 nsp=1 mass=400 - 2.433105012119288e+01, 0.000000000000000e+00, // itest=242: oxxxxx#10 nsp=1 mass=400 - 9.863939238321439e+00, -1.052153518754287e+01, // itest=242: oxxxxx#10 nsp=1 mass=400 - 1.216552506059644e+01, 0.000000000000000e+00, // itest=242: oxxxxx#10 nsp=1 mass=400 - 4.931969619160719e+00, -5.260767593771432e+00 } ); // itest=242: oxxxxx#10 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 1.440000000000000e+02, // itest=243: oxxxxx#10 nsp=1 mass=-400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=243: oxxxxx#10 nsp=1 mass=-400 - 2.433105012119288e+01, 0.000000000000000e+00, // itest=243: oxxxxx#10 nsp=1 mass=-400 - 9.863939238321439e+00, -1.052153518754287e+01, // itest=243: oxxxxx#10 nsp=1 mass=-400 - -1.216552506059644e+01, -0.000000000000000e+00, // itest=243: oxxxxx#10 nsp=1 mass=-400 - -4.931969619160719e+00, 5.260767593771432e+00 } ); // itest=243: oxxxxx#10 nsp=1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 1.440000000000000e+02, // itest=244: ixxxxx#11 nsp=1 mass=400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=244: ixxxxx#11 nsp=1 mass=400 - 7.211102550927978e+00, 0.000000000000000e+00, // itest=244: ixxxxx#11 nsp=1 mass=400 - 8.320502943378436e+00, 8.875203139603666e+00, // itest=244: ixxxxx#11 nsp=1 mass=400 - 1.442220510185596e+01, 0.000000000000000e+00, // itest=244: ixxxxx#11 nsp=1 mass=400 - 1.664100588675688e+01, 1.775040627920733e+01 } ); // itest=244: ixxxxx#11 nsp=1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 1.440000000000000e+02, // itest=245: ixxxxx#11 nsp=1 mass=-400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=245: ixxxxx#11 nsp=1 mass=-400 - -7.211102550927978e+00, -0.000000000000000e+00, // itest=245: ixxxxx#11 nsp=1 mass=-400 - -8.320502943378436e+00, -8.875203139603666e+00, // itest=245: ixxxxx#11 nsp=1 mass=-400 - 1.442220510185596e+01, 0.000000000000000e+00, // itest=245: ixxxxx#11 nsp=1 mass=-400 - 1.664100588675688e+01, 1.775040627920733e+01 } ); // itest=245: ixxxxx#11 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -1.440000000000000e+02, // itest=246: vxxxxx#11 nsp=1 mass=400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=246: vxxxxx#11 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=246: vxxxxx#11 nsp=1 mass=400 - 2.321373168788980e-01, -5.158607041753289e-01, // itest=246: vxxxxx#11 nsp=1 mass=400 - 2.476131380041579e-01, 4.836194101643708e-01, // itest=246: vxxxxx#11 nsp=1 mass=400 - 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=246: vxxxxx#11 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -1.440000000000000e+02, // itest=247: vxxxxx#11 nsp=1 mass=-400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=247: vxxxxx#11 nsp=1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=247: vxxxxx#11 nsp=1 mass=-400 - 2.321373168788980e-01, -5.158607041753289e-01, // itest=247: vxxxxx#11 nsp=1 mass=-400 - 2.476131380041579e-01, 4.836194101643708e-01, // itest=247: vxxxxx#11 nsp=1 mass=-400 - 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=247: vxxxxx#11 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -1.440000000000000e+02, // itest=248: sxxxxx#11 nsp=1 mass=400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=248: sxxxxx#11 nsp=1 mass=400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=248: sxxxxx#11 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=248: sxxxxx#11 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=248: sxxxxx#11 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=248: sxxxxx#11 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -1.440000000000000e+02, // itest=249: sxxxxx#11 nsp=1 mass=-400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=249: sxxxxx#11 nsp=1 mass=-400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=249: sxxxxx#11 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=249: sxxxxx#11 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=249: sxxxxx#11 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=249: sxxxxx#11 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -1.440000000000000e+02, // itest=250: oxxxxx#11 nsp=1 mass=400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=250: oxxxxx#11 nsp=1 mass=400 - 1.442220510185596e+01, 0.000000000000000e+00, // itest=250: oxxxxx#11 nsp=1 mass=400 - 1.664100588675688e+01, -1.775040627920733e+01, // itest=250: oxxxxx#11 nsp=1 mass=400 - 7.211102550927978e+00, 0.000000000000000e+00, // itest=250: oxxxxx#11 nsp=1 mass=400 - 8.320502943378436e+00, -8.875203139603666e+00 } ); // itest=250: oxxxxx#11 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -1.440000000000000e+02, // itest=251: oxxxxx#11 nsp=1 mass=-400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=251: oxxxxx#11 nsp=1 mass=-400 - 1.442220510185596e+01, 0.000000000000000e+00, // itest=251: oxxxxx#11 nsp=1 mass=-400 - 1.664100588675688e+01, -1.775040627920733e+01, // itest=251: oxxxxx#11 nsp=1 mass=-400 - -7.211102550927978e+00, -0.000000000000000e+00, // itest=251: oxxxxx#11 nsp=1 mass=-400 - -8.320502943378436e+00, 8.875203139603666e+00 } ); // itest=251: oxxxxx#11 nsp=1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=252: ixxxxx#12 nsp=1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=252: ixxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=252: ixxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=252: ixxxxx#12 nsp=1 mass=0 - 3.162277660168379e+01, 0.000000000000000e+00, // itest=252: ixxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=252: ixxxxx#12 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=253: ixxxxx#12 nsp=1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=253: ixxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=253: ixxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=253: ixxxxx#12 nsp=1 mass=0 - 3.162277660168379e+01, 0.000000000000000e+00, // itest=253: ixxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=253: ixxxxx#12 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=254: ipzxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=254: ipzxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=254: ipzxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=254: ipzxxx#12 nsp=1 mass=0 - 3.162277660168379e+01, 0.000000000000000e+00, // itest=254: ipzxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=254: ipzxxx#12 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=255: vxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=255: vxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=255: vxxxxx#12 nsp=1 mass=0 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=255: vxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 7.071067811865476e-01, // itest=255: vxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=255: vxxxxx#12 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=256: vxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=256: vxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=256: vxxxxx#12 nsp=1 mass=0 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=256: vxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 7.071067811865476e-01, // itest=256: vxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=256: vxxxxx#12 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=257: sxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=257: sxxxxx#12 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=257: sxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=257: sxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=257: sxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=257: sxxxxx#12 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=258: sxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=258: sxxxxx#12 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=258: sxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=258: sxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=258: sxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=258: sxxxxx#12 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=259: oxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=259: oxxxxx#12 nsp=1 mass=0 - 3.162277660168379e+01, 0.000000000000000e+00, // itest=259: oxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=259: oxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=259: oxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=259: oxxxxx#12 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=260: oxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=260: oxxxxx#12 nsp=1 mass=0 - 3.162277660168379e+01, 0.000000000000000e+00, // itest=260: oxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=260: oxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=260: oxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=260: oxxxxx#12 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=261: opzxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=261: opzxxx#12 nsp=1 mass=0 - 3.162277660168379e+01, 0.000000000000000e+00, // itest=261: opzxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=261: opzxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=261: opzxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=261: opzxxx#12 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=262: ixxxxx#13 nsp=1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=262: ixxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=262: ixxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=262: ixxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=262: ixxxxx#13 nsp=1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=262: ixxxxx#13 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=263: ixxxxx#13 nsp=1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=263: ixxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=263: ixxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=263: ixxxxx#13 nsp=1 mass=0 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=263: ixxxxx#13 nsp=1 mass=0 - -3.162277660168379e+01, -0.000000000000000e+00 } ); // itest=263: ixxxxx#13 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=264: imzxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=264: imzxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=264: imzxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=264: imzxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=264: imzxxx#13 nsp=1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=264: imzxxx#13 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=265: vxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=265: vxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=265: vxxxxx#13 nsp=1 mass=0 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=265: vxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, -7.071067811865476e-01, // itest=265: vxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=265: vxxxxx#13 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=266: vxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=266: vxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=266: vxxxxx#13 nsp=1 mass=0 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=266: vxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, -7.071067811865476e-01, // itest=266: vxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=266: vxxxxx#13 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=267: sxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=267: sxxxxx#13 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=267: sxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=267: sxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=267: sxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=267: sxxxxx#13 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=268: sxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=268: sxxxxx#13 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=268: sxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=268: sxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=268: sxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=268: sxxxxx#13 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=269: oxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=269: oxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=269: oxxxxx#13 nsp=1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00, // itest=269: oxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=269: oxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=269: oxxxxx#13 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=270: oxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=270: oxxxxx#13 nsp=1 mass=0 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=270: oxxxxx#13 nsp=1 mass=0 - -3.162277660168379e+01, -0.000000000000000e+00, // itest=270: oxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=270: oxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=270: oxxxxx#13 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=271: omzxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=271: omzxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=271: omzxxx#13 nsp=1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00, // itest=271: omzxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=271: omzxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=271: omzxxx#13 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=272: ixxxxx#14 nsp=1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=272: ixxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=272: ixxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=272: ixxxxx#14 nsp=1 mass=0 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=272: ixxxxx#14 nsp=1 mass=0 - 1.341640786499874e+01, 1.788854381999832e+01 } ); // itest=272: ixxxxx#14 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=273: ixxxxx#14 nsp=1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=273: ixxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=273: ixxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=273: ixxxxx#14 nsp=1 mass=0 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=273: ixxxxx#14 nsp=1 mass=0 - 1.341640786499874e+01, 1.788854381999832e+01 } ); // itest=273: ixxxxx#14 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=274: ixzxxx#14 nsp=1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=274: ixzxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=274: ixzxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=274: ixzxxx#14 nsp=1 mass=0 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=274: ixzxxx#14 nsp=1 mass=0 - 1.341640786499874e+01, 1.788854381999832e+01 } ); // itest=274: ixzxxx#14 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=275: vxxxxx#14 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=275: vxxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=275: vxxxxx#14 nsp=1 mass=0 - -0.000000000000000e+00, -5.656854249492381e-01, // itest=275: vxxxxx#14 nsp=1 mass=0 - -0.000000000000000e+00, 4.242640687119285e-01, // itest=275: vxxxxx#14 nsp=1 mass=0 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=275: vxxxxx#14 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=276: vxxxxx#14 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=276: vxxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=276: vxxxxx#14 nsp=1 mass=0 - -0.000000000000000e+00, -5.656854249492381e-01, // itest=276: vxxxxx#14 nsp=1 mass=0 - -0.000000000000000e+00, 4.242640687119285e-01, // itest=276: vxxxxx#14 nsp=1 mass=0 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=276: vxxxxx#14 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=277: sxxxxx#14 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=277: sxxxxx#14 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=277: sxxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=277: sxxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=277: sxxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=277: sxxxxx#14 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=278: sxxxxx#14 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=278: sxxxxx#14 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=278: sxxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=278: sxxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=278: sxxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=278: sxxxxx#14 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=279: oxxxxx#14 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=279: oxxxxx#14 nsp=1 mass=0 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=279: oxxxxx#14 nsp=1 mass=0 - 1.341640786499874e+01, -1.788854381999832e+01, // itest=279: oxxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=279: oxxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=279: oxxxxx#14 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=280: oxxxxx#14 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=280: oxxxxx#14 nsp=1 mass=0 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=280: oxxxxx#14 nsp=1 mass=0 - 1.341640786499874e+01, -1.788854381999832e+01, // itest=280: oxxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=280: oxxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=280: oxxxxx#14 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=281: oxzxxx#14 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=281: oxzxxx#14 nsp=1 mass=0 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=281: oxzxxx#14 nsp=1 mass=0 - 1.341640786499874e+01, -1.788854381999832e+01, // itest=281: oxzxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=281: oxzxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=281: oxzxxx#14 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=282: ixxxxx#15 nsp=1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=282: ixxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=282: ixxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=282: ixxxxx#15 nsp=1 mass=0 - 3.000000000000000e+01, 0.000000000000000e+00, // itest=282: ixxxxx#15 nsp=1 mass=0 - 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=282: ixxxxx#15 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=283: ixxxxx#15 nsp=1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=283: ixxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=283: ixxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=283: ixxxxx#15 nsp=1 mass=0 - 3.000000000000000e+01, 0.000000000000000e+00, // itest=283: ixxxxx#15 nsp=1 mass=0 - 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=283: ixxxxx#15 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=284: ixzxxx#15 nsp=1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=284: ixzxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=284: ixzxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=284: ixzxxx#15 nsp=1 mass=0 - 3.000000000000000e+01, 0.000000000000000e+00, // itest=284: ixzxxx#15 nsp=1 mass=0 - 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=284: ixzxxx#15 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=285: vxxxxx#15 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=285: vxxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=285: vxxxxx#15 nsp=1 mass=0 - -3.394112549695428e-01, -5.656854249492381e-01, // itest=285: vxxxxx#15 nsp=1 mass=0 - -4.525483399593904e-01, 4.242640687119285e-01, // itest=285: vxxxxx#15 nsp=1 mass=0 - 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=285: vxxxxx#15 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=286: vxxxxx#15 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=286: vxxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=286: vxxxxx#15 nsp=1 mass=0 - -3.394112549695428e-01, -5.656854249492381e-01, // itest=286: vxxxxx#15 nsp=1 mass=0 - -4.525483399593904e-01, 4.242640687119285e-01, // itest=286: vxxxxx#15 nsp=1 mass=0 - 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=286: vxxxxx#15 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=287: sxxxxx#15 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=287: sxxxxx#15 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=287: sxxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=287: sxxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=287: sxxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=287: sxxxxx#15 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=288: sxxxxx#15 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=288: sxxxxx#15 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=288: sxxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=288: sxxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=288: sxxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=288: sxxxxx#15 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=289: oxxxxx#15 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=289: oxxxxx#15 nsp=1 mass=0 - 3.000000000000000e+01, 0.000000000000000e+00, // itest=289: oxxxxx#15 nsp=1 mass=0 - 6.000000000000000e+00, -8.000000000000000e+00, // itest=289: oxxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=289: oxxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=289: oxxxxx#15 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=290: oxxxxx#15 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=290: oxxxxx#15 nsp=1 mass=0 - 3.000000000000000e+01, 0.000000000000000e+00, // itest=290: oxxxxx#15 nsp=1 mass=0 - 6.000000000000000e+00, -8.000000000000000e+00, // itest=290: oxxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=290: oxxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=290: oxxxxx#15 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=291: oxzxxx#15 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=291: oxzxxx#15 nsp=1 mass=0 - 3.000000000000000e+01, 0.000000000000000e+00, // itest=291: oxzxxx#15 nsp=1 mass=0 - 6.000000000000000e+00, -8.000000000000000e+00, // itest=291: oxzxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=291: oxzxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=291: oxzxxx#15 nsp=1 mass=0 + 5.000000000000000e+02, 5.000000000000000e+02, // itest=50: ixxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=50: ixxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=50: ixxxxx#5 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=50: ixxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=50: ixxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=50: ixxxxx#5 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=51: ixxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=51: ixxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=51: ixxxxx#5 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=51: ixxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=51: ixxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=51: ixxxxx#5 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=52: ipzxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=52: ipzxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=52: ipzxxx#5 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=52: ipzxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=52: ipzxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=52: ipzxxx#5 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=53: vxxxxx#5 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=53: vxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=53: vxxxxx#5 nsp=-1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=53: vxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=53: vxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=53: vxxxxx#5 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=54: vxxxxx#5 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=54: vxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=54: vxxxxx#5 nsp=-1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=54: vxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=54: vxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=54: vxxxxx#5 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=55: sxxxxx#5 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=55: sxxxxx#5 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=55: sxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=55: sxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=55: sxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=55: sxxxxx#5 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=56: sxxxxx#5 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=56: sxxxxx#5 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=56: sxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=56: sxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=56: sxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=56: sxxxxx#5 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=57: oxxxxx#5 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=57: oxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=57: oxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=57: oxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=57: oxxxxx#5 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=57: oxxxxx#5 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=58: oxxxxx#5 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=58: oxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=58: oxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=58: oxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=58: oxxxxx#5 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=58: oxxxxx#5 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=59: opzxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=59: opzxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=59: opzxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=59: opzxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=59: opzxxx#5 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=59: opzxxx#5 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=60: ixxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=60: ixxxxx#6 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=60: ixxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=60: ixxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=60: ixxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=60: ixxxxx#6 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=61: ixxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=61: ixxxxx#6 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=61: ixxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=61: ixxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=61: ixxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=61: ixxxxx#6 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=62: imzxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=62: imzxxx#6 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=62: imzxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=62: imzxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=62: imzxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=62: imzxxx#6 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=63: vxxxxx#6 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=63: vxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=63: vxxxxx#6 nsp=-1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=63: vxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=63: vxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=63: vxxxxx#6 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=64: vxxxxx#6 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=64: vxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=64: vxxxxx#6 nsp=-1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=64: vxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=64: vxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=64: vxxxxx#6 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=65: sxxxxx#6 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=65: sxxxxx#6 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=65: sxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=65: sxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=65: sxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=65: sxxxxx#6 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=66: sxxxxx#6 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=66: sxxxxx#6 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=66: sxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=66: sxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=66: sxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=66: sxxxxx#6 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=67: oxxxxx#6 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=67: oxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=67: oxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=67: oxxxxx#6 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=67: oxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=67: oxxxxx#6 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=68: oxxxxx#6 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=68: oxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=68: oxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=68: oxxxxx#6 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=68: oxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=68: oxxxxx#6 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=69: omzxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=69: omzxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=69: omzxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=69: omzxxx#6 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=69: omzxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=69: omzxxx#6 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=70: ixxxxx#7 nsp=-1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=70: ixxxxx#7 nsp=-1 mass=0 + 1.341640786499874e+01, -1.788854381999831e+01, // itest=70: ixxxxx#7 nsp=-1 mass=0 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=70: ixxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=70: ixxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=70: ixxxxx#7 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=71: ixxxxx#7 nsp=-1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=71: ixxxxx#7 nsp=-1 mass=0 + 1.341640786499874e+01, -1.788854381999831e+01, // itest=71: ixxxxx#7 nsp=-1 mass=0 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=71: ixxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=71: ixxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=71: ixxxxx#7 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=72: ixzxxx#7 nsp=-1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=72: ixzxxx#7 nsp=-1 mass=0 + 1.341640786499874e+01, -1.788854381999832e+01, // itest=72: ixzxxx#7 nsp=-1 mass=0 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=72: ixzxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=72: ixzxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=72: ixzxxx#7 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=73: vxxxxx#7 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=73: vxxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=73: vxxxxx#7 nsp=-1 mass=0 + -0.000000000000000e+00, 5.656854249492381e-01, // itest=73: vxxxxx#7 nsp=-1 mass=0 + -0.000000000000000e+00, -4.242640687119285e-01, // itest=73: vxxxxx#7 nsp=-1 mass=0 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=73: vxxxxx#7 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=74: vxxxxx#7 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=74: vxxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=74: vxxxxx#7 nsp=-1 mass=0 + -0.000000000000000e+00, 5.656854249492381e-01, // itest=74: vxxxxx#7 nsp=-1 mass=0 + -0.000000000000000e+00, -4.242640687119285e-01, // itest=74: vxxxxx#7 nsp=-1 mass=0 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=74: vxxxxx#7 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=75: sxxxxx#7 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=75: sxxxxx#7 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=75: sxxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=75: sxxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=75: sxxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=75: sxxxxx#7 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=76: sxxxxx#7 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=76: sxxxxx#7 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=76: sxxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=76: sxxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=76: sxxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=76: sxxxxx#7 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=77: oxxxxx#7 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=77: oxxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=77: oxxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=77: oxxxxx#7 nsp=-1 mass=0 + 1.341640786499874e+01, 1.788854381999831e+01, // itest=77: oxxxxx#7 nsp=-1 mass=0 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=77: oxxxxx#7 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=78: oxxxxx#7 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=78: oxxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=78: oxxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=78: oxxxxx#7 nsp=-1 mass=0 + 1.341640786499874e+01, 1.788854381999831e+01, // itest=78: oxxxxx#7 nsp=-1 mass=0 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=78: oxxxxx#7 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=79: oxzxxx#7 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=79: oxzxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=79: oxzxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=79: oxzxxx#7 nsp=-1 mass=0 + 1.341640786499874e+01, 1.788854381999832e+01, // itest=79: oxzxxx#7 nsp=-1 mass=0 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=79: oxzxxx#7 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=80: ixxxxx#8 nsp=-1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=80: ixxxxx#8 nsp=-1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=80: ixxxxx#8 nsp=-1 mass=0 + -3.000000000000000e+01, 0.000000000000000e+00, // itest=80: ixxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=80: ixxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=80: ixxxxx#8 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=81: ixxxxx#8 nsp=-1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=81: ixxxxx#8 nsp=-1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=81: ixxxxx#8 nsp=-1 mass=0 + -3.000000000000000e+01, 0.000000000000000e+00, // itest=81: ixxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=81: ixxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=81: ixxxxx#8 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=82: ixzxxx#8 nsp=-1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=82: ixzxxx#8 nsp=-1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=82: ixzxxx#8 nsp=-1 mass=0 + -3.000000000000000e+01, 0.000000000000000e+00, // itest=82: ixzxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=82: ixzxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=82: ixzxxx#8 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=83: vxxxxx#8 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=83: vxxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=83: vxxxxx#8 nsp=-1 mass=0 + -3.394112549695428e-01, 5.656854249492381e-01, // itest=83: vxxxxx#8 nsp=-1 mass=0 + -4.525483399593904e-01, -4.242640687119285e-01, // itest=83: vxxxxx#8 nsp=-1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=83: vxxxxx#8 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=84: vxxxxx#8 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=84: vxxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=84: vxxxxx#8 nsp=-1 mass=0 + -3.394112549695428e-01, 5.656854249492381e-01, // itest=84: vxxxxx#8 nsp=-1 mass=0 + -4.525483399593904e-01, -4.242640687119285e-01, // itest=84: vxxxxx#8 nsp=-1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=84: vxxxxx#8 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=85: sxxxxx#8 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=85: sxxxxx#8 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=85: sxxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=85: sxxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=85: sxxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=85: sxxxxx#8 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=86: sxxxxx#8 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=86: sxxxxx#8 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=86: sxxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=86: sxxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=86: sxxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=86: sxxxxx#8 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=87: oxxxxx#8 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=87: oxxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=87: oxxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=87: oxxxxx#8 nsp=-1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00, // itest=87: oxxxxx#8 nsp=-1 mass=0 + -3.000000000000000e+01, 0.000000000000000e+00 } ); // itest=87: oxxxxx#8 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=88: oxxxxx#8 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=88: oxxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=88: oxxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=88: oxxxxx#8 nsp=-1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00, // itest=88: oxxxxx#8 nsp=-1 mass=0 + -3.000000000000000e+01, 0.000000000000000e+00 } ); // itest=88: oxxxxx#8 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=89: oxzxxx#8 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=89: oxzxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=89: oxzxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=89: oxzxxx#8 nsp=-1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00, // itest=89: oxzxxx#8 nsp=-1 mass=0 + -3.000000000000000e+01, 0.000000000000000e+00 } ); // itest=89: oxzxxx#8 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=90: ixxxxx#9 nsp=-1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=90: ixxxxx#9 nsp=-1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=90: ixxxxx#9 nsp=-1 mass=0 + -1.000000000000000e+01, 0.000000000000000e+00, // itest=90: ixxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=90: ixxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=90: ixxxxx#9 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=91: ixxxxx#9 nsp=-1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=91: ixxxxx#9 nsp=-1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=91: ixxxxx#9 nsp=-1 mass=0 + -1.000000000000000e+01, 0.000000000000000e+00, // itest=91: ixxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=91: ixxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=91: ixxxxx#9 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=92: ixzxxx#9 nsp=-1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=92: ixzxxx#9 nsp=-1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=92: ixzxxx#9 nsp=-1 mass=0 + -1.000000000000000e+01, 0.000000000000000e+00, // itest=92: ixzxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=92: ixzxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=92: ixzxxx#9 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=93: vxxxxx#9 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=93: vxxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=93: vxxxxx#9 nsp=-1 mass=0 + 3.394112549695428e-01, 5.656854249492381e-01, // itest=93: vxxxxx#9 nsp=-1 mass=0 + 4.525483399593904e-01, -4.242640687119285e-01, // itest=93: vxxxxx#9 nsp=-1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=93: vxxxxx#9 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=94: vxxxxx#9 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=94: vxxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=94: vxxxxx#9 nsp=-1 mass=0 + 3.394112549695428e-01, 5.656854249492381e-01, // itest=94: vxxxxx#9 nsp=-1 mass=0 + 4.525483399593904e-01, -4.242640687119285e-01, // itest=94: vxxxxx#9 nsp=-1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=94: vxxxxx#9 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=95: sxxxxx#9 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=95: sxxxxx#9 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=95: sxxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=95: sxxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=95: sxxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=95: sxxxxx#9 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=96: sxxxxx#9 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=96: sxxxxx#9 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=96: sxxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=96: sxxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=96: sxxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=96: sxxxxx#9 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=97: oxxxxx#9 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=97: oxxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=97: oxxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=97: oxxxxx#9 nsp=-1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01, // itest=97: oxxxxx#9 nsp=-1 mass=0 + -1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=97: oxxxxx#9 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=98: oxxxxx#9 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=98: oxxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=98: oxxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=98: oxxxxx#9 nsp=-1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01, // itest=98: oxxxxx#9 nsp=-1 mass=0 + -1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=98: oxxxxx#9 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=99: oxzxxx#9 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=99: oxzxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=99: oxzxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=99: oxzxxx#9 nsp=-1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01, // itest=99: oxzxxx#9 nsp=-1 mass=0 + -1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=99: oxzxxx#9 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=100: ixxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=100: ixxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=100: ixxxxx#10 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=100: ixxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=100: ixxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=100: ixxxxx#10 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=101: ixxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=101: ixxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=101: ixxxxx#10 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=101: ixxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=101: ixxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=101: ixxxxx#10 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=102: ipzxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=102: ipzxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=102: ipzxxx#10 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=102: ipzxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=102: ipzxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=102: ipzxxx#10 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=103: vxxxxx#10 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=103: vxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=103: vxxxxx#10 nsp=-1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=103: vxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=103: vxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=103: vxxxxx#10 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=104: vxxxxx#10 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=104: vxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=104: vxxxxx#10 nsp=-1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=104: vxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=104: vxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=104: vxxxxx#10 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=105: sxxxxx#10 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=105: sxxxxx#10 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=105: sxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=105: sxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=105: sxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=105: sxxxxx#10 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=106: sxxxxx#10 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=106: sxxxxx#10 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=106: sxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=106: sxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=106: sxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=106: sxxxxx#10 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=107: oxxxxx#10 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=107: oxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=107: oxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=107: oxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=107: oxxxxx#10 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=107: oxxxxx#10 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=108: oxxxxx#10 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=108: oxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=108: oxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=108: oxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=108: oxxxxx#10 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=108: oxxxxx#10 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=109: opzxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=109: opzxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=109: opzxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=109: opzxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=109: opzxxx#10 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=109: opzxxx#10 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=110: ixxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=110: ixxxxx#11 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=110: ixxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=110: ixxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=110: ixxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=110: ixxxxx#11 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=111: ixxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=111: ixxxxx#11 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=111: ixxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=111: ixxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=111: ixxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=111: ixxxxx#11 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=112: imzxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=112: imzxxx#11 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=112: imzxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=112: imzxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=112: imzxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=112: imzxxx#11 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=113: vxxxxx#11 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=113: vxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=113: vxxxxx#11 nsp=-1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=113: vxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=113: vxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=113: vxxxxx#11 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=114: vxxxxx#11 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=114: vxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=114: vxxxxx#11 nsp=-1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=114: vxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=114: vxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=114: vxxxxx#11 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=115: sxxxxx#11 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=115: sxxxxx#11 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=115: sxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=115: sxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=115: sxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=115: sxxxxx#11 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=116: sxxxxx#11 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=116: sxxxxx#11 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=116: sxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=116: sxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=116: sxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=116: sxxxxx#11 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=117: oxxxxx#11 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=117: oxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=117: oxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=117: oxxxxx#11 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=117: oxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=117: oxxxxx#11 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=118: oxxxxx#11 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=118: oxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=118: oxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=118: oxxxxx#11 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=118: oxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=118: oxxxxx#11 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=119: omzxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=119: omzxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=119: omzxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=119: omzxxx#11 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=119: omzxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=119: omzxxx#11 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=120: ixxxxx#12 nsp=-1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=120: ixxxxx#12 nsp=-1 mass=0 + 1.341640786499874e+01, -1.788854381999831e+01, // itest=120: ixxxxx#12 nsp=-1 mass=0 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=120: ixxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=120: ixxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=120: ixxxxx#12 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=121: ixxxxx#12 nsp=-1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=121: ixxxxx#12 nsp=-1 mass=0 + 1.341640786499874e+01, -1.788854381999831e+01, // itest=121: ixxxxx#12 nsp=-1 mass=0 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=121: ixxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=121: ixxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=121: ixxxxx#12 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=122: ixzxxx#12 nsp=-1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=122: ixzxxx#12 nsp=-1 mass=0 + 1.341640786499874e+01, -1.788854381999832e+01, // itest=122: ixzxxx#12 nsp=-1 mass=0 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=122: ixzxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=122: ixzxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=122: ixzxxx#12 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=123: vxxxxx#12 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=123: vxxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=123: vxxxxx#12 nsp=-1 mass=0 + -0.000000000000000e+00, 5.656854249492381e-01, // itest=123: vxxxxx#12 nsp=-1 mass=0 + -0.000000000000000e+00, -4.242640687119285e-01, // itest=123: vxxxxx#12 nsp=-1 mass=0 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=123: vxxxxx#12 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=124: vxxxxx#12 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=124: vxxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=124: vxxxxx#12 nsp=-1 mass=0 + -0.000000000000000e+00, 5.656854249492381e-01, // itest=124: vxxxxx#12 nsp=-1 mass=0 + -0.000000000000000e+00, -4.242640687119285e-01, // itest=124: vxxxxx#12 nsp=-1 mass=0 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=124: vxxxxx#12 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=125: sxxxxx#12 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=125: sxxxxx#12 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=125: sxxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=125: sxxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=125: sxxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=125: sxxxxx#12 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=126: sxxxxx#12 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=126: sxxxxx#12 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=126: sxxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=126: sxxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=126: sxxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=126: sxxxxx#12 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=127: oxxxxx#12 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=127: oxxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=127: oxxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=127: oxxxxx#12 nsp=-1 mass=0 + 1.341640786499874e+01, 1.788854381999831e+01, // itest=127: oxxxxx#12 nsp=-1 mass=0 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=127: oxxxxx#12 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=128: oxxxxx#12 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=128: oxxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=128: oxxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=128: oxxxxx#12 nsp=-1 mass=0 + 1.341640786499874e+01, 1.788854381999831e+01, // itest=128: oxxxxx#12 nsp=-1 mass=0 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=128: oxxxxx#12 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=129: oxzxxx#12 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=129: oxzxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=129: oxzxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=129: oxzxxx#12 nsp=-1 mass=0 + 1.341640786499874e+01, 1.788854381999832e+01, // itest=129: oxzxxx#12 nsp=-1 mass=0 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=129: oxzxxx#12 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=130: ixxxxx#13 nsp=-1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=130: ixxxxx#13 nsp=-1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=130: ixxxxx#13 nsp=-1 mass=0 + -3.000000000000000e+01, 0.000000000000000e+00, // itest=130: ixxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=130: ixxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=130: ixxxxx#13 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=131: ixxxxx#13 nsp=-1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=131: ixxxxx#13 nsp=-1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=131: ixxxxx#13 nsp=-1 mass=0 + -3.000000000000000e+01, 0.000000000000000e+00, // itest=131: ixxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=131: ixxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=131: ixxxxx#13 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=132: ixzxxx#13 nsp=-1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=132: ixzxxx#13 nsp=-1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=132: ixzxxx#13 nsp=-1 mass=0 + -3.000000000000000e+01, 0.000000000000000e+00, // itest=132: ixzxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=132: ixzxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=132: ixzxxx#13 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=133: vxxxxx#13 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=133: vxxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=133: vxxxxx#13 nsp=-1 mass=0 + -3.394112549695428e-01, 5.656854249492381e-01, // itest=133: vxxxxx#13 nsp=-1 mass=0 + -4.525483399593904e-01, -4.242640687119285e-01, // itest=133: vxxxxx#13 nsp=-1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=133: vxxxxx#13 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=134: vxxxxx#13 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=134: vxxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=134: vxxxxx#13 nsp=-1 mass=0 + -3.394112549695428e-01, 5.656854249492381e-01, // itest=134: vxxxxx#13 nsp=-1 mass=0 + -4.525483399593904e-01, -4.242640687119285e-01, // itest=134: vxxxxx#13 nsp=-1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=134: vxxxxx#13 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=135: sxxxxx#13 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=135: sxxxxx#13 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=135: sxxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=135: sxxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=135: sxxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=135: sxxxxx#13 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=136: sxxxxx#13 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=136: sxxxxx#13 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=136: sxxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=136: sxxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=136: sxxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=136: sxxxxx#13 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=137: oxxxxx#13 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=137: oxxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=137: oxxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=137: oxxxxx#13 nsp=-1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00, // itest=137: oxxxxx#13 nsp=-1 mass=0 + -3.000000000000000e+01, 0.000000000000000e+00 } ); // itest=137: oxxxxx#13 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=138: oxxxxx#13 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=138: oxxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=138: oxxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=138: oxxxxx#13 nsp=-1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00, // itest=138: oxxxxx#13 nsp=-1 mass=0 + -3.000000000000000e+01, 0.000000000000000e+00 } ); // itest=138: oxxxxx#13 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=139: oxzxxx#13 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=139: oxzxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=139: oxzxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=139: oxzxxx#13 nsp=-1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00, // itest=139: oxzxxx#13 nsp=-1 mass=0 + -3.000000000000000e+01, 0.000000000000000e+00 } ); // itest=139: oxzxxx#13 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=140: ixxxxx#14 nsp=-1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=140: ixxxxx#14 nsp=-1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=140: ixxxxx#14 nsp=-1 mass=0 + -1.000000000000000e+01, 0.000000000000000e+00, // itest=140: ixxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=140: ixxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=140: ixxxxx#14 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=141: ixxxxx#14 nsp=-1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=141: ixxxxx#14 nsp=-1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=141: ixxxxx#14 nsp=-1 mass=0 + -1.000000000000000e+01, 0.000000000000000e+00, // itest=141: ixxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=141: ixxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=141: ixxxxx#14 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=142: ixzxxx#14 nsp=-1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=142: ixzxxx#14 nsp=-1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=142: ixzxxx#14 nsp=-1 mass=0 + -1.000000000000000e+01, 0.000000000000000e+00, // itest=142: ixzxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=142: ixzxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=142: ixzxxx#14 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=143: vxxxxx#14 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=143: vxxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=143: vxxxxx#14 nsp=-1 mass=0 + 3.394112549695428e-01, 5.656854249492381e-01, // itest=143: vxxxxx#14 nsp=-1 mass=0 + 4.525483399593904e-01, -4.242640687119285e-01, // itest=143: vxxxxx#14 nsp=-1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=143: vxxxxx#14 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=144: vxxxxx#14 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=144: vxxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=144: vxxxxx#14 nsp=-1 mass=0 + 3.394112549695428e-01, 5.656854249492381e-01, // itest=144: vxxxxx#14 nsp=-1 mass=0 + 4.525483399593904e-01, -4.242640687119285e-01, // itest=144: vxxxxx#14 nsp=-1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=144: vxxxxx#14 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=145: sxxxxx#14 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=145: sxxxxx#14 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=145: sxxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=145: sxxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=145: sxxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=145: sxxxxx#14 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=146: sxxxxx#14 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=146: sxxxxx#14 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=146: sxxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=146: sxxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=146: sxxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=146: sxxxxx#14 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=147: oxxxxx#14 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=147: oxxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=147: oxxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=147: oxxxxx#14 nsp=-1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01, // itest=147: oxxxxx#14 nsp=-1 mass=0 + -1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=147: oxxxxx#14 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=148: oxxxxx#14 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=148: oxxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=148: oxxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=148: oxxxxx#14 nsp=-1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01, // itest=148: oxxxxx#14 nsp=-1 mass=0 + -1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=148: oxxxxx#14 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=149: oxzxxx#14 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=149: oxzxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=149: oxzxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=149: oxzxxx#14 nsp=-1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01, // itest=149: oxzxxx#14 nsp=-1 mass=0 + -1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=149: oxzxxx#14 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=150: ixxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=150: ixxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=150: ixxxxx#15 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=150: ixxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=150: ixxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=150: ixxxxx#15 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=151: ixxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=151: ixxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=151: ixxxxx#15 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=151: ixxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=151: ixxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=151: ixxxxx#15 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=152: ipzxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=152: ipzxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=152: ipzxxx#15 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=152: ipzxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=152: ipzxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=152: ipzxxx#15 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=153: vxxxxx#15 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=153: vxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=153: vxxxxx#15 nsp=-1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=153: vxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=153: vxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=153: vxxxxx#15 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=154: vxxxxx#15 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=154: vxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=154: vxxxxx#15 nsp=-1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=154: vxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=154: vxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=154: vxxxxx#15 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=155: sxxxxx#15 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=155: sxxxxx#15 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=155: sxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=155: sxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=155: sxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=155: sxxxxx#15 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=156: sxxxxx#15 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=156: sxxxxx#15 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=156: sxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=156: sxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=156: sxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=156: sxxxxx#15 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=157: oxxxxx#15 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=157: oxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=157: oxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=157: oxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=157: oxxxxx#15 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=157: oxxxxx#15 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=158: oxxxxx#15 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=158: oxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=158: oxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=158: oxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=158: oxxxxx#15 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=158: oxxxxx#15 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=159: opzxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=159: opzxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=159: opzxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=159: opzxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=159: opzxxx#15 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=159: opzxxx#15 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=160: ixxxxx#16 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=160: ixxxxx#16 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=160: ixxxxx#16 nsp=-1 mass=500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=160: ixxxxx#16 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=160: ixxxxx#16 nsp=-1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=160: ixxxxx#16 nsp=-1 mass=500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=161: ixxxxx#16 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=161: ixxxxx#16 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=161: ixxxxx#16 nsp=-1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=161: ixxxxx#16 nsp=-1 mass=-500 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=161: ixxxxx#16 nsp=-1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=161: ixxxxx#16 nsp=-1 mass=-500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=162: vxxxxx#16 nsp=-1 mass=500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=162: vxxxxx#16 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=162: vxxxxx#16 nsp=-1 mass=500 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=162: vxxxxx#16 nsp=-1 mass=500 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=162: vxxxxx#16 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=162: vxxxxx#16 nsp=-1 mass=500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=163: vxxxxx#16 nsp=-1 mass=-500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=163: vxxxxx#16 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=163: vxxxxx#16 nsp=-1 mass=-500 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=163: vxxxxx#16 nsp=-1 mass=-500 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=163: vxxxxx#16 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=163: vxxxxx#16 nsp=-1 mass=-500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=164: sxxxxx#16 nsp=-1 mass=500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=164: sxxxxx#16 nsp=-1 mass=500 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=164: sxxxxx#16 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=164: sxxxxx#16 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=164: sxxxxx#16 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=164: sxxxxx#16 nsp=-1 mass=500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=165: sxxxxx#16 nsp=-1 mass=-500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=165: sxxxxx#16 nsp=-1 mass=-500 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=165: sxxxxx#16 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=165: sxxxxx#16 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=165: sxxxxx#16 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=165: sxxxxx#16 nsp=-1 mass=-500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=166: oxxxxx#16 nsp=-1 mass=500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=166: oxxxxx#16 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=166: oxxxxx#16 nsp=-1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=166: oxxxxx#16 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=166: oxxxxx#16 nsp=-1 mass=500 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=166: oxxxxx#16 nsp=-1 mass=500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=167: oxxxxx#16 nsp=-1 mass=-500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=167: oxxxxx#16 nsp=-1 mass=-500 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=167: oxxxxx#16 nsp=-1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=167: oxxxxx#16 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=167: oxxxxx#16 nsp=-1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=167: oxxxxx#16 nsp=-1 mass=-500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=168: ixxxxx#17 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=168: ixxxxx#17 nsp=-1 mass=400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=168: ixxxxx#17 nsp=-1 mass=400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=168: ixxxxx#17 nsp=-1 mass=400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=168: ixxxxx#17 nsp=-1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00 } ); // itest=168: ixxxxx#17 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=169: ixxxxx#17 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=169: ixxxxx#17 nsp=-1 mass=-400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=169: ixxxxx#17 nsp=-1 mass=-400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=169: ixxxxx#17 nsp=-1 mass=-400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=169: ixxxxx#17 nsp=-1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00 } ); // itest=169: ixxxxx#17 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=170: vxxxxx#17 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=170: vxxxxx#17 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=170: vxxxxx#17 nsp=-1 mass=400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=170: vxxxxx#17 nsp=-1 mass=400 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=170: vxxxxx#17 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=170: vxxxxx#17 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=171: vxxxxx#17 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=171: vxxxxx#17 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=171: vxxxxx#17 nsp=-1 mass=-400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=171: vxxxxx#17 nsp=-1 mass=-400 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=171: vxxxxx#17 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=171: vxxxxx#17 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=172: sxxxxx#17 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=172: sxxxxx#17 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=172: sxxxxx#17 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=172: sxxxxx#17 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=172: sxxxxx#17 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=172: sxxxxx#17 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=173: sxxxxx#17 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=173: sxxxxx#17 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=173: sxxxxx#17 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=173: sxxxxx#17 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=173: sxxxxx#17 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=173: sxxxxx#17 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=174: oxxxxx#17 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=174: oxxxxx#17 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=174: oxxxxx#17 nsp=-1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=174: oxxxxx#17 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=174: oxxxxx#17 nsp=-1 mass=400 + -2.828427124746190e+01, -0.000000000000000e+00 } ); // itest=174: oxxxxx#17 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=175: oxxxxx#17 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=175: oxxxxx#17 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=175: oxxxxx#17 nsp=-1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=175: oxxxxx#17 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=175: oxxxxx#17 nsp=-1 mass=-400 + -2.828427124746190e+01, -0.000000000000000e+00 } ); // itest=175: oxxxxx#17 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=176: ixxxxx#18 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=176: ixxxxx#18 nsp=-1 mass=400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=176: ixxxxx#18 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=176: ixxxxx#18 nsp=-1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=176: ixxxxx#18 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=176: ixxxxx#18 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=177: ixxxxx#18 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=177: ixxxxx#18 nsp=-1 mass=-400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=177: ixxxxx#18 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=177: ixxxxx#18 nsp=-1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=177: ixxxxx#18 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=177: ixxxxx#18 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=178: vxxxxx#18 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=178: vxxxxx#18 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=178: vxxxxx#18 nsp=-1 mass=400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=178: vxxxxx#18 nsp=-1 mass=400 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=178: vxxxxx#18 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=178: vxxxxx#18 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=179: vxxxxx#18 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=179: vxxxxx#18 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=179: vxxxxx#18 nsp=-1 mass=-400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=179: vxxxxx#18 nsp=-1 mass=-400 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=179: vxxxxx#18 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=179: vxxxxx#18 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=180: sxxxxx#18 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=180: sxxxxx#18 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=180: sxxxxx#18 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=180: sxxxxx#18 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=180: sxxxxx#18 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=180: sxxxxx#18 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=181: sxxxxx#18 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=181: sxxxxx#18 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=181: sxxxxx#18 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=181: sxxxxx#18 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=181: sxxxxx#18 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=181: sxxxxx#18 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=182: oxxxxx#18 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=182: oxxxxx#18 nsp=-1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=182: oxxxxx#18 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=182: oxxxxx#18 nsp=-1 mass=400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=182: oxxxxx#18 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=182: oxxxxx#18 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=183: oxxxxx#18 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=183: oxxxxx#18 nsp=-1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=183: oxxxxx#18 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=183: oxxxxx#18 nsp=-1 mass=-400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=183: oxxxxx#18 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=183: oxxxxx#18 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=184: ixxxxx#19 nsp=-1 mass=400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=184: ixxxxx#19 nsp=-1 mass=400 + 1.200000000000000e+01, -1.600000000000000e+01, // itest=184: ixxxxx#19 nsp=-1 mass=400 + -2.000000000000000e+01, -0.000000000000000e+00, // itest=184: ixxxxx#19 nsp=-1 mass=400 + -5.999999999999999e+00, 7.999999999999999e+00, // itest=184: ixxxxx#19 nsp=-1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=184: ixxxxx#19 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=185: ixxxxx#19 nsp=-1 mass=-400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=185: ixxxxx#19 nsp=-1 mass=-400 + 1.200000000000000e+01, -1.600000000000000e+01, // itest=185: ixxxxx#19 nsp=-1 mass=-400 + -2.000000000000000e+01, -0.000000000000000e+00, // itest=185: ixxxxx#19 nsp=-1 mass=-400 + 5.999999999999999e+00, -7.999999999999999e+00, // itest=185: ixxxxx#19 nsp=-1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00 } ); // itest=185: ixxxxx#19 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=186: vxxxxx#19 nsp=-1 mass=400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=186: vxxxxx#19 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=186: vxxxxx#19 nsp=-1 mass=400 + 0.000000000000000e+00, 5.656854249492381e-01, // itest=186: vxxxxx#19 nsp=-1 mass=400 + 0.000000000000000e+00, -4.242640687119285e-01, // itest=186: vxxxxx#19 nsp=-1 mass=400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=186: vxxxxx#19 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=187: vxxxxx#19 nsp=-1 mass=-400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=187: vxxxxx#19 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=187: vxxxxx#19 nsp=-1 mass=-400 + -0.000000000000000e+00, 5.656854249492381e-01, // itest=187: vxxxxx#19 nsp=-1 mass=-400 + -0.000000000000000e+00, -4.242640687119285e-01, // itest=187: vxxxxx#19 nsp=-1 mass=-400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=187: vxxxxx#19 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=188: sxxxxx#19 nsp=-1 mass=400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=188: sxxxxx#19 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=188: sxxxxx#19 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=188: sxxxxx#19 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=188: sxxxxx#19 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=188: sxxxxx#19 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=189: sxxxxx#19 nsp=-1 mass=-400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=189: sxxxxx#19 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=189: sxxxxx#19 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=189: sxxxxx#19 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=189: sxxxxx#19 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=189: sxxxxx#19 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=190: oxxxxx#19 nsp=-1 mass=400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=190: oxxxxx#19 nsp=-1 mass=400 + -5.999999999999999e+00, -7.999999999999999e+00, // itest=190: oxxxxx#19 nsp=-1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=190: oxxxxx#19 nsp=-1 mass=400 + 1.200000000000000e+01, 1.600000000000000e+01, // itest=190: oxxxxx#19 nsp=-1 mass=400 + -2.000000000000000e+01, -0.000000000000000e+00 } ); // itest=190: oxxxxx#19 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=191: oxxxxx#19 nsp=-1 mass=-400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=191: oxxxxx#19 nsp=-1 mass=-400 + 5.999999999999999e+00, 7.999999999999999e+00, // itest=191: oxxxxx#19 nsp=-1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00, // itest=191: oxxxxx#19 nsp=-1 mass=-400 + 1.200000000000000e+01, 1.600000000000000e+01, // itest=191: oxxxxx#19 nsp=-1 mass=-400 + -2.000000000000000e+01, -0.000000000000000e+00 } ); // itest=191: oxxxxx#19 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=192: ixxxxx#20 nsp=-1 mass=400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=192: ixxxxx#20 nsp=-1 mass=400 + -1.600000000000000e+01, 1.200000000000000e+01, // itest=192: ixxxxx#20 nsp=-1 mass=400 + -2.000000000000000e+01, -0.000000000000000e+00, // itest=192: ixxxxx#20 nsp=-1 mass=400 + 7.999999999999999e+00, -5.999999999999999e+00, // itest=192: ixxxxx#20 nsp=-1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=192: ixxxxx#20 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=193: ixxxxx#20 nsp=-1 mass=-400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=193: ixxxxx#20 nsp=-1 mass=-400 + -1.600000000000000e+01, 1.200000000000000e+01, // itest=193: ixxxxx#20 nsp=-1 mass=-400 + -2.000000000000000e+01, -0.000000000000000e+00, // itest=193: ixxxxx#20 nsp=-1 mass=-400 + -7.999999999999999e+00, 5.999999999999999e+00, // itest=193: ixxxxx#20 nsp=-1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00 } ); // itest=193: ixxxxx#20 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=194: vxxxxx#20 nsp=-1 mass=400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=194: vxxxxx#20 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=194: vxxxxx#20 nsp=-1 mass=400 + 0.000000000000000e+00, -4.242640687119285e-01, // itest=194: vxxxxx#20 nsp=-1 mass=400 + 0.000000000000000e+00, 5.656854249492381e-01, // itest=194: vxxxxx#20 nsp=-1 mass=400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=194: vxxxxx#20 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=195: vxxxxx#20 nsp=-1 mass=-400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=195: vxxxxx#20 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=195: vxxxxx#20 nsp=-1 mass=-400 + 0.000000000000000e+00, -4.242640687119285e-01, // itest=195: vxxxxx#20 nsp=-1 mass=-400 + 0.000000000000000e+00, 5.656854249492381e-01, // itest=195: vxxxxx#20 nsp=-1 mass=-400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=195: vxxxxx#20 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=196: sxxxxx#20 nsp=-1 mass=400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=196: sxxxxx#20 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=196: sxxxxx#20 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=196: sxxxxx#20 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=196: sxxxxx#20 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=196: sxxxxx#20 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=197: sxxxxx#20 nsp=-1 mass=-400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=197: sxxxxx#20 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=197: sxxxxx#20 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=197: sxxxxx#20 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=197: sxxxxx#20 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=197: sxxxxx#20 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=198: oxxxxx#20 nsp=-1 mass=400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=198: oxxxxx#20 nsp=-1 mass=400 + 7.999999999999999e+00, 5.999999999999999e+00, // itest=198: oxxxxx#20 nsp=-1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=198: oxxxxx#20 nsp=-1 mass=400 + -1.600000000000000e+01, -1.200000000000000e+01, // itest=198: oxxxxx#20 nsp=-1 mass=400 + -2.000000000000000e+01, -0.000000000000000e+00 } ); // itest=198: oxxxxx#20 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=199: oxxxxx#20 nsp=-1 mass=-400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=199: oxxxxx#20 nsp=-1 mass=-400 + -7.999999999999999e+00, -5.999999999999999e+00, // itest=199: oxxxxx#20 nsp=-1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00, // itest=199: oxxxxx#20 nsp=-1 mass=-400 + -1.600000000000000e+01, -1.200000000000000e+01, // itest=199: oxxxxx#20 nsp=-1 mass=-400 + -2.000000000000000e+01, -0.000000000000000e+00 } ); // itest=199: oxxxxx#20 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=200: ixxxxx#21 nsp=-1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=200: ixxxxx#21 nsp=-1 mass=400 + 9.863939238321439e+00, -1.052153518754287e+01, // itest=200: ixxxxx#21 nsp=-1 mass=400 + -2.433105012119288e+01, -0.000000000000000e+00, // itest=200: ixxxxx#21 nsp=-1 mass=400 + -4.931969619160719e+00, 5.260767593771432e+00, // itest=200: ixxxxx#21 nsp=-1 mass=400 + 1.216552506059644e+01, 0.000000000000000e+00 } ); // itest=200: ixxxxx#21 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=201: ixxxxx#21 nsp=-1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=201: ixxxxx#21 nsp=-1 mass=-400 + 9.863939238321439e+00, -1.052153518754287e+01, // itest=201: ixxxxx#21 nsp=-1 mass=-400 + -2.433105012119288e+01, -0.000000000000000e+00, // itest=201: ixxxxx#21 nsp=-1 mass=-400 + 4.931969619160719e+00, -5.260767593771432e+00, // itest=201: ixxxxx#21 nsp=-1 mass=-400 + -1.216552506059644e+01, -0.000000000000000e+00 } ); // itest=201: ixxxxx#21 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=202: vxxxxx#21 nsp=-1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=202: vxxxxx#21 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=202: vxxxxx#21 nsp=-1 mass=400 + -2.321373168788980e-01, 5.158607041753289e-01, // itest=202: vxxxxx#21 nsp=-1 mass=400 + -2.476131380041579e-01, -4.836194101643708e-01, // itest=202: vxxxxx#21 nsp=-1 mass=400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=202: vxxxxx#21 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=203: vxxxxx#21 nsp=-1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=203: vxxxxx#21 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=203: vxxxxx#21 nsp=-1 mass=-400 + -2.321373168788980e-01, 5.158607041753289e-01, // itest=203: vxxxxx#21 nsp=-1 mass=-400 + -2.476131380041579e-01, -4.836194101643708e-01, // itest=203: vxxxxx#21 nsp=-1 mass=-400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=203: vxxxxx#21 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=204: sxxxxx#21 nsp=-1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=204: sxxxxx#21 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=204: sxxxxx#21 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=204: sxxxxx#21 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=204: sxxxxx#21 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=204: sxxxxx#21 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=205: sxxxxx#21 nsp=-1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=205: sxxxxx#21 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=205: sxxxxx#21 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=205: sxxxxx#21 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=205: sxxxxx#21 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=205: sxxxxx#21 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=206: oxxxxx#21 nsp=-1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=206: oxxxxx#21 nsp=-1 mass=400 + -4.931969619160719e+00, -5.260767593771432e+00, // itest=206: oxxxxx#21 nsp=-1 mass=400 + 1.216552506059644e+01, 0.000000000000000e+00, // itest=206: oxxxxx#21 nsp=-1 mass=400 + 9.863939238321439e+00, 1.052153518754287e+01, // itest=206: oxxxxx#21 nsp=-1 mass=400 + -2.433105012119288e+01, -0.000000000000000e+00 } ); // itest=206: oxxxxx#21 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=207: oxxxxx#21 nsp=-1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=207: oxxxxx#21 nsp=-1 mass=-400 + 4.931969619160719e+00, 5.260767593771432e+00, // itest=207: oxxxxx#21 nsp=-1 mass=-400 + -1.216552506059644e+01, -0.000000000000000e+00, // itest=207: oxxxxx#21 nsp=-1 mass=-400 + 9.863939238321439e+00, 1.052153518754287e+01, // itest=207: oxxxxx#21 nsp=-1 mass=-400 + -2.433105012119288e+01, -0.000000000000000e+00 } ); // itest=207: oxxxxx#21 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=208: ixxxxx#22 nsp=-1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=208: ixxxxx#22 nsp=-1 mass=400 + 1.664100588675688e+01, -1.775040627920733e+01, // itest=208: ixxxxx#22 nsp=-1 mass=400 + -1.442220510185596e+01, -0.000000000000000e+00, // itest=208: ixxxxx#22 nsp=-1 mass=400 + -8.320502943378436e+00, 8.875203139603666e+00, // itest=208: ixxxxx#22 nsp=-1 mass=400 + 7.211102550927978e+00, 0.000000000000000e+00 } ); // itest=208: ixxxxx#22 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=209: ixxxxx#22 nsp=-1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=209: ixxxxx#22 nsp=-1 mass=-400 + 1.664100588675688e+01, -1.775040627920733e+01, // itest=209: ixxxxx#22 nsp=-1 mass=-400 + -1.442220510185596e+01, -0.000000000000000e+00, // itest=209: ixxxxx#22 nsp=-1 mass=-400 + 8.320502943378436e+00, -8.875203139603666e+00, // itest=209: ixxxxx#22 nsp=-1 mass=-400 + -7.211102550927978e+00, -0.000000000000000e+00 } ); // itest=209: ixxxxx#22 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=210: vxxxxx#22 nsp=-1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=210: vxxxxx#22 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=210: vxxxxx#22 nsp=-1 mass=400 + 2.321373168788980e-01, 5.158607041753289e-01, // itest=210: vxxxxx#22 nsp=-1 mass=400 + 2.476131380041579e-01, -4.836194101643708e-01, // itest=210: vxxxxx#22 nsp=-1 mass=400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=210: vxxxxx#22 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=211: vxxxxx#22 nsp=-1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=211: vxxxxx#22 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=211: vxxxxx#22 nsp=-1 mass=-400 + 2.321373168788980e-01, 5.158607041753289e-01, // itest=211: vxxxxx#22 nsp=-1 mass=-400 + 2.476131380041579e-01, -4.836194101643708e-01, // itest=211: vxxxxx#22 nsp=-1 mass=-400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=211: vxxxxx#22 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=212: sxxxxx#22 nsp=-1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=212: sxxxxx#22 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=212: sxxxxx#22 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=212: sxxxxx#22 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=212: sxxxxx#22 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=212: sxxxxx#22 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=213: sxxxxx#22 nsp=-1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=213: sxxxxx#22 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=213: sxxxxx#22 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=213: sxxxxx#22 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=213: sxxxxx#22 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=213: sxxxxx#22 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=214: oxxxxx#22 nsp=-1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=214: oxxxxx#22 nsp=-1 mass=400 + -8.320502943378436e+00, -8.875203139603666e+00, // itest=214: oxxxxx#22 nsp=-1 mass=400 + 7.211102550927978e+00, 0.000000000000000e+00, // itest=214: oxxxxx#22 nsp=-1 mass=400 + 1.664100588675688e+01, 1.775040627920733e+01, // itest=214: oxxxxx#22 nsp=-1 mass=400 + -1.442220510185596e+01, -0.000000000000000e+00 } ); // itest=214: oxxxxx#22 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=215: oxxxxx#22 nsp=-1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=215: oxxxxx#22 nsp=-1 mass=-400 + 8.320502943378436e+00, 8.875203139603666e+00, // itest=215: oxxxxx#22 nsp=-1 mass=-400 + -7.211102550927978e+00, -0.000000000000000e+00, // itest=215: oxxxxx#22 nsp=-1 mass=-400 + 1.664100588675688e+01, 1.775040627920733e+01, // itest=215: oxxxxx#22 nsp=-1 mass=-400 + -1.442220510185596e+01, -0.000000000000000e+00 } ); // itest=215: oxxxxx#22 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=216: ixxxxx#23 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=216: ixxxxx#23 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=216: ixxxxx#23 nsp=-1 mass=500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=216: ixxxxx#23 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=216: ixxxxx#23 nsp=-1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=216: ixxxxx#23 nsp=-1 mass=500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=217: ixxxxx#23 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=217: ixxxxx#23 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=217: ixxxxx#23 nsp=-1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=217: ixxxxx#23 nsp=-1 mass=-500 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=217: ixxxxx#23 nsp=-1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=217: ixxxxx#23 nsp=-1 mass=-500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=218: vxxxxx#23 nsp=-1 mass=500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=218: vxxxxx#23 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=218: vxxxxx#23 nsp=-1 mass=500 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=218: vxxxxx#23 nsp=-1 mass=500 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=218: vxxxxx#23 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=218: vxxxxx#23 nsp=-1 mass=500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=219: vxxxxx#23 nsp=-1 mass=-500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=219: vxxxxx#23 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=219: vxxxxx#23 nsp=-1 mass=-500 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=219: vxxxxx#23 nsp=-1 mass=-500 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=219: vxxxxx#23 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=219: vxxxxx#23 nsp=-1 mass=-500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=220: sxxxxx#23 nsp=-1 mass=500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=220: sxxxxx#23 nsp=-1 mass=500 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=220: sxxxxx#23 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=220: sxxxxx#23 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=220: sxxxxx#23 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=220: sxxxxx#23 nsp=-1 mass=500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=221: sxxxxx#23 nsp=-1 mass=-500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=221: sxxxxx#23 nsp=-1 mass=-500 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=221: sxxxxx#23 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=221: sxxxxx#23 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=221: sxxxxx#23 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=221: sxxxxx#23 nsp=-1 mass=-500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=222: oxxxxx#23 nsp=-1 mass=500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=222: oxxxxx#23 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=222: oxxxxx#23 nsp=-1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=222: oxxxxx#23 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=222: oxxxxx#23 nsp=-1 mass=500 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=222: oxxxxx#23 nsp=-1 mass=500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=223: oxxxxx#23 nsp=-1 mass=-500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=223: oxxxxx#23 nsp=-1 mass=-500 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=223: oxxxxx#23 nsp=-1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=223: oxxxxx#23 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=223: oxxxxx#23 nsp=-1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=223: oxxxxx#23 nsp=-1 mass=-500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=224: ixxxxx#24 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=224: ixxxxx#24 nsp=-1 mass=400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=224: ixxxxx#24 nsp=-1 mass=400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=224: ixxxxx#24 nsp=-1 mass=400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=224: ixxxxx#24 nsp=-1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00 } ); // itest=224: ixxxxx#24 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=225: ixxxxx#24 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=225: ixxxxx#24 nsp=-1 mass=-400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=225: ixxxxx#24 nsp=-1 mass=-400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=225: ixxxxx#24 nsp=-1 mass=-400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=225: ixxxxx#24 nsp=-1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00 } ); // itest=225: ixxxxx#24 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=226: vxxxxx#24 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=226: vxxxxx#24 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=226: vxxxxx#24 nsp=-1 mass=400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=226: vxxxxx#24 nsp=-1 mass=400 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=226: vxxxxx#24 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=226: vxxxxx#24 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=227: vxxxxx#24 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=227: vxxxxx#24 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=227: vxxxxx#24 nsp=-1 mass=-400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=227: vxxxxx#24 nsp=-1 mass=-400 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=227: vxxxxx#24 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=227: vxxxxx#24 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=228: sxxxxx#24 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=228: sxxxxx#24 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=228: sxxxxx#24 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=228: sxxxxx#24 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=228: sxxxxx#24 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=228: sxxxxx#24 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=229: sxxxxx#24 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=229: sxxxxx#24 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=229: sxxxxx#24 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=229: sxxxxx#24 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=229: sxxxxx#24 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=229: sxxxxx#24 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=230: oxxxxx#24 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=230: oxxxxx#24 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=230: oxxxxx#24 nsp=-1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=230: oxxxxx#24 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=230: oxxxxx#24 nsp=-1 mass=400 + -2.828427124746190e+01, -0.000000000000000e+00 } ); // itest=230: oxxxxx#24 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=231: oxxxxx#24 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=231: oxxxxx#24 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=231: oxxxxx#24 nsp=-1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=231: oxxxxx#24 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=231: oxxxxx#24 nsp=-1 mass=-400 + -2.828427124746190e+01, -0.000000000000000e+00 } ); // itest=231: oxxxxx#24 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=232: ixxxxx#25 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=232: ixxxxx#25 nsp=-1 mass=400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=232: ixxxxx#25 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=232: ixxxxx#25 nsp=-1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=232: ixxxxx#25 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=232: ixxxxx#25 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=233: ixxxxx#25 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=233: ixxxxx#25 nsp=-1 mass=-400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=233: ixxxxx#25 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=233: ixxxxx#25 nsp=-1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=233: ixxxxx#25 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=233: ixxxxx#25 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=234: vxxxxx#25 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=234: vxxxxx#25 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=234: vxxxxx#25 nsp=-1 mass=400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=234: vxxxxx#25 nsp=-1 mass=400 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=234: vxxxxx#25 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=234: vxxxxx#25 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=235: vxxxxx#25 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=235: vxxxxx#25 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=235: vxxxxx#25 nsp=-1 mass=-400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=235: vxxxxx#25 nsp=-1 mass=-400 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=235: vxxxxx#25 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=235: vxxxxx#25 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=236: sxxxxx#25 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=236: sxxxxx#25 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=236: sxxxxx#25 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=236: sxxxxx#25 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=236: sxxxxx#25 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=236: sxxxxx#25 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=237: sxxxxx#25 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=237: sxxxxx#25 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=237: sxxxxx#25 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=237: sxxxxx#25 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=237: sxxxxx#25 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=237: sxxxxx#25 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=238: oxxxxx#25 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=238: oxxxxx#25 nsp=-1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=238: oxxxxx#25 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=238: oxxxxx#25 nsp=-1 mass=400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=238: oxxxxx#25 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=238: oxxxxx#25 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=239: oxxxxx#25 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=239: oxxxxx#25 nsp=-1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=239: oxxxxx#25 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=239: oxxxxx#25 nsp=-1 mass=-400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=239: oxxxxx#25 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=239: oxxxxx#25 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=240: ixxxxx#26 nsp=-1 mass=400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=240: ixxxxx#26 nsp=-1 mass=400 + 1.200000000000000e+01, -1.600000000000000e+01, // itest=240: ixxxxx#26 nsp=-1 mass=400 + -2.000000000000000e+01, -0.000000000000000e+00, // itest=240: ixxxxx#26 nsp=-1 mass=400 + -5.999999999999999e+00, 7.999999999999999e+00, // itest=240: ixxxxx#26 nsp=-1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=240: ixxxxx#26 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=241: ixxxxx#26 nsp=-1 mass=-400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=241: ixxxxx#26 nsp=-1 mass=-400 + 1.200000000000000e+01, -1.600000000000000e+01, // itest=241: ixxxxx#26 nsp=-1 mass=-400 + -2.000000000000000e+01, -0.000000000000000e+00, // itest=241: ixxxxx#26 nsp=-1 mass=-400 + 5.999999999999999e+00, -7.999999999999999e+00, // itest=241: ixxxxx#26 nsp=-1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00 } ); // itest=241: ixxxxx#26 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=242: vxxxxx#26 nsp=-1 mass=400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=242: vxxxxx#26 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=242: vxxxxx#26 nsp=-1 mass=400 + 0.000000000000000e+00, 5.656854249492381e-01, // itest=242: vxxxxx#26 nsp=-1 mass=400 + 0.000000000000000e+00, -4.242640687119285e-01, // itest=242: vxxxxx#26 nsp=-1 mass=400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=242: vxxxxx#26 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=243: vxxxxx#26 nsp=-1 mass=-400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=243: vxxxxx#26 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=243: vxxxxx#26 nsp=-1 mass=-400 + -0.000000000000000e+00, 5.656854249492381e-01, // itest=243: vxxxxx#26 nsp=-1 mass=-400 + -0.000000000000000e+00, -4.242640687119285e-01, // itest=243: vxxxxx#26 nsp=-1 mass=-400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=243: vxxxxx#26 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=244: sxxxxx#26 nsp=-1 mass=400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=244: sxxxxx#26 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=244: sxxxxx#26 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=244: sxxxxx#26 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=244: sxxxxx#26 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=244: sxxxxx#26 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=245: sxxxxx#26 nsp=-1 mass=-400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=245: sxxxxx#26 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=245: sxxxxx#26 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=245: sxxxxx#26 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=245: sxxxxx#26 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=245: sxxxxx#26 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=246: oxxxxx#26 nsp=-1 mass=400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=246: oxxxxx#26 nsp=-1 mass=400 + -5.999999999999999e+00, -7.999999999999999e+00, // itest=246: oxxxxx#26 nsp=-1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=246: oxxxxx#26 nsp=-1 mass=400 + 1.200000000000000e+01, 1.600000000000000e+01, // itest=246: oxxxxx#26 nsp=-1 mass=400 + -2.000000000000000e+01, -0.000000000000000e+00 } ); // itest=246: oxxxxx#26 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=247: oxxxxx#26 nsp=-1 mass=-400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=247: oxxxxx#26 nsp=-1 mass=-400 + 5.999999999999999e+00, 7.999999999999999e+00, // itest=247: oxxxxx#26 nsp=-1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00, // itest=247: oxxxxx#26 nsp=-1 mass=-400 + 1.200000000000000e+01, 1.600000000000000e+01, // itest=247: oxxxxx#26 nsp=-1 mass=-400 + -2.000000000000000e+01, -0.000000000000000e+00 } ); // itest=247: oxxxxx#26 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=248: ixxxxx#27 nsp=-1 mass=400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=248: ixxxxx#27 nsp=-1 mass=400 + -1.600000000000000e+01, 1.200000000000000e+01, // itest=248: ixxxxx#27 nsp=-1 mass=400 + -2.000000000000000e+01, -0.000000000000000e+00, // itest=248: ixxxxx#27 nsp=-1 mass=400 + 7.999999999999999e+00, -5.999999999999999e+00, // itest=248: ixxxxx#27 nsp=-1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=248: ixxxxx#27 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=249: ixxxxx#27 nsp=-1 mass=-400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=249: ixxxxx#27 nsp=-1 mass=-400 + -1.600000000000000e+01, 1.200000000000000e+01, // itest=249: ixxxxx#27 nsp=-1 mass=-400 + -2.000000000000000e+01, -0.000000000000000e+00, // itest=249: ixxxxx#27 nsp=-1 mass=-400 + -7.999999999999999e+00, 5.999999999999999e+00, // itest=249: ixxxxx#27 nsp=-1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00 } ); // itest=249: ixxxxx#27 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=250: vxxxxx#27 nsp=-1 mass=400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=250: vxxxxx#27 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=250: vxxxxx#27 nsp=-1 mass=400 + 0.000000000000000e+00, -4.242640687119285e-01, // itest=250: vxxxxx#27 nsp=-1 mass=400 + 0.000000000000000e+00, 5.656854249492381e-01, // itest=250: vxxxxx#27 nsp=-1 mass=400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=250: vxxxxx#27 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=251: vxxxxx#27 nsp=-1 mass=-400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=251: vxxxxx#27 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=251: vxxxxx#27 nsp=-1 mass=-400 + 0.000000000000000e+00, -4.242640687119285e-01, // itest=251: vxxxxx#27 nsp=-1 mass=-400 + 0.000000000000000e+00, 5.656854249492381e-01, // itest=251: vxxxxx#27 nsp=-1 mass=-400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=251: vxxxxx#27 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=252: sxxxxx#27 nsp=-1 mass=400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=252: sxxxxx#27 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=252: sxxxxx#27 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=252: sxxxxx#27 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=252: sxxxxx#27 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=252: sxxxxx#27 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=253: sxxxxx#27 nsp=-1 mass=-400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=253: sxxxxx#27 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=253: sxxxxx#27 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=253: sxxxxx#27 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=253: sxxxxx#27 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=253: sxxxxx#27 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=254: oxxxxx#27 nsp=-1 mass=400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=254: oxxxxx#27 nsp=-1 mass=400 + 7.999999999999999e+00, 5.999999999999999e+00, // itest=254: oxxxxx#27 nsp=-1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=254: oxxxxx#27 nsp=-1 mass=400 + -1.600000000000000e+01, -1.200000000000000e+01, // itest=254: oxxxxx#27 nsp=-1 mass=400 + -2.000000000000000e+01, -0.000000000000000e+00 } ); // itest=254: oxxxxx#27 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=255: oxxxxx#27 nsp=-1 mass=-400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=255: oxxxxx#27 nsp=-1 mass=-400 + -7.999999999999999e+00, -5.999999999999999e+00, // itest=255: oxxxxx#27 nsp=-1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00, // itest=255: oxxxxx#27 nsp=-1 mass=-400 + -1.600000000000000e+01, -1.200000000000000e+01, // itest=255: oxxxxx#27 nsp=-1 mass=-400 + -2.000000000000000e+01, -0.000000000000000e+00 } ); // itest=255: oxxxxx#27 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=256: ixxxxx#28 nsp=-1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=256: ixxxxx#28 nsp=-1 mass=400 + 9.863939238321439e+00, -1.052153518754287e+01, // itest=256: ixxxxx#28 nsp=-1 mass=400 + -2.433105012119288e+01, -0.000000000000000e+00, // itest=256: ixxxxx#28 nsp=-1 mass=400 + -4.931969619160719e+00, 5.260767593771432e+00, // itest=256: ixxxxx#28 nsp=-1 mass=400 + 1.216552506059644e+01, 0.000000000000000e+00 } ); // itest=256: ixxxxx#28 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=257: ixxxxx#28 nsp=-1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=257: ixxxxx#28 nsp=-1 mass=-400 + 9.863939238321439e+00, -1.052153518754287e+01, // itest=257: ixxxxx#28 nsp=-1 mass=-400 + -2.433105012119288e+01, -0.000000000000000e+00, // itest=257: ixxxxx#28 nsp=-1 mass=-400 + 4.931969619160719e+00, -5.260767593771432e+00, // itest=257: ixxxxx#28 nsp=-1 mass=-400 + -1.216552506059644e+01, -0.000000000000000e+00 } ); // itest=257: ixxxxx#28 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=258: vxxxxx#28 nsp=-1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=258: vxxxxx#28 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=258: vxxxxx#28 nsp=-1 mass=400 + -2.321373168788980e-01, 5.158607041753289e-01, // itest=258: vxxxxx#28 nsp=-1 mass=400 + -2.476131380041579e-01, -4.836194101643708e-01, // itest=258: vxxxxx#28 nsp=-1 mass=400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=258: vxxxxx#28 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=259: vxxxxx#28 nsp=-1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=259: vxxxxx#28 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=259: vxxxxx#28 nsp=-1 mass=-400 + -2.321373168788980e-01, 5.158607041753289e-01, // itest=259: vxxxxx#28 nsp=-1 mass=-400 + -2.476131380041579e-01, -4.836194101643708e-01, // itest=259: vxxxxx#28 nsp=-1 mass=-400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=259: vxxxxx#28 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=260: sxxxxx#28 nsp=-1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=260: sxxxxx#28 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=260: sxxxxx#28 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=260: sxxxxx#28 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=260: sxxxxx#28 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=260: sxxxxx#28 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=261: sxxxxx#28 nsp=-1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=261: sxxxxx#28 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=261: sxxxxx#28 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=261: sxxxxx#28 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=261: sxxxxx#28 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=261: sxxxxx#28 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=262: oxxxxx#28 nsp=-1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=262: oxxxxx#28 nsp=-1 mass=400 + -4.931969619160719e+00, -5.260767593771432e+00, // itest=262: oxxxxx#28 nsp=-1 mass=400 + 1.216552506059644e+01, 0.000000000000000e+00, // itest=262: oxxxxx#28 nsp=-1 mass=400 + 9.863939238321439e+00, 1.052153518754287e+01, // itest=262: oxxxxx#28 nsp=-1 mass=400 + -2.433105012119288e+01, -0.000000000000000e+00 } ); // itest=262: oxxxxx#28 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=263: oxxxxx#28 nsp=-1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=263: oxxxxx#28 nsp=-1 mass=-400 + 4.931969619160719e+00, 5.260767593771432e+00, // itest=263: oxxxxx#28 nsp=-1 mass=-400 + -1.216552506059644e+01, -0.000000000000000e+00, // itest=263: oxxxxx#28 nsp=-1 mass=-400 + 9.863939238321439e+00, 1.052153518754287e+01, // itest=263: oxxxxx#28 nsp=-1 mass=-400 + -2.433105012119288e+01, -0.000000000000000e+00 } ); // itest=263: oxxxxx#28 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=264: ixxxxx#29 nsp=-1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=264: ixxxxx#29 nsp=-1 mass=400 + 1.664100588675688e+01, -1.775040627920733e+01, // itest=264: ixxxxx#29 nsp=-1 mass=400 + -1.442220510185596e+01, -0.000000000000000e+00, // itest=264: ixxxxx#29 nsp=-1 mass=400 + -8.320502943378436e+00, 8.875203139603666e+00, // itest=264: ixxxxx#29 nsp=-1 mass=400 + 7.211102550927978e+00, 0.000000000000000e+00 } ); // itest=264: ixxxxx#29 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=265: ixxxxx#29 nsp=-1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=265: ixxxxx#29 nsp=-1 mass=-400 + 1.664100588675688e+01, -1.775040627920733e+01, // itest=265: ixxxxx#29 nsp=-1 mass=-400 + -1.442220510185596e+01, -0.000000000000000e+00, // itest=265: ixxxxx#29 nsp=-1 mass=-400 + 8.320502943378436e+00, -8.875203139603666e+00, // itest=265: ixxxxx#29 nsp=-1 mass=-400 + -7.211102550927978e+00, -0.000000000000000e+00 } ); // itest=265: ixxxxx#29 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=266: vxxxxx#29 nsp=-1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=266: vxxxxx#29 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=266: vxxxxx#29 nsp=-1 mass=400 + 2.321373168788980e-01, 5.158607041753289e-01, // itest=266: vxxxxx#29 nsp=-1 mass=400 + 2.476131380041579e-01, -4.836194101643708e-01, // itest=266: vxxxxx#29 nsp=-1 mass=400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=266: vxxxxx#29 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=267: vxxxxx#29 nsp=-1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=267: vxxxxx#29 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=267: vxxxxx#29 nsp=-1 mass=-400 + 2.321373168788980e-01, 5.158607041753289e-01, // itest=267: vxxxxx#29 nsp=-1 mass=-400 + 2.476131380041579e-01, -4.836194101643708e-01, // itest=267: vxxxxx#29 nsp=-1 mass=-400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=267: vxxxxx#29 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=268: sxxxxx#29 nsp=-1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=268: sxxxxx#29 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=268: sxxxxx#29 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=268: sxxxxx#29 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=268: sxxxxx#29 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=268: sxxxxx#29 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=269: sxxxxx#29 nsp=-1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=269: sxxxxx#29 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=269: sxxxxx#29 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=269: sxxxxx#29 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=269: sxxxxx#29 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=269: sxxxxx#29 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=270: oxxxxx#29 nsp=-1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=270: oxxxxx#29 nsp=-1 mass=400 + -8.320502943378436e+00, -8.875203139603666e+00, // itest=270: oxxxxx#29 nsp=-1 mass=400 + 7.211102550927978e+00, 0.000000000000000e+00, // itest=270: oxxxxx#29 nsp=-1 mass=400 + 1.664100588675688e+01, 1.775040627920733e+01, // itest=270: oxxxxx#29 nsp=-1 mass=400 + -1.442220510185596e+01, -0.000000000000000e+00 } ); // itest=270: oxxxxx#29 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=271: oxxxxx#29 nsp=-1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=271: oxxxxx#29 nsp=-1 mass=-400 + 8.320502943378436e+00, 8.875203139603666e+00, // itest=271: oxxxxx#29 nsp=-1 mass=-400 + -7.211102550927978e+00, -0.000000000000000e+00, // itest=271: oxxxxx#29 nsp=-1 mass=-400 + 1.664100588675688e+01, 1.775040627920733e+01, // itest=271: oxxxxx#29 nsp=-1 mass=-400 + -1.442220510185596e+01, -0.000000000000000e+00 } ); // itest=271: oxxxxx#29 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=272: ixxxxx#30 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=272: ixxxxx#30 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=272: ixxxxx#30 nsp=-1 mass=500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=272: ixxxxx#30 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=272: ixxxxx#30 nsp=-1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=272: ixxxxx#30 nsp=-1 mass=500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=273: ixxxxx#30 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=273: ixxxxx#30 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=273: ixxxxx#30 nsp=-1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=273: ixxxxx#30 nsp=-1 mass=-500 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=273: ixxxxx#30 nsp=-1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=273: ixxxxx#30 nsp=-1 mass=-500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=274: vxxxxx#30 nsp=-1 mass=500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=274: vxxxxx#30 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=274: vxxxxx#30 nsp=-1 mass=500 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=274: vxxxxx#30 nsp=-1 mass=500 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=274: vxxxxx#30 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=274: vxxxxx#30 nsp=-1 mass=500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=275: vxxxxx#30 nsp=-1 mass=-500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=275: vxxxxx#30 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=275: vxxxxx#30 nsp=-1 mass=-500 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=275: vxxxxx#30 nsp=-1 mass=-500 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=275: vxxxxx#30 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=275: vxxxxx#30 nsp=-1 mass=-500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=276: sxxxxx#30 nsp=-1 mass=500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=276: sxxxxx#30 nsp=-1 mass=500 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=276: sxxxxx#30 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=276: sxxxxx#30 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=276: sxxxxx#30 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=276: sxxxxx#30 nsp=-1 mass=500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=277: sxxxxx#30 nsp=-1 mass=-500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=277: sxxxxx#30 nsp=-1 mass=-500 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=277: sxxxxx#30 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=277: sxxxxx#30 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=277: sxxxxx#30 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=277: sxxxxx#30 nsp=-1 mass=-500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=278: oxxxxx#30 nsp=-1 mass=500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=278: oxxxxx#30 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=278: oxxxxx#30 nsp=-1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=278: oxxxxx#30 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=278: oxxxxx#30 nsp=-1 mass=500 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=278: oxxxxx#30 nsp=-1 mass=500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=279: oxxxxx#30 nsp=-1 mass=-500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=279: oxxxxx#30 nsp=-1 mass=-500 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=279: oxxxxx#30 nsp=-1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=279: oxxxxx#30 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=279: oxxxxx#30 nsp=-1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=279: oxxxxx#30 nsp=-1 mass=-500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=280: ixxxxx#31 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=280: ixxxxx#31 nsp=-1 mass=400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=280: ixxxxx#31 nsp=-1 mass=400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=280: ixxxxx#31 nsp=-1 mass=400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=280: ixxxxx#31 nsp=-1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00 } ); // itest=280: ixxxxx#31 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=281: ixxxxx#31 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=281: ixxxxx#31 nsp=-1 mass=-400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=281: ixxxxx#31 nsp=-1 mass=-400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=281: ixxxxx#31 nsp=-1 mass=-400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=281: ixxxxx#31 nsp=-1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00 } ); // itest=281: ixxxxx#31 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=282: vxxxxx#31 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=282: vxxxxx#31 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=282: vxxxxx#31 nsp=-1 mass=400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=282: vxxxxx#31 nsp=-1 mass=400 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=282: vxxxxx#31 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=282: vxxxxx#31 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=283: vxxxxx#31 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=283: vxxxxx#31 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=283: vxxxxx#31 nsp=-1 mass=-400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=283: vxxxxx#31 nsp=-1 mass=-400 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=283: vxxxxx#31 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=283: vxxxxx#31 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=284: sxxxxx#31 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=284: sxxxxx#31 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=284: sxxxxx#31 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=284: sxxxxx#31 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=284: sxxxxx#31 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=284: sxxxxx#31 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=285: sxxxxx#31 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=285: sxxxxx#31 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=285: sxxxxx#31 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=285: sxxxxx#31 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=285: sxxxxx#31 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=285: sxxxxx#31 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=286: oxxxxx#31 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=286: oxxxxx#31 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=286: oxxxxx#31 nsp=-1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=286: oxxxxx#31 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=286: oxxxxx#31 nsp=-1 mass=400 + -2.828427124746190e+01, -0.000000000000000e+00 } ); // itest=286: oxxxxx#31 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=287: oxxxxx#31 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=287: oxxxxx#31 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=287: oxxxxx#31 nsp=-1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=287: oxxxxx#31 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=287: oxxxxx#31 nsp=-1 mass=-400 + -2.828427124746190e+01, -0.000000000000000e+00 } ); // itest=287: oxxxxx#31 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=288: ixxxxx#0 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=288: ixxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=288: ixxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=288: ixxxxx#0 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=288: ixxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=288: ixxxxx#0 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=289: ixxxxx#0 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=289: ixxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=289: ixxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=289: ixxxxx#0 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=289: ixxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=289: ixxxxx#0 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=290: ipzxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=290: ipzxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=290: ipzxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=290: ipzxxx#0 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=290: ipzxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=290: ipzxxx#0 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=291: vxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=291: vxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=291: vxxxxx#0 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=291: vxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=291: vxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=291: vxxxxx#0 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=292: vxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=292: vxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=292: vxxxxx#0 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=292: vxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=292: vxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=292: vxxxxx#0 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=293: sxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=293: sxxxxx#0 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=293: sxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=293: sxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=293: sxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=293: sxxxxx#0 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=294: sxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=294: sxxxxx#0 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=294: sxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=294: sxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=294: sxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=294: sxxxxx#0 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=295: oxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=295: oxxxxx#0 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=295: oxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=295: oxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=295: oxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=295: oxxxxx#0 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=296: oxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=296: oxxxxx#0 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=296: oxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=296: oxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=296: oxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=296: oxxxxx#0 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=297: opzxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=297: opzxxx#0 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=297: opzxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=297: opzxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=297: opzxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=297: opzxxx#0 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=298: ixxxxx#1 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=298: ixxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=298: ixxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=298: ixxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=298: ixxxxx#1 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=298: ixxxxx#1 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=299: ixxxxx#1 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=299: ixxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=299: ixxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=299: ixxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=299: ixxxxx#1 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=299: ixxxxx#1 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=300: imzxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=300: imzxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=300: imzxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=300: imzxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=300: imzxxx#1 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=300: imzxxx#1 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=301: vxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=301: vxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=301: vxxxxx#1 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=301: vxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=301: vxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=301: vxxxxx#1 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=302: vxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=302: vxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=302: vxxxxx#1 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=302: vxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=302: vxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=302: vxxxxx#1 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=303: sxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=303: sxxxxx#1 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=303: sxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=303: sxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=303: sxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=303: sxxxxx#1 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=304: sxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=304: sxxxxx#1 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=304: sxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=304: sxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=304: sxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=304: sxxxxx#1 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=305: oxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=305: oxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=305: oxxxxx#1 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=305: oxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=305: oxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=305: oxxxxx#1 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=306: oxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=306: oxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=306: oxxxxx#1 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=306: oxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=306: oxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=306: oxxxxx#1 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=307: omzxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=307: omzxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=307: omzxxx#1 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=307: omzxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=307: omzxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=307: omzxxx#1 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=308: ixxxxx#2 nsp=1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=308: ixxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=308: ixxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=308: ixxxxx#2 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=308: ixxxxx#2 nsp=1 mass=0 + 1.341640786499874e+01, 1.788854381999831e+01 } ); // itest=308: ixxxxx#2 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=309: ixxxxx#2 nsp=1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=309: ixxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=309: ixxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=309: ixxxxx#2 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=309: ixxxxx#2 nsp=1 mass=0 + 1.341640786499874e+01, 1.788854381999831e+01 } ); // itest=309: ixxxxx#2 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=310: ixzxxx#2 nsp=1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=310: ixzxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=310: ixzxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=310: ixzxxx#2 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=310: ixzxxx#2 nsp=1 mass=0 + 1.341640786499874e+01, 1.788854381999832e+01 } ); // itest=310: ixzxxx#2 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=311: vxxxxx#2 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=311: vxxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=311: vxxxxx#2 nsp=1 mass=0 + -0.000000000000000e+00, -5.656854249492381e-01, // itest=311: vxxxxx#2 nsp=1 mass=0 + -0.000000000000000e+00, 4.242640687119285e-01, // itest=311: vxxxxx#2 nsp=1 mass=0 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=311: vxxxxx#2 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=312: vxxxxx#2 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=312: vxxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=312: vxxxxx#2 nsp=1 mass=0 + -0.000000000000000e+00, -5.656854249492381e-01, // itest=312: vxxxxx#2 nsp=1 mass=0 + -0.000000000000000e+00, 4.242640687119285e-01, // itest=312: vxxxxx#2 nsp=1 mass=0 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=312: vxxxxx#2 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=313: sxxxxx#2 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=313: sxxxxx#2 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=313: sxxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=313: sxxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=313: sxxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=313: sxxxxx#2 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=314: sxxxxx#2 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=314: sxxxxx#2 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=314: sxxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=314: sxxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=314: sxxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=314: sxxxxx#2 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=315: oxxxxx#2 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=315: oxxxxx#2 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=315: oxxxxx#2 nsp=1 mass=0 + 1.341640786499874e+01, -1.788854381999831e+01, // itest=315: oxxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=315: oxxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=315: oxxxxx#2 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=316: oxxxxx#2 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=316: oxxxxx#2 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=316: oxxxxx#2 nsp=1 mass=0 + 1.341640786499874e+01, -1.788854381999831e+01, // itest=316: oxxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=316: oxxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=316: oxxxxx#2 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=317: oxzxxx#2 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=317: oxzxxx#2 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=317: oxzxxx#2 nsp=1 mass=0 + 1.341640786499874e+01, -1.788854381999832e+01, // itest=317: oxzxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=317: oxzxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=317: oxzxxx#2 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=318: ixxxxx#3 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=318: ixxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=318: ixxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=318: ixxxxx#3 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=318: ixxxxx#3 nsp=1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=318: ixxxxx#3 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=319: ixxxxx#3 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=319: ixxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=319: ixxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=319: ixxxxx#3 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=319: ixxxxx#3 nsp=1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=319: ixxxxx#3 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=320: ixzxxx#3 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=320: ixzxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=320: ixzxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=320: ixzxxx#3 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=320: ixzxxx#3 nsp=1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=320: ixzxxx#3 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=321: vxxxxx#3 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=321: vxxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=321: vxxxxx#3 nsp=1 mass=0 + -3.394112549695428e-01, -5.656854249492381e-01, // itest=321: vxxxxx#3 nsp=1 mass=0 + -4.525483399593904e-01, 4.242640687119285e-01, // itest=321: vxxxxx#3 nsp=1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=321: vxxxxx#3 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=322: vxxxxx#3 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=322: vxxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=322: vxxxxx#3 nsp=1 mass=0 + -3.394112549695428e-01, -5.656854249492381e-01, // itest=322: vxxxxx#3 nsp=1 mass=0 + -4.525483399593904e-01, 4.242640687119285e-01, // itest=322: vxxxxx#3 nsp=1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=322: vxxxxx#3 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=323: sxxxxx#3 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=323: sxxxxx#3 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=323: sxxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=323: sxxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=323: sxxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=323: sxxxxx#3 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=324: sxxxxx#3 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=324: sxxxxx#3 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=324: sxxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=324: sxxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=324: sxxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=324: sxxxxx#3 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=325: oxxxxx#3 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=325: oxxxxx#3 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=325: oxxxxx#3 nsp=1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=325: oxxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=325: oxxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=325: oxxxxx#3 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=326: oxxxxx#3 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=326: oxxxxx#3 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=326: oxxxxx#3 nsp=1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=326: oxxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=326: oxxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=326: oxxxxx#3 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=327: oxzxxx#3 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=327: oxzxxx#3 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=327: oxzxxx#3 nsp=1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=327: oxzxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=327: oxzxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=327: oxzxxx#3 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=328: ixxxxx#4 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=328: ixxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=328: ixxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=328: ixxxxx#4 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=328: ixxxxx#4 nsp=1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01 } ); // itest=328: ixxxxx#4 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=329: ixxxxx#4 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=329: ixxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=329: ixxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=329: ixxxxx#4 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=329: ixxxxx#4 nsp=1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01 } ); // itest=329: ixxxxx#4 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=330: ixzxxx#4 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=330: ixzxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=330: ixzxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=330: ixzxxx#4 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=330: ixzxxx#4 nsp=1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01 } ); // itest=330: ixzxxx#4 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=331: vxxxxx#4 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=331: vxxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=331: vxxxxx#4 nsp=1 mass=0 + 3.394112549695428e-01, -5.656854249492381e-01, // itest=331: vxxxxx#4 nsp=1 mass=0 + 4.525483399593904e-01, 4.242640687119285e-01, // itest=331: vxxxxx#4 nsp=1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=331: vxxxxx#4 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=332: vxxxxx#4 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=332: vxxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=332: vxxxxx#4 nsp=1 mass=0 + 3.394112549695428e-01, -5.656854249492381e-01, // itest=332: vxxxxx#4 nsp=1 mass=0 + 4.525483399593904e-01, 4.242640687119285e-01, // itest=332: vxxxxx#4 nsp=1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=332: vxxxxx#4 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=333: sxxxxx#4 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=333: sxxxxx#4 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=333: sxxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=333: sxxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=333: sxxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=333: sxxxxx#4 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=334: sxxxxx#4 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=334: sxxxxx#4 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=334: sxxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=334: sxxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=334: sxxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=334: sxxxxx#4 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=335: oxxxxx#4 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=335: oxxxxx#4 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=335: oxxxxx#4 nsp=1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=335: oxxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=335: oxxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=335: oxxxxx#4 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=336: oxxxxx#4 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=336: oxxxxx#4 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=336: oxxxxx#4 nsp=1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=336: oxxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=336: oxxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=336: oxxxxx#4 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=337: oxzxxx#4 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=337: oxzxxx#4 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=337: oxzxxx#4 nsp=1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=337: oxzxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=337: oxzxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=337: oxzxxx#4 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=338: ixxxxx#5 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=338: ixxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=338: ixxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=338: ixxxxx#5 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=338: ixxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=338: ixxxxx#5 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=339: ixxxxx#5 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=339: ixxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=339: ixxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=339: ixxxxx#5 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=339: ixxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=339: ixxxxx#5 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=340: ipzxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=340: ipzxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=340: ipzxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=340: ipzxxx#5 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=340: ipzxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=340: ipzxxx#5 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=341: vxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=341: vxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=341: vxxxxx#5 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=341: vxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=341: vxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=341: vxxxxx#5 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=342: vxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=342: vxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=342: vxxxxx#5 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=342: vxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=342: vxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=342: vxxxxx#5 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=343: sxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=343: sxxxxx#5 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=343: sxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=343: sxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=343: sxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=343: sxxxxx#5 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=344: sxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=344: sxxxxx#5 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=344: sxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=344: sxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=344: sxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=344: sxxxxx#5 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=345: oxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=345: oxxxxx#5 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=345: oxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=345: oxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=345: oxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=345: oxxxxx#5 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=346: oxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=346: oxxxxx#5 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=346: oxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=346: oxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=346: oxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=346: oxxxxx#5 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=347: opzxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=347: opzxxx#5 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=347: opzxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=347: opzxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=347: opzxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=347: opzxxx#5 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=348: ixxxxx#6 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=348: ixxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=348: ixxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=348: ixxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=348: ixxxxx#6 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=348: ixxxxx#6 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=349: ixxxxx#6 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=349: ixxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=349: ixxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=349: ixxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=349: ixxxxx#6 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=349: ixxxxx#6 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=350: imzxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=350: imzxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=350: imzxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=350: imzxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=350: imzxxx#6 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=350: imzxxx#6 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=351: vxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=351: vxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=351: vxxxxx#6 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=351: vxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=351: vxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=351: vxxxxx#6 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=352: vxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=352: vxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=352: vxxxxx#6 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=352: vxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=352: vxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=352: vxxxxx#6 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=353: sxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=353: sxxxxx#6 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=353: sxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=353: sxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=353: sxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=353: sxxxxx#6 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=354: sxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=354: sxxxxx#6 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=354: sxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=354: sxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=354: sxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=354: sxxxxx#6 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=355: oxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=355: oxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=355: oxxxxx#6 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=355: oxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=355: oxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=355: oxxxxx#6 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=356: oxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=356: oxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=356: oxxxxx#6 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=356: oxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=356: oxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=356: oxxxxx#6 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=357: omzxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=357: omzxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=357: omzxxx#6 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=357: omzxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=357: omzxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=357: omzxxx#6 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=358: ixxxxx#7 nsp=1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=358: ixxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=358: ixxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=358: ixxxxx#7 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=358: ixxxxx#7 nsp=1 mass=0 + 1.341640786499874e+01, 1.788854381999831e+01 } ); // itest=358: ixxxxx#7 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=359: ixxxxx#7 nsp=1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=359: ixxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=359: ixxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=359: ixxxxx#7 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=359: ixxxxx#7 nsp=1 mass=0 + 1.341640786499874e+01, 1.788854381999831e+01 } ); // itest=359: ixxxxx#7 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=360: ixzxxx#7 nsp=1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=360: ixzxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=360: ixzxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=360: ixzxxx#7 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=360: ixzxxx#7 nsp=1 mass=0 + 1.341640786499874e+01, 1.788854381999832e+01 } ); // itest=360: ixzxxx#7 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=361: vxxxxx#7 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=361: vxxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=361: vxxxxx#7 nsp=1 mass=0 + -0.000000000000000e+00, -5.656854249492381e-01, // itest=361: vxxxxx#7 nsp=1 mass=0 + -0.000000000000000e+00, 4.242640687119285e-01, // itest=361: vxxxxx#7 nsp=1 mass=0 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=361: vxxxxx#7 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=362: vxxxxx#7 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=362: vxxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=362: vxxxxx#7 nsp=1 mass=0 + -0.000000000000000e+00, -5.656854249492381e-01, // itest=362: vxxxxx#7 nsp=1 mass=0 + -0.000000000000000e+00, 4.242640687119285e-01, // itest=362: vxxxxx#7 nsp=1 mass=0 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=362: vxxxxx#7 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=363: sxxxxx#7 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=363: sxxxxx#7 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=363: sxxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=363: sxxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=363: sxxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=363: sxxxxx#7 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=364: sxxxxx#7 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=364: sxxxxx#7 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=364: sxxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=364: sxxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=364: sxxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=364: sxxxxx#7 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=365: oxxxxx#7 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=365: oxxxxx#7 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=365: oxxxxx#7 nsp=1 mass=0 + 1.341640786499874e+01, -1.788854381999831e+01, // itest=365: oxxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=365: oxxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=365: oxxxxx#7 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=366: oxxxxx#7 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=366: oxxxxx#7 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=366: oxxxxx#7 nsp=1 mass=0 + 1.341640786499874e+01, -1.788854381999831e+01, // itest=366: oxxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=366: oxxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=366: oxxxxx#7 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=367: oxzxxx#7 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=367: oxzxxx#7 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=367: oxzxxx#7 nsp=1 mass=0 + 1.341640786499874e+01, -1.788854381999832e+01, // itest=367: oxzxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=367: oxzxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=367: oxzxxx#7 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=368: ixxxxx#8 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=368: ixxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=368: ixxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=368: ixxxxx#8 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=368: ixxxxx#8 nsp=1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=368: ixxxxx#8 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=369: ixxxxx#8 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=369: ixxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=369: ixxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=369: ixxxxx#8 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=369: ixxxxx#8 nsp=1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=369: ixxxxx#8 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=370: ixzxxx#8 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=370: ixzxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=370: ixzxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=370: ixzxxx#8 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=370: ixzxxx#8 nsp=1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=370: ixzxxx#8 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=371: vxxxxx#8 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=371: vxxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=371: vxxxxx#8 nsp=1 mass=0 + -3.394112549695428e-01, -5.656854249492381e-01, // itest=371: vxxxxx#8 nsp=1 mass=0 + -4.525483399593904e-01, 4.242640687119285e-01, // itest=371: vxxxxx#8 nsp=1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=371: vxxxxx#8 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=372: vxxxxx#8 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=372: vxxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=372: vxxxxx#8 nsp=1 mass=0 + -3.394112549695428e-01, -5.656854249492381e-01, // itest=372: vxxxxx#8 nsp=1 mass=0 + -4.525483399593904e-01, 4.242640687119285e-01, // itest=372: vxxxxx#8 nsp=1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=372: vxxxxx#8 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=373: sxxxxx#8 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=373: sxxxxx#8 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=373: sxxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=373: sxxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=373: sxxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=373: sxxxxx#8 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=374: sxxxxx#8 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=374: sxxxxx#8 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=374: sxxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=374: sxxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=374: sxxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=374: sxxxxx#8 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=375: oxxxxx#8 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=375: oxxxxx#8 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=375: oxxxxx#8 nsp=1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=375: oxxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=375: oxxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=375: oxxxxx#8 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=376: oxxxxx#8 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=376: oxxxxx#8 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=376: oxxxxx#8 nsp=1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=376: oxxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=376: oxxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=376: oxxxxx#8 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=377: oxzxxx#8 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=377: oxzxxx#8 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=377: oxzxxx#8 nsp=1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=377: oxzxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=377: oxzxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=377: oxzxxx#8 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=378: ixxxxx#9 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=378: ixxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=378: ixxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=378: ixxxxx#9 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=378: ixxxxx#9 nsp=1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01 } ); // itest=378: ixxxxx#9 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=379: ixxxxx#9 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=379: ixxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=379: ixxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=379: ixxxxx#9 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=379: ixxxxx#9 nsp=1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01 } ); // itest=379: ixxxxx#9 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=380: ixzxxx#9 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=380: ixzxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=380: ixzxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=380: ixzxxx#9 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=380: ixzxxx#9 nsp=1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01 } ); // itest=380: ixzxxx#9 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=381: vxxxxx#9 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=381: vxxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=381: vxxxxx#9 nsp=1 mass=0 + 3.394112549695428e-01, -5.656854249492381e-01, // itest=381: vxxxxx#9 nsp=1 mass=0 + 4.525483399593904e-01, 4.242640687119285e-01, // itest=381: vxxxxx#9 nsp=1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=381: vxxxxx#9 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=382: vxxxxx#9 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=382: vxxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=382: vxxxxx#9 nsp=1 mass=0 + 3.394112549695428e-01, -5.656854249492381e-01, // itest=382: vxxxxx#9 nsp=1 mass=0 + 4.525483399593904e-01, 4.242640687119285e-01, // itest=382: vxxxxx#9 nsp=1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=382: vxxxxx#9 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=383: sxxxxx#9 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=383: sxxxxx#9 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=383: sxxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=383: sxxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=383: sxxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=383: sxxxxx#9 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=384: sxxxxx#9 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=384: sxxxxx#9 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=384: sxxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=384: sxxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=384: sxxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=384: sxxxxx#9 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=385: oxxxxx#9 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=385: oxxxxx#9 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=385: oxxxxx#9 nsp=1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=385: oxxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=385: oxxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=385: oxxxxx#9 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=386: oxxxxx#9 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=386: oxxxxx#9 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=386: oxxxxx#9 nsp=1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=386: oxxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=386: oxxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=386: oxxxxx#9 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=387: oxzxxx#9 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=387: oxzxxx#9 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=387: oxzxxx#9 nsp=1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=387: oxzxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=387: oxzxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=387: oxzxxx#9 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=388: ixxxxx#10 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=388: ixxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=388: ixxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=388: ixxxxx#10 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=388: ixxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=388: ixxxxx#10 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=389: ixxxxx#10 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=389: ixxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=389: ixxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=389: ixxxxx#10 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=389: ixxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=389: ixxxxx#10 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=390: ipzxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=390: ipzxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=390: ipzxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=390: ipzxxx#10 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=390: ipzxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=390: ipzxxx#10 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=391: vxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=391: vxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=391: vxxxxx#10 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=391: vxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=391: vxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=391: vxxxxx#10 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=392: vxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=392: vxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=392: vxxxxx#10 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=392: vxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=392: vxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=392: vxxxxx#10 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=393: sxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=393: sxxxxx#10 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=393: sxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=393: sxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=393: sxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=393: sxxxxx#10 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=394: sxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=394: sxxxxx#10 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=394: sxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=394: sxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=394: sxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=394: sxxxxx#10 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=395: oxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=395: oxxxxx#10 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=395: oxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=395: oxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=395: oxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=395: oxxxxx#10 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=396: oxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=396: oxxxxx#10 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=396: oxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=396: oxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=396: oxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=396: oxxxxx#10 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=397: opzxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=397: opzxxx#10 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=397: opzxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=397: opzxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=397: opzxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=397: opzxxx#10 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=398: ixxxxx#11 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=398: ixxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=398: ixxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=398: ixxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=398: ixxxxx#11 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=398: ixxxxx#11 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=399: ixxxxx#11 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=399: ixxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=399: ixxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=399: ixxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=399: ixxxxx#11 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=399: ixxxxx#11 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=400: imzxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=400: imzxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=400: imzxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=400: imzxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=400: imzxxx#11 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=400: imzxxx#11 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=401: vxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=401: vxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=401: vxxxxx#11 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=401: vxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=401: vxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=401: vxxxxx#11 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=402: vxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=402: vxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=402: vxxxxx#11 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=402: vxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=402: vxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=402: vxxxxx#11 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=403: sxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=403: sxxxxx#11 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=403: sxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=403: sxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=403: sxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=403: sxxxxx#11 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=404: sxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=404: sxxxxx#11 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=404: sxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=404: sxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=404: sxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=404: sxxxxx#11 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=405: oxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=405: oxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=405: oxxxxx#11 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=405: oxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=405: oxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=405: oxxxxx#11 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=406: oxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=406: oxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=406: oxxxxx#11 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=406: oxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=406: oxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=406: oxxxxx#11 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=407: omzxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=407: omzxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=407: omzxxx#11 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=407: omzxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=407: omzxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=407: omzxxx#11 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=408: ixxxxx#12 nsp=1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=408: ixxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=408: ixxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=408: ixxxxx#12 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=408: ixxxxx#12 nsp=1 mass=0 + 1.341640786499874e+01, 1.788854381999831e+01 } ); // itest=408: ixxxxx#12 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=409: ixxxxx#12 nsp=1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=409: ixxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=409: ixxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=409: ixxxxx#12 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=409: ixxxxx#12 nsp=1 mass=0 + 1.341640786499874e+01, 1.788854381999831e+01 } ); // itest=409: ixxxxx#12 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=410: ixzxxx#12 nsp=1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=410: ixzxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=410: ixzxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=410: ixzxxx#12 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=410: ixzxxx#12 nsp=1 mass=0 + 1.341640786499874e+01, 1.788854381999832e+01 } ); // itest=410: ixzxxx#12 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=411: vxxxxx#12 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=411: vxxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=411: vxxxxx#12 nsp=1 mass=0 + -0.000000000000000e+00, -5.656854249492381e-01, // itest=411: vxxxxx#12 nsp=1 mass=0 + -0.000000000000000e+00, 4.242640687119285e-01, // itest=411: vxxxxx#12 nsp=1 mass=0 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=411: vxxxxx#12 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=412: vxxxxx#12 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=412: vxxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=412: vxxxxx#12 nsp=1 mass=0 + -0.000000000000000e+00, -5.656854249492381e-01, // itest=412: vxxxxx#12 nsp=1 mass=0 + -0.000000000000000e+00, 4.242640687119285e-01, // itest=412: vxxxxx#12 nsp=1 mass=0 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=412: vxxxxx#12 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=413: sxxxxx#12 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=413: sxxxxx#12 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=413: sxxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=413: sxxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=413: sxxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=413: sxxxxx#12 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=414: sxxxxx#12 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=414: sxxxxx#12 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=414: sxxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=414: sxxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=414: sxxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=414: sxxxxx#12 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=415: oxxxxx#12 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=415: oxxxxx#12 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=415: oxxxxx#12 nsp=1 mass=0 + 1.341640786499874e+01, -1.788854381999831e+01, // itest=415: oxxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=415: oxxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=415: oxxxxx#12 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=416: oxxxxx#12 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=416: oxxxxx#12 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=416: oxxxxx#12 nsp=1 mass=0 + 1.341640786499874e+01, -1.788854381999831e+01, // itest=416: oxxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=416: oxxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=416: oxxxxx#12 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=417: oxzxxx#12 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=417: oxzxxx#12 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=417: oxzxxx#12 nsp=1 mass=0 + 1.341640786499874e+01, -1.788854381999832e+01, // itest=417: oxzxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=417: oxzxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=417: oxzxxx#12 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=418: ixxxxx#13 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=418: ixxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=418: ixxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=418: ixxxxx#13 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=418: ixxxxx#13 nsp=1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=418: ixxxxx#13 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=419: ixxxxx#13 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=419: ixxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=419: ixxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=419: ixxxxx#13 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=419: ixxxxx#13 nsp=1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=419: ixxxxx#13 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=420: ixzxxx#13 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=420: ixzxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=420: ixzxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=420: ixzxxx#13 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=420: ixzxxx#13 nsp=1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=420: ixzxxx#13 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=421: vxxxxx#13 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=421: vxxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=421: vxxxxx#13 nsp=1 mass=0 + -3.394112549695428e-01, -5.656854249492381e-01, // itest=421: vxxxxx#13 nsp=1 mass=0 + -4.525483399593904e-01, 4.242640687119285e-01, // itest=421: vxxxxx#13 nsp=1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=421: vxxxxx#13 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=422: vxxxxx#13 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=422: vxxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=422: vxxxxx#13 nsp=1 mass=0 + -3.394112549695428e-01, -5.656854249492381e-01, // itest=422: vxxxxx#13 nsp=1 mass=0 + -4.525483399593904e-01, 4.242640687119285e-01, // itest=422: vxxxxx#13 nsp=1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=422: vxxxxx#13 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=423: sxxxxx#13 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=423: sxxxxx#13 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=423: sxxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=423: sxxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=423: sxxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=423: sxxxxx#13 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=424: sxxxxx#13 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=424: sxxxxx#13 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=424: sxxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=424: sxxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=424: sxxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=424: sxxxxx#13 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=425: oxxxxx#13 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=425: oxxxxx#13 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=425: oxxxxx#13 nsp=1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=425: oxxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=425: oxxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=425: oxxxxx#13 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=426: oxxxxx#13 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=426: oxxxxx#13 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=426: oxxxxx#13 nsp=1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=426: oxxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=426: oxxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=426: oxxxxx#13 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=427: oxzxxx#13 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=427: oxzxxx#13 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=427: oxzxxx#13 nsp=1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=427: oxzxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=427: oxzxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=427: oxzxxx#13 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=428: ixxxxx#14 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=428: ixxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=428: ixxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=428: ixxxxx#14 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=428: ixxxxx#14 nsp=1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01 } ); // itest=428: ixxxxx#14 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=429: ixxxxx#14 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=429: ixxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=429: ixxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=429: ixxxxx#14 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=429: ixxxxx#14 nsp=1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01 } ); // itest=429: ixxxxx#14 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=430: ixzxxx#14 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=430: ixzxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=430: ixzxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=430: ixzxxx#14 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=430: ixzxxx#14 nsp=1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01 } ); // itest=430: ixzxxx#14 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=431: vxxxxx#14 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=431: vxxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=431: vxxxxx#14 nsp=1 mass=0 + 3.394112549695428e-01, -5.656854249492381e-01, // itest=431: vxxxxx#14 nsp=1 mass=0 + 4.525483399593904e-01, 4.242640687119285e-01, // itest=431: vxxxxx#14 nsp=1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=431: vxxxxx#14 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=432: vxxxxx#14 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=432: vxxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=432: vxxxxx#14 nsp=1 mass=0 + 3.394112549695428e-01, -5.656854249492381e-01, // itest=432: vxxxxx#14 nsp=1 mass=0 + 4.525483399593904e-01, 4.242640687119285e-01, // itest=432: vxxxxx#14 nsp=1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=432: vxxxxx#14 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=433: sxxxxx#14 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=433: sxxxxx#14 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=433: sxxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=433: sxxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=433: sxxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=433: sxxxxx#14 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=434: sxxxxx#14 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=434: sxxxxx#14 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=434: sxxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=434: sxxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=434: sxxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=434: sxxxxx#14 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=435: oxxxxx#14 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=435: oxxxxx#14 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=435: oxxxxx#14 nsp=1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=435: oxxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=435: oxxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=435: oxxxxx#14 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=436: oxxxxx#14 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=436: oxxxxx#14 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=436: oxxxxx#14 nsp=1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=436: oxxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=436: oxxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=436: oxxxxx#14 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=437: oxzxxx#14 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=437: oxzxxx#14 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=437: oxzxxx#14 nsp=1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=437: oxzxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=437: oxzxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=437: oxzxxx#14 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=438: ixxxxx#15 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=438: ixxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=438: ixxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=438: ixxxxx#15 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=438: ixxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=438: ixxxxx#15 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=439: ixxxxx#15 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=439: ixxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=439: ixxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=439: ixxxxx#15 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=439: ixxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=439: ixxxxx#15 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=440: ipzxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=440: ipzxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=440: ipzxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=440: ipzxxx#15 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=440: ipzxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=440: ipzxxx#15 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=441: vxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=441: vxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=441: vxxxxx#15 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=441: vxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=441: vxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=441: vxxxxx#15 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=442: vxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=442: vxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=442: vxxxxx#15 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=442: vxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=442: vxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=442: vxxxxx#15 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=443: sxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=443: sxxxxx#15 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=443: sxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=443: sxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=443: sxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=443: sxxxxx#15 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=444: sxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=444: sxxxxx#15 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=444: sxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=444: sxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=444: sxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=444: sxxxxx#15 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=445: oxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=445: oxxxxx#15 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=445: oxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=445: oxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=445: oxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=445: oxxxxx#15 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=446: oxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=446: oxxxxx#15 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=446: oxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=446: oxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=446: oxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=446: oxxxxx#15 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=447: opzxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=447: opzxxx#15 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=447: opzxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=447: opzxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=447: opzxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=447: opzxxx#15 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=448: ixxxxx#16 nsp=1 mass=500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=448: ixxxxx#16 nsp=1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=448: ixxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=448: ixxxxx#16 nsp=1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=448: ixxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=448: ixxxxx#16 nsp=1 mass=500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=449: ixxxxx#16 nsp=1 mass=-500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=449: ixxxxx#16 nsp=1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=449: ixxxxx#16 nsp=1 mass=-500 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=449: ixxxxx#16 nsp=1 mass=-500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=449: ixxxxx#16 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=449: ixxxxx#16 nsp=1 mass=-500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=450: vxxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=450: vxxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=450: vxxxxx#16 nsp=1 mass=500 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=450: vxxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=450: vxxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=450: vxxxxx#16 nsp=1 mass=500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=451: vxxxxx#16 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=451: vxxxxx#16 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=451: vxxxxx#16 nsp=1 mass=-500 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=451: vxxxxx#16 nsp=1 mass=-500 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=451: vxxxxx#16 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=451: vxxxxx#16 nsp=1 mass=-500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=452: sxxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=452: sxxxxx#16 nsp=1 mass=500 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=452: sxxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=452: sxxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=452: sxxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=452: sxxxxx#16 nsp=1 mass=500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=453: sxxxxx#16 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=453: sxxxxx#16 nsp=1 mass=-500 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=453: sxxxxx#16 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=453: sxxxxx#16 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=453: sxxxxx#16 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=453: sxxxxx#16 nsp=1 mass=-500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=454: oxxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=454: oxxxxx#16 nsp=1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=454: oxxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=454: oxxxxx#16 nsp=1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=454: oxxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=454: oxxxxx#16 nsp=1 mass=500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=455: oxxxxx#16 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=455: oxxxxx#16 nsp=1 mass=-500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=455: oxxxxx#16 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=455: oxxxxx#16 nsp=1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=455: oxxxxx#16 nsp=1 mass=-500 + -0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=455: oxxxxx#16 nsp=1 mass=-500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=456: ixxxxx#17 nsp=1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=456: ixxxxx#17 nsp=1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=456: ixxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=456: ixxxxx#17 nsp=1 mass=400 + 2.828427124746190e+01, 0.000000000000000e+00, // itest=456: ixxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=456: ixxxxx#17 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=457: ixxxxx#17 nsp=1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=457: ixxxxx#17 nsp=1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=457: ixxxxx#17 nsp=1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=457: ixxxxx#17 nsp=1 mass=-400 + 2.828427124746190e+01, 0.000000000000000e+00, // itest=457: ixxxxx#17 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=457: ixxxxx#17 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=458: vxxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=458: vxxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=458: vxxxxx#17 nsp=1 mass=400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=458: vxxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=458: vxxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=458: vxxxxx#17 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=459: vxxxxx#17 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=459: vxxxxx#17 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=459: vxxxxx#17 nsp=1 mass=-400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=459: vxxxxx#17 nsp=1 mass=-400 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=459: vxxxxx#17 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=459: vxxxxx#17 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=460: sxxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=460: sxxxxx#17 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=460: sxxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=460: sxxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=460: sxxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=460: sxxxxx#17 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=461: sxxxxx#17 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=461: sxxxxx#17 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=461: sxxxxx#17 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=461: sxxxxx#17 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=461: sxxxxx#17 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=461: sxxxxx#17 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=462: oxxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=462: oxxxxx#17 nsp=1 mass=400 + 2.828427124746190e+01, 0.000000000000000e+00, // itest=462: oxxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=462: oxxxxx#17 nsp=1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=462: oxxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=462: oxxxxx#17 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=463: oxxxxx#17 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=463: oxxxxx#17 nsp=1 mass=-400 + 2.828427124746190e+01, 0.000000000000000e+00, // itest=463: oxxxxx#17 nsp=1 mass=-400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=463: oxxxxx#17 nsp=1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=463: oxxxxx#17 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=463: oxxxxx#17 nsp=1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=464: ixxxxx#18 nsp=1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=464: ixxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=464: ixxxxx#18 nsp=1 mass=400 + -1.414213562373095e+01, 0.000000000000000e+00, // itest=464: ixxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=464: ixxxxx#18 nsp=1 mass=400 + -2.828427124746190e+01, 0.000000000000000e+00 } ); // itest=464: ixxxxx#18 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=465: ixxxxx#18 nsp=1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=465: ixxxxx#18 nsp=1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=465: ixxxxx#18 nsp=1 mass=-400 + 1.414213562373095e+01, -0.000000000000000e+00, // itest=465: ixxxxx#18 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=465: ixxxxx#18 nsp=1 mass=-400 + -2.828427124746190e+01, 0.000000000000000e+00 } ); // itest=465: ixxxxx#18 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=466: vxxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=466: vxxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=466: vxxxxx#18 nsp=1 mass=400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=466: vxxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=466: vxxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=466: vxxxxx#18 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=467: vxxxxx#18 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=467: vxxxxx#18 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=467: vxxxxx#18 nsp=1 mass=-400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=467: vxxxxx#18 nsp=1 mass=-400 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=467: vxxxxx#18 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=467: vxxxxx#18 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=468: sxxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=468: sxxxxx#18 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=468: sxxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=468: sxxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=468: sxxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=468: sxxxxx#18 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=469: sxxxxx#18 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=469: sxxxxx#18 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=469: sxxxxx#18 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=469: sxxxxx#18 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=469: sxxxxx#18 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=469: sxxxxx#18 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=470: oxxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=470: oxxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=470: oxxxxx#18 nsp=1 mass=400 + -2.828427124746190e+01, 0.000000000000000e+00, // itest=470: oxxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=470: oxxxxx#18 nsp=1 mass=400 + -1.414213562373095e+01, 0.000000000000000e+00 } ); // itest=470: oxxxxx#18 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=471: oxxxxx#18 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=471: oxxxxx#18 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=471: oxxxxx#18 nsp=1 mass=-400 + -2.828427124746190e+01, 0.000000000000000e+00, // itest=471: oxxxxx#18 nsp=1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=471: oxxxxx#18 nsp=1 mass=-400 + 1.414213562373095e+01, -0.000000000000000e+00 } ); // itest=471: oxxxxx#18 nsp=1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=472: ixxxxx#19 nsp=1 mass=400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=472: ixxxxx#19 nsp=1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=472: ixxxxx#19 nsp=1 mass=400 + 5.999999999999999e+00, 7.999999999999999e+00, // itest=472: ixxxxx#19 nsp=1 mass=400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=472: ixxxxx#19 nsp=1 mass=400 + 1.200000000000000e+01, 1.600000000000000e+01 } ); // itest=472: ixxxxx#19 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=473: ixxxxx#19 nsp=1 mass=-400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=473: ixxxxx#19 nsp=1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00, // itest=473: ixxxxx#19 nsp=1 mass=-400 + -5.999999999999999e+00, -7.999999999999999e+00, // itest=473: ixxxxx#19 nsp=1 mass=-400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=473: ixxxxx#19 nsp=1 mass=-400 + 1.200000000000000e+01, 1.600000000000000e+01 } ); // itest=473: ixxxxx#19 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=474: vxxxxx#19 nsp=1 mass=400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=474: vxxxxx#19 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=474: vxxxxx#19 nsp=1 mass=400 + 0.000000000000000e+00, -5.656854249492381e-01, // itest=474: vxxxxx#19 nsp=1 mass=400 + 0.000000000000000e+00, 4.242640687119285e-01, // itest=474: vxxxxx#19 nsp=1 mass=400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=474: vxxxxx#19 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=475: vxxxxx#19 nsp=1 mass=-400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=475: vxxxxx#19 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=475: vxxxxx#19 nsp=1 mass=-400 + -0.000000000000000e+00, -5.656854249492381e-01, // itest=475: vxxxxx#19 nsp=1 mass=-400 + -0.000000000000000e+00, 4.242640687119285e-01, // itest=475: vxxxxx#19 nsp=1 mass=-400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=475: vxxxxx#19 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=476: sxxxxx#19 nsp=1 mass=400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=476: sxxxxx#19 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=476: sxxxxx#19 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=476: sxxxxx#19 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=476: sxxxxx#19 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=476: sxxxxx#19 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=477: sxxxxx#19 nsp=1 mass=-400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=477: sxxxxx#19 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=477: sxxxxx#19 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=477: sxxxxx#19 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=477: sxxxxx#19 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=477: sxxxxx#19 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=478: oxxxxx#19 nsp=1 mass=400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=478: oxxxxx#19 nsp=1 mass=400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=478: oxxxxx#19 nsp=1 mass=400 + 1.200000000000000e+01, -1.600000000000000e+01, // itest=478: oxxxxx#19 nsp=1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=478: oxxxxx#19 nsp=1 mass=400 + 5.999999999999999e+00, -7.999999999999999e+00 } ); // itest=478: oxxxxx#19 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=479: oxxxxx#19 nsp=1 mass=-400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=479: oxxxxx#19 nsp=1 mass=-400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=479: oxxxxx#19 nsp=1 mass=-400 + 1.200000000000000e+01, -1.600000000000000e+01, // itest=479: oxxxxx#19 nsp=1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00, // itest=479: oxxxxx#19 nsp=1 mass=-400 + -5.999999999999999e+00, 7.999999999999999e+00 } ); // itest=479: oxxxxx#19 nsp=1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=480: ixxxxx#20 nsp=1 mass=400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=480: ixxxxx#20 nsp=1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=480: ixxxxx#20 nsp=1 mass=400 + -7.999999999999999e+00, -5.999999999999999e+00, // itest=480: ixxxxx#20 nsp=1 mass=400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=480: ixxxxx#20 nsp=1 mass=400 + -1.600000000000000e+01, -1.200000000000000e+01 } ); // itest=480: ixxxxx#20 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=481: ixxxxx#20 nsp=1 mass=-400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=481: ixxxxx#20 nsp=1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00, // itest=481: ixxxxx#20 nsp=1 mass=-400 + 7.999999999999999e+00, 5.999999999999999e+00, // itest=481: ixxxxx#20 nsp=1 mass=-400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=481: ixxxxx#20 nsp=1 mass=-400 + -1.600000000000000e+01, -1.200000000000000e+01 } ); // itest=481: ixxxxx#20 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=482: vxxxxx#20 nsp=1 mass=400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=482: vxxxxx#20 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=482: vxxxxx#20 nsp=1 mass=400 + 0.000000000000000e+00, 4.242640687119285e-01, // itest=482: vxxxxx#20 nsp=1 mass=400 + 0.000000000000000e+00, -5.656854249492381e-01, // itest=482: vxxxxx#20 nsp=1 mass=400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=482: vxxxxx#20 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=483: vxxxxx#20 nsp=1 mass=-400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=483: vxxxxx#20 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=483: vxxxxx#20 nsp=1 mass=-400 + 0.000000000000000e+00, 4.242640687119285e-01, // itest=483: vxxxxx#20 nsp=1 mass=-400 + 0.000000000000000e+00, -5.656854249492381e-01, // itest=483: vxxxxx#20 nsp=1 mass=-400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=483: vxxxxx#20 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=484: sxxxxx#20 nsp=1 mass=400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=484: sxxxxx#20 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=484: sxxxxx#20 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=484: sxxxxx#20 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=484: sxxxxx#20 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=484: sxxxxx#20 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=485: sxxxxx#20 nsp=1 mass=-400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=485: sxxxxx#20 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=485: sxxxxx#20 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=485: sxxxxx#20 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=485: sxxxxx#20 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=485: sxxxxx#20 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=486: oxxxxx#20 nsp=1 mass=400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=486: oxxxxx#20 nsp=1 mass=400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=486: oxxxxx#20 nsp=1 mass=400 + -1.600000000000000e+01, 1.200000000000000e+01, // itest=486: oxxxxx#20 nsp=1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=486: oxxxxx#20 nsp=1 mass=400 + -7.999999999999999e+00, 5.999999999999999e+00 } ); // itest=486: oxxxxx#20 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=487: oxxxxx#20 nsp=1 mass=-400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=487: oxxxxx#20 nsp=1 mass=-400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=487: oxxxxx#20 nsp=1 mass=-400 + -1.600000000000000e+01, 1.200000000000000e+01, // itest=487: oxxxxx#20 nsp=1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00, // itest=487: oxxxxx#20 nsp=1 mass=-400 + 7.999999999999999e+00, -5.999999999999999e+00 } ); // itest=487: oxxxxx#20 nsp=1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=488: ixxxxx#21 nsp=1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=488: ixxxxx#21 nsp=1 mass=400 + 1.216552506059644e+01, 0.000000000000000e+00, // itest=488: ixxxxx#21 nsp=1 mass=400 + 4.931969619160719e+00, 5.260767593771432e+00, // itest=488: ixxxxx#21 nsp=1 mass=400 + 2.433105012119288e+01, 0.000000000000000e+00, // itest=488: ixxxxx#21 nsp=1 mass=400 + 9.863939238321439e+00, 1.052153518754287e+01 } ); // itest=488: ixxxxx#21 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=489: ixxxxx#21 nsp=1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=489: ixxxxx#21 nsp=1 mass=-400 + -1.216552506059644e+01, -0.000000000000000e+00, // itest=489: ixxxxx#21 nsp=1 mass=-400 + -4.931969619160719e+00, -5.260767593771432e+00, // itest=489: ixxxxx#21 nsp=1 mass=-400 + 2.433105012119288e+01, 0.000000000000000e+00, // itest=489: ixxxxx#21 nsp=1 mass=-400 + 9.863939238321439e+00, 1.052153518754287e+01 } ); // itest=489: ixxxxx#21 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=490: vxxxxx#21 nsp=1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=490: vxxxxx#21 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=490: vxxxxx#21 nsp=1 mass=400 + -2.321373168788980e-01, -5.158607041753289e-01, // itest=490: vxxxxx#21 nsp=1 mass=400 + -2.476131380041579e-01, 4.836194101643708e-01, // itest=490: vxxxxx#21 nsp=1 mass=400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=490: vxxxxx#21 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=491: vxxxxx#21 nsp=1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=491: vxxxxx#21 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=491: vxxxxx#21 nsp=1 mass=-400 + -2.321373168788980e-01, -5.158607041753289e-01, // itest=491: vxxxxx#21 nsp=1 mass=-400 + -2.476131380041579e-01, 4.836194101643708e-01, // itest=491: vxxxxx#21 nsp=1 mass=-400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=491: vxxxxx#21 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=492: sxxxxx#21 nsp=1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=492: sxxxxx#21 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=492: sxxxxx#21 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=492: sxxxxx#21 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=492: sxxxxx#21 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=492: sxxxxx#21 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=493: sxxxxx#21 nsp=1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=493: sxxxxx#21 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=493: sxxxxx#21 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=493: sxxxxx#21 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=493: sxxxxx#21 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=493: sxxxxx#21 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=494: oxxxxx#21 nsp=1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=494: oxxxxx#21 nsp=1 mass=400 + 2.433105012119288e+01, 0.000000000000000e+00, // itest=494: oxxxxx#21 nsp=1 mass=400 + 9.863939238321439e+00, -1.052153518754287e+01, // itest=494: oxxxxx#21 nsp=1 mass=400 + 1.216552506059644e+01, 0.000000000000000e+00, // itest=494: oxxxxx#21 nsp=1 mass=400 + 4.931969619160719e+00, -5.260767593771432e+00 } ); // itest=494: oxxxxx#21 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=495: oxxxxx#21 nsp=1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=495: oxxxxx#21 nsp=1 mass=-400 + 2.433105012119288e+01, 0.000000000000000e+00, // itest=495: oxxxxx#21 nsp=1 mass=-400 + 9.863939238321439e+00, -1.052153518754287e+01, // itest=495: oxxxxx#21 nsp=1 mass=-400 + -1.216552506059644e+01, -0.000000000000000e+00, // itest=495: oxxxxx#21 nsp=1 mass=-400 + -4.931969619160719e+00, 5.260767593771432e+00 } ); // itest=495: oxxxxx#21 nsp=1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=496: ixxxxx#22 nsp=1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=496: ixxxxx#22 nsp=1 mass=400 + 7.211102550927978e+00, 0.000000000000000e+00, // itest=496: ixxxxx#22 nsp=1 mass=400 + 8.320502943378436e+00, 8.875203139603666e+00, // itest=496: ixxxxx#22 nsp=1 mass=400 + 1.442220510185596e+01, 0.000000000000000e+00, // itest=496: ixxxxx#22 nsp=1 mass=400 + 1.664100588675688e+01, 1.775040627920733e+01 } ); // itest=496: ixxxxx#22 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=497: ixxxxx#22 nsp=1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=497: ixxxxx#22 nsp=1 mass=-400 + -7.211102550927978e+00, -0.000000000000000e+00, // itest=497: ixxxxx#22 nsp=1 mass=-400 + -8.320502943378436e+00, -8.875203139603666e+00, // itest=497: ixxxxx#22 nsp=1 mass=-400 + 1.442220510185596e+01, 0.000000000000000e+00, // itest=497: ixxxxx#22 nsp=1 mass=-400 + 1.664100588675688e+01, 1.775040627920733e+01 } ); // itest=497: ixxxxx#22 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=498: vxxxxx#22 nsp=1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=498: vxxxxx#22 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=498: vxxxxx#22 nsp=1 mass=400 + 2.321373168788980e-01, -5.158607041753289e-01, // itest=498: vxxxxx#22 nsp=1 mass=400 + 2.476131380041579e-01, 4.836194101643708e-01, // itest=498: vxxxxx#22 nsp=1 mass=400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=498: vxxxxx#22 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=499: vxxxxx#22 nsp=1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=499: vxxxxx#22 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=499: vxxxxx#22 nsp=1 mass=-400 + 2.321373168788980e-01, -5.158607041753289e-01, // itest=499: vxxxxx#22 nsp=1 mass=-400 + 2.476131380041579e-01, 4.836194101643708e-01, // itest=499: vxxxxx#22 nsp=1 mass=-400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=499: vxxxxx#22 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=500: sxxxxx#22 nsp=1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=500: sxxxxx#22 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=500: sxxxxx#22 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=500: sxxxxx#22 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=500: sxxxxx#22 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=500: sxxxxx#22 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=501: sxxxxx#22 nsp=1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=501: sxxxxx#22 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=501: sxxxxx#22 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=501: sxxxxx#22 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=501: sxxxxx#22 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=501: sxxxxx#22 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=502: oxxxxx#22 nsp=1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=502: oxxxxx#22 nsp=1 mass=400 + 1.442220510185596e+01, 0.000000000000000e+00, // itest=502: oxxxxx#22 nsp=1 mass=400 + 1.664100588675688e+01, -1.775040627920733e+01, // itest=502: oxxxxx#22 nsp=1 mass=400 + 7.211102550927978e+00, 0.000000000000000e+00, // itest=502: oxxxxx#22 nsp=1 mass=400 + 8.320502943378436e+00, -8.875203139603666e+00 } ); // itest=502: oxxxxx#22 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=503: oxxxxx#22 nsp=1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=503: oxxxxx#22 nsp=1 mass=-400 + 1.442220510185596e+01, 0.000000000000000e+00, // itest=503: oxxxxx#22 nsp=1 mass=-400 + 1.664100588675688e+01, -1.775040627920733e+01, // itest=503: oxxxxx#22 nsp=1 mass=-400 + -7.211102550927978e+00, -0.000000000000000e+00, // itest=503: oxxxxx#22 nsp=1 mass=-400 + -8.320502943378436e+00, 8.875203139603666e+00 } ); // itest=503: oxxxxx#22 nsp=1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=504: ixxxxx#23 nsp=1 mass=500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=504: ixxxxx#23 nsp=1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=504: ixxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=504: ixxxxx#23 nsp=1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=504: ixxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=504: ixxxxx#23 nsp=1 mass=500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=505: ixxxxx#23 nsp=1 mass=-500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=505: ixxxxx#23 nsp=1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=505: ixxxxx#23 nsp=1 mass=-500 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=505: ixxxxx#23 nsp=1 mass=-500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=505: ixxxxx#23 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=505: ixxxxx#23 nsp=1 mass=-500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=506: vxxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=506: vxxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=506: vxxxxx#23 nsp=1 mass=500 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=506: vxxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=506: vxxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=506: vxxxxx#23 nsp=1 mass=500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=507: vxxxxx#23 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=507: vxxxxx#23 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=507: vxxxxx#23 nsp=1 mass=-500 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=507: vxxxxx#23 nsp=1 mass=-500 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=507: vxxxxx#23 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=507: vxxxxx#23 nsp=1 mass=-500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=508: sxxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=508: sxxxxx#23 nsp=1 mass=500 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=508: sxxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=508: sxxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=508: sxxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=508: sxxxxx#23 nsp=1 mass=500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=509: sxxxxx#23 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=509: sxxxxx#23 nsp=1 mass=-500 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=509: sxxxxx#23 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=509: sxxxxx#23 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=509: sxxxxx#23 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=509: sxxxxx#23 nsp=1 mass=-500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=510: oxxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=510: oxxxxx#23 nsp=1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=510: oxxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=510: oxxxxx#23 nsp=1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=510: oxxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=510: oxxxxx#23 nsp=1 mass=500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=511: oxxxxx#23 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=511: oxxxxx#23 nsp=1 mass=-500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=511: oxxxxx#23 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=511: oxxxxx#23 nsp=1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=511: oxxxxx#23 nsp=1 mass=-500 + -0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=511: oxxxxx#23 nsp=1 mass=-500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=512: ixxxxx#24 nsp=1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=512: ixxxxx#24 nsp=1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=512: ixxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=512: ixxxxx#24 nsp=1 mass=400 + 2.828427124746190e+01, 0.000000000000000e+00, // itest=512: ixxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=512: ixxxxx#24 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=513: ixxxxx#24 nsp=1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=513: ixxxxx#24 nsp=1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=513: ixxxxx#24 nsp=1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=513: ixxxxx#24 nsp=1 mass=-400 + 2.828427124746190e+01, 0.000000000000000e+00, // itest=513: ixxxxx#24 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=513: ixxxxx#24 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=514: vxxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=514: vxxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=514: vxxxxx#24 nsp=1 mass=400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=514: vxxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=514: vxxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=514: vxxxxx#24 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=515: vxxxxx#24 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=515: vxxxxx#24 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=515: vxxxxx#24 nsp=1 mass=-400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=515: vxxxxx#24 nsp=1 mass=-400 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=515: vxxxxx#24 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=515: vxxxxx#24 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=516: sxxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=516: sxxxxx#24 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=516: sxxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=516: sxxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=516: sxxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=516: sxxxxx#24 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=517: sxxxxx#24 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=517: sxxxxx#24 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=517: sxxxxx#24 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=517: sxxxxx#24 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=517: sxxxxx#24 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=517: sxxxxx#24 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=518: oxxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=518: oxxxxx#24 nsp=1 mass=400 + 2.828427124746190e+01, 0.000000000000000e+00, // itest=518: oxxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=518: oxxxxx#24 nsp=1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=518: oxxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=518: oxxxxx#24 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=519: oxxxxx#24 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=519: oxxxxx#24 nsp=1 mass=-400 + 2.828427124746190e+01, 0.000000000000000e+00, // itest=519: oxxxxx#24 nsp=1 mass=-400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=519: oxxxxx#24 nsp=1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=519: oxxxxx#24 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=519: oxxxxx#24 nsp=1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=520: ixxxxx#25 nsp=1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=520: ixxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=520: ixxxxx#25 nsp=1 mass=400 + -1.414213562373095e+01, 0.000000000000000e+00, // itest=520: ixxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=520: ixxxxx#25 nsp=1 mass=400 + -2.828427124746190e+01, 0.000000000000000e+00 } ); // itest=520: ixxxxx#25 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=521: ixxxxx#25 nsp=1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=521: ixxxxx#25 nsp=1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=521: ixxxxx#25 nsp=1 mass=-400 + 1.414213562373095e+01, -0.000000000000000e+00, // itest=521: ixxxxx#25 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=521: ixxxxx#25 nsp=1 mass=-400 + -2.828427124746190e+01, 0.000000000000000e+00 } ); // itest=521: ixxxxx#25 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=522: vxxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=522: vxxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=522: vxxxxx#25 nsp=1 mass=400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=522: vxxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=522: vxxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=522: vxxxxx#25 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=523: vxxxxx#25 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=523: vxxxxx#25 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=523: vxxxxx#25 nsp=1 mass=-400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=523: vxxxxx#25 nsp=1 mass=-400 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=523: vxxxxx#25 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=523: vxxxxx#25 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=524: sxxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=524: sxxxxx#25 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=524: sxxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=524: sxxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=524: sxxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=524: sxxxxx#25 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=525: sxxxxx#25 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=525: sxxxxx#25 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=525: sxxxxx#25 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=525: sxxxxx#25 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=525: sxxxxx#25 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=525: sxxxxx#25 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=526: oxxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=526: oxxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=526: oxxxxx#25 nsp=1 mass=400 + -2.828427124746190e+01, 0.000000000000000e+00, // itest=526: oxxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=526: oxxxxx#25 nsp=1 mass=400 + -1.414213562373095e+01, 0.000000000000000e+00 } ); // itest=526: oxxxxx#25 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=527: oxxxxx#25 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=527: oxxxxx#25 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=527: oxxxxx#25 nsp=1 mass=-400 + -2.828427124746190e+01, 0.000000000000000e+00, // itest=527: oxxxxx#25 nsp=1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=527: oxxxxx#25 nsp=1 mass=-400 + 1.414213562373095e+01, -0.000000000000000e+00 } ); // itest=527: oxxxxx#25 nsp=1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=528: ixxxxx#26 nsp=1 mass=400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=528: ixxxxx#26 nsp=1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=528: ixxxxx#26 nsp=1 mass=400 + 5.999999999999999e+00, 7.999999999999999e+00, // itest=528: ixxxxx#26 nsp=1 mass=400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=528: ixxxxx#26 nsp=1 mass=400 + 1.200000000000000e+01, 1.600000000000000e+01 } ); // itest=528: ixxxxx#26 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=529: ixxxxx#26 nsp=1 mass=-400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=529: ixxxxx#26 nsp=1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00, // itest=529: ixxxxx#26 nsp=1 mass=-400 + -5.999999999999999e+00, -7.999999999999999e+00, // itest=529: ixxxxx#26 nsp=1 mass=-400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=529: ixxxxx#26 nsp=1 mass=-400 + 1.200000000000000e+01, 1.600000000000000e+01 } ); // itest=529: ixxxxx#26 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=530: vxxxxx#26 nsp=1 mass=400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=530: vxxxxx#26 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=530: vxxxxx#26 nsp=1 mass=400 + 0.000000000000000e+00, -5.656854249492381e-01, // itest=530: vxxxxx#26 nsp=1 mass=400 + 0.000000000000000e+00, 4.242640687119285e-01, // itest=530: vxxxxx#26 nsp=1 mass=400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=530: vxxxxx#26 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=531: vxxxxx#26 nsp=1 mass=-400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=531: vxxxxx#26 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=531: vxxxxx#26 nsp=1 mass=-400 + -0.000000000000000e+00, -5.656854249492381e-01, // itest=531: vxxxxx#26 nsp=1 mass=-400 + -0.000000000000000e+00, 4.242640687119285e-01, // itest=531: vxxxxx#26 nsp=1 mass=-400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=531: vxxxxx#26 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=532: sxxxxx#26 nsp=1 mass=400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=532: sxxxxx#26 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=532: sxxxxx#26 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=532: sxxxxx#26 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=532: sxxxxx#26 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=532: sxxxxx#26 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=533: sxxxxx#26 nsp=1 mass=-400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=533: sxxxxx#26 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=533: sxxxxx#26 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=533: sxxxxx#26 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=533: sxxxxx#26 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=533: sxxxxx#26 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=534: oxxxxx#26 nsp=1 mass=400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=534: oxxxxx#26 nsp=1 mass=400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=534: oxxxxx#26 nsp=1 mass=400 + 1.200000000000000e+01, -1.600000000000000e+01, // itest=534: oxxxxx#26 nsp=1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=534: oxxxxx#26 nsp=1 mass=400 + 5.999999999999999e+00, -7.999999999999999e+00 } ); // itest=534: oxxxxx#26 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=535: oxxxxx#26 nsp=1 mass=-400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=535: oxxxxx#26 nsp=1 mass=-400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=535: oxxxxx#26 nsp=1 mass=-400 + 1.200000000000000e+01, -1.600000000000000e+01, // itest=535: oxxxxx#26 nsp=1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00, // itest=535: oxxxxx#26 nsp=1 mass=-400 + -5.999999999999999e+00, 7.999999999999999e+00 } ); // itest=535: oxxxxx#26 nsp=1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=536: ixxxxx#27 nsp=1 mass=400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=536: ixxxxx#27 nsp=1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=536: ixxxxx#27 nsp=1 mass=400 + -7.999999999999999e+00, -5.999999999999999e+00, // itest=536: ixxxxx#27 nsp=1 mass=400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=536: ixxxxx#27 nsp=1 mass=400 + -1.600000000000000e+01, -1.200000000000000e+01 } ); // itest=536: ixxxxx#27 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=537: ixxxxx#27 nsp=1 mass=-400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=537: ixxxxx#27 nsp=1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00, // itest=537: ixxxxx#27 nsp=1 mass=-400 + 7.999999999999999e+00, 5.999999999999999e+00, // itest=537: ixxxxx#27 nsp=1 mass=-400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=537: ixxxxx#27 nsp=1 mass=-400 + -1.600000000000000e+01, -1.200000000000000e+01 } ); // itest=537: ixxxxx#27 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=538: vxxxxx#27 nsp=1 mass=400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=538: vxxxxx#27 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=538: vxxxxx#27 nsp=1 mass=400 + 0.000000000000000e+00, 4.242640687119285e-01, // itest=538: vxxxxx#27 nsp=1 mass=400 + 0.000000000000000e+00, -5.656854249492381e-01, // itest=538: vxxxxx#27 nsp=1 mass=400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=538: vxxxxx#27 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=539: vxxxxx#27 nsp=1 mass=-400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=539: vxxxxx#27 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=539: vxxxxx#27 nsp=1 mass=-400 + 0.000000000000000e+00, 4.242640687119285e-01, // itest=539: vxxxxx#27 nsp=1 mass=-400 + 0.000000000000000e+00, -5.656854249492381e-01, // itest=539: vxxxxx#27 nsp=1 mass=-400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=539: vxxxxx#27 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=540: sxxxxx#27 nsp=1 mass=400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=540: sxxxxx#27 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=540: sxxxxx#27 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=540: sxxxxx#27 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=540: sxxxxx#27 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=540: sxxxxx#27 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=541: sxxxxx#27 nsp=1 mass=-400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=541: sxxxxx#27 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=541: sxxxxx#27 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=541: sxxxxx#27 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=541: sxxxxx#27 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=541: sxxxxx#27 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=542: oxxxxx#27 nsp=1 mass=400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=542: oxxxxx#27 nsp=1 mass=400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=542: oxxxxx#27 nsp=1 mass=400 + -1.600000000000000e+01, 1.200000000000000e+01, // itest=542: oxxxxx#27 nsp=1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=542: oxxxxx#27 nsp=1 mass=400 + -7.999999999999999e+00, 5.999999999999999e+00 } ); // itest=542: oxxxxx#27 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=543: oxxxxx#27 nsp=1 mass=-400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=543: oxxxxx#27 nsp=1 mass=-400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=543: oxxxxx#27 nsp=1 mass=-400 + -1.600000000000000e+01, 1.200000000000000e+01, // itest=543: oxxxxx#27 nsp=1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00, // itest=543: oxxxxx#27 nsp=1 mass=-400 + 7.999999999999999e+00, -5.999999999999999e+00 } ); // itest=543: oxxxxx#27 nsp=1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=544: ixxxxx#28 nsp=1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=544: ixxxxx#28 nsp=1 mass=400 + 1.216552506059644e+01, 0.000000000000000e+00, // itest=544: ixxxxx#28 nsp=1 mass=400 + 4.931969619160719e+00, 5.260767593771432e+00, // itest=544: ixxxxx#28 nsp=1 mass=400 + 2.433105012119288e+01, 0.000000000000000e+00, // itest=544: ixxxxx#28 nsp=1 mass=400 + 9.863939238321439e+00, 1.052153518754287e+01 } ); // itest=544: ixxxxx#28 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=545: ixxxxx#28 nsp=1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=545: ixxxxx#28 nsp=1 mass=-400 + -1.216552506059644e+01, -0.000000000000000e+00, // itest=545: ixxxxx#28 nsp=1 mass=-400 + -4.931969619160719e+00, -5.260767593771432e+00, // itest=545: ixxxxx#28 nsp=1 mass=-400 + 2.433105012119288e+01, 0.000000000000000e+00, // itest=545: ixxxxx#28 nsp=1 mass=-400 + 9.863939238321439e+00, 1.052153518754287e+01 } ); // itest=545: ixxxxx#28 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=546: vxxxxx#28 nsp=1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=546: vxxxxx#28 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=546: vxxxxx#28 nsp=1 mass=400 + -2.321373168788980e-01, -5.158607041753289e-01, // itest=546: vxxxxx#28 nsp=1 mass=400 + -2.476131380041579e-01, 4.836194101643708e-01, // itest=546: vxxxxx#28 nsp=1 mass=400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=546: vxxxxx#28 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=547: vxxxxx#28 nsp=1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=547: vxxxxx#28 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=547: vxxxxx#28 nsp=1 mass=-400 + -2.321373168788980e-01, -5.158607041753289e-01, // itest=547: vxxxxx#28 nsp=1 mass=-400 + -2.476131380041579e-01, 4.836194101643708e-01, // itest=547: vxxxxx#28 nsp=1 mass=-400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=547: vxxxxx#28 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=548: sxxxxx#28 nsp=1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=548: sxxxxx#28 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=548: sxxxxx#28 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=548: sxxxxx#28 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=548: sxxxxx#28 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=548: sxxxxx#28 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=549: sxxxxx#28 nsp=1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=549: sxxxxx#28 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=549: sxxxxx#28 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=549: sxxxxx#28 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=549: sxxxxx#28 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=549: sxxxxx#28 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=550: oxxxxx#28 nsp=1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=550: oxxxxx#28 nsp=1 mass=400 + 2.433105012119288e+01, 0.000000000000000e+00, // itest=550: oxxxxx#28 nsp=1 mass=400 + 9.863939238321439e+00, -1.052153518754287e+01, // itest=550: oxxxxx#28 nsp=1 mass=400 + 1.216552506059644e+01, 0.000000000000000e+00, // itest=550: oxxxxx#28 nsp=1 mass=400 + 4.931969619160719e+00, -5.260767593771432e+00 } ); // itest=550: oxxxxx#28 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=551: oxxxxx#28 nsp=1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=551: oxxxxx#28 nsp=1 mass=-400 + 2.433105012119288e+01, 0.000000000000000e+00, // itest=551: oxxxxx#28 nsp=1 mass=-400 + 9.863939238321439e+00, -1.052153518754287e+01, // itest=551: oxxxxx#28 nsp=1 mass=-400 + -1.216552506059644e+01, -0.000000000000000e+00, // itest=551: oxxxxx#28 nsp=1 mass=-400 + -4.931969619160719e+00, 5.260767593771432e+00 } ); // itest=551: oxxxxx#28 nsp=1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=552: ixxxxx#29 nsp=1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=552: ixxxxx#29 nsp=1 mass=400 + 7.211102550927978e+00, 0.000000000000000e+00, // itest=552: ixxxxx#29 nsp=1 mass=400 + 8.320502943378436e+00, 8.875203139603666e+00, // itest=552: ixxxxx#29 nsp=1 mass=400 + 1.442220510185596e+01, 0.000000000000000e+00, // itest=552: ixxxxx#29 nsp=1 mass=400 + 1.664100588675688e+01, 1.775040627920733e+01 } ); // itest=552: ixxxxx#29 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=553: ixxxxx#29 nsp=1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=553: ixxxxx#29 nsp=1 mass=-400 + -7.211102550927978e+00, -0.000000000000000e+00, // itest=553: ixxxxx#29 nsp=1 mass=-400 + -8.320502943378436e+00, -8.875203139603666e+00, // itest=553: ixxxxx#29 nsp=1 mass=-400 + 1.442220510185596e+01, 0.000000000000000e+00, // itest=553: ixxxxx#29 nsp=1 mass=-400 + 1.664100588675688e+01, 1.775040627920733e+01 } ); // itest=553: ixxxxx#29 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=554: vxxxxx#29 nsp=1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=554: vxxxxx#29 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=554: vxxxxx#29 nsp=1 mass=400 + 2.321373168788980e-01, -5.158607041753289e-01, // itest=554: vxxxxx#29 nsp=1 mass=400 + 2.476131380041579e-01, 4.836194101643708e-01, // itest=554: vxxxxx#29 nsp=1 mass=400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=554: vxxxxx#29 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=555: vxxxxx#29 nsp=1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=555: vxxxxx#29 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=555: vxxxxx#29 nsp=1 mass=-400 + 2.321373168788980e-01, -5.158607041753289e-01, // itest=555: vxxxxx#29 nsp=1 mass=-400 + 2.476131380041579e-01, 4.836194101643708e-01, // itest=555: vxxxxx#29 nsp=1 mass=-400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=555: vxxxxx#29 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=556: sxxxxx#29 nsp=1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=556: sxxxxx#29 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=556: sxxxxx#29 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=556: sxxxxx#29 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=556: sxxxxx#29 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=556: sxxxxx#29 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=557: sxxxxx#29 nsp=1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=557: sxxxxx#29 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=557: sxxxxx#29 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=557: sxxxxx#29 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=557: sxxxxx#29 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=557: sxxxxx#29 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=558: oxxxxx#29 nsp=1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=558: oxxxxx#29 nsp=1 mass=400 + 1.442220510185596e+01, 0.000000000000000e+00, // itest=558: oxxxxx#29 nsp=1 mass=400 + 1.664100588675688e+01, -1.775040627920733e+01, // itest=558: oxxxxx#29 nsp=1 mass=400 + 7.211102550927978e+00, 0.000000000000000e+00, // itest=558: oxxxxx#29 nsp=1 mass=400 + 8.320502943378436e+00, -8.875203139603666e+00 } ); // itest=558: oxxxxx#29 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=559: oxxxxx#29 nsp=1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=559: oxxxxx#29 nsp=1 mass=-400 + 1.442220510185596e+01, 0.000000000000000e+00, // itest=559: oxxxxx#29 nsp=1 mass=-400 + 1.664100588675688e+01, -1.775040627920733e+01, // itest=559: oxxxxx#29 nsp=1 mass=-400 + -7.211102550927978e+00, -0.000000000000000e+00, // itest=559: oxxxxx#29 nsp=1 mass=-400 + -8.320502943378436e+00, 8.875203139603666e+00 } ); // itest=559: oxxxxx#29 nsp=1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=560: ixxxxx#30 nsp=1 mass=500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=560: ixxxxx#30 nsp=1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=560: ixxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=560: ixxxxx#30 nsp=1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=560: ixxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=560: ixxxxx#30 nsp=1 mass=500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=561: ixxxxx#30 nsp=1 mass=-500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=561: ixxxxx#30 nsp=1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=561: ixxxxx#30 nsp=1 mass=-500 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=561: ixxxxx#30 nsp=1 mass=-500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=561: ixxxxx#30 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=561: ixxxxx#30 nsp=1 mass=-500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=562: vxxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=562: vxxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=562: vxxxxx#30 nsp=1 mass=500 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=562: vxxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=562: vxxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=562: vxxxxx#30 nsp=1 mass=500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=563: vxxxxx#30 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=563: vxxxxx#30 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=563: vxxxxx#30 nsp=1 mass=-500 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=563: vxxxxx#30 nsp=1 mass=-500 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=563: vxxxxx#30 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=563: vxxxxx#30 nsp=1 mass=-500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=564: sxxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=564: sxxxxx#30 nsp=1 mass=500 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=564: sxxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=564: sxxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=564: sxxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=564: sxxxxx#30 nsp=1 mass=500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=565: sxxxxx#30 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=565: sxxxxx#30 nsp=1 mass=-500 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=565: sxxxxx#30 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=565: sxxxxx#30 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=565: sxxxxx#30 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=565: sxxxxx#30 nsp=1 mass=-500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=566: oxxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=566: oxxxxx#30 nsp=1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=566: oxxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=566: oxxxxx#30 nsp=1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=566: oxxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=566: oxxxxx#30 nsp=1 mass=500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=567: oxxxxx#30 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=567: oxxxxx#30 nsp=1 mass=-500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=567: oxxxxx#30 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=567: oxxxxx#30 nsp=1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=567: oxxxxx#30 nsp=1 mass=-500 + -0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=567: oxxxxx#30 nsp=1 mass=-500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=568: ixxxxx#31 nsp=1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=568: ixxxxx#31 nsp=1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=568: ixxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=568: ixxxxx#31 nsp=1 mass=400 + 2.828427124746190e+01, 0.000000000000000e+00, // itest=568: ixxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=568: ixxxxx#31 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=569: ixxxxx#31 nsp=1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=569: ixxxxx#31 nsp=1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=569: ixxxxx#31 nsp=1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=569: ixxxxx#31 nsp=1 mass=-400 + 2.828427124746190e+01, 0.000000000000000e+00, // itest=569: ixxxxx#31 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=569: ixxxxx#31 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=570: vxxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=570: vxxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=570: vxxxxx#31 nsp=1 mass=400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=570: vxxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=570: vxxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=570: vxxxxx#31 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=571: vxxxxx#31 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=571: vxxxxx#31 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=571: vxxxxx#31 nsp=1 mass=-400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=571: vxxxxx#31 nsp=1 mass=-400 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=571: vxxxxx#31 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=571: vxxxxx#31 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=572: sxxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=572: sxxxxx#31 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=572: sxxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=572: sxxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=572: sxxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=572: sxxxxx#31 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=573: sxxxxx#31 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=573: sxxxxx#31 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=573: sxxxxx#31 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=573: sxxxxx#31 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=573: sxxxxx#31 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=573: sxxxxx#31 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=574: oxxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=574: oxxxxx#31 nsp=1 mass=400 + 2.828427124746190e+01, 0.000000000000000e+00, // itest=574: oxxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=574: oxxxxx#31 nsp=1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=574: oxxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=574: oxxxxx#31 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=575: oxxxxx#31 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=575: oxxxxx#31 nsp=1 mass=-400 + 2.828427124746190e+01, 0.000000000000000e+00, // itest=575: oxxxxx#31 nsp=1 mass=-400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=575: oxxxxx#31 nsp=1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=575: oxxxxx#31 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=575: oxxxxx#31 nsp=1 mass=-400 diff --git a/epochX/cudacpp/gg_ttgg.sa/src/HelAmps_sm.h b/epochX/cudacpp/gg_ttgg.sa/src/HelAmps_sm.h index ee2fcbbde5..b68cdea0db 100644 --- a/epochX/cudacpp/gg_ttgg.sa/src/HelAmps_sm.h +++ b/epochX/cudacpp/gg_ttgg.sa/src/HelAmps_sm.h @@ -1,3 +1,4 @@ +// Copyright (C) 2010 The ALOHA Development team and Contributors. // Copyright (C) 2010 The MadGraph5_aMC@NLO development team and contributors. // Created by: J. Alwall (Sep 2010) for the MG5aMC backend. //========================================================================== @@ -21,6 +22,7 @@ #include "Parameters_sm.h" +#include //#include //#include //#include @@ -190,6 +192,9 @@ namespace mg5amcCpu const int ipar ) // input: particle# out of npar { mgDebug( 0, __FUNCTION__ ); + // NEW IMPLEMENTATION FIXING FLOATING POINT EXCEPTIONS IN SIMD CODE (#701) + // Variables xxxDENOM are a hack to avoid division-by-0 FPE while preserving speed (#701 and #727) + // Variables xxxDENOM are declared as 'volatile' to make sure they are not optimized away on clang! (#724) const fptype_sv& pvec0 = M_ACCESS::kernelAccessIp4IparConst( momenta, 0, ipar ); const fptype_sv& pvec1 = M_ACCESS::kernelAccessIp4IparConst( momenta, 1, ipar ); const fptype_sv& pvec2 = M_ACCESS::kernelAccessIp4IparConst( momenta, 2, ipar ); @@ -201,6 +206,11 @@ namespace mg5amcCpu if( fmass != 0. ) { const fptype_sv pp = fpmin( pvec0, fpsqrt( pvec1 * pvec1 + pvec2 * pvec2 + pvec3 * pvec3 ) ); + // In C++ ixxxxx, use a single ip/im numbering that is valid both for pp==0 and pp>0, which have two numbering schemes in Fortran ixxxxx: + // for pp==0, Fortran sqm(0:1) has indexes 0,1 as in C++; but for Fortran pp>0, omega(2) has indexes 1,2 and not 0,1 + // NB: this is only possible in ixxxx, but in oxxxxx two different numbering schemes must be used + const int ip = ( 1 + nh ) / 2; // NB: same as in Fortran pp==0, differs from Fortran pp>0, which is (3+nh)/2 because omega(2) has indexes 1,2 + const int im = ( 1 - nh ) / 2; // NB: same as in Fortran pp==0, differs from Fortran pp>0, which is (3-nh)/2 because omega(2) has indexes 1,2 #ifndef MGONGPU_CPPSIMD if( pp == 0. ) { @@ -208,8 +218,6 @@ namespace mg5amcCpu fptype sqm[2] = { fpsqrt( std::abs( fmass ) ), 0. }; // possibility of negative fermion masses //sqm[1] = ( fmass < 0. ? -abs( sqm[0] ) : abs( sqm[0] ) ); // AV: why abs here? sqm[1] = ( fmass < 0. ? -sqm[0] : sqm[0] ); // AV: removed an abs here - const int ip = ( 1 + nh ) / 2; // NB: Fortran sqm(0:1) also has indexes 0,1 as in C++ - const int im = ( 1 - nh ) / 2; // NB: Fortran sqm(0:1) also has indexes 0,1 as in C++ fi[2] = cxmake( ip * sqm[ip], 0 ); fi[3] = cxmake( im * nsf * sqm[ip], 0 ); fi[4] = cxmake( ip * nsf * sqm[im], 0 ); @@ -221,8 +229,6 @@ namespace mg5amcCpu fptype( 1 + nsf - ( 1 - nsf ) * nh ) * (fptype)0.5 }; fptype omega[2] = { fpsqrt( pvec0 + pp ), 0. }; omega[1] = fmass / omega[0]; - const int ip = ( 1 + nh ) / 2; // NB: Fortran is (3+nh)/2 because omega(2) has indexes 1,2 and not 0,1 - const int im = ( 1 - nh ) / 2; // NB: Fortran is (3-nh)/2 because omega(2) has indexes 1,2 and not 0,1 const fptype sfomega[2] = { sf[0] * omega[ip], sf[1] * omega[im] }; const fptype pp3 = fpmax( pp + pvec3, 0. ); const cxtype chi[2] = { cxmake( fpsqrt( pp3 * (fptype)0.5 / pp ), 0. ), @@ -233,8 +239,6 @@ namespace mg5amcCpu fi[5] = sfomega[1] * chi[ip]; } #else - const int ip = ( 1 + nh ) / 2; - const int im = ( 1 - nh ) / 2; // Branch A: pp == 0. // NB: Do not use "abs" for floats! It returns an integer with no build warning! Use std::abs! fptype sqm[2] = { fpsqrt( std::abs( fmass ) ), 0 }; // possibility of negative fermion masses (NB: SCALAR!) @@ -250,10 +254,12 @@ namespace mg5amcCpu omega[1] = fmass / omega[0]; const fptype_v sfomega[2] = { sf[0] * omega[ip], sf[1] * omega[im] }; const fptype_v pp3 = fpmax( pp + pvec3, 0 ); - const cxtype_v chi[2] = { cxmake( fpsqrt( pp3 * 0.5 / pp ), 0 ), + volatile fptype_v ppDENOM = fpternary( pp != 0, pp, 1. ); // hack: ppDENOM[ieppV]=1 if pp[ieppV]==0 + volatile fptype_v pp3DENOM = fpternary( pp3 != 0, pp3, 1. ); // hack: pp3DENOM[ieppV]=1 if pp3[ieppV]==0 + const cxtype_v chi[2] = { cxmake( fpsqrt( pp3 * 0.5 / ppDENOM ), 0 ), // hack: dummy[ieppV] is not used if pp[ieppV]==0 cxternary( ( pp3 == 0. ), cxmake( -nh, 0 ), - cxmake( (fptype)nh * pvec1, pvec2 ) / fpsqrt( 2. * pp * pp3 ) ) }; + cxmake( (fptype)nh * pvec1, pvec2 ) / fpsqrt( 2. * ppDENOM * pp3DENOM ) ) }; // hack: dummy[ieppV] is not used if pp[ieppV]==0 const cxtype_v fiB_2 = sfomega[0] * chi[im]; const cxtype_v fiB_3 = sfomega[0] * chi[ip]; const cxtype_v fiB_4 = sfomega[1] * chi[im]; @@ -271,7 +277,16 @@ namespace mg5amcCpu const fptype_sv sqp0p3 = fpternary( ( pvec1 == 0. and pvec2 == 0. and pvec3 < 0. ), fptype_sv{ 0 }, fpsqrt( fpmax( pvec0 + pvec3, 0. ) ) * (fptype)nsf ); - const cxtype_sv chi[2] = { cxmake( sqp0p3, 0. ), cxternary( ( sqp0p3 == 0. ), cxmake( -(fptype)nhel * fpsqrt( 2. * pvec0 ), 0. ), cxmake( (fptype)nh * pvec1, pvec2 ) / sqp0p3 ) }; +#ifdef MGONGPU_CPPSIMD + volatile fptype_v sqp0p3DENOM = fpternary( sqp0p3 != 0, sqp0p3, 1. ); // hack: dummy sqp0p3DENOM[ieppV]=1 if sqp0p3[ieppV]==0 + cxtype_sv chi[2] = { cxmake( sqp0p3, 0. ), + cxternary( sqp0p3 == 0, + cxmake( -(fptype)nhel * fpsqrt( 2. * pvec0 ), 0. ), + cxmake( (fptype)nh * pvec1, pvec2 ) / (const fptype_v)sqp0p3DENOM ) }; // hack: dummy[ieppV] is not used if sqp0p3[ieppV]==0 +#else + const cxtype_sv chi[2] = { cxmake( sqp0p3, 0. ), + ( sqp0p3 == 0. ? cxmake( -(fptype)nhel * fpsqrt( 2. * pvec0 ), 0. ) : cxmake( (fptype)nh * pvec1, pvec2 ) / sqp0p3 ) }; +#endif if( nh == 1 ) { fi[2] = cxzero_sv(); @@ -422,6 +437,9 @@ namespace mg5amcCpu const int ipar ) // input: particle# out of npar { mgDebug( 0, __FUNCTION__ ); + // NEW IMPLEMENTATION FIXING FLOATING POINT EXCEPTIONS IN SIMD CODE (#701) + // Variables xxxDENOM are a hack to avoid division-by-0 FPE while preserving speed (#701 and #727) + // Variables xxxDENOM are declared as 'volatile' to make sure they are not optimized away on clang! (#724) const fptype_sv& pvec0 = M_ACCESS::kernelAccessIp4IparConst( momenta, 0, ipar ); const fptype_sv& pvec1 = M_ACCESS::kernelAccessIp4IparConst( momenta, 1, ipar ); const fptype_sv& pvec2 = M_ACCESS::kernelAccessIp4IparConst( momenta, 2, ipar ); @@ -472,13 +490,15 @@ namespace mg5amcCpu const cxtype vcA_4 = cxmake( 0, nsvahl * sqh ); const cxtype vcA_5 = cxmake( hel0, 0 ); // Branch B: pp != 0. - const fptype_v emp = pvec0 / ( vmass * pp ); + volatile fptype_v ppDENOM = fpternary( pp != 0, pp, 1. ); // hack: ppDENOM[ieppV]=1 if pp[ieppV]==0 + const fptype_v emp = pvec0 / ( vmass * ppDENOM ); // hack: dummy[ieppV] is not used if pp[ieppV]==0 const cxtype_v vcB_2 = cxmake( hel0 * pp / vmass, 0 ); - const cxtype_v vcB_5 = cxmake( hel0 * pvec3 * emp + hel * pt / pp * sqh, 0 ); + const cxtype_v vcB_5 = cxmake( hel0 * pvec3 * emp + hel * pt / ppDENOM * sqh, 0 ); // hack: dummy[ieppV] is not used if pp[ieppV]==0 // Branch B1: pp != 0. and pt != 0. - const fptype_v pzpt = pvec3 / ( pp * pt ) * sqh * hel; - const cxtype_v vcB1_3 = cxmake( hel0 * pvec1 * emp - pvec1 * pzpt, -(fptype)nsvahl * pvec2 / pt * sqh ); - const cxtype_v vcB1_4 = cxmake( hel0 * pvec2 * emp - pvec2 * pzpt, (fptype)nsvahl * pvec1 / pt * sqh ); + volatile fptype_v ptDENOM = fpternary( pt != 0, pt, 1. ); // hack: ptDENOM[ieppV]=1 if pt[ieppV]==0 + const fptype_v pzpt = pvec3 / ( ppDENOM * ptDENOM ) * sqh * hel; // hack: dummy[ieppV] is not used if pp[ieppV]==0 + const cxtype_v vcB1_3 = cxmake( hel0 * pvec1 * emp - pvec1 * pzpt, -(fptype)nsvahl * pvec2 / ptDENOM * sqh ); // hack: dummy[ieppV] is not used if pt[ieppV]==0 + const cxtype_v vcB1_4 = cxmake( hel0 * pvec2 * emp - pvec2 * pzpt, (fptype)nsvahl * pvec1 / ptDENOM * sqh ); // hack: dummy[ieppV] is not used if pt[ieppV]==0 // Branch B2: pp != 0. and pt == 0. const cxtype vcB2_3 = cxmake( -hel * sqh, 0. ); const cxtype_v vcB2_4 = cxmake( 0., (fptype)nsvahl * fpternary( ( pvec3 < 0 ), -sqh, sqh ) ); // AV: removed an abs here @@ -513,9 +533,10 @@ namespace mg5amcCpu } #else // Branch A: pt != 0. - const fptype_v pzpt = pvec3 / ( pp * pt ) * sqh * hel; - const cxtype_v vcA_3 = cxmake( -pvec1 * pzpt, -(fptype)nsv * pvec2 / pt * sqh ); - const cxtype_v vcA_4 = cxmake( -pvec2 * pzpt, (fptype)nsv * pvec1 / pt * sqh ); + volatile fptype_v ptDENOM = fpternary( pt != 0, pt, 1. ); // hack: ptDENOM[ieppV]=1 if pt[ieppV]==0 + const fptype_v pzpt = pvec3 / ( pp * ptDENOM ) * sqh * hel; // hack: dummy[ieppV] is not used if pt[ieppV]==0 + const cxtype_v vcA_3 = cxmake( -pvec1 * pzpt, -(fptype)nsv * pvec2 / ptDENOM * sqh ); // hack: dummy[ieppV] is not used if pt[ieppV]==0 + const cxtype_v vcA_4 = cxmake( -pvec2 * pzpt, (fptype)nsv * pvec1 / ptDENOM * sqh ); // hack: dummy[ieppV] is not used if pt[ieppV]==0 // Branch B: pt == 0. const cxtype vcB_3 = cxmake( -(fptype)hel * sqh, 0 ); const cxtype_v vcB_4 = cxmake( 0, (fptype)nsv * fpternary( ( pvec3 < 0 ), -sqh, sqh ) ); // AV: removed an abs here @@ -567,6 +588,9 @@ namespace mg5amcCpu const int ipar ) // input: particle# out of npar { mgDebug( 0, __FUNCTION__ ); + // NEW IMPLEMENTATION FIXING FLOATING POINT EXCEPTIONS IN SIMD CODE (#701) + // Variables xxxDENOM are a hack to avoid division-by-0 FPE while preserving speed (#701 and #727) + // Variables xxxDENOM are declared as 'volatile' to make sure they are not optimized away on clang! (#724) const fptype_sv& pvec0 = M_ACCESS::kernelAccessIp4IparConst( momenta, 0, ipar ); const fptype_sv& pvec1 = M_ACCESS::kernelAccessIp4IparConst( momenta, 1, ipar ); const fptype_sv& pvec2 = M_ACCESS::kernelAccessIp4IparConst( momenta, 2, ipar ); @@ -630,10 +654,12 @@ namespace mg5amcCpu const int imB = ( 1 - nh ) / 2; const fptype_v sfomeg[2] = { sf[0] * omega[ipB], sf[1] * omega[imB] }; const fptype_v pp3 = fpmax( pp + pvec3, 0. ); - const cxtype_v chi[2] = { cxmake( fpsqrt( pp3 * 0.5 / pp ), 0. ), + volatile fptype_v ppDENOM = fpternary( pp != 0, pp, 1. ); // hack: ppDENOM[ieppV]=1 if pp[ieppV]==0 + volatile fptype_v pp3DENOM = fpternary( pp3 != 0, pp3, 1. ); // hack: pp3DENOM[ieppV]=1 if pp3[ieppV]==0 + const cxtype_v chi[2] = { cxmake( fpsqrt( pp3 * 0.5 / ppDENOM ), 0. ), // hack: dummy[ieppV] is not used if pp[ieppV]==0 ( cxternary( ( pp3 == 0. ), cxmake( -nh, 0. ), - cxmake( (fptype)nh * pvec1, -pvec2 ) / fpsqrt( 2. * pp * pp3 ) ) ) }; + cxmake( (fptype)nh * pvec1, -pvec2 ) / fpsqrt( 2. * ppDENOM * pp3DENOM ) ) ) }; // hack: dummy[ieppV] is not used if pp[ieppV]==0 const cxtype_v foB_2 = sfomeg[1] * chi[imB]; const cxtype_v foB_3 = sfomeg[1] * chi[ipB]; const cxtype_v foB_4 = sfomeg[0] * chi[imB]; @@ -651,10 +677,16 @@ namespace mg5amcCpu const fptype_sv sqp0p3 = fpternary( ( pvec1 == 0. ) and ( pvec2 == 0. ) and ( pvec3 < 0. ), 0, fpsqrt( fpmax( pvec0 + pvec3, 0. ) ) * (fptype)nsf ); +#ifdef MGONGPU_CPPSIMD + volatile fptype_v sqp0p3DENOM = fpternary( sqp0p3 != 0, sqp0p3, 1. ); // hack: sqp0p3DENOM[ieppV]=1 if sqp0p3[ieppV]==0 + const cxtype_v chi[2] = { cxmake( sqp0p3, 0. ), + cxternary( ( sqp0p3 == 0. ), + cxmake( -nhel, 0. ) * fpsqrt( 2. * pvec0 ), + cxmake( (fptype)nh * pvec1, -pvec2 ) / (const fptype_sv)sqp0p3DENOM ) }; // hack: dummy[ieppV] is not used if sqp0p3[ieppV]==0 +#else const cxtype_sv chi[2] = { cxmake( sqp0p3, 0. ), - cxternary( ( sqp0p3 == 0. ), - cxmake( -nhel, 0. ) * fpsqrt( 2. * pvec0 ), - cxmake( (fptype)nh * pvec1, -pvec2 ) / sqp0p3 ) }; + ( sqp0p3 == 0. ? cxmake( -nhel, 0. ) * fpsqrt( 2. * pvec0 ) : cxmake( (fptype)nh * pvec1, -pvec2 ) / sqp0p3 ) }; +#endif if( nh == 1 ) { fo[2] = chi[0]; diff --git a/epochX/cudacpp/gg_ttgg.sa/src/Parameters_sm.cc b/epochX/cudacpp/gg_ttgg.sa/src/Parameters_sm.cc index d3d01102fd..22fdd96a68 100644 --- a/epochX/cudacpp/gg_ttgg.sa/src/Parameters_sm.cc +++ b/epochX/cudacpp/gg_ttgg.sa/src/Parameters_sm.cc @@ -17,6 +17,12 @@ #include #include +#ifdef __CUDACC__ +using namespace mg5amcGpu; +#else +using namespace mg5amcCpu; +#endif + #ifndef MGONGPU_HARDCODE_PARAM // Initialize static instance diff --git a/epochX/cudacpp/gg_ttgg.sa/src/Parameters_sm.h b/epochX/cudacpp/gg_ttgg.sa/src/Parameters_sm.h index 6551d8da81..11fd9e3c74 100644 --- a/epochX/cudacpp/gg_ttgg.sa/src/Parameters_sm.h +++ b/epochX/cudacpp/gg_ttgg.sa/src/Parameters_sm.h @@ -26,191 +26,216 @@ #include "read_slha.h" -class Parameters_sm +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { -public: + class Parameters_sm + { + public: - static Parameters_sm* getInstance(); + static Parameters_sm* getInstance(); - // Define "zero" - double zero, ZERO; + // Define "zero" + double zero, ZERO; - // Model parameters independent of aS - //double aS; // now retrieved event-by-event (as G) from Fortran (running alphas #373) - double mdl_WH, mdl_WW, mdl_WZ, mdl_WT, mdl_ymtau, mdl_ymt, mdl_ymb, mdl_Gf, aEWM1, mdl_MH, mdl_MZ, mdl_MTA, mdl_MT, mdl_MB, mdl_conjg__CKM3x3, mdl_conjg__CKM1x1, mdl_CKM3x3, mdl_MZ__exp__2, mdl_MZ__exp__4, mdl_sqrt__2, mdl_MH__exp__2, mdl_aEW, mdl_MW, mdl_sqrt__aEW, mdl_ee, mdl_MW__exp__2, mdl_sw2, mdl_cw, mdl_sqrt__sw2, mdl_sw, mdl_g1, mdl_gw, mdl_vev, mdl_vev__exp__2, mdl_lam, mdl_yb, mdl_yt, mdl_ytau, mdl_muH, mdl_ee__exp__2, mdl_sw__exp__2, mdl_cw__exp__2; - cxsmpl mdl_complexi, mdl_I1x33, mdl_I2x33, mdl_I3x33, mdl_I4x33; + // Model parameters independent of aS + //double aS; // now retrieved event-by-event (as G) from Fortran (running alphas #373) + double mdl_WH, mdl_WW, mdl_WZ, mdl_WT, mdl_ymtau, mdl_ymt, mdl_ymb, mdl_Gf, aEWM1, mdl_MH, mdl_MZ, mdl_MTA, mdl_MT, mdl_MB, mdl_conjg__CKM3x3, mdl_conjg__CKM1x1, mdl_CKM3x3, mdl_MZ__exp__2, mdl_MZ__exp__4, mdl_sqrt__2, mdl_MH__exp__2, mdl_aEW, mdl_MW, mdl_sqrt__aEW, mdl_ee, mdl_MW__exp__2, mdl_sw2, mdl_cw, mdl_sqrt__sw2, mdl_sw, mdl_g1, mdl_gw, mdl_vev, mdl_vev__exp__2, mdl_lam, mdl_yb, mdl_yt, mdl_ytau, mdl_muH, mdl_ee__exp__2, mdl_sw__exp__2, mdl_cw__exp__2; + cxsmpl mdl_complexi, mdl_I1x33, mdl_I2x33, mdl_I3x33, mdl_I4x33; - // Model couplings independent of aS - // (none) + // Model couplings independent of aS + // (none) - // Model parameters dependent on aS - //double mdl_sqrt__aS, G, mdl_G__exp__2; // now computed event-by-event (running alphas #373) + // Model parameters dependent on aS + //double mdl_sqrt__aS, G, mdl_G__exp__2; // now computed event-by-event (running alphas #373) - // Model couplings dependent on aS - //cxsmpl GC_10, GC_11, GC_12; // now computed event-by-event (running alphas #373) + // Model couplings dependent on aS + //cxsmpl GC_10, GC_11, GC_12; // now computed event-by-event (running alphas #373) - // Set parameters that are unchanged during the run - void setIndependentParameters( SLHAReader& slha ); + // Set parameters that are unchanged during the run + void setIndependentParameters( SLHAReader& slha ); - // Set couplings that are unchanged during the run - void setIndependentCouplings(); + // Set couplings that are unchanged during the run + void setIndependentCouplings(); - // Set parameters that are changed event by event - //void setDependentParameters(); // now computed event-by-event (running alphas #373) + // Set parameters that are changed event by event + //void setDependentParameters(); // now computed event-by-event (running alphas #373) - // Set couplings that are changed event by event - //void setDependentCouplings(); // now computed event-by-event (running alphas #373) + // Set couplings that are changed event by event + //void setDependentCouplings(); // now computed event-by-event (running alphas #373) - // Print parameters that are unchanged during the run - void printIndependentParameters(); + // Print parameters that are unchanged during the run + void printIndependentParameters(); - // Print couplings that are unchanged during the run - void printIndependentCouplings(); + // Print couplings that are unchanged during the run + void printIndependentCouplings(); - // Print parameters that are changed event by event - //void printDependentParameters(); // now computed event-by-event (running alphas #373) + // Print parameters that are changed event by event + //void printDependentParameters(); // now computed event-by-event (running alphas #373) - // Print couplings that are changed event by event - //void printDependentCouplings(); // now computed event-by-event (running alphas #373) + // Print couplings that are changed event by event + //void printDependentCouplings(); // now computed event-by-event (running alphas #373) -private: + private: - static Parameters_sm* instance; -}; + static Parameters_sm* instance; + }; + +} // end namespace mg5amcGpu/mg5amcCpu #else #include #include -// Hardcoded constexpr physics parameters -namespace Parameters_sm // keep the same name rather than HardcodedParameters_sm for simplicity +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { - // Constexpr implementation of sqrt (see https://stackoverflow.com/a/34134071) - double constexpr sqrtNewtonRaphson( double x, double curr, double prev ) + // Hardcoded constexpr physics parameters + namespace Parameters_sm // keep the same name rather than HardcodedParameters_sm for simplicity { - return curr == prev ? curr : sqrtNewtonRaphson( x, 0.5 * ( curr + x / curr ), curr ); - } - double constexpr constexpr_sqrt( double x ) - { - return x >= 0 // && x < std::numeric_limits::infinity() // avoid -Wtautological-constant-compare warning in fast math - ? sqrtNewtonRaphson( x, x, 0 ) - : std::numeric_limits::quiet_NaN(); - } + // Constexpr implementation of sqrt (see https://stackoverflow.com/a/34134071) + double constexpr sqrtNewtonRaphson( double x, double curr, double prev ) + { + return curr == prev ? curr : sqrtNewtonRaphson( x, 0.5 * ( curr + x / curr ), curr ); + } + double constexpr constexpr_sqrt( double x ) + { + return x >= 0 // && x < std::numeric_limits::infinity() // avoid -Wtautological-constant-compare warning in fast math + ? sqrtNewtonRaphson( x, x, 0 ) + : std::numeric_limits::quiet_NaN(); + } - // Constexpr implementation of floor (see https://stackoverflow.com/a/66146159) - constexpr int constexpr_floor( double d ) - { - const int i = static_cast( d ); - return d < i ? i - 1 : i; - } + // Constexpr implementation of floor (see https://stackoverflow.com/a/66146159) + constexpr int constexpr_floor( double d ) + { + const int i = static_cast( d ); + return d < i ? i - 1 : i; + } - // Constexpr implementation of pow - constexpr double constexpr_pow( double base, double exp ) - { - // NB(1): this implementation of constexpr_pow requires exponent >= 0 - assert( exp >= 0 ); // NB would fail at compile time with "error: call to non-‘constexpr’ function ‘void __assert_fail'" - // NB(2): this implementation of constexpr_pow requires an integer exponent - const int iexp = constexpr_floor( exp ); - assert( static_cast( iexp ) == exp ); // NB would fail at compile time with "error: call to non-‘constexpr’ function ‘void __assert_fail'" - // Iterative implementation of pow if exp is a non negative integer - return iexp == 0 ? 1 : base * constexpr_pow( base, iexp - 1 ); + // Constexpr implementation of pow + constexpr double constexpr_pow( double base, double exp ) + { + // NB(1): this implementation of constexpr_pow requires exponent >= 0 + assert( exp >= 0 ); // NB would fail at compile time with "error: call to non-‘constexpr’ function ‘void __assert_fail'" + // NB(2): this implementation of constexpr_pow requires an integer exponent + const int iexp = constexpr_floor( exp ); + assert( static_cast( iexp ) == exp ); // NB would fail at compile time with "error: call to non-‘constexpr’ function ‘void __assert_fail'" + // Iterative implementation of pow if exp is a non negative integer + return iexp == 0 ? 1 : base * constexpr_pow( base, iexp - 1 ); + } + + // Model parameters independent of aS + constexpr double zero = 0; + constexpr double ZERO = 0; + constexpr double mdl_WH = 6.382339e-03; + constexpr double mdl_WW = 2.047600e+00; + constexpr double mdl_WZ = 2.441404e+00; + constexpr double mdl_WT = 1.491500e+00; + constexpr double mdl_ymtau = 1.777000e+00; + constexpr double mdl_ymt = 1.730000e+02; + constexpr double mdl_ymb = 4.700000e+00; + //constexpr double aS = 1.180000e-01; // now retrieved event-by-event (as G) from Fortran (running alphas #373) + constexpr double mdl_Gf = 1.166390e-05; + constexpr double aEWM1 = 1.325070e+02; + constexpr double mdl_MH = 1.250000e+02; + constexpr double mdl_MZ = 9.118800e+01; + constexpr double mdl_MTA = 1.777000e+00; + constexpr double mdl_MT = 1.730000e+02; + constexpr double mdl_MB = 4.700000e+00; + constexpr double mdl_conjg__CKM3x3 = 1.; + constexpr double mdl_conjg__CKM1x1 = 1.; + constexpr double mdl_CKM3x3 = 1.; + constexpr cxsmpl mdl_complexi = cxsmpl( 0., 1. ); + constexpr double mdl_MZ__exp__2 = ( ( mdl_MZ ) * ( mdl_MZ ) ); + constexpr double mdl_MZ__exp__4 = ( ( mdl_MZ ) * ( mdl_MZ ) * ( mdl_MZ ) * ( mdl_MZ ) ); + constexpr double mdl_sqrt__2 = constexpr_sqrt( 2. ); + constexpr double mdl_MH__exp__2 = ( ( mdl_MH ) * ( mdl_MH ) ); + constexpr double mdl_aEW = 1. / aEWM1; + constexpr double mdl_MW = constexpr_sqrt( mdl_MZ__exp__2 / 2. + constexpr_sqrt( mdl_MZ__exp__4 / 4. - ( mdl_aEW * M_PI * mdl_MZ__exp__2 ) / ( mdl_Gf * mdl_sqrt__2 ) ) ); + constexpr double mdl_sqrt__aEW = constexpr_sqrt( mdl_aEW ); + constexpr double mdl_ee = 2. * mdl_sqrt__aEW * constexpr_sqrt( M_PI ); + constexpr double mdl_MW__exp__2 = ( ( mdl_MW ) * ( mdl_MW ) ); + constexpr double mdl_sw2 = 1. - mdl_MW__exp__2 / mdl_MZ__exp__2; + constexpr double mdl_cw = constexpr_sqrt( 1. - mdl_sw2 ); + constexpr double mdl_sqrt__sw2 = constexpr_sqrt( mdl_sw2 ); + constexpr double mdl_sw = mdl_sqrt__sw2; + constexpr double mdl_g1 = mdl_ee / mdl_cw; + constexpr double mdl_gw = mdl_ee / mdl_sw; + constexpr double mdl_vev = ( 2. * mdl_MW * mdl_sw ) / mdl_ee; + constexpr double mdl_vev__exp__2 = ( ( mdl_vev ) * ( mdl_vev ) ); + constexpr double mdl_lam = mdl_MH__exp__2 / ( 2. * mdl_vev__exp__2 ); + constexpr double mdl_yb = ( mdl_ymb * mdl_sqrt__2 ) / mdl_vev; + constexpr double mdl_yt = ( mdl_ymt * mdl_sqrt__2 ) / mdl_vev; + constexpr double mdl_ytau = ( mdl_ymtau * mdl_sqrt__2 ) / mdl_vev; + constexpr double mdl_muH = constexpr_sqrt( mdl_lam * mdl_vev__exp__2 ); + constexpr cxsmpl mdl_I1x33 = mdl_yb * mdl_conjg__CKM3x3; + constexpr cxsmpl mdl_I2x33 = mdl_yt * mdl_conjg__CKM3x3; + constexpr cxsmpl mdl_I3x33 = mdl_CKM3x3 * mdl_yt; + constexpr cxsmpl mdl_I4x33 = mdl_CKM3x3 * mdl_yb; + constexpr double mdl_ee__exp__2 = ( ( mdl_ee ) * ( mdl_ee ) ); + constexpr double mdl_sw__exp__2 = ( ( mdl_sw ) * ( mdl_sw ) ); + constexpr double mdl_cw__exp__2 = ( ( mdl_cw ) * ( mdl_cw ) ); + + // Model couplings independent of aS + // (none) + + // Model parameters dependent on aS + //constexpr double mdl_sqrt__aS = //constexpr_sqrt( aS ); // now computed event-by-event (running alphas #373) + //constexpr double G = 2. * mdl_sqrt__aS * //constexpr_sqrt( M_PI ); // now computed event-by-event (running alphas #373) + //constexpr double mdl_G__exp__2 = ( ( G ) * ( G ) ); // now computed event-by-event (running alphas #373) + + // Model couplings dependent on aS + //constexpr cxsmpl GC_10 = -G; // now computed event-by-event (running alphas #373) + //constexpr cxsmpl GC_11 = mdl_complexi * G; // now computed event-by-event (running alphas #373) + //constexpr cxsmpl GC_12 = mdl_complexi * mdl_G__exp__2; // now computed event-by-event (running alphas #373) + + // Print parameters that are unchanged during the run + void printIndependentParameters(); + + // Print couplings that are unchanged during the run + void printIndependentCouplings(); + + // Print parameters that are changed event by event + //void printDependentParameters(); // now computed event-by-event (running alphas #373) + + // Print couplings that are changed event by event + //void printDependentCouplings(); // now computed event-by-event (running alphas #373) } - // Model parameters independent of aS - constexpr double zero = 0; - constexpr double ZERO = 0; - constexpr double mdl_WH = 6.382339e-03; - constexpr double mdl_WW = 2.047600e+00; - constexpr double mdl_WZ = 2.441404e+00; - constexpr double mdl_WT = 1.491500e+00; - constexpr double mdl_ymtau = 1.777000e+00; - constexpr double mdl_ymt = 1.730000e+02; - constexpr double mdl_ymb = 4.700000e+00; - //constexpr double aS = 1.180000e-01; // now retrieved event-by-event (as G) from Fortran (running alphas #373) - constexpr double mdl_Gf = 1.166390e-05; - constexpr double aEWM1 = 1.325070e+02; - constexpr double mdl_MH = 1.250000e+02; - constexpr double mdl_MZ = 9.118800e+01; - constexpr double mdl_MTA = 1.777000e+00; - constexpr double mdl_MT = 1.730000e+02; - constexpr double mdl_MB = 4.700000e+00; - constexpr double mdl_conjg__CKM3x3 = 1.; - constexpr double mdl_conjg__CKM1x1 = 1.; - constexpr double mdl_CKM3x3 = 1.; - constexpr cxsmpl mdl_complexi = cxsmpl( 0., 1. ); - constexpr double mdl_MZ__exp__2 = ( ( mdl_MZ ) * ( mdl_MZ ) ); - constexpr double mdl_MZ__exp__4 = ( ( mdl_MZ ) * ( mdl_MZ ) * ( mdl_MZ ) * ( mdl_MZ ) ); - constexpr double mdl_sqrt__2 = constexpr_sqrt( 2. ); - constexpr double mdl_MH__exp__2 = ( ( mdl_MH ) * ( mdl_MH ) ); - constexpr double mdl_aEW = 1. / aEWM1; - constexpr double mdl_MW = constexpr_sqrt( mdl_MZ__exp__2 / 2. + constexpr_sqrt( mdl_MZ__exp__4 / 4. - ( mdl_aEW * M_PI * mdl_MZ__exp__2 ) / ( mdl_Gf * mdl_sqrt__2 ) ) ); - constexpr double mdl_sqrt__aEW = constexpr_sqrt( mdl_aEW ); - constexpr double mdl_ee = 2. * mdl_sqrt__aEW * constexpr_sqrt( M_PI ); - constexpr double mdl_MW__exp__2 = ( ( mdl_MW ) * ( mdl_MW ) ); - constexpr double mdl_sw2 = 1. - mdl_MW__exp__2 / mdl_MZ__exp__2; - constexpr double mdl_cw = constexpr_sqrt( 1. - mdl_sw2 ); - constexpr double mdl_sqrt__sw2 = constexpr_sqrt( mdl_sw2 ); - constexpr double mdl_sw = mdl_sqrt__sw2; - constexpr double mdl_g1 = mdl_ee / mdl_cw; - constexpr double mdl_gw = mdl_ee / mdl_sw; - constexpr double mdl_vev = ( 2. * mdl_MW * mdl_sw ) / mdl_ee; - constexpr double mdl_vev__exp__2 = ( ( mdl_vev ) * ( mdl_vev ) ); - constexpr double mdl_lam = mdl_MH__exp__2 / ( 2. * mdl_vev__exp__2 ); - constexpr double mdl_yb = ( mdl_ymb * mdl_sqrt__2 ) / mdl_vev; - constexpr double mdl_yt = ( mdl_ymt * mdl_sqrt__2 ) / mdl_vev; - constexpr double mdl_ytau = ( mdl_ymtau * mdl_sqrt__2 ) / mdl_vev; - constexpr double mdl_muH = constexpr_sqrt( mdl_lam * mdl_vev__exp__2 ); - constexpr cxsmpl mdl_I1x33 = mdl_yb * mdl_conjg__CKM3x3; - constexpr cxsmpl mdl_I2x33 = mdl_yt * mdl_conjg__CKM3x3; - constexpr cxsmpl mdl_I3x33 = mdl_CKM3x3 * mdl_yt; - constexpr cxsmpl mdl_I4x33 = mdl_CKM3x3 * mdl_yb; - constexpr double mdl_ee__exp__2 = ( ( mdl_ee ) * ( mdl_ee ) ); - constexpr double mdl_sw__exp__2 = ( ( mdl_sw ) * ( mdl_sw ) ); - constexpr double mdl_cw__exp__2 = ( ( mdl_cw ) * ( mdl_cw ) ); - - // Model couplings independent of aS - // (none) - - // Model parameters dependent on aS - //constexpr double mdl_sqrt__aS = //constexpr_sqrt( aS ); // now computed event-by-event (running alphas #373) - //constexpr double G = 2. * mdl_sqrt__aS * //constexpr_sqrt( M_PI ); // now computed event-by-event (running alphas #373) - //constexpr double mdl_G__exp__2 = ( ( G ) * ( G ) ); // now computed event-by-event (running alphas #373) - - // Model couplings dependent on aS - //constexpr cxsmpl GC_10 = -G; // now computed event-by-event (running alphas #373) - //constexpr cxsmpl GC_11 = mdl_complexi * G; // now computed event-by-event (running alphas #373) - //constexpr cxsmpl GC_12 = mdl_complexi * mdl_G__exp__2; // now computed event-by-event (running alphas #373) - - // Print parameters that are unchanged during the run - void printIndependentParameters(); - - // Print couplings that are unchanged during the run - void printIndependentCouplings(); - - // Print parameters that are changed event by event - //void printDependentParameters(); // now computed event-by-event (running alphas #373) - - // Print couplings that are changed event by event - //void printDependentCouplings(); // now computed event-by-event (running alphas #373) -} +} // end namespace mg5amcGpu/mg5amcCpu #endif //========================================================================== -namespace Parameters_sm_dependentCouplings +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { - constexpr size_t ndcoup = 3; // #couplings that vary event by event because they depend on the running alphas QCD - constexpr size_t idcoup_GC_10 = 0; - constexpr size_t idcoup_GC_11 = 1; - constexpr size_t idcoup_GC_12 = 2; - struct DependentCouplings_sv + namespace Parameters_sm_dependentCouplings { - cxtype_sv GC_10; - cxtype_sv GC_11; - cxtype_sv GC_12; - }; + constexpr size_t ndcoup = 3; // #couplings that vary event by event because they depend on the running alphas QCD + constexpr size_t idcoup_GC_10 = 0; + constexpr size_t idcoup_GC_11 = 1; + constexpr size_t idcoup_GC_12 = 2; + struct DependentCouplings_sv + { + cxtype_sv GC_10; + cxtype_sv GC_11; + cxtype_sv GC_12; + }; #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wunused-variable" // e.g. <> #pragma GCC diagnostic ignored "-Wunused-parameter" // e.g. <> @@ -218,52 +243,46 @@ namespace Parameters_sm_dependentCouplings #pragma nv_diagnostic push #pragma nv_diag_suppress 177 // e.g. <> #endif - __host__ __device__ inline const DependentCouplings_sv computeDependentCouplings_fromG( const fptype_sv& G_sv ) - { + __host__ __device__ inline const DependentCouplings_sv computeDependentCouplings_fromG( const fptype_sv& G_sv ) + { #ifdef MGONGPU_HARDCODE_PARAM - using namespace Parameters_sm; + using namespace Parameters_sm; #endif - // NB: hardcode cxtype cI(0,1) instead of cxtype (or hardcoded cxsmpl) mdl_complexi (which exists in Parameters_sm) because: - // (1) mdl_complexi is always (0,1); (2) mdl_complexi is undefined in device code; (3) need cxsmpl conversion to cxtype in code below - const cxtype cI( 0., 1. ); - DependentCouplings_sv out; - // Begin SM implementation - no special handling of vectors of floats as in EFT (#439) - { - const fptype_sv& G = G_sv; - // Model parameters dependent on aS - //const fptype_sv mdl_sqrt__aS = constexpr_sqrt( aS ); - //const fptype_sv G = 2. * mdl_sqrt__aS * constexpr_sqrt( M_PI ); - const fptype_sv mdl_G__exp__2 = ( ( G ) * ( G ) ); - // Model couplings dependent on aS - out.GC_10 = -G; - out.GC_11 = cI * G; - out.GC_12 = cI * mdl_G__exp__2; + // NB: hardcode cxtype cI(0,1) instead of cxtype (or hardcoded cxsmpl) mdl_complexi (which exists in Parameters_sm) because: + // (1) mdl_complexi is always (0,1); (2) mdl_complexi is undefined in device code; (3) need cxsmpl conversion to cxtype in code below + const cxtype cI( 0., 1. ); + DependentCouplings_sv out; + // Begin SM implementation - no special handling of vectors of floats as in EFT (#439) + { + const fptype_sv& G = G_sv; + // Model parameters dependent on aS + //const fptype_sv mdl_sqrt__aS = constexpr_sqrt( aS ); + //const fptype_sv G = 2. * mdl_sqrt__aS * constexpr_sqrt( M_PI ); + const fptype_sv mdl_G__exp__2 = ( ( G ) * ( G ) ); + // Model couplings dependent on aS + out.GC_10 = -G; + out.GC_11 = cI * G; + out.GC_12 = cI * mdl_G__exp__2; + } + // End SM implementation - no special handling of vectors of floats as in EFT (#439) + return out; } - // End SM implementation - no special handling of vectors of floats as in EFT (#439) - return out; - } #ifdef __CUDACC__ #pragma GCC diagnostic pop #pragma nv_diagnostic pop #endif -} + } -//========================================================================== + //========================================================================== -namespace Parameters_sm_independentCouplings -{ - constexpr size_t nicoup = 0; // #couplings that are fixed for all events because they do not depend on the running alphas QCD - // NB: there are no aS-independent couplings in this physics process -} + namespace Parameters_sm_independentCouplings + { + constexpr size_t nicoup = 0; // #couplings that are fixed for all events because they do not depend on the running alphas QCD + // NB: there are no aS-independent couplings in this physics process + } -//========================================================================== + //========================================================================== -#ifdef __CUDACC__ -namespace mg5amcGpu -#else -namespace mg5amcCpu -#endif -{ #pragma GCC diagnostic push #ifndef __clang__ #pragma GCC diagnostic ignored "-Wunused-but-set-variable" // e.g. <> @@ -291,7 +310,8 @@ namespace mg5amcCpu return; } #pragma GCC diagnostic pop -} + +} // end namespace mg5amcGpu/mg5amcCpu //========================================================================== diff --git a/epochX/cudacpp/gg_ttgg.sa/src/cudacpp_src.mk b/epochX/cudacpp/gg_ttgg.sa/src/cudacpp_src.mk index 21b6d924ff..554d7a704c 100644 --- a/epochX/cudacpp/gg_ttgg.sa/src/cudacpp_src.mk +++ b/epochX/cudacpp/gg_ttgg.sa/src/cudacpp_src.mk @@ -38,7 +38,13 @@ endif #------------------------------------------------------------------------------- -#=== Configure ccache for CUDA and C++ builds +#=== Configure the CUDA compiler (note: NVCC is already exported including ccache) + +###$(info NVCC=$(NVCC)) + +#------------------------------------------------------------------------------- + +#=== Configure ccache for C++ builds (note: NVCC is already exported including ccache) # Enable ccache if USECCACHE=1 ifeq ($(USECCACHE)$(shell echo $(CXX) | grep ccache),1) @@ -47,11 +53,6 @@ endif #ifeq ($(USECCACHE)$(shell echo $(AR) | grep ccache),1) # override AR:=ccache $(AR) #endif -#ifneq ($(NVCC),) -# ifeq ($(USECCACHE)$(shell echo $(NVCC) | grep ccache),1) -# override NVCC:=ccache $(NVCC) -# endif -#endif #------------------------------------------------------------------------------- @@ -115,7 +116,9 @@ else ifneq ($(shell $(CXX) --version | grep ^nvc++),) # support nvc++ #531 $(error Unknown AVX='$(AVX)': only 'none', 'sse4', 'avx2', '512y' and '512z' are supported) endif else - ifeq ($(AVX),sse4) + ifeq ($(AVX),none) + override AVXFLAGS = -march=x86-64 # no SIMD (see #588) + else ifeq ($(AVX),sse4) override AVXFLAGS = -march=nehalem # SSE4.2 with 128 width (xmm registers) else ifeq ($(AVX),avx2) override AVXFLAGS = -march=haswell # AVX2 with 256 width (ymm registers) [DEFAULT for clang] @@ -216,7 +219,7 @@ MG5AMC_COMMONLIB = mg5amc_common all.$(TAG): $(BUILDDIR)/.build.$(TAG) $(LIBDIR)/.build.$(TAG) $(LIBDIR)/lib$(MG5AMC_COMMONLIB).so # Target (and build options): debug -debug: OPTFLAGS = -g -O0 -DDEBUG2 +debug: OPTFLAGS = -g -O0 debug: all.$(TAG) # Target: tag-specific build lockfiles @@ -237,17 +240,31 @@ $(LIBDIR)/.build.$(TAG): # Generic target and build rules: objects from C++ compilation $(BUILDDIR)/%.o : %.cc *.h $(BUILDDIR)/.build.$(TAG) - @if [ ! -d $(BUILDDIR) ]; then mkdir -p $(BUILDDIR); fi - $(CXX) $(CPPFLAGS) $(CXXFLAGS) -c $< -o $@ + @if [ ! -d $(BUILDDIR) ]; then echo "mkdir -p $(BUILDDIR)"; mkdir -p $(BUILDDIR); fi + $(CXX) $(CPPFLAGS) $(CXXFLAGS) -fPIC -c $< -o $@ + +# Generic target and build rules: objects from CUDA compilation +$(BUILDDIR)/%_cu.o : %.cc *.h $(BUILDDIR)/.build.$(TAG) + @if [ ! -d $(BUILDDIR) ]; then echo "mkdir -p $(BUILDDIR)"; mkdir -p $(BUILDDIR); fi + $(NVCC) $(CPPFLAGS) $(CUFLAGS) -Xcompiler -fPIC -c -x cu $< -o $@ #------------------------------------------------------------------------------- cxx_objects=$(addprefix $(BUILDDIR)/, Parameters_sm.o read_slha.o) +ifneq ($(NVCC),) +cu_objects=$(addprefix $(BUILDDIR)/, Parameters_sm_cu.o) +endif # Target (and build rules): common (src) library +ifneq ($(NVCC),) +$(LIBDIR)/lib$(MG5AMC_COMMONLIB).so : $(cxx_objects) $(cu_objects) + @if [ ! -d $(LIBDIR) ]; then echo "mkdir -p $(LIBDIR)"; mkdir -p $(LIBDIR); fi + $(NVCC) -shared -o $@ $(cxx_objects) $(cu_objects) +else $(LIBDIR)/lib$(MG5AMC_COMMONLIB).so : $(cxx_objects) @if [ ! -d $(LIBDIR) ]; then echo "mkdir -p $(LIBDIR)"; mkdir -p $(LIBDIR); fi - $(CXX) -shared -o$@ $(cxx_objects) + $(CXX) -shared -o $@ $(cxx_objects) +endif #------------------------------------------------------------------------------- diff --git a/epochX/cudacpp/gg_ttgg.sa/src/mgOnGpuConfig.h b/epochX/cudacpp/gg_ttgg.sa/src/mgOnGpuConfig.h index 6c0c4919e9..c0f067f1d8 100644 --- a/epochX/cudacpp/gg_ttgg.sa/src/mgOnGpuConfig.h +++ b/epochX/cudacpp/gg_ttgg.sa/src/mgOnGpuConfig.h @@ -98,6 +98,7 @@ #endif #endif +// NB: namespace mgOnGpu includes types which are defined in exactly the same way for CPU and GPU builds (see #318 and #725) namespace mgOnGpu { diff --git a/epochX/cudacpp/gg_ttgg.sa/src/mgOnGpuCxtypes.h b/epochX/cudacpp/gg_ttgg.sa/src/mgOnGpuCxtypes.h index 0cb2f1db7e..b56348bc58 100644 --- a/epochX/cudacpp/gg_ttgg.sa/src/mgOnGpuCxtypes.h +++ b/epochX/cudacpp/gg_ttgg.sa/src/mgOnGpuCxtypes.h @@ -43,8 +43,12 @@ // COMPLEX TYPES: SIMPLE COMPLEX CLASS (cxsmpl) //========================================================================== +// NB: namespace mgOnGpu includes types which are defined in exactly the same way for CPU and GPU builds (see #318 and #725) namespace mgOnGpu /* clang-format off */ { + // The number of floating point types in a complex type (real, imaginary) + constexpr int nx2 = 2; + // --- Type definition (simple complex type derived from cxtype_v) template class cxsmpl @@ -78,128 +82,139 @@ namespace mgOnGpu /* clang-format off */ using mgOnGpu::cxsmpl; // Printout to stream for user defined types -template -inline __host__ __device__ std::ostream& -operator<<( std::ostream& out, const cxsmpl& c ) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { - out << std::complex( c.real(), c.imag() ); - return out; -} + template + inline __host__ std::ostream& + operator<<( std::ostream& out, const cxsmpl& c ) + { + out << std::complex( c.real(), c.imag() ); + return out; + } -// Operators for cxsmpl -template -inline __host__ __device__ constexpr cxsmpl -operator+( const cxsmpl a ) -{ - return a; -} + // Operators for cxsmpl + template + inline __host__ __device__ constexpr cxsmpl + operator+( const cxsmpl a ) + { + return a; + } -template -inline __host__ __device__ constexpr cxsmpl -operator-( const cxsmpl& a ) -{ - return cxsmpl( -a.real(), -a.imag() ); -} + template + inline __host__ __device__ constexpr cxsmpl + operator-( const cxsmpl& a ) + { + return cxsmpl( -a.real(), -a.imag() ); + } -template -inline __host__ __device__ constexpr cxsmpl -operator+( const cxsmpl& a, const cxsmpl& b ) -{ - return cxsmpl( a.real() + b.real(), a.imag() + b.imag() ); -} + template + inline __host__ __device__ constexpr cxsmpl + operator+( const cxsmpl& a, const cxsmpl& b ) + { + return cxsmpl( a.real() + b.real(), a.imag() + b.imag() ); + } -template -inline __host__ __device__ constexpr cxsmpl -operator+( const FP& a, const cxsmpl& b ) -{ - return cxsmpl( a, 0 ) + b; -} + template + inline __host__ __device__ constexpr cxsmpl + operator+( const FP& a, const cxsmpl& b ) + { + return cxsmpl( a, 0 ) + b; + } -template -inline __host__ __device__ constexpr cxsmpl -operator-( const cxsmpl& a, const cxsmpl& b ) -{ - return cxsmpl( a.real() - b.real(), a.imag() - b.imag() ); -} + template + inline __host__ __device__ constexpr cxsmpl + operator-( const cxsmpl& a, const cxsmpl& b ) + { + return cxsmpl( a.real() - b.real(), a.imag() - b.imag() ); + } -template -inline __host__ __device__ constexpr cxsmpl -operator-( const FP& a, const cxsmpl& b ) -{ - return cxsmpl( a, 0 ) - b; -} + template + inline __host__ __device__ constexpr cxsmpl + operator-( const FP& a, const cxsmpl& b ) + { + return cxsmpl( a, 0 ) - b; + } -template -inline __host__ __device__ constexpr cxsmpl -operator*( const cxsmpl& a, const cxsmpl& b ) -{ - return cxsmpl( a.real() * b.real() - a.imag() * b.imag(), a.imag() * b.real() + a.real() * b.imag() ); -} + template + inline __host__ __device__ constexpr cxsmpl + operator*( const cxsmpl& a, const cxsmpl& b ) + { + return cxsmpl( a.real() * b.real() - a.imag() * b.imag(), a.imag() * b.real() + a.real() * b.imag() ); + } -template -inline __host__ __device__ constexpr cxsmpl -operator*( const FP& a, const cxsmpl& b ) -{ - return cxsmpl( a, 0 ) * b; -} + template + inline __host__ __device__ constexpr cxsmpl + operator*( const FP& a, const cxsmpl& b ) + { + return cxsmpl( a, 0 ) * b; + } -inline __host__ __device__ constexpr cxsmpl -operator*( const double& a, const cxsmpl& b ) -{ - return cxsmpl( a, 0 ) * b; -} + inline __host__ __device__ constexpr cxsmpl + operator*( const double& a, const cxsmpl& b ) + { + return cxsmpl( a, 0 ) * b; + } -template -inline __host__ __device__ constexpr cxsmpl -operator/( const cxsmpl& a, const cxsmpl& b ) -{ - FP bnorm = b.real() * b.real() + b.imag() * b.imag(); - return cxsmpl( ( a.real() * b.real() + a.imag() * b.imag() ) / bnorm, - ( a.imag() * b.real() - a.real() * b.imag() ) / bnorm ); -} + template + inline __host__ __device__ constexpr cxsmpl + operator/( const cxsmpl& a, const cxsmpl& b ) + { + FP bnorm = b.real() * b.real() + b.imag() * b.imag(); + return cxsmpl( ( a.real() * b.real() + a.imag() * b.imag() ) / bnorm, + ( a.imag() * b.real() - a.real() * b.imag() ) / bnorm ); + } -template -inline __host__ __device__ constexpr cxsmpl -operator/( const FP& a, const cxsmpl& b ) -{ - return cxsmpl( a, 0 ) / b; -} + template + inline __host__ __device__ constexpr cxsmpl + operator/( const FP& a, const cxsmpl& b ) + { + return cxsmpl( a, 0 ) / b; + } -template -inline __host__ __device__ constexpr cxsmpl -operator+( const cxsmpl& a, const FP& b ) -{ - return a + cxsmpl( b, 0 ); -} + template + inline __host__ __device__ constexpr cxsmpl + operator+( const cxsmpl& a, const FP& b ) + { + return a + cxsmpl( b, 0 ); + } -template -inline __host__ __device__ constexpr cxsmpl -operator-( const cxsmpl& a, const FP& b ) -{ - return a - cxsmpl( b, 0 ); -} + template + inline __host__ __device__ constexpr cxsmpl + operator-( const cxsmpl& a, const FP& b ) + { + return a - cxsmpl( b, 0 ); + } -template -inline __host__ __device__ constexpr cxsmpl -operator*( const cxsmpl& a, const FP& b ) -{ - return a * cxsmpl( b, 0 ); -} + template + inline __host__ __device__ constexpr cxsmpl + operator*( const cxsmpl& a, const FP& b ) + { + return a * cxsmpl( b, 0 ); + } -template -inline __host__ __device__ constexpr cxsmpl -operator/( const cxsmpl& a, const FP& b ) -{ - return a / cxsmpl( b, 0 ); + template + inline __host__ __device__ constexpr cxsmpl + operator/( const cxsmpl& a, const FP& b ) + { + return a / cxsmpl( b, 0 ); + } } //========================================================================== // COMPLEX TYPES: (PLATFORM-SPECIFIC) TYPEDEFS //========================================================================== -namespace mgOnGpu +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { - // --- Type definitions (complex type: cxtype) #ifdef __CUDACC__ // cuda #if defined MGONGPU_CUCXTYPE_THRUST @@ -221,390 +236,402 @@ namespace mgOnGpu #endif #endif - // The number of floating point types in a complex type (real, imaginary) - constexpr int nx2 = 2; - // SANITY CHECK: memory access may be based on casts of fptype[2] to cxtype (e.g. for wavefunctions) - static_assert( sizeof( cxtype ) == nx2 * sizeof( fptype ), "sizeof(cxtype) is not 2*sizeof(fptype)" ); + static_assert( sizeof( cxtype ) == mgOnGpu::nx2 * sizeof( fptype ), "sizeof(cxtype) is not 2*sizeof(fptype)" ); } -// Expose typedefs and operators outside the namespace -using mgOnGpu::cxtype; +// DANGEROUS! this was mixing different cxtype definitions for CPU and GPU builds (see #318 and #725) +// DO NOT expose typedefs and operators outside the namespace +//using mgOnGpu::cxtype; //========================================================================== // COMPLEX TYPES: (PLATFORM-SPECIFIC) FUNCTIONS AND OPERATORS //========================================================================== +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif +{ #if defined MGONGPU_CUCXTYPE_CXSMPL or defined MGONGPU_CPPCXTYPE_CXSMPL -//------------------------------ -// CUDA or C++ - using cxsmpl -//------------------------------ + //------------------------------ + // CUDA or C++ - using cxsmpl + //------------------------------ -inline __host__ __device__ cxtype -cxmake( const fptype& r, const fptype& i ) -{ - return cxtype( r, i ); // cxsmpl constructor -} + inline __host__ __device__ cxtype + cxmake( const fptype& r, const fptype& i ) + { + return cxtype( r, i ); // cxsmpl constructor + } -inline __host__ __device__ fptype -cxreal( const cxtype& c ) -{ - return c.real(); // cxsmpl::real() -} + inline __host__ __device__ fptype + cxreal( const cxtype& c ) + { + return c.real(); // cxsmpl::real() + } -inline __host__ __device__ fptype -cximag( const cxtype& c ) -{ - return c.imag(); // cxsmpl::imag() -} + inline __host__ __device__ fptype + cximag( const cxtype& c ) + { + return c.imag(); // cxsmpl::imag() + } -inline __host__ __device__ cxtype -cxconj( const cxtype& c ) -{ - return conj( c ); // conj( cxsmpl ) -} + inline __host__ __device__ cxtype + cxconj( const cxtype& c ) + { + return conj( c ); // conj( cxsmpl ) + } -inline __host__ cxtype // NOT __device__ -cxmake( const std::complex& c ) // std::complex to cxsmpl (float-to-float or float-to-double) -{ - return cxmake( c.real(), c.imag() ); -} + inline __host__ cxtype // NOT __device__ + cxmake( const std::complex& c ) // std::complex to cxsmpl (float-to-float or float-to-double) + { + return cxmake( c.real(), c.imag() ); + } -inline __host__ cxtype // NOT __device__ -cxmake( const std::complex& c ) // std::complex to cxsmpl (double-to-float or double-to-double) -{ - return cxmake( c.real(), c.imag() ); -} + inline __host__ cxtype // NOT __device__ + cxmake( const std::complex& c ) // std::complex to cxsmpl (double-to-float or double-to-double) + { + return cxmake( c.real(), c.imag() ); + } #endif // #if defined MGONGPU_CUCXTYPE_CXSMPL or defined MGONGPU_CPPCXTYPE_CXSMPL -//========================================================================== + //========================================================================== #if defined __CUDACC__ and defined MGONGPU_CUCXTYPE_THRUST // cuda + thrust -//------------------------------ -// CUDA - using thrust::complex -//------------------------------ + //------------------------------ + // CUDA - using thrust::complex + //------------------------------ -inline __host__ __device__ cxtype -cxmake( const fptype& r, const fptype& i ) -{ - return cxtype( r, i ); // thrust::complex constructor -} + inline __host__ __device__ cxtype + cxmake( const fptype& r, const fptype& i ) + { + return cxtype( r, i ); // thrust::complex constructor + } -inline __host__ __device__ fptype -cxreal( const cxtype& c ) -{ - return c.real(); // thrust::complex::real() -} + inline __host__ __device__ fptype + cxreal( const cxtype& c ) + { + return c.real(); // thrust::complex::real() + } -inline __host__ __device__ fptype -cximag( const cxtype& c ) -{ - return c.imag(); // thrust::complex::imag() -} + inline __host__ __device__ fptype + cximag( const cxtype& c ) + { + return c.imag(); // thrust::complex::imag() + } -inline __host__ __device__ cxtype -cxconj( const cxtype& c ) -{ - return conj( c ); // conj( thrust::complex ) -} + inline __host__ __device__ cxtype + cxconj( const cxtype& c ) + { + return conj( c ); // conj( thrust::complex ) + } -inline __host__ __device__ const cxtype& -cxmake( const cxtype& c ) -{ - return c; -} + inline __host__ __device__ const cxtype& + cxmake( const cxtype& c ) + { + return c; + } #endif // #if defined __CUDACC__ and defined MGONGPU_CUCXTYPE_THRUST -//========================================================================== + //========================================================================== #if defined __CUDACC__ and defined MGONGPU_CUCXTYPE_CUCOMPLEX // cuda + cucomplex -//------------------------------ -// CUDA - using cuComplex -//------------------------------ + //------------------------------ + // CUDA - using cuComplex + //------------------------------ #if defined MGONGPU_FPTYPE_DOUBLE // cuda + cucomplex + double -//+++++++++++++++++++++++++ -// cuDoubleComplex ONLY -//+++++++++++++++++++++++++ + //+++++++++++++++++++++++++ + // cuDoubleComplex ONLY + //+++++++++++++++++++++++++ -inline __host__ __device__ cxtype -cxmake( const fptype& r, const fptype& i ) -{ - return make_cuDoubleComplex( r, i ); -} + inline __host__ __device__ cxtype + cxmake( const fptype& r, const fptype& i ) + { + return make_cuDoubleComplex( r, i ); + } -inline __host__ __device__ fptype -cxreal( const cxtype& c ) -{ - return cuCreal( c ); // returns by value -} + inline __host__ __device__ fptype + cxreal( const cxtype& c ) + { + return cuCreal( c ); // returns by value + } -inline __host__ __device__ fptype -cximag( const cxtype& c ) -{ - return cuCimag( c ); // returns by value -} + inline __host__ __device__ fptype + cximag( const cxtype& c ) + { + return cuCimag( c ); // returns by value + } -inline __host__ __device__ cxtype -operator+( const cxtype& a, const cxtype& b ) -{ - return cuCadd( a, b ); -} + inline __host__ __device__ cxtype + operator+( const cxtype& a, const cxtype& b ) + { + return cuCadd( a, b ); + } -inline __host__ __device__ cxtype& -operator+=( cxtype& a, const cxtype& b ) -{ - a = cuCadd( a, b ); - return a; -} + inline __host__ __device__ cxtype& + operator+=( cxtype& a, const cxtype& b ) + { + a = cuCadd( a, b ); + return a; + } -inline __host__ __device__ cxtype -operator-( const cxtype& a, const cxtype& b ) -{ - return cuCsub( a, b ); -} + inline __host__ __device__ cxtype + operator-( const cxtype& a, const cxtype& b ) + { + return cuCsub( a, b ); + } -inline __host__ __device__ cxtype& -operator-=( cxtype& a, const cxtype& b ) -{ - a = cuCsub( a, b ); - return a; -} + inline __host__ __device__ cxtype& + operator-=( cxtype& a, const cxtype& b ) + { + a = cuCsub( a, b ); + return a; + } -inline __host__ __device__ cxtype -operator*( const cxtype& a, const cxtype& b ) -{ - return cuCmul( a, b ); -} + inline __host__ __device__ cxtype + operator*( const cxtype& a, const cxtype& b ) + { + return cuCmul( a, b ); + } -inline __host__ __device__ cxtype -operator/( const cxtype& a, const cxtype& b ) -{ - return cuCdiv( a, b ); -} + inline __host__ __device__ cxtype + operator/( const cxtype& a, const cxtype& b ) + { + return cuCdiv( a, b ); + } #elif defined MGONGPU_FPTYPE_FLOAT // cuda + cucomplex + float -//+++++++++++++++++++++++++ -// cuFloatComplex ONLY -//+++++++++++++++++++++++++ + //+++++++++++++++++++++++++ + // cuFloatComplex ONLY + //+++++++++++++++++++++++++ -inline __host__ __device__ cxtype -cxmake( const fptype& r, const fptype& i ) -{ - return make_cuFloatComplex( r, i ); -} + inline __host__ __device__ cxtype + cxmake( const fptype& r, const fptype& i ) + { + return make_cuFloatComplex( r, i ); + } -inline __host__ __device__ fptype -cxreal( const cxtype& c ) -{ - return cuCrealf( c ); // returns by value -} + inline __host__ __device__ fptype + cxreal( const cxtype& c ) + { + return cuCrealf( c ); // returns by value + } -inline __host__ __device__ fptype -cximag( const cxtype& c ) -{ - return cuCimagf( c ); // returns by value -} + inline __host__ __device__ fptype + cximag( const cxtype& c ) + { + return cuCimagf( c ); // returns by value + } -inline __host__ __device__ cxtype -operator+( const cxtype& a, const cxtype& b ) -{ - return cuCaddf( a, b ); -} + inline __host__ __device__ cxtype + operator+( const cxtype& a, const cxtype& b ) + { + return cuCaddf( a, b ); + } -inline __host__ __device__ cxtype& -operator+=( cxtype& a, const cxtype& b ) -{ - a = cuCaddf( a, b ); - return a; -} + inline __host__ __device__ cxtype& + operator+=( cxtype& a, const cxtype& b ) + { + a = cuCaddf( a, b ); + return a; + } -inline __host__ __device__ cxtype -operator-( const cxtype& a, const cxtype& b ) -{ - return cuCsubf( a, b ); -} + inline __host__ __device__ cxtype + operator-( const cxtype& a, const cxtype& b ) + { + return cuCsubf( a, b ); + } -inline __host__ __device__ cxtype& -operator-=( cxtype& a, const cxtype& b ) -{ - a = cuCsubf( a, b ); - return a; -} + inline __host__ __device__ cxtype& + operator-=( cxtype& a, const cxtype& b ) + { + a = cuCsubf( a, b ); + return a; + } -inline __host__ __device__ cxtype -operator*( const cxtype& a, const cxtype& b ) -{ - return cuCmulf( a, b ); -} + inline __host__ __device__ cxtype + operator*( const cxtype& a, const cxtype& b ) + { + return cuCmulf( a, b ); + } -inline __host__ __device__ cxtype -operator/( const cxtype& a, const cxtype& b ) -{ - return cuCdivf( a, b ); -} + inline __host__ __device__ cxtype + operator/( const cxtype& a, const cxtype& b ) + { + return cuCdivf( a, b ); + } -inline __host__ cxtype // NOT __device__ -cxmake( const std::complex& c ) // std::complex to cucomplex (cast double-to-float) -{ - return cxmake( (fptype)c.real(), (fptype)c.imag() ); -} + inline __host__ cxtype // NOT __device__ + cxmake( const std::complex& c ) // std::complex to cucomplex (cast double-to-float) + { + return cxmake( (fptype)c.real(), (fptype)c.imag() ); + } #endif -//+++++++++++++++++++++++++ -// cuDoubleComplex OR -// cuFloatComplex -//+++++++++++++++++++++++++ + //+++++++++++++++++++++++++ + // cuDoubleComplex OR + // cuFloatComplex + //+++++++++++++++++++++++++ -inline __host__ __device__ cxtype -operator+( const cxtype a ) -{ - return a; -} + inline __host__ __device__ cxtype + operator+( const cxtype a ) + { + return a; + } -inline __host__ __device__ cxtype -operator-( const cxtype& a ) -{ - return cxmake( -cxreal( a ), -cximag( a ) ); -} + inline __host__ __device__ cxtype + operator-( const cxtype& a ) + { + return cxmake( -cxreal( a ), -cximag( a ) ); + } -inline __host__ __device__ cxtype -operator+( const fptype& a, const cxtype& b ) -{ - return cxmake( a, 0 ) + b; -} + inline __host__ __device__ cxtype + operator+( const fptype& a, const cxtype& b ) + { + return cxmake( a, 0 ) + b; + } -inline __host__ __device__ cxtype -operator-( const fptype& a, const cxtype& b ) -{ - return cxmake( a, 0 ) - b; -} + inline __host__ __device__ cxtype + operator-( const fptype& a, const cxtype& b ) + { + return cxmake( a, 0 ) - b; + } -inline __host__ __device__ cxtype -operator*( const fptype& a, const cxtype& b ) -{ - return cxmake( a, 0 ) * b; -} + inline __host__ __device__ cxtype + operator*( const fptype& a, const cxtype& b ) + { + return cxmake( a, 0 ) * b; + } -inline __host__ __device__ cxtype -operator/( const fptype& a, const cxtype& b ) -{ - return cxmake( a, 0 ) / b; -} + inline __host__ __device__ cxtype + operator/( const fptype& a, const cxtype& b ) + { + return cxmake( a, 0 ) / b; + } -inline __host__ __device__ cxtype -operator+( const cxtype& a, const fptype& b ) -{ - return a + cxmake( b, 0 ); -} + inline __host__ __device__ cxtype + operator+( const cxtype& a, const fptype& b ) + { + return a + cxmake( b, 0 ); + } -inline __host__ __device__ cxtype -operator-( const cxtype& a, const fptype& b ) -{ - return a - cxmake( b, 0 ); -} + inline __host__ __device__ cxtype + operator-( const cxtype& a, const fptype& b ) + { + return a - cxmake( b, 0 ); + } -inline __host__ __device__ cxtype -operator*( const cxtype& a, const fptype& b ) -{ - return a * cxmake( b, 0 ); -} + inline __host__ __device__ cxtype + operator*( const cxtype& a, const fptype& b ) + { + return a * cxmake( b, 0 ); + } -inline __host__ __device__ cxtype -operator/( const cxtype& a, const fptype& b ) -{ - return a / cxmake( b, 0 ); -} + inline __host__ __device__ cxtype + operator/( const cxtype& a, const fptype& b ) + { + return a / cxmake( b, 0 ); + } -inline __host__ __device__ cxtype -cxconj( const cxtype& c ) -{ - return cxmake( cxreal( c ), -cximag( c ) ); -} + inline __host__ __device__ cxtype + cxconj( const cxtype& c ) + { + return cxmake( cxreal( c ), -cximag( c ) ); + } -inline __host__ cxtype // NOT __device__ -cxmake( const std::complex& c ) // std::complex to cucomplex (float-to-float or double-to-double) -{ - return cxmake( c.real(), c.imag() ); -} + inline __host__ cxtype // NOT __device__ + cxmake( const std::complex& c ) // std::complex to cucomplex (float-to-float or double-to-double) + { + return cxmake( c.real(), c.imag() ); + } #endif // #if defined __CUDACC__ and defined MGONGPU_CUCXTYPE_CUCOMPLEX -//========================================================================== + //========================================================================== #if not defined __CUDACC__ and defined MGONGPU_CPPCXTYPE_STDCOMPLEX // c++ + stdcomplex -//------------------------------ -// C++ - using std::complex -//------------------------------ + //------------------------------ + // C++ - using std::complex + //------------------------------ -inline cxtype -cxmake( const fptype& r, const fptype& i ) -{ - return cxtype( r, i ); // std::complex constructor -} + inline cxtype + cxmake( const fptype& r, const fptype& i ) + { + return cxtype( r, i ); // std::complex constructor + } -inline fptype -cxreal( const cxtype& c ) -{ - return c.real(); // std::complex::real() -} + inline fptype + cxreal( const cxtype& c ) + { + return c.real(); // std::complex::real() + } -inline fptype -cximag( const cxtype& c ) -{ - return c.imag(); // std::complex::imag() -} + inline fptype + cximag( const cxtype& c ) + { + return c.imag(); // std::complex::imag() + } -inline cxtype -cxconj( const cxtype& c ) -{ - return conj( c ); // conj( std::complex ) -} + inline cxtype + cxconj( const cxtype& c ) + { + return conj( c ); // conj( std::complex ) + } -inline const cxtype& -cxmake( const cxtype& c ) // std::complex to std::complex (float-to-float or double-to-double) -{ - return c; -} + inline const cxtype& + cxmake( const cxtype& c ) // std::complex to std::complex (float-to-float or double-to-double) + { + return c; + } #if defined MGONGPU_FPTYPE_FLOAT -inline cxtype -cxmake( const std::complex& c ) // std::complex to std::complex (cast double-to-float) -{ - return cxmake( (fptype)c.real(), (fptype)c.imag() ); -} + inline cxtype + cxmake( const std::complex& c ) // std::complex to std::complex (cast double-to-float) + { + return cxmake( (fptype)c.real(), (fptype)c.imag() ); + } #endif #endif // #if not defined __CUDACC__ and defined MGONGPU_CPPCXTYPE_STDCOMPLEX -//========================================================================== + //========================================================================== -inline __host__ __device__ const cxtype -cxmake( const cxsmpl& c ) // cxsmpl to cxtype (float-to-float or float-to-double) -{ - return cxmake( c.real(), c.imag() ); -} + inline __host__ __device__ const cxtype + cxmake( const cxsmpl& c ) // cxsmpl to cxtype (float-to-float or float-to-double) + { + return cxmake( c.real(), c.imag() ); + } -inline __host__ __device__ const cxtype -cxmake( const cxsmpl& c ) // cxsmpl to cxtype (double-to-float or double-to-double) -{ - return cxmake( c.real(), c.imag() ); -} + inline __host__ __device__ const cxtype + cxmake( const cxsmpl& c ) // cxsmpl to cxtype (double-to-float or double-to-double) + { + return cxmake( c.real(), c.imag() ); + } + +} // end namespace mg5amcGpu/mg5amcCpu //========================================================================== // COMPLEX TYPES: WRAPPER OVER RI FLOATING POINT PAIR (cxtype_ref) //========================================================================== -namespace mgOnGpu /* clang-format off */ +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { // The cxtype_ref class (a non-const reference to two fp variables) was originally designed for cxtype_v::operator[] // It used to be included in the code only when MGONGPU_HAS_CPPCXTYPEV_BRK (originally MGONGPU_HAS_CPPCXTYPE_REF) is defined @@ -615,23 +642,30 @@ namespace mgOnGpu /* clang-format off */ cxtype_ref() = delete; cxtype_ref( const cxtype_ref& ) = delete; cxtype_ref( cxtype_ref&& ) = default; // copy refs - __host__ __device__ cxtype_ref( fptype& r, fptype& i ) : m_preal( &r ), m_pimag( &i ) {} // copy refs + __host__ __device__ cxtype_ref( fptype& r, fptype& i ) + : m_preal( &r ), m_pimag( &i ) {} // copy refs cxtype_ref& operator=( const cxtype_ref& ) = delete; //__host__ __device__ cxtype_ref& operator=( cxtype_ref&& c ) {...} // REMOVED! Should copy refs or copy values? No longer needed in cxternary - __host__ __device__ cxtype_ref& operator=( const cxtype& c ) { *m_preal = cxreal( c ); *m_pimag = cximag( c ); return *this; } // copy values + __host__ __device__ cxtype_ref& operator=( const cxtype& c ) + { + *m_preal = cxreal( c ); + *m_pimag = cximag( c ); + return *this; + } // copy values __host__ __device__ operator cxtype() const { return cxmake( *m_preal, *m_pimag ); } private: fptype *m_preal, *m_pimag; // RI }; -} /* clang-format on */ -// Printout to stream for user defined types -inline __host__ __device__ std::ostream& -operator<<( std::ostream& out, const mgOnGpu::cxtype_ref& c ) -{ - out << (cxtype)c; - return out; -} + // Printout to stream for user defined types + inline __host__ __device__ std::ostream& + operator<<( std::ostream& out, const cxtype_ref& c ) + { + out << (cxtype)c; + return out; + } + +} // end namespace mg5amcGpu/mg5amcCpu //========================================================================== diff --git a/epochX/cudacpp/gg_ttgg.sa/src/mgOnGpuFptypes.h b/epochX/cudacpp/gg_ttgg.sa/src/mgOnGpuFptypes.h index a1cde16a67..905c97d700 100644 --- a/epochX/cudacpp/gg_ttgg.sa/src/mgOnGpuFptypes.h +++ b/epochX/cudacpp/gg_ttgg.sa/src/mgOnGpuFptypes.h @@ -11,82 +11,91 @@ #include #include -//========================================================================== - -#ifdef __CUDACC__ // cuda - -//------------------------------ -// Floating point types - Cuda -//------------------------------ - -/* -inline __host__ __device__ fptype -fpmax( const fptype& a, const fptype& b ) -{ - return max( a, b ); -} - -inline __host__ __device__ fptype -fpmin( const fptype& a, const fptype& b ) -{ - return min( a, b ); -} -*/ - -inline __host__ __device__ const fptype& -fpmax( const fptype& a, const fptype& b ) +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { - return ( ( b < a ) ? a : b ); -} + //========================================================================== -inline __host__ __device__ const fptype& -fpmin( const fptype& a, const fptype& b ) -{ - return ( ( a < b ) ? a : b ); -} +#ifdef __CUDACC__ // cuda -inline __host__ __device__ fptype -fpsqrt( const fptype& f ) -{ + //------------------------------ + // Floating point types - Cuda + //------------------------------ + + /* + inline __host__ __device__ fptype + fpmax( const fptype& a, const fptype& b ) + { + return max( a, b ); + } + + inline __host__ __device__ fptype + fpmin( const fptype& a, const fptype& b ) + { + return min( a, b ); + } + */ + + inline __host__ __device__ const fptype& + fpmax( const fptype& a, const fptype& b ) + { + return ( ( b < a ) ? a : b ); + } + + inline __host__ __device__ const fptype& + fpmin( const fptype& a, const fptype& b ) + { + return ( ( a < b ) ? a : b ); + } + + inline __host__ __device__ fptype + fpsqrt( const fptype& f ) + { #if defined MGONGPU_FPTYPE_FLOAT - // See https://docs.nvidia.com/cuda/cuda-math-api/group__CUDA__MATH__SINGLE.html - return sqrtf( f ); + // See https://docs.nvidia.com/cuda/cuda-math-api/group__CUDA__MATH__SINGLE.html + return sqrtf( f ); #else - // See https://docs.nvidia.com/cuda/cuda-math-api/group__CUDA__MATH__DOUBLE.html - return sqrt( f ); + // See https://docs.nvidia.com/cuda/cuda-math-api/group__CUDA__MATH__DOUBLE.html + return sqrt( f ); #endif -} + } #endif // #ifdef __CUDACC__ -//========================================================================== + //========================================================================== #ifndef __CUDACC__ -//------------------------------ -// Floating point types - C++ -//------------------------------ + //------------------------------ + // Floating point types - C++ + //------------------------------ -inline const fptype& -fpmax( const fptype& a, const fptype& b ) -{ - return std::max( a, b ); -} + inline const fptype& + fpmax( const fptype& a, const fptype& b ) + { + return std::max( a, b ); + } -inline const fptype& -fpmin( const fptype& a, const fptype& b ) -{ - return std::min( a, b ); -} + inline const fptype& + fpmin( const fptype& a, const fptype& b ) + { + return std::min( a, b ); + } -inline fptype -fpsqrt( const fptype& f ) -{ - return std::sqrt( f ); -} + inline fptype + fpsqrt( const fptype& f ) + { + return std::sqrt( f ); + } #endif // #ifndef __CUDACC__ -//========================================================================== + //========================================================================== + +} // end namespace mg5amcGpu/mg5amcCpu #endif // MGONGPUFPTYPES_H diff --git a/epochX/cudacpp/gg_ttgg.sa/src/mgOnGpuVectors.h b/epochX/cudacpp/gg_ttgg.sa/src/mgOnGpuVectors.h index 9d3e82b1e3..0d3892d026 100644 --- a/epochX/cudacpp/gg_ttgg.sa/src/mgOnGpuVectors.h +++ b/epochX/cudacpp/gg_ttgg.sa/src/mgOnGpuVectors.h @@ -31,7 +31,12 @@ //#undef MGONGPU_HAS_CPPCXTYPEV_BRK // gcc test (very slightly slower? issue #172) #endif -namespace mgOnGpu /* clang-format off */ +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { #ifdef MGONGPU_CPPSIMD @@ -72,22 +77,40 @@ namespace mgOnGpu /* clang-format off */ public: // Array initialization: zero-out as "{0}" (C and C++) or as "{}" (C++ only) // See https://en.cppreference.com/w/c/language/array_initialization#Notes - cxtype_v() : m_real{ 0 }, m_imag{ 0 } {} // RRRR=0000 IIII=0000 + cxtype_v() + : m_real{ 0 }, m_imag{ 0 } {} // RRRR=0000 IIII=0000 cxtype_v( const cxtype_v& ) = default; cxtype_v( cxtype_v&& ) = default; - cxtype_v( const fptype_v& r, const fptype_v& i ) : m_real( r ), m_imag( i ) {} - cxtype_v( const fptype_v& r ) : m_real( r ), m_imag{ 0 } {} // IIII=0000 + cxtype_v( const fptype_v& r, const fptype_v& i ) + : m_real( r ), m_imag( i ) {} + cxtype_v( const fptype_v& r ) + : m_real( r ), m_imag{ 0 } {} // IIII=0000 + cxtype_v( const fptype& r ) + : m_real( fptype_v{} + r ), m_imag{ 0 } {} // IIII=0000 cxtype_v& operator=( const cxtype_v& ) = default; cxtype_v& operator=( cxtype_v&& ) = default; - cxtype_v& operator+=( const cxtype_v& c ) { m_real += c.real(); m_imag += c.imag(); return *this; } - cxtype_v& operator-=( const cxtype_v& c ) { m_real -= c.real(); m_imag -= c.imag(); return *this; } + cxtype_v& operator+=( const cxtype_v& c ) + { + m_real += c.real(); + m_imag += c.imag(); + return *this; + } + cxtype_v& operator-=( const cxtype_v& c ) + { + m_real -= c.real(); + m_imag -= c.imag(); + return *this; + } #ifdef MGONGPU_HAS_CPPCXTYPEV_BRK // NB: THIS IS THE FUNDAMENTAL DIFFERENCE BETWEEN MGONGPU_HAS_CPPCXTYPEV_BRK DEFINED AND NOT DEFINED // NB: the alternative "clang" implementation is simpler: it simply does not have any bracket operator[] // NB: ** do NOT implement operator[] to return a value: it does not fail the build (why?) and gives unexpected results! ** cxtype_ref operator[]( size_t i ) const { return cxtype_ref( m_real[i], m_imag[i] ); } #endif - const fptype_v& real() const { return m_real; } + const fptype_v& real() const + { + return m_real; + } const fptype_v& imag() const { return m_imag; } private: fptype_v m_real, m_imag; // RRRRIIII @@ -98,7 +121,7 @@ namespace mgOnGpu /* clang-format off */ #if defined MGONGPU_FPTYPE_DOUBLE typedef long int bool_v __attribute__( ( ext_vector_type( neppV ) ) ); // bbbb #elif defined MGONGPU_FPTYPE_FLOAT - typedef int bool_v __attribute__( ( ext_vector_type( neppV ) ) ); // bbbb + typedef int bool_v __attribute__( ( ext_vector_type( neppV ) ) ); // bbbb #endif #else // gcc #if defined MGONGPU_FPTYPE_DOUBLE @@ -113,532 +136,551 @@ namespace mgOnGpu /* clang-format off */ const int neppV = 1; #endif // #ifdef MGONGPU_CPPSIMD - -} /* clang-format on */ +} //-------------------------------------------------------------------------- -// Expose typedefs outside the namespace -using mgOnGpu::neppV; -#ifdef MGONGPU_CPPSIMD -using mgOnGpu::fptype_v; -using mgOnGpu::fptype2_v; -using mgOnGpu::cxtype_v; -using mgOnGpu::bool_v; -#endif +// DANGEROUS! this was mixing different cxtype definitions for CPU and GPU builds (see #318 and #725) +// DO NOT expose typedefs outside the namespace +//using mgOnGpu::neppV; +//#ifdef MGONGPU_CPPSIMD +//using mgOnGpu::fptype_v; +//using mgOnGpu::fptype2_v; +//using mgOnGpu::cxtype_v; +//using mgOnGpu::bool_v; +//#endif -//-------------------------------------------------------------------------- +//========================================================================== +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif +{ #ifndef __CUDACC__ -// Printout to stream for user defined types + // Printout to stream for user defined types #ifndef MGONGPU_CPPCXTYPE_CXSMPL // operator<< for cxsmpl has already been defined! -inline std::ostream& -operator<<( std::ostream& out, const cxtype& c ) -{ - out << "[" << cxreal( c ) << "," << cximag( c ) << "]"; - //out << cxreal(c) << "+i" << cximag(c); - return out; -} + inline std::ostream& + operator<<( std::ostream& out, const cxtype& c ) + { + out << "[" << cxreal( c ) << "," << cximag( c ) << "]"; + //out << cxreal(c) << "+i" << cximag(c); + return out; + } #endif -/* + /* #ifdef MGONGPU_CPPSIMD -inline std::ostream& -operator<<( std::ostream& out, const bool_v& v ) -{ - out << "{ " << v[0]; - for ( int i=1; i t t~ g g g No model currently active, so we import the Standard Model INFO: load particles INFO: load vertices -DEBUG: model prefixing takes 0.004646778106689453  +DEBUG: model prefixing takes 0.004748106002807617  INFO: Restrict model sm with file models/sm/restrict_default.dat . DEBUG: Simplifying conditional expressions  DEBUG: remove interactions: u s w+ at order: QED=1  @@ -155,7 +155,7 @@ INFO: Please specify coupling orders to bypass this step. INFO: Trying coupling order WEIGHTED<=5: WEIGTHED IS QCD+2*QED INFO: Trying process: g g > t t~ g g g WEIGHTED<=5 @1 INFO: Process has 1240 diagrams -1 processes with 1240 diagrams generated in 1.702 s +1 processes with 1240 diagrams generated in 1.697 s Total: 1 processes with 1240 diagrams output madevent CODEGEN_mad_gg_ttggg --hel_recycling=False --vector_size=16384 --me_exporter=standalone_cudacpp Load PLUGIN.CUDACPP_SA_OUTPUT @@ -176,60 +176,60 @@ INFO: Processing color information for process: g g > t t~ g g g @1 INFO: Creating files in directory P1_gg_ttxggg INFO: Computing Color-Flow optimization [15120 term] INFO: Color-Flow passed to 1592 term in 30s. Introduce 2768 contraction -DEBUG: Entering PLUGIN_OneProcessExporter.__init__ [model_handling.py at line 1028]  -DEBUG: kwargs[prefix] = 0 [model_handling.py at line 1029]  -DEBUG: proc_id =  1 [model_handling.py at line 1034]  -DEBUG: process_exporter_cpp =  [export_v4.py at line 6174]  +DEBUG: Entering PLUGIN_OneProcessExporter.__init__ [model_handling.py at line 1039]  +DEBUG: kwargs[prefix] = 0 [model_handling.py at line 1040]  +DEBUG: proc_id =  1 [model_handling.py at line 1045]  +DEBUG: process_exporter_cpp =  [export_v4.py at line 6174]  INFO: Creating files in directory . -DEBUG: Entering PLUGIN_OneProcessExporter.generate_process_files [model_handling.py at line 1286]  -DEBUG: self.include_multi_channel is already defined: this is madevent+second_exporter mode [model_handling.py at line 1288]  +DEBUG: Entering PLUGIN_OneProcessExporter.generate_process_files [model_handling.py at line 1297]  +DEBUG: self.include_multi_channel is already defined: this is madevent+second_exporter mode [model_handling.py at line 1299]  FileWriter for ././CPPProcess.h -DEBUG: Entering PLUGIN_OneProcessExporter.write_process_h_file [model_handling.py at line 1442]  +DEBUG: Entering PLUGIN_OneProcessExporter.write_process_h_file [model_handling.py at line 1453]  FileWriter for ././CPPProcess.cc -DEBUG: Entering PLUGIN_OneProcessExporter.write_process_cc_file [model_handling.py at line 1464]  -DEBUG: Entering PLUGIN_OneProcessExporter.get_sigmaKin_lines [model_handling.py at line 1132]  -DEBUG: self.include_multi_channel =  [1, 2, 0, 3, 4, 0, 5, 6, 0, 0, 0, 0, 0, 7, 8, 9, 0, 10, 11, 12, 0, 13, 14, 15, 0, 16, 17, 18, 19, 20, 21, 0, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 0, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 0, 67, 68, 69, 70, 71, 72, 73, 74, 75, 0, 76, 77, 78, 79, 80, 81, 82, 83, 84, 0, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 0, 0, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 0, 121, 122, 0, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 0, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 0, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 0, 197, 198, 199, 200, 201, 202, 0, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 0, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 0, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 0, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 0, 302, 303, 304, 305, 306, 307, 0, 308, 309, 310, 311, 312, 313, 0, 314, 315, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 316, 317, 318, 319, 320, 321, 0, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 0, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 0, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 0, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 0, 378, 379, 0, 380, 381, 0, 0, 0, 0, 0, 382, 383, 384, 385, 386, 387, 388, 389, 390, 0, 391, 392, 393, 394, 395, 396, 397, 398, 399, 0, 400, 401, 402, 403, 404, 405, 406, 407, 408, 0, 409, 410, 411, 412, 413, 414, 0, 415, 416, 417, 418, 419, 420, 0, 0, 0, 421, 422, 423, 424, 425, 426, 0, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 0, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 0, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 0, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 0, 483, 484, 0, 485, 486, 0, 0, 0, 0, 0, 487, 488, 489, 490, 491, 492, 493, 494, 495, 0, 496, 497, 498, 499, 500, 501, 502, 503, 504, 0, 505, 506, 507, 508, 509, 510, 511, 512, 513, 0, 514, 515, 516, 517, 518, 519, 0, 520, 521, 522, 523, 524, 525, 0, 0, 0, 526, 527, 528, 529, 530, 531, 0, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 0, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 0, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 0, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 0, 588, 589, 0, 590, 591, 0, 0, 0, 0, 0, 592, 593, 594, 595, 596, 597, 598, 599, 600, 0, 601, 602, 603, 604, 605, 606, 607, 608, 609, 0, 610, 611, 612, 613, 614, 615, 616, 617, 618, 0, 619, 620, 621, 622, 623, 624, 0, 625, 626, 627, 628, 629, 630, 0, 0, 0, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 0, 664, 665, 666, 667, 668, 669, 0, 670, 671, 672, 673, 674, 675, 0, 0, 0, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 0, 709, 710, 711, 712, 713, 714, 0, 715, 716, 717, 718, 719, 720, 0, 0, 0, 721, 722, 0, 723, 724, 0, 725, 726, 0, 0, 0, 0, 0, 727, 728, 729, 730, 731, 732, 733, 734, 735, 0, 736, 737, 738, 739, 740, 741, 742, 743, 744, 0, 745, 746, 747, 748, 749, 750, 751, 752, 753, 0, 754, 755, 756, 757, 758, 759, 0, 760, 761, 762, 763, 764, 765, 766, 767, 0, 768, 769, 0, 770, 771, 0, 0, 0, 0, 0, 772, 773, 774, 775, 776, 777, 778, 779, 780, 0, 781, 782, 783, 784, 785, 786, 787, 788, 789, 0, 790, 791, 792, 793, 794, 795, 796, 797, 798, 0, 799, 800, 801, 802, 803, 804, 0, 805, 806, 807, 808, 809, 810, 811, 812, 0, 813, 814, 0, 815, 816, 0, 0, 0, 0, 0, 817, 818, 819, 820, 821, 822, 823, 824, 825, 0, 826, 827, 828, 829, 830, 831, 832, 833, 834, 0, 835, 836, 837, 838, 839, 840, 841, 842, 843, 0, 844, 845, 846, 847, 848, 849, 0, 850, 851, 852, 853, 854, 855, 856, 857, 0, 858, 859, 0, 860, 861, 0, 0, 0, 0, 862, 863, 0, 864, 865, 0, 866, 867, 0, 0, 0, 0, 868, 869, 0, 870, 871, 0, 872, 873, 0, 0, 0, 0, 0, 0, 0, 874, 875, 876, 877, 878, 879, 880, 881, 882, 883, 884, 885, 886, 887, 888, 889, 890, 891, 0, 892, 893, 894, 895, 896, 897, 898, 899, 900, 901, 902, 903, 904, 905, 906, 907, 908, 909, 0, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 0, 928, 929, 930, 931, 932, 933, 0, 934, 935, 936, 937, 938, 939, 0, 940, 941, 942, 943, 944, 945, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] [model_handling.py at line 1133]  -DEBUG: self.support_multichannel =  True [model_handling.py at line 1134]  -DEBUG: type(self.helas_call_writer) =  [model_handling.py at line 1151]  -DEBUG: self.support_multichannel, self.include_multi_channel =  True [1, 2, 0, 3, 4, 0, 5, 6, 0, 0, 0, 0, 0, 7, 8, 9, 0, 10, 11, 12, 0, 13, 14, 15, 0, 16, 17, 18, 19, 20, 21, 0, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 0, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 0, 67, 68, 69, 70, 71, 72, 73, 74, 75, 0, 76, 77, 78, 79, 80, 81, 82, 83, 84, 0, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 0, 0, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 0, 121, 122, 0, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 0, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 0, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 0, 197, 198, 199, 200, 201, 202, 0, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 0, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 0, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 0, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 0, 302, 303, 304, 305, 306, 307, 0, 308, 309, 310, 311, 312, 313, 0, 314, 315, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 316, 317, 318, 319, 320, 321, 0, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 0, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 0, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 0, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 0, 378, 379, 0, 380, 381, 0, 0, 0, 0, 0, 382, 383, 384, 385, 386, 387, 388, 389, 390, 0, 391, 392, 393, 394, 395, 396, 397, 398, 399, 0, 400, 401, 402, 403, 404, 405, 406, 407, 408, 0, 409, 410, 411, 412, 413, 414, 0, 415, 416, 417, 418, 419, 420, 0, 0, 0, 421, 422, 423, 424, 425, 426, 0, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 0, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 0, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 0, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 0, 483, 484, 0, 485, 486, 0, 0, 0, 0, 0, 487, 488, 489, 490, 491, 492, 493, 494, 495, 0, 496, 497, 498, 499, 500, 501, 502, 503, 504, 0, 505, 506, 507, 508, 509, 510, 511, 512, 513, 0, 514, 515, 516, 517, 518, 519, 0, 520, 521, 522, 523, 524, 525, 0, 0, 0, 526, 527, 528, 529, 530, 531, 0, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 0, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 0, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 0, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 0, 588, 589, 0, 590, 591, 0, 0, 0, 0, 0, 592, 593, 594, 595, 596, 597, 598, 599, 600, 0, 601, 602, 603, 604, 605, 606, 607, 608, 609, 0, 610, 611, 612, 613, 614, 615, 616, 617, 618, 0, 619, 620, 621, 622, 623, 624, 0, 625, 626, 627, 628, 629, 630, 0, 0, 0, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 0, 664, 665, 666, 667, 668, 669, 0, 670, 671, 672, 673, 674, 675, 0, 0, 0, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 0, 709, 710, 711, 712, 713, 714, 0, 715, 716, 717, 718, 719, 720, 0, 0, 0, 721, 722, 0, 723, 724, 0, 725, 726, 0, 0, 0, 0, 0, 727, 728, 729, 730, 731, 732, 733, 734, 735, 0, 736, 737, 738, 739, 740, 741, 742, 743, 744, 0, 745, 746, 747, 748, 749, 750, 751, 752, 753, 0, 754, 755, 756, 757, 758, 759, 0, 760, 761, 762, 763, 764, 765, 766, 767, 0, 768, 769, 0, 770, 771, 0, 0, 0, 0, 0, 772, 773, 774, 775, 776, 777, 778, 779, 780, 0, 781, 782, 783, 784, 785, 786, 787, 788, 789, 0, 790, 791, 792, 793, 794, 795, 796, 797, 798, 0, 799, 800, 801, 802, 803, 804, 0, 805, 806, 807, 808, 809, 810, 811, 812, 0, 813, 814, 0, 815, 816, 0, 0, 0, 0, 0, 817, 818, 819, 820, 821, 822, 823, 824, 825, 0, 826, 827, 828, 829, 830, 831, 832, 833, 834, 0, 835, 836, 837, 838, 839, 840, 841, 842, 843, 0, 844, 845, 846, 847, 848, 849, 0, 850, 851, 852, 853, 854, 855, 856, 857, 0, 858, 859, 0, 860, 861, 0, 0, 0, 0, 862, 863, 0, 864, 865, 0, 866, 867, 0, 0, 0, 0, 868, 869, 0, 870, 871, 0, 872, 873, 0, 0, 0, 0, 0, 0, 0, 874, 875, 876, 877, 878, 879, 880, 881, 882, 883, 884, 885, 886, 887, 888, 889, 890, 891, 0, 892, 893, 894, 895, 896, 897, 898, 899, 900, 901, 902, 903, 904, 905, 906, 907, 908, 909, 0, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 0, 928, 929, 930, 931, 932, 933, 0, 934, 935, 936, 937, 938, 939, 0, 940, 941, 942, 943, 944, 945, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] [model_handling.py at line 1152]  -DEBUG: multi_channel =  {1: [0], 2: [1], 3: [3], 4: [4], 5: [6], 6: [7], 7: [13], 8: [14], 9: [15], 10: [17], 11: [18], 12: [19], 13: [21], 14: [22], 15: [23], 16: [25], 17: [26], 18: [27], 19: [28], 20: [29], 21: [30], 22: [32], 23: [33], 24: [34], 25: [35], 26: [36], 27: [37], 28: [38], 29: [39], 30: [40], 31: [41], 32: [42], 33: [43], 34: [44], 35: [45], 36: [46], 37: [48], 38: [49], 39: [50], 40: [51], 41: [52], 42: [53], 43: [54], 44: [55], 45: [56], 46: [57], 47: [58], 48: [59], 49: [60], 50: [61], 51: [62], 52: [64], 53: [65], 54: [66], 55: [67], 56: [68], 57: [69], 58: [70], 59: [71], 60: [72], 61: [73], 62: [74], 63: [75], 64: [76], 65: [77], 66: [78], 67: [80], 68: [81], 69: [82], 70: [83], 71: [84], 72: [85], 73: [86], 74: [87], 75: [88], 76: [90], 77: [91], 78: [92], 79: [93], 80: [94], 81: [95], 82: [96], 83: [97], 84: [98], 85: [100], 86: [101], 87: [102], 88: [103], 89: [104], 90: [105], 91: [106], 92: [107], 93: [108], 94: [109], 95: [110], 96: [111], 97: [112], 98: [113], 99: [114], 100: [115], 101: [116], 102: [117], 103: [118], 104: [119], 105: [120], 106: [123], 107: [124], 108: [125], 109: [126], 110: [127], 111: [128], 112: [129], 113: [130], 114: [131], 115: [132], 116: [133], 117: [134], 118: [135], 119: [136], 120: [137], 121: [139], 122: [140], 123: [142], 124: [143], 125: [144], 126: [145], 127: [146], 128: [147], 129: [148], 130: [149], 131: [150], 132: [151], 133: [152], 134: [153], 135: [154], 136: [155], 137: [156], 138: [158], 139: [159], 140: [160], 141: [161], 142: [162], 143: [163], 144: [164], 145: [165], 146: [166], 147: [167], 148: [168], 149: [169], 150: [170], 151: [171], 152: [172], 153: [174], 154: [175], 155: [176], 156: [177], 157: [178], 158: [179], 159: [180], 160: [181], 161: [182], 162: [183], 163: [184], 164: [185], 165: [186], 166: [187], 167: [188], 168: [189], 169: [190], 170: [191], 171: [192], 172: [193], 173: [194], 174: [195], 175: [196], 176: [197], 177: [198], 178: [199], 179: [200], 180: [201], 181: [202], 182: [203], 183: [204], 184: [205], 185: [206], 186: [207], 187: [208], 188: [209], 189: [210], 190: [211], 191: [212], 192: [213], 193: [214], 194: [215], 195: [216], 196: [217], 197: [219], 198: [220], 199: [221], 200: [222], 201: [223], 202: [224], 203: [226], 204: [227], 205: [228], 206: [229], 207: [230], 208: [231], 209: [233], 210: [234], 211: [246], 212: [247], 213: [248], 214: [249], 215: [250], 216: [251], 217: [252], 218: [253], 219: [254], 220: [255], 221: [256], 222: [257], 223: [258], 224: [259], 225: [260], 226: [262], 227: [263], 228: [265], 229: [266], 230: [267], 231: [268], 232: [269], 233: [270], 234: [271], 235: [272], 236: [273], 237: [274], 238: [275], 239: [276], 240: [277], 241: [278], 242: [279], 243: [281], 244: [282], 245: [283], 246: [284], 247: [285], 248: [286], 249: [287], 250: [288], 251: [289], 252: [290], 253: [291], 254: [292], 255: [293], 256: [294], 257: [295], 258: [297], 259: [298], 260: [299], 261: [300], 262: [301], 263: [302], 264: [303], 265: [304], 266: [305], 267: [306], 268: [307], 269: [308], 270: [309], 271: [310], 272: [311], 273: [312], 274: [313], 275: [314], 276: [315], 277: [316], 278: [317], 279: [318], 280: [319], 281: [320], 282: [321], 283: [322], 284: [323], 285: [324], 286: [325], 287: [326], 288: [327], 289: [328], 290: [329], 291: [330], 292: [331], 293: [332], 294: [333], 295: [334], 296: [335], 297: [336], 298: [337], 299: [338], 300: [339], 301: [340], 302: [342], 303: [343], 304: [344], 305: [345], 306: [346], 307: [347], 308: [349], 309: [350], 310: [351], 311: [352], 312: [353], 313: [354], 314: [356], 315: [357], 316: [369], 317: [370], 318: [371], 319: [372], 320: [373], 321: [374], 322: [376], 323: [377], 324: [378], 325: [379], 326: [380], 327: [381], 328: [382], 329: [383], 330: [384], 331: [385], 332: [386], 333: [387], 334: [388], 335: [389], 336: [390], 337: [392], 338: [393], 339: [394], 340: [395], 341: [396], 342: [397], 343: [398], 344: [399], 345: [400], 346: [401], 347: [402], 348: [403], 349: [404], 350: [405], 351: [406], 352: [408], 353: [409], 354: [410], 355: [411], 356: [412], 357: [413], 358: [414], 359: [415], 360: [416], 361: [417], 362: [418], 363: [419], 364: [420], 365: [421], 366: [422], 367: [424], 368: [425], 369: [426], 370: [427], 371: [428], 372: [429], 373: [430], 374: [431], 375: [432], 376: [433], 377: [434], 378: [436], 379: [437], 380: [439], 381: [440], 382: [446], 383: [447], 384: [448], 385: [449], 386: [450], 387: [451], 388: [452], 389: [453], 390: [454], 391: [456], 392: [457], 393: [458], 394: [459], 395: [460], 396: [461], 397: [462], 398: [463], 399: [464], 400: [466], 401: [467], 402: [468], 403: [469], 404: [470], 405: [471], 406: [472], 407: [473], 408: [474], 409: [476], 410: [477], 411: [478], 412: [479], 413: [480], 414: [481], 415: [483], 416: [484], 417: [485], 418: [486], 419: [487], 420: [488], 421: [492], 422: [493], 423: [494], 424: [495], 425: [496], 426: [497], 427: [499], 428: [500], 429: [501], 430: [502], 431: [503], 432: [504], 433: [505], 434: [506], 435: [507], 436: [508], 437: [509], 438: [510], 439: [511], 440: [512], 441: [513], 442: [515], 443: [516], 444: [517], 445: [518], 446: [519], 447: [520], 448: [521], 449: [522], 450: [523], 451: [524], 452: [525], 453: [526], 454: [527], 455: [528], 456: [529], 457: [531], 458: [532], 459: [533], 460: [534], 461: [535], 462: [536], 463: [537], 464: [538], 465: [539], 466: [540], 467: [541], 468: [542], 469: [543], 470: [544], 471: [545], 472: [547], 473: [548], 474: [549], 475: [550], 476: [551], 477: [552], 478: [553], 479: [554], 480: [555], 481: [556], 482: [557], 483: [559], 484: [560], 485: [562], 486: [563], 487: [569], 488: [570], 489: [571], 490: [572], 491: [573], 492: [574], 493: [575], 494: [576], 495: [577], 496: [579], 497: [580], 498: [581], 499: [582], 500: [583], 501: [584], 502: [585], 503: [586], 504: [587], 505: [589], 506: [590], 507: [591], 508: [592], 509: [593], 510: [594], 511: [595], 512: [596], 513: [597], 514: [599], 515: [600], 516: [601], 517: [602], 518: [603], 519: [604], 520: [606], 521: [607], 522: [608], 523: [609], 524: [610], 525: [611], 526: [615], 527: [616], 528: [617], 529: [618], 530: [619], 531: [620], 532: [622], 533: [623], 534: [624], 535: [625], 536: [626], 537: [627], 538: [628], 539: [629], 540: [630], 541: [631], 542: [632], 543: [633], 544: [634], 545: [635], 546: [636], 547: [638], 548: [639], 549: [640], 550: [641], 551: [642], 552: [643], 553: [644], 554: [645], 555: [646], 556: [647], 557: [648], 558: [649], 559: [650], 560: [651], 561: [652], 562: [654], 563: [655], 564: [656], 565: [657], 566: [658], 567: [659], 568: [660], 569: [661], 570: [662], 571: [663], 572: [664], 573: [665], 574: [666], 575: [667], 576: [668], 577: [670], 578: [671], 579: [672], 580: [673], 581: [674], 582: [675], 583: [676], 584: [677], 585: [678], 586: [679], 587: [680], 588: [682], 589: [683], 590: [685], 591: [686], 592: [692], 593: [693], 594: [694], 595: [695], 596: [696], 597: [697], 598: [698], 599: [699], 600: [700], 601: [702], 602: [703], 603: [704], 604: [705], 605: [706], 606: [707], 607: [708], 608: [709], 609: [710], 610: [712], 611: [713], 612: [714], 613: [715], 614: [716], 615: [717], 616: [718], 617: [719], 618: [720], 619: [722], 620: [723], 621: [724], 622: [725], 623: [726], 624: [727], 625: [729], 626: [730], 627: [731], 628: [732], 629: [733], 630: [734], 631: [738], 632: [739], 633: [740], 634: [741], 635: [742], 636: [743], 637: [744], 638: [745], 639: [746], 640: [747], 641: [748], 642: [749], 643: [750], 644: [751], 645: [752], 646: [753], 647: [754], 648: [755], 649: [756], 650: [757], 651: [758], 652: [759], 653: [760], 654: [761], 655: [762], 656: [763], 657: [764], 658: [765], 659: [766], 660: [767], 661: [768], 662: [769], 663: [770], 664: [772], 665: [773], 666: [774], 667: [775], 668: [776], 669: [777], 670: [779], 671: [780], 672: [781], 673: [782], 674: [783], 675: [784], 676: [788], 677: [789], 678: [790], 679: [791], 680: [792], 681: [793], 682: [794], 683: [795], 684: [796], 685: [797], 686: [798], 687: [799], 688: [800], 689: [801], 690: [802], 691: [803], 692: [804], 693: [805], 694: [806], 695: [807], 696: [808], 697: [809], 698: [810], 699: [811], 700: [812], 701: [813], 702: [814], 703: [815], 704: [816], 705: [817], 706: [818], 707: [819], 708: [820], 709: [822], 710: [823], 711: [824], 712: [825], 713: [826], 714: [827], 715: [829], 716: [830], 717: [831], 718: [832], 719: [833], 720: [834], 721: [838], 722: [839], 723: [841], 724: [842], 725: [844], 726: [845], 727: [851], 728: [852], 729: [853], 730: [854], 731: [855], 732: [856], 733: [857], 734: [858], 735: [859], 736: [861], 737: [862], 738: [863], 739: [864], 740: [865], 741: [866], 742: [867], 743: [868], 744: [869], 745: [871], 746: [872], 747: [873], 748: [874], 749: [875], 750: [876], 751: [877], 752: [878], 753: [879], 754: [881], 755: [882], 756: [883], 757: [884], 758: [885], 759: [886], 760: [888], 761: [889], 762: [890], 763: [891], 764: [892], 765: [893], 766: [894], 767: [895], 768: [897], 769: [898], 770: [900], 771: [901], 772: [907], 773: [908], 774: [909], 775: [910], 776: [911], 777: [912], 778: [913], 779: [914], 780: [915], 781: [917], 782: [918], 783: [919], 784: [920], 785: [921], 786: [922], 787: [923], 788: [924], 789: [925], 790: [927], 791: [928], 792: [929], 793: [930], 794: [931], 795: [932], 796: [933], 797: [934], 798: [935], 799: [937], 800: [938], 801: [939], 802: [940], 803: [941], 804: [942], 805: [944], 806: [945], 807: [946], 808: [947], 809: [948], 810: [949], 811: [950], 812: [951], 813: [953], 814: [954], 815: [956], 816: [957], 817: [963], 818: [964], 819: [965], 820: [966], 821: [967], 822: [968], 823: [969], 824: [970], 825: [971], 826: [973], 827: [974], 828: [975], 829: [976], 830: [977], 831: [978], 832: [979], 833: [980], 834: [981], 835: [983], 836: [984], 837: [985], 838: [986], 839: [987], 840: [988], 841: [989], 842: [990], 843: [991], 844: [993], 845: [994], 846: [995], 847: [996], 848: [997], 849: [998], 850: [1000], 851: [1001], 852: [1002], 853: [1003], 854: [1004], 855: [1005], 856: [1006], 857: [1007], 858: [1009], 859: [1010], 860: [1012], 861: [1013], 862: [1018], 863: [1019], 864: [1021], 865: [1022], 866: [1024], 867: [1025], 868: [1030], 869: [1031], 870: [1033], 871: [1034], 872: [1036], 873: [1037], 874: [1045], 875: [1046], 876: [1047], 877: [1048], 878: [1049], 879: [1050], 880: [1051], 881: [1052], 882: [1053], 883: [1054], 884: [1055], 885: [1056], 886: [1057], 887: [1058], 888: [1059], 889: [1060], 890: [1061], 891: [1062], 892: [1064], 893: [1065], 894: [1066], 895: [1067], 896: [1068], 897: [1069], 898: [1070], 899: [1071], 900: [1072], 901: [1073], 902: [1074], 903: [1075], 904: [1076], 905: [1077], 906: [1078], 907: [1079], 908: [1080], 909: [1081], 910: [1083], 911: [1084], 912: [1085], 913: [1086], 914: [1087], 915: [1088], 916: [1089], 917: [1090], 918: [1091], 919: [1092], 920: [1093], 921: [1094], 922: [1095], 923: [1096], 924: [1097], 925: [1098], 926: [1099], 927: [1100], 928: [1102], 929: [1103], 930: [1104], 931: [1105], 932: [1106], 933: [1107], 934: [1109], 935: [1110], 936: [1111], 937: [1112], 938: [1113], 939: [1114], 940: [1116], 941: [1117], 942: [1118], 943: [1119], 944: [1120], 945: [1121]} [model_handling.py at line 1158]  -DEBUG: multi_channel_map =  {1: [0], 2: [1], 3: [3], 4: [4], 5: [6], 6: [7], 7: [13], 8: [14], 9: [15], 10: [17], 11: [18], 12: [19], 13: [21], 14: [22], 15: [23], 16: [25], 17: [26], 18: [27], 19: [28], 20: [29], 21: [30], 22: [32], 23: [33], 24: [34], 25: [35], 26: [36], 27: [37], 28: [38], 29: [39], 30: [40], 31: [41], 32: [42], 33: [43], 34: [44], 35: [45], 36: [46], 37: [48], 38: [49], 39: [50], 40: [51], 41: [52], 42: [53], 43: [54], 44: [55], 45: [56], 46: [57], 47: [58], 48: [59], 49: [60], 50: [61], 51: [62], 52: [64], 53: [65], 54: [66], 55: [67], 56: [68], 57: [69], 58: [70], 59: [71], 60: [72], 61: [73], 62: [74], 63: [75], 64: [76], 65: [77], 66: [78], 67: [80], 68: [81], 69: [82], 70: [83], 71: [84], 72: [85], 73: [86], 74: [87], 75: [88], 76: [90], 77: [91], 78: [92], 79: [93], 80: [94], 81: [95], 82: [96], 83: [97], 84: [98], 85: [100], 86: [101], 87: [102], 88: [103], 89: [104], 90: [105], 91: [106], 92: [107], 93: [108], 94: [109], 95: [110], 96: [111], 97: [112], 98: [113], 99: [114], 100: [115], 101: [116], 102: [117], 103: [118], 104: [119], 105: [120], 106: [123], 107: [124], 108: [125], 109: [126], 110: [127], 111: [128], 112: [129], 113: [130], 114: [131], 115: [132], 116: [133], 117: [134], 118: [135], 119: [136], 120: [137], 121: [139], 122: [140], 123: [142], 124: [143], 125: [144], 126: [145], 127: [146], 128: [147], 129: [148], 130: [149], 131: [150], 132: [151], 133: [152], 134: [153], 135: [154], 136: [155], 137: [156], 138: [158], 139: [159], 140: [160], 141: [161], 142: [162], 143: [163], 144: [164], 145: [165], 146: [166], 147: [167], 148: [168], 149: [169], 150: [170], 151: [171], 152: [172], 153: [174], 154: [175], 155: [176], 156: [177], 157: [178], 158: [179], 159: [180], 160: [181], 161: [182], 162: [183], 163: [184], 164: [185], 165: [186], 166: [187], 167: [188], 168: [189], 169: [190], 170: [191], 171: [192], 172: [193], 173: [194], 174: [195], 175: [196], 176: [197], 177: [198], 178: [199], 179: [200], 180: [201], 181: [202], 182: [203], 183: [204], 184: [205], 185: [206], 186: [207], 187: [208], 188: [209], 189: [210], 190: [211], 191: [212], 192: [213], 193: [214], 194: [215], 195: [216], 196: [217], 197: [219], 198: [220], 199: [221], 200: [222], 201: [223], 202: [224], 203: [226], 204: [227], 205: [228], 206: [229], 207: [230], 208: [231], 209: [233], 210: [234], 211: [246], 212: [247], 213: [248], 214: [249], 215: [250], 216: [251], 217: [252], 218: [253], 219: [254], 220: [255], 221: [256], 222: [257], 223: [258], 224: [259], 225: [260], 226: [262], 227: [263], 228: [265], 229: [266], 230: [267], 231: [268], 232: [269], 233: [270], 234: [271], 235: [272], 236: [273], 237: [274], 238: [275], 239: [276], 240: [277], 241: [278], 242: [279], 243: [281], 244: [282], 245: [283], 246: [284], 247: [285], 248: [286], 249: [287], 250: [288], 251: [289], 252: [290], 253: [291], 254: [292], 255: [293], 256: [294], 257: [295], 258: [297], 259: [298], 260: [299], 261: [300], 262: [301], 263: [302], 264: [303], 265: [304], 266: [305], 267: [306], 268: [307], 269: [308], 270: [309], 271: [310], 272: [311], 273: [312], 274: [313], 275: [314], 276: [315], 277: [316], 278: [317], 279: [318], 280: [319], 281: [320], 282: [321], 283: [322], 284: [323], 285: [324], 286: [325], 287: [326], 288: [327], 289: [328], 290: [329], 291: [330], 292: [331], 293: [332], 294: [333], 295: [334], 296: [335], 297: [336], 298: [337], 299: [338], 300: [339], 301: [340], 302: [342], 303: [343], 304: [344], 305: [345], 306: [346], 307: [347], 308: [349], 309: [350], 310: [351], 311: [352], 312: [353], 313: [354], 314: [356], 315: [357], 316: [369], 317: [370], 318: [371], 319: [372], 320: [373], 321: [374], 322: [376], 323: [377], 324: [378], 325: [379], 326: [380], 327: [381], 328: [382], 329: [383], 330: [384], 331: [385], 332: [386], 333: [387], 334: [388], 335: [389], 336: [390], 337: [392], 338: [393], 339: [394], 340: [395], 341: [396], 342: [397], 343: [398], 344: [399], 345: [400], 346: [401], 347: [402], 348: [403], 349: [404], 350: [405], 351: [406], 352: [408], 353: [409], 354: [410], 355: [411], 356: [412], 357: [413], 358: [414], 359: [415], 360: [416], 361: [417], 362: [418], 363: [419], 364: [420], 365: [421], 366: [422], 367: [424], 368: [425], 369: [426], 370: [427], 371: [428], 372: [429], 373: [430], 374: [431], 375: [432], 376: [433], 377: [434], 378: [436], 379: [437], 380: [439], 381: [440], 382: [446], 383: [447], 384: [448], 385: [449], 386: [450], 387: [451], 388: [452], 389: [453], 390: [454], 391: [456], 392: [457], 393: [458], 394: [459], 395: [460], 396: [461], 397: [462], 398: [463], 399: [464], 400: [466], 401: [467], 402: [468], 403: [469], 404: [470], 405: [471], 406: [472], 407: [473], 408: [474], 409: [476], 410: [477], 411: [478], 412: [479], 413: [480], 414: [481], 415: [483], 416: [484], 417: [485], 418: [486], 419: [487], 420: [488], 421: [492], 422: [493], 423: [494], 424: [495], 425: [496], 426: [497], 427: [499], 428: [500], 429: [501], 430: [502], 431: [503], 432: [504], 433: [505], 434: [506], 435: [507], 436: [508], 437: [509], 438: [510], 439: [511], 440: [512], 441: [513], 442: [515], 443: [516], 444: [517], 445: [518], 446: [519], 447: [520], 448: [521], 449: [522], 450: [523], 451: [524], 452: [525], 453: [526], 454: [527], 455: [528], 456: [529], 457: [531], 458: [532], 459: [533], 460: [534], 461: [535], 462: [536], 463: [537], 464: [538], 465: [539], 466: [540], 467: [541], 468: [542], 469: [543], 470: [544], 471: [545], 472: [547], 473: [548], 474: [549], 475: [550], 476: [551], 477: [552], 478: [553], 479: [554], 480: [555], 481: [556], 482: [557], 483: [559], 484: [560], 485: [562], 486: [563], 487: [569], 488: [570], 489: [571], 490: [572], 491: [573], 492: [574], 493: [575], 494: [576], 495: [577], 496: [579], 497: [580], 498: [581], 499: [582], 500: [583], 501: [584], 502: [585], 503: [586], 504: [587], 505: [589], 506: [590], 507: [591], 508: [592], 509: [593], 510: [594], 511: [595], 512: [596], 513: [597], 514: [599], 515: [600], 516: [601], 517: [602], 518: [603], 519: [604], 520: [606], 521: [607], 522: [608], 523: [609], 524: [610], 525: [611], 526: [615], 527: [616], 528: [617], 529: [618], 530: [619], 531: [620], 532: [622], 533: [623], 534: [624], 535: [625], 536: [626], 537: [627], 538: [628], 539: [629], 540: [630], 541: [631], 542: [632], 543: [633], 544: [634], 545: [635], 546: [636], 547: [638], 548: [639], 549: [640], 550: [641], 551: [642], 552: [643], 553: [644], 554: [645], 555: [646], 556: [647], 557: [648], 558: [649], 559: [650], 560: [651], 561: [652], 562: [654], 563: [655], 564: [656], 565: [657], 566: [658], 567: [659], 568: [660], 569: [661], 570: [662], 571: [663], 572: [664], 573: [665], 574: [666], 575: [667], 576: [668], 577: [670], 578: [671], 579: [672], 580: [673], 581: [674], 582: [675], 583: [676], 584: [677], 585: [678], 586: [679], 587: [680], 588: [682], 589: [683], 590: [685], 591: [686], 592: [692], 593: [693], 594: [694], 595: [695], 596: [696], 597: [697], 598: [698], 599: [699], 600: [700], 601: [702], 602: [703], 603: [704], 604: [705], 605: [706], 606: [707], 607: [708], 608: [709], 609: [710], 610: [712], 611: [713], 612: [714], 613: [715], 614: [716], 615: [717], 616: [718], 617: [719], 618: [720], 619: [722], 620: [723], 621: [724], 622: [725], 623: [726], 624: [727], 625: [729], 626: [730], 627: [731], 628: [732], 629: [733], 630: [734], 631: [738], 632: [739], 633: [740], 634: [741], 635: [742], 636: [743], 637: [744], 638: [745], 639: [746], 640: [747], 641: [748], 642: [749], 643: [750], 644: [751], 645: [752], 646: [753], 647: [754], 648: [755], 649: [756], 650: [757], 651: [758], 652: [759], 653: [760], 654: [761], 655: [762], 656: [763], 657: [764], 658: [765], 659: [766], 660: [767], 661: [768], 662: [769], 663: [770], 664: [772], 665: [773], 666: [774], 667: [775], 668: [776], 669: [777], 670: [779], 671: [780], 672: [781], 673: [782], 674: [783], 675: [784], 676: [788], 677: [789], 678: [790], 679: [791], 680: [792], 681: [793], 682: [794], 683: [795], 684: [796], 685: [797], 686: [798], 687: [799], 688: [800], 689: [801], 690: [802], 691: [803], 692: [804], 693: [805], 694: [806], 695: [807], 696: [808], 697: [809], 698: [810], 699: [811], 700: [812], 701: [813], 702: [814], 703: [815], 704: [816], 705: [817], 706: [818], 707: [819], 708: [820], 709: [822], 710: [823], 711: [824], 712: [825], 713: [826], 714: [827], 715: [829], 716: [830], 717: [831], 718: [832], 719: [833], 720: [834], 721: [838], 722: [839], 723: [841], 724: [842], 725: [844], 726: [845], 727: [851], 728: [852], 729: [853], 730: [854], 731: [855], 732: [856], 733: [857], 734: [858], 735: [859], 736: [861], 737: [862], 738: [863], 739: [864], 740: [865], 741: [866], 742: [867], 743: [868], 744: [869], 745: [871], 746: [872], 747: [873], 748: [874], 749: [875], 750: [876], 751: [877], 752: [878], 753: [879], 754: [881], 755: [882], 756: [883], 757: [884], 758: [885], 759: [886], 760: [888], 761: [889], 762: [890], 763: [891], 764: [892], 765: [893], 766: [894], 767: [895], 768: [897], 769: [898], 770: [900], 771: [901], 772: [907], 773: [908], 774: [909], 775: [910], 776: [911], 777: [912], 778: [913], 779: [914], 780: [915], 781: [917], 782: [918], 783: [919], 784: [920], 785: [921], 786: [922], 787: [923], 788: [924], 789: [925], 790: [927], 791: [928], 792: [929], 793: [930], 794: [931], 795: [932], 796: [933], 797: [934], 798: [935], 799: [937], 800: [938], 801: [939], 802: [940], 803: [941], 804: [942], 805: [944], 806: [945], 807: [946], 808: [947], 809: [948], 810: [949], 811: [950], 812: [951], 813: [953], 814: [954], 815: [956], 816: [957], 817: [963], 818: [964], 819: [965], 820: [966], 821: [967], 822: [968], 823: [969], 824: [970], 825: [971], 826: [973], 827: [974], 828: [975], 829: [976], 830: [977], 831: [978], 832: [979], 833: [980], 834: [981], 835: [983], 836: [984], 837: [985], 838: [986], 839: [987], 840: [988], 841: [989], 842: [990], 843: [991], 844: [993], 845: [994], 846: [995], 847: [996], 848: [997], 849: [998], 850: [1000], 851: [1001], 852: [1002], 853: [1003], 854: [1004], 855: [1005], 856: [1006], 857: [1007], 858: [1009], 859: [1010], 860: [1012], 861: [1013], 862: [1018], 863: [1019], 864: [1021], 865: [1022], 866: [1024], 867: [1025], 868: [1030], 869: [1031], 870: [1033], 871: [1034], 872: [1036], 873: [1037], 874: [1045], 875: [1046], 876: [1047], 877: [1048], 878: [1049], 879: [1050], 880: [1051], 881: [1052], 882: [1053], 883: [1054], 884: [1055], 885: [1056], 886: [1057], 887: [1058], 888: [1059], 889: [1060], 890: [1061], 891: [1062], 892: [1064], 893: [1065], 894: [1066], 895: [1067], 896: [1068], 897: [1069], 898: [1070], 899: [1071], 900: [1072], 901: [1073], 902: [1074], 903: [1075], 904: [1076], 905: [1077], 906: [1078], 907: [1079], 908: [1080], 909: [1081], 910: [1083], 911: [1084], 912: [1085], 913: [1086], 914: [1087], 915: [1088], 916: [1089], 917: [1090], 918: [1091], 919: [1092], 920: [1093], 921: [1094], 922: [1095], 923: [1096], 924: [1097], 925: [1098], 926: [1099], 927: [1100], 928: [1102], 929: [1103], 930: [1104], 931: [1105], 932: [1106], 933: [1107], 934: [1109], 935: [1110], 936: [1111], 937: [1112], 938: [1113], 939: [1114], 940: [1116], 941: [1117], 942: [1118], 943: [1119], 944: [1120], 945: [1121]} [model_handling.py at line 1643]  -DEBUG: diag_to_config =  {1: 1, 2: 2, 6: 3, 7: 4, 11: 5, 12: 6, 28: 7, 29: 8, 30: 9, 34: 10, 35: 11, 36: 12, 40: 13, 41: 14, 42: 15, 46: 16, 47: 17, 48: 18, 49: 19, 50: 20, 51: 21, 55: 22, 56: 23, 57: 24, 58: 25, 59: 26, 60: 27, 61: 28, 62: 29, 63: 30, 64: 31, 65: 32, 66: 33, 67: 34, 68: 35, 69: 36, 73: 37, 74: 38, 75: 39, 76: 40, 77: 41, 78: 42, 79: 43, 80: 44, 81: 45, 82: 46, 83: 47, 84: 48, 85: 49, 86: 50, 87: 51, 91: 52, 92: 53, 93: 54, 94: 55, 95: 56, 96: 57, 97: 58, 98: 59, 99: 60, 100: 61, 101: 62, 102: 63, 103: 64, 104: 65, 105: 66, 109: 67, 110: 68, 111: 69, 112: 70, 113: 71, 114: 72, 115: 73, 116: 74, 117: 75, 121: 76, 122: 77, 123: 78, 124: 79, 125: 80, 126: 81, 127: 82, 128: 83, 129: 84, 133: 85, 134: 86, 135: 87, 136: 88, 137: 89, 138: 90, 139: 91, 140: 92, 141: 93, 142: 94, 143: 95, 144: 96, 145: 97, 146: 98, 147: 99, 148: 100, 149: 101, 150: 102, 151: 103, 152: 104, 153: 105, 160: 106, 161: 107, 162: 108, 163: 109, 164: 110, 165: 111, 166: 112, 167: 113, 168: 114, 169: 115, 170: 116, 171: 117, 172: 118, 173: 119, 174: 120, 178: 121, 179: 122, 183: 123, 184: 124, 185: 125, 186: 126, 187: 127, 188: 128, 189: 129, 190: 130, 191: 131, 192: 132, 193: 133, 194: 134, 195: 135, 196: 136, 197: 137, 201: 138, 202: 139, 203: 140, 204: 141, 205: 142, 206: 143, 207: 144, 208: 145, 209: 146, 210: 147, 211: 148, 212: 149, 213: 150, 214: 151, 215: 152, 219: 153, 220: 154, 221: 155, 222: 156, 223: 157, 224: 158, 225: 159, 226: 160, 227: 161, 228: 162, 229: 163, 230: 164, 231: 165, 232: 166, 233: 167, 234: 168, 235: 169, 236: 170, 237: 171, 238: 172, 239: 173, 240: 174, 241: 175, 242: 176, 243: 177, 244: 178, 245: 179, 246: 180, 247: 181, 248: 182, 249: 183, 250: 184, 251: 185, 252: 186, 253: 187, 254: 188, 255: 189, 256: 190, 257: 191, 258: 192, 259: 193, 260: 194, 261: 195, 262: 196, 266: 197, 267: 198, 268: 199, 269: 200, 270: 201, 271: 202, 275: 203, 276: 204, 277: 205, 278: 206, 279: 207, 280: 208, 284: 209, 285: 210, 319: 211, 320: 212, 321: 213, 322: 214, 323: 215, 324: 216, 325: 217, 326: 218, 327: 219, 328: 220, 329: 221, 330: 222, 331: 223, 332: 224, 333: 225, 337: 226, 338: 227, 342: 228, 343: 229, 344: 230, 345: 231, 346: 232, 347: 233, 348: 234, 349: 235, 350: 236, 351: 237, 352: 238, 353: 239, 354: 240, 355: 241, 356: 242, 360: 243, 361: 244, 362: 245, 363: 246, 364: 247, 365: 248, 366: 249, 367: 250, 368: 251, 369: 252, 370: 253, 371: 254, 372: 255, 373: 256, 374: 257, 378: 258, 379: 259, 380: 260, 381: 261, 382: 262, 383: 263, 384: 264, 385: 265, 386: 266, 387: 267, 388: 268, 389: 269, 390: 270, 391: 271, 392: 272, 393: 273, 394: 274, 395: 275, 396: 276, 397: 277, 398: 278, 399: 279, 400: 280, 401: 281, 402: 282, 403: 283, 404: 284, 405: 285, 406: 286, 407: 287, 408: 288, 409: 289, 410: 290, 411: 291, 412: 292, 413: 293, 414: 294, 415: 295, 416: 296, 417: 297, 418: 298, 419: 299, 420: 300, 421: 301, 425: 302, 426: 303, 427: 304, 428: 305, 429: 306, 430: 307, 434: 308, 435: 309, 436: 310, 437: 311, 438: 312, 439: 313, 443: 314, 444: 315, 478: 316, 479: 317, 480: 318, 481: 319, 482: 320, 483: 321, 487: 322, 488: 323, 489: 324, 490: 325, 491: 326, 492: 327, 493: 328, 494: 329, 495: 330, 496: 331, 497: 332, 498: 333, 499: 334, 500: 335, 501: 336, 505: 337, 506: 338, 507: 339, 508: 340, 509: 341, 510: 342, 511: 343, 512: 344, 513: 345, 514: 346, 515: 347, 516: 348, 517: 349, 518: 350, 519: 351, 523: 352, 524: 353, 525: 354, 526: 355, 527: 356, 528: 357, 529: 358, 530: 359, 531: 360, 532: 361, 533: 362, 534: 363, 535: 364, 536: 365, 537: 366, 541: 367, 542: 368, 543: 369, 544: 370, 545: 371, 546: 372, 547: 373, 548: 374, 549: 375, 550: 376, 551: 377, 555: 378, 556: 379, 560: 380, 561: 381, 577: 382, 578: 383, 579: 384, 580: 385, 581: 386, 582: 387, 583: 388, 584: 389, 585: 390, 589: 391, 590: 392, 591: 393, 592: 394, 593: 395, 594: 396, 595: 397, 596: 398, 597: 399, 601: 400, 602: 401, 603: 402, 604: 403, 605: 404, 606: 405, 607: 406, 608: 407, 609: 408, 613: 409, 614: 410, 615: 411, 616: 412, 617: 413, 618: 414, 622: 415, 623: 416, 624: 417, 625: 418, 626: 419, 627: 420, 637: 421, 638: 422, 639: 423, 640: 424, 641: 425, 642: 426, 646: 427, 647: 428, 648: 429, 649: 430, 650: 431, 651: 432, 652: 433, 653: 434, 654: 435, 655: 436, 656: 437, 657: 438, 658: 439, 659: 440, 660: 441, 664: 442, 665: 443, 666: 444, 667: 445, 668: 446, 669: 447, 670: 448, 671: 449, 672: 450, 673: 451, 674: 452, 675: 453, 676: 454, 677: 455, 678: 456, 682: 457, 683: 458, 684: 459, 685: 460, 686: 461, 687: 462, 688: 463, 689: 464, 690: 465, 691: 466, 692: 467, 693: 468, 694: 469, 695: 470, 696: 471, 700: 472, 701: 473, 702: 474, 703: 475, 704: 476, 705: 477, 706: 478, 707: 479, 708: 480, 709: 481, 710: 482, 714: 483, 715: 484, 719: 485, 720: 486, 736: 487, 737: 488, 738: 489, 739: 490, 740: 491, 741: 492, 742: 493, 743: 494, 744: 495, 748: 496, 749: 497, 750: 498, 751: 499, 752: 500, 753: 501, 754: 502, 755: 503, 756: 504, 760: 505, 761: 506, 762: 507, 763: 508, 764: 509, 765: 510, 766: 511, 767: 512, 768: 513, 772: 514, 773: 515, 774: 516, 775: 517, 776: 518, 777: 519, 781: 520, 782: 521, 783: 522, 784: 523, 785: 524, 786: 525, 796: 526, 797: 527, 798: 528, 799: 529, 800: 530, 801: 531, 805: 532, 806: 533, 807: 534, 808: 535, 809: 536, 810: 537, 811: 538, 812: 539, 813: 540, 814: 541, 815: 542, 816: 543, 817: 544, 818: 545, 819: 546, 823: 547, 824: 548, 825: 549, 826: 550, 827: 551, 828: 552, 829: 553, 830: 554, 831: 555, 832: 556, 833: 557, 834: 558, 835: 559, 836: 560, 837: 561, 841: 562, 842: 563, 843: 564, 844: 565, 845: 566, 846: 567, 847: 568, 848: 569, 849: 570, 850: 571, 851: 572, 852: 573, 853: 574, 854: 575, 855: 576, 859: 577, 860: 578, 861: 579, 862: 580, 863: 581, 864: 582, 865: 583, 866: 584, 867: 585, 868: 586, 869: 587, 873: 588, 874: 589, 878: 590, 879: 591, 895: 592, 896: 593, 897: 594, 898: 595, 899: 596, 900: 597, 901: 598, 902: 599, 903: 600, 907: 601, 908: 602, 909: 603, 910: 604, 911: 605, 912: 606, 913: 607, 914: 608, 915: 609, 919: 610, 920: 611, 921: 612, 922: 613, 923: 614, 924: 615, 925: 616, 926: 617, 927: 618, 931: 619, 932: 620, 933: 621, 934: 622, 935: 623, 936: 624, 940: 625, 941: 626, 942: 627, 943: 628, 944: 629, 945: 630, 955: 631, 956: 632, 957: 633, 958: 634, 959: 635, 960: 636, 961: 637, 962: 638, 963: 639, 964: 640, 965: 641, 966: 642, 967: 643, 968: 644, 969: 645, 970: 646, 971: 647, 972: 648, 973: 649, 974: 650, 975: 651, 976: 652, 977: 653, 978: 654, 979: 655, 980: 656, 981: 657, 982: 658, 983: 659, 984: 660, 985: 661, 986: 662, 987: 663, 991: 664, 992: 665, 993: 666, 994: 667, 995: 668, 996: 669, 1000: 670, 1001: 671, 1002: 672, 1003: 673, 1004: 674, 1005: 675, 1015: 676, 1016: 677, 1017: 678, 1018: 679, 1019: 680, 1020: 681, 1021: 682, 1022: 683, 1023: 684, 1024: 685, 1025: 686, 1026: 687, 1027: 688, 1028: 689, 1029: 690, 1030: 691, 1031: 692, 1032: 693, 1033: 694, 1034: 695, 1035: 696, 1036: 697, 1037: 698, 1038: 699, 1039: 700, 1040: 701, 1041: 702, 1042: 703, 1043: 704, 1044: 705, 1045: 706, 1046: 707, 1047: 708, 1051: 709, 1052: 710, 1053: 711, 1054: 712, 1055: 713, 1056: 714, 1060: 715, 1061: 716, 1062: 717, 1063: 718, 1064: 719, 1065: 720, 1075: 721, 1076: 722, 1080: 723, 1081: 724, 1085: 725, 1086: 726, 1102: 727, 1103: 728, 1104: 729, 1105: 730, 1106: 731, 1107: 732, 1108: 733, 1109: 734, 1110: 735, 1114: 736, 1115: 737, 1116: 738, 1117: 739, 1118: 740, 1119: 741, 1120: 742, 1121: 743, 1122: 744, 1126: 745, 1127: 746, 1128: 747, 1129: 748, 1130: 749, 1131: 750, 1132: 751, 1133: 752, 1134: 753, 1138: 754, 1139: 755, 1140: 756, 1141: 757, 1142: 758, 1143: 759, 1147: 760, 1148: 761, 1149: 762, 1150: 763, 1151: 764, 1152: 765, 1153: 766, 1154: 767, 1158: 768, 1159: 769, 1163: 770, 1164: 771, 1180: 772, 1181: 773, 1182: 774, 1183: 775, 1184: 776, 1185: 777, 1186: 778, 1187: 779, 1188: 780, 1192: 781, 1193: 782, 1194: 783, 1195: 784, 1196: 785, 1197: 786, 1198: 787, 1199: 788, 1200: 789, 1204: 790, 1205: 791, 1206: 792, 1207: 793, 1208: 794, 1209: 795, 1210: 796, 1211: 797, 1212: 798, 1216: 799, 1217: 800, 1218: 801, 1219: 802, 1220: 803, 1221: 804, 1225: 805, 1226: 806, 1227: 807, 1228: 808, 1229: 809, 1230: 810, 1231: 811, 1232: 812, 1236: 813, 1237: 814, 1241: 815, 1242: 816, 1258: 817, 1259: 818, 1260: 819, 1261: 820, 1262: 821, 1263: 822, 1264: 823, 1265: 824, 1266: 825, 1270: 826, 1271: 827, 1272: 828, 1273: 829, 1274: 830, 1275: 831, 1276: 832, 1277: 833, 1278: 834, 1282: 835, 1283: 836, 1284: 837, 1285: 838, 1286: 839, 1287: 840, 1288: 841, 1289: 842, 1290: 843, 1294: 844, 1295: 845, 1296: 846, 1297: 847, 1298: 848, 1299: 849, 1303: 850, 1304: 851, 1305: 852, 1306: 853, 1307: 854, 1308: 855, 1309: 856, 1310: 857, 1314: 858, 1315: 859, 1319: 860, 1320: 861, 1333: 862, 1334: 863, 1338: 864, 1339: 865, 1343: 866, 1344: 867, 1357: 868, 1358: 869, 1362: 870, 1363: 871, 1367: 872, 1368: 873, 1396: 874, 1397: 875, 1398: 876, 1399: 877, 1400: 878, 1401: 879, 1402: 880, 1403: 881, 1404: 882, 1405: 883, 1406: 884, 1407: 885, 1408: 886, 1409: 887, 1410: 888, 1411: 889, 1412: 890, 1413: 891, 1417: 892, 1418: 893, 1419: 894, 1420: 895, 1421: 896, 1422: 897, 1423: 898, 1424: 899, 1425: 900, 1426: 901, 1427: 902, 1428: 903, 1429: 904, 1430: 905, 1431: 906, 1432: 907, 1433: 908, 1434: 909, 1438: 910, 1439: 911, 1440: 912, 1441: 913, 1442: 914, 1443: 915, 1444: 916, 1445: 917, 1446: 918, 1447: 919, 1448: 920, 1449: 921, 1450: 922, 1451: 923, 1452: 924, 1453: 925, 1454: 926, 1455: 927, 1459: 928, 1460: 929, 1461: 930, 1462: 931, 1463: 932, 1464: 933, 1468: 934, 1469: 935, 1470: 936, 1471: 937, 1472: 938, 1473: 939, 1477: 940, 1478: 941, 1479: 942, 1480: 943, 1481: 944, 1482: 945} [model_handling.py at line 1698]  -DEBUG: call =  vxxxxx( momenta,m_pars->%s, cHel[ihel][%d],%+d, w_sv[%d], %d ); [model_handling.py at line 1810]  -DEBUG: ('ZERO', 0, -1, 0, 0) [model_handling.py at line 1811]  -DEBUG: call =  vxxxxx( momenta,m_pars->%s, cHel[ihel][%d],%+d, w_sv[%d], %d ); [model_handling.py at line 1810]  -DEBUG: ('ZERO', 1, -1, 1, 1) [model_handling.py at line 1811]  -DEBUG: call =  vxxxxx( momenta,m_pars->%s, cHel[ihel][%d],%+d, w_sv[%d], %d ); [model_handling.py at line 1810]  -DEBUG: ('ZERO', 4, 1, 4, 4) [model_handling.py at line 1811]  -DEBUG: call =  vxxxxx( momenta,m_pars->%s, cHel[ihel][%d],%+d, w_sv[%d], %d ); [model_handling.py at line 1810]  -DEBUG: ('ZERO', 5, 1, 5, 5) [model_handling.py at line 1811]  -DEBUG: call =  vxxxxx( momenta,m_pars->%s, cHel[ihel][%d],%+d, w_sv[%d], %d ); [model_handling.py at line 1810]  -DEBUG: ('ZERO', 6, 1, 6, 6) [model_handling.py at line 1811]  +DEBUG: Entering PLUGIN_OneProcessExporter.write_process_cc_file [model_handling.py at line 1475]  +DEBUG: Entering PLUGIN_OneProcessExporter.get_sigmaKin_lines [model_handling.py at line 1143]  +DEBUG: self.include_multi_channel =  [1, 2, 0, 3, 4, 0, 5, 6, 0, 0, 0, 0, 0, 7, 8, 9, 0, 10, 11, 12, 0, 13, 14, 15, 0, 16, 17, 18, 19, 20, 21, 0, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 0, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 0, 67, 68, 69, 70, 71, 72, 73, 74, 75, 0, 76, 77, 78, 79, 80, 81, 82, 83, 84, 0, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 0, 0, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 0, 121, 122, 0, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 0, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 0, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 0, 197, 198, 199, 200, 201, 202, 0, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 0, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 0, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 0, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 0, 302, 303, 304, 305, 306, 307, 0, 308, 309, 310, 311, 312, 313, 0, 314, 315, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 316, 317, 318, 319, 320, 321, 0, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 0, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 0, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 0, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 0, 378, 379, 0, 380, 381, 0, 0, 0, 0, 0, 382, 383, 384, 385, 386, 387, 388, 389, 390, 0, 391, 392, 393, 394, 395, 396, 397, 398, 399, 0, 400, 401, 402, 403, 404, 405, 406, 407, 408, 0, 409, 410, 411, 412, 413, 414, 0, 415, 416, 417, 418, 419, 420, 0, 0, 0, 421, 422, 423, 424, 425, 426, 0, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 0, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 0, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 0, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 0, 483, 484, 0, 485, 486, 0, 0, 0, 0, 0, 487, 488, 489, 490, 491, 492, 493, 494, 495, 0, 496, 497, 498, 499, 500, 501, 502, 503, 504, 0, 505, 506, 507, 508, 509, 510, 511, 512, 513, 0, 514, 515, 516, 517, 518, 519, 0, 520, 521, 522, 523, 524, 525, 0, 0, 0, 526, 527, 528, 529, 530, 531, 0, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 0, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 0, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 0, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 0, 588, 589, 0, 590, 591, 0, 0, 0, 0, 0, 592, 593, 594, 595, 596, 597, 598, 599, 600, 0, 601, 602, 603, 604, 605, 606, 607, 608, 609, 0, 610, 611, 612, 613, 614, 615, 616, 617, 618, 0, 619, 620, 621, 622, 623, 624, 0, 625, 626, 627, 628, 629, 630, 0, 0, 0, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 0, 664, 665, 666, 667, 668, 669, 0, 670, 671, 672, 673, 674, 675, 0, 0, 0, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 0, 709, 710, 711, 712, 713, 714, 0, 715, 716, 717, 718, 719, 720, 0, 0, 0, 721, 722, 0, 723, 724, 0, 725, 726, 0, 0, 0, 0, 0, 727, 728, 729, 730, 731, 732, 733, 734, 735, 0, 736, 737, 738, 739, 740, 741, 742, 743, 744, 0, 745, 746, 747, 748, 749, 750, 751, 752, 753, 0, 754, 755, 756, 757, 758, 759, 0, 760, 761, 762, 763, 764, 765, 766, 767, 0, 768, 769, 0, 770, 771, 0, 0, 0, 0, 0, 772, 773, 774, 775, 776, 777, 778, 779, 780, 0, 781, 782, 783, 784, 785, 786, 787, 788, 789, 0, 790, 791, 792, 793, 794, 795, 796, 797, 798, 0, 799, 800, 801, 802, 803, 804, 0, 805, 806, 807, 808, 809, 810, 811, 812, 0, 813, 814, 0, 815, 816, 0, 0, 0, 0, 0, 817, 818, 819, 820, 821, 822, 823, 824, 825, 0, 826, 827, 828, 829, 830, 831, 832, 833, 834, 0, 835, 836, 837, 838, 839, 840, 841, 842, 843, 0, 844, 845, 846, 847, 848, 849, 0, 850, 851, 852, 853, 854, 855, 856, 857, 0, 858, 859, 0, 860, 861, 0, 0, 0, 0, 862, 863, 0, 864, 865, 0, 866, 867, 0, 0, 0, 0, 868, 869, 0, 870, 871, 0, 872, 873, 0, 0, 0, 0, 0, 0, 0, 874, 875, 876, 877, 878, 879, 880, 881, 882, 883, 884, 885, 886, 887, 888, 889, 890, 891, 0, 892, 893, 894, 895, 896, 897, 898, 899, 900, 901, 902, 903, 904, 905, 906, 907, 908, 909, 0, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 0, 928, 929, 930, 931, 932, 933, 0, 934, 935, 936, 937, 938, 939, 0, 940, 941, 942, 943, 944, 945, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] [model_handling.py at line 1144]  +DEBUG: self.support_multichannel =  True [model_handling.py at line 1145]  +DEBUG: type(self.helas_call_writer) =  [model_handling.py at line 1162]  +DEBUG: self.support_multichannel, self.include_multi_channel =  True [1, 2, 0, 3, 4, 0, 5, 6, 0, 0, 0, 0, 0, 7, 8, 9, 0, 10, 11, 12, 0, 13, 14, 15, 0, 16, 17, 18, 19, 20, 21, 0, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 0, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 0, 67, 68, 69, 70, 71, 72, 73, 74, 75, 0, 76, 77, 78, 79, 80, 81, 82, 83, 84, 0, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 0, 0, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 0, 121, 122, 0, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 0, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 0, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 0, 197, 198, 199, 200, 201, 202, 0, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 0, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 0, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 0, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 0, 302, 303, 304, 305, 306, 307, 0, 308, 309, 310, 311, 312, 313, 0, 314, 315, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 316, 317, 318, 319, 320, 321, 0, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 0, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 0, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 0, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 0, 378, 379, 0, 380, 381, 0, 0, 0, 0, 0, 382, 383, 384, 385, 386, 387, 388, 389, 390, 0, 391, 392, 393, 394, 395, 396, 397, 398, 399, 0, 400, 401, 402, 403, 404, 405, 406, 407, 408, 0, 409, 410, 411, 412, 413, 414, 0, 415, 416, 417, 418, 419, 420, 0, 0, 0, 421, 422, 423, 424, 425, 426, 0, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 0, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 0, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 0, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 0, 483, 484, 0, 485, 486, 0, 0, 0, 0, 0, 487, 488, 489, 490, 491, 492, 493, 494, 495, 0, 496, 497, 498, 499, 500, 501, 502, 503, 504, 0, 505, 506, 507, 508, 509, 510, 511, 512, 513, 0, 514, 515, 516, 517, 518, 519, 0, 520, 521, 522, 523, 524, 525, 0, 0, 0, 526, 527, 528, 529, 530, 531, 0, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 0, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 0, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 0, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 0, 588, 589, 0, 590, 591, 0, 0, 0, 0, 0, 592, 593, 594, 595, 596, 597, 598, 599, 600, 0, 601, 602, 603, 604, 605, 606, 607, 608, 609, 0, 610, 611, 612, 613, 614, 615, 616, 617, 618, 0, 619, 620, 621, 622, 623, 624, 0, 625, 626, 627, 628, 629, 630, 0, 0, 0, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 0, 664, 665, 666, 667, 668, 669, 0, 670, 671, 672, 673, 674, 675, 0, 0, 0, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 0, 709, 710, 711, 712, 713, 714, 0, 715, 716, 717, 718, 719, 720, 0, 0, 0, 721, 722, 0, 723, 724, 0, 725, 726, 0, 0, 0, 0, 0, 727, 728, 729, 730, 731, 732, 733, 734, 735, 0, 736, 737, 738, 739, 740, 741, 742, 743, 744, 0, 745, 746, 747, 748, 749, 750, 751, 752, 753, 0, 754, 755, 756, 757, 758, 759, 0, 760, 761, 762, 763, 764, 765, 766, 767, 0, 768, 769, 0, 770, 771, 0, 0, 0, 0, 0, 772, 773, 774, 775, 776, 777, 778, 779, 780, 0, 781, 782, 783, 784, 785, 786, 787, 788, 789, 0, 790, 791, 792, 793, 794, 795, 796, 797, 798, 0, 799, 800, 801, 802, 803, 804, 0, 805, 806, 807, 808, 809, 810, 811, 812, 0, 813, 814, 0, 815, 816, 0, 0, 0, 0, 0, 817, 818, 819, 820, 821, 822, 823, 824, 825, 0, 826, 827, 828, 829, 830, 831, 832, 833, 834, 0, 835, 836, 837, 838, 839, 840, 841, 842, 843, 0, 844, 845, 846, 847, 848, 849, 0, 850, 851, 852, 853, 854, 855, 856, 857, 0, 858, 859, 0, 860, 861, 0, 0, 0, 0, 862, 863, 0, 864, 865, 0, 866, 867, 0, 0, 0, 0, 868, 869, 0, 870, 871, 0, 872, 873, 0, 0, 0, 0, 0, 0, 0, 874, 875, 876, 877, 878, 879, 880, 881, 882, 883, 884, 885, 886, 887, 888, 889, 890, 891, 0, 892, 893, 894, 895, 896, 897, 898, 899, 900, 901, 902, 903, 904, 905, 906, 907, 908, 909, 0, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 0, 928, 929, 930, 931, 932, 933, 0, 934, 935, 936, 937, 938, 939, 0, 940, 941, 942, 943, 944, 945, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] [model_handling.py at line 1163]  +DEBUG: multi_channel =  {1: [0], 2: [1], 3: [3], 4: [4], 5: [6], 6: [7], 7: [13], 8: [14], 9: [15], 10: [17], 11: [18], 12: [19], 13: [21], 14: [22], 15: [23], 16: [25], 17: [26], 18: [27], 19: [28], 20: [29], 21: [30], 22: [32], 23: [33], 24: [34], 25: [35], 26: [36], 27: [37], 28: [38], 29: [39], 30: [40], 31: [41], 32: [42], 33: [43], 34: [44], 35: [45], 36: [46], 37: [48], 38: [49], 39: [50], 40: [51], 41: [52], 42: [53], 43: [54], 44: [55], 45: [56], 46: [57], 47: [58], 48: [59], 49: [60], 50: [61], 51: [62], 52: [64], 53: [65], 54: [66], 55: [67], 56: [68], 57: [69], 58: [70], 59: [71], 60: [72], 61: [73], 62: [74], 63: [75], 64: [76], 65: [77], 66: [78], 67: [80], 68: [81], 69: [82], 70: [83], 71: [84], 72: [85], 73: [86], 74: [87], 75: [88], 76: [90], 77: [91], 78: [92], 79: [93], 80: [94], 81: [95], 82: [96], 83: [97], 84: [98], 85: [100], 86: [101], 87: [102], 88: [103], 89: [104], 90: [105], 91: [106], 92: [107], 93: [108], 94: [109], 95: [110], 96: [111], 97: [112], 98: [113], 99: [114], 100: [115], 101: [116], 102: [117], 103: [118], 104: [119], 105: [120], 106: [123], 107: [124], 108: [125], 109: [126], 110: [127], 111: [128], 112: [129], 113: [130], 114: [131], 115: [132], 116: [133], 117: [134], 118: [135], 119: [136], 120: [137], 121: [139], 122: [140], 123: [142], 124: [143], 125: [144], 126: [145], 127: [146], 128: [147], 129: [148], 130: [149], 131: [150], 132: [151], 133: [152], 134: [153], 135: [154], 136: [155], 137: [156], 138: [158], 139: [159], 140: [160], 141: [161], 142: [162], 143: [163], 144: [164], 145: [165], 146: [166], 147: [167], 148: [168], 149: [169], 150: [170], 151: [171], 152: [172], 153: [174], 154: [175], 155: [176], 156: [177], 157: [178], 158: [179], 159: [180], 160: [181], 161: [182], 162: [183], 163: [184], 164: [185], 165: [186], 166: [187], 167: [188], 168: [189], 169: [190], 170: [191], 171: [192], 172: [193], 173: [194], 174: [195], 175: [196], 176: [197], 177: [198], 178: [199], 179: [200], 180: [201], 181: [202], 182: [203], 183: [204], 184: [205], 185: [206], 186: [207], 187: [208], 188: [209], 189: [210], 190: [211], 191: [212], 192: [213], 193: [214], 194: [215], 195: [216], 196: [217], 197: [219], 198: [220], 199: [221], 200: [222], 201: [223], 202: [224], 203: [226], 204: [227], 205: [228], 206: [229], 207: [230], 208: [231], 209: [233], 210: [234], 211: [246], 212: [247], 213: [248], 214: [249], 215: [250], 216: [251], 217: [252], 218: [253], 219: [254], 220: [255], 221: [256], 222: [257], 223: [258], 224: [259], 225: [260], 226: [262], 227: [263], 228: [265], 229: [266], 230: [267], 231: [268], 232: [269], 233: [270], 234: [271], 235: [272], 236: [273], 237: [274], 238: [275], 239: [276], 240: [277], 241: [278], 242: [279], 243: [281], 244: [282], 245: [283], 246: [284], 247: [285], 248: [286], 249: [287], 250: [288], 251: [289], 252: [290], 253: [291], 254: [292], 255: [293], 256: [294], 257: [295], 258: [297], 259: [298], 260: [299], 261: [300], 262: [301], 263: [302], 264: [303], 265: [304], 266: [305], 267: [306], 268: [307], 269: [308], 270: [309], 271: [310], 272: [311], 273: [312], 274: [313], 275: [314], 276: [315], 277: [316], 278: [317], 279: [318], 280: [319], 281: [320], 282: [321], 283: [322], 284: [323], 285: [324], 286: [325], 287: [326], 288: [327], 289: [328], 290: [329], 291: [330], 292: [331], 293: [332], 294: [333], 295: [334], 296: [335], 297: [336], 298: [337], 299: [338], 300: [339], 301: [340], 302: [342], 303: [343], 304: [344], 305: [345], 306: [346], 307: [347], 308: [349], 309: [350], 310: [351], 311: [352], 312: [353], 313: [354], 314: [356], 315: [357], 316: [369], 317: [370], 318: [371], 319: [372], 320: [373], 321: [374], 322: [376], 323: [377], 324: [378], 325: [379], 326: [380], 327: [381], 328: [382], 329: [383], 330: [384], 331: [385], 332: [386], 333: [387], 334: [388], 335: [389], 336: [390], 337: [392], 338: [393], 339: [394], 340: [395], 341: [396], 342: [397], 343: [398], 344: [399], 345: [400], 346: [401], 347: [402], 348: [403], 349: [404], 350: [405], 351: [406], 352: [408], 353: [409], 354: [410], 355: [411], 356: [412], 357: [413], 358: [414], 359: [415], 360: [416], 361: [417], 362: [418], 363: [419], 364: [420], 365: [421], 366: [422], 367: [424], 368: [425], 369: [426], 370: [427], 371: [428], 372: [429], 373: [430], 374: [431], 375: [432], 376: [433], 377: [434], 378: [436], 379: [437], 380: [439], 381: [440], 382: [446], 383: [447], 384: [448], 385: [449], 386: [450], 387: [451], 388: [452], 389: [453], 390: [454], 391: [456], 392: [457], 393: [458], 394: [459], 395: [460], 396: [461], 397: [462], 398: [463], 399: [464], 400: [466], 401: [467], 402: [468], 403: [469], 404: [470], 405: [471], 406: [472], 407: [473], 408: [474], 409: [476], 410: [477], 411: [478], 412: [479], 413: [480], 414: [481], 415: [483], 416: [484], 417: [485], 418: [486], 419: [487], 420: [488], 421: [492], 422: [493], 423: [494], 424: [495], 425: [496], 426: [497], 427: [499], 428: [500], 429: [501], 430: [502], 431: [503], 432: [504], 433: [505], 434: [506], 435: [507], 436: [508], 437: [509], 438: [510], 439: [511], 440: [512], 441: [513], 442: [515], 443: [516], 444: [517], 445: [518], 446: [519], 447: [520], 448: [521], 449: [522], 450: [523], 451: [524], 452: [525], 453: [526], 454: [527], 455: [528], 456: [529], 457: [531], 458: [532], 459: [533], 460: [534], 461: [535], 462: [536], 463: [537], 464: [538], 465: [539], 466: [540], 467: [541], 468: [542], 469: [543], 470: [544], 471: [545], 472: [547], 473: [548], 474: [549], 475: [550], 476: [551], 477: [552], 478: [553], 479: [554], 480: [555], 481: [556], 482: [557], 483: [559], 484: [560], 485: [562], 486: [563], 487: [569], 488: [570], 489: [571], 490: [572], 491: [573], 492: [574], 493: [575], 494: [576], 495: [577], 496: [579], 497: [580], 498: [581], 499: [582], 500: [583], 501: [584], 502: [585], 503: [586], 504: [587], 505: [589], 506: [590], 507: [591], 508: [592], 509: [593], 510: [594], 511: [595], 512: [596], 513: [597], 514: [599], 515: [600], 516: [601], 517: [602], 518: [603], 519: [604], 520: [606], 521: [607], 522: [608], 523: [609], 524: [610], 525: [611], 526: [615], 527: [616], 528: [617], 529: [618], 530: [619], 531: [620], 532: [622], 533: [623], 534: [624], 535: [625], 536: [626], 537: [627], 538: [628], 539: [629], 540: [630], 541: [631], 542: [632], 543: [633], 544: [634], 545: [635], 546: [636], 547: [638], 548: [639], 549: [640], 550: [641], 551: [642], 552: [643], 553: [644], 554: [645], 555: [646], 556: [647], 557: [648], 558: [649], 559: [650], 560: [651], 561: [652], 562: [654], 563: [655], 564: [656], 565: [657], 566: [658], 567: [659], 568: [660], 569: [661], 570: [662], 571: [663], 572: [664], 573: [665], 574: [666], 575: [667], 576: [668], 577: [670], 578: [671], 579: [672], 580: [673], 581: [674], 582: [675], 583: [676], 584: [677], 585: [678], 586: [679], 587: [680], 588: [682], 589: [683], 590: [685], 591: [686], 592: [692], 593: [693], 594: [694], 595: [695], 596: [696], 597: [697], 598: [698], 599: [699], 600: [700], 601: [702], 602: [703], 603: [704], 604: [705], 605: [706], 606: [707], 607: [708], 608: [709], 609: [710], 610: [712], 611: [713], 612: [714], 613: [715], 614: [716], 615: [717], 616: [718], 617: [719], 618: [720], 619: [722], 620: [723], 621: [724], 622: [725], 623: [726], 624: [727], 625: [729], 626: [730], 627: [731], 628: [732], 629: [733], 630: [734], 631: [738], 632: [739], 633: [740], 634: [741], 635: [742], 636: [743], 637: [744], 638: [745], 639: [746], 640: [747], 641: [748], 642: [749], 643: [750], 644: [751], 645: [752], 646: [753], 647: [754], 648: [755], 649: [756], 650: [757], 651: [758], 652: [759], 653: [760], 654: [761], 655: [762], 656: [763], 657: [764], 658: [765], 659: [766], 660: [767], 661: [768], 662: [769], 663: [770], 664: [772], 665: [773], 666: [774], 667: [775], 668: [776], 669: [777], 670: [779], 671: [780], 672: [781], 673: [782], 674: [783], 675: [784], 676: [788], 677: [789], 678: [790], 679: [791], 680: [792], 681: [793], 682: [794], 683: [795], 684: [796], 685: [797], 686: [798], 687: [799], 688: [800], 689: [801], 690: [802], 691: [803], 692: [804], 693: [805], 694: [806], 695: [807], 696: [808], 697: [809], 698: [810], 699: [811], 700: [812], 701: [813], 702: [814], 703: [815], 704: [816], 705: [817], 706: [818], 707: [819], 708: [820], 709: [822], 710: [823], 711: [824], 712: [825], 713: [826], 714: [827], 715: [829], 716: [830], 717: [831], 718: [832], 719: [833], 720: [834], 721: [838], 722: [839], 723: [841], 724: [842], 725: [844], 726: [845], 727: [851], 728: [852], 729: [853], 730: [854], 731: [855], 732: [856], 733: [857], 734: [858], 735: [859], 736: [861], 737: [862], 738: [863], 739: [864], 740: [865], 741: [866], 742: [867], 743: [868], 744: [869], 745: [871], 746: [872], 747: [873], 748: [874], 749: [875], 750: [876], 751: [877], 752: [878], 753: [879], 754: [881], 755: [882], 756: [883], 757: [884], 758: [885], 759: [886], 760: [888], 761: [889], 762: [890], 763: [891], 764: [892], 765: [893], 766: [894], 767: [895], 768: [897], 769: [898], 770: [900], 771: [901], 772: [907], 773: [908], 774: [909], 775: [910], 776: [911], 777: [912], 778: [913], 779: [914], 780: [915], 781: [917], 782: [918], 783: [919], 784: [920], 785: [921], 786: [922], 787: [923], 788: [924], 789: [925], 790: [927], 791: [928], 792: [929], 793: [930], 794: [931], 795: [932], 796: [933], 797: [934], 798: [935], 799: [937], 800: [938], 801: [939], 802: [940], 803: [941], 804: [942], 805: [944], 806: [945], 807: [946], 808: [947], 809: [948], 810: [949], 811: [950], 812: [951], 813: [953], 814: [954], 815: [956], 816: [957], 817: [963], 818: [964], 819: [965], 820: [966], 821: [967], 822: [968], 823: [969], 824: [970], 825: [971], 826: [973], 827: [974], 828: [975], 829: [976], 830: [977], 831: [978], 832: [979], 833: [980], 834: [981], 835: [983], 836: [984], 837: [985], 838: [986], 839: [987], 840: [988], 841: [989], 842: [990], 843: [991], 844: [993], 845: [994], 846: [995], 847: [996], 848: [997], 849: [998], 850: [1000], 851: [1001], 852: [1002], 853: [1003], 854: [1004], 855: [1005], 856: [1006], 857: [1007], 858: [1009], 859: [1010], 860: [1012], 861: [1013], 862: [1018], 863: [1019], 864: [1021], 865: [1022], 866: [1024], 867: [1025], 868: [1030], 869: [1031], 870: [1033], 871: [1034], 872: [1036], 873: [1037], 874: [1045], 875: [1046], 876: [1047], 877: [1048], 878: [1049], 879: [1050], 880: [1051], 881: [1052], 882: [1053], 883: [1054], 884: [1055], 885: [1056], 886: [1057], 887: [1058], 888: [1059], 889: [1060], 890: [1061], 891: [1062], 892: [1064], 893: [1065], 894: [1066], 895: [1067], 896: [1068], 897: [1069], 898: [1070], 899: [1071], 900: [1072], 901: [1073], 902: [1074], 903: [1075], 904: [1076], 905: [1077], 906: [1078], 907: [1079], 908: [1080], 909: [1081], 910: [1083], 911: [1084], 912: [1085], 913: [1086], 914: [1087], 915: [1088], 916: [1089], 917: [1090], 918: [1091], 919: [1092], 920: [1093], 921: [1094], 922: [1095], 923: [1096], 924: [1097], 925: [1098], 926: [1099], 927: [1100], 928: [1102], 929: [1103], 930: [1104], 931: [1105], 932: [1106], 933: [1107], 934: [1109], 935: [1110], 936: [1111], 937: [1112], 938: [1113], 939: [1114], 940: [1116], 941: [1117], 942: [1118], 943: [1119], 944: [1120], 945: [1121]} [model_handling.py at line 1169]  +DEBUG: multi_channel_map =  {1: [0], 2: [1], 3: [3], 4: [4], 5: [6], 6: [7], 7: [13], 8: [14], 9: [15], 10: [17], 11: [18], 12: [19], 13: [21], 14: [22], 15: [23], 16: [25], 17: [26], 18: [27], 19: [28], 20: [29], 21: [30], 22: [32], 23: [33], 24: [34], 25: [35], 26: [36], 27: [37], 28: [38], 29: [39], 30: [40], 31: [41], 32: [42], 33: [43], 34: [44], 35: [45], 36: [46], 37: [48], 38: [49], 39: [50], 40: [51], 41: [52], 42: [53], 43: [54], 44: [55], 45: [56], 46: [57], 47: [58], 48: [59], 49: [60], 50: [61], 51: [62], 52: [64], 53: [65], 54: [66], 55: [67], 56: [68], 57: [69], 58: [70], 59: [71], 60: [72], 61: [73], 62: [74], 63: [75], 64: [76], 65: [77], 66: [78], 67: [80], 68: [81], 69: [82], 70: [83], 71: [84], 72: [85], 73: [86], 74: [87], 75: [88], 76: [90], 77: [91], 78: [92], 79: [93], 80: [94], 81: [95], 82: [96], 83: [97], 84: [98], 85: [100], 86: [101], 87: [102], 88: [103], 89: [104], 90: [105], 91: [106], 92: [107], 93: [108], 94: [109], 95: [110], 96: [111], 97: [112], 98: [113], 99: [114], 100: [115], 101: [116], 102: [117], 103: [118], 104: [119], 105: [120], 106: [123], 107: [124], 108: [125], 109: [126], 110: [127], 111: [128], 112: [129], 113: [130], 114: [131], 115: [132], 116: [133], 117: [134], 118: [135], 119: [136], 120: [137], 121: [139], 122: [140], 123: [142], 124: [143], 125: [144], 126: [145], 127: [146], 128: [147], 129: [148], 130: [149], 131: [150], 132: [151], 133: [152], 134: [153], 135: [154], 136: [155], 137: [156], 138: [158], 139: [159], 140: [160], 141: [161], 142: [162], 143: [163], 144: [164], 145: [165], 146: [166], 147: [167], 148: [168], 149: [169], 150: [170], 151: [171], 152: [172], 153: [174], 154: [175], 155: [176], 156: [177], 157: [178], 158: [179], 159: [180], 160: [181], 161: [182], 162: [183], 163: [184], 164: [185], 165: [186], 166: [187], 167: [188], 168: [189], 169: [190], 170: [191], 171: [192], 172: [193], 173: [194], 174: [195], 175: [196], 176: [197], 177: [198], 178: [199], 179: [200], 180: [201], 181: [202], 182: [203], 183: [204], 184: [205], 185: [206], 186: [207], 187: [208], 188: [209], 189: [210], 190: [211], 191: [212], 192: [213], 193: [214], 194: [215], 195: [216], 196: [217], 197: [219], 198: [220], 199: [221], 200: [222], 201: [223], 202: [224], 203: [226], 204: [227], 205: [228], 206: [229], 207: [230], 208: [231], 209: [233], 210: [234], 211: [246], 212: [247], 213: [248], 214: [249], 215: [250], 216: [251], 217: [252], 218: [253], 219: [254], 220: [255], 221: [256], 222: [257], 223: [258], 224: [259], 225: [260], 226: [262], 227: [263], 228: [265], 229: [266], 230: [267], 231: [268], 232: [269], 233: [270], 234: [271], 235: [272], 236: [273], 237: [274], 238: [275], 239: [276], 240: [277], 241: [278], 242: [279], 243: [281], 244: [282], 245: [283], 246: [284], 247: [285], 248: [286], 249: [287], 250: [288], 251: [289], 252: [290], 253: [291], 254: [292], 255: [293], 256: [294], 257: [295], 258: [297], 259: [298], 260: [299], 261: [300], 262: [301], 263: [302], 264: [303], 265: [304], 266: [305], 267: [306], 268: [307], 269: [308], 270: [309], 271: [310], 272: [311], 273: [312], 274: [313], 275: [314], 276: [315], 277: [316], 278: [317], 279: [318], 280: [319], 281: [320], 282: [321], 283: [322], 284: [323], 285: [324], 286: [325], 287: [326], 288: [327], 289: [328], 290: [329], 291: [330], 292: [331], 293: [332], 294: [333], 295: [334], 296: [335], 297: [336], 298: [337], 299: [338], 300: [339], 301: [340], 302: [342], 303: [343], 304: [344], 305: [345], 306: [346], 307: [347], 308: [349], 309: [350], 310: [351], 311: [352], 312: [353], 313: [354], 314: [356], 315: [357], 316: [369], 317: [370], 318: [371], 319: [372], 320: [373], 321: [374], 322: [376], 323: [377], 324: [378], 325: [379], 326: [380], 327: [381], 328: [382], 329: [383], 330: [384], 331: [385], 332: [386], 333: [387], 334: [388], 335: [389], 336: [390], 337: [392], 338: [393], 339: [394], 340: [395], 341: [396], 342: [397], 343: [398], 344: [399], 345: [400], 346: [401], 347: [402], 348: [403], 349: [404], 350: [405], 351: [406], 352: [408], 353: [409], 354: [410], 355: [411], 356: [412], 357: [413], 358: [414], 359: [415], 360: [416], 361: [417], 362: [418], 363: [419], 364: [420], 365: [421], 366: [422], 367: [424], 368: [425], 369: [426], 370: [427], 371: [428], 372: [429], 373: [430], 374: [431], 375: [432], 376: [433], 377: [434], 378: [436], 379: [437], 380: [439], 381: [440], 382: [446], 383: [447], 384: [448], 385: [449], 386: [450], 387: [451], 388: [452], 389: [453], 390: [454], 391: [456], 392: [457], 393: [458], 394: [459], 395: [460], 396: [461], 397: [462], 398: [463], 399: [464], 400: [466], 401: [467], 402: [468], 403: [469], 404: [470], 405: [471], 406: [472], 407: [473], 408: [474], 409: [476], 410: [477], 411: [478], 412: [479], 413: [480], 414: [481], 415: [483], 416: [484], 417: [485], 418: [486], 419: [487], 420: [488], 421: [492], 422: [493], 423: [494], 424: [495], 425: [496], 426: [497], 427: [499], 428: [500], 429: [501], 430: [502], 431: [503], 432: [504], 433: [505], 434: [506], 435: [507], 436: [508], 437: [509], 438: [510], 439: [511], 440: [512], 441: [513], 442: [515], 443: [516], 444: [517], 445: [518], 446: [519], 447: [520], 448: [521], 449: [522], 450: [523], 451: [524], 452: [525], 453: [526], 454: [527], 455: [528], 456: [529], 457: [531], 458: [532], 459: [533], 460: [534], 461: [535], 462: [536], 463: [537], 464: [538], 465: [539], 466: [540], 467: [541], 468: [542], 469: [543], 470: [544], 471: [545], 472: [547], 473: [548], 474: [549], 475: [550], 476: [551], 477: [552], 478: [553], 479: [554], 480: [555], 481: [556], 482: [557], 483: [559], 484: [560], 485: [562], 486: [563], 487: [569], 488: [570], 489: [571], 490: [572], 491: [573], 492: [574], 493: [575], 494: [576], 495: [577], 496: [579], 497: [580], 498: [581], 499: [582], 500: [583], 501: [584], 502: [585], 503: [586], 504: [587], 505: [589], 506: [590], 507: [591], 508: [592], 509: [593], 510: [594], 511: [595], 512: [596], 513: [597], 514: [599], 515: [600], 516: [601], 517: [602], 518: [603], 519: [604], 520: [606], 521: [607], 522: [608], 523: [609], 524: [610], 525: [611], 526: [615], 527: [616], 528: [617], 529: [618], 530: [619], 531: [620], 532: [622], 533: [623], 534: [624], 535: [625], 536: [626], 537: [627], 538: [628], 539: [629], 540: [630], 541: [631], 542: [632], 543: [633], 544: [634], 545: [635], 546: [636], 547: [638], 548: [639], 549: [640], 550: [641], 551: [642], 552: [643], 553: [644], 554: [645], 555: [646], 556: [647], 557: [648], 558: [649], 559: [650], 560: [651], 561: [652], 562: [654], 563: [655], 564: [656], 565: [657], 566: [658], 567: [659], 568: [660], 569: [661], 570: [662], 571: [663], 572: [664], 573: [665], 574: [666], 575: [667], 576: [668], 577: [670], 578: [671], 579: [672], 580: [673], 581: [674], 582: [675], 583: [676], 584: [677], 585: [678], 586: [679], 587: [680], 588: [682], 589: [683], 590: [685], 591: [686], 592: [692], 593: [693], 594: [694], 595: [695], 596: [696], 597: [697], 598: [698], 599: [699], 600: [700], 601: [702], 602: [703], 603: [704], 604: [705], 605: [706], 606: [707], 607: [708], 608: [709], 609: [710], 610: [712], 611: [713], 612: [714], 613: [715], 614: [716], 615: [717], 616: [718], 617: [719], 618: [720], 619: [722], 620: [723], 621: [724], 622: [725], 623: [726], 624: [727], 625: [729], 626: [730], 627: [731], 628: [732], 629: [733], 630: [734], 631: [738], 632: [739], 633: [740], 634: [741], 635: [742], 636: [743], 637: [744], 638: [745], 639: [746], 640: [747], 641: [748], 642: [749], 643: [750], 644: [751], 645: [752], 646: [753], 647: [754], 648: [755], 649: [756], 650: [757], 651: [758], 652: [759], 653: [760], 654: [761], 655: [762], 656: [763], 657: [764], 658: [765], 659: [766], 660: [767], 661: [768], 662: [769], 663: [770], 664: [772], 665: [773], 666: [774], 667: [775], 668: [776], 669: [777], 670: [779], 671: [780], 672: [781], 673: [782], 674: [783], 675: [784], 676: [788], 677: [789], 678: [790], 679: [791], 680: [792], 681: [793], 682: [794], 683: [795], 684: [796], 685: [797], 686: [798], 687: [799], 688: [800], 689: [801], 690: [802], 691: [803], 692: [804], 693: [805], 694: [806], 695: [807], 696: [808], 697: [809], 698: [810], 699: [811], 700: [812], 701: [813], 702: [814], 703: [815], 704: [816], 705: [817], 706: [818], 707: [819], 708: [820], 709: [822], 710: [823], 711: [824], 712: [825], 713: [826], 714: [827], 715: [829], 716: [830], 717: [831], 718: [832], 719: [833], 720: [834], 721: [838], 722: [839], 723: [841], 724: [842], 725: [844], 726: [845], 727: [851], 728: [852], 729: [853], 730: [854], 731: [855], 732: [856], 733: [857], 734: [858], 735: [859], 736: [861], 737: [862], 738: [863], 739: [864], 740: [865], 741: [866], 742: [867], 743: [868], 744: [869], 745: [871], 746: [872], 747: [873], 748: [874], 749: [875], 750: [876], 751: [877], 752: [878], 753: [879], 754: [881], 755: [882], 756: [883], 757: [884], 758: [885], 759: [886], 760: [888], 761: [889], 762: [890], 763: [891], 764: [892], 765: [893], 766: [894], 767: [895], 768: [897], 769: [898], 770: [900], 771: [901], 772: [907], 773: [908], 774: [909], 775: [910], 776: [911], 777: [912], 778: [913], 779: [914], 780: [915], 781: [917], 782: [918], 783: [919], 784: [920], 785: [921], 786: [922], 787: [923], 788: [924], 789: [925], 790: [927], 791: [928], 792: [929], 793: [930], 794: [931], 795: [932], 796: [933], 797: [934], 798: [935], 799: [937], 800: [938], 801: [939], 802: [940], 803: [941], 804: [942], 805: [944], 806: [945], 807: [946], 808: [947], 809: [948], 810: [949], 811: [950], 812: [951], 813: [953], 814: [954], 815: [956], 816: [957], 817: [963], 818: [964], 819: [965], 820: [966], 821: [967], 822: [968], 823: [969], 824: [970], 825: [971], 826: [973], 827: [974], 828: [975], 829: [976], 830: [977], 831: [978], 832: [979], 833: [980], 834: [981], 835: [983], 836: [984], 837: [985], 838: [986], 839: [987], 840: [988], 841: [989], 842: [990], 843: [991], 844: [993], 845: [994], 846: [995], 847: [996], 848: [997], 849: [998], 850: [1000], 851: [1001], 852: [1002], 853: [1003], 854: [1004], 855: [1005], 856: [1006], 857: [1007], 858: [1009], 859: [1010], 860: [1012], 861: [1013], 862: [1018], 863: [1019], 864: [1021], 865: [1022], 866: [1024], 867: [1025], 868: [1030], 869: [1031], 870: [1033], 871: [1034], 872: [1036], 873: [1037], 874: [1045], 875: [1046], 876: [1047], 877: [1048], 878: [1049], 879: [1050], 880: [1051], 881: [1052], 882: [1053], 883: [1054], 884: [1055], 885: [1056], 886: [1057], 887: [1058], 888: [1059], 889: [1060], 890: [1061], 891: [1062], 892: [1064], 893: [1065], 894: [1066], 895: [1067], 896: [1068], 897: [1069], 898: [1070], 899: [1071], 900: [1072], 901: [1073], 902: [1074], 903: [1075], 904: [1076], 905: [1077], 906: [1078], 907: [1079], 908: [1080], 909: [1081], 910: [1083], 911: [1084], 912: [1085], 913: [1086], 914: [1087], 915: [1088], 916: [1089], 917: [1090], 918: [1091], 919: [1092], 920: [1093], 921: [1094], 922: [1095], 923: [1096], 924: [1097], 925: [1098], 926: [1099], 927: [1100], 928: [1102], 929: [1103], 930: [1104], 931: [1105], 932: [1106], 933: [1107], 934: [1109], 935: [1110], 936: [1111], 937: [1112], 938: [1113], 939: [1114], 940: [1116], 941: [1117], 942: [1118], 943: [1119], 944: [1120], 945: [1121]} [model_handling.py at line 1654]  +DEBUG: diag_to_config =  {1: 1, 2: 2, 6: 3, 7: 4, 11: 5, 12: 6, 28: 7, 29: 8, 30: 9, 34: 10, 35: 11, 36: 12, 40: 13, 41: 14, 42: 15, 46: 16, 47: 17, 48: 18, 49: 19, 50: 20, 51: 21, 55: 22, 56: 23, 57: 24, 58: 25, 59: 26, 60: 27, 61: 28, 62: 29, 63: 30, 64: 31, 65: 32, 66: 33, 67: 34, 68: 35, 69: 36, 73: 37, 74: 38, 75: 39, 76: 40, 77: 41, 78: 42, 79: 43, 80: 44, 81: 45, 82: 46, 83: 47, 84: 48, 85: 49, 86: 50, 87: 51, 91: 52, 92: 53, 93: 54, 94: 55, 95: 56, 96: 57, 97: 58, 98: 59, 99: 60, 100: 61, 101: 62, 102: 63, 103: 64, 104: 65, 105: 66, 109: 67, 110: 68, 111: 69, 112: 70, 113: 71, 114: 72, 115: 73, 116: 74, 117: 75, 121: 76, 122: 77, 123: 78, 124: 79, 125: 80, 126: 81, 127: 82, 128: 83, 129: 84, 133: 85, 134: 86, 135: 87, 136: 88, 137: 89, 138: 90, 139: 91, 140: 92, 141: 93, 142: 94, 143: 95, 144: 96, 145: 97, 146: 98, 147: 99, 148: 100, 149: 101, 150: 102, 151: 103, 152: 104, 153: 105, 160: 106, 161: 107, 162: 108, 163: 109, 164: 110, 165: 111, 166: 112, 167: 113, 168: 114, 169: 115, 170: 116, 171: 117, 172: 118, 173: 119, 174: 120, 178: 121, 179: 122, 183: 123, 184: 124, 185: 125, 186: 126, 187: 127, 188: 128, 189: 129, 190: 130, 191: 131, 192: 132, 193: 133, 194: 134, 195: 135, 196: 136, 197: 137, 201: 138, 202: 139, 203: 140, 204: 141, 205: 142, 206: 143, 207: 144, 208: 145, 209: 146, 210: 147, 211: 148, 212: 149, 213: 150, 214: 151, 215: 152, 219: 153, 220: 154, 221: 155, 222: 156, 223: 157, 224: 158, 225: 159, 226: 160, 227: 161, 228: 162, 229: 163, 230: 164, 231: 165, 232: 166, 233: 167, 234: 168, 235: 169, 236: 170, 237: 171, 238: 172, 239: 173, 240: 174, 241: 175, 242: 176, 243: 177, 244: 178, 245: 179, 246: 180, 247: 181, 248: 182, 249: 183, 250: 184, 251: 185, 252: 186, 253: 187, 254: 188, 255: 189, 256: 190, 257: 191, 258: 192, 259: 193, 260: 194, 261: 195, 262: 196, 266: 197, 267: 198, 268: 199, 269: 200, 270: 201, 271: 202, 275: 203, 276: 204, 277: 205, 278: 206, 279: 207, 280: 208, 284: 209, 285: 210, 319: 211, 320: 212, 321: 213, 322: 214, 323: 215, 324: 216, 325: 217, 326: 218, 327: 219, 328: 220, 329: 221, 330: 222, 331: 223, 332: 224, 333: 225, 337: 226, 338: 227, 342: 228, 343: 229, 344: 230, 345: 231, 346: 232, 347: 233, 348: 234, 349: 235, 350: 236, 351: 237, 352: 238, 353: 239, 354: 240, 355: 241, 356: 242, 360: 243, 361: 244, 362: 245, 363: 246, 364: 247, 365: 248, 366: 249, 367: 250, 368: 251, 369: 252, 370: 253, 371: 254, 372: 255, 373: 256, 374: 257, 378: 258, 379: 259, 380: 260, 381: 261, 382: 262, 383: 263, 384: 264, 385: 265, 386: 266, 387: 267, 388: 268, 389: 269, 390: 270, 391: 271, 392: 272, 393: 273, 394: 274, 395: 275, 396: 276, 397: 277, 398: 278, 399: 279, 400: 280, 401: 281, 402: 282, 403: 283, 404: 284, 405: 285, 406: 286, 407: 287, 408: 288, 409: 289, 410: 290, 411: 291, 412: 292, 413: 293, 414: 294, 415: 295, 416: 296, 417: 297, 418: 298, 419: 299, 420: 300, 421: 301, 425: 302, 426: 303, 427: 304, 428: 305, 429: 306, 430: 307, 434: 308, 435: 309, 436: 310, 437: 311, 438: 312, 439: 313, 443: 314, 444: 315, 478: 316, 479: 317, 480: 318, 481: 319, 482: 320, 483: 321, 487: 322, 488: 323, 489: 324, 490: 325, 491: 326, 492: 327, 493: 328, 494: 329, 495: 330, 496: 331, 497: 332, 498: 333, 499: 334, 500: 335, 501: 336, 505: 337, 506: 338, 507: 339, 508: 340, 509: 341, 510: 342, 511: 343, 512: 344, 513: 345, 514: 346, 515: 347, 516: 348, 517: 349, 518: 350, 519: 351, 523: 352, 524: 353, 525: 354, 526: 355, 527: 356, 528: 357, 529: 358, 530: 359, 531: 360, 532: 361, 533: 362, 534: 363, 535: 364, 536: 365, 537: 366, 541: 367, 542: 368, 543: 369, 544: 370, 545: 371, 546: 372, 547: 373, 548: 374, 549: 375, 550: 376, 551: 377, 555: 378, 556: 379, 560: 380, 561: 381, 577: 382, 578: 383, 579: 384, 580: 385, 581: 386, 582: 387, 583: 388, 584: 389, 585: 390, 589: 391, 590: 392, 591: 393, 592: 394, 593: 395, 594: 396, 595: 397, 596: 398, 597: 399, 601: 400, 602: 401, 603: 402, 604: 403, 605: 404, 606: 405, 607: 406, 608: 407, 609: 408, 613: 409, 614: 410, 615: 411, 616: 412, 617: 413, 618: 414, 622: 415, 623: 416, 624: 417, 625: 418, 626: 419, 627: 420, 637: 421, 638: 422, 639: 423, 640: 424, 641: 425, 642: 426, 646: 427, 647: 428, 648: 429, 649: 430, 650: 431, 651: 432, 652: 433, 653: 434, 654: 435, 655: 436, 656: 437, 657: 438, 658: 439, 659: 440, 660: 441, 664: 442, 665: 443, 666: 444, 667: 445, 668: 446, 669: 447, 670: 448, 671: 449, 672: 450, 673: 451, 674: 452, 675: 453, 676: 454, 677: 455, 678: 456, 682: 457, 683: 458, 684: 459, 685: 460, 686: 461, 687: 462, 688: 463, 689: 464, 690: 465, 691: 466, 692: 467, 693: 468, 694: 469, 695: 470, 696: 471, 700: 472, 701: 473, 702: 474, 703: 475, 704: 476, 705: 477, 706: 478, 707: 479, 708: 480, 709: 481, 710: 482, 714: 483, 715: 484, 719: 485, 720: 486, 736: 487, 737: 488, 738: 489, 739: 490, 740: 491, 741: 492, 742: 493, 743: 494, 744: 495, 748: 496, 749: 497, 750: 498, 751: 499, 752: 500, 753: 501, 754: 502, 755: 503, 756: 504, 760: 505, 761: 506, 762: 507, 763: 508, 764: 509, 765: 510, 766: 511, 767: 512, 768: 513, 772: 514, 773: 515, 774: 516, 775: 517, 776: 518, 777: 519, 781: 520, 782: 521, 783: 522, 784: 523, 785: 524, 786: 525, 796: 526, 797: 527, 798: 528, 799: 529, 800: 530, 801: 531, 805: 532, 806: 533, 807: 534, 808: 535, 809: 536, 810: 537, 811: 538, 812: 539, 813: 540, 814: 541, 815: 542, 816: 543, 817: 544, 818: 545, 819: 546, 823: 547, 824: 548, 825: 549, 826: 550, 827: 551, 828: 552, 829: 553, 830: 554, 831: 555, 832: 556, 833: 557, 834: 558, 835: 559, 836: 560, 837: 561, 841: 562, 842: 563, 843: 564, 844: 565, 845: 566, 846: 567, 847: 568, 848: 569, 849: 570, 850: 571, 851: 572, 852: 573, 853: 574, 854: 575, 855: 576, 859: 577, 860: 578, 861: 579, 862: 580, 863: 581, 864: 582, 865: 583, 866: 584, 867: 585, 868: 586, 869: 587, 873: 588, 874: 589, 878: 590, 879: 591, 895: 592, 896: 593, 897: 594, 898: 595, 899: 596, 900: 597, 901: 598, 902: 599, 903: 600, 907: 601, 908: 602, 909: 603, 910: 604, 911: 605, 912: 606, 913: 607, 914: 608, 915: 609, 919: 610, 920: 611, 921: 612, 922: 613, 923: 614, 924: 615, 925: 616, 926: 617, 927: 618, 931: 619, 932: 620, 933: 621, 934: 622, 935: 623, 936: 624, 940: 625, 941: 626, 942: 627, 943: 628, 944: 629, 945: 630, 955: 631, 956: 632, 957: 633, 958: 634, 959: 635, 960: 636, 961: 637, 962: 638, 963: 639, 964: 640, 965: 641, 966: 642, 967: 643, 968: 644, 969: 645, 970: 646, 971: 647, 972: 648, 973: 649, 974: 650, 975: 651, 976: 652, 977: 653, 978: 654, 979: 655, 980: 656, 981: 657, 982: 658, 983: 659, 984: 660, 985: 661, 986: 662, 987: 663, 991: 664, 992: 665, 993: 666, 994: 667, 995: 668, 996: 669, 1000: 670, 1001: 671, 1002: 672, 1003: 673, 1004: 674, 1005: 675, 1015: 676, 1016: 677, 1017: 678, 1018: 679, 1019: 680, 1020: 681, 1021: 682, 1022: 683, 1023: 684, 1024: 685, 1025: 686, 1026: 687, 1027: 688, 1028: 689, 1029: 690, 1030: 691, 1031: 692, 1032: 693, 1033: 694, 1034: 695, 1035: 696, 1036: 697, 1037: 698, 1038: 699, 1039: 700, 1040: 701, 1041: 702, 1042: 703, 1043: 704, 1044: 705, 1045: 706, 1046: 707, 1047: 708, 1051: 709, 1052: 710, 1053: 711, 1054: 712, 1055: 713, 1056: 714, 1060: 715, 1061: 716, 1062: 717, 1063: 718, 1064: 719, 1065: 720, 1075: 721, 1076: 722, 1080: 723, 1081: 724, 1085: 725, 1086: 726, 1102: 727, 1103: 728, 1104: 729, 1105: 730, 1106: 731, 1107: 732, 1108: 733, 1109: 734, 1110: 735, 1114: 736, 1115: 737, 1116: 738, 1117: 739, 1118: 740, 1119: 741, 1120: 742, 1121: 743, 1122: 744, 1126: 745, 1127: 746, 1128: 747, 1129: 748, 1130: 749, 1131: 750, 1132: 751, 1133: 752, 1134: 753, 1138: 754, 1139: 755, 1140: 756, 1141: 757, 1142: 758, 1143: 759, 1147: 760, 1148: 761, 1149: 762, 1150: 763, 1151: 764, 1152: 765, 1153: 766, 1154: 767, 1158: 768, 1159: 769, 1163: 770, 1164: 771, 1180: 772, 1181: 773, 1182: 774, 1183: 775, 1184: 776, 1185: 777, 1186: 778, 1187: 779, 1188: 780, 1192: 781, 1193: 782, 1194: 783, 1195: 784, 1196: 785, 1197: 786, 1198: 787, 1199: 788, 1200: 789, 1204: 790, 1205: 791, 1206: 792, 1207: 793, 1208: 794, 1209: 795, 1210: 796, 1211: 797, 1212: 798, 1216: 799, 1217: 800, 1218: 801, 1219: 802, 1220: 803, 1221: 804, 1225: 805, 1226: 806, 1227: 807, 1228: 808, 1229: 809, 1230: 810, 1231: 811, 1232: 812, 1236: 813, 1237: 814, 1241: 815, 1242: 816, 1258: 817, 1259: 818, 1260: 819, 1261: 820, 1262: 821, 1263: 822, 1264: 823, 1265: 824, 1266: 825, 1270: 826, 1271: 827, 1272: 828, 1273: 829, 1274: 830, 1275: 831, 1276: 832, 1277: 833, 1278: 834, 1282: 835, 1283: 836, 1284: 837, 1285: 838, 1286: 839, 1287: 840, 1288: 841, 1289: 842, 1290: 843, 1294: 844, 1295: 845, 1296: 846, 1297: 847, 1298: 848, 1299: 849, 1303: 850, 1304: 851, 1305: 852, 1306: 853, 1307: 854, 1308: 855, 1309: 856, 1310: 857, 1314: 858, 1315: 859, 1319: 860, 1320: 861, 1333: 862, 1334: 863, 1338: 864, 1339: 865, 1343: 866, 1344: 867, 1357: 868, 1358: 869, 1362: 870, 1363: 871, 1367: 872, 1368: 873, 1396: 874, 1397: 875, 1398: 876, 1399: 877, 1400: 878, 1401: 879, 1402: 880, 1403: 881, 1404: 882, 1405: 883, 1406: 884, 1407: 885, 1408: 886, 1409: 887, 1410: 888, 1411: 889, 1412: 890, 1413: 891, 1417: 892, 1418: 893, 1419: 894, 1420: 895, 1421: 896, 1422: 897, 1423: 898, 1424: 899, 1425: 900, 1426: 901, 1427: 902, 1428: 903, 1429: 904, 1430: 905, 1431: 906, 1432: 907, 1433: 908, 1434: 909, 1438: 910, 1439: 911, 1440: 912, 1441: 913, 1442: 914, 1443: 915, 1444: 916, 1445: 917, 1446: 918, 1447: 919, 1448: 920, 1449: 921, 1450: 922, 1451: 923, 1452: 924, 1453: 925, 1454: 926, 1455: 927, 1459: 928, 1460: 929, 1461: 930, 1462: 931, 1463: 932, 1464: 933, 1468: 934, 1469: 935, 1470: 936, 1471: 937, 1472: 938, 1473: 939, 1477: 940, 1478: 941, 1479: 942, 1480: 943, 1481: 944, 1482: 945} [model_handling.py at line 1709]  +DEBUG: call =  vxxxxx( momenta,m_pars->%s, cHel[ihel][%d],%+d, w_sv[%d], %d ); [model_handling.py at line 1821]  +DEBUG: ('ZERO', 0, -1, 0, 0) [model_handling.py at line 1822]  +DEBUG: call =  vxxxxx( momenta,m_pars->%s, cHel[ihel][%d],%+d, w_sv[%d], %d ); [model_handling.py at line 1821]  +DEBUG: ('ZERO', 1, -1, 1, 1) [model_handling.py at line 1822]  +DEBUG: call =  vxxxxx( momenta,m_pars->%s, cHel[ihel][%d],%+d, w_sv[%d], %d ); [model_handling.py at line 1821]  +DEBUG: ('ZERO', 4, 1, 4, 4) [model_handling.py at line 1822]  +DEBUG: call =  vxxxxx( momenta,m_pars->%s, cHel[ihel][%d],%+d, w_sv[%d], %d ); [model_handling.py at line 1821]  +DEBUG: ('ZERO', 5, 1, 5, 5) [model_handling.py at line 1822]  +DEBUG: call =  vxxxxx( momenta,m_pars->%s, cHel[ihel][%d],%+d, w_sv[%d], %d ); [model_handling.py at line 1821]  +DEBUG: ('ZERO', 6, 1, 6, 6) [model_handling.py at line 1822]  INFO: Created files CPPProcess.h and CPPProcess.cc in directory ./. -DEBUG: Entering PLUGIN_OneProcessExporter.edit_CMakeLists [model_handling.py at line 1332]  -DEBUG: Entering PLUGIN_OneProcessExporter.edit_check_sa [model_handling.py at line 1341]  -DEBUG: Entering PLUGIN_OneProcessExporter.edit_mgonGPU [model_handling.py at line 1358]  -DEBUG: Entering PLUGIN_OneProcessExporter.edit_processidfile [model_handling.py at line 1378]  -DEBUG: Entering PLUGIN_OneProcessExporter.edit_coloramps [model_handling.py at line 1390]  -DEBUG: Entering PLUGIN_OneProcessExporter.edit_testxxx [model_handling.py at line 1408]  -DEBUG: Entering PLUGIN_OneProcessExporter.edit_memorybuffers [model_handling.py at line 1419]  -DEBUG: Entering PLUGIN_OneProcessExporter.edit_memoryaccesscouplings [model_handling.py at line 1430]  -DEBUG: 'Copying test reference file: ', template_ref =  Copying test reference file: /data/avalassi/GPU2023/MG5aMC/ghav-mg5amcnlo/PLUGIN/CUDACPP_SA_OUTPUT/madgraph/iolibs/template_files/../../../test/ref/dump_CPUTest.Sigma_sm_gg_ttxggg.txt [model_handling.py at line 1324]  +DEBUG: Entering PLUGIN_OneProcessExporter.edit_CMakeLists [model_handling.py at line 1343]  +DEBUG: Entering PLUGIN_OneProcessExporter.edit_check_sa [model_handling.py at line 1352]  +DEBUG: Entering PLUGIN_OneProcessExporter.edit_mgonGPU [model_handling.py at line 1369]  +DEBUG: Entering PLUGIN_OneProcessExporter.edit_processidfile [model_handling.py at line 1389]  +DEBUG: Entering PLUGIN_OneProcessExporter.edit_coloramps [model_handling.py at line 1401]  +DEBUG: Entering PLUGIN_OneProcessExporter.edit_testxxx [model_handling.py at line 1419]  +DEBUG: Entering PLUGIN_OneProcessExporter.edit_memorybuffers [model_handling.py at line 1430]  +DEBUG: Entering PLUGIN_OneProcessExporter.edit_memoryaccesscouplings [model_handling.py at line 1441]  +DEBUG: 'Copying test reference file: ', template_ref =  Copying test reference file: /data/avalassi/GPU2023/MG5aMC/ghav-mg5amcnlo/PLUGIN/CUDACPP_SA_OUTPUT/madgraph/iolibs/template_files/../../../test/ref/dump_CPUTest.Sigma_sm_gg_ttxggg.txt [model_handling.py at line 1335]  DEBUG: proc_id =  1 [export_cpp.py at line 710]  DEBUG: config_map =  [1, 2, 0, 3, 4, 0, 5, 6, 0, 0, 0, 0, 0, 7, 8, 9, 0, 10, 11, 12, 0, 13, 14, 15, 0, 16, 17, 18, 19, 20, 21, 0, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 0, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 0, 67, 68, 69, 70, 71, 72, 73, 74, 75, 0, 76, 77, 78, 79, 80, 81, 82, 83, 84, 0, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 0, 0, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 0, 121, 122, 0, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 0, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 0, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 0, 197, 198, 199, 200, 201, 202, 0, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 0, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 0, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 0, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 0, 302, 303, 304, 305, 306, 307, 0, 308, 309, 310, 311, 312, 313, 0, 314, 315, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 316, 317, 318, 319, 320, 321, 0, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 0, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 0, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 0, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 0, 378, 379, 0, 380, 381, 0, 0, 0, 0, 0, 382, 383, 384, 385, 386, 387, 388, 389, 390, 0, 391, 392, 393, 394, 395, 396, 397, 398, 399, 0, 400, 401, 402, 403, 404, 405, 406, 407, 408, 0, 409, 410, 411, 412, 413, 414, 0, 415, 416, 417, 418, 419, 420, 0, 0, 0, 421, 422, 423, 424, 425, 426, 0, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 0, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 0, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 0, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 0, 483, 484, 0, 485, 486, 0, 0, 0, 0, 0, 487, 488, 489, 490, 491, 492, 493, 494, 495, 0, 496, 497, 498, 499, 500, 501, 502, 503, 504, 0, 505, 506, 507, 508, 509, 510, 511, 512, 513, 0, 514, 515, 516, 517, 518, 519, 0, 520, 521, 522, 523, 524, 525, 0, 0, 0, 526, 527, 528, 529, 530, 531, 0, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 0, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 0, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 0, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 0, 588, 589, 0, 590, 591, 0, 0, 0, 0, 0, 592, 593, 594, 595, 596, 597, 598, 599, 600, 0, 601, 602, 603, 604, 605, 606, 607, 608, 609, 0, 610, 611, 612, 613, 614, 615, 616, 617, 618, 0, 619, 620, 621, 622, 623, 624, 0, 625, 626, 627, 628, 629, 630, 0, 0, 0, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 0, 664, 665, 666, 667, 668, 669, 0, 670, 671, 672, 673, 674, 675, 0, 0, 0, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 0, 709, 710, 711, 712, 713, 714, 0, 715, 716, 717, 718, 719, 720, 0, 0, 0, 721, 722, 0, 723, 724, 0, 725, 726, 0, 0, 0, 0, 0, 727, 728, 729, 730, 731, 732, 733, 734, 735, 0, 736, 737, 738, 739, 740, 741, 742, 743, 744, 0, 745, 746, 747, 748, 749, 750, 751, 752, 753, 0, 754, 755, 756, 757, 758, 759, 0, 760, 761, 762, 763, 764, 765, 766, 767, 0, 768, 769, 0, 770, 771, 0, 0, 0, 0, 0, 772, 773, 774, 775, 776, 777, 778, 779, 780, 0, 781, 782, 783, 784, 785, 786, 787, 788, 789, 0, 790, 791, 792, 793, 794, 795, 796, 797, 798, 0, 799, 800, 801, 802, 803, 804, 0, 805, 806, 807, 808, 809, 810, 811, 812, 0, 813, 814, 0, 815, 816, 0, 0, 0, 0, 0, 817, 818, 819, 820, 821, 822, 823, 824, 825, 0, 826, 827, 828, 829, 830, 831, 832, 833, 834, 0, 835, 836, 837, 838, 839, 840, 841, 842, 843, 0, 844, 845, 846, 847, 848, 849, 0, 850, 851, 852, 853, 854, 855, 856, 857, 0, 858, 859, 0, 860, 861, 0, 0, 0, 0, 862, 863, 0, 864, 865, 0, 866, 867, 0, 0, 0, 0, 868, 869, 0, 870, 871, 0, 872, 873, 0, 0, 0, 0, 0, 0, 0, 874, 875, 876, 877, 878, 879, 880, 881, 882, 883, 884, 885, 886, 887, 888, 889, 890, 891, 0, 892, 893, 894, 895, 896, 897, 898, 899, 900, 901, 902, 903, 904, 905, 906, 907, 908, 909, 0, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 0, 928, 929, 930, 931, 932, 933, 0, 934, 935, 936, 937, 938, 939, 0, 940, 941, 942, 943, 944, 945, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] [export_cpp.py at line 711]  DEBUG: subproc_number =  0 [export_cpp.py at line 712]  DEBUG: Done [export_cpp.py at line 713]  INFO: Generating Feynman diagrams for Process: g g > t t~ g g g WEIGHTED<=5 @1 INFO: Finding symmetric diagrams for subprocess group gg_ttxggg -Generated helas calls for 1 subprocesses (1240 diagrams) in 5.868 s -Wrote files for 2281 helas calls in 39.490 s +Generated helas calls for 1 subprocesses (1240 diagrams) in 5.832 s +Wrote files for 2281 helas calls in 39.711 s ALOHA: aloha starts to compute helicity amplitudes ALOHA: aloha creates VVV1 routines ALOHA: aloha creates FFV1 routines ALOHA: aloha creates VVVV1 routines ALOHA: aloha creates VVVV3 routines ALOHA: aloha creates VVVV4 routines -ALOHA: aloha creates 5 routines in 0.272 s +ALOHA: aloha creates 5 routines in 0.266 s DEBUG: Entering PLUGIN_ProcessExporter.convert_model (create the model) [output.py at line 194]  ALOHA: aloha starts to compute helicity amplitudes ALOHA: aloha creates VVV1 routines @@ -237,7 +237,7 @@ ALOHA: aloha creates FFV1 routines ALOHA: aloha creates VVVV1 routines ALOHA: aloha creates VVVV3 routines ALOHA: aloha creates VVVV4 routines -ALOHA: aloha creates 10 routines in 0.268 s +ALOHA: aloha creates 10 routines in 0.420 s VVV1 VVV1 FFV1 @@ -253,25 +253,13 @@ ALOHA: aloha creates 10 routines in 0.268 s FileWriter for /data/avalassi/GPU2023/MG5aMC/ghav-mg5amcnlo/CODEGEN_mad_gg_ttggg/src/./HelAmps_sm.h INFO: Created file HelAmps_sm.h in directory /data/avalassi/GPU2023/MG5aMC/ghav-mg5amcnlo/CODEGEN_mad_gg_ttggg/src/. super_write_set_parameters_onlyfixMajorana (hardcoded=False) -DEBUG: 'pardef_lines size =', len(pardef_lines), ', keys size =', len(pardef_lines.keys()) =  pardef_lines size = 48 , keys size = 48 [model_handling.py at line 724]  -DEBUG: 'parset_pars size =', len(parset_pars) =  parset_pars size = 48 [model_handling.py at line 740]  -DEBUG: 'parset_lines size =', len(parset_lines), ', keys size =', len(parset_lines.keys()) =  parset_lines size = 48 , keys size = 48 [model_handling.py at line 741]  +DEBUG: 'pardef_lines size =', len(pardef_lines), ', keys size =', len(pardef_lines.keys()) =  pardef_lines size = 48 , keys size = 48 [model_handling.py at line 729]  super_write_set_parameters_onlyfixMajorana (hardcoded=True) -DEBUG: 'pardef_lines size =', len(pardef_lines), ', keys size =', len(pardef_lines.keys()) =  pardef_lines size = 3 , keys size = 3 [model_handling.py at line 724]  -DEBUG: 'parset_pars size =', len(parset_pars) =  parset_pars size = 3 [model_handling.py at line 740]  -DEBUG: 'parset_lines size =', len(parset_lines), ', keys size =', len(parset_lines.keys()) =  parset_lines size = 3 , keys size = 3 [model_handling.py at line 741]  -DEBUG: 'pardef_lines size =', len(pardef_lines), ', keys size =', len(pardef_lines.keys()) =  pardef_lines size = 3 , keys size = 3 [model_handling.py at line 724]  -DEBUG: 'parset_pars size =', len(parset_pars) =  parset_pars size = 3 [model_handling.py at line 740]  -DEBUG: 'parset_lines size =', len(parset_lines), ', keys size =', len(parset_lines.keys()) =  parset_lines size = 3 , keys size = 3 [model_handling.py at line 741]  -DEBUG: 'pardef_lines size =', len(pardef_lines), ', keys size =', len(pardef_lines.keys()) =  pardef_lines size = 3 , keys size = 3 [model_handling.py at line 724]  -DEBUG: 'parset_pars size =', len(parset_pars) =  parset_pars size = 3 [model_handling.py at line 740]  -DEBUG: 'parset_lines size =', len(parset_lines), ', keys size =', len(parset_lines.keys()) =  parset_lines size = 3 , keys size = 3 [model_handling.py at line 741]  -DEBUG: 'pardef_lines size =', len(pardef_lines), ', keys size =', len(pardef_lines.keys()) =  pardef_lines size = 3 , keys size = 3 [model_handling.py at line 724]  -DEBUG: 'parset_pars size =', len(parset_pars) =  parset_pars size = 3 [model_handling.py at line 740]  -DEBUG: 'parset_lines size =', len(parset_lines), ', keys size =', len(parset_lines.keys()) =  parset_lines size = 3 , keys size = 3 [model_handling.py at line 741]  -DEBUG: 'pardef_lines size =', len(pardef_lines), ', keys size =', len(pardef_lines.keys()) =  pardef_lines size = 3 , keys size = 3 [model_handling.py at line 724]  -DEBUG: 'parset_pars size =', len(parset_pars) =  parset_pars size = 3 [model_handling.py at line 740]  -DEBUG: 'parset_lines size =', len(parset_lines), ', keys size =', len(parset_lines.keys()) =  parset_lines size = 3 , keys size = 3 [model_handling.py at line 741]  +DEBUG: 'pardef_lines size =', len(pardef_lines), ', keys size =', len(pardef_lines.keys()) =  pardef_lines size = 3 , keys size = 3 [model_handling.py at line 729]  +DEBUG: 'pardef_lines size =', len(pardef_lines), ', keys size =', len(pardef_lines.keys()) =  pardef_lines size = 3 , keys size = 3 [model_handling.py at line 729]  +DEBUG: 'pardef_lines size =', len(pardef_lines), ', keys size =', len(pardef_lines.keys()) =  pardef_lines size = 3 , keys size = 3 [model_handling.py at line 729]  +DEBUG: 'pardef_lines size =', len(pardef_lines), ', keys size =', len(pardef_lines.keys()) =  pardef_lines size = 3 , keys size = 3 [model_handling.py at line 729]  +DEBUG: 'pardef_lines size =', len(pardef_lines), ', keys size =', len(pardef_lines.keys()) =  pardef_lines size = 3 , keys size = 3 [model_handling.py at line 729]  FileWriter for /data/avalassi/GPU2023/MG5aMC/ghav-mg5amcnlo/CODEGEN_mad_gg_ttggg/src/./Parameters_sm.h FileWriter for /data/avalassi/GPU2023/MG5aMC/ghav-mg5amcnlo/CODEGEN_mad_gg_ttggg/src/./Parameters_sm.cc INFO: Created files Parameters_sm.h and Parameters_sm.cc in directory @@ -288,6 +276,6 @@ Type "launch" to generate events from this process, or see Run "open index.html" to see more information about this process. quit -real 0m49.958s -user 0m48.085s -sys 0m0.851s +real 0m49.506s +user 0m48.230s +sys 0m0.881s diff --git a/epochX/cudacpp/gg_ttggg.mad/SubProcesses/Bridge.h b/epochX/cudacpp/gg_ttggg.mad/SubProcesses/Bridge.h index 4cafe0c997..d7e629cacd 100644 --- a/epochX/cudacpp/gg_ttggg.mad/SubProcesses/Bridge.h +++ b/epochX/cudacpp/gg_ttggg.mad/SubProcesses/Bridge.h @@ -152,32 +152,32 @@ namespace mg5amcCpu #ifdef __CUDACC__ int m_gputhreads; // number of gpu threads (default set from number of events, can be modified) int m_gpublocks; // number of gpu blocks (default set from number of events, can be modified) - mg5amcGpu::DeviceBuffer m_devMomentaF; - mg5amcGpu::DeviceBufferMomenta m_devMomentaC; - mg5amcGpu::DeviceBufferGs m_devGs; - mg5amcGpu::DeviceBufferRndNumHelicity m_devRndHel; - mg5amcGpu::DeviceBufferRndNumColor m_devRndCol; - mg5amcGpu::DeviceBufferMatrixElements m_devMEs; - mg5amcGpu::DeviceBufferSelectedHelicity m_devSelHel; - mg5amcGpu::DeviceBufferSelectedColor m_devSelCol; - mg5amcGpu::PinnedHostBufferGs m_hstGs; - mg5amcGpu::PinnedHostBufferRndNumHelicity m_hstRndHel; - mg5amcGpu::PinnedHostBufferRndNumColor m_hstRndCol; - mg5amcGpu::PinnedHostBufferMatrixElements m_hstMEs; - mg5amcGpu::PinnedHostBufferSelectedHelicity m_hstSelHel; - mg5amcGpu::PinnedHostBufferSelectedColor m_hstSelCol; - std::unique_ptr m_pmek; + DeviceBuffer m_devMomentaF; + DeviceBufferMomenta m_devMomentaC; + DeviceBufferGs m_devGs; + DeviceBufferRndNumHelicity m_devRndHel; + DeviceBufferRndNumColor m_devRndCol; + DeviceBufferMatrixElements m_devMEs; + DeviceBufferSelectedHelicity m_devSelHel; + DeviceBufferSelectedColor m_devSelCol; + PinnedHostBufferGs m_hstGs; + PinnedHostBufferRndNumHelicity m_hstRndHel; + PinnedHostBufferRndNumColor m_hstRndCol; + PinnedHostBufferMatrixElements m_hstMEs; + PinnedHostBufferSelectedHelicity m_hstSelHel; + PinnedHostBufferSelectedColor m_hstSelCol; + std::unique_ptr m_pmek; //static constexpr int s_gputhreadsmin = 16; // minimum number of gpu threads (TEST VALUE FOR MADEVENT) static constexpr int s_gputhreadsmin = 32; // minimum number of gpu threads (DEFAULT) #else - mg5amcCpu::HostBufferMomenta m_hstMomentaC; - mg5amcCpu::HostBufferGs m_hstGs; - mg5amcCpu::HostBufferRndNumHelicity m_hstRndHel; - mg5amcCpu::HostBufferRndNumColor m_hstRndCol; - mg5amcCpu::HostBufferMatrixElements m_hstMEs; - mg5amcCpu::HostBufferSelectedHelicity m_hstSelHel; - mg5amcCpu::HostBufferSelectedColor m_hstSelCol; - std::unique_ptr m_pmek; + HostBufferMomenta m_hstMomentaC; + HostBufferGs m_hstGs; + HostBufferRndNumHelicity m_hstRndHel; + HostBufferRndNumColor m_hstRndCol; + HostBufferMatrixElements m_hstMEs; + HostBufferSelectedHelicity m_hstSelHel; + HostBufferSelectedColor m_hstSelCol; + std::unique_ptr m_pmek; #endif }; @@ -244,12 +244,12 @@ namespace mg5amcCpu } std::cout << "WARNING! Instantiate device Bridge (nevt=" << m_nevt << ", gpublocks=" << m_gpublocks << ", gputhreads=" << m_gputhreads << ", gpublocks*gputhreads=" << m_gpublocks * m_gputhreads << ")" << std::endl; - mg5amcGpu::CPPProcess process( /*verbose=*/false ); - m_pmek.reset( new mg5amcGpu::MatrixElementKernelDevice( m_devMomentaC, m_devGs, m_devRndHel, m_devRndCol, m_devMEs, m_devSelHel, m_devSelCol, m_gpublocks, m_gputhreads ) ); + CPPProcess process( /*verbose=*/false ); + m_pmek.reset( new MatrixElementKernelDevice( m_devMomentaC, m_devGs, m_devRndHel, m_devRndCol, m_devMEs, m_devSelHel, m_devSelCol, m_gpublocks, m_gputhreads ) ); #else std::cout << "WARNING! Instantiate host Bridge (nevt=" << m_nevt << ")" << std::endl; - mg5amcCpu::CPPProcess process( /*verbose=*/false ); - m_pmek.reset( new mg5amcCpu::MatrixElementKernelHost( m_hstMomentaC, m_hstGs, m_hstRndHel, m_hstRndCol, m_hstMEs, m_hstSelHel, m_hstSelCol, m_nevt ) ); + CPPProcess process( /*verbose=*/false ); + m_pmek.reset( new MatrixElementKernelHost( m_hstMomentaC, m_hstGs, m_hstRndHel, m_hstRndCol, m_hstMEs, m_hstSelHel, m_hstSelCol, m_nevt ) ); #endif // __CUDACC__ process.initProc( "../../Cards/param_card.dat" ); } diff --git a/epochX/cudacpp/gg_ttggg.mad/SubProcesses/BridgeKernels.cc b/epochX/cudacpp/gg_ttggg.mad/SubProcesses/BridgeKernels.cc index cef4cb3c71..d58066c9c1 100644 --- a/epochX/cudacpp/gg_ttggg.mad/SubProcesses/BridgeKernels.cc +++ b/epochX/cudacpp/gg_ttggg.mad/SubProcesses/BridgeKernels.cc @@ -9,9 +9,6 @@ #include -constexpr int np4 = CPPProcess::np4; // dimensions of 4-momenta (E,px,py,pz) -constexpr int npar = CPPProcess::npar; // #particles in total (external = initial + final): e.g. 4 for e+ e- -> mu+ mu- - //============================================================================ #ifdef __CUDACC__ @@ -20,6 +17,9 @@ namespace mg5amcGpu namespace mg5amcCpu #endif { + constexpr int np4 = CPPProcess::np4; // dimensions of 4-momenta (E,px,py,pz) + constexpr int npar = CPPProcess::npar; // #particles in total (external = initial + final): e.g. 4 for e+ e- -> mu+ mu- + //-------------------------------------------------------------------------- BridgeKernelBase::BridgeKernelBase( const BufferMomenta& momenta, // input: momenta diff --git a/epochX/cudacpp/gg_ttggg.mad/SubProcesses/MemoryAccessAmplitudes.h b/epochX/cudacpp/gg_ttggg.mad/SubProcesses/MemoryAccessAmplitudes.h index 68f6838b5c..573b3bbbc9 100644 --- a/epochX/cudacpp/gg_ttggg.mad/SubProcesses/MemoryAccessAmplitudes.h +++ b/epochX/cudacpp/gg_ttggg.mad/SubProcesses/MemoryAccessAmplitudes.h @@ -14,142 +14,151 @@ #define MGONGPU_TRIVIAL_AMPLITUDES 1 -//---------------------------------------------------------------------------- - -#ifndef MGONGPU_TRIVIAL_AMPLITUDES - -// A class describing the internal layout of memory buffers for amplitudes -// This implementation uses an AOSOA[npagA][nx2][neppA] where nevt=npagA*neppA -// [If many implementations are used, a suffix _AOSOAv1 should be appended to the class name] -class MemoryAccessAmplitudesBase //_AOSOAv1 +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { -public: - - // Number of Events Per Page in the amplitude AOSOA memory buffer layout - static constexpr int neppA = 1; // AOS (just a test...) + //---------------------------------------------------------------------------- -private: - - friend class MemoryAccessHelper; - friend class KernelAccessHelper; - friend class KernelAccessHelper; - - // The number of floating point components of a complex number - static constexpr int nx2 = mgOnGpu::nx2; - - //-------------------------------------------------------------------------- - // NB all KernelLaunchers assume that memory access can be decomposed as "accessField = decodeRecord( accessRecord )" - // (in other words: first locate the event record for a given event, then locate an element in that record) - //-------------------------------------------------------------------------- +#ifndef MGONGPU_TRIVIAL_AMPLITUDES - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] - static __host__ __device__ inline fptype* - ieventAccessRecord( fptype* buffer, - const int ievt ) + // A class describing the internal layout of memory buffers for amplitudes + // This implementation uses an AOSOA[npagA][nx2][neppA] where nevt=npagA*neppA + // [If many implementations are used, a suffix _AOSOAv1 should be appended to the class name] + class MemoryAccessAmplitudesBase //_AOSOAv1 { - const int ipagA = ievt / neppA; // #event "A-page" - const int ieppA = ievt % neppA; // #event in the current event A-page - constexpr int ix2 = 0; - return &( buffer[ipagA * nx2 * neppA + ix2 * neppA + ieppA] ); // AOSOA[ipagA][ix2][ieppA] - } - - //-------------------------------------------------------------------------- - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, Ts... args ) <===] - // [NB: expand variadic template "Ts... args" to "const int ix2" and rename "Field" as "Ix2"] - static __host__ __device__ inline fptype& - decodeRecord( fptype* buffer, - const int ix2 ) + public: + + // Number of Events Per Page in the amplitude AOSOA memory buffer layout + static constexpr int neppA = 1; // AOS (just a test...) + + private: + + friend class MemoryAccessHelper; + friend class KernelAccessHelper; + friend class KernelAccessHelper; + + // The number of floating point components of a complex number + static constexpr int nx2 = mgOnGpu::nx2; + + //-------------------------------------------------------------------------- + // NB all KernelLaunchers assume that memory access can be decomposed as "accessField = decodeRecord( accessRecord )" + // (in other words: first locate the event record for a given event, then locate an element in that record) + //-------------------------------------------------------------------------- + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] + static __host__ __device__ inline fptype* + ieventAccessRecord( fptype* buffer, + const int ievt ) + { + const int ipagA = ievt / neppA; // #event "A-page" + const int ieppA = ievt % neppA; // #event in the current event A-page + constexpr int ix2 = 0; + return &( buffer[ipagA * nx2 * neppA + ix2 * neppA + ieppA] ); // AOSOA[ipagA][ix2][ieppA] + } + + //-------------------------------------------------------------------------- + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, Ts... args ) <===] + // [NB: expand variadic template "Ts... args" to "const int ix2" and rename "Field" as "Ix2"] + static __host__ __device__ inline fptype& + decodeRecord( fptype* buffer, + const int ix2 ) + { + constexpr int ipagA = 0; + constexpr int ieppA = 0; + return buffer[ipagA * nx2 * neppA + ix2 * neppA + ieppA]; // AOSOA[ipagA][ix2][ieppA] + } + }; + + //---------------------------------------------------------------------------- + + // A class providing access to memory buffers for a given event, based on explicit event numbers + // Its methods use the MemoryAccessHelper templates - note the use of the template keyword in template function instantiations + class MemoryAccessAmplitudes : public MemoryAccessAmplitudesBase { - constexpr int ipagA = 0; - constexpr int ieppA = 0; - return buffer[ipagA * nx2 * neppA + ix2 * neppA + ieppA]; // AOSOA[ipagA][ix2][ieppA] - } -}; + public: -//---------------------------------------------------------------------------- + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] + static constexpr auto ieventAccessRecord = MemoryAccessHelper::ieventAccessRecord; -// A class providing access to memory buffers for a given event, based on explicit event numbers -// Its methods use the MemoryAccessHelper templates - note the use of the template keyword in template function instantiations -class MemoryAccessAmplitudes : public MemoryAccessAmplitudesBase -{ -public: - - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] - static constexpr auto ieventAccessRecord = MemoryAccessHelper::ieventAccessRecord; + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (const) ===> const fptype* ieventAccessRecordConst( const fptype* buffer, const int ievt ) <===] + static constexpr auto ieventAccessRecordConst = MemoryAccessHelper::ieventAccessRecordConst; - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (const) ===> const fptype* ieventAccessRecordConst( const fptype* buffer, const int ievt ) <===] - static constexpr auto ieventAccessRecordConst = MemoryAccessHelper::ieventAccessRecordConst; + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, const int ix2 ) <===] + static constexpr auto decodeRecordIx2 = MemoryAccessHelper::decodeRecord; - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, const int ix2 ) <===] - static constexpr auto decodeRecordIx2 = MemoryAccessHelper::decodeRecord; + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (const) ===> const fptype& decodeRecordConst( const fptype* buffer, const int ix2 ) <===] + static constexpr auto decodeRecordIx2Const = + MemoryAccessHelper::template decodeRecordConst; - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (const) ===> const fptype& decodeRecordConst( const fptype* buffer, const int ix2 ) <===] - static constexpr auto decodeRecordIx2Const = - MemoryAccessHelper::template decodeRecordConst; + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (non-const) ===> fptype& ieventAccessIx2( fptype* buffer, const ievt, const int ix2 ) <===] + static constexpr auto ieventAccessIx2 = + MemoryAccessHelper::template ieventAccessField; - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (non-const) ===> fptype& ieventAccessIx2( fptype* buffer, const ievt, const int ix2 ) <===] - static constexpr auto ieventAccessIx2 = - MemoryAccessHelper::template ieventAccessField; - - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (const) ===> const fptype& ieventAccessIx2Const( const fptype* buffer, const ievt, const int ix2 ) <===] - static constexpr auto ieventAccessIx2Const = - MemoryAccessHelper::template ieventAccessFieldConst; -}; + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (const) ===> const fptype& ieventAccessIx2Const( const fptype* buffer, const ievt, const int ix2 ) <===] + static constexpr auto ieventAccessIx2Const = + MemoryAccessHelper::template ieventAccessFieldConst; + }; #endif // #ifndef MGONGPU_TRIVIAL_AMPLITUDES -//---------------------------------------------------------------------------- + //---------------------------------------------------------------------------- -// A class providing access to memory buffers for a given event, based on implicit kernel rules -// Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations -template -class KernelAccessAmplitudes -{ -public: + // A class providing access to memory buffers for a given event, based on implicit kernel rules + // Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations + template + class KernelAccessAmplitudes + { + public: #ifndef MGONGPU_TRIVIAL_AMPLITUDES - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (non-const) ===> fptype& kernelAccessIx2( fptype* buffer, const int ix2 ) <===] - static constexpr auto kernelAccessIx2 = - KernelAccessHelper::template kernelAccessField; + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (non-const) ===> fptype& kernelAccessIx2( fptype* buffer, const int ix2 ) <===] + static constexpr auto kernelAccessIx2 = + KernelAccessHelper::template kernelAccessField; - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (const) ===> const fptype& kernelAccessIx2Const( const fptype* buffer, const int ix2 ) <===] - static constexpr auto kernelAccessIx2Const = - KernelAccessHelper::template kernelAccessFieldConst; + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (const) ===> const fptype& kernelAccessIx2Const( const fptype* buffer, const int ix2 ) <===] + static constexpr auto kernelAccessIx2Const = + KernelAccessHelper::template kernelAccessFieldConst; #else - static __host__ __device__ inline cxtype_sv* - kernelAccess( fptype* buffer ) - { - return reinterpret_cast( buffer ); - } + static __host__ __device__ inline cxtype_sv* + kernelAccess( fptype* buffer ) + { + return reinterpret_cast( buffer ); + } - static __host__ __device__ inline const cxtype_sv* - kernelAccessConst( const fptype* buffer ) - { - return reinterpret_cast( buffer ); - } + static __host__ __device__ inline const cxtype_sv* + kernelAccessConst( const fptype* buffer ) + { + return reinterpret_cast( buffer ); + } #endif // #ifndef MGONGPU_TRIVIAL_AMPLITUDES -}; + }; + + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- + typedef KernelAccessAmplitudes HostAccessAmplitudes; + typedef KernelAccessAmplitudes DeviceAccessAmplitudes; -typedef KernelAccessAmplitudes HostAccessAmplitudes; -typedef KernelAccessAmplitudes DeviceAccessAmplitudes; + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- +} // end namespace mg5amcGpu/mg5amcCpu #endif // MemoryAccessAmplitudes_H diff --git a/epochX/cudacpp/gg_ttggg.mad/SubProcesses/MemoryAccessCouplings.h b/epochX/cudacpp/gg_ttggg.mad/SubProcesses/MemoryAccessCouplings.h index 15793bbec3..35a3af42e0 100644 --- a/epochX/cudacpp/gg_ttggg.mad/SubProcesses/MemoryAccessCouplings.h +++ b/epochX/cudacpp/gg_ttggg.mad/SubProcesses/MemoryAccessCouplings.h @@ -14,248 +14,257 @@ #include "MemoryAccessMomenta.h" // for MemoryAccessMomentaBase::neppM #include "MemoryBuffers.h" // for HostBufferCouplings::isaligned -//---------------------------------------------------------------------------- - -// A class describing the internal layout of memory buffers for couplings -// This implementation uses an AOSOA[npagC][ndcoup][nx2][neppC] "super-buffer" where nevt=npagC*neppC -// From the "super-buffer" for ndcoup different couplings, use idcoupAccessBuffer to access the buffer for one specific coupling -// [If many implementations are used, a suffix _AOSOAv1 should be appended to the class name] -class MemoryAccessCouplingsBase //_AOSOAv1 +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { -public: - - // Number of Events Per Page in the coupling AOSOA memory buffer layout - static constexpr int neppC = MemoryAccessMomentaBase::neppM; // use the same AOSOA striding as for momenta - - // SANITY CHECK: check that neppC is a power of two - static_assert( ispoweroftwo( neppC ), "neppC is not a power of 2" ); - - //-------------------------------------------------------------------------- - // ** NB! A single super-buffer AOSOA[npagC][ndcoup][nx2][neppC] includes data for ndcoup different couplings ** - // ** NB! The ieventAccessRecord and kernelAccess functions refer to the buffer for one individual coupling ** - // ** NB! Use idcoupAccessBuffer to add a fixed offset and locate the buffer for one given individual coupling ** - //-------------------------------------------------------------------------- - - // Locate the buffer for a single coupling (output) in a memory super-buffer (input) from the given coupling index (input) - // [Signature (non-const) ===> fptype* idcoupAccessBuffer( fptype* buffer, const int idcoup ) <===] - // NB: keep this in public even if exposed through KernelAccessCouplings: nvcc says it is inaccesible otherwise? - static __host__ __device__ inline fptype* - idcoupAccessBuffer( fptype* buffer, // input "super-buffer" - const int idcoup ) - { - constexpr int ipagC = 0; - constexpr int ieppC = 0; - constexpr int ix2 = 0; - // NB! this effectively adds an offset "idcoup * nx2 * neppC" - return &( buffer[ipagC * ndcoup * nx2 * neppC + idcoup * nx2 * neppC + ix2 * neppC + ieppC] ); // AOSOA[ipagC][idcoup][ix2][ieppC] - } - - // Locate the buffer for a single coupling (output) in a memory super-buffer (input) from the given coupling index (input) - // [Signature (const) ===> const fptype* idcoupAccessBufferConst( const fptype* buffer, const int idcoup ) <===] - // NB: keep this in public even if exposed through KernelAccessCouplings: nvcc says it is inaccesible otherwise? - static __host__ __device__ inline const fptype* - idcoupAccessBufferConst( const fptype* buffer, // input "super-buffer" - const int idcoup ) - { - return idcoupAccessBuffer( const_cast( buffer ), idcoup ); - } - -private: + //---------------------------------------------------------------------------- - friend class MemoryAccessHelper; - friend class KernelAccessHelper; - friend class KernelAccessHelper; - - // The number of couplings that dependent on the running alphas QCD in this specific process - static constexpr size_t ndcoup = Parameters_sm_dependentCouplings::ndcoup; - - // The number of floating point components of a complex number - static constexpr int nx2 = mgOnGpu::nx2; - - //-------------------------------------------------------------------------- - // NB all KernelLaunchers assume that memory access can be decomposed as "accessField = decodeRecord( accessRecord )" - // (in other words: first locate the event record for a given event, then locate an element in that record) - //-------------------------------------------------------------------------- - - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] - static __host__ __device__ inline fptype* - ieventAccessRecord( fptype* buffer, - const int ievt ) + // A class describing the internal layout of memory buffers for couplings + // This implementation uses an AOSOA[npagC][ndcoup][nx2][neppC] "super-buffer" where nevt=npagC*neppC + // From the "super-buffer" for ndcoup different couplings, use idcoupAccessBuffer to access the buffer for one specific coupling + // [If many implementations are used, a suffix _AOSOAv1 should be appended to the class name] + class MemoryAccessCouplingsBase //_AOSOAv1 { - const int ipagC = ievt / neppC; // #event "C-page" - const int ieppC = ievt % neppC; // #event in the current event C-page - constexpr int idcoup = 0; - constexpr int ix2 = 0; - return &( buffer[ipagC * ndcoup * nx2 * neppC + idcoup * nx2 * neppC + ix2 * neppC + ieppC] ); // AOSOA[ipagC][idcoup][ix2][ieppC] - } - - //-------------------------------------------------------------------------- - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, Ts... args ) <===] - // [NB: expand variadic template "Ts... args" to "const int ix2" and rename "Field" as "Ix2"] - static __host__ __device__ inline fptype& - decodeRecord( fptype* buffer, - const int ix2 ) + public: + + // Number of Events Per Page in the coupling AOSOA memory buffer layout + static constexpr int neppC = MemoryAccessMomentaBase::neppM; // use the same AOSOA striding as for momenta + + // SANITY CHECK: check that neppC is a power of two + static_assert( ispoweroftwo( neppC ), "neppC is not a power of 2" ); + + //-------------------------------------------------------------------------- + // ** NB! A single super-buffer AOSOA[npagC][ndcoup][nx2][neppC] includes data for ndcoup different couplings ** + // ** NB! The ieventAccessRecord and kernelAccess functions refer to the buffer for one individual coupling ** + // ** NB! Use idcoupAccessBuffer to add a fixed offset and locate the buffer for one given individual coupling ** + //-------------------------------------------------------------------------- + + // Locate the buffer for a single coupling (output) in a memory super-buffer (input) from the given coupling index (input) + // [Signature (non-const) ===> fptype* idcoupAccessBuffer( fptype* buffer, const int idcoup ) <===] + // NB: keep this in public even if exposed through KernelAccessCouplings: nvcc says it is inaccesible otherwise? + static __host__ __device__ inline fptype* + idcoupAccessBuffer( fptype* buffer, // input "super-buffer" + const int idcoup ) + { + constexpr int ipagC = 0; + constexpr int ieppC = 0; + constexpr int ix2 = 0; + // NB! this effectively adds an offset "idcoup * nx2 * neppC" + return &( buffer[ipagC * ndcoup * nx2 * neppC + idcoup * nx2 * neppC + ix2 * neppC + ieppC] ); // AOSOA[ipagC][idcoup][ix2][ieppC] + } + + // Locate the buffer for a single coupling (output) in a memory super-buffer (input) from the given coupling index (input) + // [Signature (const) ===> const fptype* idcoupAccessBufferConst( const fptype* buffer, const int idcoup ) <===] + // NB: keep this in public even if exposed through KernelAccessCouplings: nvcc says it is inaccesible otherwise? + static __host__ __device__ inline const fptype* + idcoupAccessBufferConst( const fptype* buffer, // input "super-buffer" + const int idcoup ) + { + return idcoupAccessBuffer( const_cast( buffer ), idcoup ); + } + + private: + + friend class MemoryAccessHelper; + friend class KernelAccessHelper; + friend class KernelAccessHelper; + + // The number of couplings that dependent on the running alphas QCD in this specific process + static constexpr size_t ndcoup = Parameters_sm_dependentCouplings::ndcoup; + + // The number of floating point components of a complex number + static constexpr int nx2 = mgOnGpu::nx2; + + //-------------------------------------------------------------------------- + // NB all KernelLaunchers assume that memory access can be decomposed as "accessField = decodeRecord( accessRecord )" + // (in other words: first locate the event record for a given event, then locate an element in that record) + //-------------------------------------------------------------------------- + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] + static __host__ __device__ inline fptype* + ieventAccessRecord( fptype* buffer, + const int ievt ) + { + const int ipagC = ievt / neppC; // #event "C-page" + const int ieppC = ievt % neppC; // #event in the current event C-page + constexpr int idcoup = 0; + constexpr int ix2 = 0; + return &( buffer[ipagC * ndcoup * nx2 * neppC + idcoup * nx2 * neppC + ix2 * neppC + ieppC] ); // AOSOA[ipagC][idcoup][ix2][ieppC] + } + + //-------------------------------------------------------------------------- + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, Ts... args ) <===] + // [NB: expand variadic template "Ts... args" to "const int ix2" and rename "Field" as "Ix2"] + static __host__ __device__ inline fptype& + decodeRecord( fptype* buffer, + const int ix2 ) + { + constexpr int ipagC = 0; + constexpr int ieppC = 0; + // NB! the offset "idcoup * nx2 * neppC" has been added in idcoupAccessBuffer + constexpr int idcoup = 0; + return buffer[ipagC * ndcoup * nx2 * neppC + idcoup * nx2 * neppC + ix2 * neppC + ieppC]; // AOSOA[ipagC][idcoup][ix2][ieppC] + } + }; + + //---------------------------------------------------------------------------- + + // A class providing access to memory buffers for a given event, based on explicit event numbers + // Its methods use the MemoryAccessHelper templates - note the use of the template keyword in template function instantiations + class MemoryAccessCouplings : public MemoryAccessCouplingsBase { - constexpr int ipagC = 0; - constexpr int ieppC = 0; - // NB! the offset "idcoup * nx2 * neppC" has been added in idcoupAccessBuffer - constexpr int idcoup = 0; - return buffer[ipagC * ndcoup * nx2 * neppC + idcoup * nx2 * neppC + ix2 * neppC + ieppC]; // AOSOA[ipagC][idcoup][ix2][ieppC] - } -}; - -//---------------------------------------------------------------------------- - -// A class providing access to memory buffers for a given event, based on explicit event numbers -// Its methods use the MemoryAccessHelper templates - note the use of the template keyword in template function instantiations -class MemoryAccessCouplings : public MemoryAccessCouplingsBase -{ -public: - - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] - static constexpr auto ieventAccessRecord = MemoryAccessHelper::ieventAccessRecord; - - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (const) ===> const fptype* ieventAccessRecordConst( const fptype* buffer, const int ievt ) <===] - static constexpr auto ieventAccessRecordConst = MemoryAccessHelper::ieventAccessRecordConst; - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, const int ix2 ) <===] - static constexpr auto decodeRecordIx2 = MemoryAccessHelper::decodeRecord; - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (const) ===> const fptype& decodeRecordConst( const fptype* buffer, const int ix2 ) <===] - static constexpr auto decodeRecordIx2Const = - MemoryAccessHelper::template decodeRecordConst; - - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (non-const) ===> fptype& ieventAccessIx2( fptype* buffer, const ievt, const int ix2 ) <===] - static constexpr auto ieventAccessIx2 = - MemoryAccessHelper::template ieventAccessField; - - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (const) ===> const fptype& ieventAccessIx2Const( const fptype* buffer, const ievt, const int ix2 ) <===] - static constexpr auto ieventAccessIx2Const = - MemoryAccessHelper::template ieventAccessFieldConst; -}; - -//---------------------------------------------------------------------------- - -// A class providing access to memory buffers for a given event, based on implicit kernel rules -// Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations -template -class KernelAccessCouplings -{ -public: - - // Expose selected functions from MemoryAccessCouplingsBase - static constexpr auto idcoupAccessBuffer = MemoryAccessCouplingsBase::idcoupAccessBuffer; - static constexpr auto idcoupAccessBufferConst = MemoryAccessCouplingsBase::idcoupAccessBufferConst; - - // Expose selected functions from MemoryAccessCouplings - static constexpr auto ieventAccessRecordConst = MemoryAccessCouplings::ieventAccessRecordConst; - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (non-const, SCALAR) ===> fptype& kernelAccessIx2( fptype* buffer, const int ix2 ) <===] - static constexpr auto kernelAccessIx2_s = - KernelAccessHelper::template kernelAccessField; - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (const, SCALAR) ===> const fptype& kernelAccessIx2Const( const fptype* buffer, const int ix2 ) <===] - static constexpr auto kernelAccessIx2Const_s = - KernelAccessHelper::template kernelAccessFieldConst; - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (non const, SCALAR OR VECTOR) ===> fptype_sv& kernelAccessIx2( fptype* buffer, const int ix2 ) <===] - static __host__ __device__ inline fptype_sv& - kernelAccessIx2( fptype* buffer, - const int ix2 ) + public: + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] + static constexpr auto ieventAccessRecord = MemoryAccessHelper::ieventAccessRecord; + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (const) ===> const fptype* ieventAccessRecordConst( const fptype* buffer, const int ievt ) <===] + static constexpr auto ieventAccessRecordConst = MemoryAccessHelper::ieventAccessRecordConst; + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, const int ix2 ) <===] + static constexpr auto decodeRecordIx2 = MemoryAccessHelper::decodeRecord; + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (const) ===> const fptype& decodeRecordConst( const fptype* buffer, const int ix2 ) <===] + static constexpr auto decodeRecordIx2Const = + MemoryAccessHelper::template decodeRecordConst; + + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (non-const) ===> fptype& ieventAccessIx2( fptype* buffer, const ievt, const int ix2 ) <===] + static constexpr auto ieventAccessIx2 = + MemoryAccessHelper::template ieventAccessField; + + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (const) ===> const fptype& ieventAccessIx2Const( const fptype* buffer, const ievt, const int ix2 ) <===] + static constexpr auto ieventAccessIx2Const = + MemoryAccessHelper::template ieventAccessFieldConst; + }; + + //---------------------------------------------------------------------------- + + // A class providing access to memory buffers for a given event, based on implicit kernel rules + // Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations + template + class KernelAccessCouplings { - fptype& out = kernelAccessIx2_s( buffer, ix2 ); + public: + + // Expose selected functions from MemoryAccessCouplingsBase + static constexpr auto idcoupAccessBuffer = MemoryAccessCouplingsBase::idcoupAccessBuffer; + static constexpr auto idcoupAccessBufferConst = MemoryAccessCouplingsBase::idcoupAccessBufferConst; + + // Expose selected functions from MemoryAccessCouplings + static constexpr auto ieventAccessRecordConst = MemoryAccessCouplings::ieventAccessRecordConst; + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (non-const, SCALAR) ===> fptype& kernelAccessIx2( fptype* buffer, const int ix2 ) <===] + static constexpr auto kernelAccessIx2_s = + KernelAccessHelper::template kernelAccessField; + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (const, SCALAR) ===> const fptype& kernelAccessIx2Const( const fptype* buffer, const int ix2 ) <===] + static constexpr auto kernelAccessIx2Const_s = + KernelAccessHelper::template kernelAccessFieldConst; + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (non const, SCALAR OR VECTOR) ===> fptype_sv& kernelAccessIx2( fptype* buffer, const int ix2 ) <===] + static __host__ __device__ inline fptype_sv& + kernelAccessIx2( fptype* buffer, + const int ix2 ) + { + fptype& out = kernelAccessIx2_s( buffer, ix2 ); #ifndef MGONGPU_CPPSIMD - return out; + return out; #else - // NB: derived from MemoryAccessMomenta, restricting the implementation to contiguous aligned arrays - constexpr int neppC = MemoryAccessCouplingsBase::neppC; - static_assert( neppC >= neppV ); // ASSUME CONTIGUOUS ARRAYS - static_assert( neppC % neppV == 0 ); // ASSUME CONTIGUOUS ARRAYS - static_assert( mg5amcCpu::HostBufferCouplings::isaligned() ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) - //assert( (size_t)( buffer ) % mgOnGpu::cppAlign == 0 ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) - return mg5amcCpu::fptypevFromAlignedArray( out ); // SIMD bulk load of neppV, use reinterpret_cast + // NB: derived from MemoryAccessMomenta, restricting the implementation to contiguous aligned arrays + constexpr int neppC = MemoryAccessCouplingsBase::neppC; + static_assert( neppC >= neppV ); // ASSUME CONTIGUOUS ARRAYS + static_assert( neppC % neppV == 0 ); // ASSUME CONTIGUOUS ARRAYS + static_assert( mg5amcCpu::HostBufferCouplings::isaligned() ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) + //assert( (size_t)( buffer ) % mgOnGpu::cppAlign == 0 ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) + return mg5amcCpu::fptypevFromAlignedArray( out ); // SIMD bulk load of neppV, use reinterpret_cast #endif - } + } - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (const, SCALAR OR VECTOR) ===> const fptype_sv& kernelAccessIx2Const( const fptype* buffer, const int ix2 ) <===] - static __host__ __device__ inline const fptype_sv& - kernelAccessIx2Const( const fptype* buffer, - const int ix2 ) - { - return kernelAccessIx2( const_cast( buffer ), ix2 ); - } - - /* - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (const, SCALAR OR VECTOR) ===> const fptype_sv& kernelAccessIx2Const( const fptype* buffer, const int ix2 ) <===] - static __host__ __device__ inline const fptype_sv& - kernelAccessIx2Const( const fptype* buffer, - const int ix2 ) - { - const fptype& out = kernelAccessIx2Const_s( buffer, ix2 ); + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (const, SCALAR OR VECTOR) ===> const fptype_sv& kernelAccessIx2Const( const fptype* buffer, const int ix2 ) <===] + static __host__ __device__ inline const fptype_sv& + kernelAccessIx2Const( const fptype* buffer, + const int ix2 ) + { + return kernelAccessIx2( const_cast( buffer ), ix2 ); + } + + /* + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (const, SCALAR OR VECTOR) ===> const fptype_sv& kernelAccessIx2Const( const fptype* buffer, const int ix2 ) <===] + static __host__ __device__ inline const fptype_sv& + kernelAccessIx2Const( const fptype* buffer, + const int ix2 ) + { + const fptype& out = kernelAccessIx2Const_s( buffer, ix2 ); #ifndef MGONGPU_CPPSIMD - return out; + return out; #else - // NB: derived from MemoryAccessMomenta, restricting the implementation to contiguous aligned arrays - constexpr int neppC = MemoryAccessCouplingsBase::neppC; - static_assert( neppC >= neppV ); // ASSUME CONTIGUOUS ARRAYS - static_assert( neppC % neppV == 0 ); // ASSUME CONTIGUOUS ARRAYS - static_assert( mg5amcCpu::HostBufferCouplings::isaligned() ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) - //assert( (size_t)( buffer ) % mgOnGpu::cppAlign == 0 ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) - return mg5amcCpu::fptypevFromAlignedArray( out ); // SIMD bulk load of neppV, use reinterpret_cast + // NB: derived from MemoryAccessMomenta, restricting the implementation to contiguous aligned arrays + constexpr int neppC = MemoryAccessCouplingsBase::neppC; + static_assert( neppC >= neppV ); // ASSUME CONTIGUOUS ARRAYS + static_assert( neppC % neppV == 0 ); // ASSUME CONTIGUOUS ARRAYS + static_assert( mg5amcCpu::HostBufferCouplings::isaligned() ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) + //assert( (size_t)( buffer ) % mgOnGpu::cppAlign == 0 ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) + return mg5amcCpu::fptypevFromAlignedArray( out ); // SIMD bulk load of neppV, use reinterpret_cast #endif - } - */ - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (non const, SCALAR OR VECTOR) ===> cxtype_sv_ref kernelAccess( fptype* buffer ) <===] - static __host__ __device__ inline cxtype_sv_ref - kernelAccess( fptype* buffer ) - { - /* - fptype_sv& real = kernelAccessIx2( buffer, 0 ); - fptype_sv& imag = kernelAccessIx2( buffer, 1 ); - printf( "C_ACCESS::kernelAccess: pbuffer=%p pr=%p pi=%p\n", buffer, &real, &imag ); - return cxtype_sv_ref( real, imag ); - */ - return cxtype_sv_ref( kernelAccessIx2( buffer, 0 ), - kernelAccessIx2( buffer, 1 ) ); - } - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (const, SCALAR OR VECTOR) ===> cxtype_sv kernelAccessConst( const fptype* buffer ) <===] - static __host__ __device__ inline cxtype_sv - kernelAccessConst( const fptype* buffer ) - { - /* - const fptype_sv& real = kernelAccessIx2Const( buffer, 0 ); - const fptype_sv& imag = kernelAccessIx2Const( buffer, 1 ); - printf( "C_ACCESS::kernelAccessConst: pbuffer=%p pr=%p pi=%p\n", buffer, &real, &imag ); - return cxtype_sv( real, imag ); + } */ - return cxtype_sv( kernelAccessIx2Const( buffer, 0 ), - kernelAccessIx2Const( buffer, 1 ) ); - } -}; - -//---------------------------------------------------------------------------- - -typedef KernelAccessCouplings HostAccessCouplings; -typedef KernelAccessCouplings DeviceAccessCouplings; -//---------------------------------------------------------------------------- + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (non const, SCALAR OR VECTOR) ===> cxtype_sv_ref kernelAccess( fptype* buffer ) <===] + static __host__ __device__ inline cxtype_sv_ref + kernelAccess( fptype* buffer ) + { + /* + fptype_sv& real = kernelAccessIx2( buffer, 0 ); + fptype_sv& imag = kernelAccessIx2( buffer, 1 ); + printf( "C_ACCESS::kernelAccess: pbuffer=%p pr=%p pi=%p\n", buffer, &real, &imag ); + return cxtype_sv_ref( real, imag ); + */ + return cxtype_sv_ref( kernelAccessIx2( buffer, 0 ), + kernelAccessIx2( buffer, 1 ) ); + } + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (const, SCALAR OR VECTOR) ===> cxtype_sv kernelAccessConst( const fptype* buffer ) <===] + static __host__ __device__ inline cxtype_sv + kernelAccessConst( const fptype* buffer ) + { + /* + const fptype_sv& real = kernelAccessIx2Const( buffer, 0 ); + const fptype_sv& imag = kernelAccessIx2Const( buffer, 1 ); + printf( "C_ACCESS::kernelAccessConst: pbuffer=%p pr=%p pi=%p\n", buffer, &real, &imag ); + return cxtype_sv( real, imag ); + */ + return cxtype_sv( kernelAccessIx2Const( buffer, 0 ), + kernelAccessIx2Const( buffer, 1 ) ); + } + }; + + //---------------------------------------------------------------------------- + + typedef KernelAccessCouplings HostAccessCouplings; + typedef KernelAccessCouplings DeviceAccessCouplings; + + //---------------------------------------------------------------------------- + +} // end namespace mg5amcGpu/mg5amcCpu #endif // MemoryAccessCouplings_H diff --git a/epochX/cudacpp/gg_ttggg.mad/SubProcesses/MemoryAccessCouplingsFixed.h b/epochX/cudacpp/gg_ttggg.mad/SubProcesses/MemoryAccessCouplingsFixed.h index 81193ab261..dc0d93afff 100644 --- a/epochX/cudacpp/gg_ttggg.mad/SubProcesses/MemoryAccessCouplingsFixed.h +++ b/epochX/cudacpp/gg_ttggg.mad/SubProcesses/MemoryAccessCouplingsFixed.h @@ -13,63 +13,72 @@ //#include "MemoryAccessHelpers.h" -//---------------------------------------------------------------------------- - -// A class describing the internal layout of memory buffers for fixed couplings -// This implementation uses a STRUCT[ndcoup][nx2] "super-buffer" layout: in practice, the cIPC global array -// From the "super-buffer" for ndcoup different couplings, use idcoupAccessBuffer to access the buffer for one specific coupling -// [If many implementations are used, a suffix _Sv1 should be appended to the class name] -class MemoryAccessCouplingsFixedBase //_Sv1 +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { -public: + //---------------------------------------------------------------------------- - // Locate the buffer for a single coupling (output) in a memory super-buffer (input) from the given coupling index (input) - // [Signature (const) ===> const fptype* iicoupAccessBufferConst( const fptype* buffer, const int iicoup ) <===] - static __host__ __device__ inline const fptype* - iicoupAccessBufferConst( const fptype* buffer, // input "super-buffer": in practice, the cIPC global array - const int iicoup ) + // A class describing the internal layout of memory buffers for fixed couplings + // This implementation uses a STRUCT[ndcoup][nx2] "super-buffer" layout: in practice, the cIPC global array + // From the "super-buffer" for ndcoup different couplings, use idcoupAccessBuffer to access the buffer for one specific coupling + // [If many implementations are used, a suffix _Sv1 should be appended to the class name] + class MemoryAccessCouplingsFixedBase //_Sv1 { - constexpr int ix2 = 0; - // NB! this effectively adds an offset "iicoup * nx2" - return &( buffer[iicoup * nx2 + ix2] ); // STRUCT[idcoup][ix2] - } - -private: - - // The number of floating point components of a complex number - static constexpr int nx2 = mgOnGpu::nx2; -}; - -//---------------------------------------------------------------------------- + public: + + // Locate the buffer for a single coupling (output) in a memory super-buffer (input) from the given coupling index (input) + // [Signature (const) ===> const fptype* iicoupAccessBufferConst( const fptype* buffer, const int iicoup ) <===] + static __host__ __device__ inline const fptype* + iicoupAccessBufferConst( const fptype* buffer, // input "super-buffer": in practice, the cIPC global array + const int iicoup ) + { + constexpr int ix2 = 0; + // NB! this effectively adds an offset "iicoup * nx2" + return &( buffer[iicoup * nx2 + ix2] ); // STRUCT[idcoup][ix2] + } + + private: + + // The number of floating point components of a complex number + static constexpr int nx2 = mgOnGpu::nx2; + }; + + //---------------------------------------------------------------------------- + + // A class providing access to memory buffers for a given event, based on implicit kernel rules + // Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations + template + class KernelAccessCouplingsFixed + { + public: -// A class providing access to memory buffers for a given event, based on implicit kernel rules -// Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations -template -class KernelAccessCouplingsFixed -{ -public: + // Expose selected functions from MemoryAccessCouplingsFixedBase + static constexpr auto iicoupAccessBufferConst = MemoryAccessCouplingsFixedBase::iicoupAccessBufferConst; - // Expose selected functions from MemoryAccessCouplingsFixedBase - static constexpr auto iicoupAccessBufferConst = MemoryAccessCouplingsFixedBase::iicoupAccessBufferConst; + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (const, SCALAR OR VECTOR) ===> cxtype_sv kernelAccessConst( const fptype* buffer ) <===] + static __host__ __device__ inline const cxtype_sv + kernelAccessConst( const fptype* buffer ) + { + // TRIVIAL ACCESS to fixed-couplings buffers! + //return cxmake( fptype_sv{ buffer[0] }, fptype_sv{ buffer[1] } ); // NO! BUG #339! + const fptype_sv r_sv = fptype_sv{ 0 } + buffer[0]; + const fptype_sv i_sv = fptype_sv{ 0 } + buffer[1]; + return cxmake( r_sv, i_sv ); // ugly but effective + } + }; - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (const, SCALAR OR VECTOR) ===> cxtype_sv kernelAccessConst( const fptype* buffer ) <===] - static __host__ __device__ inline const cxtype_sv - kernelAccessConst( const fptype* buffer ) - { - // TRIVIAL ACCESS to fixed-couplings buffers! - //return cxmake( fptype_sv{ buffer[0] }, fptype_sv{ buffer[1] } ); // NO! BUG #339! - const fptype_sv r_sv = fptype_sv{ 0 } + buffer[0]; - const fptype_sv i_sv = fptype_sv{ 0 } + buffer[1]; - return cxmake( r_sv, i_sv ); // ugly but effective - } -}; + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- + typedef KernelAccessCouplingsFixed HostAccessCouplingsFixed; + typedef KernelAccessCouplingsFixed DeviceAccessCouplingsFixed; -typedef KernelAccessCouplingsFixed HostAccessCouplingsFixed; -typedef KernelAccessCouplingsFixed DeviceAccessCouplingsFixed; + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- +} // end namespace mg5amcGpu/mg5amcCpu #endif // MemoryAccessCouplingsFixed_H diff --git a/epochX/cudacpp/gg_ttggg.mad/SubProcesses/MemoryAccessDenominators.h b/epochX/cudacpp/gg_ttggg.mad/SubProcesses/MemoryAccessDenominators.h index e76ae65ff9..3bce635718 100644 --- a/epochX/cudacpp/gg_ttggg.mad/SubProcesses/MemoryAccessDenominators.h +++ b/epochX/cudacpp/gg_ttggg.mad/SubProcesses/MemoryAccessDenominators.h @@ -9,15 +9,24 @@ #include "MemoryAccessGs.h" -//---------------------------------------------------------------------------- +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif +{ + //---------------------------------------------------------------------------- + + // A class describing the internal layout of memory buffers for denominators + // This implementation reuses the plain ARRAY[nevt] implementation of MemoryAccessGs -// A class describing the internal layout of memory buffers for denominators -// This implementation reuses the plain ARRAY[nevt] implementation of MemoryAccessGs + typedef KernelAccessGs HostAccessDenominators; + typedef KernelAccessGs DeviceAccessDenominators; -typedef KernelAccessGs HostAccessDenominators; -typedef KernelAccessGs DeviceAccessDenominators; + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- +} // end namespace mg5amcGpu/mg5amcCpu #endif #endif // MemoryAccessDenominators_H diff --git a/epochX/cudacpp/gg_ttggg.mad/SubProcesses/MemoryAccessGs.h b/epochX/cudacpp/gg_ttggg.mad/SubProcesses/MemoryAccessGs.h index 8996c0554c..31311aa375 100644 --- a/epochX/cudacpp/gg_ttggg.mad/SubProcesses/MemoryAccessGs.h +++ b/epochX/cudacpp/gg_ttggg.mad/SubProcesses/MemoryAccessGs.h @@ -12,142 +12,151 @@ #include "MemoryAccessVectors.h" #include "MemoryBuffers.h" // for HostBufferMatrixElements::isaligned -//---------------------------------------------------------------------------- - -// A class describing the internal layout of memory buffers for Gs -// This implementation uses a plain ARRAY[nevt] -// [If many implementations are used, a suffix _ARRAYv1 should be appended to the class name] -class MemoryAccessGsBase //_ARRAYv1 +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { -private: - - friend class MemoryAccessHelper; - friend class KernelAccessHelper; - friend class KernelAccessHelper; - - //-------------------------------------------------------------------------- - // NB all KernelLaunchers assume that memory access can be decomposed as "accessField = decodeRecord( accessRecord )" - // (in other words: first locate the event record for a given event, then locate an element in that record) - //-------------------------------------------------------------------------- - - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] - static __host__ __device__ inline fptype* - ieventAccessRecord( fptype* buffer, - const int ievt ) - { - return &( buffer[ievt] ); // ARRAY[nevt] - } - - //-------------------------------------------------------------------------- + //---------------------------------------------------------------------------- - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, Ts... args ) <===] - // [NB: expand variadic template "Ts... args" to empty and rename "Field" as empty] - static __host__ __device__ inline fptype& - decodeRecord( fptype* buffer ) + // A class describing the internal layout of memory buffers for Gs + // This implementation uses a plain ARRAY[nevt] + // [If many implementations are used, a suffix _ARRAYv1 should be appended to the class name] + class MemoryAccessGsBase //_ARRAYv1 { - constexpr int ievt = 0; - return buffer[ievt]; // ARRAY[nevt] - } -}; - -//---------------------------------------------------------------------------- - -// A class providing access to memory buffers for a given event, based on explicit event numbers -// Its methods use the MemoryAccessHelper templates - note the use of the template keyword in template function instantiations -class MemoryAccessGs : public MemoryAccessGsBase -{ -public: - - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] - static constexpr auto ieventAccessRecord = MemoryAccessHelper::ieventAccessRecord; - - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (const) ===> const fptype* ieventAccessRecordConst( const fptype* buffer, const int ievt ) <===] - static constexpr auto ieventAccessRecordConst = MemoryAccessHelper::ieventAccessRecordConst; - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer ) <===] - static constexpr auto decodeRecord = MemoryAccessHelper::decodeRecord; - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (const) ===> const fptype& decodeRecordConst( const fptype* buffer ) <===] - static constexpr auto decodeRecordConst = - MemoryAccessHelper::template decodeRecordConst<>; - - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (non-const) ===> fptype& ieventAccess( fptype* buffer, const ievt ) <===] - static constexpr auto ieventAccess = - MemoryAccessHelper::template ieventAccessField<>; - - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (const) ===> const fptype& ieventAccessConst( const fptype* buffer, const ievt ) <===] - static constexpr auto ieventAccessConst = - MemoryAccessHelper::template ieventAccessFieldConst<>; -}; - -//---------------------------------------------------------------------------- - -// A class providing access to memory buffers for a given event, based on implicit kernel rules -// Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations -template -class KernelAccessGs -{ -public: - - // Expose selected functions from MemoryAccessGs - static constexpr auto ieventAccessRecord = MemoryAccessGs::ieventAccessRecord; - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (non-const, SCALAR) ===> fptype& kernelAccess( fptype* buffer ) <===] - static constexpr auto kernelAccess_s = - KernelAccessHelper::template kernelAccessField<>; // requires cuda 11.4 - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) - // [Signature (non-const, SCALAR OR VECTOR) ===> fptype_sv& kernelAccess( fptype* buffer ) <===] - static __host__ __device__ inline fptype_sv& - kernelAccess( fptype* buffer ) + private: + + friend class MemoryAccessHelper; + friend class KernelAccessHelper; + friend class KernelAccessHelper; + + //-------------------------------------------------------------------------- + // NB all KernelLaunchers assume that memory access can be decomposed as "accessField = decodeRecord( accessRecord )" + // (in other words: first locate the event record for a given event, then locate an element in that record) + //-------------------------------------------------------------------------- + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] + static __host__ __device__ inline fptype* + ieventAccessRecord( fptype* buffer, + const int ievt ) + { + return &( buffer[ievt] ); // ARRAY[nevt] + } + + //-------------------------------------------------------------------------- + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, Ts... args ) <===] + // [NB: expand variadic template "Ts... args" to empty and rename "Field" as empty] + static __host__ __device__ inline fptype& + decodeRecord( fptype* buffer ) + { + constexpr int ievt = 0; + return buffer[ievt]; // ARRAY[nevt] + } + }; + + //---------------------------------------------------------------------------- + + // A class providing access to memory buffers for a given event, based on explicit event numbers + // Its methods use the MemoryAccessHelper templates - note the use of the template keyword in template function instantiations + class MemoryAccessGs : public MemoryAccessGsBase + { + public: + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] + static constexpr auto ieventAccessRecord = MemoryAccessHelper::ieventAccessRecord; + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (const) ===> const fptype* ieventAccessRecordConst( const fptype* buffer, const int ievt ) <===] + static constexpr auto ieventAccessRecordConst = MemoryAccessHelper::ieventAccessRecordConst; + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer ) <===] + static constexpr auto decodeRecord = MemoryAccessHelper::decodeRecord; + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (const) ===> const fptype& decodeRecordConst( const fptype* buffer ) <===] + static constexpr auto decodeRecordConst = + MemoryAccessHelper::template decodeRecordConst<>; + + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (non-const) ===> fptype& ieventAccess( fptype* buffer, const ievt ) <===] + static constexpr auto ieventAccess = + MemoryAccessHelper::template ieventAccessField<>; + + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (const) ===> const fptype& ieventAccessConst( const fptype* buffer, const ievt ) <===] + static constexpr auto ieventAccessConst = + MemoryAccessHelper::template ieventAccessFieldConst<>; + }; + + //---------------------------------------------------------------------------- + + // A class providing access to memory buffers for a given event, based on implicit kernel rules + // Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations + template + class KernelAccessGs { - fptype& out = kernelAccess_s( buffer ); + public: + + // Expose selected functions from MemoryAccessGs + static constexpr auto ieventAccessRecord = MemoryAccessGs::ieventAccessRecord; + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (non-const, SCALAR) ===> fptype& kernelAccess( fptype* buffer ) <===] + static constexpr auto kernelAccess_s = + KernelAccessHelper::template kernelAccessField<>; // requires cuda 11.4 + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) + // [Signature (non-const, SCALAR OR VECTOR) ===> fptype_sv& kernelAccess( fptype* buffer ) <===] + static __host__ __device__ inline fptype_sv& + kernelAccess( fptype* buffer ) + { + fptype& out = kernelAccess_s( buffer ); #ifndef MGONGPU_CPPSIMD - return out; + return out; #else - // NB: derived from MemoryAccessMomenta, restricting the implementation to contiguous aligned arrays (#435) - static_assert( mg5amcCpu::HostBufferGs::isaligned() ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) - //assert( (size_t)( buffer ) % mgOnGpu::cppAlign == 0 ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) - return mg5amcCpu::fptypevFromAlignedArray( out ); // SIMD bulk load of neppV, use reinterpret_cast + // NB: derived from MemoryAccessMomenta, restricting the implementation to contiguous aligned arrays (#435) + static_assert( mg5amcCpu::HostBufferGs::isaligned() ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) + //assert( (size_t)( buffer ) % mgOnGpu::cppAlign == 0 ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) + return mg5amcCpu::fptypevFromAlignedArray( out ); // SIMD bulk load of neppV, use reinterpret_cast #endif - } - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (const, SCALAR) ===> const fptype& kernelAccessConst( const fptype* buffer ) <===] - static constexpr auto kernelAccessConst_s = - KernelAccessHelper::template kernelAccessFieldConst<>; // requires cuda 11.4 - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) - // [Signature (const, SCALAR OR VECTOR) ===> const fptype_sv& kernelAccess( const fptype* buffer ) <===] - static __host__ __device__ inline const fptype_sv& - kernelAccessConst( const fptype* buffer ) - { - const fptype& out = kernelAccessConst_s( buffer ); + } + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (const, SCALAR) ===> const fptype& kernelAccessConst( const fptype* buffer ) <===] + static constexpr auto kernelAccessConst_s = + KernelAccessHelper::template kernelAccessFieldConst<>; // requires cuda 11.4 + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) + // [Signature (const, SCALAR OR VECTOR) ===> const fptype_sv& kernelAccess( const fptype* buffer ) <===] + static __host__ __device__ inline const fptype_sv& + kernelAccessConst( const fptype* buffer ) + { + const fptype& out = kernelAccessConst_s( buffer ); #ifndef MGONGPU_CPPSIMD - return out; + return out; #else - // NB: derived from MemoryAccessMomenta, restricting the implementation to contiguous aligned arrays (#435) - static_assert( mg5amcCpu::HostBufferGs::isaligned() ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) - //assert( (size_t)( buffer ) % mgOnGpu::cppAlign == 0 ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) - return mg5amcCpu::fptypevFromAlignedArray( out ); // SIMD bulk load of neppV, use reinterpret_cast + // NB: derived from MemoryAccessMomenta, restricting the implementation to contiguous aligned arrays (#435) + static_assert( mg5amcCpu::HostBufferGs::isaligned() ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) + //assert( (size_t)( buffer ) % mgOnGpu::cppAlign == 0 ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) + return mg5amcCpu::fptypevFromAlignedArray( out ); // SIMD bulk load of neppV, use reinterpret_cast #endif - } -}; + } + }; + + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- + typedef KernelAccessGs HostAccessGs; + typedef KernelAccessGs DeviceAccessGs; -typedef KernelAccessGs HostAccessGs; -typedef KernelAccessGs DeviceAccessGs; + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- +} // end namespace mg5amcGpu/mg5amcCpu #endif // MemoryAccessGs_H diff --git a/epochX/cudacpp/gg_ttggg.mad/SubProcesses/MemoryAccessMatrixElements.h b/epochX/cudacpp/gg_ttggg.mad/SubProcesses/MemoryAccessMatrixElements.h index b2a82d9acf..f32e6fea5b 100644 --- a/epochX/cudacpp/gg_ttggg.mad/SubProcesses/MemoryAccessMatrixElements.h +++ b/epochX/cudacpp/gg_ttggg.mad/SubProcesses/MemoryAccessMatrixElements.h @@ -12,126 +12,135 @@ #include "MemoryAccessVectors.h" #include "MemoryBuffers.h" // for HostBufferMatrixElements::isaligned -//---------------------------------------------------------------------------- - -// A class describing the internal layout of memory buffers for matrix elements -// This implementation uses a plain ARRAY[nevt] -// [If many implementations are used, a suffix _ARRAYv1 should be appended to the class name] -class MemoryAccessMatrixElementsBase //_ARRAYv1 +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { -private: - - friend class MemoryAccessHelper; - friend class KernelAccessHelper; - friend class KernelAccessHelper; - - //-------------------------------------------------------------------------- - // NB all KernelLaunchers assume that memory access can be decomposed as "accessField = decodeRecord( accessRecord )" - // (in other words: first locate the event record for a given event, then locate an element in that record) - //-------------------------------------------------------------------------- - - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] - static __host__ __device__ inline fptype* - ieventAccessRecord( fptype* buffer, - const int ievt ) - { - return &( buffer[ievt] ); // ARRAY[nevt] - } + //---------------------------------------------------------------------------- - //-------------------------------------------------------------------------- - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, Ts... args ) <===] - // [NB: expand variadic template "Ts... args" to empty and rename "Field" as empty] - static __host__ __device__ inline fptype& - decodeRecord( fptype* buffer ) + // A class describing the internal layout of memory buffers for matrix elements + // This implementation uses a plain ARRAY[nevt] + // [If many implementations are used, a suffix _ARRAYv1 should be appended to the class name] + class MemoryAccessMatrixElementsBase //_ARRAYv1 { - constexpr int ievt = 0; - return buffer[ievt]; // ARRAY[nevt] - } -}; - -//---------------------------------------------------------------------------- - -// A class providing access to memory buffers for a given event, based on explicit event numbers -// Its methods use the MemoryAccessHelper templates - note the use of the template keyword in template function instantiations -class MemoryAccessMatrixElements : public MemoryAccessMatrixElementsBase -{ -public: - - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] - static constexpr auto ieventAccessRecord = MemoryAccessHelper::ieventAccessRecord; - - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (const) ===> const fptype* ieventAccessRecordConst( const fptype* buffer, const int ievt ) <===] - static constexpr auto ieventAccessRecordConst = MemoryAccessHelper::ieventAccessRecordConst; - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer ) <===] - static constexpr auto decodeRecord = MemoryAccessHelper::decodeRecord; - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (const) ===> const fptype& decodeRecordConst( const fptype* buffer ) <===] - static constexpr auto decodeRecordConst = - MemoryAccessHelper::template decodeRecordConst<>; - - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (non-const) ===> fptype& ieventAccess( fptype* buffer, const ievt ) <===] - static constexpr auto ieventAccess = - MemoryAccessHelper::template ieventAccessField<>; - - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (const) ===> const fptype& ieventAccessConst( const fptype* buffer, const ievt ) <===] - static constexpr auto ieventAccessConst = - MemoryAccessHelper::template ieventAccessFieldConst<>; -}; - -//---------------------------------------------------------------------------- - -// A class providing access to memory buffers for a given event, based on implicit kernel rules -// Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations -template -class KernelAccessMatrixElements -{ -public: - - // Expose selected functions from MemoryAccessMatrixElements - static constexpr auto ieventAccessRecord = MemoryAccessMatrixElements::ieventAccessRecord; - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (non-const, SCALAR) ===> fptype& kernelAccess_s( fptype* buffer ) <===] - static constexpr auto kernelAccess_s = - KernelAccessHelper::template kernelAccessField<>; // requires cuda 11.4 - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) - // [Signature (non const, SCALAR OR VECTOR) ===> fptype_sv& kernelAccess( const fptype* buffer ) <===] - static __host__ __device__ inline fptype_sv& - kernelAccess( fptype* buffer ) + private: + + friend class MemoryAccessHelper; + friend class KernelAccessHelper; + friend class KernelAccessHelper; + + //-------------------------------------------------------------------------- + // NB all KernelLaunchers assume that memory access can be decomposed as "accessField = decodeRecord( accessRecord )" + // (in other words: first locate the event record for a given event, then locate an element in that record) + //-------------------------------------------------------------------------- + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] + static __host__ __device__ inline fptype* + ieventAccessRecord( fptype* buffer, + const int ievt ) + { + return &( buffer[ievt] ); // ARRAY[nevt] + } + + //-------------------------------------------------------------------------- + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, Ts... args ) <===] + // [NB: expand variadic template "Ts... args" to empty and rename "Field" as empty] + static __host__ __device__ inline fptype& + decodeRecord( fptype* buffer ) + { + constexpr int ievt = 0; + return buffer[ievt]; // ARRAY[nevt] + } + }; + + //---------------------------------------------------------------------------- + + // A class providing access to memory buffers for a given event, based on explicit event numbers + // Its methods use the MemoryAccessHelper templates - note the use of the template keyword in template function instantiations + class MemoryAccessMatrixElements : public MemoryAccessMatrixElementsBase + { + public: + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] + static constexpr auto ieventAccessRecord = MemoryAccessHelper::ieventAccessRecord; + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (const) ===> const fptype* ieventAccessRecordConst( const fptype* buffer, const int ievt ) <===] + static constexpr auto ieventAccessRecordConst = MemoryAccessHelper::ieventAccessRecordConst; + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer ) <===] + static constexpr auto decodeRecord = MemoryAccessHelper::decodeRecord; + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (const) ===> const fptype& decodeRecordConst( const fptype* buffer ) <===] + static constexpr auto decodeRecordConst = + MemoryAccessHelper::template decodeRecordConst<>; + + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (non-const) ===> fptype& ieventAccess( fptype* buffer, const ievt ) <===] + static constexpr auto ieventAccess = + MemoryAccessHelper::template ieventAccessField<>; + + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (const) ===> const fptype& ieventAccessConst( const fptype* buffer, const ievt ) <===] + static constexpr auto ieventAccessConst = + MemoryAccessHelper::template ieventAccessFieldConst<>; + }; + + //---------------------------------------------------------------------------- + + // A class providing access to memory buffers for a given event, based on implicit kernel rules + // Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations + template + class KernelAccessMatrixElements { - fptype& out = kernelAccess_s( buffer ); + public: + + // Expose selected functions from MemoryAccessMatrixElements + static constexpr auto ieventAccessRecord = MemoryAccessMatrixElements::ieventAccessRecord; + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (non-const, SCALAR) ===> fptype& kernelAccess_s( fptype* buffer ) <===] + static constexpr auto kernelAccess_s = + KernelAccessHelper::template kernelAccessField<>; // requires cuda 11.4 + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) + // [Signature (non const, SCALAR OR VECTOR) ===> fptype_sv& kernelAccess( const fptype* buffer ) <===] + static __host__ __device__ inline fptype_sv& + kernelAccess( fptype* buffer ) + { + fptype& out = kernelAccess_s( buffer ); #ifndef MGONGPU_CPPSIMD - return out; + return out; #else - // NB: derived from MemoryAccessMomenta, restricting the implementation to contiguous aligned arrays (#435) - static_assert( mg5amcCpu::HostBufferMatrixElements::isaligned() ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) - //assert( (size_t)( buffer ) % mgOnGpu::cppAlign == 0 ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) - return mg5amcCpu::fptypevFromAlignedArray( out ); // SIMD bulk load of neppV, use reinterpret_cast + // NB: derived from MemoryAccessMomenta, restricting the implementation to contiguous aligned arrays (#435) + static_assert( mg5amcCpu::HostBufferMatrixElements::isaligned() ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) + //assert( (size_t)( buffer ) % mgOnGpu::cppAlign == 0 ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) + return mg5amcCpu::fptypevFromAlignedArray( out ); // SIMD bulk load of neppV, use reinterpret_cast #endif - } + } + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (const) ===> const fptype& kernelAccessConst( const fptype* buffer ) <===] + static constexpr auto kernelAccessConst = + KernelAccessHelper::template kernelAccessFieldConst<>; // requires cuda 11.4 + }; - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (const) ===> const fptype& kernelAccessConst( const fptype* buffer ) <===] - static constexpr auto kernelAccessConst = - KernelAccessHelper::template kernelAccessFieldConst<>; // requires cuda 11.4 -}; + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- + typedef KernelAccessMatrixElements HostAccessMatrixElements; + typedef KernelAccessMatrixElements DeviceAccessMatrixElements; -typedef KernelAccessMatrixElements HostAccessMatrixElements; -typedef KernelAccessMatrixElements DeviceAccessMatrixElements; + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- +} // end namespace mg5amcGpu/mg5amcCpu #endif // MemoryAccessMatrixElements_H diff --git a/epochX/cudacpp/gg_ttggg.mad/SubProcesses/MemoryAccessMomenta.h b/epochX/cudacpp/gg_ttggg.mad/SubProcesses/MemoryAccessMomenta.h index 0ac4faa3c7..29266de32c 100644 --- a/epochX/cudacpp/gg_ttggg.mad/SubProcesses/MemoryAccessMomenta.h +++ b/epochX/cudacpp/gg_ttggg.mad/SubProcesses/MemoryAccessMomenta.h @@ -12,261 +12,264 @@ #include "MemoryAccessHelpers.h" #include "MemoryAccessVectors.h" +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) #ifdef __CUDACC__ -using mg5amcGpu::CPPProcess; +namespace mg5amcGpu #else -using mg5amcCpu::CPPProcess; +namespace mg5amcCpu #endif - -//---------------------------------------------------------------------------- - -// A class describing the internal layout of memory buffers for momenta -// This implementation uses an AOSOA[npagM][npar][np4][neppM] where nevt=npagM*neppM -// [If many implementations are used, a suffix _AOSOAv1 should be appended to the class name] -class MemoryAccessMomentaBase //_AOSOAv1 { -public: + //---------------------------------------------------------------------------- + + // A class describing the internal layout of memory buffers for momenta + // This implementation uses an AOSOA[npagM][npar][np4][neppM] where nevt=npagM*neppM + // [If many implementations are used, a suffix _AOSOAv1 should be appended to the class name] + class MemoryAccessMomentaBase //_AOSOAv1 + { + public: - // Number of Events Per Page in the momenta AOSOA memory buffer layout - // (these are all best kept as a compile-time constants: see issue #23) + // Number of Events Per Page in the momenta AOSOA memory buffer layout + // (these are all best kept as a compile-time constants: see issue #23) #ifdef __CUDACC__ /* clang-format off */ - // ----------------------------------------------------------------------------------------------- - // --- GPUs: neppM is best set to a power of 2 times the number of fptype's in a 32-byte cacheline - // --- This is relevant to ensure coalesced access to momenta in global memory - // --- Note that neppR is hardcoded and may differ from neppM and neppV on some platforms - // ----------------------------------------------------------------------------------------------- - //static constexpr int neppM = 64/sizeof(fptype); // 2x 32-byte GPU cache lines (512 bits): 8 (DOUBLE) or 16 (FLOAT) - static constexpr int neppM = 32/sizeof(fptype); // (DEFAULT) 32-byte GPU cache line (256 bits): 4 (DOUBLE) or 8 (FLOAT) - //static constexpr int neppM = 1; // *** NB: this is equivalent to AOS *** (slower: 1.03E9 instead of 1.11E9 in eemumu) + // ----------------------------------------------------------------------------------------------- + // --- GPUs: neppM is best set to a power of 2 times the number of fptype's in a 32-byte cacheline + // --- This is relevant to ensure coalesced access to momenta in global memory + // --- Note that neppR is hardcoded and may differ from neppM and neppV on some platforms + // ----------------------------------------------------------------------------------------------- + //static constexpr int neppM = 64/sizeof(fptype); // 2x 32-byte GPU cache lines (512 bits): 8 (DOUBLE) or 16 (FLOAT) + static constexpr int neppM = 32/sizeof(fptype); // (DEFAULT) 32-byte GPU cache line (256 bits): 4 (DOUBLE) or 8 (FLOAT) + //static constexpr int neppM = 1; // *** NB: this is equivalent to AOS *** (slower: 1.03E9 instead of 1.11E9 in eemumu) #else - // ----------------------------------------------------------------------------------------------- - // --- CPUs: neppM is best set equal to the number of fptype's (neppV) in a vector register - // --- This is relevant to ensure faster access to momenta from C++ memory cache lines - // --- However, neppM is now decoupled from neppV (issue #176) and can be separately hardcoded - // --- In practice, neppR, neppM and neppV could now (in principle) all be different - // ----------------------------------------------------------------------------------------------- + // ----------------------------------------------------------------------------------------------- + // --- CPUs: neppM is best set equal to the number of fptype's (neppV) in a vector register + // --- This is relevant to ensure faster access to momenta from C++ memory cache lines + // --- However, neppM is now decoupled from neppV (issue #176) and can be separately hardcoded + // --- In practice, neppR, neppM and neppV could now (in principle) all be different + // ----------------------------------------------------------------------------------------------- #ifdef MGONGPU_CPPSIMD - static constexpr int neppM = MGONGPU_CPPSIMD; // (DEFAULT) neppM=neppV for optimal performance - //static constexpr int neppM = 64/sizeof(fptype); // maximum CPU vector width (512 bits): 8 (DOUBLE) or 16 (FLOAT) - //static constexpr int neppM = 32/sizeof(fptype); // lower CPU vector width (256 bits): 4 (DOUBLE) or 8 (FLOAT) - //static constexpr int neppM = 1; // *** NB: this is equivalent to AOS *** (slower: 4.66E6 instead of 5.09E9 in eemumu) - //static constexpr int neppM = MGONGPU_CPPSIMD*2; // FOR TESTS + static constexpr int neppM = MGONGPU_CPPSIMD; // (DEFAULT) neppM=neppV for optimal performance + //static constexpr int neppM = 64/sizeof(fptype); // maximum CPU vector width (512 bits): 8 (DOUBLE) or 16 (FLOAT) + //static constexpr int neppM = 32/sizeof(fptype); // lower CPU vector width (256 bits): 4 (DOUBLE) or 8 (FLOAT) + //static constexpr int neppM = 1; // *** NB: this is equivalent to AOS *** (slower: 4.66E6 instead of 5.09E9 in eemumu) + //static constexpr int neppM = MGONGPU_CPPSIMD*2; // FOR TESTS #else - static constexpr int neppM = 1; // (DEFAULT) neppM=neppV for optimal performance (NB: this is equivalent to AOS) + static constexpr int neppM = 1; // (DEFAULT) neppM=neppV for optimal performance (NB: this is equivalent to AOS) #endif #endif /* clang-format on */ - // SANITY CHECK: check that neppM is a power of two - static_assert( ispoweroftwo( neppM ), "neppM is not a power of 2" ); + // SANITY CHECK: check that neppM is a power of two + static_assert( ispoweroftwo( neppM ), "neppM is not a power of 2" ); -private: + private: - friend class MemoryAccessHelper; - friend class KernelAccessHelper; - friend class KernelAccessHelper; + friend class MemoryAccessHelper; + friend class KernelAccessHelper; + friend class KernelAccessHelper; - // The number of components of a 4-momentum - static constexpr int np4 = CPPProcess::np4; + // The number of components of a 4-momentum + static constexpr int np4 = CPPProcess::np4; - // The number of particles in this physics process - static constexpr int npar = CPPProcess::npar; + // The number of particles in this physics process + static constexpr int npar = CPPProcess::npar; - //-------------------------------------------------------------------------- - // NB all KernelLaunchers assume that memory access can be decomposed as "accessField = decodeRecord( accessRecord )" - // (in other words: first locate the event record for a given event, then locate an element in that record) - //-------------------------------------------------------------------------- + //-------------------------------------------------------------------------- + // NB all KernelLaunchers assume that memory access can be decomposed as "accessField = decodeRecord( accessRecord )" + // (in other words: first locate the event record for a given event, then locate an element in that record) + //-------------------------------------------------------------------------- - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] - static __host__ __device__ inline fptype* - ieventAccessRecord( fptype* buffer, - const int ievt ) - { - const int ipagM = ievt / neppM; // #event "M-page" - const int ieppM = ievt % neppM; // #event in the current event M-page - constexpr int ip4 = 0; - constexpr int ipar = 0; - return &( buffer[ipagM * npar * np4 * neppM + ipar * np4 * neppM + ip4 * neppM + ieppM] ); // AOSOA[ipagM][ipar][ip4][ieppM] - } - - //-------------------------------------------------------------------------- - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, Ts... args ) <===] - // [NB: expand variadic template "Ts... args" to "const int ip4, const int ipar" and rename "Field" as "Ip4Ipar"] - static __host__ __device__ inline fptype& - decodeRecord( fptype* buffer, - const int ip4, - const int ipar ) + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] + static __host__ __device__ inline fptype* + ieventAccessRecord( fptype* buffer, + const int ievt ) + { + const int ipagM = ievt / neppM; // #event "M-page" + const int ieppM = ievt % neppM; // #event in the current event M-page + constexpr int ip4 = 0; + constexpr int ipar = 0; + return &( buffer[ipagM * npar * np4 * neppM + ipar * np4 * neppM + ip4 * neppM + ieppM] ); // AOSOA[ipagM][ipar][ip4][ieppM] + } + + //-------------------------------------------------------------------------- + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, Ts... args ) <===] + // [NB: expand variadic template "Ts... args" to "const int ip4, const int ipar" and rename "Field" as "Ip4Ipar"] + static __host__ __device__ inline fptype& + decodeRecord( fptype* buffer, + const int ip4, + const int ipar ) + { + constexpr int ipagM = 0; + constexpr int ieppM = 0; + return buffer[ipagM * npar * np4 * neppM + ipar * np4 * neppM + ip4 * neppM + ieppM]; // AOSOA[ipagM][ipar][ip4][ieppM] + } + }; + + //---------------------------------------------------------------------------- + + // A class providing access to memory buffers for a given event, based on explicit event numbers + // Its methods use the MemoryAccessHelper templates - note the use of the template keyword in template function instantiations + class MemoryAccessMomenta : public MemoryAccessMomentaBase { - constexpr int ipagM = 0; - constexpr int ieppM = 0; - return buffer[ipagM * npar * np4 * neppM + ipar * np4 * neppM + ip4 * neppM + ieppM]; // AOSOA[ipagM][ipar][ip4][ieppM] - } -}; + public: + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] + static constexpr auto ieventAccessRecord = MemoryAccessHelper::ieventAccessRecord; + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (const) ===> const fptype* ieventAccessRecordConst( const fptype* buffer, const int ievt ) <===] + static constexpr auto ieventAccessRecordConst = MemoryAccessHelper::ieventAccessRecordConst; + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, const int ipar, const int ipar ) <===] + static constexpr auto decodeRecordIp4Ipar = MemoryAccessHelper::decodeRecord; + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (const) ===> const fptype& decodeRecordConst( const fptype* buffer, const int ipar, const int ipar ) <===] + static constexpr auto decodeRecordIp4IparConst = + MemoryAccessHelper::template decodeRecordConst; + + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (non-const) ===> fptype& ieventAccessIp4Ipar( fptype* buffer, const ievt, const int ipar, const int ipar ) <===] + static constexpr auto ieventAccessIp4Ipar = + MemoryAccessHelper::template ieventAccessField; + + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (const) ===> const fptype& ieventAccessIp4IparConst( const fptype* buffer, const ievt, const int ipar, const int ipar ) <===] + // DEFAULT VERSION + static constexpr auto ieventAccessIp4IparConst = + MemoryAccessHelper::template ieventAccessFieldConst; + + /* + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (const) ===> const fptype& ieventAccessIp4IparConst( const fptype* buffer, const ievt, const int ipar, const int ipar ) <===] + // DEBUG VERSION WITH PRINTOUTS + static __host__ __device__ inline const fptype& + ieventAccessIp4IparConst( const fptype* buffer, + const int ievt, + const int ip4, + const int ipar ) + { + const fptype& out = MemoryAccessHelper::template ieventAccessFieldConst( buffer, ievt, ip4, ipar ); + printf( "ipar=%2d ip4=%2d ievt=%8d out=%8.3f\n", ipar, ip4, ievt, out ); + return out; + } + */ + }; -//---------------------------------------------------------------------------- + //---------------------------------------------------------------------------- -// A class providing access to memory buffers for a given event, based on explicit event numbers -// Its methods use the MemoryAccessHelper templates - note the use of the template keyword in template function instantiations -class MemoryAccessMomenta : public MemoryAccessMomentaBase -{ -public: - - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] - static constexpr auto ieventAccessRecord = MemoryAccessHelper::ieventAccessRecord; - - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (const) ===> const fptype* ieventAccessRecordConst( const fptype* buffer, const int ievt ) <===] - static constexpr auto ieventAccessRecordConst = MemoryAccessHelper::ieventAccessRecordConst; - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, const int ipar, const int ipar ) <===] - static constexpr auto decodeRecordIp4Ipar = MemoryAccessHelper::decodeRecord; - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (const) ===> const fptype& decodeRecordConst( const fptype* buffer, const int ipar, const int ipar ) <===] - static constexpr auto decodeRecordIp4IparConst = - MemoryAccessHelper::template decodeRecordConst; - - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (non-const) ===> fptype& ieventAccessIp4Ipar( fptype* buffer, const ievt, const int ipar, const int ipar ) <===] - static constexpr auto ieventAccessIp4Ipar = - MemoryAccessHelper::template ieventAccessField; - - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (const) ===> const fptype& ieventAccessIp4IparConst( const fptype* buffer, const ievt, const int ipar, const int ipar ) <===] - // DEFAULT VERSION - static constexpr auto ieventAccessIp4IparConst = - MemoryAccessHelper::template ieventAccessFieldConst; - - /* - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (const) ===> const fptype& ieventAccessIp4IparConst( const fptype* buffer, const ievt, const int ipar, const int ipar ) <===] - // DEBUG VERSION WITH PRINTOUTS - static __host__ __device__ inline const fptype& - ieventAccessIp4IparConst( const fptype* buffer, - const int ievt, - const int ip4, - const int ipar ) + // A class providing access to memory buffers for a given event, based on implicit kernel rules + // Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations + template + class KernelAccessMomenta { - const fptype& out = MemoryAccessHelper::template ieventAccessFieldConst( buffer, ievt, ip4, ipar ); - printf( "ipar=%2d ip4=%2d ievt=%8d out=%8.3f\n", ipar, ip4, ievt, out ); - return out; - } - */ -}; - -//---------------------------------------------------------------------------- - -// A class providing access to memory buffers for a given event, based on implicit kernel rules -// Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations -template -class KernelAccessMomenta -{ -public: - - // Expose selected functions from MemoryAccessMomenta - static constexpr auto ieventAccessRecordConst = MemoryAccessMomenta::ieventAccessRecordConst; - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (non-const, SCALAR) ===> fptype& kernelAccessIp4Ipar( fptype* buffer, const int ipar, const int ipar ) <===] - static constexpr auto kernelAccessIp4Ipar = - KernelAccessHelper::template kernelAccessField; - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (const, SCALAR) ===> const fptype& kernelAccessIp4IparConst( const fptype* buffer, const int ipar, const int ipar ) <===] - // DEFAULT VERSION - static constexpr auto kernelAccessIp4IparConst_s = - KernelAccessHelper::template kernelAccessFieldConst; - - /* - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (const, SCALAR) ===> const fptype& kernelAccessIp4IparConst( const fptype* buffer, const int ipar, const int ipar ) <===] - // DEBUG VERSION WITH PRINTOUTS - static __host__ __device__ inline const fptype& - kernelAccessIp4IparConst_s( const fptype* buffer, + public: + + // Expose selected functions from MemoryAccessMomenta + static constexpr auto ieventAccessRecordConst = MemoryAccessMomenta::ieventAccessRecordConst; + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (non-const, SCALAR) ===> fptype& kernelAccessIp4Ipar( fptype* buffer, const int ipar, const int ipar ) <===] + static constexpr auto kernelAccessIp4Ipar = + KernelAccessHelper::template kernelAccessField; + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (const, SCALAR) ===> const fptype& kernelAccessIp4IparConst( const fptype* buffer, const int ipar, const int ipar ) <===] + // DEFAULT VERSION + static constexpr auto kernelAccessIp4IparConst_s = + KernelAccessHelper::template kernelAccessFieldConst; + + /* + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (const, SCALAR) ===> const fptype& kernelAccessIp4IparConst( const fptype* buffer, const int ipar, const int ipar ) <===] + // DEBUG VERSION WITH PRINTOUTS + static __host__ __device__ inline const fptype& + kernelAccessIp4IparConst_s( const fptype* buffer, + const int ip4, + const int ipar ) + { + const fptype& out = KernelAccessHelper::template kernelAccessFieldConst( buffer, ip4, ipar ); + printf( "ipar=%2d ip4=%2d ievt='kernel' out=%8.3f\n", ipar, ip4, out ); + return out; + } + */ + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (const, SCALAR OR VECTOR) ===> fptype_sv kernelAccessIp4IparConst( const fptype* buffer, const int ipar, const int ipar ) <===] + // FIXME? Eventually return by const reference and support aligned arrays only? + // FIXME? Currently return by value to support also unaligned and arbitrary arrays + static __host__ __device__ inline fptype_sv + kernelAccessIp4IparConst( const fptype* buffer, const int ip4, const int ipar ) - { - const fptype& out = KernelAccessHelper::template kernelAccessFieldConst( buffer, ip4, ipar ); - printf( "ipar=%2d ip4=%2d ievt='kernel' out=%8.3f\n", ipar, ip4, out ); - return out; - } - */ - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (const, SCALAR OR VECTOR) ===> fptype_sv kernelAccessIp4IparConst( const fptype* buffer, const int ipar, const int ipar ) <===] - // FIXME? Eventually return by const reference and support aligned arrays only? - // FIXME? Currently return by value to support also unaligned and arbitrary arrays - static __host__ __device__ inline fptype_sv - kernelAccessIp4IparConst( const fptype* buffer, - const int ip4, - const int ipar ) - { - const fptype& out = kernelAccessIp4IparConst_s( buffer, ip4, ipar ); + { + const fptype& out = kernelAccessIp4IparConst_s( buffer, ip4, ipar ); #ifndef MGONGPU_CPPSIMD - return out; + return out; #else - constexpr int neppM = MemoryAccessMomentaBase::neppM; - constexpr bool useContiguousEventsIfPossible = true; // DEFAULT - //constexpr bool useContiguousEventsIfPossible = false; // FOR PERFORMANCE TESTS (treat as arbitrary array even if it is an AOSOA) - // Use c++17 "if constexpr": compile-time branching - if constexpr( useContiguousEventsIfPossible && ( neppM >= neppV ) && ( neppM % neppV == 0 ) ) - { - //constexpr bool skipAlignmentCheck = true; // FASTEST (SEGFAULTS IF MISALIGNED ACCESS, NEEDS A SANITY CHECK ELSEWHERE!) - constexpr bool skipAlignmentCheck = false; // DEFAULT: A BIT SLOWER BUT SAFER [ALLOWS MISALIGNED ACCESS] - if constexpr( skipAlignmentCheck ) - { - //static bool first=true; if( first ){ std::cout << "WARNING! assume aligned AOSOA, skip check" << std::endl; first=false; } // SLOWER (5.06E6) - // FASTEST? (5.09E6 in eemumu 512y) - // This assumes alignment for momenta1d without checking - causes segmentation fault in reinterpret_cast if not aligned! - return mg5amcCpu::fptypevFromAlignedArray( out ); // use reinterpret_cast - } - else if( (size_t)( buffer ) % mgOnGpu::cppAlign == 0 ) + constexpr int neppM = MemoryAccessMomentaBase::neppM; + constexpr bool useContiguousEventsIfPossible = true; // DEFAULT + //constexpr bool useContiguousEventsIfPossible = false; // FOR PERFORMANCE TESTS (treat as arbitrary array even if it is an AOSOA) + // Use c++17 "if constexpr": compile-time branching + if constexpr( useContiguousEventsIfPossible && ( neppM >= neppV ) && ( neppM % neppV == 0 ) ) { - //static bool first=true; if( first ){ std::cout << "WARNING! aligned AOSOA, reinterpret cast" << std::endl; first=false; } // SLOWER (5.00E6) - // DEFAULT! A tiny bit (<1%) slower because of the alignment check (5.07E6 in eemumu 512y) - // This explicitly checks buffer alignment to avoid segmentation faults in reinterpret_cast - return mg5amcCpu::fptypevFromAlignedArray( out ); // SIMD bulk load of neppV, use reinterpret_cast + //constexpr bool skipAlignmentCheck = true; // FASTEST (SEGFAULTS IF MISALIGNED ACCESS, NEEDS A SANITY CHECK ELSEWHERE!) + constexpr bool skipAlignmentCheck = false; // DEFAULT: A BIT SLOWER BUT SAFER [ALLOWS MISALIGNED ACCESS] + if constexpr( skipAlignmentCheck ) + { + //static bool first=true; if( first ){ std::cout << "WARNING! assume aligned AOSOA, skip check" << std::endl; first=false; } // SLOWER (5.06E6) + // FASTEST? (5.09E6 in eemumu 512y) + // This assumes alignment for momenta1d without checking - causes segmentation fault in reinterpret_cast if not aligned! + return mg5amcCpu::fptypevFromAlignedArray( out ); // use reinterpret_cast + } + else if( (size_t)( buffer ) % mgOnGpu::cppAlign == 0 ) + { + //static bool first=true; if( first ){ std::cout << "WARNING! aligned AOSOA, reinterpret cast" << std::endl; first=false; } // SLOWER (5.00E6) + // DEFAULT! A tiny bit (<1%) slower because of the alignment check (5.07E6 in eemumu 512y) + // This explicitly checks buffer alignment to avoid segmentation faults in reinterpret_cast + return mg5amcCpu::fptypevFromAlignedArray( out ); // SIMD bulk load of neppV, use reinterpret_cast + } + else + { + //static bool first=true; if( first ){ std::cout << "WARNING! AOSOA but no reinterpret cast" << std::endl; first=false; } // SLOWER (4.93E6) + // A bit (1%) slower (5.05E6 in eemumu 512y) + // This does not require buffer alignment, but it requires AOSOA with neppM>=neppV and neppM%neppV==0 + return mg5amcCpu::fptypevFromUnalignedArray( out ); // SIMD bulk load of neppV, do not use reinterpret_cast (fewer SIMD operations) + } } else { - //static bool first=true; if( first ){ std::cout << "WARNING! AOSOA but no reinterpret cast" << std::endl; first=false; } // SLOWER (4.93E6) - // A bit (1%) slower (5.05E6 in eemumu 512y) - // This does not require buffer alignment, but it requires AOSOA with neppM>=neppV and neppM%neppV==0 - return mg5amcCpu::fptypevFromUnalignedArray( out ); // SIMD bulk load of neppV, do not use reinterpret_cast (fewer SIMD operations) + //static bool first=true; if( first ){ std::cout << "WARNING! arbitrary array" << std::endl; first=false; } // SLOWER (5.08E6) + // ?!Used to be much slower, now a tiny bit faster for AOSOA?! (5.11E6 for AOSOA, 4.64E6 for AOS in eemumu 512y) + // This does not even require AOSOA with neppM>=neppV and neppM%neppV==0 (e.g. can be used with AOS neppM==1) + constexpr int ievt0 = 0; // just make it explicit in the code that buffer refers to a given ievt0 and decoderIeppV fetches event ievt0+ieppV + auto decoderIeppv = [buffer, ip4, ipar]( int ieppV ) + -> const fptype& + { return MemoryAccessMomenta::ieventAccessIp4IparConst( buffer, ievt0 + ieppV, ip4, ipar ); }; + return mg5amcCpu::fptypevFromArbitraryArray( decoderIeppv ); // iterate over ieppV in neppV (no SIMD) } +#endif } - else + + // Is this a HostAccess or DeviceAccess class? + // [this is only needed for a warning printout in rambo.h for nparf==1 #358] + static __host__ __device__ inline constexpr bool + isOnDevice() { - //static bool first=true; if( first ){ std::cout << "WARNING! arbitrary array" << std::endl; first=false; } // SLOWER (5.08E6) - // ?!Used to be much slower, now a tiny bit faster for AOSOA?! (5.11E6 for AOSOA, 4.64E6 for AOS in eemumu 512y) - // This does not even require AOSOA with neppM>=neppV and neppM%neppV==0 (e.g. can be used with AOS neppM==1) - constexpr int ievt0 = 0; // just make it explicit in the code that buffer refers to a given ievt0 and decoderIeppV fetches event ievt0+ieppV - auto decoderIeppv = [buffer, ip4, ipar]( int ieppV ) - -> const fptype& - { return MemoryAccessMomenta::ieventAccessIp4IparConst( buffer, ievt0 + ieppV, ip4, ipar ); }; - return mg5amcCpu::fptypevFromArbitraryArray( decoderIeppv ); // iterate over ieppV in neppV (no SIMD) + return onDevice; } -#endif - } + }; - // Is this a HostAccess or DeviceAccess class? - // [this is only needed for a warning printout in rambo.h for nparf==1 #358] - static __host__ __device__ inline constexpr bool - isOnDevice() - { - return onDevice; - } -}; + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- + typedef KernelAccessMomenta HostAccessMomenta; + typedef KernelAccessMomenta DeviceAccessMomenta; -typedef KernelAccessMomenta HostAccessMomenta; -typedef KernelAccessMomenta DeviceAccessMomenta; + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- +} // end namespace mg5amcGpu/mg5amcCpu #endif // MemoryAccessMomenta_H diff --git a/epochX/cudacpp/gg_ttggg.mad/SubProcesses/MemoryAccessNumerators.h b/epochX/cudacpp/gg_ttggg.mad/SubProcesses/MemoryAccessNumerators.h index b373fd6048..b152183b28 100644 --- a/epochX/cudacpp/gg_ttggg.mad/SubProcesses/MemoryAccessNumerators.h +++ b/epochX/cudacpp/gg_ttggg.mad/SubProcesses/MemoryAccessNumerators.h @@ -9,15 +9,24 @@ #include "MemoryAccessGs.h" -//---------------------------------------------------------------------------- +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif +{ + //---------------------------------------------------------------------------- + + // A class describing the internal layout of memory buffers for numerators + // This implementation reuses the plain ARRAY[nevt] implementation of MemoryAccessGs -// A class describing the internal layout of memory buffers for numerators -// This implementation reuses the plain ARRAY[nevt] implementation of MemoryAccessGs + typedef KernelAccessGs HostAccessNumerators; + typedef KernelAccessGs DeviceAccessNumerators; -typedef KernelAccessGs HostAccessNumerators; -typedef KernelAccessGs DeviceAccessNumerators; + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- +} // end namespace mg5amcGpu/mg5amcCpu #endif #endif // MemoryAccessNumerators_H diff --git a/epochX/cudacpp/gg_ttggg.mad/SubProcesses/MemoryAccessWavefunctions.h b/epochX/cudacpp/gg_ttggg.mad/SubProcesses/MemoryAccessWavefunctions.h index f42f0d34ed..5428aaf933 100644 --- a/epochX/cudacpp/gg_ttggg.mad/SubProcesses/MemoryAccessWavefunctions.h +++ b/epochX/cudacpp/gg_ttggg.mad/SubProcesses/MemoryAccessWavefunctions.h @@ -14,147 +14,156 @@ #define MGONGPU_TRIVIAL_WAVEFUNCTIONS 1 -//---------------------------------------------------------------------------- - -#ifndef MGONGPU_TRIVIAL_WAVEFUNCTIONS - -// A class describing the internal layout of memory buffers for wavefunctions -// This implementation uses an AOSOA[npagW][nw6][nx2][neppW] where nevt=npagW*neppW -// [If many implementations are used, a suffix _AOSOAv1 should be appended to the class name] -class MemoryAccessWavefunctionsBase //_AOSOAv1 +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { -public: - - // Number of Events Per Page in the wavefunction AOSOA memory buffer layout - static constexpr int neppW = 1; // AOS (just a test...) - -private: - - friend class MemoryAccessHelper; - friend class KernelAccessHelper; - friend class KernelAccessHelper; - - // The number of components of a (fermion or vector) wavefunction - static constexpr int nw6 = mgOnGpu::nw6; - - // The number of floating point components of a complex number - static constexpr int nx2 = mgOnGpu::nx2; + //---------------------------------------------------------------------------- - //-------------------------------------------------------------------------- - // NB all KernelLaunchers assume that memory access can be decomposed as "accessField = decodeRecord( accessRecord )" - // (in other words: first locate the event record for a given event, then locate an element in that record) - //-------------------------------------------------------------------------- +#ifndef MGONGPU_TRIVIAL_WAVEFUNCTIONS - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] - static __host__ __device__ inline fptype* - ieventAccessRecord( fptype* buffer, - const int ievt ) + // A class describing the internal layout of memory buffers for wavefunctions + // This implementation uses an AOSOA[npagW][nw6][nx2][neppW] where nevt=npagW*neppW + // [If many implementations are used, a suffix _AOSOAv1 should be appended to the class name] + class MemoryAccessWavefunctionsBase //_AOSOAv1 { - const int ipagW = ievt / neppW; // #event "W-page" - const int ieppW = ievt % neppW; // #event in the current event W-page - constexpr int iw6 = 0; - constexpr int ix2 = 0; - return &( buffer[ipagW * nw6 * nx2 * neppW + iw6 * nx2 * neppW + ix2 * neppW + ieppW] ); // AOSOA[ipagW][iw6][ix2][ieppW] - } - - //-------------------------------------------------------------------------- - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, Ts... args ) <===] - // [NB: expand variadic template "Ts... args" to "const int iw6, const int ix2" and rename "Field" as "Iw6Ix2"] - static __host__ __device__ inline fptype& - decodeRecord( fptype* buffer, - const int iw6, - const int ix2 ) + public: + + // Number of Events Per Page in the wavefunction AOSOA memory buffer layout + static constexpr int neppW = 1; // AOS (just a test...) + + private: + + friend class MemoryAccessHelper; + friend class KernelAccessHelper; + friend class KernelAccessHelper; + + // The number of components of a (fermion or vector) wavefunction + static constexpr int nw6 = mgOnGpu::nw6; + + // The number of floating point components of a complex number + static constexpr int nx2 = mgOnGpu::nx2; + + //-------------------------------------------------------------------------- + // NB all KernelLaunchers assume that memory access can be decomposed as "accessField = decodeRecord( accessRecord )" + // (in other words: first locate the event record for a given event, then locate an element in that record) + //-------------------------------------------------------------------------- + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] + static __host__ __device__ inline fptype* + ieventAccessRecord( fptype* buffer, + const int ievt ) + { + const int ipagW = ievt / neppW; // #event "W-page" + const int ieppW = ievt % neppW; // #event in the current event W-page + constexpr int iw6 = 0; + constexpr int ix2 = 0; + return &( buffer[ipagW * nw6 * nx2 * neppW + iw6 * nx2 * neppW + ix2 * neppW + ieppW] ); // AOSOA[ipagW][iw6][ix2][ieppW] + } + + //-------------------------------------------------------------------------- + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, Ts... args ) <===] + // [NB: expand variadic template "Ts... args" to "const int iw6, const int ix2" and rename "Field" as "Iw6Ix2"] + static __host__ __device__ inline fptype& + decodeRecord( fptype* buffer, + const int iw6, + const int ix2 ) + { + constexpr int ipagW = 0; + constexpr int ieppW = 0; + return buffer[ipagW * nw6 * nx2 * neppW + iw6 * nx2 * neppW + ix2 * neppW + ieppW]; // AOSOA[ipagW][iw6][ix2][ieppW] + } + }; + + //---------------------------------------------------------------------------- + + // A class providing access to memory buffers for a given event, based on explicit event numbers + // Its methods use the MemoryAccessHelper templates - note the use of the template keyword in template function instantiations + class MemoryAccessWavefunctions : public MemoryAccessWavefunctionsBase { - constexpr int ipagW = 0; - constexpr int ieppW = 0; - return buffer[ipagW * nw6 * nx2 * neppW + iw6 * nx2 * neppW + ix2 * neppW + ieppW]; // AOSOA[ipagW][iw6][ix2][ieppW] - } -}; - -//---------------------------------------------------------------------------- + public: -// A class providing access to memory buffers for a given event, based on explicit event numbers -// Its methods use the MemoryAccessHelper templates - note the use of the template keyword in template function instantiations -class MemoryAccessWavefunctions : public MemoryAccessWavefunctionsBase -{ -public: + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] + static constexpr auto ieventAccessRecord = MemoryAccessHelper::ieventAccessRecord; - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] - static constexpr auto ieventAccessRecord = MemoryAccessHelper::ieventAccessRecord; + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (const) ===> const fptype* ieventAccessRecordConst( const fptype* buffer, const int ievt ) <===] + static constexpr auto ieventAccessRecordConst = MemoryAccessHelper::ieventAccessRecordConst; - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (const) ===> const fptype* ieventAccessRecordConst( const fptype* buffer, const int ievt ) <===] - static constexpr auto ieventAccessRecordConst = MemoryAccessHelper::ieventAccessRecordConst; + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, const int iw6, const int ix2 ) <===] + static constexpr auto decodeRecordIw6Ix2 = MemoryAccessHelper::decodeRecord; - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, const int iw6, const int ix2 ) <===] - static constexpr auto decodeRecordIw6Ix2 = MemoryAccessHelper::decodeRecord; + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (const) ===> const fptype& decodeRecordConst( const fptype* buffer, const int iw6, const int ix2 ) <===] + static constexpr auto decodeRecordIw6Ix2Const = + MemoryAccessHelper::template decodeRecordConst; - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (const) ===> const fptype& decodeRecordConst( const fptype* buffer, const int iw6, const int ix2 ) <===] - static constexpr auto decodeRecordIw6Ix2Const = - MemoryAccessHelper::template decodeRecordConst; + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (non-const) ===> fptype& ieventAccessIw6Ix2( fptype* buffer, const ievt, const int iw6, const int ix2 ) <===] + static constexpr auto ieventAccessIw6Ix2 = + MemoryAccessHelper::template ieventAccessField; - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (non-const) ===> fptype& ieventAccessIw6Ix2( fptype* buffer, const ievt, const int iw6, const int ix2 ) <===] - static constexpr auto ieventAccessIw6Ix2 = - MemoryAccessHelper::template ieventAccessField; - - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (const) ===> const fptype& ieventAccessIw6Ix2Const( const fptype* buffer, const ievt, const int iw6, const int ix2 ) <===] - static constexpr auto ieventAccessIw6Ix2Const = - MemoryAccessHelper::template ieventAccessFieldConst; -}; + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (const) ===> const fptype& ieventAccessIw6Ix2Const( const fptype* buffer, const ievt, const int iw6, const int ix2 ) <===] + static constexpr auto ieventAccessIw6Ix2Const = + MemoryAccessHelper::template ieventAccessFieldConst; + }; #endif // #ifndef MGONGPU_TRIVIAL_WAVEFUNCTIONS -//---------------------------------------------------------------------------- + //---------------------------------------------------------------------------- -// A class providing access to memory buffers for a given event, based on implicit kernel rules -// Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations -template -class KernelAccessWavefunctions -{ -public: + // A class providing access to memory buffers for a given event, based on implicit kernel rules + // Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations + template + class KernelAccessWavefunctions + { + public: #ifndef MGONGPU_TRIVIAL_WAVEFUNCTIONS - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (non-const) ===> fptype& kernelAccessIw6Ix2( fptype* buffer, const int iw6, const int ix2 ) <===] - static constexpr auto kernelAccessIw6Ix2 = - KernelAccessHelper::template kernelAccessField; + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (non-const) ===> fptype& kernelAccessIw6Ix2( fptype* buffer, const int iw6, const int ix2 ) <===] + static constexpr auto kernelAccessIw6Ix2 = + KernelAccessHelper::template kernelAccessField; - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (const) ===> const fptype& kernelAccessIw6Ix2Const( const fptype* buffer, const int iw6, const int ix2 ) <===] - static constexpr auto kernelAccessIw6Ix2Const = - KernelAccessHelper::template kernelAccessFieldConst; + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (const) ===> const fptype& kernelAccessIw6Ix2Const( const fptype* buffer, const int iw6, const int ix2 ) <===] + static constexpr auto kernelAccessIw6Ix2Const = + KernelAccessHelper::template kernelAccessFieldConst; #else - static __host__ __device__ inline cxtype_sv* - kernelAccess( fptype* buffer ) - { - return reinterpret_cast( buffer ); - } + static __host__ __device__ inline cxtype_sv* + kernelAccess( fptype* buffer ) + { + return reinterpret_cast( buffer ); + } - static __host__ __device__ inline const cxtype_sv* - kernelAccessConst( const fptype* buffer ) - { - return reinterpret_cast( buffer ); - } + static __host__ __device__ inline const cxtype_sv* + kernelAccessConst( const fptype* buffer ) + { + return reinterpret_cast( buffer ); + } #endif // #ifndef MGONGPU_TRIVIAL_WAVEFUNCTIONS -}; + }; + + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- + typedef KernelAccessWavefunctions HostAccessWavefunctions; + typedef KernelAccessWavefunctions DeviceAccessWavefunctions; -typedef KernelAccessWavefunctions HostAccessWavefunctions; -typedef KernelAccessWavefunctions DeviceAccessWavefunctions; + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- +} // end namespace mg5amcGpu/mg5amcCpu #endif // MemoryAccessWavefunctions_H diff --git a/epochX/cudacpp/gg_ttggg.mad/SubProcesses/cudacpp.mk b/epochX/cudacpp/gg_ttggg.mad/SubProcesses/cudacpp.mk index a0397e9ecc..c2f7b8e0f6 100644 --- a/epochX/cudacpp/gg_ttggg.mad/SubProcesses/cudacpp.mk +++ b/epochX/cudacpp/gg_ttggg.mad/SubProcesses/cudacpp.mk @@ -76,7 +76,7 @@ endif CXXFLAGS = $(OPTFLAGS) -std=c++17 $(INCFLAGS) -Wall -Wshadow -Wextra ifeq ($(shell $(CXX) --version | grep ^nvc++),) -CXXFLAGS+= -ffast-math # see issue #117 +CXXFLAGS += -ffast-math # see issue #117 endif ###CXXFLAGS+= -Ofast # performance is not different from --fast-math ###CXXFLAGS+= -g # FOR DEBUGGING ONLY @@ -122,7 +122,7 @@ ifneq ($(wildcard $(CUDA_HOME)/bin/nvcc),) CUINC = -I$(CUDA_HOME)/include/ CURANDLIBFLAGS = -L$(CUDA_HOME)/lib64/ -lcurand # NB: -lcuda is not needed here! CUOPTFLAGS = -lineinfo - CUFLAGS = $(OPTFLAGS) $(CUOPTFLAGS) $(INCFLAGS) $(CUINC) $(USE_NVTX) $(CUARCHFLAGS) -use_fast_math + CUFLAGS = $(foreach opt, $(OPTFLAGS), -Xcompiler $(opt)) $(CUOPTFLAGS) $(INCFLAGS) $(CUINC) $(USE_NVTX) $(CUARCHFLAGS) -use_fast_math ###CUFLAGS += -Xcompiler -Wall -Xcompiler -Wextra -Xcompiler -Wshadow ###NVCC_VERSION = $(shell $(NVCC) --version | grep 'Cuda compilation tools' | cut -d' ' -f5 | cut -d, -f1) CUFLAGS += -std=c++17 # need CUDA >= 11.2 (see #333): this is enforced in mgOnGpuConfig.h @@ -142,6 +142,8 @@ else override CUINC= override CURANDLIBFLAGS= endif +export NVCC +export CUFLAGS # Set the host C++ compiler for nvcc via "-ccbin " # (NB issue #505: this must be a single word, "clang++ --gcc-toolchain..." is not supported) @@ -439,7 +441,7 @@ endif # Target (and build options): debug MAKEDEBUG= -debug: OPTFLAGS = -g -O0 -DDEBUG2 +debug: OPTFLAGS = -g -O0 debug: CUOPTFLAGS = -G debug: MAKEDEBUG := debug debug: all.$(TAG) @@ -468,9 +470,9 @@ $(BUILDDIR)/%.o : %.cc *.h ../../src/*.h $(BUILDDIR)/.build.$(TAG) @if [ ! -d $(BUILDDIR) ]; then echo "mkdir -p $(BUILDDIR)"; mkdir -p $(BUILDDIR); fi $(CXX) $(CPPFLAGS) $(CXXFLAGS) -fPIC -c $< -o $@ -# Apply special build flags only to CrossSectionKernel.cc and gCrossSectionKernel.cu (no fast math, see #117) +# Apply special build flags only to CrossSectionKernel.cc and gCrossSectionKernel.cu (no fast math, see #117 and #516) ifeq ($(shell $(CXX) --version | grep ^nvc++),) -$(BUILDDIR)/CrossSectionKernels.o: CXXFLAGS += -fno-fast-math +$(BUILDDIR)/CrossSectionKernels.o: CXXFLAGS := $(filter-out -ffast-math,$(CXXFLAGS)) $(BUILDDIR)/CrossSectionKernels.o: CXXFLAGS += -fno-fast-math ifneq ($(NVCC),) $(BUILDDIR)/gCrossSectionKernels.o: CUFLAGS += -Xcompiler -fno-fast-math diff --git a/epochX/cudacpp/gg_ttggg.mad/SubProcesses/runTest.cc b/epochX/cudacpp/gg_ttggg.mad/SubProcesses/runTest.cc index 572e28aaea..df7488178e 100644 --- a/epochX/cudacpp/gg_ttggg.mad/SubProcesses/runTest.cc +++ b/epochX/cudacpp/gg_ttggg.mad/SubProcesses/runTest.cc @@ -2,6 +2,9 @@ // Licensed under the GNU Lesser General Public License (version 3 or later). // Created by: S. Hageboeck (Nov 2020) for the MG5aMC CUDACPP plugin. // Further modified by: S. Hageboeck, O. Mattelaer, S. Roiser, A. Valassi (2020-2023) for the MG5aMC CUDACPP plugin. +//---------------------------------------------------------------------------- +// Use ./runTest.exe --gtest_filter=*xxx to run only testxxx.cc tests +//---------------------------------------------------------------------------- #include "mgOnGpuConfig.h" diff --git a/epochX/cudacpp/gg_ttggg.mad/SubProcesses/testmisc.cc b/epochX/cudacpp/gg_ttggg.mad/SubProcesses/testmisc.cc index 989aba1fdc..895d6eeb56 100644 --- a/epochX/cudacpp/gg_ttggg.mad/SubProcesses/testmisc.cc +++ b/epochX/cudacpp/gg_ttggg.mad/SubProcesses/testmisc.cc @@ -3,7 +3,7 @@ // Created by: A. Valassi (Jan 2022) for the MG5aMC CUDACPP plugin. // Further modified by: A. Valassi (2022-2023) for the MG5aMC CUDACPP plugin. //---------------------------------------------------------------------------- -// Use ./runTest.exe --gtest_filter=*misc to run only this test +// Use ./runTest.exe --gtest_filter=*misc to run only testmisc.cc tests //---------------------------------------------------------------------------- #include "mgOnGpuConfig.h" @@ -25,33 +25,48 @@ #define XTESTID( s ) TESTID( s ) +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif +{ #ifdef MGONGPU_CPPSIMD /* clang-format off */ -bool maskand( const bool_v& mask ){ bool out = true; for ( int i=0; i #include +#include // debug #701 (see https://stackoverflow.com/a/17473528) #include #include #include @@ -28,16 +32,47 @@ #define XTESTID( s ) TESTID( s ) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif +{ + std::string FPEhandlerMessage = "unknown"; + int FPEhandlerIevt = -1; + inline void FPEhandler( int sig ) + { +#ifdef __CUDACC__ + std::cerr << "Floating Point Exception (GPU): '" << FPEhandlerMessage << "' ievt=" << FPEhandlerIevt << std::endl; +#else + std::cerr << "Floating Point Exception (CPU neppV=" << neppV << "): '" << FPEhandlerMessage << "' ievt=" << FPEhandlerIevt << std::endl; +#endif + exit( 0 ); + } +} + TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) { +#ifdef __CUDACC__ + using namespace mg5amcGpu; +#else + using namespace mg5amcCpu; +#endif +#ifndef __APPLE__ // test #701 (except on MacOS where feenableexcept is not defined #730) + const bool enableFPE = !getenv( "CUDACPP_RUNTIME_DISABLEFPE" ); + if( enableFPE ) + { + feenableexcept( FE_INVALID | FE_DIVBYZERO | FE_OVERFLOW | FE_UNDERFLOW ); // debug #701 + signal( SIGFPE, FPEhandler ); + } +#endif constexpr bool dumpEvents = false; // dump the expected output of the test? constexpr bool testEvents = !dumpEvents; // run the test? constexpr fptype toleranceXXXs = std::is_same::value ? 1.E-15 : 1.E-5; // Constant parameters constexpr int neppM = MemoryAccessMomenta::neppM; // AOSOA layout - using mgOnGpu::neppV; constexpr int np4 = CPPProcess::np4; - const int nevt = 16; // 12 independent tests plus 4 duplicates (need a multiple of 8 for floats or for '512z') + const int nevt = 32; // 12 independent tests plus 20 duplicates (need a multiple of 16 for floats '512z') assert( nevt % neppM == 0 ); // nevt must be a multiple of neppM assert( nevt % neppV == 0 ); // nevt must be a multiple of neppV // Fill in the input momenta @@ -46,24 +81,41 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) #else mg5amcCpu::HostBufferMomenta hstMomenta( nevt ); // AOSOA[npagM][npar=4][np4=4][neppM] #endif /* clang-format off */ + // NB NEW TESTS FOR DEBUGGING #701: KEEP TWO SEPARATE SETS (16-SIMD-VECTORS!) OF TESTS FOR M==0 AND M!=0! const fptype par0[np4 * nevt] = // AOS[nevt][np4] { - 500, 0, 0, 500, // #0 (m=0 pT=0 E=pz>0) - 500, 0, 0, -500, // #1 (m=0 pT=0 -E=pz<0) - 500, 300, 400, 0, // #2 (m=0 pT>0 pz=0) - 500, 180, 240, 400, // #3 (m=0 pT>0 pz>0) - 500, 180, 240, -400, // #4 (m=0 pT>0 pz<0) - 500, 0, 0, 0, // #5 (m=50>0 pT=0 pz=0) - 500, 0, 0, 300, // #6 (m=40>0 pT=0 pz>0) - 500, 0, 0, -300, // #7 (m=40>0 pT=0 pz<0) - 500, 180, 240, 0, // #8 (m=40>0 pT>0 pz=0) - 500, -240, -180, 0, // #9 (m=40>0 pT>0 pz=0) - 500, 180, 192, 144, // #10 (m=40>0 pT>0 pz>0) - 500, 180, 192, -144, // #11 (m=40>0 pT>0 pz<0) - 500, 0, 0, 500, // DUPLICATE #12 == #0 (m=0 pT=0 E=pz>0) - 500, 0, 0, -500, // DUPLICATE #13 == #1 (m=0 pT=0 -E=pz<0) - 500, 300, 400, 0, // DUPLICATE #14 == #2 (m=0 pT>0 pz=0) - 500, 180, 240, 400 // DUPLICATE #15 == #3 (m=0 pT>0 pz>0) + 500, 0, 0, 500, // #0 (m=0 pT=0 E=pz>0) + 500, 0, 0, -500, // #1 (m=0 pT=0 -E=pz<0) + 500, 300, 400, 0, // #2 (m=0 pT>0 pz=0) + 500, 180, 240, 400, // #3 (m=0 pT>0 pz>0) + 500, 180, 240, -400, // #4 (m=0 pT>0 pz<0) + 500, 0, 0, 500, // #5 DUPLICATE == #0 (m=0 pT=0 E=pz>0) + 500, 0, 0, -500, // #6 DUPLICATE == #1 (m=0 pT=0 -E=pz<0) + 500, 300, 400, 0, // #7 DUPLICATE == #2 (m=0 pT>0 pz=0) + 500, 180, 240, 400, // #8 DUPLICATE == #3 (m=0 pT>0 pz>0) + 500, 180, 240, -400, // #9 DUPLICATE == #4 (m=0 pT>0 pz<0) + 500, 0, 0, 500, // #10 DUPLICATE == #0 (m=0 pT=0 E=pz>0) + 500, 0, 0, -500, // #11 DUPLICATE == #1 (m=0 pT=0 -E=pz<0) + 500, 300, 400, 0, // #12 DUPLICATE == #2 (m=0 pT>0 pz=0) + 500, 180, 240, 400, // #13 DUPLICATE == #3 (m=0 pT>0 pz>0) + 500, 180, 240, -400, // #14 DUPLICATE == #4 (m=0 pT>0 pz<0) + 500, 0, 0, 500, // #15 DUPLICATE == #0 (m=0 pT=0 E=pz>0) + 500, 0, 0, 0, // #16 (m=50>0 pT=0 pz=0) + 500, 0, 0, 300, // #17 (m=40>0 pT=0 pz>0) + 500, 0, 0, -300, // #18 (m=40>0 pT=0 pz<0) + 500, 180, 240, 0, // #19 (m=40>0 pT>0 pz=0) + 500, -240, -180, 0, // #20 (m=40>0 pT>0 pz=0) + 500, 180, 192, 144, // #21 (m=40>0 pT>0 pz>0) + 500, 180, 192, -144, // #22 (m=40>0 pT>0 pz<0) + 500, 0, 0, 0, // #23 DUPLICATE == #16 (m=50>0 pT=0 pz=0) + 500, 0, 0, 300, // #24 DUPLICATE == #17 (m=40>0 pT=0 pz>0) + 500, 0, 0, -300, // #25 DUPLICATE == #18 (m=40>0 pT=0 pz<0) + 500, 180, 240, 0, // #26 DUPLICATE == #19 (m=40>0 pT>0 pz=0) + 500, -240, -180, 0, // #27 DUPLICATE == #20 (m=40>0 pT>0 pz=0) + 500, 180, 192, 144, // #28 DUPLICATE == #21 (m=40>0 pT>0 pz>0) + 500, 180, 192, -144, // #29 DUPLICATE == #22 (m=40>0 pT>0 pz<0) + 500, 0, 0, 0, // #30 DUPLICATE == #16 (m=50>0 pT=0 pz=0) + 500, 0, 0, 300 // #31 DUPLICATE == #17 (m=40>0 pT=0 pz>0) }; /* clang-format on */ // Array initialization: zero-out as "{0}" (C and C++) or as "{}" (C++ only) // See https://en.cppreference.com/w/c/language/array_initialization#Notes @@ -99,7 +151,15 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) constexpr int nw6 = CPPProcess::nw6; // dimensions of each wavefunction (HELAS KEK 91-11): e.g. 6 for e+ e- -> mu+ mu- (fermions and vectors) int itest = 0; // index on the expected output vector std::ofstream dumpFile; - if( dumpEvents ) dumpFile.open( dumpFileName, std::ios::trunc ); + if( dumpEvents ) + { + dumpFile.open( dumpFileName, std::ios::trunc ); + dumpFile << " // Copyright (C) 2020-2023 CERN and UCLouvain." << std::endl + << " // Licensed under the GNU Lesser General Public License (version 3 or later)." << std::endl + << " // Created by: A. Valassi (Apr 2021) for the MG5aMC CUDACPP plugin." << std::endl + << " // Further modified by: A. Valassi (2021-2023) for the MG5aMC CUDACPP plugin." << std::endl; + } + // Lambda function for dumping wavefunctions auto dumpwf6 = [&]( std::ostream& out, const cxtype_sv wf[6], const char* xxx, int ievt, int nsp, fptype mass ) { out << std::setprecision( 15 ) << std::scientific; @@ -129,6 +189,7 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) } out << std::defaultfloat; }; + // Lambda function for testing wavefunctions (1) auto testwf6 = [&]( const cxtype_sv wf[6], const char* xxx, int ievt, int nsp, fptype mass ) { if( dumpEvents ) dumpwf6( dumpFile, wf, xxx, ievt, nsp, mass ); @@ -170,6 +231,7 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) } itest++; }; + // Lambda function for testing wavefunctions (2) auto testwf6two = [&]( const cxtype_sv wf[6], const cxtype_sv expwf[6], const char* xxx, int ievt ) { if( testEvents ) @@ -213,6 +275,32 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) } } }; + // Lambda function for resetting hstMomenta to the values of par0 + // This is needed in each test because hstMomenta may have been modified to ensure a function like ipzxxx can be used (#701) + auto resetHstMomentaToPar0 = [&]() + { + for( int ievt = 0; ievt < nevt; ievt++ ) + for( int ip4 = 0; ip4 < np4; ip4++ ) + MemoryAccessMomenta::ieventAccessIp4Ipar( hstMomenta.data(), ievt, ip4, ipar0 ) = par0[ievt * np4 + ip4]; // AOS to AOSOA + }; + // Lambda function for preparing the test of one specific function + const bool debug = false; + auto prepareTest = [&]( const char* xxx, int ievt ) + { + if( debug ) std::cout << "Prepare test " << xxx << " ievt=" << ievt << std::endl; + resetHstMomentaToPar0(); + FPEhandlerMessage = xxx; + FPEhandlerIevt = ievt; + if( std::string( xxx ) == "ipzxxx" || std::string( xxx ) == "opzxxx" || std::string( xxx ) == "imzxxx" || std::string( xxx ) == "omzxxx" || std::string( xxx ) == "ixzxxx" || std::string( xxx ) == "oxzxxx" ) + { + // Modify hstMomenta so that ALL events have the momenta of a single ievt + // This ensures that a function like ipzxxx (which assumes pZ>0) can be used without triggering FPEs (#701) + // This is done by filling the full SIMD vector with the value of ievt, which was already tested to respect the relevant assumptions + for( int jevt = 0; jevt < nevt; jevt++ ) + for( int ip4 = 0; ip4 < np4; ip4++ ) + MemoryAccessMomenta::ieventAccessIp4Ipar( hstMomenta.data(), jevt, ip4, ipar0 ) = par0[ievt * np4 + ip4]; // AOS to AOSOA + } + }; // Array initialization: zero-out as "{0}" (C and C++) or as "{}" (C++ only) // See https://en.cppreference.com/w/c/language/array_initialization#Notes cxtype_sv outwfI[6] = {}; // last result of ixxxxx (mass==0) @@ -224,6 +312,7 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) fptype* fp_outwf = reinterpret_cast( outwf ); // proof of concept for using fptype* in the interface fptype* fp_outwf3 = reinterpret_cast( outwf3 ); // proof of concept for using fptype* in the interface const int nhel = 1; + // *** START OF TESTING LOOP for( auto nsp: { -1, +1 } ) // antifermion/fermion (or initial/final for scalar and vector) { for( int ievt = 0; ievt < nevt; ievt++ ) @@ -233,9 +322,10 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) #else using namespace mg5amcCpu; #endif - if( false ) + if( debug ) { std::cout << std::endl; + std::cout << "nsp=" << nsp << " ievt=" << ievt << ": "; for( int ip4 = 0; ip4 < np4; ip4++ ) std::cout << par0[ievt * np4 + ip4] << ", "; std::cout << std::endl; } @@ -243,6 +333,7 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) const fptype* ievt0Momenta = MemoryAccessMomenta::ieventAccessRecordConst( hstMomenta.data(), ipagV * neppV ); // Test ixxxxx - NO ASSUMPTIONS { + prepareTest( "ixxxxx", ievt ); const fptype fmass = mass0[ievt]; ixxxxx( ievt0Momenta, fmass, nhel, nsp, fp_outwfI, ipar0 ); testwf6( outwfI, "ixxxxx", ievt, nsp, fmass ); @@ -252,6 +343,7 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) // Test ipzxxx - ASSUMPTIONS: (FMASS == 0) and (PX == PY == 0 and E == +PZ > 0) if( mass0[ievt] == 0 && !isptgt0[ievt] && ispzgt0[ievt] ) { + prepareTest( "ipzxxx", ievt ); ipzxxx( ievt0Momenta, nhel, nsp, fp_outwf, ipar0 ); testwf6two( outwf, outwfI, "ipzxxx", ievt ); testwf6( outwf, "ipzxxx", ievt, nsp, 0 ); @@ -259,6 +351,7 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) // Test imzxxx - ASSUMPTIONS: (FMASS == 0) and (PX == PY == 0 and E == -PZ > 0) if( mass0[ievt] == 0 && !isptgt0[ievt] && ispzlt0[ievt] ) { + prepareTest( "imzxxx", ievt ); imzxxx( ievt0Momenta, nhel, nsp, fp_outwf, ipar0 ); testwf6two( outwf, outwfI, "imzxxx", ievt ); testwf6( outwf, "imzxxx", ievt, nsp, 0 ); @@ -266,12 +359,14 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) // Test ixzxxx - ASSUMPTIONS: (FMASS == 0) and (PT > 0) if( mass0[ievt] == 0 && isptgt0[ievt] ) { + prepareTest( "ixzxxx", ievt ); ixzxxx( ievt0Momenta, nhel, nsp, fp_outwf, ipar0 ); testwf6two( outwf, outwfI, "ixzxxx", ievt ); testwf6( outwf, "ixzxxx", ievt, nsp, 0 ); } // Test vxxxxx - NO ASSUMPTIONS { + prepareTest( "vxxxxx", ievt ); const fptype vmass = mass0[ievt]; vxxxxx( ievt0Momenta, vmass, nhel, nsp, fp_outwf, ipar0 ); testwf6( outwf, "vxxxxx", ievt, nsp, vmass ); @@ -280,6 +375,7 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) } // Test sxxxxx - NO ASSUMPTIONS { + prepareTest( "sxxxxx", ievt ); const fptype smass = mass0[ievt]; sxxxxx( ievt0Momenta, nsp, fp_outwf3, ipar0 ); // no mass, no helicity (was "smass>0") testwf6( outwf3, "sxxxxx", ievt, nsp, smass ); @@ -288,6 +384,7 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) } // Test oxxxxx - NO ASSUMPTIONS { + prepareTest( "oxxxxx", ievt ); const fptype fmass = mass0[ievt]; oxxxxx( ievt0Momenta, fmass, nhel, nsp, fp_outwfO, ipar0 ); testwf6( outwfO, "oxxxxx", ievt, nsp, fmass ); @@ -297,6 +394,7 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) // Test opzxxx - ASSUMPTIONS: (FMASS == 0) and (PX == PY == 0 and E == +PZ > 0) if( mass0[ievt] == 0 && !isptgt0[ievt] && ispzgt0[ievt] ) { + prepareTest( "opzxxx", ievt ); opzxxx( ievt0Momenta, nhel, nsp, fp_outwf, ipar0 ); testwf6two( outwf, outwfO, "opzxxx", ievt ); testwf6( outwf, "opzxxx", ievt, nsp, 0 ); @@ -304,6 +402,7 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) // Test omzxxx - ASSUMPTIONS: (FMASS == 0) and (PX == PY == 0 and E == -PZ > 0) if( mass0[ievt] == 0 && !isptgt0[ievt] && ispzlt0[ievt] ) { + prepareTest( "omzxxx", ievt ); omzxxx( ievt0Momenta, nhel, nsp, fp_outwf, ipar0 ); testwf6two( outwf, outwfO, "omzxxx", ievt ); testwf6( outwf, "omzxxx", ievt, nsp, 0 ); @@ -311,17 +410,25 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) // Test oxzxxx - ASSUMPTIONS: (FMASS == 0) and (PT > 0) if( mass0[ievt] == 0 && isptgt0[ievt] ) { - oxzxxx( ievt0Momenta, nhel, nsp, reinterpret_cast( outwf ), ipar0 ); + prepareTest( "oxzxxx", ievt ); + oxzxxx( ievt0Momenta, nhel, nsp, fp_outwf, ipar0 ); testwf6two( outwf, outwfO, "oxzxxx", ievt ); testwf6( outwf, "oxzxxx", ievt, nsp, 0 ); } } } + // *** END OF TESTING LOOP if( dumpEvents ) { dumpFile.close(); std::cout << "INFO: New reference data dumped to file '" << dumpFileName << "'" << std::endl; } +#ifndef __APPLE__ // test #701 (except on MacOS where fedisableexcept is not defined #730) + if( enableFPE ) + { + fedisableexcept( FE_INVALID | FE_DIVBYZERO | FE_OVERFLOW | FE_UNDERFLOW ); // debug #701 + } +#endif } //========================================================================== diff --git a/epochX/cudacpp/gg_ttggg.mad/SubProcesses/testxxx_cc_ref.txt b/epochX/cudacpp/gg_ttggg.mad/SubProcesses/testxxx_cc_ref.txt index acb9bde918..637530d1f5 100644 --- a/epochX/cudacpp/gg_ttggg.mad/SubProcesses/testxxx_cc_ref.txt +++ b/epochX/cudacpp/gg_ttggg.mad/SubProcesses/testxxx_cc_ref.txt @@ -5,14 +5,14 @@ expwfs.push_back( { // --------- 5.000000000000000e+02, 5.000000000000000e+02, // itest=0: ixxxxx#0 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=0: ixxxxx#0 nsp=-1 mass=0 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=0: ixxxxx#0 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=0: ixxxxx#0 nsp=-1 mass=0 -3.162277660168379e+01, 0.000000000000000e+00, // itest=0: ixxxxx#0 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=0: ixxxxx#0 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=0: ixxxxx#0 nsp=-1 mass=0 expwfs.push_back( { // --------- 5.000000000000000e+02, 5.000000000000000e+02, // itest=1: ixxxxx#0 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=1: ixxxxx#0 nsp=-1 mass=0 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=1: ixxxxx#0 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=1: ixxxxx#0 nsp=-1 mass=0 -3.162277660168379e+01, 0.000000000000000e+00, // itest=1: ixxxxx#0 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=1: ixxxxx#0 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=1: ixxxxx#0 nsp=-1 mass=0 @@ -82,8 +82,8 @@ expwfs.push_back( { // --------- 5.000000000000000e+02, -5.000000000000000e+02, // itest=11: ixxxxx#1 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=11: ixxxxx#1 nsp=-1 mass=0 - -3.162277660168379e+01, -0.000000000000000e+00, // itest=11: ixxxxx#1 nsp=-1 mass=0 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=11: ixxxxx#1 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=11: ixxxxx#1 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=11: ixxxxx#1 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=11: ixxxxx#1 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=11: ixxxxx#1 nsp=-1 mass=0 expwfs.push_back( { // --------- @@ -133,8 +133,8 @@ -0.000000000000000e+00, -0.000000000000000e+00, // itest=18: oxxxxx#1 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=18: oxxxxx#1 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=18: oxxxxx#1 nsp=-1 mass=0 - -3.162277660168379e+01, -0.000000000000000e+00, // itest=18: oxxxxx#1 nsp=-1 mass=0 - -0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=18: oxxxxx#1 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=18: oxxxxx#1 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=18: oxxxxx#1 nsp=-1 mass=0 expwfs.push_back( { // --------- -5.000000000000000e+02, 5.000000000000000e+02, // itest=19: omzxxx#1 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=19: omzxxx#1 nsp=-1 mass=0 @@ -145,14 +145,14 @@ expwfs.push_back( { // --------- 5.000000000000000e+02, 0.000000000000000e+00, // itest=20: ixxxxx#2 nsp=-1 mass=0 3.000000000000000e+02, 4.000000000000000e+02, // itest=20: ixxxxx#2 nsp=-1 mass=0 - 1.341640786499874e+01, -1.788854381999832e+01, // itest=20: ixxxxx#2 nsp=-1 mass=0 + 1.341640786499874e+01, -1.788854381999831e+01, // itest=20: ixxxxx#2 nsp=-1 mass=0 -2.236067977499790e+01, 0.000000000000000e+00, // itest=20: ixxxxx#2 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=20: ixxxxx#2 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=20: ixxxxx#2 nsp=-1 mass=0 expwfs.push_back( { // --------- 5.000000000000000e+02, 0.000000000000000e+00, // itest=21: ixxxxx#2 nsp=-1 mass=0 3.000000000000000e+02, 4.000000000000000e+02, // itest=21: ixxxxx#2 nsp=-1 mass=0 - 1.341640786499874e+01, -1.788854381999832e+01, // itest=21: ixxxxx#2 nsp=-1 mass=0 + 1.341640786499874e+01, -1.788854381999831e+01, // itest=21: ixxxxx#2 nsp=-1 mass=0 -2.236067977499790e+01, 0.000000000000000e+00, // itest=21: ixxxxx#2 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=21: ixxxxx#2 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=21: ixxxxx#2 nsp=-1 mass=0 @@ -196,14 +196,14 @@ -3.000000000000000e+02, -4.000000000000000e+02, // itest=27: oxxxxx#2 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=27: oxxxxx#2 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=27: oxxxxx#2 nsp=-1 mass=0 - 1.341640786499874e+01, 1.788854381999832e+01, // itest=27: oxxxxx#2 nsp=-1 mass=0 + 1.341640786499874e+01, 1.788854381999831e+01, // itest=27: oxxxxx#2 nsp=-1 mass=0 -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=27: oxxxxx#2 nsp=-1 mass=0 expwfs.push_back( { // --------- -5.000000000000000e+02, -0.000000000000000e+00, // itest=28: oxxxxx#2 nsp=-1 mass=0 -3.000000000000000e+02, -4.000000000000000e+02, // itest=28: oxxxxx#2 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=28: oxxxxx#2 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=28: oxxxxx#2 nsp=-1 mass=0 - 1.341640786499874e+01, 1.788854381999832e+01, // itest=28: oxxxxx#2 nsp=-1 mass=0 + 1.341640786499874e+01, 1.788854381999831e+01, // itest=28: oxxxxx#2 nsp=-1 mass=0 -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=28: oxxxxx#2 nsp=-1 mass=0 expwfs.push_back( { // --------- -5.000000000000000e+02, -0.000000000000000e+00, // itest=29: oxzxxx#2 nsp=-1 mass=0 @@ -353,1696 +353,3684 @@ 1.800000000000000e+01, 2.400000000000000e+01, // itest=49: oxzxxx#4 nsp=-1 mass=0 -1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=49: oxzxxx#4 nsp=-1 mass=0 expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=50: ixxxxx#5 nsp=-1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=50: ixxxxx#5 nsp=-1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=50: ixxxxx#5 nsp=-1 mass=500 - -2.236067977499790e+01, 0.000000000000000e+00, // itest=50: ixxxxx#5 nsp=-1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=50: ixxxxx#5 nsp=-1 mass=500 - 2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=50: ixxxxx#5 nsp=-1 mass=500 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=51: ixxxxx#5 nsp=-1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=51: ixxxxx#5 nsp=-1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=51: ixxxxx#5 nsp=-1 mass=-500 - -2.236067977499790e+01, 0.000000000000000e+00, // itest=51: ixxxxx#5 nsp=-1 mass=-500 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=51: ixxxxx#5 nsp=-1 mass=-500 - -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=51: ixxxxx#5 nsp=-1 mass=-500 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=52: vxxxxx#5 nsp=-1 mass=500 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=52: vxxxxx#5 nsp=-1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=52: vxxxxx#5 nsp=-1 mass=500 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=52: vxxxxx#5 nsp=-1 mass=500 - 0.000000000000000e+00, -7.071067811865476e-01, // itest=52: vxxxxx#5 nsp=-1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=52: vxxxxx#5 nsp=-1 mass=500 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=53: vxxxxx#5 nsp=-1 mass=-500 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=53: vxxxxx#5 nsp=-1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=53: vxxxxx#5 nsp=-1 mass=-500 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=53: vxxxxx#5 nsp=-1 mass=-500 - 0.000000000000000e+00, -7.071067811865476e-01, // itest=53: vxxxxx#5 nsp=-1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=53: vxxxxx#5 nsp=-1 mass=-500 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=54: sxxxxx#5 nsp=-1 mass=500 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=54: sxxxxx#5 nsp=-1 mass=500 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=54: sxxxxx#5 nsp=-1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=54: sxxxxx#5 nsp=-1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=54: sxxxxx#5 nsp=-1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=54: sxxxxx#5 nsp=-1 mass=500 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=55: sxxxxx#5 nsp=-1 mass=-500 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=55: sxxxxx#5 nsp=-1 mass=-500 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=55: sxxxxx#5 nsp=-1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=55: sxxxxx#5 nsp=-1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=55: sxxxxx#5 nsp=-1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=55: sxxxxx#5 nsp=-1 mass=-500 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=56: oxxxxx#5 nsp=-1 mass=500 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=56: oxxxxx#5 nsp=-1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=56: oxxxxx#5 nsp=-1 mass=500 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=56: oxxxxx#5 nsp=-1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=56: oxxxxx#5 nsp=-1 mass=500 - -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=56: oxxxxx#5 nsp=-1 mass=500 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=57: oxxxxx#5 nsp=-1 mass=-500 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=57: oxxxxx#5 nsp=-1 mass=-500 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=57: oxxxxx#5 nsp=-1 mass=-500 - -2.236067977499790e+01, 0.000000000000000e+00, // itest=57: oxxxxx#5 nsp=-1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=57: oxxxxx#5 nsp=-1 mass=-500 - -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=57: oxxxxx#5 nsp=-1 mass=-500 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 3.000000000000000e+02, // itest=58: ixxxxx#6 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=58: ixxxxx#6 nsp=-1 mass=400 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=58: ixxxxx#6 nsp=-1 mass=400 - -2.828427124746190e+01, -0.000000000000000e+00, // itest=58: ixxxxx#6 nsp=-1 mass=400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=58: ixxxxx#6 nsp=-1 mass=400 - 1.414213562373095e+01, 0.000000000000000e+00 } ); // itest=58: ixxxxx#6 nsp=-1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 3.000000000000000e+02, // itest=59: ixxxxx#6 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=59: ixxxxx#6 nsp=-1 mass=-400 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=59: ixxxxx#6 nsp=-1 mass=-400 - -2.828427124746190e+01, -0.000000000000000e+00, // itest=59: ixxxxx#6 nsp=-1 mass=-400 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=59: ixxxxx#6 nsp=-1 mass=-400 - -1.414213562373095e+01, -0.000000000000000e+00 } ); // itest=59: ixxxxx#6 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -3.000000000000000e+02, // itest=60: vxxxxx#6 nsp=-1 mass=400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=60: vxxxxx#6 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=60: vxxxxx#6 nsp=-1 mass=400 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=60: vxxxxx#6 nsp=-1 mass=400 - 0.000000000000000e+00, -7.071067811865476e-01, // itest=60: vxxxxx#6 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=60: vxxxxx#6 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -3.000000000000000e+02, // itest=61: vxxxxx#6 nsp=-1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=61: vxxxxx#6 nsp=-1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=61: vxxxxx#6 nsp=-1 mass=-400 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=61: vxxxxx#6 nsp=-1 mass=-400 - 0.000000000000000e+00, -7.071067811865476e-01, // itest=61: vxxxxx#6 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=61: vxxxxx#6 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -3.000000000000000e+02, // itest=62: sxxxxx#6 nsp=-1 mass=400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=62: sxxxxx#6 nsp=-1 mass=400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=62: sxxxxx#6 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=62: sxxxxx#6 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=62: sxxxxx#6 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=62: sxxxxx#6 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -3.000000000000000e+02, // itest=63: sxxxxx#6 nsp=-1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=63: sxxxxx#6 nsp=-1 mass=-400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=63: sxxxxx#6 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=63: sxxxxx#6 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=63: sxxxxx#6 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=63: sxxxxx#6 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -3.000000000000000e+02, // itest=64: oxxxxx#6 nsp=-1 mass=400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=64: oxxxxx#6 nsp=-1 mass=400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=64: oxxxxx#6 nsp=-1 mass=400 - 1.414213562373095e+01, 0.000000000000000e+00, // itest=64: oxxxxx#6 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=64: oxxxxx#6 nsp=-1 mass=400 - -2.828427124746190e+01, -0.000000000000000e+00 } ); // itest=64: oxxxxx#6 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -3.000000000000000e+02, // itest=65: oxxxxx#6 nsp=-1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=65: oxxxxx#6 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=65: oxxxxx#6 nsp=-1 mass=-400 - -1.414213562373095e+01, -0.000000000000000e+00, // itest=65: oxxxxx#6 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=65: oxxxxx#6 nsp=-1 mass=-400 - -2.828427124746190e+01, -0.000000000000000e+00 } ); // itest=65: oxxxxx#6 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -3.000000000000000e+02, // itest=66: ixxxxx#7 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=66: ixxxxx#7 nsp=-1 mass=400 - -2.828427124746190e+01, -0.000000000000000e+00, // itest=66: ixxxxx#7 nsp=-1 mass=400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=66: ixxxxx#7 nsp=-1 mass=400 - 1.414213562373095e+01, 0.000000000000000e+00, // itest=66: ixxxxx#7 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=66: ixxxxx#7 nsp=-1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -3.000000000000000e+02, // itest=67: ixxxxx#7 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=67: ixxxxx#7 nsp=-1 mass=-400 - -2.828427124746190e+01, -0.000000000000000e+00, // itest=67: ixxxxx#7 nsp=-1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=67: ixxxxx#7 nsp=-1 mass=-400 - -1.414213562373095e+01, -0.000000000000000e+00, // itest=67: ixxxxx#7 nsp=-1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=67: ixxxxx#7 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 3.000000000000000e+02, // itest=68: vxxxxx#7 nsp=-1 mass=400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=68: vxxxxx#7 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=68: vxxxxx#7 nsp=-1 mass=400 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=68: vxxxxx#7 nsp=-1 mass=400 - 0.000000000000000e+00, 7.071067811865476e-01, // itest=68: vxxxxx#7 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=68: vxxxxx#7 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 3.000000000000000e+02, // itest=69: vxxxxx#7 nsp=-1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=69: vxxxxx#7 nsp=-1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=69: vxxxxx#7 nsp=-1 mass=-400 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=69: vxxxxx#7 nsp=-1 mass=-400 - 0.000000000000000e+00, 7.071067811865476e-01, // itest=69: vxxxxx#7 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=69: vxxxxx#7 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 3.000000000000000e+02, // itest=70: sxxxxx#7 nsp=-1 mass=400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=70: sxxxxx#7 nsp=-1 mass=400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=70: sxxxxx#7 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=70: sxxxxx#7 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=70: sxxxxx#7 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=70: sxxxxx#7 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 3.000000000000000e+02, // itest=71: sxxxxx#7 nsp=-1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=71: sxxxxx#7 nsp=-1 mass=-400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=71: sxxxxx#7 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=71: sxxxxx#7 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=71: sxxxxx#7 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=71: sxxxxx#7 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 3.000000000000000e+02, // itest=72: oxxxxx#7 nsp=-1 mass=400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=72: oxxxxx#7 nsp=-1 mass=400 - 1.414213562373095e+01, 0.000000000000000e+00, // itest=72: oxxxxx#7 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=72: oxxxxx#7 nsp=-1 mass=400 - -2.828427124746190e+01, -0.000000000000000e+00, // itest=72: oxxxxx#7 nsp=-1 mass=400 - -0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=72: oxxxxx#7 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 3.000000000000000e+02, // itest=73: oxxxxx#7 nsp=-1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=73: oxxxxx#7 nsp=-1 mass=-400 - -1.414213562373095e+01, -0.000000000000000e+00, // itest=73: oxxxxx#7 nsp=-1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=73: oxxxxx#7 nsp=-1 mass=-400 - -2.828427124746190e+01, -0.000000000000000e+00, // itest=73: oxxxxx#7 nsp=-1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=73: oxxxxx#7 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=74: ixxxxx#8 nsp=-1 mass=400 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=74: ixxxxx#8 nsp=-1 mass=400 - 1.200000000000000e+01, -1.600000000000000e+01, // itest=74: ixxxxx#8 nsp=-1 mass=400 - -2.000000000000000e+01, -0.000000000000000e+00, // itest=74: ixxxxx#8 nsp=-1 mass=400 - -5.999999999999999e+00, 7.999999999999999e+00, // itest=74: ixxxxx#8 nsp=-1 mass=400 - 1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=74: ixxxxx#8 nsp=-1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=75: ixxxxx#8 nsp=-1 mass=-400 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=75: ixxxxx#8 nsp=-1 mass=-400 - 1.200000000000000e+01, -1.600000000000000e+01, // itest=75: ixxxxx#8 nsp=-1 mass=-400 - -2.000000000000000e+01, -0.000000000000000e+00, // itest=75: ixxxxx#8 nsp=-1 mass=-400 - 5.999999999999999e+00, -7.999999999999999e+00, // itest=75: ixxxxx#8 nsp=-1 mass=-400 - -1.000000000000000e+01, -0.000000000000000e+00 } ); // itest=75: ixxxxx#8 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=76: vxxxxx#8 nsp=-1 mass=400 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=76: vxxxxx#8 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=76: vxxxxx#8 nsp=-1 mass=400 - 0.000000000000000e+00, 5.656854249492381e-01, // itest=76: vxxxxx#8 nsp=-1 mass=400 - 0.000000000000000e+00, -4.242640687119285e-01, // itest=76: vxxxxx#8 nsp=-1 mass=400 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=76: vxxxxx#8 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=77: vxxxxx#8 nsp=-1 mass=-400 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=77: vxxxxx#8 nsp=-1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=77: vxxxxx#8 nsp=-1 mass=-400 - -0.000000000000000e+00, 5.656854249492381e-01, // itest=77: vxxxxx#8 nsp=-1 mass=-400 - -0.000000000000000e+00, -4.242640687119285e-01, // itest=77: vxxxxx#8 nsp=-1 mass=-400 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=77: vxxxxx#8 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=78: sxxxxx#8 nsp=-1 mass=400 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=78: sxxxxx#8 nsp=-1 mass=400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=78: sxxxxx#8 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=78: sxxxxx#8 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=78: sxxxxx#8 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=78: sxxxxx#8 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=79: sxxxxx#8 nsp=-1 mass=-400 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=79: sxxxxx#8 nsp=-1 mass=-400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=79: sxxxxx#8 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=79: sxxxxx#8 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=79: sxxxxx#8 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=79: sxxxxx#8 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=80: oxxxxx#8 nsp=-1 mass=400 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=80: oxxxxx#8 nsp=-1 mass=400 - -5.999999999999999e+00, -7.999999999999999e+00, // itest=80: oxxxxx#8 nsp=-1 mass=400 - 1.000000000000000e+01, 0.000000000000000e+00, // itest=80: oxxxxx#8 nsp=-1 mass=400 - 1.200000000000000e+01, 1.600000000000000e+01, // itest=80: oxxxxx#8 nsp=-1 mass=400 - -2.000000000000000e+01, -0.000000000000000e+00 } ); // itest=80: oxxxxx#8 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=81: oxxxxx#8 nsp=-1 mass=-400 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=81: oxxxxx#8 nsp=-1 mass=-400 - 5.999999999999999e+00, 7.999999999999999e+00, // itest=81: oxxxxx#8 nsp=-1 mass=-400 - -1.000000000000000e+01, -0.000000000000000e+00, // itest=81: oxxxxx#8 nsp=-1 mass=-400 - 1.200000000000000e+01, 1.600000000000000e+01, // itest=81: oxxxxx#8 nsp=-1 mass=-400 - -2.000000000000000e+01, -0.000000000000000e+00 } ); // itest=81: oxxxxx#8 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=82: ixxxxx#9 nsp=-1 mass=400 - -2.400000000000000e+02, -1.800000000000000e+02, // itest=82: ixxxxx#9 nsp=-1 mass=400 - -1.600000000000000e+01, 1.200000000000000e+01, // itest=82: ixxxxx#9 nsp=-1 mass=400 - -2.000000000000000e+01, -0.000000000000000e+00, // itest=82: ixxxxx#9 nsp=-1 mass=400 - 7.999999999999999e+00, -5.999999999999999e+00, // itest=82: ixxxxx#9 nsp=-1 mass=400 - 1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=82: ixxxxx#9 nsp=-1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=83: ixxxxx#9 nsp=-1 mass=-400 - -2.400000000000000e+02, -1.800000000000000e+02, // itest=83: ixxxxx#9 nsp=-1 mass=-400 - -1.600000000000000e+01, 1.200000000000000e+01, // itest=83: ixxxxx#9 nsp=-1 mass=-400 - -2.000000000000000e+01, -0.000000000000000e+00, // itest=83: ixxxxx#9 nsp=-1 mass=-400 - -7.999999999999999e+00, 5.999999999999999e+00, // itest=83: ixxxxx#9 nsp=-1 mass=-400 - -1.000000000000000e+01, -0.000000000000000e+00 } ); // itest=83: ixxxxx#9 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=84: vxxxxx#9 nsp=-1 mass=400 - 2.400000000000000e+02, 1.800000000000000e+02, // itest=84: vxxxxx#9 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=84: vxxxxx#9 nsp=-1 mass=400 - 0.000000000000000e+00, -4.242640687119285e-01, // itest=84: vxxxxx#9 nsp=-1 mass=400 - 0.000000000000000e+00, 5.656854249492381e-01, // itest=84: vxxxxx#9 nsp=-1 mass=400 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=84: vxxxxx#9 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=85: vxxxxx#9 nsp=-1 mass=-400 - 2.400000000000000e+02, 1.800000000000000e+02, // itest=85: vxxxxx#9 nsp=-1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=85: vxxxxx#9 nsp=-1 mass=-400 - 0.000000000000000e+00, -4.242640687119285e-01, // itest=85: vxxxxx#9 nsp=-1 mass=-400 - 0.000000000000000e+00, 5.656854249492381e-01, // itest=85: vxxxxx#9 nsp=-1 mass=-400 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=85: vxxxxx#9 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=86: sxxxxx#9 nsp=-1 mass=400 - 2.400000000000000e+02, 1.800000000000000e+02, // itest=86: sxxxxx#9 nsp=-1 mass=400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=86: sxxxxx#9 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=86: sxxxxx#9 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=86: sxxxxx#9 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=86: sxxxxx#9 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=87: sxxxxx#9 nsp=-1 mass=-400 - 2.400000000000000e+02, 1.800000000000000e+02, // itest=87: sxxxxx#9 nsp=-1 mass=-400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=87: sxxxxx#9 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=87: sxxxxx#9 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=87: sxxxxx#9 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=87: sxxxxx#9 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=88: oxxxxx#9 nsp=-1 mass=400 - 2.400000000000000e+02, 1.800000000000000e+02, // itest=88: oxxxxx#9 nsp=-1 mass=400 - 7.999999999999999e+00, 5.999999999999999e+00, // itest=88: oxxxxx#9 nsp=-1 mass=400 - 1.000000000000000e+01, 0.000000000000000e+00, // itest=88: oxxxxx#9 nsp=-1 mass=400 - -1.600000000000000e+01, -1.200000000000000e+01, // itest=88: oxxxxx#9 nsp=-1 mass=400 - -2.000000000000000e+01, -0.000000000000000e+00 } ); // itest=88: oxxxxx#9 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=89: oxxxxx#9 nsp=-1 mass=-400 - 2.400000000000000e+02, 1.800000000000000e+02, // itest=89: oxxxxx#9 nsp=-1 mass=-400 - -7.999999999999999e+00, -5.999999999999999e+00, // itest=89: oxxxxx#9 nsp=-1 mass=-400 - -1.000000000000000e+01, -0.000000000000000e+00, // itest=89: oxxxxx#9 nsp=-1 mass=-400 - -1.600000000000000e+01, -1.200000000000000e+01, // itest=89: oxxxxx#9 nsp=-1 mass=-400 - -2.000000000000000e+01, -0.000000000000000e+00 } ); // itest=89: oxxxxx#9 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 1.440000000000000e+02, // itest=90: ixxxxx#10 nsp=-1 mass=400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=90: ixxxxx#10 nsp=-1 mass=400 - 9.863939238321439e+00, -1.052153518754287e+01, // itest=90: ixxxxx#10 nsp=-1 mass=400 - -2.433105012119288e+01, -0.000000000000000e+00, // itest=90: ixxxxx#10 nsp=-1 mass=400 - -4.931969619160719e+00, 5.260767593771432e+00, // itest=90: ixxxxx#10 nsp=-1 mass=400 - 1.216552506059644e+01, 0.000000000000000e+00 } ); // itest=90: ixxxxx#10 nsp=-1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 1.440000000000000e+02, // itest=91: ixxxxx#10 nsp=-1 mass=-400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=91: ixxxxx#10 nsp=-1 mass=-400 - 9.863939238321439e+00, -1.052153518754287e+01, // itest=91: ixxxxx#10 nsp=-1 mass=-400 - -2.433105012119288e+01, -0.000000000000000e+00, // itest=91: ixxxxx#10 nsp=-1 mass=-400 - 4.931969619160719e+00, -5.260767593771432e+00, // itest=91: ixxxxx#10 nsp=-1 mass=-400 - -1.216552506059644e+01, -0.000000000000000e+00 } ); // itest=91: ixxxxx#10 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -1.440000000000000e+02, // itest=92: vxxxxx#10 nsp=-1 mass=400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=92: vxxxxx#10 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=92: vxxxxx#10 nsp=-1 mass=400 - -2.321373168788980e-01, 5.158607041753289e-01, // itest=92: vxxxxx#10 nsp=-1 mass=400 - -2.476131380041579e-01, -4.836194101643708e-01, // itest=92: vxxxxx#10 nsp=-1 mass=400 - 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=92: vxxxxx#10 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -1.440000000000000e+02, // itest=93: vxxxxx#10 nsp=-1 mass=-400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=93: vxxxxx#10 nsp=-1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=93: vxxxxx#10 nsp=-1 mass=-400 - -2.321373168788980e-01, 5.158607041753289e-01, // itest=93: vxxxxx#10 nsp=-1 mass=-400 - -2.476131380041579e-01, -4.836194101643708e-01, // itest=93: vxxxxx#10 nsp=-1 mass=-400 - 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=93: vxxxxx#10 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -1.440000000000000e+02, // itest=94: sxxxxx#10 nsp=-1 mass=400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=94: sxxxxx#10 nsp=-1 mass=400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=94: sxxxxx#10 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=94: sxxxxx#10 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=94: sxxxxx#10 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=94: sxxxxx#10 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -1.440000000000000e+02, // itest=95: sxxxxx#10 nsp=-1 mass=-400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=95: sxxxxx#10 nsp=-1 mass=-400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=95: sxxxxx#10 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=95: sxxxxx#10 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=95: sxxxxx#10 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=95: sxxxxx#10 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -1.440000000000000e+02, // itest=96: oxxxxx#10 nsp=-1 mass=400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=96: oxxxxx#10 nsp=-1 mass=400 - -4.931969619160719e+00, -5.260767593771432e+00, // itest=96: oxxxxx#10 nsp=-1 mass=400 - 1.216552506059644e+01, 0.000000000000000e+00, // itest=96: oxxxxx#10 nsp=-1 mass=400 - 9.863939238321439e+00, 1.052153518754287e+01, // itest=96: oxxxxx#10 nsp=-1 mass=400 - -2.433105012119288e+01, -0.000000000000000e+00 } ); // itest=96: oxxxxx#10 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -1.440000000000000e+02, // itest=97: oxxxxx#10 nsp=-1 mass=-400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=97: oxxxxx#10 nsp=-1 mass=-400 - 4.931969619160719e+00, 5.260767593771432e+00, // itest=97: oxxxxx#10 nsp=-1 mass=-400 - -1.216552506059644e+01, -0.000000000000000e+00, // itest=97: oxxxxx#10 nsp=-1 mass=-400 - 9.863939238321439e+00, 1.052153518754287e+01, // itest=97: oxxxxx#10 nsp=-1 mass=-400 - -2.433105012119288e+01, -0.000000000000000e+00 } ); // itest=97: oxxxxx#10 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -1.440000000000000e+02, // itest=98: ixxxxx#11 nsp=-1 mass=400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=98: ixxxxx#11 nsp=-1 mass=400 - 1.664100588675688e+01, -1.775040627920733e+01, // itest=98: ixxxxx#11 nsp=-1 mass=400 - -1.442220510185596e+01, -0.000000000000000e+00, // itest=98: ixxxxx#11 nsp=-1 mass=400 - -8.320502943378436e+00, 8.875203139603666e+00, // itest=98: ixxxxx#11 nsp=-1 mass=400 - 7.211102550927978e+00, 0.000000000000000e+00 } ); // itest=98: ixxxxx#11 nsp=-1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -1.440000000000000e+02, // itest=99: ixxxxx#11 nsp=-1 mass=-400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=99: ixxxxx#11 nsp=-1 mass=-400 - 1.664100588675688e+01, -1.775040627920733e+01, // itest=99: ixxxxx#11 nsp=-1 mass=-400 - -1.442220510185596e+01, -0.000000000000000e+00, // itest=99: ixxxxx#11 nsp=-1 mass=-400 - 8.320502943378436e+00, -8.875203139603666e+00, // itest=99: ixxxxx#11 nsp=-1 mass=-400 - -7.211102550927978e+00, -0.000000000000000e+00 } ); // itest=99: ixxxxx#11 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 1.440000000000000e+02, // itest=100: vxxxxx#11 nsp=-1 mass=400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=100: vxxxxx#11 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=100: vxxxxx#11 nsp=-1 mass=400 - 2.321373168788980e-01, 5.158607041753289e-01, // itest=100: vxxxxx#11 nsp=-1 mass=400 - 2.476131380041579e-01, -4.836194101643708e-01, // itest=100: vxxxxx#11 nsp=-1 mass=400 - 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=100: vxxxxx#11 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 1.440000000000000e+02, // itest=101: vxxxxx#11 nsp=-1 mass=-400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=101: vxxxxx#11 nsp=-1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=101: vxxxxx#11 nsp=-1 mass=-400 - 2.321373168788980e-01, 5.158607041753289e-01, // itest=101: vxxxxx#11 nsp=-1 mass=-400 - 2.476131380041579e-01, -4.836194101643708e-01, // itest=101: vxxxxx#11 nsp=-1 mass=-400 - 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=101: vxxxxx#11 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 1.440000000000000e+02, // itest=102: sxxxxx#11 nsp=-1 mass=400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=102: sxxxxx#11 nsp=-1 mass=400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=102: sxxxxx#11 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=102: sxxxxx#11 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=102: sxxxxx#11 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=102: sxxxxx#11 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 1.440000000000000e+02, // itest=103: sxxxxx#11 nsp=-1 mass=-400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=103: sxxxxx#11 nsp=-1 mass=-400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=103: sxxxxx#11 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=103: sxxxxx#11 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=103: sxxxxx#11 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=103: sxxxxx#11 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 1.440000000000000e+02, // itest=104: oxxxxx#11 nsp=-1 mass=400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=104: oxxxxx#11 nsp=-1 mass=400 - -8.320502943378436e+00, -8.875203139603666e+00, // itest=104: oxxxxx#11 nsp=-1 mass=400 - 7.211102550927978e+00, 0.000000000000000e+00, // itest=104: oxxxxx#11 nsp=-1 mass=400 - 1.664100588675688e+01, 1.775040627920733e+01, // itest=104: oxxxxx#11 nsp=-1 mass=400 - -1.442220510185596e+01, -0.000000000000000e+00 } ); // itest=104: oxxxxx#11 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 1.440000000000000e+02, // itest=105: oxxxxx#11 nsp=-1 mass=-400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=105: oxxxxx#11 nsp=-1 mass=-400 - 8.320502943378436e+00, 8.875203139603666e+00, // itest=105: oxxxxx#11 nsp=-1 mass=-400 - -7.211102550927978e+00, -0.000000000000000e+00, // itest=105: oxxxxx#11 nsp=-1 mass=-400 - 1.664100588675688e+01, 1.775040627920733e+01, // itest=105: oxxxxx#11 nsp=-1 mass=-400 - -1.442220510185596e+01, -0.000000000000000e+00 } ); // itest=105: oxxxxx#11 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=106: ixxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=106: ixxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=106: ixxxxx#12 nsp=-1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00, // itest=106: ixxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=106: ixxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=106: ixxxxx#12 nsp=-1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=107: ixxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=107: ixxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=107: ixxxxx#12 nsp=-1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00, // itest=107: ixxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=107: ixxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=107: ixxxxx#12 nsp=-1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=108: ipzxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=108: ipzxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=108: ipzxxx#12 nsp=-1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00, // itest=108: ipzxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=108: ipzxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=108: ipzxxx#12 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=109: vxxxxx#12 nsp=-1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=109: vxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=109: vxxxxx#12 nsp=-1 mass=0 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=109: vxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, -7.071067811865476e-01, // itest=109: vxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=109: vxxxxx#12 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=110: vxxxxx#12 nsp=-1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=110: vxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=110: vxxxxx#12 nsp=-1 mass=0 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=110: vxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, -7.071067811865476e-01, // itest=110: vxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=110: vxxxxx#12 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=111: sxxxxx#12 nsp=-1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=111: sxxxxx#12 nsp=-1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=111: sxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=111: sxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=111: sxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=111: sxxxxx#12 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=112: sxxxxx#12 nsp=-1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=112: sxxxxx#12 nsp=-1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=112: sxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=112: sxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=112: sxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=112: sxxxxx#12 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=113: oxxxxx#12 nsp=-1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=113: oxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=113: oxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=113: oxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=113: oxxxxx#12 nsp=-1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=113: oxxxxx#12 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=114: oxxxxx#12 nsp=-1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=114: oxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=114: oxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=114: oxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=114: oxxxxx#12 nsp=-1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=114: oxxxxx#12 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=115: opzxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=115: opzxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=115: opzxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=115: opzxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=115: opzxxx#12 nsp=-1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=115: opzxxx#12 nsp=-1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=116: ixxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=116: ixxxxx#13 nsp=-1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00, // itest=116: ixxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=116: ixxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=116: ixxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=116: ixxxxx#13 nsp=-1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=117: ixxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=117: ixxxxx#13 nsp=-1 mass=0 - -3.162277660168379e+01, -0.000000000000000e+00, // itest=117: ixxxxx#13 nsp=-1 mass=0 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=117: ixxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=117: ixxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=117: ixxxxx#13 nsp=-1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=118: imzxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=118: imzxxx#13 nsp=-1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00, // itest=118: imzxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=118: imzxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=118: imzxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=118: imzxxx#13 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=119: vxxxxx#13 nsp=-1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=119: vxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=119: vxxxxx#13 nsp=-1 mass=0 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=119: vxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 7.071067811865476e-01, // itest=119: vxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=119: vxxxxx#13 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=120: vxxxxx#13 nsp=-1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=120: vxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=120: vxxxxx#13 nsp=-1 mass=0 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=120: vxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 7.071067811865476e-01, // itest=120: vxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=120: vxxxxx#13 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=121: sxxxxx#13 nsp=-1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=121: sxxxxx#13 nsp=-1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=121: sxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=121: sxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=121: sxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=121: sxxxxx#13 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=122: sxxxxx#13 nsp=-1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=122: sxxxxx#13 nsp=-1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=122: sxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=122: sxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=122: sxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=122: sxxxxx#13 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=123: oxxxxx#13 nsp=-1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=123: oxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=123: oxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=123: oxxxxx#13 nsp=-1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00, // itest=123: oxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=123: oxxxxx#13 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=124: oxxxxx#13 nsp=-1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=124: oxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=124: oxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=124: oxxxxx#13 nsp=-1 mass=0 - -3.162277660168379e+01, -0.000000000000000e+00, // itest=124: oxxxxx#13 nsp=-1 mass=0 - -0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=124: oxxxxx#13 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=125: omzxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=125: omzxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=125: omzxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=125: omzxxx#13 nsp=-1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00, // itest=125: omzxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=125: omzxxx#13 nsp=-1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=126: ixxxxx#14 nsp=-1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=126: ixxxxx#14 nsp=-1 mass=0 - 1.341640786499874e+01, -1.788854381999832e+01, // itest=126: ixxxxx#14 nsp=-1 mass=0 - -2.236067977499790e+01, 0.000000000000000e+00, // itest=126: ixxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=126: ixxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=126: ixxxxx#14 nsp=-1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=127: ixxxxx#14 nsp=-1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=127: ixxxxx#14 nsp=-1 mass=0 - 1.341640786499874e+01, -1.788854381999832e+01, // itest=127: ixxxxx#14 nsp=-1 mass=0 - -2.236067977499790e+01, 0.000000000000000e+00, // itest=127: ixxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=127: ixxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=127: ixxxxx#14 nsp=-1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=128: ixzxxx#14 nsp=-1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=128: ixzxxx#14 nsp=-1 mass=0 - 1.341640786499874e+01, -1.788854381999832e+01, // itest=128: ixzxxx#14 nsp=-1 mass=0 - -2.236067977499790e+01, 0.000000000000000e+00, // itest=128: ixzxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=128: ixzxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=128: ixzxxx#14 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=129: vxxxxx#14 nsp=-1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=129: vxxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=129: vxxxxx#14 nsp=-1 mass=0 - -0.000000000000000e+00, 5.656854249492381e-01, // itest=129: vxxxxx#14 nsp=-1 mass=0 - -0.000000000000000e+00, -4.242640687119285e-01, // itest=129: vxxxxx#14 nsp=-1 mass=0 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=129: vxxxxx#14 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=130: vxxxxx#14 nsp=-1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=130: vxxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=130: vxxxxx#14 nsp=-1 mass=0 - -0.000000000000000e+00, 5.656854249492381e-01, // itest=130: vxxxxx#14 nsp=-1 mass=0 - -0.000000000000000e+00, -4.242640687119285e-01, // itest=130: vxxxxx#14 nsp=-1 mass=0 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=130: vxxxxx#14 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=131: sxxxxx#14 nsp=-1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=131: sxxxxx#14 nsp=-1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=131: sxxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=131: sxxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=131: sxxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=131: sxxxxx#14 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=132: sxxxxx#14 nsp=-1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=132: sxxxxx#14 nsp=-1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=132: sxxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=132: sxxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=132: sxxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=132: sxxxxx#14 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=133: oxxxxx#14 nsp=-1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=133: oxxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=133: oxxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=133: oxxxxx#14 nsp=-1 mass=0 - 1.341640786499874e+01, 1.788854381999832e+01, // itest=133: oxxxxx#14 nsp=-1 mass=0 - -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=133: oxxxxx#14 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=134: oxxxxx#14 nsp=-1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=134: oxxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=134: oxxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=134: oxxxxx#14 nsp=-1 mass=0 - 1.341640786499874e+01, 1.788854381999832e+01, // itest=134: oxxxxx#14 nsp=-1 mass=0 - -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=134: oxxxxx#14 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=135: oxzxxx#14 nsp=-1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=135: oxzxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=135: oxzxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=135: oxzxxx#14 nsp=-1 mass=0 - 1.341640786499874e+01, 1.788854381999832e+01, // itest=135: oxzxxx#14 nsp=-1 mass=0 - -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=135: oxzxxx#14 nsp=-1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=136: ixxxxx#15 nsp=-1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=136: ixxxxx#15 nsp=-1 mass=0 - 6.000000000000000e+00, -8.000000000000000e+00, // itest=136: ixxxxx#15 nsp=-1 mass=0 - -3.000000000000000e+01, 0.000000000000000e+00, // itest=136: ixxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=136: ixxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=136: ixxxxx#15 nsp=-1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=137: ixxxxx#15 nsp=-1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=137: ixxxxx#15 nsp=-1 mass=0 - 6.000000000000000e+00, -8.000000000000000e+00, // itest=137: ixxxxx#15 nsp=-1 mass=0 - -3.000000000000000e+01, 0.000000000000000e+00, // itest=137: ixxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=137: ixxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=137: ixxxxx#15 nsp=-1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=138: ixzxxx#15 nsp=-1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=138: ixzxxx#15 nsp=-1 mass=0 - 6.000000000000000e+00, -8.000000000000000e+00, // itest=138: ixzxxx#15 nsp=-1 mass=0 - -3.000000000000000e+01, 0.000000000000000e+00, // itest=138: ixzxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=138: ixzxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=138: ixzxxx#15 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=139: vxxxxx#15 nsp=-1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=139: vxxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=139: vxxxxx#15 nsp=-1 mass=0 - -3.394112549695428e-01, 5.656854249492381e-01, // itest=139: vxxxxx#15 nsp=-1 mass=0 - -4.525483399593904e-01, -4.242640687119285e-01, // itest=139: vxxxxx#15 nsp=-1 mass=0 - 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=139: vxxxxx#15 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=140: vxxxxx#15 nsp=-1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=140: vxxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=140: vxxxxx#15 nsp=-1 mass=0 - -3.394112549695428e-01, 5.656854249492381e-01, // itest=140: vxxxxx#15 nsp=-1 mass=0 - -4.525483399593904e-01, -4.242640687119285e-01, // itest=140: vxxxxx#15 nsp=-1 mass=0 - 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=140: vxxxxx#15 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=141: sxxxxx#15 nsp=-1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=141: sxxxxx#15 nsp=-1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=141: sxxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=141: sxxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=141: sxxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=141: sxxxxx#15 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=142: sxxxxx#15 nsp=-1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=142: sxxxxx#15 nsp=-1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=142: sxxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=142: sxxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=142: sxxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=142: sxxxxx#15 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=143: oxxxxx#15 nsp=-1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=143: oxxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=143: oxxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=143: oxxxxx#15 nsp=-1 mass=0 - 6.000000000000000e+00, 8.000000000000000e+00, // itest=143: oxxxxx#15 nsp=-1 mass=0 - -3.000000000000000e+01, 0.000000000000000e+00 } ); // itest=143: oxxxxx#15 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=144: oxxxxx#15 nsp=-1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=144: oxxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=144: oxxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=144: oxxxxx#15 nsp=-1 mass=0 - 6.000000000000000e+00, 8.000000000000000e+00, // itest=144: oxxxxx#15 nsp=-1 mass=0 - -3.000000000000000e+01, 0.000000000000000e+00 } ); // itest=144: oxxxxx#15 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=145: oxzxxx#15 nsp=-1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=145: oxzxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=145: oxzxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=145: oxzxxx#15 nsp=-1 mass=0 - 6.000000000000000e+00, 8.000000000000000e+00, // itest=145: oxzxxx#15 nsp=-1 mass=0 - -3.000000000000000e+01, 0.000000000000000e+00 } ); // itest=145: oxzxxx#15 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=146: ixxxxx#0 nsp=1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=146: ixxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=146: ixxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=146: ixxxxx#0 nsp=1 mass=0 - 3.162277660168379e+01, 0.000000000000000e+00, // itest=146: ixxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=146: ixxxxx#0 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=147: ixxxxx#0 nsp=1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=147: ixxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=147: ixxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=147: ixxxxx#0 nsp=1 mass=0 - 3.162277660168379e+01, 0.000000000000000e+00, // itest=147: ixxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=147: ixxxxx#0 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=148: ipzxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=148: ipzxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=148: ipzxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=148: ipzxxx#0 nsp=1 mass=0 - 3.162277660168379e+01, 0.000000000000000e+00, // itest=148: ipzxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=148: ipzxxx#0 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=149: vxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=149: vxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=149: vxxxxx#0 nsp=1 mass=0 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=149: vxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 7.071067811865476e-01, // itest=149: vxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=149: vxxxxx#0 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=150: vxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=150: vxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=150: vxxxxx#0 nsp=1 mass=0 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=150: vxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 7.071067811865476e-01, // itest=150: vxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=150: vxxxxx#0 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=151: sxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=151: sxxxxx#0 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=151: sxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=151: sxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=151: sxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=151: sxxxxx#0 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=152: sxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=152: sxxxxx#0 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=152: sxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=152: sxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=152: sxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=152: sxxxxx#0 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=153: oxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=153: oxxxxx#0 nsp=1 mass=0 - 3.162277660168379e+01, 0.000000000000000e+00, // itest=153: oxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=153: oxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=153: oxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=153: oxxxxx#0 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=154: oxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=154: oxxxxx#0 nsp=1 mass=0 - 3.162277660168379e+01, 0.000000000000000e+00, // itest=154: oxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=154: oxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=154: oxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=154: oxxxxx#0 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=155: opzxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=155: opzxxx#0 nsp=1 mass=0 - 3.162277660168379e+01, 0.000000000000000e+00, // itest=155: opzxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=155: opzxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=155: opzxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=155: opzxxx#0 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=156: ixxxxx#1 nsp=1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=156: ixxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=156: ixxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=156: ixxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=156: ixxxxx#1 nsp=1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=156: ixxxxx#1 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=157: ixxxxx#1 nsp=1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=157: ixxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=157: ixxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=157: ixxxxx#1 nsp=1 mass=0 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=157: ixxxxx#1 nsp=1 mass=0 - -3.162277660168379e+01, -0.000000000000000e+00 } ); // itest=157: ixxxxx#1 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=158: imzxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=158: imzxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=158: imzxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=158: imzxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=158: imzxxx#1 nsp=1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=158: imzxxx#1 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=159: vxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=159: vxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=159: vxxxxx#1 nsp=1 mass=0 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=159: vxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, -7.071067811865476e-01, // itest=159: vxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=159: vxxxxx#1 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=160: vxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=160: vxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=160: vxxxxx#1 nsp=1 mass=0 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=160: vxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, -7.071067811865476e-01, // itest=160: vxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=160: vxxxxx#1 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=161: sxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=161: sxxxxx#1 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=161: sxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=161: sxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=161: sxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=161: sxxxxx#1 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=162: sxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=162: sxxxxx#1 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=162: sxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=162: sxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=162: sxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=162: sxxxxx#1 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=163: oxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=163: oxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=163: oxxxxx#1 nsp=1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00, // itest=163: oxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=163: oxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=163: oxxxxx#1 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=164: oxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=164: oxxxxx#1 nsp=1 mass=0 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=164: oxxxxx#1 nsp=1 mass=0 - -3.162277660168379e+01, -0.000000000000000e+00, // itest=164: oxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=164: oxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=164: oxxxxx#1 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=165: omzxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=165: omzxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=165: omzxxx#1 nsp=1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00, // itest=165: omzxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=165: omzxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=165: omzxxx#1 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=166: ixxxxx#2 nsp=1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=166: ixxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=166: ixxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=166: ixxxxx#2 nsp=1 mass=0 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=166: ixxxxx#2 nsp=1 mass=0 - 1.341640786499874e+01, 1.788854381999832e+01 } ); // itest=166: ixxxxx#2 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=167: ixxxxx#2 nsp=1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=167: ixxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=167: ixxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=167: ixxxxx#2 nsp=1 mass=0 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=167: ixxxxx#2 nsp=1 mass=0 - 1.341640786499874e+01, 1.788854381999832e+01 } ); // itest=167: ixxxxx#2 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=168: ixzxxx#2 nsp=1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=168: ixzxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=168: ixzxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=168: ixzxxx#2 nsp=1 mass=0 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=168: ixzxxx#2 nsp=1 mass=0 - 1.341640786499874e+01, 1.788854381999832e+01 } ); // itest=168: ixzxxx#2 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=169: vxxxxx#2 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=169: vxxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=169: vxxxxx#2 nsp=1 mass=0 - -0.000000000000000e+00, -5.656854249492381e-01, // itest=169: vxxxxx#2 nsp=1 mass=0 - -0.000000000000000e+00, 4.242640687119285e-01, // itest=169: vxxxxx#2 nsp=1 mass=0 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=169: vxxxxx#2 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=170: vxxxxx#2 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=170: vxxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=170: vxxxxx#2 nsp=1 mass=0 - -0.000000000000000e+00, -5.656854249492381e-01, // itest=170: vxxxxx#2 nsp=1 mass=0 - -0.000000000000000e+00, 4.242640687119285e-01, // itest=170: vxxxxx#2 nsp=1 mass=0 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=170: vxxxxx#2 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=171: sxxxxx#2 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=171: sxxxxx#2 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=171: sxxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=171: sxxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=171: sxxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=171: sxxxxx#2 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=172: sxxxxx#2 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=172: sxxxxx#2 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=172: sxxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=172: sxxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=172: sxxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=172: sxxxxx#2 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=173: oxxxxx#2 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=173: oxxxxx#2 nsp=1 mass=0 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=173: oxxxxx#2 nsp=1 mass=0 - 1.341640786499874e+01, -1.788854381999832e+01, // itest=173: oxxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=173: oxxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=173: oxxxxx#2 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=174: oxxxxx#2 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=174: oxxxxx#2 nsp=1 mass=0 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=174: oxxxxx#2 nsp=1 mass=0 - 1.341640786499874e+01, -1.788854381999832e+01, // itest=174: oxxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=174: oxxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=174: oxxxxx#2 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=175: oxzxxx#2 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=175: oxzxxx#2 nsp=1 mass=0 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=175: oxzxxx#2 nsp=1 mass=0 - 1.341640786499874e+01, -1.788854381999832e+01, // itest=175: oxzxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=175: oxzxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=175: oxzxxx#2 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=176: ixxxxx#3 nsp=1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=176: ixxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=176: ixxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=176: ixxxxx#3 nsp=1 mass=0 - 3.000000000000000e+01, 0.000000000000000e+00, // itest=176: ixxxxx#3 nsp=1 mass=0 - 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=176: ixxxxx#3 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=177: ixxxxx#3 nsp=1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=177: ixxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=177: ixxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=177: ixxxxx#3 nsp=1 mass=0 - 3.000000000000000e+01, 0.000000000000000e+00, // itest=177: ixxxxx#3 nsp=1 mass=0 - 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=177: ixxxxx#3 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=178: ixzxxx#3 nsp=1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=178: ixzxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=178: ixzxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=178: ixzxxx#3 nsp=1 mass=0 - 3.000000000000000e+01, 0.000000000000000e+00, // itest=178: ixzxxx#3 nsp=1 mass=0 - 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=178: ixzxxx#3 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=179: vxxxxx#3 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=179: vxxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=179: vxxxxx#3 nsp=1 mass=0 - -3.394112549695428e-01, -5.656854249492381e-01, // itest=179: vxxxxx#3 nsp=1 mass=0 - -4.525483399593904e-01, 4.242640687119285e-01, // itest=179: vxxxxx#3 nsp=1 mass=0 - 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=179: vxxxxx#3 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=180: vxxxxx#3 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=180: vxxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=180: vxxxxx#3 nsp=1 mass=0 - -3.394112549695428e-01, -5.656854249492381e-01, // itest=180: vxxxxx#3 nsp=1 mass=0 - -4.525483399593904e-01, 4.242640687119285e-01, // itest=180: vxxxxx#3 nsp=1 mass=0 - 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=180: vxxxxx#3 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=181: sxxxxx#3 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=181: sxxxxx#3 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=181: sxxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=181: sxxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=181: sxxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=181: sxxxxx#3 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=182: sxxxxx#3 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=182: sxxxxx#3 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=182: sxxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=182: sxxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=182: sxxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=182: sxxxxx#3 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=183: oxxxxx#3 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=183: oxxxxx#3 nsp=1 mass=0 - 3.000000000000000e+01, 0.000000000000000e+00, // itest=183: oxxxxx#3 nsp=1 mass=0 - 6.000000000000000e+00, -8.000000000000000e+00, // itest=183: oxxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=183: oxxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=183: oxxxxx#3 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=184: oxxxxx#3 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=184: oxxxxx#3 nsp=1 mass=0 - 3.000000000000000e+01, 0.000000000000000e+00, // itest=184: oxxxxx#3 nsp=1 mass=0 - 6.000000000000000e+00, -8.000000000000000e+00, // itest=184: oxxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=184: oxxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=184: oxxxxx#3 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=185: oxzxxx#3 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=185: oxzxxx#3 nsp=1 mass=0 - 3.000000000000000e+01, 0.000000000000000e+00, // itest=185: oxzxxx#3 nsp=1 mass=0 - 6.000000000000000e+00, -8.000000000000000e+00, // itest=185: oxzxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=185: oxzxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=185: oxzxxx#3 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 4.000000000000000e+02, // itest=186: ixxxxx#4 nsp=1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=186: ixxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=186: ixxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=186: ixxxxx#4 nsp=1 mass=0 - 1.000000000000000e+01, 0.000000000000000e+00, // itest=186: ixxxxx#4 nsp=1 mass=0 - 1.800000000000000e+01, 2.400000000000000e+01 } ); // itest=186: ixxxxx#4 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 4.000000000000000e+02, // itest=187: ixxxxx#4 nsp=1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=187: ixxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=187: ixxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=187: ixxxxx#4 nsp=1 mass=0 - 1.000000000000000e+01, 0.000000000000000e+00, // itest=187: ixxxxx#4 nsp=1 mass=0 - 1.800000000000000e+01, 2.400000000000000e+01 } ); // itest=187: ixxxxx#4 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 4.000000000000000e+02, // itest=188: ixzxxx#4 nsp=1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=188: ixzxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=188: ixzxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=188: ixzxxx#4 nsp=1 mass=0 - 1.000000000000000e+01, 0.000000000000000e+00, // itest=188: ixzxxx#4 nsp=1 mass=0 - 1.800000000000000e+01, 2.400000000000000e+01 } ); // itest=188: ixzxxx#4 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -4.000000000000000e+02, // itest=189: vxxxxx#4 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=189: vxxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=189: vxxxxx#4 nsp=1 mass=0 - 3.394112549695428e-01, -5.656854249492381e-01, // itest=189: vxxxxx#4 nsp=1 mass=0 - 4.525483399593904e-01, 4.242640687119285e-01, // itest=189: vxxxxx#4 nsp=1 mass=0 - 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=189: vxxxxx#4 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -4.000000000000000e+02, // itest=190: vxxxxx#4 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=190: vxxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=190: vxxxxx#4 nsp=1 mass=0 - 3.394112549695428e-01, -5.656854249492381e-01, // itest=190: vxxxxx#4 nsp=1 mass=0 - 4.525483399593904e-01, 4.242640687119285e-01, // itest=190: vxxxxx#4 nsp=1 mass=0 - 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=190: vxxxxx#4 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -4.000000000000000e+02, // itest=191: sxxxxx#4 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=191: sxxxxx#4 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=191: sxxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=191: sxxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=191: sxxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=191: sxxxxx#4 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -4.000000000000000e+02, // itest=192: sxxxxx#4 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=192: sxxxxx#4 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=192: sxxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=192: sxxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=192: sxxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=192: sxxxxx#4 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -4.000000000000000e+02, // itest=193: oxxxxx#4 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=193: oxxxxx#4 nsp=1 mass=0 - 1.000000000000000e+01, 0.000000000000000e+00, // itest=193: oxxxxx#4 nsp=1 mass=0 - 1.800000000000000e+01, -2.400000000000000e+01, // itest=193: oxxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=193: oxxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=193: oxxxxx#4 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -4.000000000000000e+02, // itest=194: oxxxxx#4 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=194: oxxxxx#4 nsp=1 mass=0 - 1.000000000000000e+01, 0.000000000000000e+00, // itest=194: oxxxxx#4 nsp=1 mass=0 - 1.800000000000000e+01, -2.400000000000000e+01, // itest=194: oxxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=194: oxxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=194: oxxxxx#4 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -4.000000000000000e+02, // itest=195: oxzxxx#4 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=195: oxzxxx#4 nsp=1 mass=0 - 1.000000000000000e+01, 0.000000000000000e+00, // itest=195: oxzxxx#4 nsp=1 mass=0 - 1.800000000000000e+01, -2.400000000000000e+01, // itest=195: oxzxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=195: oxzxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=195: oxzxxx#4 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=196: ixxxxx#5 nsp=1 mass=500 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=196: ixxxxx#5 nsp=1 mass=500 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=196: ixxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=196: ixxxxx#5 nsp=1 mass=500 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=196: ixxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=196: ixxxxx#5 nsp=1 mass=500 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=197: ixxxxx#5 nsp=1 mass=-500 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=197: ixxxxx#5 nsp=1 mass=-500 - -2.236067977499790e+01, 0.000000000000000e+00, // itest=197: ixxxxx#5 nsp=1 mass=-500 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=197: ixxxxx#5 nsp=1 mass=-500 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=197: ixxxxx#5 nsp=1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=197: ixxxxx#5 nsp=1 mass=-500 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=198: vxxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=198: vxxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=198: vxxxxx#5 nsp=1 mass=500 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=198: vxxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 7.071067811865476e-01, // itest=198: vxxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=198: vxxxxx#5 nsp=1 mass=500 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=199: vxxxxx#5 nsp=1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=199: vxxxxx#5 nsp=1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=199: vxxxxx#5 nsp=1 mass=-500 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=199: vxxxxx#5 nsp=1 mass=-500 - 0.000000000000000e+00, 7.071067811865476e-01, // itest=199: vxxxxx#5 nsp=1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=199: vxxxxx#5 nsp=1 mass=-500 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=200: sxxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=200: sxxxxx#5 nsp=1 mass=500 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=200: sxxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=200: sxxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=200: sxxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=200: sxxxxx#5 nsp=1 mass=500 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=201: sxxxxx#5 nsp=1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=201: sxxxxx#5 nsp=1 mass=-500 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=201: sxxxxx#5 nsp=1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=201: sxxxxx#5 nsp=1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=201: sxxxxx#5 nsp=1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=201: sxxxxx#5 nsp=1 mass=-500 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=202: oxxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=202: oxxxxx#5 nsp=1 mass=500 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=202: oxxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=202: oxxxxx#5 nsp=1 mass=500 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=202: oxxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=202: oxxxxx#5 nsp=1 mass=500 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=203: oxxxxx#5 nsp=1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=203: oxxxxx#5 nsp=1 mass=-500 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=203: oxxxxx#5 nsp=1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=203: oxxxxx#5 nsp=1 mass=-500 - -2.236067977499790e+01, 0.000000000000000e+00, // itest=203: oxxxxx#5 nsp=1 mass=-500 - -0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=203: oxxxxx#5 nsp=1 mass=-500 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -3.000000000000000e+02, // itest=204: ixxxxx#6 nsp=1 mass=400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=204: ixxxxx#6 nsp=1 mass=400 - 1.414213562373095e+01, 0.000000000000000e+00, // itest=204: ixxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=204: ixxxxx#6 nsp=1 mass=400 - 2.828427124746190e+01, 0.000000000000000e+00, // itest=204: ixxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=204: ixxxxx#6 nsp=1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -3.000000000000000e+02, // itest=205: ixxxxx#6 nsp=1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=205: ixxxxx#6 nsp=1 mass=-400 - -1.414213562373095e+01, -0.000000000000000e+00, // itest=205: ixxxxx#6 nsp=1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=205: ixxxxx#6 nsp=1 mass=-400 - 2.828427124746190e+01, 0.000000000000000e+00, // itest=205: ixxxxx#6 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=205: ixxxxx#6 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 3.000000000000000e+02, // itest=206: vxxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=206: vxxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=206: vxxxxx#6 nsp=1 mass=400 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=206: vxxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, 7.071067811865476e-01, // itest=206: vxxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=206: vxxxxx#6 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 3.000000000000000e+02, // itest=207: vxxxxx#6 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=207: vxxxxx#6 nsp=1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=207: vxxxxx#6 nsp=1 mass=-400 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=207: vxxxxx#6 nsp=1 mass=-400 - 0.000000000000000e+00, 7.071067811865476e-01, // itest=207: vxxxxx#6 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=207: vxxxxx#6 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 3.000000000000000e+02, // itest=208: sxxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=208: sxxxxx#6 nsp=1 mass=400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=208: sxxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=208: sxxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=208: sxxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=208: sxxxxx#6 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 3.000000000000000e+02, // itest=209: sxxxxx#6 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=209: sxxxxx#6 nsp=1 mass=-400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=209: sxxxxx#6 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=209: sxxxxx#6 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=209: sxxxxx#6 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=209: sxxxxx#6 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 3.000000000000000e+02, // itest=210: oxxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=210: oxxxxx#6 nsp=1 mass=400 - 2.828427124746190e+01, 0.000000000000000e+00, // itest=210: oxxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=210: oxxxxx#6 nsp=1 mass=400 - 1.414213562373095e+01, 0.000000000000000e+00, // itest=210: oxxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=210: oxxxxx#6 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 3.000000000000000e+02, // itest=211: oxxxxx#6 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=211: oxxxxx#6 nsp=1 mass=-400 - 2.828427124746190e+01, 0.000000000000000e+00, // itest=211: oxxxxx#6 nsp=1 mass=-400 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=211: oxxxxx#6 nsp=1 mass=-400 - -1.414213562373095e+01, -0.000000000000000e+00, // itest=211: oxxxxx#6 nsp=1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=211: oxxxxx#6 nsp=1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 3.000000000000000e+02, // itest=212: ixxxxx#7 nsp=1 mass=400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=212: ixxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=212: ixxxxx#7 nsp=1 mass=400 - -1.414213562373095e+01, 0.000000000000000e+00, // itest=212: ixxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=212: ixxxxx#7 nsp=1 mass=400 - -2.828427124746190e+01, 0.000000000000000e+00 } ); // itest=212: ixxxxx#7 nsp=1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 3.000000000000000e+02, // itest=213: ixxxxx#7 nsp=1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=213: ixxxxx#7 nsp=1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=213: ixxxxx#7 nsp=1 mass=-400 - 1.414213562373095e+01, -0.000000000000000e+00, // itest=213: ixxxxx#7 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=213: ixxxxx#7 nsp=1 mass=-400 - -2.828427124746190e+01, 0.000000000000000e+00 } ); // itest=213: ixxxxx#7 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -3.000000000000000e+02, // itest=214: vxxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=214: vxxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=214: vxxxxx#7 nsp=1 mass=400 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=214: vxxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, -7.071067811865476e-01, // itest=214: vxxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=214: vxxxxx#7 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -3.000000000000000e+02, // itest=215: vxxxxx#7 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=215: vxxxxx#7 nsp=1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=215: vxxxxx#7 nsp=1 mass=-400 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=215: vxxxxx#7 nsp=1 mass=-400 - 0.000000000000000e+00, -7.071067811865476e-01, // itest=215: vxxxxx#7 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=215: vxxxxx#7 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -3.000000000000000e+02, // itest=216: sxxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=216: sxxxxx#7 nsp=1 mass=400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=216: sxxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=216: sxxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=216: sxxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=216: sxxxxx#7 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -3.000000000000000e+02, // itest=217: sxxxxx#7 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=217: sxxxxx#7 nsp=1 mass=-400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=217: sxxxxx#7 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=217: sxxxxx#7 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=217: sxxxxx#7 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=217: sxxxxx#7 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -3.000000000000000e+02, // itest=218: oxxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=218: oxxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=218: oxxxxx#7 nsp=1 mass=400 - -2.828427124746190e+01, 0.000000000000000e+00, // itest=218: oxxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=218: oxxxxx#7 nsp=1 mass=400 - -1.414213562373095e+01, 0.000000000000000e+00 } ); // itest=218: oxxxxx#7 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -3.000000000000000e+02, // itest=219: oxxxxx#7 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=219: oxxxxx#7 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=219: oxxxxx#7 nsp=1 mass=-400 - -2.828427124746190e+01, 0.000000000000000e+00, // itest=219: oxxxxx#7 nsp=1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=219: oxxxxx#7 nsp=1 mass=-400 - 1.414213562373095e+01, -0.000000000000000e+00 } ); // itest=219: oxxxxx#7 nsp=1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=220: ixxxxx#8 nsp=1 mass=400 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=220: ixxxxx#8 nsp=1 mass=400 - 1.000000000000000e+01, 0.000000000000000e+00, // itest=220: ixxxxx#8 nsp=1 mass=400 - 5.999999999999999e+00, 7.999999999999999e+00, // itest=220: ixxxxx#8 nsp=1 mass=400 - 2.000000000000000e+01, 0.000000000000000e+00, // itest=220: ixxxxx#8 nsp=1 mass=400 - 1.200000000000000e+01, 1.600000000000000e+01 } ); // itest=220: ixxxxx#8 nsp=1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=221: ixxxxx#8 nsp=1 mass=-400 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=221: ixxxxx#8 nsp=1 mass=-400 - -1.000000000000000e+01, -0.000000000000000e+00, // itest=221: ixxxxx#8 nsp=1 mass=-400 - -5.999999999999999e+00, -7.999999999999999e+00, // itest=221: ixxxxx#8 nsp=1 mass=-400 - 2.000000000000000e+01, 0.000000000000000e+00, // itest=221: ixxxxx#8 nsp=1 mass=-400 - 1.200000000000000e+01, 1.600000000000000e+01 } ); // itest=221: ixxxxx#8 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=222: vxxxxx#8 nsp=1 mass=400 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=222: vxxxxx#8 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=222: vxxxxx#8 nsp=1 mass=400 - 0.000000000000000e+00, -5.656854249492381e-01, // itest=222: vxxxxx#8 nsp=1 mass=400 - 0.000000000000000e+00, 4.242640687119285e-01, // itest=222: vxxxxx#8 nsp=1 mass=400 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=222: vxxxxx#8 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=223: vxxxxx#8 nsp=1 mass=-400 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=223: vxxxxx#8 nsp=1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=223: vxxxxx#8 nsp=1 mass=-400 - -0.000000000000000e+00, -5.656854249492381e-01, // itest=223: vxxxxx#8 nsp=1 mass=-400 - -0.000000000000000e+00, 4.242640687119285e-01, // itest=223: vxxxxx#8 nsp=1 mass=-400 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=223: vxxxxx#8 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=224: sxxxxx#8 nsp=1 mass=400 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=224: sxxxxx#8 nsp=1 mass=400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=224: sxxxxx#8 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=224: sxxxxx#8 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=224: sxxxxx#8 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=224: sxxxxx#8 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=225: sxxxxx#8 nsp=1 mass=-400 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=225: sxxxxx#8 nsp=1 mass=-400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=225: sxxxxx#8 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=225: sxxxxx#8 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=225: sxxxxx#8 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=225: sxxxxx#8 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=226: oxxxxx#8 nsp=1 mass=400 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=226: oxxxxx#8 nsp=1 mass=400 - 2.000000000000000e+01, 0.000000000000000e+00, // itest=226: oxxxxx#8 nsp=1 mass=400 - 1.200000000000000e+01, -1.600000000000000e+01, // itest=226: oxxxxx#8 nsp=1 mass=400 - 1.000000000000000e+01, 0.000000000000000e+00, // itest=226: oxxxxx#8 nsp=1 mass=400 - 5.999999999999999e+00, -7.999999999999999e+00 } ); // itest=226: oxxxxx#8 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=227: oxxxxx#8 nsp=1 mass=-400 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=227: oxxxxx#8 nsp=1 mass=-400 - 2.000000000000000e+01, 0.000000000000000e+00, // itest=227: oxxxxx#8 nsp=1 mass=-400 - 1.200000000000000e+01, -1.600000000000000e+01, // itest=227: oxxxxx#8 nsp=1 mass=-400 - -1.000000000000000e+01, -0.000000000000000e+00, // itest=227: oxxxxx#8 nsp=1 mass=-400 - -5.999999999999999e+00, 7.999999999999999e+00 } ); // itest=227: oxxxxx#8 nsp=1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=228: ixxxxx#9 nsp=1 mass=400 - 2.400000000000000e+02, 1.800000000000000e+02, // itest=228: ixxxxx#9 nsp=1 mass=400 - 1.000000000000000e+01, 0.000000000000000e+00, // itest=228: ixxxxx#9 nsp=1 mass=400 - -7.999999999999999e+00, -5.999999999999999e+00, // itest=228: ixxxxx#9 nsp=1 mass=400 - 2.000000000000000e+01, 0.000000000000000e+00, // itest=228: ixxxxx#9 nsp=1 mass=400 - -1.600000000000000e+01, -1.200000000000000e+01 } ); // itest=228: ixxxxx#9 nsp=1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=229: ixxxxx#9 nsp=1 mass=-400 - 2.400000000000000e+02, 1.800000000000000e+02, // itest=229: ixxxxx#9 nsp=1 mass=-400 - -1.000000000000000e+01, -0.000000000000000e+00, // itest=229: ixxxxx#9 nsp=1 mass=-400 - 7.999999999999999e+00, 5.999999999999999e+00, // itest=229: ixxxxx#9 nsp=1 mass=-400 - 2.000000000000000e+01, 0.000000000000000e+00, // itest=229: ixxxxx#9 nsp=1 mass=-400 - -1.600000000000000e+01, -1.200000000000000e+01 } ); // itest=229: ixxxxx#9 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=230: vxxxxx#9 nsp=1 mass=400 - -2.400000000000000e+02, -1.800000000000000e+02, // itest=230: vxxxxx#9 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=230: vxxxxx#9 nsp=1 mass=400 - 0.000000000000000e+00, 4.242640687119285e-01, // itest=230: vxxxxx#9 nsp=1 mass=400 - 0.000000000000000e+00, -5.656854249492381e-01, // itest=230: vxxxxx#9 nsp=1 mass=400 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=230: vxxxxx#9 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=231: vxxxxx#9 nsp=1 mass=-400 - -2.400000000000000e+02, -1.800000000000000e+02, // itest=231: vxxxxx#9 nsp=1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=231: vxxxxx#9 nsp=1 mass=-400 - 0.000000000000000e+00, 4.242640687119285e-01, // itest=231: vxxxxx#9 nsp=1 mass=-400 - 0.000000000000000e+00, -5.656854249492381e-01, // itest=231: vxxxxx#9 nsp=1 mass=-400 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=231: vxxxxx#9 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=232: sxxxxx#9 nsp=1 mass=400 - -2.400000000000000e+02, -1.800000000000000e+02, // itest=232: sxxxxx#9 nsp=1 mass=400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=232: sxxxxx#9 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=232: sxxxxx#9 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=232: sxxxxx#9 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=232: sxxxxx#9 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=233: sxxxxx#9 nsp=1 mass=-400 - -2.400000000000000e+02, -1.800000000000000e+02, // itest=233: sxxxxx#9 nsp=1 mass=-400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=233: sxxxxx#9 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=233: sxxxxx#9 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=233: sxxxxx#9 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=233: sxxxxx#9 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=234: oxxxxx#9 nsp=1 mass=400 - -2.400000000000000e+02, -1.800000000000000e+02, // itest=234: oxxxxx#9 nsp=1 mass=400 - 2.000000000000000e+01, 0.000000000000000e+00, // itest=234: oxxxxx#9 nsp=1 mass=400 - -1.600000000000000e+01, 1.200000000000000e+01, // itest=234: oxxxxx#9 nsp=1 mass=400 - 1.000000000000000e+01, 0.000000000000000e+00, // itest=234: oxxxxx#9 nsp=1 mass=400 - -7.999999999999999e+00, 5.999999999999999e+00 } ); // itest=234: oxxxxx#9 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=235: oxxxxx#9 nsp=1 mass=-400 - -2.400000000000000e+02, -1.800000000000000e+02, // itest=235: oxxxxx#9 nsp=1 mass=-400 - 2.000000000000000e+01, 0.000000000000000e+00, // itest=235: oxxxxx#9 nsp=1 mass=-400 - -1.600000000000000e+01, 1.200000000000000e+01, // itest=235: oxxxxx#9 nsp=1 mass=-400 - -1.000000000000000e+01, -0.000000000000000e+00, // itest=235: oxxxxx#9 nsp=1 mass=-400 - 7.999999999999999e+00, -5.999999999999999e+00 } ); // itest=235: oxxxxx#9 nsp=1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -1.440000000000000e+02, // itest=236: ixxxxx#10 nsp=1 mass=400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=236: ixxxxx#10 nsp=1 mass=400 - 1.216552506059644e+01, 0.000000000000000e+00, // itest=236: ixxxxx#10 nsp=1 mass=400 - 4.931969619160719e+00, 5.260767593771432e+00, // itest=236: ixxxxx#10 nsp=1 mass=400 - 2.433105012119288e+01, 0.000000000000000e+00, // itest=236: ixxxxx#10 nsp=1 mass=400 - 9.863939238321439e+00, 1.052153518754287e+01 } ); // itest=236: ixxxxx#10 nsp=1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -1.440000000000000e+02, // itest=237: ixxxxx#10 nsp=1 mass=-400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=237: ixxxxx#10 nsp=1 mass=-400 - -1.216552506059644e+01, -0.000000000000000e+00, // itest=237: ixxxxx#10 nsp=1 mass=-400 - -4.931969619160719e+00, -5.260767593771432e+00, // itest=237: ixxxxx#10 nsp=1 mass=-400 - 2.433105012119288e+01, 0.000000000000000e+00, // itest=237: ixxxxx#10 nsp=1 mass=-400 - 9.863939238321439e+00, 1.052153518754287e+01 } ); // itest=237: ixxxxx#10 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 1.440000000000000e+02, // itest=238: vxxxxx#10 nsp=1 mass=400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=238: vxxxxx#10 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=238: vxxxxx#10 nsp=1 mass=400 - -2.321373168788980e-01, -5.158607041753289e-01, // itest=238: vxxxxx#10 nsp=1 mass=400 - -2.476131380041579e-01, 4.836194101643708e-01, // itest=238: vxxxxx#10 nsp=1 mass=400 - 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=238: vxxxxx#10 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 1.440000000000000e+02, // itest=239: vxxxxx#10 nsp=1 mass=-400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=239: vxxxxx#10 nsp=1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=239: vxxxxx#10 nsp=1 mass=-400 - -2.321373168788980e-01, -5.158607041753289e-01, // itest=239: vxxxxx#10 nsp=1 mass=-400 - -2.476131380041579e-01, 4.836194101643708e-01, // itest=239: vxxxxx#10 nsp=1 mass=-400 - 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=239: vxxxxx#10 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 1.440000000000000e+02, // itest=240: sxxxxx#10 nsp=1 mass=400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=240: sxxxxx#10 nsp=1 mass=400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=240: sxxxxx#10 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=240: sxxxxx#10 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=240: sxxxxx#10 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=240: sxxxxx#10 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 1.440000000000000e+02, // itest=241: sxxxxx#10 nsp=1 mass=-400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=241: sxxxxx#10 nsp=1 mass=-400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=241: sxxxxx#10 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=241: sxxxxx#10 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=241: sxxxxx#10 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=241: sxxxxx#10 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 1.440000000000000e+02, // itest=242: oxxxxx#10 nsp=1 mass=400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=242: oxxxxx#10 nsp=1 mass=400 - 2.433105012119288e+01, 0.000000000000000e+00, // itest=242: oxxxxx#10 nsp=1 mass=400 - 9.863939238321439e+00, -1.052153518754287e+01, // itest=242: oxxxxx#10 nsp=1 mass=400 - 1.216552506059644e+01, 0.000000000000000e+00, // itest=242: oxxxxx#10 nsp=1 mass=400 - 4.931969619160719e+00, -5.260767593771432e+00 } ); // itest=242: oxxxxx#10 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 1.440000000000000e+02, // itest=243: oxxxxx#10 nsp=1 mass=-400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=243: oxxxxx#10 nsp=1 mass=-400 - 2.433105012119288e+01, 0.000000000000000e+00, // itest=243: oxxxxx#10 nsp=1 mass=-400 - 9.863939238321439e+00, -1.052153518754287e+01, // itest=243: oxxxxx#10 nsp=1 mass=-400 - -1.216552506059644e+01, -0.000000000000000e+00, // itest=243: oxxxxx#10 nsp=1 mass=-400 - -4.931969619160719e+00, 5.260767593771432e+00 } ); // itest=243: oxxxxx#10 nsp=1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 1.440000000000000e+02, // itest=244: ixxxxx#11 nsp=1 mass=400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=244: ixxxxx#11 nsp=1 mass=400 - 7.211102550927978e+00, 0.000000000000000e+00, // itest=244: ixxxxx#11 nsp=1 mass=400 - 8.320502943378436e+00, 8.875203139603666e+00, // itest=244: ixxxxx#11 nsp=1 mass=400 - 1.442220510185596e+01, 0.000000000000000e+00, // itest=244: ixxxxx#11 nsp=1 mass=400 - 1.664100588675688e+01, 1.775040627920733e+01 } ); // itest=244: ixxxxx#11 nsp=1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 1.440000000000000e+02, // itest=245: ixxxxx#11 nsp=1 mass=-400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=245: ixxxxx#11 nsp=1 mass=-400 - -7.211102550927978e+00, -0.000000000000000e+00, // itest=245: ixxxxx#11 nsp=1 mass=-400 - -8.320502943378436e+00, -8.875203139603666e+00, // itest=245: ixxxxx#11 nsp=1 mass=-400 - 1.442220510185596e+01, 0.000000000000000e+00, // itest=245: ixxxxx#11 nsp=1 mass=-400 - 1.664100588675688e+01, 1.775040627920733e+01 } ); // itest=245: ixxxxx#11 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -1.440000000000000e+02, // itest=246: vxxxxx#11 nsp=1 mass=400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=246: vxxxxx#11 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=246: vxxxxx#11 nsp=1 mass=400 - 2.321373168788980e-01, -5.158607041753289e-01, // itest=246: vxxxxx#11 nsp=1 mass=400 - 2.476131380041579e-01, 4.836194101643708e-01, // itest=246: vxxxxx#11 nsp=1 mass=400 - 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=246: vxxxxx#11 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -1.440000000000000e+02, // itest=247: vxxxxx#11 nsp=1 mass=-400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=247: vxxxxx#11 nsp=1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=247: vxxxxx#11 nsp=1 mass=-400 - 2.321373168788980e-01, -5.158607041753289e-01, // itest=247: vxxxxx#11 nsp=1 mass=-400 - 2.476131380041579e-01, 4.836194101643708e-01, // itest=247: vxxxxx#11 nsp=1 mass=-400 - 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=247: vxxxxx#11 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -1.440000000000000e+02, // itest=248: sxxxxx#11 nsp=1 mass=400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=248: sxxxxx#11 nsp=1 mass=400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=248: sxxxxx#11 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=248: sxxxxx#11 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=248: sxxxxx#11 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=248: sxxxxx#11 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -1.440000000000000e+02, // itest=249: sxxxxx#11 nsp=1 mass=-400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=249: sxxxxx#11 nsp=1 mass=-400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=249: sxxxxx#11 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=249: sxxxxx#11 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=249: sxxxxx#11 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=249: sxxxxx#11 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -1.440000000000000e+02, // itest=250: oxxxxx#11 nsp=1 mass=400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=250: oxxxxx#11 nsp=1 mass=400 - 1.442220510185596e+01, 0.000000000000000e+00, // itest=250: oxxxxx#11 nsp=1 mass=400 - 1.664100588675688e+01, -1.775040627920733e+01, // itest=250: oxxxxx#11 nsp=1 mass=400 - 7.211102550927978e+00, 0.000000000000000e+00, // itest=250: oxxxxx#11 nsp=1 mass=400 - 8.320502943378436e+00, -8.875203139603666e+00 } ); // itest=250: oxxxxx#11 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -1.440000000000000e+02, // itest=251: oxxxxx#11 nsp=1 mass=-400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=251: oxxxxx#11 nsp=1 mass=-400 - 1.442220510185596e+01, 0.000000000000000e+00, // itest=251: oxxxxx#11 nsp=1 mass=-400 - 1.664100588675688e+01, -1.775040627920733e+01, // itest=251: oxxxxx#11 nsp=1 mass=-400 - -7.211102550927978e+00, -0.000000000000000e+00, // itest=251: oxxxxx#11 nsp=1 mass=-400 - -8.320502943378436e+00, 8.875203139603666e+00 } ); // itest=251: oxxxxx#11 nsp=1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=252: ixxxxx#12 nsp=1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=252: ixxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=252: ixxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=252: ixxxxx#12 nsp=1 mass=0 - 3.162277660168379e+01, 0.000000000000000e+00, // itest=252: ixxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=252: ixxxxx#12 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=253: ixxxxx#12 nsp=1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=253: ixxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=253: ixxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=253: ixxxxx#12 nsp=1 mass=0 - 3.162277660168379e+01, 0.000000000000000e+00, // itest=253: ixxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=253: ixxxxx#12 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=254: ipzxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=254: ipzxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=254: ipzxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=254: ipzxxx#12 nsp=1 mass=0 - 3.162277660168379e+01, 0.000000000000000e+00, // itest=254: ipzxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=254: ipzxxx#12 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=255: vxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=255: vxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=255: vxxxxx#12 nsp=1 mass=0 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=255: vxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 7.071067811865476e-01, // itest=255: vxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=255: vxxxxx#12 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=256: vxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=256: vxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=256: vxxxxx#12 nsp=1 mass=0 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=256: vxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 7.071067811865476e-01, // itest=256: vxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=256: vxxxxx#12 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=257: sxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=257: sxxxxx#12 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=257: sxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=257: sxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=257: sxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=257: sxxxxx#12 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=258: sxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=258: sxxxxx#12 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=258: sxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=258: sxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=258: sxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=258: sxxxxx#12 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=259: oxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=259: oxxxxx#12 nsp=1 mass=0 - 3.162277660168379e+01, 0.000000000000000e+00, // itest=259: oxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=259: oxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=259: oxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=259: oxxxxx#12 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=260: oxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=260: oxxxxx#12 nsp=1 mass=0 - 3.162277660168379e+01, 0.000000000000000e+00, // itest=260: oxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=260: oxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=260: oxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=260: oxxxxx#12 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=261: opzxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=261: opzxxx#12 nsp=1 mass=0 - 3.162277660168379e+01, 0.000000000000000e+00, // itest=261: opzxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=261: opzxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=261: opzxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=261: opzxxx#12 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=262: ixxxxx#13 nsp=1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=262: ixxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=262: ixxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=262: ixxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=262: ixxxxx#13 nsp=1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=262: ixxxxx#13 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=263: ixxxxx#13 nsp=1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=263: ixxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=263: ixxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=263: ixxxxx#13 nsp=1 mass=0 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=263: ixxxxx#13 nsp=1 mass=0 - -3.162277660168379e+01, -0.000000000000000e+00 } ); // itest=263: ixxxxx#13 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=264: imzxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=264: imzxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=264: imzxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=264: imzxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=264: imzxxx#13 nsp=1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=264: imzxxx#13 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=265: vxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=265: vxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=265: vxxxxx#13 nsp=1 mass=0 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=265: vxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, -7.071067811865476e-01, // itest=265: vxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=265: vxxxxx#13 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=266: vxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=266: vxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=266: vxxxxx#13 nsp=1 mass=0 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=266: vxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, -7.071067811865476e-01, // itest=266: vxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=266: vxxxxx#13 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=267: sxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=267: sxxxxx#13 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=267: sxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=267: sxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=267: sxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=267: sxxxxx#13 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=268: sxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=268: sxxxxx#13 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=268: sxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=268: sxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=268: sxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=268: sxxxxx#13 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=269: oxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=269: oxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=269: oxxxxx#13 nsp=1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00, // itest=269: oxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=269: oxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=269: oxxxxx#13 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=270: oxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=270: oxxxxx#13 nsp=1 mass=0 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=270: oxxxxx#13 nsp=1 mass=0 - -3.162277660168379e+01, -0.000000000000000e+00, // itest=270: oxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=270: oxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=270: oxxxxx#13 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=271: omzxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=271: omzxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=271: omzxxx#13 nsp=1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00, // itest=271: omzxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=271: omzxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=271: omzxxx#13 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=272: ixxxxx#14 nsp=1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=272: ixxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=272: ixxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=272: ixxxxx#14 nsp=1 mass=0 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=272: ixxxxx#14 nsp=1 mass=0 - 1.341640786499874e+01, 1.788854381999832e+01 } ); // itest=272: ixxxxx#14 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=273: ixxxxx#14 nsp=1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=273: ixxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=273: ixxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=273: ixxxxx#14 nsp=1 mass=0 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=273: ixxxxx#14 nsp=1 mass=0 - 1.341640786499874e+01, 1.788854381999832e+01 } ); // itest=273: ixxxxx#14 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=274: ixzxxx#14 nsp=1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=274: ixzxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=274: ixzxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=274: ixzxxx#14 nsp=1 mass=0 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=274: ixzxxx#14 nsp=1 mass=0 - 1.341640786499874e+01, 1.788854381999832e+01 } ); // itest=274: ixzxxx#14 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=275: vxxxxx#14 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=275: vxxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=275: vxxxxx#14 nsp=1 mass=0 - -0.000000000000000e+00, -5.656854249492381e-01, // itest=275: vxxxxx#14 nsp=1 mass=0 - -0.000000000000000e+00, 4.242640687119285e-01, // itest=275: vxxxxx#14 nsp=1 mass=0 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=275: vxxxxx#14 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=276: vxxxxx#14 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=276: vxxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=276: vxxxxx#14 nsp=1 mass=0 - -0.000000000000000e+00, -5.656854249492381e-01, // itest=276: vxxxxx#14 nsp=1 mass=0 - -0.000000000000000e+00, 4.242640687119285e-01, // itest=276: vxxxxx#14 nsp=1 mass=0 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=276: vxxxxx#14 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=277: sxxxxx#14 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=277: sxxxxx#14 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=277: sxxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=277: sxxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=277: sxxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=277: sxxxxx#14 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=278: sxxxxx#14 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=278: sxxxxx#14 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=278: sxxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=278: sxxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=278: sxxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=278: sxxxxx#14 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=279: oxxxxx#14 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=279: oxxxxx#14 nsp=1 mass=0 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=279: oxxxxx#14 nsp=1 mass=0 - 1.341640786499874e+01, -1.788854381999832e+01, // itest=279: oxxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=279: oxxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=279: oxxxxx#14 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=280: oxxxxx#14 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=280: oxxxxx#14 nsp=1 mass=0 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=280: oxxxxx#14 nsp=1 mass=0 - 1.341640786499874e+01, -1.788854381999832e+01, // itest=280: oxxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=280: oxxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=280: oxxxxx#14 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=281: oxzxxx#14 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=281: oxzxxx#14 nsp=1 mass=0 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=281: oxzxxx#14 nsp=1 mass=0 - 1.341640786499874e+01, -1.788854381999832e+01, // itest=281: oxzxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=281: oxzxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=281: oxzxxx#14 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=282: ixxxxx#15 nsp=1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=282: ixxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=282: ixxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=282: ixxxxx#15 nsp=1 mass=0 - 3.000000000000000e+01, 0.000000000000000e+00, // itest=282: ixxxxx#15 nsp=1 mass=0 - 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=282: ixxxxx#15 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=283: ixxxxx#15 nsp=1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=283: ixxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=283: ixxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=283: ixxxxx#15 nsp=1 mass=0 - 3.000000000000000e+01, 0.000000000000000e+00, // itest=283: ixxxxx#15 nsp=1 mass=0 - 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=283: ixxxxx#15 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=284: ixzxxx#15 nsp=1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=284: ixzxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=284: ixzxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=284: ixzxxx#15 nsp=1 mass=0 - 3.000000000000000e+01, 0.000000000000000e+00, // itest=284: ixzxxx#15 nsp=1 mass=0 - 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=284: ixzxxx#15 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=285: vxxxxx#15 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=285: vxxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=285: vxxxxx#15 nsp=1 mass=0 - -3.394112549695428e-01, -5.656854249492381e-01, // itest=285: vxxxxx#15 nsp=1 mass=0 - -4.525483399593904e-01, 4.242640687119285e-01, // itest=285: vxxxxx#15 nsp=1 mass=0 - 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=285: vxxxxx#15 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=286: vxxxxx#15 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=286: vxxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=286: vxxxxx#15 nsp=1 mass=0 - -3.394112549695428e-01, -5.656854249492381e-01, // itest=286: vxxxxx#15 nsp=1 mass=0 - -4.525483399593904e-01, 4.242640687119285e-01, // itest=286: vxxxxx#15 nsp=1 mass=0 - 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=286: vxxxxx#15 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=287: sxxxxx#15 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=287: sxxxxx#15 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=287: sxxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=287: sxxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=287: sxxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=287: sxxxxx#15 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=288: sxxxxx#15 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=288: sxxxxx#15 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=288: sxxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=288: sxxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=288: sxxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=288: sxxxxx#15 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=289: oxxxxx#15 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=289: oxxxxx#15 nsp=1 mass=0 - 3.000000000000000e+01, 0.000000000000000e+00, // itest=289: oxxxxx#15 nsp=1 mass=0 - 6.000000000000000e+00, -8.000000000000000e+00, // itest=289: oxxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=289: oxxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=289: oxxxxx#15 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=290: oxxxxx#15 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=290: oxxxxx#15 nsp=1 mass=0 - 3.000000000000000e+01, 0.000000000000000e+00, // itest=290: oxxxxx#15 nsp=1 mass=0 - 6.000000000000000e+00, -8.000000000000000e+00, // itest=290: oxxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=290: oxxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=290: oxxxxx#15 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=291: oxzxxx#15 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=291: oxzxxx#15 nsp=1 mass=0 - 3.000000000000000e+01, 0.000000000000000e+00, // itest=291: oxzxxx#15 nsp=1 mass=0 - 6.000000000000000e+00, -8.000000000000000e+00, // itest=291: oxzxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=291: oxzxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=291: oxzxxx#15 nsp=1 mass=0 + 5.000000000000000e+02, 5.000000000000000e+02, // itest=50: ixxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=50: ixxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=50: ixxxxx#5 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=50: ixxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=50: ixxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=50: ixxxxx#5 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=51: ixxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=51: ixxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=51: ixxxxx#5 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=51: ixxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=51: ixxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=51: ixxxxx#5 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=52: ipzxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=52: ipzxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=52: ipzxxx#5 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=52: ipzxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=52: ipzxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=52: ipzxxx#5 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=53: vxxxxx#5 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=53: vxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=53: vxxxxx#5 nsp=-1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=53: vxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=53: vxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=53: vxxxxx#5 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=54: vxxxxx#5 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=54: vxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=54: vxxxxx#5 nsp=-1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=54: vxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=54: vxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=54: vxxxxx#5 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=55: sxxxxx#5 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=55: sxxxxx#5 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=55: sxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=55: sxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=55: sxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=55: sxxxxx#5 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=56: sxxxxx#5 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=56: sxxxxx#5 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=56: sxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=56: sxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=56: sxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=56: sxxxxx#5 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=57: oxxxxx#5 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=57: oxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=57: oxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=57: oxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=57: oxxxxx#5 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=57: oxxxxx#5 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=58: oxxxxx#5 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=58: oxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=58: oxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=58: oxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=58: oxxxxx#5 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=58: oxxxxx#5 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=59: opzxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=59: opzxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=59: opzxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=59: opzxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=59: opzxxx#5 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=59: opzxxx#5 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=60: ixxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=60: ixxxxx#6 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=60: ixxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=60: ixxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=60: ixxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=60: ixxxxx#6 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=61: ixxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=61: ixxxxx#6 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=61: ixxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=61: ixxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=61: ixxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=61: ixxxxx#6 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=62: imzxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=62: imzxxx#6 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=62: imzxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=62: imzxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=62: imzxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=62: imzxxx#6 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=63: vxxxxx#6 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=63: vxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=63: vxxxxx#6 nsp=-1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=63: vxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=63: vxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=63: vxxxxx#6 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=64: vxxxxx#6 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=64: vxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=64: vxxxxx#6 nsp=-1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=64: vxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=64: vxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=64: vxxxxx#6 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=65: sxxxxx#6 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=65: sxxxxx#6 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=65: sxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=65: sxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=65: sxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=65: sxxxxx#6 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=66: sxxxxx#6 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=66: sxxxxx#6 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=66: sxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=66: sxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=66: sxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=66: sxxxxx#6 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=67: oxxxxx#6 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=67: oxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=67: oxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=67: oxxxxx#6 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=67: oxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=67: oxxxxx#6 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=68: oxxxxx#6 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=68: oxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=68: oxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=68: oxxxxx#6 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=68: oxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=68: oxxxxx#6 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=69: omzxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=69: omzxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=69: omzxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=69: omzxxx#6 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=69: omzxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=69: omzxxx#6 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=70: ixxxxx#7 nsp=-1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=70: ixxxxx#7 nsp=-1 mass=0 + 1.341640786499874e+01, -1.788854381999831e+01, // itest=70: ixxxxx#7 nsp=-1 mass=0 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=70: ixxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=70: ixxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=70: ixxxxx#7 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=71: ixxxxx#7 nsp=-1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=71: ixxxxx#7 nsp=-1 mass=0 + 1.341640786499874e+01, -1.788854381999831e+01, // itest=71: ixxxxx#7 nsp=-1 mass=0 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=71: ixxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=71: ixxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=71: ixxxxx#7 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=72: ixzxxx#7 nsp=-1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=72: ixzxxx#7 nsp=-1 mass=0 + 1.341640786499874e+01, -1.788854381999832e+01, // itest=72: ixzxxx#7 nsp=-1 mass=0 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=72: ixzxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=72: ixzxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=72: ixzxxx#7 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=73: vxxxxx#7 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=73: vxxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=73: vxxxxx#7 nsp=-1 mass=0 + -0.000000000000000e+00, 5.656854249492381e-01, // itest=73: vxxxxx#7 nsp=-1 mass=0 + -0.000000000000000e+00, -4.242640687119285e-01, // itest=73: vxxxxx#7 nsp=-1 mass=0 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=73: vxxxxx#7 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=74: vxxxxx#7 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=74: vxxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=74: vxxxxx#7 nsp=-1 mass=0 + -0.000000000000000e+00, 5.656854249492381e-01, // itest=74: vxxxxx#7 nsp=-1 mass=0 + -0.000000000000000e+00, -4.242640687119285e-01, // itest=74: vxxxxx#7 nsp=-1 mass=0 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=74: vxxxxx#7 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=75: sxxxxx#7 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=75: sxxxxx#7 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=75: sxxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=75: sxxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=75: sxxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=75: sxxxxx#7 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=76: sxxxxx#7 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=76: sxxxxx#7 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=76: sxxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=76: sxxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=76: sxxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=76: sxxxxx#7 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=77: oxxxxx#7 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=77: oxxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=77: oxxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=77: oxxxxx#7 nsp=-1 mass=0 + 1.341640786499874e+01, 1.788854381999831e+01, // itest=77: oxxxxx#7 nsp=-1 mass=0 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=77: oxxxxx#7 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=78: oxxxxx#7 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=78: oxxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=78: oxxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=78: oxxxxx#7 nsp=-1 mass=0 + 1.341640786499874e+01, 1.788854381999831e+01, // itest=78: oxxxxx#7 nsp=-1 mass=0 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=78: oxxxxx#7 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=79: oxzxxx#7 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=79: oxzxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=79: oxzxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=79: oxzxxx#7 nsp=-1 mass=0 + 1.341640786499874e+01, 1.788854381999832e+01, // itest=79: oxzxxx#7 nsp=-1 mass=0 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=79: oxzxxx#7 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=80: ixxxxx#8 nsp=-1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=80: ixxxxx#8 nsp=-1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=80: ixxxxx#8 nsp=-1 mass=0 + -3.000000000000000e+01, 0.000000000000000e+00, // itest=80: ixxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=80: ixxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=80: ixxxxx#8 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=81: ixxxxx#8 nsp=-1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=81: ixxxxx#8 nsp=-1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=81: ixxxxx#8 nsp=-1 mass=0 + -3.000000000000000e+01, 0.000000000000000e+00, // itest=81: ixxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=81: ixxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=81: ixxxxx#8 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=82: ixzxxx#8 nsp=-1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=82: ixzxxx#8 nsp=-1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=82: ixzxxx#8 nsp=-1 mass=0 + -3.000000000000000e+01, 0.000000000000000e+00, // itest=82: ixzxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=82: ixzxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=82: ixzxxx#8 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=83: vxxxxx#8 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=83: vxxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=83: vxxxxx#8 nsp=-1 mass=0 + -3.394112549695428e-01, 5.656854249492381e-01, // itest=83: vxxxxx#8 nsp=-1 mass=0 + -4.525483399593904e-01, -4.242640687119285e-01, // itest=83: vxxxxx#8 nsp=-1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=83: vxxxxx#8 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=84: vxxxxx#8 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=84: vxxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=84: vxxxxx#8 nsp=-1 mass=0 + -3.394112549695428e-01, 5.656854249492381e-01, // itest=84: vxxxxx#8 nsp=-1 mass=0 + -4.525483399593904e-01, -4.242640687119285e-01, // itest=84: vxxxxx#8 nsp=-1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=84: vxxxxx#8 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=85: sxxxxx#8 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=85: sxxxxx#8 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=85: sxxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=85: sxxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=85: sxxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=85: sxxxxx#8 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=86: sxxxxx#8 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=86: sxxxxx#8 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=86: sxxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=86: sxxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=86: sxxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=86: sxxxxx#8 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=87: oxxxxx#8 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=87: oxxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=87: oxxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=87: oxxxxx#8 nsp=-1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00, // itest=87: oxxxxx#8 nsp=-1 mass=0 + -3.000000000000000e+01, 0.000000000000000e+00 } ); // itest=87: oxxxxx#8 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=88: oxxxxx#8 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=88: oxxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=88: oxxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=88: oxxxxx#8 nsp=-1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00, // itest=88: oxxxxx#8 nsp=-1 mass=0 + -3.000000000000000e+01, 0.000000000000000e+00 } ); // itest=88: oxxxxx#8 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=89: oxzxxx#8 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=89: oxzxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=89: oxzxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=89: oxzxxx#8 nsp=-1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00, // itest=89: oxzxxx#8 nsp=-1 mass=0 + -3.000000000000000e+01, 0.000000000000000e+00 } ); // itest=89: oxzxxx#8 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=90: ixxxxx#9 nsp=-1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=90: ixxxxx#9 nsp=-1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=90: ixxxxx#9 nsp=-1 mass=0 + -1.000000000000000e+01, 0.000000000000000e+00, // itest=90: ixxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=90: ixxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=90: ixxxxx#9 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=91: ixxxxx#9 nsp=-1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=91: ixxxxx#9 nsp=-1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=91: ixxxxx#9 nsp=-1 mass=0 + -1.000000000000000e+01, 0.000000000000000e+00, // itest=91: ixxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=91: ixxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=91: ixxxxx#9 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=92: ixzxxx#9 nsp=-1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=92: ixzxxx#9 nsp=-1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=92: ixzxxx#9 nsp=-1 mass=0 + -1.000000000000000e+01, 0.000000000000000e+00, // itest=92: ixzxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=92: ixzxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=92: ixzxxx#9 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=93: vxxxxx#9 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=93: vxxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=93: vxxxxx#9 nsp=-1 mass=0 + 3.394112549695428e-01, 5.656854249492381e-01, // itest=93: vxxxxx#9 nsp=-1 mass=0 + 4.525483399593904e-01, -4.242640687119285e-01, // itest=93: vxxxxx#9 nsp=-1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=93: vxxxxx#9 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=94: vxxxxx#9 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=94: vxxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=94: vxxxxx#9 nsp=-1 mass=0 + 3.394112549695428e-01, 5.656854249492381e-01, // itest=94: vxxxxx#9 nsp=-1 mass=0 + 4.525483399593904e-01, -4.242640687119285e-01, // itest=94: vxxxxx#9 nsp=-1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=94: vxxxxx#9 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=95: sxxxxx#9 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=95: sxxxxx#9 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=95: sxxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=95: sxxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=95: sxxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=95: sxxxxx#9 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=96: sxxxxx#9 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=96: sxxxxx#9 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=96: sxxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=96: sxxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=96: sxxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=96: sxxxxx#9 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=97: oxxxxx#9 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=97: oxxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=97: oxxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=97: oxxxxx#9 nsp=-1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01, // itest=97: oxxxxx#9 nsp=-1 mass=0 + -1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=97: oxxxxx#9 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=98: oxxxxx#9 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=98: oxxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=98: oxxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=98: oxxxxx#9 nsp=-1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01, // itest=98: oxxxxx#9 nsp=-1 mass=0 + -1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=98: oxxxxx#9 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=99: oxzxxx#9 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=99: oxzxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=99: oxzxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=99: oxzxxx#9 nsp=-1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01, // itest=99: oxzxxx#9 nsp=-1 mass=0 + -1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=99: oxzxxx#9 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=100: ixxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=100: ixxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=100: ixxxxx#10 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=100: ixxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=100: ixxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=100: ixxxxx#10 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=101: ixxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=101: ixxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=101: ixxxxx#10 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=101: ixxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=101: ixxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=101: ixxxxx#10 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=102: ipzxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=102: ipzxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=102: ipzxxx#10 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=102: ipzxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=102: ipzxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=102: ipzxxx#10 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=103: vxxxxx#10 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=103: vxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=103: vxxxxx#10 nsp=-1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=103: vxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=103: vxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=103: vxxxxx#10 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=104: vxxxxx#10 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=104: vxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=104: vxxxxx#10 nsp=-1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=104: vxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=104: vxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=104: vxxxxx#10 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=105: sxxxxx#10 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=105: sxxxxx#10 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=105: sxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=105: sxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=105: sxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=105: sxxxxx#10 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=106: sxxxxx#10 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=106: sxxxxx#10 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=106: sxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=106: sxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=106: sxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=106: sxxxxx#10 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=107: oxxxxx#10 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=107: oxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=107: oxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=107: oxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=107: oxxxxx#10 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=107: oxxxxx#10 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=108: oxxxxx#10 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=108: oxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=108: oxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=108: oxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=108: oxxxxx#10 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=108: oxxxxx#10 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=109: opzxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=109: opzxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=109: opzxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=109: opzxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=109: opzxxx#10 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=109: opzxxx#10 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=110: ixxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=110: ixxxxx#11 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=110: ixxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=110: ixxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=110: ixxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=110: ixxxxx#11 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=111: ixxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=111: ixxxxx#11 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=111: ixxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=111: ixxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=111: ixxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=111: ixxxxx#11 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=112: imzxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=112: imzxxx#11 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=112: imzxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=112: imzxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=112: imzxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=112: imzxxx#11 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=113: vxxxxx#11 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=113: vxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=113: vxxxxx#11 nsp=-1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=113: vxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=113: vxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=113: vxxxxx#11 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=114: vxxxxx#11 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=114: vxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=114: vxxxxx#11 nsp=-1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=114: vxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=114: vxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=114: vxxxxx#11 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=115: sxxxxx#11 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=115: sxxxxx#11 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=115: sxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=115: sxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=115: sxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=115: sxxxxx#11 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=116: sxxxxx#11 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=116: sxxxxx#11 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=116: sxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=116: sxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=116: sxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=116: sxxxxx#11 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=117: oxxxxx#11 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=117: oxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=117: oxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=117: oxxxxx#11 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=117: oxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=117: oxxxxx#11 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=118: oxxxxx#11 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=118: oxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=118: oxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=118: oxxxxx#11 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=118: oxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=118: oxxxxx#11 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=119: omzxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=119: omzxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=119: omzxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=119: omzxxx#11 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=119: omzxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=119: omzxxx#11 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=120: ixxxxx#12 nsp=-1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=120: ixxxxx#12 nsp=-1 mass=0 + 1.341640786499874e+01, -1.788854381999831e+01, // itest=120: ixxxxx#12 nsp=-1 mass=0 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=120: ixxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=120: ixxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=120: ixxxxx#12 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=121: ixxxxx#12 nsp=-1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=121: ixxxxx#12 nsp=-1 mass=0 + 1.341640786499874e+01, -1.788854381999831e+01, // itest=121: ixxxxx#12 nsp=-1 mass=0 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=121: ixxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=121: ixxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=121: ixxxxx#12 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=122: ixzxxx#12 nsp=-1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=122: ixzxxx#12 nsp=-1 mass=0 + 1.341640786499874e+01, -1.788854381999832e+01, // itest=122: ixzxxx#12 nsp=-1 mass=0 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=122: ixzxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=122: ixzxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=122: ixzxxx#12 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=123: vxxxxx#12 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=123: vxxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=123: vxxxxx#12 nsp=-1 mass=0 + -0.000000000000000e+00, 5.656854249492381e-01, // itest=123: vxxxxx#12 nsp=-1 mass=0 + -0.000000000000000e+00, -4.242640687119285e-01, // itest=123: vxxxxx#12 nsp=-1 mass=0 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=123: vxxxxx#12 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=124: vxxxxx#12 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=124: vxxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=124: vxxxxx#12 nsp=-1 mass=0 + -0.000000000000000e+00, 5.656854249492381e-01, // itest=124: vxxxxx#12 nsp=-1 mass=0 + -0.000000000000000e+00, -4.242640687119285e-01, // itest=124: vxxxxx#12 nsp=-1 mass=0 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=124: vxxxxx#12 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=125: sxxxxx#12 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=125: sxxxxx#12 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=125: sxxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=125: sxxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=125: sxxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=125: sxxxxx#12 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=126: sxxxxx#12 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=126: sxxxxx#12 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=126: sxxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=126: sxxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=126: sxxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=126: sxxxxx#12 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=127: oxxxxx#12 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=127: oxxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=127: oxxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=127: oxxxxx#12 nsp=-1 mass=0 + 1.341640786499874e+01, 1.788854381999831e+01, // itest=127: oxxxxx#12 nsp=-1 mass=0 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=127: oxxxxx#12 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=128: oxxxxx#12 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=128: oxxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=128: oxxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=128: oxxxxx#12 nsp=-1 mass=0 + 1.341640786499874e+01, 1.788854381999831e+01, // itest=128: oxxxxx#12 nsp=-1 mass=0 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=128: oxxxxx#12 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=129: oxzxxx#12 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=129: oxzxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=129: oxzxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=129: oxzxxx#12 nsp=-1 mass=0 + 1.341640786499874e+01, 1.788854381999832e+01, // itest=129: oxzxxx#12 nsp=-1 mass=0 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=129: oxzxxx#12 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=130: ixxxxx#13 nsp=-1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=130: ixxxxx#13 nsp=-1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=130: ixxxxx#13 nsp=-1 mass=0 + -3.000000000000000e+01, 0.000000000000000e+00, // itest=130: ixxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=130: ixxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=130: ixxxxx#13 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=131: ixxxxx#13 nsp=-1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=131: ixxxxx#13 nsp=-1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=131: ixxxxx#13 nsp=-1 mass=0 + -3.000000000000000e+01, 0.000000000000000e+00, // itest=131: ixxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=131: ixxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=131: ixxxxx#13 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=132: ixzxxx#13 nsp=-1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=132: ixzxxx#13 nsp=-1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=132: ixzxxx#13 nsp=-1 mass=0 + -3.000000000000000e+01, 0.000000000000000e+00, // itest=132: ixzxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=132: ixzxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=132: ixzxxx#13 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=133: vxxxxx#13 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=133: vxxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=133: vxxxxx#13 nsp=-1 mass=0 + -3.394112549695428e-01, 5.656854249492381e-01, // itest=133: vxxxxx#13 nsp=-1 mass=0 + -4.525483399593904e-01, -4.242640687119285e-01, // itest=133: vxxxxx#13 nsp=-1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=133: vxxxxx#13 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=134: vxxxxx#13 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=134: vxxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=134: vxxxxx#13 nsp=-1 mass=0 + -3.394112549695428e-01, 5.656854249492381e-01, // itest=134: vxxxxx#13 nsp=-1 mass=0 + -4.525483399593904e-01, -4.242640687119285e-01, // itest=134: vxxxxx#13 nsp=-1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=134: vxxxxx#13 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=135: sxxxxx#13 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=135: sxxxxx#13 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=135: sxxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=135: sxxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=135: sxxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=135: sxxxxx#13 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=136: sxxxxx#13 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=136: sxxxxx#13 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=136: sxxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=136: sxxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=136: sxxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=136: sxxxxx#13 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=137: oxxxxx#13 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=137: oxxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=137: oxxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=137: oxxxxx#13 nsp=-1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00, // itest=137: oxxxxx#13 nsp=-1 mass=0 + -3.000000000000000e+01, 0.000000000000000e+00 } ); // itest=137: oxxxxx#13 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=138: oxxxxx#13 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=138: oxxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=138: oxxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=138: oxxxxx#13 nsp=-1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00, // itest=138: oxxxxx#13 nsp=-1 mass=0 + -3.000000000000000e+01, 0.000000000000000e+00 } ); // itest=138: oxxxxx#13 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=139: oxzxxx#13 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=139: oxzxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=139: oxzxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=139: oxzxxx#13 nsp=-1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00, // itest=139: oxzxxx#13 nsp=-1 mass=0 + -3.000000000000000e+01, 0.000000000000000e+00 } ); // itest=139: oxzxxx#13 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=140: ixxxxx#14 nsp=-1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=140: ixxxxx#14 nsp=-1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=140: ixxxxx#14 nsp=-1 mass=0 + -1.000000000000000e+01, 0.000000000000000e+00, // itest=140: ixxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=140: ixxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=140: ixxxxx#14 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=141: ixxxxx#14 nsp=-1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=141: ixxxxx#14 nsp=-1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=141: ixxxxx#14 nsp=-1 mass=0 + -1.000000000000000e+01, 0.000000000000000e+00, // itest=141: ixxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=141: ixxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=141: ixxxxx#14 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=142: ixzxxx#14 nsp=-1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=142: ixzxxx#14 nsp=-1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=142: ixzxxx#14 nsp=-1 mass=0 + -1.000000000000000e+01, 0.000000000000000e+00, // itest=142: ixzxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=142: ixzxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=142: ixzxxx#14 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=143: vxxxxx#14 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=143: vxxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=143: vxxxxx#14 nsp=-1 mass=0 + 3.394112549695428e-01, 5.656854249492381e-01, // itest=143: vxxxxx#14 nsp=-1 mass=0 + 4.525483399593904e-01, -4.242640687119285e-01, // itest=143: vxxxxx#14 nsp=-1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=143: vxxxxx#14 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=144: vxxxxx#14 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=144: vxxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=144: vxxxxx#14 nsp=-1 mass=0 + 3.394112549695428e-01, 5.656854249492381e-01, // itest=144: vxxxxx#14 nsp=-1 mass=0 + 4.525483399593904e-01, -4.242640687119285e-01, // itest=144: vxxxxx#14 nsp=-1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=144: vxxxxx#14 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=145: sxxxxx#14 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=145: sxxxxx#14 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=145: sxxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=145: sxxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=145: sxxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=145: sxxxxx#14 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=146: sxxxxx#14 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=146: sxxxxx#14 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=146: sxxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=146: sxxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=146: sxxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=146: sxxxxx#14 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=147: oxxxxx#14 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=147: oxxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=147: oxxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=147: oxxxxx#14 nsp=-1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01, // itest=147: oxxxxx#14 nsp=-1 mass=0 + -1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=147: oxxxxx#14 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=148: oxxxxx#14 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=148: oxxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=148: oxxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=148: oxxxxx#14 nsp=-1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01, // itest=148: oxxxxx#14 nsp=-1 mass=0 + -1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=148: oxxxxx#14 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=149: oxzxxx#14 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=149: oxzxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=149: oxzxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=149: oxzxxx#14 nsp=-1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01, // itest=149: oxzxxx#14 nsp=-1 mass=0 + -1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=149: oxzxxx#14 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=150: ixxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=150: ixxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=150: ixxxxx#15 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=150: ixxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=150: ixxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=150: ixxxxx#15 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=151: ixxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=151: ixxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=151: ixxxxx#15 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=151: ixxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=151: ixxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=151: ixxxxx#15 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=152: ipzxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=152: ipzxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=152: ipzxxx#15 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=152: ipzxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=152: ipzxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=152: ipzxxx#15 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=153: vxxxxx#15 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=153: vxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=153: vxxxxx#15 nsp=-1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=153: vxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=153: vxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=153: vxxxxx#15 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=154: vxxxxx#15 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=154: vxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=154: vxxxxx#15 nsp=-1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=154: vxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=154: vxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=154: vxxxxx#15 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=155: sxxxxx#15 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=155: sxxxxx#15 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=155: sxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=155: sxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=155: sxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=155: sxxxxx#15 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=156: sxxxxx#15 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=156: sxxxxx#15 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=156: sxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=156: sxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=156: sxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=156: sxxxxx#15 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=157: oxxxxx#15 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=157: oxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=157: oxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=157: oxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=157: oxxxxx#15 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=157: oxxxxx#15 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=158: oxxxxx#15 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=158: oxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=158: oxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=158: oxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=158: oxxxxx#15 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=158: oxxxxx#15 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=159: opzxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=159: opzxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=159: opzxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=159: opzxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=159: opzxxx#15 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=159: opzxxx#15 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=160: ixxxxx#16 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=160: ixxxxx#16 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=160: ixxxxx#16 nsp=-1 mass=500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=160: ixxxxx#16 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=160: ixxxxx#16 nsp=-1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=160: ixxxxx#16 nsp=-1 mass=500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=161: ixxxxx#16 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=161: ixxxxx#16 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=161: ixxxxx#16 nsp=-1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=161: ixxxxx#16 nsp=-1 mass=-500 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=161: ixxxxx#16 nsp=-1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=161: ixxxxx#16 nsp=-1 mass=-500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=162: vxxxxx#16 nsp=-1 mass=500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=162: vxxxxx#16 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=162: vxxxxx#16 nsp=-1 mass=500 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=162: vxxxxx#16 nsp=-1 mass=500 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=162: vxxxxx#16 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=162: vxxxxx#16 nsp=-1 mass=500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=163: vxxxxx#16 nsp=-1 mass=-500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=163: vxxxxx#16 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=163: vxxxxx#16 nsp=-1 mass=-500 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=163: vxxxxx#16 nsp=-1 mass=-500 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=163: vxxxxx#16 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=163: vxxxxx#16 nsp=-1 mass=-500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=164: sxxxxx#16 nsp=-1 mass=500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=164: sxxxxx#16 nsp=-1 mass=500 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=164: sxxxxx#16 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=164: sxxxxx#16 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=164: sxxxxx#16 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=164: sxxxxx#16 nsp=-1 mass=500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=165: sxxxxx#16 nsp=-1 mass=-500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=165: sxxxxx#16 nsp=-1 mass=-500 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=165: sxxxxx#16 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=165: sxxxxx#16 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=165: sxxxxx#16 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=165: sxxxxx#16 nsp=-1 mass=-500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=166: oxxxxx#16 nsp=-1 mass=500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=166: oxxxxx#16 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=166: oxxxxx#16 nsp=-1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=166: oxxxxx#16 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=166: oxxxxx#16 nsp=-1 mass=500 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=166: oxxxxx#16 nsp=-1 mass=500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=167: oxxxxx#16 nsp=-1 mass=-500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=167: oxxxxx#16 nsp=-1 mass=-500 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=167: oxxxxx#16 nsp=-1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=167: oxxxxx#16 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=167: oxxxxx#16 nsp=-1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=167: oxxxxx#16 nsp=-1 mass=-500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=168: ixxxxx#17 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=168: ixxxxx#17 nsp=-1 mass=400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=168: ixxxxx#17 nsp=-1 mass=400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=168: ixxxxx#17 nsp=-1 mass=400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=168: ixxxxx#17 nsp=-1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00 } ); // itest=168: ixxxxx#17 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=169: ixxxxx#17 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=169: ixxxxx#17 nsp=-1 mass=-400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=169: ixxxxx#17 nsp=-1 mass=-400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=169: ixxxxx#17 nsp=-1 mass=-400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=169: ixxxxx#17 nsp=-1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00 } ); // itest=169: ixxxxx#17 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=170: vxxxxx#17 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=170: vxxxxx#17 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=170: vxxxxx#17 nsp=-1 mass=400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=170: vxxxxx#17 nsp=-1 mass=400 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=170: vxxxxx#17 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=170: vxxxxx#17 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=171: vxxxxx#17 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=171: vxxxxx#17 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=171: vxxxxx#17 nsp=-1 mass=-400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=171: vxxxxx#17 nsp=-1 mass=-400 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=171: vxxxxx#17 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=171: vxxxxx#17 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=172: sxxxxx#17 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=172: sxxxxx#17 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=172: sxxxxx#17 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=172: sxxxxx#17 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=172: sxxxxx#17 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=172: sxxxxx#17 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=173: sxxxxx#17 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=173: sxxxxx#17 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=173: sxxxxx#17 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=173: sxxxxx#17 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=173: sxxxxx#17 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=173: sxxxxx#17 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=174: oxxxxx#17 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=174: oxxxxx#17 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=174: oxxxxx#17 nsp=-1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=174: oxxxxx#17 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=174: oxxxxx#17 nsp=-1 mass=400 + -2.828427124746190e+01, -0.000000000000000e+00 } ); // itest=174: oxxxxx#17 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=175: oxxxxx#17 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=175: oxxxxx#17 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=175: oxxxxx#17 nsp=-1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=175: oxxxxx#17 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=175: oxxxxx#17 nsp=-1 mass=-400 + -2.828427124746190e+01, -0.000000000000000e+00 } ); // itest=175: oxxxxx#17 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=176: ixxxxx#18 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=176: ixxxxx#18 nsp=-1 mass=400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=176: ixxxxx#18 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=176: ixxxxx#18 nsp=-1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=176: ixxxxx#18 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=176: ixxxxx#18 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=177: ixxxxx#18 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=177: ixxxxx#18 nsp=-1 mass=-400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=177: ixxxxx#18 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=177: ixxxxx#18 nsp=-1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=177: ixxxxx#18 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=177: ixxxxx#18 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=178: vxxxxx#18 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=178: vxxxxx#18 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=178: vxxxxx#18 nsp=-1 mass=400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=178: vxxxxx#18 nsp=-1 mass=400 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=178: vxxxxx#18 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=178: vxxxxx#18 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=179: vxxxxx#18 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=179: vxxxxx#18 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=179: vxxxxx#18 nsp=-1 mass=-400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=179: vxxxxx#18 nsp=-1 mass=-400 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=179: vxxxxx#18 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=179: vxxxxx#18 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=180: sxxxxx#18 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=180: sxxxxx#18 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=180: sxxxxx#18 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=180: sxxxxx#18 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=180: sxxxxx#18 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=180: sxxxxx#18 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=181: sxxxxx#18 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=181: sxxxxx#18 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=181: sxxxxx#18 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=181: sxxxxx#18 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=181: sxxxxx#18 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=181: sxxxxx#18 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=182: oxxxxx#18 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=182: oxxxxx#18 nsp=-1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=182: oxxxxx#18 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=182: oxxxxx#18 nsp=-1 mass=400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=182: oxxxxx#18 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=182: oxxxxx#18 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=183: oxxxxx#18 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=183: oxxxxx#18 nsp=-1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=183: oxxxxx#18 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=183: oxxxxx#18 nsp=-1 mass=-400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=183: oxxxxx#18 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=183: oxxxxx#18 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=184: ixxxxx#19 nsp=-1 mass=400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=184: ixxxxx#19 nsp=-1 mass=400 + 1.200000000000000e+01, -1.600000000000000e+01, // itest=184: ixxxxx#19 nsp=-1 mass=400 + -2.000000000000000e+01, -0.000000000000000e+00, // itest=184: ixxxxx#19 nsp=-1 mass=400 + -5.999999999999999e+00, 7.999999999999999e+00, // itest=184: ixxxxx#19 nsp=-1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=184: ixxxxx#19 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=185: ixxxxx#19 nsp=-1 mass=-400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=185: ixxxxx#19 nsp=-1 mass=-400 + 1.200000000000000e+01, -1.600000000000000e+01, // itest=185: ixxxxx#19 nsp=-1 mass=-400 + -2.000000000000000e+01, -0.000000000000000e+00, // itest=185: ixxxxx#19 nsp=-1 mass=-400 + 5.999999999999999e+00, -7.999999999999999e+00, // itest=185: ixxxxx#19 nsp=-1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00 } ); // itest=185: ixxxxx#19 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=186: vxxxxx#19 nsp=-1 mass=400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=186: vxxxxx#19 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=186: vxxxxx#19 nsp=-1 mass=400 + 0.000000000000000e+00, 5.656854249492381e-01, // itest=186: vxxxxx#19 nsp=-1 mass=400 + 0.000000000000000e+00, -4.242640687119285e-01, // itest=186: vxxxxx#19 nsp=-1 mass=400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=186: vxxxxx#19 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=187: vxxxxx#19 nsp=-1 mass=-400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=187: vxxxxx#19 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=187: vxxxxx#19 nsp=-1 mass=-400 + -0.000000000000000e+00, 5.656854249492381e-01, // itest=187: vxxxxx#19 nsp=-1 mass=-400 + -0.000000000000000e+00, -4.242640687119285e-01, // itest=187: vxxxxx#19 nsp=-1 mass=-400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=187: vxxxxx#19 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=188: sxxxxx#19 nsp=-1 mass=400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=188: sxxxxx#19 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=188: sxxxxx#19 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=188: sxxxxx#19 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=188: sxxxxx#19 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=188: sxxxxx#19 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=189: sxxxxx#19 nsp=-1 mass=-400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=189: sxxxxx#19 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=189: sxxxxx#19 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=189: sxxxxx#19 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=189: sxxxxx#19 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=189: sxxxxx#19 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=190: oxxxxx#19 nsp=-1 mass=400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=190: oxxxxx#19 nsp=-1 mass=400 + -5.999999999999999e+00, -7.999999999999999e+00, // itest=190: oxxxxx#19 nsp=-1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=190: oxxxxx#19 nsp=-1 mass=400 + 1.200000000000000e+01, 1.600000000000000e+01, // itest=190: oxxxxx#19 nsp=-1 mass=400 + -2.000000000000000e+01, -0.000000000000000e+00 } ); // itest=190: oxxxxx#19 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=191: oxxxxx#19 nsp=-1 mass=-400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=191: oxxxxx#19 nsp=-1 mass=-400 + 5.999999999999999e+00, 7.999999999999999e+00, // itest=191: oxxxxx#19 nsp=-1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00, // itest=191: oxxxxx#19 nsp=-1 mass=-400 + 1.200000000000000e+01, 1.600000000000000e+01, // itest=191: oxxxxx#19 nsp=-1 mass=-400 + -2.000000000000000e+01, -0.000000000000000e+00 } ); // itest=191: oxxxxx#19 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=192: ixxxxx#20 nsp=-1 mass=400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=192: ixxxxx#20 nsp=-1 mass=400 + -1.600000000000000e+01, 1.200000000000000e+01, // itest=192: ixxxxx#20 nsp=-1 mass=400 + -2.000000000000000e+01, -0.000000000000000e+00, // itest=192: ixxxxx#20 nsp=-1 mass=400 + 7.999999999999999e+00, -5.999999999999999e+00, // itest=192: ixxxxx#20 nsp=-1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=192: ixxxxx#20 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=193: ixxxxx#20 nsp=-1 mass=-400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=193: ixxxxx#20 nsp=-1 mass=-400 + -1.600000000000000e+01, 1.200000000000000e+01, // itest=193: ixxxxx#20 nsp=-1 mass=-400 + -2.000000000000000e+01, -0.000000000000000e+00, // itest=193: ixxxxx#20 nsp=-1 mass=-400 + -7.999999999999999e+00, 5.999999999999999e+00, // itest=193: ixxxxx#20 nsp=-1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00 } ); // itest=193: ixxxxx#20 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=194: vxxxxx#20 nsp=-1 mass=400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=194: vxxxxx#20 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=194: vxxxxx#20 nsp=-1 mass=400 + 0.000000000000000e+00, -4.242640687119285e-01, // itest=194: vxxxxx#20 nsp=-1 mass=400 + 0.000000000000000e+00, 5.656854249492381e-01, // itest=194: vxxxxx#20 nsp=-1 mass=400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=194: vxxxxx#20 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=195: vxxxxx#20 nsp=-1 mass=-400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=195: vxxxxx#20 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=195: vxxxxx#20 nsp=-1 mass=-400 + 0.000000000000000e+00, -4.242640687119285e-01, // itest=195: vxxxxx#20 nsp=-1 mass=-400 + 0.000000000000000e+00, 5.656854249492381e-01, // itest=195: vxxxxx#20 nsp=-1 mass=-400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=195: vxxxxx#20 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=196: sxxxxx#20 nsp=-1 mass=400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=196: sxxxxx#20 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=196: sxxxxx#20 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=196: sxxxxx#20 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=196: sxxxxx#20 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=196: sxxxxx#20 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=197: sxxxxx#20 nsp=-1 mass=-400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=197: sxxxxx#20 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=197: sxxxxx#20 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=197: sxxxxx#20 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=197: sxxxxx#20 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=197: sxxxxx#20 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=198: oxxxxx#20 nsp=-1 mass=400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=198: oxxxxx#20 nsp=-1 mass=400 + 7.999999999999999e+00, 5.999999999999999e+00, // itest=198: oxxxxx#20 nsp=-1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=198: oxxxxx#20 nsp=-1 mass=400 + -1.600000000000000e+01, -1.200000000000000e+01, // itest=198: oxxxxx#20 nsp=-1 mass=400 + -2.000000000000000e+01, -0.000000000000000e+00 } ); // itest=198: oxxxxx#20 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=199: oxxxxx#20 nsp=-1 mass=-400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=199: oxxxxx#20 nsp=-1 mass=-400 + -7.999999999999999e+00, -5.999999999999999e+00, // itest=199: oxxxxx#20 nsp=-1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00, // itest=199: oxxxxx#20 nsp=-1 mass=-400 + -1.600000000000000e+01, -1.200000000000000e+01, // itest=199: oxxxxx#20 nsp=-1 mass=-400 + -2.000000000000000e+01, -0.000000000000000e+00 } ); // itest=199: oxxxxx#20 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=200: ixxxxx#21 nsp=-1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=200: ixxxxx#21 nsp=-1 mass=400 + 9.863939238321439e+00, -1.052153518754287e+01, // itest=200: ixxxxx#21 nsp=-1 mass=400 + -2.433105012119288e+01, -0.000000000000000e+00, // itest=200: ixxxxx#21 nsp=-1 mass=400 + -4.931969619160719e+00, 5.260767593771432e+00, // itest=200: ixxxxx#21 nsp=-1 mass=400 + 1.216552506059644e+01, 0.000000000000000e+00 } ); // itest=200: ixxxxx#21 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=201: ixxxxx#21 nsp=-1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=201: ixxxxx#21 nsp=-1 mass=-400 + 9.863939238321439e+00, -1.052153518754287e+01, // itest=201: ixxxxx#21 nsp=-1 mass=-400 + -2.433105012119288e+01, -0.000000000000000e+00, // itest=201: ixxxxx#21 nsp=-1 mass=-400 + 4.931969619160719e+00, -5.260767593771432e+00, // itest=201: ixxxxx#21 nsp=-1 mass=-400 + -1.216552506059644e+01, -0.000000000000000e+00 } ); // itest=201: ixxxxx#21 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=202: vxxxxx#21 nsp=-1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=202: vxxxxx#21 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=202: vxxxxx#21 nsp=-1 mass=400 + -2.321373168788980e-01, 5.158607041753289e-01, // itest=202: vxxxxx#21 nsp=-1 mass=400 + -2.476131380041579e-01, -4.836194101643708e-01, // itest=202: vxxxxx#21 nsp=-1 mass=400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=202: vxxxxx#21 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=203: vxxxxx#21 nsp=-1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=203: vxxxxx#21 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=203: vxxxxx#21 nsp=-1 mass=-400 + -2.321373168788980e-01, 5.158607041753289e-01, // itest=203: vxxxxx#21 nsp=-1 mass=-400 + -2.476131380041579e-01, -4.836194101643708e-01, // itest=203: vxxxxx#21 nsp=-1 mass=-400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=203: vxxxxx#21 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=204: sxxxxx#21 nsp=-1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=204: sxxxxx#21 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=204: sxxxxx#21 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=204: sxxxxx#21 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=204: sxxxxx#21 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=204: sxxxxx#21 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=205: sxxxxx#21 nsp=-1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=205: sxxxxx#21 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=205: sxxxxx#21 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=205: sxxxxx#21 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=205: sxxxxx#21 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=205: sxxxxx#21 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=206: oxxxxx#21 nsp=-1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=206: oxxxxx#21 nsp=-1 mass=400 + -4.931969619160719e+00, -5.260767593771432e+00, // itest=206: oxxxxx#21 nsp=-1 mass=400 + 1.216552506059644e+01, 0.000000000000000e+00, // itest=206: oxxxxx#21 nsp=-1 mass=400 + 9.863939238321439e+00, 1.052153518754287e+01, // itest=206: oxxxxx#21 nsp=-1 mass=400 + -2.433105012119288e+01, -0.000000000000000e+00 } ); // itest=206: oxxxxx#21 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=207: oxxxxx#21 nsp=-1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=207: oxxxxx#21 nsp=-1 mass=-400 + 4.931969619160719e+00, 5.260767593771432e+00, // itest=207: oxxxxx#21 nsp=-1 mass=-400 + -1.216552506059644e+01, -0.000000000000000e+00, // itest=207: oxxxxx#21 nsp=-1 mass=-400 + 9.863939238321439e+00, 1.052153518754287e+01, // itest=207: oxxxxx#21 nsp=-1 mass=-400 + -2.433105012119288e+01, -0.000000000000000e+00 } ); // itest=207: oxxxxx#21 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=208: ixxxxx#22 nsp=-1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=208: ixxxxx#22 nsp=-1 mass=400 + 1.664100588675688e+01, -1.775040627920733e+01, // itest=208: ixxxxx#22 nsp=-1 mass=400 + -1.442220510185596e+01, -0.000000000000000e+00, // itest=208: ixxxxx#22 nsp=-1 mass=400 + -8.320502943378436e+00, 8.875203139603666e+00, // itest=208: ixxxxx#22 nsp=-1 mass=400 + 7.211102550927978e+00, 0.000000000000000e+00 } ); // itest=208: ixxxxx#22 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=209: ixxxxx#22 nsp=-1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=209: ixxxxx#22 nsp=-1 mass=-400 + 1.664100588675688e+01, -1.775040627920733e+01, // itest=209: ixxxxx#22 nsp=-1 mass=-400 + -1.442220510185596e+01, -0.000000000000000e+00, // itest=209: ixxxxx#22 nsp=-1 mass=-400 + 8.320502943378436e+00, -8.875203139603666e+00, // itest=209: ixxxxx#22 nsp=-1 mass=-400 + -7.211102550927978e+00, -0.000000000000000e+00 } ); // itest=209: ixxxxx#22 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=210: vxxxxx#22 nsp=-1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=210: vxxxxx#22 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=210: vxxxxx#22 nsp=-1 mass=400 + 2.321373168788980e-01, 5.158607041753289e-01, // itest=210: vxxxxx#22 nsp=-1 mass=400 + 2.476131380041579e-01, -4.836194101643708e-01, // itest=210: vxxxxx#22 nsp=-1 mass=400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=210: vxxxxx#22 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=211: vxxxxx#22 nsp=-1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=211: vxxxxx#22 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=211: vxxxxx#22 nsp=-1 mass=-400 + 2.321373168788980e-01, 5.158607041753289e-01, // itest=211: vxxxxx#22 nsp=-1 mass=-400 + 2.476131380041579e-01, -4.836194101643708e-01, // itest=211: vxxxxx#22 nsp=-1 mass=-400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=211: vxxxxx#22 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=212: sxxxxx#22 nsp=-1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=212: sxxxxx#22 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=212: sxxxxx#22 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=212: sxxxxx#22 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=212: sxxxxx#22 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=212: sxxxxx#22 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=213: sxxxxx#22 nsp=-1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=213: sxxxxx#22 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=213: sxxxxx#22 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=213: sxxxxx#22 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=213: sxxxxx#22 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=213: sxxxxx#22 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=214: oxxxxx#22 nsp=-1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=214: oxxxxx#22 nsp=-1 mass=400 + -8.320502943378436e+00, -8.875203139603666e+00, // itest=214: oxxxxx#22 nsp=-1 mass=400 + 7.211102550927978e+00, 0.000000000000000e+00, // itest=214: oxxxxx#22 nsp=-1 mass=400 + 1.664100588675688e+01, 1.775040627920733e+01, // itest=214: oxxxxx#22 nsp=-1 mass=400 + -1.442220510185596e+01, -0.000000000000000e+00 } ); // itest=214: oxxxxx#22 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=215: oxxxxx#22 nsp=-1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=215: oxxxxx#22 nsp=-1 mass=-400 + 8.320502943378436e+00, 8.875203139603666e+00, // itest=215: oxxxxx#22 nsp=-1 mass=-400 + -7.211102550927978e+00, -0.000000000000000e+00, // itest=215: oxxxxx#22 nsp=-1 mass=-400 + 1.664100588675688e+01, 1.775040627920733e+01, // itest=215: oxxxxx#22 nsp=-1 mass=-400 + -1.442220510185596e+01, -0.000000000000000e+00 } ); // itest=215: oxxxxx#22 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=216: ixxxxx#23 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=216: ixxxxx#23 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=216: ixxxxx#23 nsp=-1 mass=500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=216: ixxxxx#23 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=216: ixxxxx#23 nsp=-1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=216: ixxxxx#23 nsp=-1 mass=500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=217: ixxxxx#23 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=217: ixxxxx#23 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=217: ixxxxx#23 nsp=-1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=217: ixxxxx#23 nsp=-1 mass=-500 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=217: ixxxxx#23 nsp=-1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=217: ixxxxx#23 nsp=-1 mass=-500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=218: vxxxxx#23 nsp=-1 mass=500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=218: vxxxxx#23 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=218: vxxxxx#23 nsp=-1 mass=500 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=218: vxxxxx#23 nsp=-1 mass=500 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=218: vxxxxx#23 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=218: vxxxxx#23 nsp=-1 mass=500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=219: vxxxxx#23 nsp=-1 mass=-500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=219: vxxxxx#23 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=219: vxxxxx#23 nsp=-1 mass=-500 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=219: vxxxxx#23 nsp=-1 mass=-500 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=219: vxxxxx#23 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=219: vxxxxx#23 nsp=-1 mass=-500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=220: sxxxxx#23 nsp=-1 mass=500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=220: sxxxxx#23 nsp=-1 mass=500 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=220: sxxxxx#23 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=220: sxxxxx#23 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=220: sxxxxx#23 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=220: sxxxxx#23 nsp=-1 mass=500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=221: sxxxxx#23 nsp=-1 mass=-500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=221: sxxxxx#23 nsp=-1 mass=-500 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=221: sxxxxx#23 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=221: sxxxxx#23 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=221: sxxxxx#23 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=221: sxxxxx#23 nsp=-1 mass=-500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=222: oxxxxx#23 nsp=-1 mass=500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=222: oxxxxx#23 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=222: oxxxxx#23 nsp=-1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=222: oxxxxx#23 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=222: oxxxxx#23 nsp=-1 mass=500 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=222: oxxxxx#23 nsp=-1 mass=500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=223: oxxxxx#23 nsp=-1 mass=-500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=223: oxxxxx#23 nsp=-1 mass=-500 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=223: oxxxxx#23 nsp=-1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=223: oxxxxx#23 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=223: oxxxxx#23 nsp=-1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=223: oxxxxx#23 nsp=-1 mass=-500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=224: ixxxxx#24 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=224: ixxxxx#24 nsp=-1 mass=400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=224: ixxxxx#24 nsp=-1 mass=400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=224: ixxxxx#24 nsp=-1 mass=400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=224: ixxxxx#24 nsp=-1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00 } ); // itest=224: ixxxxx#24 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=225: ixxxxx#24 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=225: ixxxxx#24 nsp=-1 mass=-400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=225: ixxxxx#24 nsp=-1 mass=-400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=225: ixxxxx#24 nsp=-1 mass=-400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=225: ixxxxx#24 nsp=-1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00 } ); // itest=225: ixxxxx#24 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=226: vxxxxx#24 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=226: vxxxxx#24 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=226: vxxxxx#24 nsp=-1 mass=400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=226: vxxxxx#24 nsp=-1 mass=400 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=226: vxxxxx#24 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=226: vxxxxx#24 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=227: vxxxxx#24 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=227: vxxxxx#24 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=227: vxxxxx#24 nsp=-1 mass=-400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=227: vxxxxx#24 nsp=-1 mass=-400 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=227: vxxxxx#24 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=227: vxxxxx#24 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=228: sxxxxx#24 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=228: sxxxxx#24 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=228: sxxxxx#24 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=228: sxxxxx#24 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=228: sxxxxx#24 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=228: sxxxxx#24 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=229: sxxxxx#24 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=229: sxxxxx#24 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=229: sxxxxx#24 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=229: sxxxxx#24 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=229: sxxxxx#24 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=229: sxxxxx#24 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=230: oxxxxx#24 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=230: oxxxxx#24 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=230: oxxxxx#24 nsp=-1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=230: oxxxxx#24 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=230: oxxxxx#24 nsp=-1 mass=400 + -2.828427124746190e+01, -0.000000000000000e+00 } ); // itest=230: oxxxxx#24 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=231: oxxxxx#24 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=231: oxxxxx#24 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=231: oxxxxx#24 nsp=-1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=231: oxxxxx#24 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=231: oxxxxx#24 nsp=-1 mass=-400 + -2.828427124746190e+01, -0.000000000000000e+00 } ); // itest=231: oxxxxx#24 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=232: ixxxxx#25 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=232: ixxxxx#25 nsp=-1 mass=400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=232: ixxxxx#25 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=232: ixxxxx#25 nsp=-1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=232: ixxxxx#25 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=232: ixxxxx#25 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=233: ixxxxx#25 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=233: ixxxxx#25 nsp=-1 mass=-400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=233: ixxxxx#25 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=233: ixxxxx#25 nsp=-1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=233: ixxxxx#25 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=233: ixxxxx#25 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=234: vxxxxx#25 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=234: vxxxxx#25 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=234: vxxxxx#25 nsp=-1 mass=400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=234: vxxxxx#25 nsp=-1 mass=400 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=234: vxxxxx#25 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=234: vxxxxx#25 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=235: vxxxxx#25 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=235: vxxxxx#25 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=235: vxxxxx#25 nsp=-1 mass=-400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=235: vxxxxx#25 nsp=-1 mass=-400 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=235: vxxxxx#25 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=235: vxxxxx#25 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=236: sxxxxx#25 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=236: sxxxxx#25 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=236: sxxxxx#25 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=236: sxxxxx#25 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=236: sxxxxx#25 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=236: sxxxxx#25 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=237: sxxxxx#25 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=237: sxxxxx#25 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=237: sxxxxx#25 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=237: sxxxxx#25 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=237: sxxxxx#25 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=237: sxxxxx#25 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=238: oxxxxx#25 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=238: oxxxxx#25 nsp=-1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=238: oxxxxx#25 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=238: oxxxxx#25 nsp=-1 mass=400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=238: oxxxxx#25 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=238: oxxxxx#25 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=239: oxxxxx#25 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=239: oxxxxx#25 nsp=-1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=239: oxxxxx#25 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=239: oxxxxx#25 nsp=-1 mass=-400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=239: oxxxxx#25 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=239: oxxxxx#25 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=240: ixxxxx#26 nsp=-1 mass=400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=240: ixxxxx#26 nsp=-1 mass=400 + 1.200000000000000e+01, -1.600000000000000e+01, // itest=240: ixxxxx#26 nsp=-1 mass=400 + -2.000000000000000e+01, -0.000000000000000e+00, // itest=240: ixxxxx#26 nsp=-1 mass=400 + -5.999999999999999e+00, 7.999999999999999e+00, // itest=240: ixxxxx#26 nsp=-1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=240: ixxxxx#26 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=241: ixxxxx#26 nsp=-1 mass=-400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=241: ixxxxx#26 nsp=-1 mass=-400 + 1.200000000000000e+01, -1.600000000000000e+01, // itest=241: ixxxxx#26 nsp=-1 mass=-400 + -2.000000000000000e+01, -0.000000000000000e+00, // itest=241: ixxxxx#26 nsp=-1 mass=-400 + 5.999999999999999e+00, -7.999999999999999e+00, // itest=241: ixxxxx#26 nsp=-1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00 } ); // itest=241: ixxxxx#26 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=242: vxxxxx#26 nsp=-1 mass=400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=242: vxxxxx#26 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=242: vxxxxx#26 nsp=-1 mass=400 + 0.000000000000000e+00, 5.656854249492381e-01, // itest=242: vxxxxx#26 nsp=-1 mass=400 + 0.000000000000000e+00, -4.242640687119285e-01, // itest=242: vxxxxx#26 nsp=-1 mass=400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=242: vxxxxx#26 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=243: vxxxxx#26 nsp=-1 mass=-400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=243: vxxxxx#26 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=243: vxxxxx#26 nsp=-1 mass=-400 + -0.000000000000000e+00, 5.656854249492381e-01, // itest=243: vxxxxx#26 nsp=-1 mass=-400 + -0.000000000000000e+00, -4.242640687119285e-01, // itest=243: vxxxxx#26 nsp=-1 mass=-400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=243: vxxxxx#26 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=244: sxxxxx#26 nsp=-1 mass=400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=244: sxxxxx#26 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=244: sxxxxx#26 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=244: sxxxxx#26 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=244: sxxxxx#26 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=244: sxxxxx#26 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=245: sxxxxx#26 nsp=-1 mass=-400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=245: sxxxxx#26 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=245: sxxxxx#26 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=245: sxxxxx#26 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=245: sxxxxx#26 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=245: sxxxxx#26 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=246: oxxxxx#26 nsp=-1 mass=400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=246: oxxxxx#26 nsp=-1 mass=400 + -5.999999999999999e+00, -7.999999999999999e+00, // itest=246: oxxxxx#26 nsp=-1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=246: oxxxxx#26 nsp=-1 mass=400 + 1.200000000000000e+01, 1.600000000000000e+01, // itest=246: oxxxxx#26 nsp=-1 mass=400 + -2.000000000000000e+01, -0.000000000000000e+00 } ); // itest=246: oxxxxx#26 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=247: oxxxxx#26 nsp=-1 mass=-400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=247: oxxxxx#26 nsp=-1 mass=-400 + 5.999999999999999e+00, 7.999999999999999e+00, // itest=247: oxxxxx#26 nsp=-1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00, // itest=247: oxxxxx#26 nsp=-1 mass=-400 + 1.200000000000000e+01, 1.600000000000000e+01, // itest=247: oxxxxx#26 nsp=-1 mass=-400 + -2.000000000000000e+01, -0.000000000000000e+00 } ); // itest=247: oxxxxx#26 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=248: ixxxxx#27 nsp=-1 mass=400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=248: ixxxxx#27 nsp=-1 mass=400 + -1.600000000000000e+01, 1.200000000000000e+01, // itest=248: ixxxxx#27 nsp=-1 mass=400 + -2.000000000000000e+01, -0.000000000000000e+00, // itest=248: ixxxxx#27 nsp=-1 mass=400 + 7.999999999999999e+00, -5.999999999999999e+00, // itest=248: ixxxxx#27 nsp=-1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=248: ixxxxx#27 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=249: ixxxxx#27 nsp=-1 mass=-400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=249: ixxxxx#27 nsp=-1 mass=-400 + -1.600000000000000e+01, 1.200000000000000e+01, // itest=249: ixxxxx#27 nsp=-1 mass=-400 + -2.000000000000000e+01, -0.000000000000000e+00, // itest=249: ixxxxx#27 nsp=-1 mass=-400 + -7.999999999999999e+00, 5.999999999999999e+00, // itest=249: ixxxxx#27 nsp=-1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00 } ); // itest=249: ixxxxx#27 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=250: vxxxxx#27 nsp=-1 mass=400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=250: vxxxxx#27 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=250: vxxxxx#27 nsp=-1 mass=400 + 0.000000000000000e+00, -4.242640687119285e-01, // itest=250: vxxxxx#27 nsp=-1 mass=400 + 0.000000000000000e+00, 5.656854249492381e-01, // itest=250: vxxxxx#27 nsp=-1 mass=400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=250: vxxxxx#27 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=251: vxxxxx#27 nsp=-1 mass=-400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=251: vxxxxx#27 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=251: vxxxxx#27 nsp=-1 mass=-400 + 0.000000000000000e+00, -4.242640687119285e-01, // itest=251: vxxxxx#27 nsp=-1 mass=-400 + 0.000000000000000e+00, 5.656854249492381e-01, // itest=251: vxxxxx#27 nsp=-1 mass=-400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=251: vxxxxx#27 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=252: sxxxxx#27 nsp=-1 mass=400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=252: sxxxxx#27 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=252: sxxxxx#27 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=252: sxxxxx#27 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=252: sxxxxx#27 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=252: sxxxxx#27 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=253: sxxxxx#27 nsp=-1 mass=-400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=253: sxxxxx#27 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=253: sxxxxx#27 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=253: sxxxxx#27 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=253: sxxxxx#27 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=253: sxxxxx#27 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=254: oxxxxx#27 nsp=-1 mass=400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=254: oxxxxx#27 nsp=-1 mass=400 + 7.999999999999999e+00, 5.999999999999999e+00, // itest=254: oxxxxx#27 nsp=-1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=254: oxxxxx#27 nsp=-1 mass=400 + -1.600000000000000e+01, -1.200000000000000e+01, // itest=254: oxxxxx#27 nsp=-1 mass=400 + -2.000000000000000e+01, -0.000000000000000e+00 } ); // itest=254: oxxxxx#27 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=255: oxxxxx#27 nsp=-1 mass=-400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=255: oxxxxx#27 nsp=-1 mass=-400 + -7.999999999999999e+00, -5.999999999999999e+00, // itest=255: oxxxxx#27 nsp=-1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00, // itest=255: oxxxxx#27 nsp=-1 mass=-400 + -1.600000000000000e+01, -1.200000000000000e+01, // itest=255: oxxxxx#27 nsp=-1 mass=-400 + -2.000000000000000e+01, -0.000000000000000e+00 } ); // itest=255: oxxxxx#27 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=256: ixxxxx#28 nsp=-1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=256: ixxxxx#28 nsp=-1 mass=400 + 9.863939238321439e+00, -1.052153518754287e+01, // itest=256: ixxxxx#28 nsp=-1 mass=400 + -2.433105012119288e+01, -0.000000000000000e+00, // itest=256: ixxxxx#28 nsp=-1 mass=400 + -4.931969619160719e+00, 5.260767593771432e+00, // itest=256: ixxxxx#28 nsp=-1 mass=400 + 1.216552506059644e+01, 0.000000000000000e+00 } ); // itest=256: ixxxxx#28 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=257: ixxxxx#28 nsp=-1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=257: ixxxxx#28 nsp=-1 mass=-400 + 9.863939238321439e+00, -1.052153518754287e+01, // itest=257: ixxxxx#28 nsp=-1 mass=-400 + -2.433105012119288e+01, -0.000000000000000e+00, // itest=257: ixxxxx#28 nsp=-1 mass=-400 + 4.931969619160719e+00, -5.260767593771432e+00, // itest=257: ixxxxx#28 nsp=-1 mass=-400 + -1.216552506059644e+01, -0.000000000000000e+00 } ); // itest=257: ixxxxx#28 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=258: vxxxxx#28 nsp=-1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=258: vxxxxx#28 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=258: vxxxxx#28 nsp=-1 mass=400 + -2.321373168788980e-01, 5.158607041753289e-01, // itest=258: vxxxxx#28 nsp=-1 mass=400 + -2.476131380041579e-01, -4.836194101643708e-01, // itest=258: vxxxxx#28 nsp=-1 mass=400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=258: vxxxxx#28 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=259: vxxxxx#28 nsp=-1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=259: vxxxxx#28 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=259: vxxxxx#28 nsp=-1 mass=-400 + -2.321373168788980e-01, 5.158607041753289e-01, // itest=259: vxxxxx#28 nsp=-1 mass=-400 + -2.476131380041579e-01, -4.836194101643708e-01, // itest=259: vxxxxx#28 nsp=-1 mass=-400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=259: vxxxxx#28 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=260: sxxxxx#28 nsp=-1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=260: sxxxxx#28 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=260: sxxxxx#28 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=260: sxxxxx#28 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=260: sxxxxx#28 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=260: sxxxxx#28 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=261: sxxxxx#28 nsp=-1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=261: sxxxxx#28 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=261: sxxxxx#28 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=261: sxxxxx#28 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=261: sxxxxx#28 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=261: sxxxxx#28 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=262: oxxxxx#28 nsp=-1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=262: oxxxxx#28 nsp=-1 mass=400 + -4.931969619160719e+00, -5.260767593771432e+00, // itest=262: oxxxxx#28 nsp=-1 mass=400 + 1.216552506059644e+01, 0.000000000000000e+00, // itest=262: oxxxxx#28 nsp=-1 mass=400 + 9.863939238321439e+00, 1.052153518754287e+01, // itest=262: oxxxxx#28 nsp=-1 mass=400 + -2.433105012119288e+01, -0.000000000000000e+00 } ); // itest=262: oxxxxx#28 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=263: oxxxxx#28 nsp=-1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=263: oxxxxx#28 nsp=-1 mass=-400 + 4.931969619160719e+00, 5.260767593771432e+00, // itest=263: oxxxxx#28 nsp=-1 mass=-400 + -1.216552506059644e+01, -0.000000000000000e+00, // itest=263: oxxxxx#28 nsp=-1 mass=-400 + 9.863939238321439e+00, 1.052153518754287e+01, // itest=263: oxxxxx#28 nsp=-1 mass=-400 + -2.433105012119288e+01, -0.000000000000000e+00 } ); // itest=263: oxxxxx#28 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=264: ixxxxx#29 nsp=-1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=264: ixxxxx#29 nsp=-1 mass=400 + 1.664100588675688e+01, -1.775040627920733e+01, // itest=264: ixxxxx#29 nsp=-1 mass=400 + -1.442220510185596e+01, -0.000000000000000e+00, // itest=264: ixxxxx#29 nsp=-1 mass=400 + -8.320502943378436e+00, 8.875203139603666e+00, // itest=264: ixxxxx#29 nsp=-1 mass=400 + 7.211102550927978e+00, 0.000000000000000e+00 } ); // itest=264: ixxxxx#29 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=265: ixxxxx#29 nsp=-1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=265: ixxxxx#29 nsp=-1 mass=-400 + 1.664100588675688e+01, -1.775040627920733e+01, // itest=265: ixxxxx#29 nsp=-1 mass=-400 + -1.442220510185596e+01, -0.000000000000000e+00, // itest=265: ixxxxx#29 nsp=-1 mass=-400 + 8.320502943378436e+00, -8.875203139603666e+00, // itest=265: ixxxxx#29 nsp=-1 mass=-400 + -7.211102550927978e+00, -0.000000000000000e+00 } ); // itest=265: ixxxxx#29 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=266: vxxxxx#29 nsp=-1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=266: vxxxxx#29 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=266: vxxxxx#29 nsp=-1 mass=400 + 2.321373168788980e-01, 5.158607041753289e-01, // itest=266: vxxxxx#29 nsp=-1 mass=400 + 2.476131380041579e-01, -4.836194101643708e-01, // itest=266: vxxxxx#29 nsp=-1 mass=400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=266: vxxxxx#29 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=267: vxxxxx#29 nsp=-1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=267: vxxxxx#29 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=267: vxxxxx#29 nsp=-1 mass=-400 + 2.321373168788980e-01, 5.158607041753289e-01, // itest=267: vxxxxx#29 nsp=-1 mass=-400 + 2.476131380041579e-01, -4.836194101643708e-01, // itest=267: vxxxxx#29 nsp=-1 mass=-400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=267: vxxxxx#29 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=268: sxxxxx#29 nsp=-1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=268: sxxxxx#29 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=268: sxxxxx#29 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=268: sxxxxx#29 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=268: sxxxxx#29 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=268: sxxxxx#29 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=269: sxxxxx#29 nsp=-1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=269: sxxxxx#29 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=269: sxxxxx#29 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=269: sxxxxx#29 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=269: sxxxxx#29 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=269: sxxxxx#29 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=270: oxxxxx#29 nsp=-1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=270: oxxxxx#29 nsp=-1 mass=400 + -8.320502943378436e+00, -8.875203139603666e+00, // itest=270: oxxxxx#29 nsp=-1 mass=400 + 7.211102550927978e+00, 0.000000000000000e+00, // itest=270: oxxxxx#29 nsp=-1 mass=400 + 1.664100588675688e+01, 1.775040627920733e+01, // itest=270: oxxxxx#29 nsp=-1 mass=400 + -1.442220510185596e+01, -0.000000000000000e+00 } ); // itest=270: oxxxxx#29 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=271: oxxxxx#29 nsp=-1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=271: oxxxxx#29 nsp=-1 mass=-400 + 8.320502943378436e+00, 8.875203139603666e+00, // itest=271: oxxxxx#29 nsp=-1 mass=-400 + -7.211102550927978e+00, -0.000000000000000e+00, // itest=271: oxxxxx#29 nsp=-1 mass=-400 + 1.664100588675688e+01, 1.775040627920733e+01, // itest=271: oxxxxx#29 nsp=-1 mass=-400 + -1.442220510185596e+01, -0.000000000000000e+00 } ); // itest=271: oxxxxx#29 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=272: ixxxxx#30 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=272: ixxxxx#30 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=272: ixxxxx#30 nsp=-1 mass=500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=272: ixxxxx#30 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=272: ixxxxx#30 nsp=-1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=272: ixxxxx#30 nsp=-1 mass=500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=273: ixxxxx#30 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=273: ixxxxx#30 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=273: ixxxxx#30 nsp=-1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=273: ixxxxx#30 nsp=-1 mass=-500 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=273: ixxxxx#30 nsp=-1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=273: ixxxxx#30 nsp=-1 mass=-500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=274: vxxxxx#30 nsp=-1 mass=500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=274: vxxxxx#30 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=274: vxxxxx#30 nsp=-1 mass=500 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=274: vxxxxx#30 nsp=-1 mass=500 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=274: vxxxxx#30 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=274: vxxxxx#30 nsp=-1 mass=500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=275: vxxxxx#30 nsp=-1 mass=-500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=275: vxxxxx#30 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=275: vxxxxx#30 nsp=-1 mass=-500 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=275: vxxxxx#30 nsp=-1 mass=-500 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=275: vxxxxx#30 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=275: vxxxxx#30 nsp=-1 mass=-500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=276: sxxxxx#30 nsp=-1 mass=500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=276: sxxxxx#30 nsp=-1 mass=500 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=276: sxxxxx#30 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=276: sxxxxx#30 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=276: sxxxxx#30 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=276: sxxxxx#30 nsp=-1 mass=500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=277: sxxxxx#30 nsp=-1 mass=-500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=277: sxxxxx#30 nsp=-1 mass=-500 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=277: sxxxxx#30 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=277: sxxxxx#30 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=277: sxxxxx#30 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=277: sxxxxx#30 nsp=-1 mass=-500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=278: oxxxxx#30 nsp=-1 mass=500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=278: oxxxxx#30 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=278: oxxxxx#30 nsp=-1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=278: oxxxxx#30 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=278: oxxxxx#30 nsp=-1 mass=500 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=278: oxxxxx#30 nsp=-1 mass=500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=279: oxxxxx#30 nsp=-1 mass=-500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=279: oxxxxx#30 nsp=-1 mass=-500 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=279: oxxxxx#30 nsp=-1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=279: oxxxxx#30 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=279: oxxxxx#30 nsp=-1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=279: oxxxxx#30 nsp=-1 mass=-500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=280: ixxxxx#31 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=280: ixxxxx#31 nsp=-1 mass=400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=280: ixxxxx#31 nsp=-1 mass=400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=280: ixxxxx#31 nsp=-1 mass=400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=280: ixxxxx#31 nsp=-1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00 } ); // itest=280: ixxxxx#31 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=281: ixxxxx#31 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=281: ixxxxx#31 nsp=-1 mass=-400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=281: ixxxxx#31 nsp=-1 mass=-400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=281: ixxxxx#31 nsp=-1 mass=-400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=281: ixxxxx#31 nsp=-1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00 } ); // itest=281: ixxxxx#31 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=282: vxxxxx#31 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=282: vxxxxx#31 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=282: vxxxxx#31 nsp=-1 mass=400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=282: vxxxxx#31 nsp=-1 mass=400 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=282: vxxxxx#31 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=282: vxxxxx#31 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=283: vxxxxx#31 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=283: vxxxxx#31 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=283: vxxxxx#31 nsp=-1 mass=-400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=283: vxxxxx#31 nsp=-1 mass=-400 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=283: vxxxxx#31 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=283: vxxxxx#31 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=284: sxxxxx#31 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=284: sxxxxx#31 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=284: sxxxxx#31 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=284: sxxxxx#31 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=284: sxxxxx#31 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=284: sxxxxx#31 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=285: sxxxxx#31 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=285: sxxxxx#31 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=285: sxxxxx#31 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=285: sxxxxx#31 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=285: sxxxxx#31 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=285: sxxxxx#31 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=286: oxxxxx#31 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=286: oxxxxx#31 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=286: oxxxxx#31 nsp=-1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=286: oxxxxx#31 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=286: oxxxxx#31 nsp=-1 mass=400 + -2.828427124746190e+01, -0.000000000000000e+00 } ); // itest=286: oxxxxx#31 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=287: oxxxxx#31 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=287: oxxxxx#31 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=287: oxxxxx#31 nsp=-1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=287: oxxxxx#31 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=287: oxxxxx#31 nsp=-1 mass=-400 + -2.828427124746190e+01, -0.000000000000000e+00 } ); // itest=287: oxxxxx#31 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=288: ixxxxx#0 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=288: ixxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=288: ixxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=288: ixxxxx#0 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=288: ixxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=288: ixxxxx#0 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=289: ixxxxx#0 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=289: ixxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=289: ixxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=289: ixxxxx#0 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=289: ixxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=289: ixxxxx#0 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=290: ipzxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=290: ipzxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=290: ipzxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=290: ipzxxx#0 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=290: ipzxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=290: ipzxxx#0 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=291: vxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=291: vxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=291: vxxxxx#0 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=291: vxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=291: vxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=291: vxxxxx#0 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=292: vxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=292: vxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=292: vxxxxx#0 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=292: vxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=292: vxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=292: vxxxxx#0 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=293: sxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=293: sxxxxx#0 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=293: sxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=293: sxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=293: sxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=293: sxxxxx#0 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=294: sxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=294: sxxxxx#0 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=294: sxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=294: sxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=294: sxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=294: sxxxxx#0 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=295: oxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=295: oxxxxx#0 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=295: oxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=295: oxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=295: oxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=295: oxxxxx#0 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=296: oxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=296: oxxxxx#0 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=296: oxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=296: oxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=296: oxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=296: oxxxxx#0 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=297: opzxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=297: opzxxx#0 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=297: opzxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=297: opzxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=297: opzxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=297: opzxxx#0 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=298: ixxxxx#1 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=298: ixxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=298: ixxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=298: ixxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=298: ixxxxx#1 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=298: ixxxxx#1 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=299: ixxxxx#1 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=299: ixxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=299: ixxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=299: ixxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=299: ixxxxx#1 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=299: ixxxxx#1 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=300: imzxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=300: imzxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=300: imzxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=300: imzxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=300: imzxxx#1 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=300: imzxxx#1 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=301: vxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=301: vxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=301: vxxxxx#1 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=301: vxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=301: vxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=301: vxxxxx#1 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=302: vxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=302: vxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=302: vxxxxx#1 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=302: vxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=302: vxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=302: vxxxxx#1 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=303: sxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=303: sxxxxx#1 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=303: sxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=303: sxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=303: sxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=303: sxxxxx#1 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=304: sxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=304: sxxxxx#1 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=304: sxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=304: sxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=304: sxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=304: sxxxxx#1 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=305: oxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=305: oxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=305: oxxxxx#1 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=305: oxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=305: oxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=305: oxxxxx#1 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=306: oxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=306: oxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=306: oxxxxx#1 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=306: oxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=306: oxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=306: oxxxxx#1 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=307: omzxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=307: omzxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=307: omzxxx#1 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=307: omzxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=307: omzxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=307: omzxxx#1 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=308: ixxxxx#2 nsp=1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=308: ixxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=308: ixxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=308: ixxxxx#2 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=308: ixxxxx#2 nsp=1 mass=0 + 1.341640786499874e+01, 1.788854381999831e+01 } ); // itest=308: ixxxxx#2 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=309: ixxxxx#2 nsp=1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=309: ixxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=309: ixxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=309: ixxxxx#2 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=309: ixxxxx#2 nsp=1 mass=0 + 1.341640786499874e+01, 1.788854381999831e+01 } ); // itest=309: ixxxxx#2 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=310: ixzxxx#2 nsp=1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=310: ixzxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=310: ixzxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=310: ixzxxx#2 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=310: ixzxxx#2 nsp=1 mass=0 + 1.341640786499874e+01, 1.788854381999832e+01 } ); // itest=310: ixzxxx#2 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=311: vxxxxx#2 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=311: vxxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=311: vxxxxx#2 nsp=1 mass=0 + -0.000000000000000e+00, -5.656854249492381e-01, // itest=311: vxxxxx#2 nsp=1 mass=0 + -0.000000000000000e+00, 4.242640687119285e-01, // itest=311: vxxxxx#2 nsp=1 mass=0 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=311: vxxxxx#2 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=312: vxxxxx#2 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=312: vxxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=312: vxxxxx#2 nsp=1 mass=0 + -0.000000000000000e+00, -5.656854249492381e-01, // itest=312: vxxxxx#2 nsp=1 mass=0 + -0.000000000000000e+00, 4.242640687119285e-01, // itest=312: vxxxxx#2 nsp=1 mass=0 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=312: vxxxxx#2 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=313: sxxxxx#2 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=313: sxxxxx#2 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=313: sxxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=313: sxxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=313: sxxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=313: sxxxxx#2 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=314: sxxxxx#2 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=314: sxxxxx#2 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=314: sxxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=314: sxxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=314: sxxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=314: sxxxxx#2 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=315: oxxxxx#2 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=315: oxxxxx#2 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=315: oxxxxx#2 nsp=1 mass=0 + 1.341640786499874e+01, -1.788854381999831e+01, // itest=315: oxxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=315: oxxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=315: oxxxxx#2 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=316: oxxxxx#2 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=316: oxxxxx#2 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=316: oxxxxx#2 nsp=1 mass=0 + 1.341640786499874e+01, -1.788854381999831e+01, // itest=316: oxxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=316: oxxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=316: oxxxxx#2 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=317: oxzxxx#2 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=317: oxzxxx#2 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=317: oxzxxx#2 nsp=1 mass=0 + 1.341640786499874e+01, -1.788854381999832e+01, // itest=317: oxzxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=317: oxzxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=317: oxzxxx#2 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=318: ixxxxx#3 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=318: ixxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=318: ixxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=318: ixxxxx#3 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=318: ixxxxx#3 nsp=1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=318: ixxxxx#3 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=319: ixxxxx#3 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=319: ixxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=319: ixxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=319: ixxxxx#3 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=319: ixxxxx#3 nsp=1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=319: ixxxxx#3 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=320: ixzxxx#3 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=320: ixzxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=320: ixzxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=320: ixzxxx#3 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=320: ixzxxx#3 nsp=1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=320: ixzxxx#3 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=321: vxxxxx#3 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=321: vxxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=321: vxxxxx#3 nsp=1 mass=0 + -3.394112549695428e-01, -5.656854249492381e-01, // itest=321: vxxxxx#3 nsp=1 mass=0 + -4.525483399593904e-01, 4.242640687119285e-01, // itest=321: vxxxxx#3 nsp=1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=321: vxxxxx#3 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=322: vxxxxx#3 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=322: vxxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=322: vxxxxx#3 nsp=1 mass=0 + -3.394112549695428e-01, -5.656854249492381e-01, // itest=322: vxxxxx#3 nsp=1 mass=0 + -4.525483399593904e-01, 4.242640687119285e-01, // itest=322: vxxxxx#3 nsp=1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=322: vxxxxx#3 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=323: sxxxxx#3 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=323: sxxxxx#3 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=323: sxxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=323: sxxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=323: sxxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=323: sxxxxx#3 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=324: sxxxxx#3 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=324: sxxxxx#3 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=324: sxxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=324: sxxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=324: sxxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=324: sxxxxx#3 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=325: oxxxxx#3 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=325: oxxxxx#3 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=325: oxxxxx#3 nsp=1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=325: oxxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=325: oxxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=325: oxxxxx#3 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=326: oxxxxx#3 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=326: oxxxxx#3 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=326: oxxxxx#3 nsp=1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=326: oxxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=326: oxxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=326: oxxxxx#3 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=327: oxzxxx#3 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=327: oxzxxx#3 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=327: oxzxxx#3 nsp=1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=327: oxzxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=327: oxzxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=327: oxzxxx#3 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=328: ixxxxx#4 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=328: ixxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=328: ixxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=328: ixxxxx#4 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=328: ixxxxx#4 nsp=1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01 } ); // itest=328: ixxxxx#4 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=329: ixxxxx#4 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=329: ixxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=329: ixxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=329: ixxxxx#4 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=329: ixxxxx#4 nsp=1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01 } ); // itest=329: ixxxxx#4 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=330: ixzxxx#4 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=330: ixzxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=330: ixzxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=330: ixzxxx#4 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=330: ixzxxx#4 nsp=1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01 } ); // itest=330: ixzxxx#4 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=331: vxxxxx#4 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=331: vxxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=331: vxxxxx#4 nsp=1 mass=0 + 3.394112549695428e-01, -5.656854249492381e-01, // itest=331: vxxxxx#4 nsp=1 mass=0 + 4.525483399593904e-01, 4.242640687119285e-01, // itest=331: vxxxxx#4 nsp=1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=331: vxxxxx#4 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=332: vxxxxx#4 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=332: vxxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=332: vxxxxx#4 nsp=1 mass=0 + 3.394112549695428e-01, -5.656854249492381e-01, // itest=332: vxxxxx#4 nsp=1 mass=0 + 4.525483399593904e-01, 4.242640687119285e-01, // itest=332: vxxxxx#4 nsp=1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=332: vxxxxx#4 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=333: sxxxxx#4 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=333: sxxxxx#4 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=333: sxxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=333: sxxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=333: sxxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=333: sxxxxx#4 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=334: sxxxxx#4 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=334: sxxxxx#4 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=334: sxxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=334: sxxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=334: sxxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=334: sxxxxx#4 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=335: oxxxxx#4 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=335: oxxxxx#4 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=335: oxxxxx#4 nsp=1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=335: oxxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=335: oxxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=335: oxxxxx#4 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=336: oxxxxx#4 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=336: oxxxxx#4 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=336: oxxxxx#4 nsp=1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=336: oxxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=336: oxxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=336: oxxxxx#4 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=337: oxzxxx#4 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=337: oxzxxx#4 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=337: oxzxxx#4 nsp=1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=337: oxzxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=337: oxzxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=337: oxzxxx#4 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=338: ixxxxx#5 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=338: ixxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=338: ixxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=338: ixxxxx#5 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=338: ixxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=338: ixxxxx#5 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=339: ixxxxx#5 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=339: ixxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=339: ixxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=339: ixxxxx#5 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=339: ixxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=339: ixxxxx#5 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=340: ipzxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=340: ipzxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=340: ipzxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=340: ipzxxx#5 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=340: ipzxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=340: ipzxxx#5 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=341: vxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=341: vxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=341: vxxxxx#5 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=341: vxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=341: vxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=341: vxxxxx#5 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=342: vxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=342: vxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=342: vxxxxx#5 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=342: vxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=342: vxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=342: vxxxxx#5 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=343: sxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=343: sxxxxx#5 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=343: sxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=343: sxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=343: sxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=343: sxxxxx#5 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=344: sxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=344: sxxxxx#5 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=344: sxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=344: sxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=344: sxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=344: sxxxxx#5 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=345: oxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=345: oxxxxx#5 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=345: oxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=345: oxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=345: oxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=345: oxxxxx#5 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=346: oxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=346: oxxxxx#5 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=346: oxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=346: oxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=346: oxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=346: oxxxxx#5 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=347: opzxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=347: opzxxx#5 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=347: opzxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=347: opzxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=347: opzxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=347: opzxxx#5 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=348: ixxxxx#6 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=348: ixxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=348: ixxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=348: ixxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=348: ixxxxx#6 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=348: ixxxxx#6 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=349: ixxxxx#6 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=349: ixxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=349: ixxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=349: ixxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=349: ixxxxx#6 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=349: ixxxxx#6 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=350: imzxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=350: imzxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=350: imzxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=350: imzxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=350: imzxxx#6 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=350: imzxxx#6 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=351: vxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=351: vxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=351: vxxxxx#6 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=351: vxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=351: vxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=351: vxxxxx#6 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=352: vxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=352: vxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=352: vxxxxx#6 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=352: vxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=352: vxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=352: vxxxxx#6 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=353: sxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=353: sxxxxx#6 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=353: sxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=353: sxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=353: sxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=353: sxxxxx#6 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=354: sxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=354: sxxxxx#6 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=354: sxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=354: sxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=354: sxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=354: sxxxxx#6 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=355: oxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=355: oxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=355: oxxxxx#6 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=355: oxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=355: oxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=355: oxxxxx#6 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=356: oxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=356: oxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=356: oxxxxx#6 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=356: oxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=356: oxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=356: oxxxxx#6 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=357: omzxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=357: omzxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=357: omzxxx#6 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=357: omzxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=357: omzxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=357: omzxxx#6 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=358: ixxxxx#7 nsp=1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=358: ixxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=358: ixxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=358: ixxxxx#7 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=358: ixxxxx#7 nsp=1 mass=0 + 1.341640786499874e+01, 1.788854381999831e+01 } ); // itest=358: ixxxxx#7 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=359: ixxxxx#7 nsp=1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=359: ixxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=359: ixxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=359: ixxxxx#7 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=359: ixxxxx#7 nsp=1 mass=0 + 1.341640786499874e+01, 1.788854381999831e+01 } ); // itest=359: ixxxxx#7 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=360: ixzxxx#7 nsp=1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=360: ixzxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=360: ixzxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=360: ixzxxx#7 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=360: ixzxxx#7 nsp=1 mass=0 + 1.341640786499874e+01, 1.788854381999832e+01 } ); // itest=360: ixzxxx#7 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=361: vxxxxx#7 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=361: vxxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=361: vxxxxx#7 nsp=1 mass=0 + -0.000000000000000e+00, -5.656854249492381e-01, // itest=361: vxxxxx#7 nsp=1 mass=0 + -0.000000000000000e+00, 4.242640687119285e-01, // itest=361: vxxxxx#7 nsp=1 mass=0 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=361: vxxxxx#7 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=362: vxxxxx#7 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=362: vxxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=362: vxxxxx#7 nsp=1 mass=0 + -0.000000000000000e+00, -5.656854249492381e-01, // itest=362: vxxxxx#7 nsp=1 mass=0 + -0.000000000000000e+00, 4.242640687119285e-01, // itest=362: vxxxxx#7 nsp=1 mass=0 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=362: vxxxxx#7 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=363: sxxxxx#7 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=363: sxxxxx#7 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=363: sxxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=363: sxxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=363: sxxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=363: sxxxxx#7 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=364: sxxxxx#7 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=364: sxxxxx#7 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=364: sxxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=364: sxxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=364: sxxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=364: sxxxxx#7 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=365: oxxxxx#7 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=365: oxxxxx#7 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=365: oxxxxx#7 nsp=1 mass=0 + 1.341640786499874e+01, -1.788854381999831e+01, // itest=365: oxxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=365: oxxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=365: oxxxxx#7 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=366: oxxxxx#7 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=366: oxxxxx#7 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=366: oxxxxx#7 nsp=1 mass=0 + 1.341640786499874e+01, -1.788854381999831e+01, // itest=366: oxxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=366: oxxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=366: oxxxxx#7 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=367: oxzxxx#7 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=367: oxzxxx#7 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=367: oxzxxx#7 nsp=1 mass=0 + 1.341640786499874e+01, -1.788854381999832e+01, // itest=367: oxzxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=367: oxzxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=367: oxzxxx#7 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=368: ixxxxx#8 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=368: ixxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=368: ixxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=368: ixxxxx#8 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=368: ixxxxx#8 nsp=1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=368: ixxxxx#8 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=369: ixxxxx#8 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=369: ixxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=369: ixxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=369: ixxxxx#8 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=369: ixxxxx#8 nsp=1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=369: ixxxxx#8 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=370: ixzxxx#8 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=370: ixzxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=370: ixzxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=370: ixzxxx#8 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=370: ixzxxx#8 nsp=1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=370: ixzxxx#8 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=371: vxxxxx#8 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=371: vxxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=371: vxxxxx#8 nsp=1 mass=0 + -3.394112549695428e-01, -5.656854249492381e-01, // itest=371: vxxxxx#8 nsp=1 mass=0 + -4.525483399593904e-01, 4.242640687119285e-01, // itest=371: vxxxxx#8 nsp=1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=371: vxxxxx#8 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=372: vxxxxx#8 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=372: vxxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=372: vxxxxx#8 nsp=1 mass=0 + -3.394112549695428e-01, -5.656854249492381e-01, // itest=372: vxxxxx#8 nsp=1 mass=0 + -4.525483399593904e-01, 4.242640687119285e-01, // itest=372: vxxxxx#8 nsp=1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=372: vxxxxx#8 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=373: sxxxxx#8 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=373: sxxxxx#8 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=373: sxxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=373: sxxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=373: sxxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=373: sxxxxx#8 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=374: sxxxxx#8 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=374: sxxxxx#8 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=374: sxxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=374: sxxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=374: sxxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=374: sxxxxx#8 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=375: oxxxxx#8 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=375: oxxxxx#8 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=375: oxxxxx#8 nsp=1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=375: oxxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=375: oxxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=375: oxxxxx#8 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=376: oxxxxx#8 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=376: oxxxxx#8 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=376: oxxxxx#8 nsp=1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=376: oxxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=376: oxxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=376: oxxxxx#8 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=377: oxzxxx#8 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=377: oxzxxx#8 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=377: oxzxxx#8 nsp=1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=377: oxzxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=377: oxzxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=377: oxzxxx#8 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=378: ixxxxx#9 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=378: ixxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=378: ixxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=378: ixxxxx#9 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=378: ixxxxx#9 nsp=1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01 } ); // itest=378: ixxxxx#9 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=379: ixxxxx#9 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=379: ixxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=379: ixxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=379: ixxxxx#9 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=379: ixxxxx#9 nsp=1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01 } ); // itest=379: ixxxxx#9 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=380: ixzxxx#9 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=380: ixzxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=380: ixzxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=380: ixzxxx#9 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=380: ixzxxx#9 nsp=1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01 } ); // itest=380: ixzxxx#9 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=381: vxxxxx#9 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=381: vxxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=381: vxxxxx#9 nsp=1 mass=0 + 3.394112549695428e-01, -5.656854249492381e-01, // itest=381: vxxxxx#9 nsp=1 mass=0 + 4.525483399593904e-01, 4.242640687119285e-01, // itest=381: vxxxxx#9 nsp=1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=381: vxxxxx#9 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=382: vxxxxx#9 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=382: vxxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=382: vxxxxx#9 nsp=1 mass=0 + 3.394112549695428e-01, -5.656854249492381e-01, // itest=382: vxxxxx#9 nsp=1 mass=0 + 4.525483399593904e-01, 4.242640687119285e-01, // itest=382: vxxxxx#9 nsp=1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=382: vxxxxx#9 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=383: sxxxxx#9 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=383: sxxxxx#9 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=383: sxxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=383: sxxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=383: sxxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=383: sxxxxx#9 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=384: sxxxxx#9 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=384: sxxxxx#9 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=384: sxxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=384: sxxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=384: sxxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=384: sxxxxx#9 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=385: oxxxxx#9 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=385: oxxxxx#9 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=385: oxxxxx#9 nsp=1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=385: oxxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=385: oxxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=385: oxxxxx#9 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=386: oxxxxx#9 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=386: oxxxxx#9 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=386: oxxxxx#9 nsp=1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=386: oxxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=386: oxxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=386: oxxxxx#9 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=387: oxzxxx#9 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=387: oxzxxx#9 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=387: oxzxxx#9 nsp=1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=387: oxzxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=387: oxzxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=387: oxzxxx#9 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=388: ixxxxx#10 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=388: ixxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=388: ixxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=388: ixxxxx#10 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=388: ixxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=388: ixxxxx#10 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=389: ixxxxx#10 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=389: ixxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=389: ixxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=389: ixxxxx#10 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=389: ixxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=389: ixxxxx#10 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=390: ipzxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=390: ipzxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=390: ipzxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=390: ipzxxx#10 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=390: ipzxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=390: ipzxxx#10 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=391: vxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=391: vxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=391: vxxxxx#10 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=391: vxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=391: vxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=391: vxxxxx#10 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=392: vxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=392: vxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=392: vxxxxx#10 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=392: vxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=392: vxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=392: vxxxxx#10 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=393: sxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=393: sxxxxx#10 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=393: sxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=393: sxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=393: sxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=393: sxxxxx#10 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=394: sxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=394: sxxxxx#10 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=394: sxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=394: sxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=394: sxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=394: sxxxxx#10 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=395: oxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=395: oxxxxx#10 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=395: oxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=395: oxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=395: oxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=395: oxxxxx#10 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=396: oxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=396: oxxxxx#10 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=396: oxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=396: oxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=396: oxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=396: oxxxxx#10 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=397: opzxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=397: opzxxx#10 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=397: opzxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=397: opzxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=397: opzxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=397: opzxxx#10 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=398: ixxxxx#11 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=398: ixxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=398: ixxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=398: ixxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=398: ixxxxx#11 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=398: ixxxxx#11 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=399: ixxxxx#11 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=399: ixxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=399: ixxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=399: ixxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=399: ixxxxx#11 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=399: ixxxxx#11 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=400: imzxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=400: imzxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=400: imzxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=400: imzxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=400: imzxxx#11 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=400: imzxxx#11 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=401: vxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=401: vxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=401: vxxxxx#11 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=401: vxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=401: vxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=401: vxxxxx#11 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=402: vxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=402: vxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=402: vxxxxx#11 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=402: vxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=402: vxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=402: vxxxxx#11 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=403: sxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=403: sxxxxx#11 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=403: sxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=403: sxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=403: sxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=403: sxxxxx#11 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=404: sxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=404: sxxxxx#11 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=404: sxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=404: sxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=404: sxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=404: sxxxxx#11 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=405: oxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=405: oxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=405: oxxxxx#11 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=405: oxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=405: oxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=405: oxxxxx#11 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=406: oxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=406: oxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=406: oxxxxx#11 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=406: oxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=406: oxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=406: oxxxxx#11 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=407: omzxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=407: omzxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=407: omzxxx#11 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=407: omzxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=407: omzxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=407: omzxxx#11 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=408: ixxxxx#12 nsp=1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=408: ixxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=408: ixxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=408: ixxxxx#12 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=408: ixxxxx#12 nsp=1 mass=0 + 1.341640786499874e+01, 1.788854381999831e+01 } ); // itest=408: ixxxxx#12 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=409: ixxxxx#12 nsp=1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=409: ixxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=409: ixxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=409: ixxxxx#12 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=409: ixxxxx#12 nsp=1 mass=0 + 1.341640786499874e+01, 1.788854381999831e+01 } ); // itest=409: ixxxxx#12 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=410: ixzxxx#12 nsp=1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=410: ixzxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=410: ixzxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=410: ixzxxx#12 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=410: ixzxxx#12 nsp=1 mass=0 + 1.341640786499874e+01, 1.788854381999832e+01 } ); // itest=410: ixzxxx#12 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=411: vxxxxx#12 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=411: vxxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=411: vxxxxx#12 nsp=1 mass=0 + -0.000000000000000e+00, -5.656854249492381e-01, // itest=411: vxxxxx#12 nsp=1 mass=0 + -0.000000000000000e+00, 4.242640687119285e-01, // itest=411: vxxxxx#12 nsp=1 mass=0 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=411: vxxxxx#12 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=412: vxxxxx#12 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=412: vxxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=412: vxxxxx#12 nsp=1 mass=0 + -0.000000000000000e+00, -5.656854249492381e-01, // itest=412: vxxxxx#12 nsp=1 mass=0 + -0.000000000000000e+00, 4.242640687119285e-01, // itest=412: vxxxxx#12 nsp=1 mass=0 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=412: vxxxxx#12 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=413: sxxxxx#12 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=413: sxxxxx#12 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=413: sxxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=413: sxxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=413: sxxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=413: sxxxxx#12 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=414: sxxxxx#12 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=414: sxxxxx#12 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=414: sxxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=414: sxxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=414: sxxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=414: sxxxxx#12 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=415: oxxxxx#12 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=415: oxxxxx#12 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=415: oxxxxx#12 nsp=1 mass=0 + 1.341640786499874e+01, -1.788854381999831e+01, // itest=415: oxxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=415: oxxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=415: oxxxxx#12 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=416: oxxxxx#12 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=416: oxxxxx#12 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=416: oxxxxx#12 nsp=1 mass=0 + 1.341640786499874e+01, -1.788854381999831e+01, // itest=416: oxxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=416: oxxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=416: oxxxxx#12 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=417: oxzxxx#12 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=417: oxzxxx#12 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=417: oxzxxx#12 nsp=1 mass=0 + 1.341640786499874e+01, -1.788854381999832e+01, // itest=417: oxzxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=417: oxzxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=417: oxzxxx#12 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=418: ixxxxx#13 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=418: ixxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=418: ixxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=418: ixxxxx#13 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=418: ixxxxx#13 nsp=1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=418: ixxxxx#13 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=419: ixxxxx#13 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=419: ixxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=419: ixxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=419: ixxxxx#13 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=419: ixxxxx#13 nsp=1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=419: ixxxxx#13 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=420: ixzxxx#13 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=420: ixzxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=420: ixzxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=420: ixzxxx#13 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=420: ixzxxx#13 nsp=1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=420: ixzxxx#13 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=421: vxxxxx#13 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=421: vxxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=421: vxxxxx#13 nsp=1 mass=0 + -3.394112549695428e-01, -5.656854249492381e-01, // itest=421: vxxxxx#13 nsp=1 mass=0 + -4.525483399593904e-01, 4.242640687119285e-01, // itest=421: vxxxxx#13 nsp=1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=421: vxxxxx#13 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=422: vxxxxx#13 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=422: vxxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=422: vxxxxx#13 nsp=1 mass=0 + -3.394112549695428e-01, -5.656854249492381e-01, // itest=422: vxxxxx#13 nsp=1 mass=0 + -4.525483399593904e-01, 4.242640687119285e-01, // itest=422: vxxxxx#13 nsp=1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=422: vxxxxx#13 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=423: sxxxxx#13 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=423: sxxxxx#13 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=423: sxxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=423: sxxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=423: sxxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=423: sxxxxx#13 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=424: sxxxxx#13 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=424: sxxxxx#13 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=424: sxxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=424: sxxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=424: sxxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=424: sxxxxx#13 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=425: oxxxxx#13 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=425: oxxxxx#13 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=425: oxxxxx#13 nsp=1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=425: oxxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=425: oxxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=425: oxxxxx#13 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=426: oxxxxx#13 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=426: oxxxxx#13 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=426: oxxxxx#13 nsp=1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=426: oxxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=426: oxxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=426: oxxxxx#13 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=427: oxzxxx#13 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=427: oxzxxx#13 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=427: oxzxxx#13 nsp=1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=427: oxzxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=427: oxzxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=427: oxzxxx#13 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=428: ixxxxx#14 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=428: ixxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=428: ixxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=428: ixxxxx#14 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=428: ixxxxx#14 nsp=1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01 } ); // itest=428: ixxxxx#14 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=429: ixxxxx#14 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=429: ixxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=429: ixxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=429: ixxxxx#14 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=429: ixxxxx#14 nsp=1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01 } ); // itest=429: ixxxxx#14 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=430: ixzxxx#14 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=430: ixzxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=430: ixzxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=430: ixzxxx#14 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=430: ixzxxx#14 nsp=1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01 } ); // itest=430: ixzxxx#14 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=431: vxxxxx#14 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=431: vxxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=431: vxxxxx#14 nsp=1 mass=0 + 3.394112549695428e-01, -5.656854249492381e-01, // itest=431: vxxxxx#14 nsp=1 mass=0 + 4.525483399593904e-01, 4.242640687119285e-01, // itest=431: vxxxxx#14 nsp=1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=431: vxxxxx#14 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=432: vxxxxx#14 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=432: vxxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=432: vxxxxx#14 nsp=1 mass=0 + 3.394112549695428e-01, -5.656854249492381e-01, // itest=432: vxxxxx#14 nsp=1 mass=0 + 4.525483399593904e-01, 4.242640687119285e-01, // itest=432: vxxxxx#14 nsp=1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=432: vxxxxx#14 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=433: sxxxxx#14 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=433: sxxxxx#14 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=433: sxxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=433: sxxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=433: sxxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=433: sxxxxx#14 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=434: sxxxxx#14 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=434: sxxxxx#14 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=434: sxxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=434: sxxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=434: sxxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=434: sxxxxx#14 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=435: oxxxxx#14 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=435: oxxxxx#14 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=435: oxxxxx#14 nsp=1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=435: oxxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=435: oxxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=435: oxxxxx#14 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=436: oxxxxx#14 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=436: oxxxxx#14 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=436: oxxxxx#14 nsp=1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=436: oxxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=436: oxxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=436: oxxxxx#14 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=437: oxzxxx#14 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=437: oxzxxx#14 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=437: oxzxxx#14 nsp=1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=437: oxzxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=437: oxzxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=437: oxzxxx#14 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=438: ixxxxx#15 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=438: ixxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=438: ixxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=438: ixxxxx#15 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=438: ixxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=438: ixxxxx#15 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=439: ixxxxx#15 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=439: ixxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=439: ixxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=439: ixxxxx#15 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=439: ixxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=439: ixxxxx#15 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=440: ipzxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=440: ipzxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=440: ipzxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=440: ipzxxx#15 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=440: ipzxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=440: ipzxxx#15 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=441: vxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=441: vxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=441: vxxxxx#15 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=441: vxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=441: vxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=441: vxxxxx#15 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=442: vxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=442: vxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=442: vxxxxx#15 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=442: vxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=442: vxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=442: vxxxxx#15 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=443: sxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=443: sxxxxx#15 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=443: sxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=443: sxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=443: sxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=443: sxxxxx#15 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=444: sxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=444: sxxxxx#15 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=444: sxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=444: sxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=444: sxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=444: sxxxxx#15 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=445: oxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=445: oxxxxx#15 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=445: oxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=445: oxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=445: oxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=445: oxxxxx#15 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=446: oxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=446: oxxxxx#15 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=446: oxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=446: oxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=446: oxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=446: oxxxxx#15 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=447: opzxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=447: opzxxx#15 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=447: opzxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=447: opzxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=447: opzxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=447: opzxxx#15 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=448: ixxxxx#16 nsp=1 mass=500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=448: ixxxxx#16 nsp=1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=448: ixxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=448: ixxxxx#16 nsp=1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=448: ixxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=448: ixxxxx#16 nsp=1 mass=500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=449: ixxxxx#16 nsp=1 mass=-500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=449: ixxxxx#16 nsp=1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=449: ixxxxx#16 nsp=1 mass=-500 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=449: ixxxxx#16 nsp=1 mass=-500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=449: ixxxxx#16 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=449: ixxxxx#16 nsp=1 mass=-500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=450: vxxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=450: vxxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=450: vxxxxx#16 nsp=1 mass=500 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=450: vxxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=450: vxxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=450: vxxxxx#16 nsp=1 mass=500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=451: vxxxxx#16 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=451: vxxxxx#16 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=451: vxxxxx#16 nsp=1 mass=-500 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=451: vxxxxx#16 nsp=1 mass=-500 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=451: vxxxxx#16 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=451: vxxxxx#16 nsp=1 mass=-500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=452: sxxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=452: sxxxxx#16 nsp=1 mass=500 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=452: sxxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=452: sxxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=452: sxxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=452: sxxxxx#16 nsp=1 mass=500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=453: sxxxxx#16 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=453: sxxxxx#16 nsp=1 mass=-500 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=453: sxxxxx#16 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=453: sxxxxx#16 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=453: sxxxxx#16 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=453: sxxxxx#16 nsp=1 mass=-500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=454: oxxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=454: oxxxxx#16 nsp=1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=454: oxxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=454: oxxxxx#16 nsp=1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=454: oxxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=454: oxxxxx#16 nsp=1 mass=500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=455: oxxxxx#16 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=455: oxxxxx#16 nsp=1 mass=-500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=455: oxxxxx#16 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=455: oxxxxx#16 nsp=1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=455: oxxxxx#16 nsp=1 mass=-500 + -0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=455: oxxxxx#16 nsp=1 mass=-500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=456: ixxxxx#17 nsp=1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=456: ixxxxx#17 nsp=1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=456: ixxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=456: ixxxxx#17 nsp=1 mass=400 + 2.828427124746190e+01, 0.000000000000000e+00, // itest=456: ixxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=456: ixxxxx#17 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=457: ixxxxx#17 nsp=1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=457: ixxxxx#17 nsp=1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=457: ixxxxx#17 nsp=1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=457: ixxxxx#17 nsp=1 mass=-400 + 2.828427124746190e+01, 0.000000000000000e+00, // itest=457: ixxxxx#17 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=457: ixxxxx#17 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=458: vxxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=458: vxxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=458: vxxxxx#17 nsp=1 mass=400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=458: vxxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=458: vxxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=458: vxxxxx#17 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=459: vxxxxx#17 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=459: vxxxxx#17 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=459: vxxxxx#17 nsp=1 mass=-400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=459: vxxxxx#17 nsp=1 mass=-400 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=459: vxxxxx#17 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=459: vxxxxx#17 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=460: sxxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=460: sxxxxx#17 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=460: sxxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=460: sxxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=460: sxxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=460: sxxxxx#17 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=461: sxxxxx#17 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=461: sxxxxx#17 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=461: sxxxxx#17 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=461: sxxxxx#17 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=461: sxxxxx#17 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=461: sxxxxx#17 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=462: oxxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=462: oxxxxx#17 nsp=1 mass=400 + 2.828427124746190e+01, 0.000000000000000e+00, // itest=462: oxxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=462: oxxxxx#17 nsp=1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=462: oxxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=462: oxxxxx#17 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=463: oxxxxx#17 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=463: oxxxxx#17 nsp=1 mass=-400 + 2.828427124746190e+01, 0.000000000000000e+00, // itest=463: oxxxxx#17 nsp=1 mass=-400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=463: oxxxxx#17 nsp=1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=463: oxxxxx#17 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=463: oxxxxx#17 nsp=1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=464: ixxxxx#18 nsp=1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=464: ixxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=464: ixxxxx#18 nsp=1 mass=400 + -1.414213562373095e+01, 0.000000000000000e+00, // itest=464: ixxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=464: ixxxxx#18 nsp=1 mass=400 + -2.828427124746190e+01, 0.000000000000000e+00 } ); // itest=464: ixxxxx#18 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=465: ixxxxx#18 nsp=1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=465: ixxxxx#18 nsp=1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=465: ixxxxx#18 nsp=1 mass=-400 + 1.414213562373095e+01, -0.000000000000000e+00, // itest=465: ixxxxx#18 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=465: ixxxxx#18 nsp=1 mass=-400 + -2.828427124746190e+01, 0.000000000000000e+00 } ); // itest=465: ixxxxx#18 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=466: vxxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=466: vxxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=466: vxxxxx#18 nsp=1 mass=400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=466: vxxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=466: vxxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=466: vxxxxx#18 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=467: vxxxxx#18 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=467: vxxxxx#18 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=467: vxxxxx#18 nsp=1 mass=-400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=467: vxxxxx#18 nsp=1 mass=-400 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=467: vxxxxx#18 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=467: vxxxxx#18 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=468: sxxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=468: sxxxxx#18 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=468: sxxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=468: sxxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=468: sxxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=468: sxxxxx#18 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=469: sxxxxx#18 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=469: sxxxxx#18 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=469: sxxxxx#18 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=469: sxxxxx#18 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=469: sxxxxx#18 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=469: sxxxxx#18 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=470: oxxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=470: oxxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=470: oxxxxx#18 nsp=1 mass=400 + -2.828427124746190e+01, 0.000000000000000e+00, // itest=470: oxxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=470: oxxxxx#18 nsp=1 mass=400 + -1.414213562373095e+01, 0.000000000000000e+00 } ); // itest=470: oxxxxx#18 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=471: oxxxxx#18 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=471: oxxxxx#18 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=471: oxxxxx#18 nsp=1 mass=-400 + -2.828427124746190e+01, 0.000000000000000e+00, // itest=471: oxxxxx#18 nsp=1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=471: oxxxxx#18 nsp=1 mass=-400 + 1.414213562373095e+01, -0.000000000000000e+00 } ); // itest=471: oxxxxx#18 nsp=1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=472: ixxxxx#19 nsp=1 mass=400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=472: ixxxxx#19 nsp=1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=472: ixxxxx#19 nsp=1 mass=400 + 5.999999999999999e+00, 7.999999999999999e+00, // itest=472: ixxxxx#19 nsp=1 mass=400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=472: ixxxxx#19 nsp=1 mass=400 + 1.200000000000000e+01, 1.600000000000000e+01 } ); // itest=472: ixxxxx#19 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=473: ixxxxx#19 nsp=1 mass=-400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=473: ixxxxx#19 nsp=1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00, // itest=473: ixxxxx#19 nsp=1 mass=-400 + -5.999999999999999e+00, -7.999999999999999e+00, // itest=473: ixxxxx#19 nsp=1 mass=-400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=473: ixxxxx#19 nsp=1 mass=-400 + 1.200000000000000e+01, 1.600000000000000e+01 } ); // itest=473: ixxxxx#19 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=474: vxxxxx#19 nsp=1 mass=400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=474: vxxxxx#19 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=474: vxxxxx#19 nsp=1 mass=400 + 0.000000000000000e+00, -5.656854249492381e-01, // itest=474: vxxxxx#19 nsp=1 mass=400 + 0.000000000000000e+00, 4.242640687119285e-01, // itest=474: vxxxxx#19 nsp=1 mass=400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=474: vxxxxx#19 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=475: vxxxxx#19 nsp=1 mass=-400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=475: vxxxxx#19 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=475: vxxxxx#19 nsp=1 mass=-400 + -0.000000000000000e+00, -5.656854249492381e-01, // itest=475: vxxxxx#19 nsp=1 mass=-400 + -0.000000000000000e+00, 4.242640687119285e-01, // itest=475: vxxxxx#19 nsp=1 mass=-400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=475: vxxxxx#19 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=476: sxxxxx#19 nsp=1 mass=400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=476: sxxxxx#19 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=476: sxxxxx#19 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=476: sxxxxx#19 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=476: sxxxxx#19 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=476: sxxxxx#19 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=477: sxxxxx#19 nsp=1 mass=-400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=477: sxxxxx#19 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=477: sxxxxx#19 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=477: sxxxxx#19 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=477: sxxxxx#19 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=477: sxxxxx#19 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=478: oxxxxx#19 nsp=1 mass=400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=478: oxxxxx#19 nsp=1 mass=400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=478: oxxxxx#19 nsp=1 mass=400 + 1.200000000000000e+01, -1.600000000000000e+01, // itest=478: oxxxxx#19 nsp=1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=478: oxxxxx#19 nsp=1 mass=400 + 5.999999999999999e+00, -7.999999999999999e+00 } ); // itest=478: oxxxxx#19 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=479: oxxxxx#19 nsp=1 mass=-400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=479: oxxxxx#19 nsp=1 mass=-400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=479: oxxxxx#19 nsp=1 mass=-400 + 1.200000000000000e+01, -1.600000000000000e+01, // itest=479: oxxxxx#19 nsp=1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00, // itest=479: oxxxxx#19 nsp=1 mass=-400 + -5.999999999999999e+00, 7.999999999999999e+00 } ); // itest=479: oxxxxx#19 nsp=1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=480: ixxxxx#20 nsp=1 mass=400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=480: ixxxxx#20 nsp=1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=480: ixxxxx#20 nsp=1 mass=400 + -7.999999999999999e+00, -5.999999999999999e+00, // itest=480: ixxxxx#20 nsp=1 mass=400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=480: ixxxxx#20 nsp=1 mass=400 + -1.600000000000000e+01, -1.200000000000000e+01 } ); // itest=480: ixxxxx#20 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=481: ixxxxx#20 nsp=1 mass=-400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=481: ixxxxx#20 nsp=1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00, // itest=481: ixxxxx#20 nsp=1 mass=-400 + 7.999999999999999e+00, 5.999999999999999e+00, // itest=481: ixxxxx#20 nsp=1 mass=-400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=481: ixxxxx#20 nsp=1 mass=-400 + -1.600000000000000e+01, -1.200000000000000e+01 } ); // itest=481: ixxxxx#20 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=482: vxxxxx#20 nsp=1 mass=400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=482: vxxxxx#20 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=482: vxxxxx#20 nsp=1 mass=400 + 0.000000000000000e+00, 4.242640687119285e-01, // itest=482: vxxxxx#20 nsp=1 mass=400 + 0.000000000000000e+00, -5.656854249492381e-01, // itest=482: vxxxxx#20 nsp=1 mass=400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=482: vxxxxx#20 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=483: vxxxxx#20 nsp=1 mass=-400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=483: vxxxxx#20 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=483: vxxxxx#20 nsp=1 mass=-400 + 0.000000000000000e+00, 4.242640687119285e-01, // itest=483: vxxxxx#20 nsp=1 mass=-400 + 0.000000000000000e+00, -5.656854249492381e-01, // itest=483: vxxxxx#20 nsp=1 mass=-400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=483: vxxxxx#20 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=484: sxxxxx#20 nsp=1 mass=400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=484: sxxxxx#20 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=484: sxxxxx#20 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=484: sxxxxx#20 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=484: sxxxxx#20 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=484: sxxxxx#20 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=485: sxxxxx#20 nsp=1 mass=-400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=485: sxxxxx#20 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=485: sxxxxx#20 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=485: sxxxxx#20 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=485: sxxxxx#20 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=485: sxxxxx#20 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=486: oxxxxx#20 nsp=1 mass=400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=486: oxxxxx#20 nsp=1 mass=400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=486: oxxxxx#20 nsp=1 mass=400 + -1.600000000000000e+01, 1.200000000000000e+01, // itest=486: oxxxxx#20 nsp=1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=486: oxxxxx#20 nsp=1 mass=400 + -7.999999999999999e+00, 5.999999999999999e+00 } ); // itest=486: oxxxxx#20 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=487: oxxxxx#20 nsp=1 mass=-400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=487: oxxxxx#20 nsp=1 mass=-400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=487: oxxxxx#20 nsp=1 mass=-400 + -1.600000000000000e+01, 1.200000000000000e+01, // itest=487: oxxxxx#20 nsp=1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00, // itest=487: oxxxxx#20 nsp=1 mass=-400 + 7.999999999999999e+00, -5.999999999999999e+00 } ); // itest=487: oxxxxx#20 nsp=1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=488: ixxxxx#21 nsp=1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=488: ixxxxx#21 nsp=1 mass=400 + 1.216552506059644e+01, 0.000000000000000e+00, // itest=488: ixxxxx#21 nsp=1 mass=400 + 4.931969619160719e+00, 5.260767593771432e+00, // itest=488: ixxxxx#21 nsp=1 mass=400 + 2.433105012119288e+01, 0.000000000000000e+00, // itest=488: ixxxxx#21 nsp=1 mass=400 + 9.863939238321439e+00, 1.052153518754287e+01 } ); // itest=488: ixxxxx#21 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=489: ixxxxx#21 nsp=1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=489: ixxxxx#21 nsp=1 mass=-400 + -1.216552506059644e+01, -0.000000000000000e+00, // itest=489: ixxxxx#21 nsp=1 mass=-400 + -4.931969619160719e+00, -5.260767593771432e+00, // itest=489: ixxxxx#21 nsp=1 mass=-400 + 2.433105012119288e+01, 0.000000000000000e+00, // itest=489: ixxxxx#21 nsp=1 mass=-400 + 9.863939238321439e+00, 1.052153518754287e+01 } ); // itest=489: ixxxxx#21 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=490: vxxxxx#21 nsp=1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=490: vxxxxx#21 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=490: vxxxxx#21 nsp=1 mass=400 + -2.321373168788980e-01, -5.158607041753289e-01, // itest=490: vxxxxx#21 nsp=1 mass=400 + -2.476131380041579e-01, 4.836194101643708e-01, // itest=490: vxxxxx#21 nsp=1 mass=400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=490: vxxxxx#21 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=491: vxxxxx#21 nsp=1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=491: vxxxxx#21 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=491: vxxxxx#21 nsp=1 mass=-400 + -2.321373168788980e-01, -5.158607041753289e-01, // itest=491: vxxxxx#21 nsp=1 mass=-400 + -2.476131380041579e-01, 4.836194101643708e-01, // itest=491: vxxxxx#21 nsp=1 mass=-400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=491: vxxxxx#21 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=492: sxxxxx#21 nsp=1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=492: sxxxxx#21 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=492: sxxxxx#21 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=492: sxxxxx#21 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=492: sxxxxx#21 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=492: sxxxxx#21 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=493: sxxxxx#21 nsp=1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=493: sxxxxx#21 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=493: sxxxxx#21 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=493: sxxxxx#21 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=493: sxxxxx#21 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=493: sxxxxx#21 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=494: oxxxxx#21 nsp=1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=494: oxxxxx#21 nsp=1 mass=400 + 2.433105012119288e+01, 0.000000000000000e+00, // itest=494: oxxxxx#21 nsp=1 mass=400 + 9.863939238321439e+00, -1.052153518754287e+01, // itest=494: oxxxxx#21 nsp=1 mass=400 + 1.216552506059644e+01, 0.000000000000000e+00, // itest=494: oxxxxx#21 nsp=1 mass=400 + 4.931969619160719e+00, -5.260767593771432e+00 } ); // itest=494: oxxxxx#21 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=495: oxxxxx#21 nsp=1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=495: oxxxxx#21 nsp=1 mass=-400 + 2.433105012119288e+01, 0.000000000000000e+00, // itest=495: oxxxxx#21 nsp=1 mass=-400 + 9.863939238321439e+00, -1.052153518754287e+01, // itest=495: oxxxxx#21 nsp=1 mass=-400 + -1.216552506059644e+01, -0.000000000000000e+00, // itest=495: oxxxxx#21 nsp=1 mass=-400 + -4.931969619160719e+00, 5.260767593771432e+00 } ); // itest=495: oxxxxx#21 nsp=1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=496: ixxxxx#22 nsp=1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=496: ixxxxx#22 nsp=1 mass=400 + 7.211102550927978e+00, 0.000000000000000e+00, // itest=496: ixxxxx#22 nsp=1 mass=400 + 8.320502943378436e+00, 8.875203139603666e+00, // itest=496: ixxxxx#22 nsp=1 mass=400 + 1.442220510185596e+01, 0.000000000000000e+00, // itest=496: ixxxxx#22 nsp=1 mass=400 + 1.664100588675688e+01, 1.775040627920733e+01 } ); // itest=496: ixxxxx#22 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=497: ixxxxx#22 nsp=1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=497: ixxxxx#22 nsp=1 mass=-400 + -7.211102550927978e+00, -0.000000000000000e+00, // itest=497: ixxxxx#22 nsp=1 mass=-400 + -8.320502943378436e+00, -8.875203139603666e+00, // itest=497: ixxxxx#22 nsp=1 mass=-400 + 1.442220510185596e+01, 0.000000000000000e+00, // itest=497: ixxxxx#22 nsp=1 mass=-400 + 1.664100588675688e+01, 1.775040627920733e+01 } ); // itest=497: ixxxxx#22 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=498: vxxxxx#22 nsp=1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=498: vxxxxx#22 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=498: vxxxxx#22 nsp=1 mass=400 + 2.321373168788980e-01, -5.158607041753289e-01, // itest=498: vxxxxx#22 nsp=1 mass=400 + 2.476131380041579e-01, 4.836194101643708e-01, // itest=498: vxxxxx#22 nsp=1 mass=400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=498: vxxxxx#22 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=499: vxxxxx#22 nsp=1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=499: vxxxxx#22 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=499: vxxxxx#22 nsp=1 mass=-400 + 2.321373168788980e-01, -5.158607041753289e-01, // itest=499: vxxxxx#22 nsp=1 mass=-400 + 2.476131380041579e-01, 4.836194101643708e-01, // itest=499: vxxxxx#22 nsp=1 mass=-400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=499: vxxxxx#22 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=500: sxxxxx#22 nsp=1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=500: sxxxxx#22 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=500: sxxxxx#22 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=500: sxxxxx#22 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=500: sxxxxx#22 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=500: sxxxxx#22 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=501: sxxxxx#22 nsp=1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=501: sxxxxx#22 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=501: sxxxxx#22 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=501: sxxxxx#22 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=501: sxxxxx#22 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=501: sxxxxx#22 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=502: oxxxxx#22 nsp=1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=502: oxxxxx#22 nsp=1 mass=400 + 1.442220510185596e+01, 0.000000000000000e+00, // itest=502: oxxxxx#22 nsp=1 mass=400 + 1.664100588675688e+01, -1.775040627920733e+01, // itest=502: oxxxxx#22 nsp=1 mass=400 + 7.211102550927978e+00, 0.000000000000000e+00, // itest=502: oxxxxx#22 nsp=1 mass=400 + 8.320502943378436e+00, -8.875203139603666e+00 } ); // itest=502: oxxxxx#22 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=503: oxxxxx#22 nsp=1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=503: oxxxxx#22 nsp=1 mass=-400 + 1.442220510185596e+01, 0.000000000000000e+00, // itest=503: oxxxxx#22 nsp=1 mass=-400 + 1.664100588675688e+01, -1.775040627920733e+01, // itest=503: oxxxxx#22 nsp=1 mass=-400 + -7.211102550927978e+00, -0.000000000000000e+00, // itest=503: oxxxxx#22 nsp=1 mass=-400 + -8.320502943378436e+00, 8.875203139603666e+00 } ); // itest=503: oxxxxx#22 nsp=1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=504: ixxxxx#23 nsp=1 mass=500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=504: ixxxxx#23 nsp=1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=504: ixxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=504: ixxxxx#23 nsp=1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=504: ixxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=504: ixxxxx#23 nsp=1 mass=500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=505: ixxxxx#23 nsp=1 mass=-500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=505: ixxxxx#23 nsp=1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=505: ixxxxx#23 nsp=1 mass=-500 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=505: ixxxxx#23 nsp=1 mass=-500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=505: ixxxxx#23 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=505: ixxxxx#23 nsp=1 mass=-500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=506: vxxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=506: vxxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=506: vxxxxx#23 nsp=1 mass=500 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=506: vxxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=506: vxxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=506: vxxxxx#23 nsp=1 mass=500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=507: vxxxxx#23 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=507: vxxxxx#23 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=507: vxxxxx#23 nsp=1 mass=-500 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=507: vxxxxx#23 nsp=1 mass=-500 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=507: vxxxxx#23 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=507: vxxxxx#23 nsp=1 mass=-500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=508: sxxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=508: sxxxxx#23 nsp=1 mass=500 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=508: sxxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=508: sxxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=508: sxxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=508: sxxxxx#23 nsp=1 mass=500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=509: sxxxxx#23 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=509: sxxxxx#23 nsp=1 mass=-500 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=509: sxxxxx#23 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=509: sxxxxx#23 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=509: sxxxxx#23 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=509: sxxxxx#23 nsp=1 mass=-500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=510: oxxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=510: oxxxxx#23 nsp=1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=510: oxxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=510: oxxxxx#23 nsp=1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=510: oxxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=510: oxxxxx#23 nsp=1 mass=500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=511: oxxxxx#23 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=511: oxxxxx#23 nsp=1 mass=-500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=511: oxxxxx#23 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=511: oxxxxx#23 nsp=1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=511: oxxxxx#23 nsp=1 mass=-500 + -0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=511: oxxxxx#23 nsp=1 mass=-500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=512: ixxxxx#24 nsp=1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=512: ixxxxx#24 nsp=1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=512: ixxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=512: ixxxxx#24 nsp=1 mass=400 + 2.828427124746190e+01, 0.000000000000000e+00, // itest=512: ixxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=512: ixxxxx#24 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=513: ixxxxx#24 nsp=1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=513: ixxxxx#24 nsp=1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=513: ixxxxx#24 nsp=1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=513: ixxxxx#24 nsp=1 mass=-400 + 2.828427124746190e+01, 0.000000000000000e+00, // itest=513: ixxxxx#24 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=513: ixxxxx#24 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=514: vxxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=514: vxxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=514: vxxxxx#24 nsp=1 mass=400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=514: vxxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=514: vxxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=514: vxxxxx#24 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=515: vxxxxx#24 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=515: vxxxxx#24 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=515: vxxxxx#24 nsp=1 mass=-400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=515: vxxxxx#24 nsp=1 mass=-400 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=515: vxxxxx#24 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=515: vxxxxx#24 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=516: sxxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=516: sxxxxx#24 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=516: sxxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=516: sxxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=516: sxxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=516: sxxxxx#24 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=517: sxxxxx#24 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=517: sxxxxx#24 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=517: sxxxxx#24 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=517: sxxxxx#24 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=517: sxxxxx#24 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=517: sxxxxx#24 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=518: oxxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=518: oxxxxx#24 nsp=1 mass=400 + 2.828427124746190e+01, 0.000000000000000e+00, // itest=518: oxxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=518: oxxxxx#24 nsp=1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=518: oxxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=518: oxxxxx#24 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=519: oxxxxx#24 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=519: oxxxxx#24 nsp=1 mass=-400 + 2.828427124746190e+01, 0.000000000000000e+00, // itest=519: oxxxxx#24 nsp=1 mass=-400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=519: oxxxxx#24 nsp=1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=519: oxxxxx#24 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=519: oxxxxx#24 nsp=1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=520: ixxxxx#25 nsp=1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=520: ixxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=520: ixxxxx#25 nsp=1 mass=400 + -1.414213562373095e+01, 0.000000000000000e+00, // itest=520: ixxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=520: ixxxxx#25 nsp=1 mass=400 + -2.828427124746190e+01, 0.000000000000000e+00 } ); // itest=520: ixxxxx#25 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=521: ixxxxx#25 nsp=1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=521: ixxxxx#25 nsp=1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=521: ixxxxx#25 nsp=1 mass=-400 + 1.414213562373095e+01, -0.000000000000000e+00, // itest=521: ixxxxx#25 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=521: ixxxxx#25 nsp=1 mass=-400 + -2.828427124746190e+01, 0.000000000000000e+00 } ); // itest=521: ixxxxx#25 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=522: vxxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=522: vxxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=522: vxxxxx#25 nsp=1 mass=400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=522: vxxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=522: vxxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=522: vxxxxx#25 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=523: vxxxxx#25 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=523: vxxxxx#25 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=523: vxxxxx#25 nsp=1 mass=-400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=523: vxxxxx#25 nsp=1 mass=-400 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=523: vxxxxx#25 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=523: vxxxxx#25 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=524: sxxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=524: sxxxxx#25 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=524: sxxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=524: sxxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=524: sxxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=524: sxxxxx#25 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=525: sxxxxx#25 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=525: sxxxxx#25 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=525: sxxxxx#25 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=525: sxxxxx#25 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=525: sxxxxx#25 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=525: sxxxxx#25 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=526: oxxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=526: oxxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=526: oxxxxx#25 nsp=1 mass=400 + -2.828427124746190e+01, 0.000000000000000e+00, // itest=526: oxxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=526: oxxxxx#25 nsp=1 mass=400 + -1.414213562373095e+01, 0.000000000000000e+00 } ); // itest=526: oxxxxx#25 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=527: oxxxxx#25 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=527: oxxxxx#25 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=527: oxxxxx#25 nsp=1 mass=-400 + -2.828427124746190e+01, 0.000000000000000e+00, // itest=527: oxxxxx#25 nsp=1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=527: oxxxxx#25 nsp=1 mass=-400 + 1.414213562373095e+01, -0.000000000000000e+00 } ); // itest=527: oxxxxx#25 nsp=1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=528: ixxxxx#26 nsp=1 mass=400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=528: ixxxxx#26 nsp=1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=528: ixxxxx#26 nsp=1 mass=400 + 5.999999999999999e+00, 7.999999999999999e+00, // itest=528: ixxxxx#26 nsp=1 mass=400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=528: ixxxxx#26 nsp=1 mass=400 + 1.200000000000000e+01, 1.600000000000000e+01 } ); // itest=528: ixxxxx#26 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=529: ixxxxx#26 nsp=1 mass=-400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=529: ixxxxx#26 nsp=1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00, // itest=529: ixxxxx#26 nsp=1 mass=-400 + -5.999999999999999e+00, -7.999999999999999e+00, // itest=529: ixxxxx#26 nsp=1 mass=-400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=529: ixxxxx#26 nsp=1 mass=-400 + 1.200000000000000e+01, 1.600000000000000e+01 } ); // itest=529: ixxxxx#26 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=530: vxxxxx#26 nsp=1 mass=400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=530: vxxxxx#26 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=530: vxxxxx#26 nsp=1 mass=400 + 0.000000000000000e+00, -5.656854249492381e-01, // itest=530: vxxxxx#26 nsp=1 mass=400 + 0.000000000000000e+00, 4.242640687119285e-01, // itest=530: vxxxxx#26 nsp=1 mass=400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=530: vxxxxx#26 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=531: vxxxxx#26 nsp=1 mass=-400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=531: vxxxxx#26 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=531: vxxxxx#26 nsp=1 mass=-400 + -0.000000000000000e+00, -5.656854249492381e-01, // itest=531: vxxxxx#26 nsp=1 mass=-400 + -0.000000000000000e+00, 4.242640687119285e-01, // itest=531: vxxxxx#26 nsp=1 mass=-400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=531: vxxxxx#26 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=532: sxxxxx#26 nsp=1 mass=400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=532: sxxxxx#26 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=532: sxxxxx#26 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=532: sxxxxx#26 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=532: sxxxxx#26 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=532: sxxxxx#26 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=533: sxxxxx#26 nsp=1 mass=-400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=533: sxxxxx#26 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=533: sxxxxx#26 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=533: sxxxxx#26 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=533: sxxxxx#26 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=533: sxxxxx#26 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=534: oxxxxx#26 nsp=1 mass=400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=534: oxxxxx#26 nsp=1 mass=400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=534: oxxxxx#26 nsp=1 mass=400 + 1.200000000000000e+01, -1.600000000000000e+01, // itest=534: oxxxxx#26 nsp=1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=534: oxxxxx#26 nsp=1 mass=400 + 5.999999999999999e+00, -7.999999999999999e+00 } ); // itest=534: oxxxxx#26 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=535: oxxxxx#26 nsp=1 mass=-400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=535: oxxxxx#26 nsp=1 mass=-400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=535: oxxxxx#26 nsp=1 mass=-400 + 1.200000000000000e+01, -1.600000000000000e+01, // itest=535: oxxxxx#26 nsp=1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00, // itest=535: oxxxxx#26 nsp=1 mass=-400 + -5.999999999999999e+00, 7.999999999999999e+00 } ); // itest=535: oxxxxx#26 nsp=1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=536: ixxxxx#27 nsp=1 mass=400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=536: ixxxxx#27 nsp=1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=536: ixxxxx#27 nsp=1 mass=400 + -7.999999999999999e+00, -5.999999999999999e+00, // itest=536: ixxxxx#27 nsp=1 mass=400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=536: ixxxxx#27 nsp=1 mass=400 + -1.600000000000000e+01, -1.200000000000000e+01 } ); // itest=536: ixxxxx#27 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=537: ixxxxx#27 nsp=1 mass=-400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=537: ixxxxx#27 nsp=1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00, // itest=537: ixxxxx#27 nsp=1 mass=-400 + 7.999999999999999e+00, 5.999999999999999e+00, // itest=537: ixxxxx#27 nsp=1 mass=-400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=537: ixxxxx#27 nsp=1 mass=-400 + -1.600000000000000e+01, -1.200000000000000e+01 } ); // itest=537: ixxxxx#27 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=538: vxxxxx#27 nsp=1 mass=400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=538: vxxxxx#27 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=538: vxxxxx#27 nsp=1 mass=400 + 0.000000000000000e+00, 4.242640687119285e-01, // itest=538: vxxxxx#27 nsp=1 mass=400 + 0.000000000000000e+00, -5.656854249492381e-01, // itest=538: vxxxxx#27 nsp=1 mass=400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=538: vxxxxx#27 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=539: vxxxxx#27 nsp=1 mass=-400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=539: vxxxxx#27 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=539: vxxxxx#27 nsp=1 mass=-400 + 0.000000000000000e+00, 4.242640687119285e-01, // itest=539: vxxxxx#27 nsp=1 mass=-400 + 0.000000000000000e+00, -5.656854249492381e-01, // itest=539: vxxxxx#27 nsp=1 mass=-400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=539: vxxxxx#27 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=540: sxxxxx#27 nsp=1 mass=400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=540: sxxxxx#27 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=540: sxxxxx#27 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=540: sxxxxx#27 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=540: sxxxxx#27 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=540: sxxxxx#27 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=541: sxxxxx#27 nsp=1 mass=-400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=541: sxxxxx#27 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=541: sxxxxx#27 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=541: sxxxxx#27 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=541: sxxxxx#27 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=541: sxxxxx#27 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=542: oxxxxx#27 nsp=1 mass=400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=542: oxxxxx#27 nsp=1 mass=400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=542: oxxxxx#27 nsp=1 mass=400 + -1.600000000000000e+01, 1.200000000000000e+01, // itest=542: oxxxxx#27 nsp=1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=542: oxxxxx#27 nsp=1 mass=400 + -7.999999999999999e+00, 5.999999999999999e+00 } ); // itest=542: oxxxxx#27 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=543: oxxxxx#27 nsp=1 mass=-400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=543: oxxxxx#27 nsp=1 mass=-400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=543: oxxxxx#27 nsp=1 mass=-400 + -1.600000000000000e+01, 1.200000000000000e+01, // itest=543: oxxxxx#27 nsp=1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00, // itest=543: oxxxxx#27 nsp=1 mass=-400 + 7.999999999999999e+00, -5.999999999999999e+00 } ); // itest=543: oxxxxx#27 nsp=1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=544: ixxxxx#28 nsp=1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=544: ixxxxx#28 nsp=1 mass=400 + 1.216552506059644e+01, 0.000000000000000e+00, // itest=544: ixxxxx#28 nsp=1 mass=400 + 4.931969619160719e+00, 5.260767593771432e+00, // itest=544: ixxxxx#28 nsp=1 mass=400 + 2.433105012119288e+01, 0.000000000000000e+00, // itest=544: ixxxxx#28 nsp=1 mass=400 + 9.863939238321439e+00, 1.052153518754287e+01 } ); // itest=544: ixxxxx#28 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=545: ixxxxx#28 nsp=1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=545: ixxxxx#28 nsp=1 mass=-400 + -1.216552506059644e+01, -0.000000000000000e+00, // itest=545: ixxxxx#28 nsp=1 mass=-400 + -4.931969619160719e+00, -5.260767593771432e+00, // itest=545: ixxxxx#28 nsp=1 mass=-400 + 2.433105012119288e+01, 0.000000000000000e+00, // itest=545: ixxxxx#28 nsp=1 mass=-400 + 9.863939238321439e+00, 1.052153518754287e+01 } ); // itest=545: ixxxxx#28 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=546: vxxxxx#28 nsp=1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=546: vxxxxx#28 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=546: vxxxxx#28 nsp=1 mass=400 + -2.321373168788980e-01, -5.158607041753289e-01, // itest=546: vxxxxx#28 nsp=1 mass=400 + -2.476131380041579e-01, 4.836194101643708e-01, // itest=546: vxxxxx#28 nsp=1 mass=400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=546: vxxxxx#28 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=547: vxxxxx#28 nsp=1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=547: vxxxxx#28 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=547: vxxxxx#28 nsp=1 mass=-400 + -2.321373168788980e-01, -5.158607041753289e-01, // itest=547: vxxxxx#28 nsp=1 mass=-400 + -2.476131380041579e-01, 4.836194101643708e-01, // itest=547: vxxxxx#28 nsp=1 mass=-400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=547: vxxxxx#28 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=548: sxxxxx#28 nsp=1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=548: sxxxxx#28 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=548: sxxxxx#28 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=548: sxxxxx#28 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=548: sxxxxx#28 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=548: sxxxxx#28 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=549: sxxxxx#28 nsp=1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=549: sxxxxx#28 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=549: sxxxxx#28 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=549: sxxxxx#28 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=549: sxxxxx#28 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=549: sxxxxx#28 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=550: oxxxxx#28 nsp=1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=550: oxxxxx#28 nsp=1 mass=400 + 2.433105012119288e+01, 0.000000000000000e+00, // itest=550: oxxxxx#28 nsp=1 mass=400 + 9.863939238321439e+00, -1.052153518754287e+01, // itest=550: oxxxxx#28 nsp=1 mass=400 + 1.216552506059644e+01, 0.000000000000000e+00, // itest=550: oxxxxx#28 nsp=1 mass=400 + 4.931969619160719e+00, -5.260767593771432e+00 } ); // itest=550: oxxxxx#28 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=551: oxxxxx#28 nsp=1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=551: oxxxxx#28 nsp=1 mass=-400 + 2.433105012119288e+01, 0.000000000000000e+00, // itest=551: oxxxxx#28 nsp=1 mass=-400 + 9.863939238321439e+00, -1.052153518754287e+01, // itest=551: oxxxxx#28 nsp=1 mass=-400 + -1.216552506059644e+01, -0.000000000000000e+00, // itest=551: oxxxxx#28 nsp=1 mass=-400 + -4.931969619160719e+00, 5.260767593771432e+00 } ); // itest=551: oxxxxx#28 nsp=1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=552: ixxxxx#29 nsp=1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=552: ixxxxx#29 nsp=1 mass=400 + 7.211102550927978e+00, 0.000000000000000e+00, // itest=552: ixxxxx#29 nsp=1 mass=400 + 8.320502943378436e+00, 8.875203139603666e+00, // itest=552: ixxxxx#29 nsp=1 mass=400 + 1.442220510185596e+01, 0.000000000000000e+00, // itest=552: ixxxxx#29 nsp=1 mass=400 + 1.664100588675688e+01, 1.775040627920733e+01 } ); // itest=552: ixxxxx#29 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=553: ixxxxx#29 nsp=1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=553: ixxxxx#29 nsp=1 mass=-400 + -7.211102550927978e+00, -0.000000000000000e+00, // itest=553: ixxxxx#29 nsp=1 mass=-400 + -8.320502943378436e+00, -8.875203139603666e+00, // itest=553: ixxxxx#29 nsp=1 mass=-400 + 1.442220510185596e+01, 0.000000000000000e+00, // itest=553: ixxxxx#29 nsp=1 mass=-400 + 1.664100588675688e+01, 1.775040627920733e+01 } ); // itest=553: ixxxxx#29 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=554: vxxxxx#29 nsp=1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=554: vxxxxx#29 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=554: vxxxxx#29 nsp=1 mass=400 + 2.321373168788980e-01, -5.158607041753289e-01, // itest=554: vxxxxx#29 nsp=1 mass=400 + 2.476131380041579e-01, 4.836194101643708e-01, // itest=554: vxxxxx#29 nsp=1 mass=400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=554: vxxxxx#29 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=555: vxxxxx#29 nsp=1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=555: vxxxxx#29 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=555: vxxxxx#29 nsp=1 mass=-400 + 2.321373168788980e-01, -5.158607041753289e-01, // itest=555: vxxxxx#29 nsp=1 mass=-400 + 2.476131380041579e-01, 4.836194101643708e-01, // itest=555: vxxxxx#29 nsp=1 mass=-400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=555: vxxxxx#29 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=556: sxxxxx#29 nsp=1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=556: sxxxxx#29 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=556: sxxxxx#29 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=556: sxxxxx#29 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=556: sxxxxx#29 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=556: sxxxxx#29 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=557: sxxxxx#29 nsp=1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=557: sxxxxx#29 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=557: sxxxxx#29 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=557: sxxxxx#29 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=557: sxxxxx#29 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=557: sxxxxx#29 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=558: oxxxxx#29 nsp=1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=558: oxxxxx#29 nsp=1 mass=400 + 1.442220510185596e+01, 0.000000000000000e+00, // itest=558: oxxxxx#29 nsp=1 mass=400 + 1.664100588675688e+01, -1.775040627920733e+01, // itest=558: oxxxxx#29 nsp=1 mass=400 + 7.211102550927978e+00, 0.000000000000000e+00, // itest=558: oxxxxx#29 nsp=1 mass=400 + 8.320502943378436e+00, -8.875203139603666e+00 } ); // itest=558: oxxxxx#29 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=559: oxxxxx#29 nsp=1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=559: oxxxxx#29 nsp=1 mass=-400 + 1.442220510185596e+01, 0.000000000000000e+00, // itest=559: oxxxxx#29 nsp=1 mass=-400 + 1.664100588675688e+01, -1.775040627920733e+01, // itest=559: oxxxxx#29 nsp=1 mass=-400 + -7.211102550927978e+00, -0.000000000000000e+00, // itest=559: oxxxxx#29 nsp=1 mass=-400 + -8.320502943378436e+00, 8.875203139603666e+00 } ); // itest=559: oxxxxx#29 nsp=1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=560: ixxxxx#30 nsp=1 mass=500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=560: ixxxxx#30 nsp=1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=560: ixxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=560: ixxxxx#30 nsp=1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=560: ixxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=560: ixxxxx#30 nsp=1 mass=500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=561: ixxxxx#30 nsp=1 mass=-500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=561: ixxxxx#30 nsp=1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=561: ixxxxx#30 nsp=1 mass=-500 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=561: ixxxxx#30 nsp=1 mass=-500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=561: ixxxxx#30 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=561: ixxxxx#30 nsp=1 mass=-500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=562: vxxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=562: vxxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=562: vxxxxx#30 nsp=1 mass=500 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=562: vxxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=562: vxxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=562: vxxxxx#30 nsp=1 mass=500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=563: vxxxxx#30 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=563: vxxxxx#30 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=563: vxxxxx#30 nsp=1 mass=-500 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=563: vxxxxx#30 nsp=1 mass=-500 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=563: vxxxxx#30 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=563: vxxxxx#30 nsp=1 mass=-500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=564: sxxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=564: sxxxxx#30 nsp=1 mass=500 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=564: sxxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=564: sxxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=564: sxxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=564: sxxxxx#30 nsp=1 mass=500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=565: sxxxxx#30 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=565: sxxxxx#30 nsp=1 mass=-500 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=565: sxxxxx#30 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=565: sxxxxx#30 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=565: sxxxxx#30 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=565: sxxxxx#30 nsp=1 mass=-500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=566: oxxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=566: oxxxxx#30 nsp=1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=566: oxxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=566: oxxxxx#30 nsp=1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=566: oxxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=566: oxxxxx#30 nsp=1 mass=500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=567: oxxxxx#30 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=567: oxxxxx#30 nsp=1 mass=-500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=567: oxxxxx#30 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=567: oxxxxx#30 nsp=1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=567: oxxxxx#30 nsp=1 mass=-500 + -0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=567: oxxxxx#30 nsp=1 mass=-500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=568: ixxxxx#31 nsp=1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=568: ixxxxx#31 nsp=1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=568: ixxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=568: ixxxxx#31 nsp=1 mass=400 + 2.828427124746190e+01, 0.000000000000000e+00, // itest=568: ixxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=568: ixxxxx#31 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=569: ixxxxx#31 nsp=1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=569: ixxxxx#31 nsp=1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=569: ixxxxx#31 nsp=1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=569: ixxxxx#31 nsp=1 mass=-400 + 2.828427124746190e+01, 0.000000000000000e+00, // itest=569: ixxxxx#31 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=569: ixxxxx#31 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=570: vxxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=570: vxxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=570: vxxxxx#31 nsp=1 mass=400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=570: vxxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=570: vxxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=570: vxxxxx#31 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=571: vxxxxx#31 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=571: vxxxxx#31 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=571: vxxxxx#31 nsp=1 mass=-400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=571: vxxxxx#31 nsp=1 mass=-400 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=571: vxxxxx#31 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=571: vxxxxx#31 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=572: sxxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=572: sxxxxx#31 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=572: sxxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=572: sxxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=572: sxxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=572: sxxxxx#31 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=573: sxxxxx#31 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=573: sxxxxx#31 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=573: sxxxxx#31 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=573: sxxxxx#31 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=573: sxxxxx#31 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=573: sxxxxx#31 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=574: oxxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=574: oxxxxx#31 nsp=1 mass=400 + 2.828427124746190e+01, 0.000000000000000e+00, // itest=574: oxxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=574: oxxxxx#31 nsp=1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=574: oxxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=574: oxxxxx#31 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=575: oxxxxx#31 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=575: oxxxxx#31 nsp=1 mass=-400 + 2.828427124746190e+01, 0.000000000000000e+00, // itest=575: oxxxxx#31 nsp=1 mass=-400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=575: oxxxxx#31 nsp=1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=575: oxxxxx#31 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=575: oxxxxx#31 nsp=1 mass=-400 diff --git a/epochX/cudacpp/gg_ttggg.mad/src/HelAmps_sm.h b/epochX/cudacpp/gg_ttggg.mad/src/HelAmps_sm.h index ee2fcbbde5..b68cdea0db 100644 --- a/epochX/cudacpp/gg_ttggg.mad/src/HelAmps_sm.h +++ b/epochX/cudacpp/gg_ttggg.mad/src/HelAmps_sm.h @@ -1,3 +1,4 @@ +// Copyright (C) 2010 The ALOHA Development team and Contributors. // Copyright (C) 2010 The MadGraph5_aMC@NLO development team and contributors. // Created by: J. Alwall (Sep 2010) for the MG5aMC backend. //========================================================================== @@ -21,6 +22,7 @@ #include "Parameters_sm.h" +#include //#include //#include //#include @@ -190,6 +192,9 @@ namespace mg5amcCpu const int ipar ) // input: particle# out of npar { mgDebug( 0, __FUNCTION__ ); + // NEW IMPLEMENTATION FIXING FLOATING POINT EXCEPTIONS IN SIMD CODE (#701) + // Variables xxxDENOM are a hack to avoid division-by-0 FPE while preserving speed (#701 and #727) + // Variables xxxDENOM are declared as 'volatile' to make sure they are not optimized away on clang! (#724) const fptype_sv& pvec0 = M_ACCESS::kernelAccessIp4IparConst( momenta, 0, ipar ); const fptype_sv& pvec1 = M_ACCESS::kernelAccessIp4IparConst( momenta, 1, ipar ); const fptype_sv& pvec2 = M_ACCESS::kernelAccessIp4IparConst( momenta, 2, ipar ); @@ -201,6 +206,11 @@ namespace mg5amcCpu if( fmass != 0. ) { const fptype_sv pp = fpmin( pvec0, fpsqrt( pvec1 * pvec1 + pvec2 * pvec2 + pvec3 * pvec3 ) ); + // In C++ ixxxxx, use a single ip/im numbering that is valid both for pp==0 and pp>0, which have two numbering schemes in Fortran ixxxxx: + // for pp==0, Fortran sqm(0:1) has indexes 0,1 as in C++; but for Fortran pp>0, omega(2) has indexes 1,2 and not 0,1 + // NB: this is only possible in ixxxx, but in oxxxxx two different numbering schemes must be used + const int ip = ( 1 + nh ) / 2; // NB: same as in Fortran pp==0, differs from Fortran pp>0, which is (3+nh)/2 because omega(2) has indexes 1,2 + const int im = ( 1 - nh ) / 2; // NB: same as in Fortran pp==0, differs from Fortran pp>0, which is (3-nh)/2 because omega(2) has indexes 1,2 #ifndef MGONGPU_CPPSIMD if( pp == 0. ) { @@ -208,8 +218,6 @@ namespace mg5amcCpu fptype sqm[2] = { fpsqrt( std::abs( fmass ) ), 0. }; // possibility of negative fermion masses //sqm[1] = ( fmass < 0. ? -abs( sqm[0] ) : abs( sqm[0] ) ); // AV: why abs here? sqm[1] = ( fmass < 0. ? -sqm[0] : sqm[0] ); // AV: removed an abs here - const int ip = ( 1 + nh ) / 2; // NB: Fortran sqm(0:1) also has indexes 0,1 as in C++ - const int im = ( 1 - nh ) / 2; // NB: Fortran sqm(0:1) also has indexes 0,1 as in C++ fi[2] = cxmake( ip * sqm[ip], 0 ); fi[3] = cxmake( im * nsf * sqm[ip], 0 ); fi[4] = cxmake( ip * nsf * sqm[im], 0 ); @@ -221,8 +229,6 @@ namespace mg5amcCpu fptype( 1 + nsf - ( 1 - nsf ) * nh ) * (fptype)0.5 }; fptype omega[2] = { fpsqrt( pvec0 + pp ), 0. }; omega[1] = fmass / omega[0]; - const int ip = ( 1 + nh ) / 2; // NB: Fortran is (3+nh)/2 because omega(2) has indexes 1,2 and not 0,1 - const int im = ( 1 - nh ) / 2; // NB: Fortran is (3-nh)/2 because omega(2) has indexes 1,2 and not 0,1 const fptype sfomega[2] = { sf[0] * omega[ip], sf[1] * omega[im] }; const fptype pp3 = fpmax( pp + pvec3, 0. ); const cxtype chi[2] = { cxmake( fpsqrt( pp3 * (fptype)0.5 / pp ), 0. ), @@ -233,8 +239,6 @@ namespace mg5amcCpu fi[5] = sfomega[1] * chi[ip]; } #else - const int ip = ( 1 + nh ) / 2; - const int im = ( 1 - nh ) / 2; // Branch A: pp == 0. // NB: Do not use "abs" for floats! It returns an integer with no build warning! Use std::abs! fptype sqm[2] = { fpsqrt( std::abs( fmass ) ), 0 }; // possibility of negative fermion masses (NB: SCALAR!) @@ -250,10 +254,12 @@ namespace mg5amcCpu omega[1] = fmass / omega[0]; const fptype_v sfomega[2] = { sf[0] * omega[ip], sf[1] * omega[im] }; const fptype_v pp3 = fpmax( pp + pvec3, 0 ); - const cxtype_v chi[2] = { cxmake( fpsqrt( pp3 * 0.5 / pp ), 0 ), + volatile fptype_v ppDENOM = fpternary( pp != 0, pp, 1. ); // hack: ppDENOM[ieppV]=1 if pp[ieppV]==0 + volatile fptype_v pp3DENOM = fpternary( pp3 != 0, pp3, 1. ); // hack: pp3DENOM[ieppV]=1 if pp3[ieppV]==0 + const cxtype_v chi[2] = { cxmake( fpsqrt( pp3 * 0.5 / ppDENOM ), 0 ), // hack: dummy[ieppV] is not used if pp[ieppV]==0 cxternary( ( pp3 == 0. ), cxmake( -nh, 0 ), - cxmake( (fptype)nh * pvec1, pvec2 ) / fpsqrt( 2. * pp * pp3 ) ) }; + cxmake( (fptype)nh * pvec1, pvec2 ) / fpsqrt( 2. * ppDENOM * pp3DENOM ) ) }; // hack: dummy[ieppV] is not used if pp[ieppV]==0 const cxtype_v fiB_2 = sfomega[0] * chi[im]; const cxtype_v fiB_3 = sfomega[0] * chi[ip]; const cxtype_v fiB_4 = sfomega[1] * chi[im]; @@ -271,7 +277,16 @@ namespace mg5amcCpu const fptype_sv sqp0p3 = fpternary( ( pvec1 == 0. and pvec2 == 0. and pvec3 < 0. ), fptype_sv{ 0 }, fpsqrt( fpmax( pvec0 + pvec3, 0. ) ) * (fptype)nsf ); - const cxtype_sv chi[2] = { cxmake( sqp0p3, 0. ), cxternary( ( sqp0p3 == 0. ), cxmake( -(fptype)nhel * fpsqrt( 2. * pvec0 ), 0. ), cxmake( (fptype)nh * pvec1, pvec2 ) / sqp0p3 ) }; +#ifdef MGONGPU_CPPSIMD + volatile fptype_v sqp0p3DENOM = fpternary( sqp0p3 != 0, sqp0p3, 1. ); // hack: dummy sqp0p3DENOM[ieppV]=1 if sqp0p3[ieppV]==0 + cxtype_sv chi[2] = { cxmake( sqp0p3, 0. ), + cxternary( sqp0p3 == 0, + cxmake( -(fptype)nhel * fpsqrt( 2. * pvec0 ), 0. ), + cxmake( (fptype)nh * pvec1, pvec2 ) / (const fptype_v)sqp0p3DENOM ) }; // hack: dummy[ieppV] is not used if sqp0p3[ieppV]==0 +#else + const cxtype_sv chi[2] = { cxmake( sqp0p3, 0. ), + ( sqp0p3 == 0. ? cxmake( -(fptype)nhel * fpsqrt( 2. * pvec0 ), 0. ) : cxmake( (fptype)nh * pvec1, pvec2 ) / sqp0p3 ) }; +#endif if( nh == 1 ) { fi[2] = cxzero_sv(); @@ -422,6 +437,9 @@ namespace mg5amcCpu const int ipar ) // input: particle# out of npar { mgDebug( 0, __FUNCTION__ ); + // NEW IMPLEMENTATION FIXING FLOATING POINT EXCEPTIONS IN SIMD CODE (#701) + // Variables xxxDENOM are a hack to avoid division-by-0 FPE while preserving speed (#701 and #727) + // Variables xxxDENOM are declared as 'volatile' to make sure they are not optimized away on clang! (#724) const fptype_sv& pvec0 = M_ACCESS::kernelAccessIp4IparConst( momenta, 0, ipar ); const fptype_sv& pvec1 = M_ACCESS::kernelAccessIp4IparConst( momenta, 1, ipar ); const fptype_sv& pvec2 = M_ACCESS::kernelAccessIp4IparConst( momenta, 2, ipar ); @@ -472,13 +490,15 @@ namespace mg5amcCpu const cxtype vcA_4 = cxmake( 0, nsvahl * sqh ); const cxtype vcA_5 = cxmake( hel0, 0 ); // Branch B: pp != 0. - const fptype_v emp = pvec0 / ( vmass * pp ); + volatile fptype_v ppDENOM = fpternary( pp != 0, pp, 1. ); // hack: ppDENOM[ieppV]=1 if pp[ieppV]==0 + const fptype_v emp = pvec0 / ( vmass * ppDENOM ); // hack: dummy[ieppV] is not used if pp[ieppV]==0 const cxtype_v vcB_2 = cxmake( hel0 * pp / vmass, 0 ); - const cxtype_v vcB_5 = cxmake( hel0 * pvec3 * emp + hel * pt / pp * sqh, 0 ); + const cxtype_v vcB_5 = cxmake( hel0 * pvec3 * emp + hel * pt / ppDENOM * sqh, 0 ); // hack: dummy[ieppV] is not used if pp[ieppV]==0 // Branch B1: pp != 0. and pt != 0. - const fptype_v pzpt = pvec3 / ( pp * pt ) * sqh * hel; - const cxtype_v vcB1_3 = cxmake( hel0 * pvec1 * emp - pvec1 * pzpt, -(fptype)nsvahl * pvec2 / pt * sqh ); - const cxtype_v vcB1_4 = cxmake( hel0 * pvec2 * emp - pvec2 * pzpt, (fptype)nsvahl * pvec1 / pt * sqh ); + volatile fptype_v ptDENOM = fpternary( pt != 0, pt, 1. ); // hack: ptDENOM[ieppV]=1 if pt[ieppV]==0 + const fptype_v pzpt = pvec3 / ( ppDENOM * ptDENOM ) * sqh * hel; // hack: dummy[ieppV] is not used if pp[ieppV]==0 + const cxtype_v vcB1_3 = cxmake( hel0 * pvec1 * emp - pvec1 * pzpt, -(fptype)nsvahl * pvec2 / ptDENOM * sqh ); // hack: dummy[ieppV] is not used if pt[ieppV]==0 + const cxtype_v vcB1_4 = cxmake( hel0 * pvec2 * emp - pvec2 * pzpt, (fptype)nsvahl * pvec1 / ptDENOM * sqh ); // hack: dummy[ieppV] is not used if pt[ieppV]==0 // Branch B2: pp != 0. and pt == 0. const cxtype vcB2_3 = cxmake( -hel * sqh, 0. ); const cxtype_v vcB2_4 = cxmake( 0., (fptype)nsvahl * fpternary( ( pvec3 < 0 ), -sqh, sqh ) ); // AV: removed an abs here @@ -513,9 +533,10 @@ namespace mg5amcCpu } #else // Branch A: pt != 0. - const fptype_v pzpt = pvec3 / ( pp * pt ) * sqh * hel; - const cxtype_v vcA_3 = cxmake( -pvec1 * pzpt, -(fptype)nsv * pvec2 / pt * sqh ); - const cxtype_v vcA_4 = cxmake( -pvec2 * pzpt, (fptype)nsv * pvec1 / pt * sqh ); + volatile fptype_v ptDENOM = fpternary( pt != 0, pt, 1. ); // hack: ptDENOM[ieppV]=1 if pt[ieppV]==0 + const fptype_v pzpt = pvec3 / ( pp * ptDENOM ) * sqh * hel; // hack: dummy[ieppV] is not used if pt[ieppV]==0 + const cxtype_v vcA_3 = cxmake( -pvec1 * pzpt, -(fptype)nsv * pvec2 / ptDENOM * sqh ); // hack: dummy[ieppV] is not used if pt[ieppV]==0 + const cxtype_v vcA_4 = cxmake( -pvec2 * pzpt, (fptype)nsv * pvec1 / ptDENOM * sqh ); // hack: dummy[ieppV] is not used if pt[ieppV]==0 // Branch B: pt == 0. const cxtype vcB_3 = cxmake( -(fptype)hel * sqh, 0 ); const cxtype_v vcB_4 = cxmake( 0, (fptype)nsv * fpternary( ( pvec3 < 0 ), -sqh, sqh ) ); // AV: removed an abs here @@ -567,6 +588,9 @@ namespace mg5amcCpu const int ipar ) // input: particle# out of npar { mgDebug( 0, __FUNCTION__ ); + // NEW IMPLEMENTATION FIXING FLOATING POINT EXCEPTIONS IN SIMD CODE (#701) + // Variables xxxDENOM are a hack to avoid division-by-0 FPE while preserving speed (#701 and #727) + // Variables xxxDENOM are declared as 'volatile' to make sure they are not optimized away on clang! (#724) const fptype_sv& pvec0 = M_ACCESS::kernelAccessIp4IparConst( momenta, 0, ipar ); const fptype_sv& pvec1 = M_ACCESS::kernelAccessIp4IparConst( momenta, 1, ipar ); const fptype_sv& pvec2 = M_ACCESS::kernelAccessIp4IparConst( momenta, 2, ipar ); @@ -630,10 +654,12 @@ namespace mg5amcCpu const int imB = ( 1 - nh ) / 2; const fptype_v sfomeg[2] = { sf[0] * omega[ipB], sf[1] * omega[imB] }; const fptype_v pp3 = fpmax( pp + pvec3, 0. ); - const cxtype_v chi[2] = { cxmake( fpsqrt( pp3 * 0.5 / pp ), 0. ), + volatile fptype_v ppDENOM = fpternary( pp != 0, pp, 1. ); // hack: ppDENOM[ieppV]=1 if pp[ieppV]==0 + volatile fptype_v pp3DENOM = fpternary( pp3 != 0, pp3, 1. ); // hack: pp3DENOM[ieppV]=1 if pp3[ieppV]==0 + const cxtype_v chi[2] = { cxmake( fpsqrt( pp3 * 0.5 / ppDENOM ), 0. ), // hack: dummy[ieppV] is not used if pp[ieppV]==0 ( cxternary( ( pp3 == 0. ), cxmake( -nh, 0. ), - cxmake( (fptype)nh * pvec1, -pvec2 ) / fpsqrt( 2. * pp * pp3 ) ) ) }; + cxmake( (fptype)nh * pvec1, -pvec2 ) / fpsqrt( 2. * ppDENOM * pp3DENOM ) ) ) }; // hack: dummy[ieppV] is not used if pp[ieppV]==0 const cxtype_v foB_2 = sfomeg[1] * chi[imB]; const cxtype_v foB_3 = sfomeg[1] * chi[ipB]; const cxtype_v foB_4 = sfomeg[0] * chi[imB]; @@ -651,10 +677,16 @@ namespace mg5amcCpu const fptype_sv sqp0p3 = fpternary( ( pvec1 == 0. ) and ( pvec2 == 0. ) and ( pvec3 < 0. ), 0, fpsqrt( fpmax( pvec0 + pvec3, 0. ) ) * (fptype)nsf ); +#ifdef MGONGPU_CPPSIMD + volatile fptype_v sqp0p3DENOM = fpternary( sqp0p3 != 0, sqp0p3, 1. ); // hack: sqp0p3DENOM[ieppV]=1 if sqp0p3[ieppV]==0 + const cxtype_v chi[2] = { cxmake( sqp0p3, 0. ), + cxternary( ( sqp0p3 == 0. ), + cxmake( -nhel, 0. ) * fpsqrt( 2. * pvec0 ), + cxmake( (fptype)nh * pvec1, -pvec2 ) / (const fptype_sv)sqp0p3DENOM ) }; // hack: dummy[ieppV] is not used if sqp0p3[ieppV]==0 +#else const cxtype_sv chi[2] = { cxmake( sqp0p3, 0. ), - cxternary( ( sqp0p3 == 0. ), - cxmake( -nhel, 0. ) * fpsqrt( 2. * pvec0 ), - cxmake( (fptype)nh * pvec1, -pvec2 ) / sqp0p3 ) }; + ( sqp0p3 == 0. ? cxmake( -nhel, 0. ) * fpsqrt( 2. * pvec0 ) : cxmake( (fptype)nh * pvec1, -pvec2 ) / sqp0p3 ) }; +#endif if( nh == 1 ) { fo[2] = chi[0]; diff --git a/epochX/cudacpp/gg_ttggg.mad/src/Parameters_sm.cc b/epochX/cudacpp/gg_ttggg.mad/src/Parameters_sm.cc index d3d01102fd..22fdd96a68 100644 --- a/epochX/cudacpp/gg_ttggg.mad/src/Parameters_sm.cc +++ b/epochX/cudacpp/gg_ttggg.mad/src/Parameters_sm.cc @@ -17,6 +17,12 @@ #include #include +#ifdef __CUDACC__ +using namespace mg5amcGpu; +#else +using namespace mg5amcCpu; +#endif + #ifndef MGONGPU_HARDCODE_PARAM // Initialize static instance diff --git a/epochX/cudacpp/gg_ttggg.mad/src/Parameters_sm.h b/epochX/cudacpp/gg_ttggg.mad/src/Parameters_sm.h index 6551d8da81..11fd9e3c74 100644 --- a/epochX/cudacpp/gg_ttggg.mad/src/Parameters_sm.h +++ b/epochX/cudacpp/gg_ttggg.mad/src/Parameters_sm.h @@ -26,191 +26,216 @@ #include "read_slha.h" -class Parameters_sm +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { -public: + class Parameters_sm + { + public: - static Parameters_sm* getInstance(); + static Parameters_sm* getInstance(); - // Define "zero" - double zero, ZERO; + // Define "zero" + double zero, ZERO; - // Model parameters independent of aS - //double aS; // now retrieved event-by-event (as G) from Fortran (running alphas #373) - double mdl_WH, mdl_WW, mdl_WZ, mdl_WT, mdl_ymtau, mdl_ymt, mdl_ymb, mdl_Gf, aEWM1, mdl_MH, mdl_MZ, mdl_MTA, mdl_MT, mdl_MB, mdl_conjg__CKM3x3, mdl_conjg__CKM1x1, mdl_CKM3x3, mdl_MZ__exp__2, mdl_MZ__exp__4, mdl_sqrt__2, mdl_MH__exp__2, mdl_aEW, mdl_MW, mdl_sqrt__aEW, mdl_ee, mdl_MW__exp__2, mdl_sw2, mdl_cw, mdl_sqrt__sw2, mdl_sw, mdl_g1, mdl_gw, mdl_vev, mdl_vev__exp__2, mdl_lam, mdl_yb, mdl_yt, mdl_ytau, mdl_muH, mdl_ee__exp__2, mdl_sw__exp__2, mdl_cw__exp__2; - cxsmpl mdl_complexi, mdl_I1x33, mdl_I2x33, mdl_I3x33, mdl_I4x33; + // Model parameters independent of aS + //double aS; // now retrieved event-by-event (as G) from Fortran (running alphas #373) + double mdl_WH, mdl_WW, mdl_WZ, mdl_WT, mdl_ymtau, mdl_ymt, mdl_ymb, mdl_Gf, aEWM1, mdl_MH, mdl_MZ, mdl_MTA, mdl_MT, mdl_MB, mdl_conjg__CKM3x3, mdl_conjg__CKM1x1, mdl_CKM3x3, mdl_MZ__exp__2, mdl_MZ__exp__4, mdl_sqrt__2, mdl_MH__exp__2, mdl_aEW, mdl_MW, mdl_sqrt__aEW, mdl_ee, mdl_MW__exp__2, mdl_sw2, mdl_cw, mdl_sqrt__sw2, mdl_sw, mdl_g1, mdl_gw, mdl_vev, mdl_vev__exp__2, mdl_lam, mdl_yb, mdl_yt, mdl_ytau, mdl_muH, mdl_ee__exp__2, mdl_sw__exp__2, mdl_cw__exp__2; + cxsmpl mdl_complexi, mdl_I1x33, mdl_I2x33, mdl_I3x33, mdl_I4x33; - // Model couplings independent of aS - // (none) + // Model couplings independent of aS + // (none) - // Model parameters dependent on aS - //double mdl_sqrt__aS, G, mdl_G__exp__2; // now computed event-by-event (running alphas #373) + // Model parameters dependent on aS + //double mdl_sqrt__aS, G, mdl_G__exp__2; // now computed event-by-event (running alphas #373) - // Model couplings dependent on aS - //cxsmpl GC_10, GC_11, GC_12; // now computed event-by-event (running alphas #373) + // Model couplings dependent on aS + //cxsmpl GC_10, GC_11, GC_12; // now computed event-by-event (running alphas #373) - // Set parameters that are unchanged during the run - void setIndependentParameters( SLHAReader& slha ); + // Set parameters that are unchanged during the run + void setIndependentParameters( SLHAReader& slha ); - // Set couplings that are unchanged during the run - void setIndependentCouplings(); + // Set couplings that are unchanged during the run + void setIndependentCouplings(); - // Set parameters that are changed event by event - //void setDependentParameters(); // now computed event-by-event (running alphas #373) + // Set parameters that are changed event by event + //void setDependentParameters(); // now computed event-by-event (running alphas #373) - // Set couplings that are changed event by event - //void setDependentCouplings(); // now computed event-by-event (running alphas #373) + // Set couplings that are changed event by event + //void setDependentCouplings(); // now computed event-by-event (running alphas #373) - // Print parameters that are unchanged during the run - void printIndependentParameters(); + // Print parameters that are unchanged during the run + void printIndependentParameters(); - // Print couplings that are unchanged during the run - void printIndependentCouplings(); + // Print couplings that are unchanged during the run + void printIndependentCouplings(); - // Print parameters that are changed event by event - //void printDependentParameters(); // now computed event-by-event (running alphas #373) + // Print parameters that are changed event by event + //void printDependentParameters(); // now computed event-by-event (running alphas #373) - // Print couplings that are changed event by event - //void printDependentCouplings(); // now computed event-by-event (running alphas #373) + // Print couplings that are changed event by event + //void printDependentCouplings(); // now computed event-by-event (running alphas #373) -private: + private: - static Parameters_sm* instance; -}; + static Parameters_sm* instance; + }; + +} // end namespace mg5amcGpu/mg5amcCpu #else #include #include -// Hardcoded constexpr physics parameters -namespace Parameters_sm // keep the same name rather than HardcodedParameters_sm for simplicity +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { - // Constexpr implementation of sqrt (see https://stackoverflow.com/a/34134071) - double constexpr sqrtNewtonRaphson( double x, double curr, double prev ) + // Hardcoded constexpr physics parameters + namespace Parameters_sm // keep the same name rather than HardcodedParameters_sm for simplicity { - return curr == prev ? curr : sqrtNewtonRaphson( x, 0.5 * ( curr + x / curr ), curr ); - } - double constexpr constexpr_sqrt( double x ) - { - return x >= 0 // && x < std::numeric_limits::infinity() // avoid -Wtautological-constant-compare warning in fast math - ? sqrtNewtonRaphson( x, x, 0 ) - : std::numeric_limits::quiet_NaN(); - } + // Constexpr implementation of sqrt (see https://stackoverflow.com/a/34134071) + double constexpr sqrtNewtonRaphson( double x, double curr, double prev ) + { + return curr == prev ? curr : sqrtNewtonRaphson( x, 0.5 * ( curr + x / curr ), curr ); + } + double constexpr constexpr_sqrt( double x ) + { + return x >= 0 // && x < std::numeric_limits::infinity() // avoid -Wtautological-constant-compare warning in fast math + ? sqrtNewtonRaphson( x, x, 0 ) + : std::numeric_limits::quiet_NaN(); + } - // Constexpr implementation of floor (see https://stackoverflow.com/a/66146159) - constexpr int constexpr_floor( double d ) - { - const int i = static_cast( d ); - return d < i ? i - 1 : i; - } + // Constexpr implementation of floor (see https://stackoverflow.com/a/66146159) + constexpr int constexpr_floor( double d ) + { + const int i = static_cast( d ); + return d < i ? i - 1 : i; + } - // Constexpr implementation of pow - constexpr double constexpr_pow( double base, double exp ) - { - // NB(1): this implementation of constexpr_pow requires exponent >= 0 - assert( exp >= 0 ); // NB would fail at compile time with "error: call to non-‘constexpr’ function ‘void __assert_fail'" - // NB(2): this implementation of constexpr_pow requires an integer exponent - const int iexp = constexpr_floor( exp ); - assert( static_cast( iexp ) == exp ); // NB would fail at compile time with "error: call to non-‘constexpr’ function ‘void __assert_fail'" - // Iterative implementation of pow if exp is a non negative integer - return iexp == 0 ? 1 : base * constexpr_pow( base, iexp - 1 ); + // Constexpr implementation of pow + constexpr double constexpr_pow( double base, double exp ) + { + // NB(1): this implementation of constexpr_pow requires exponent >= 0 + assert( exp >= 0 ); // NB would fail at compile time with "error: call to non-‘constexpr’ function ‘void __assert_fail'" + // NB(2): this implementation of constexpr_pow requires an integer exponent + const int iexp = constexpr_floor( exp ); + assert( static_cast( iexp ) == exp ); // NB would fail at compile time with "error: call to non-‘constexpr’ function ‘void __assert_fail'" + // Iterative implementation of pow if exp is a non negative integer + return iexp == 0 ? 1 : base * constexpr_pow( base, iexp - 1 ); + } + + // Model parameters independent of aS + constexpr double zero = 0; + constexpr double ZERO = 0; + constexpr double mdl_WH = 6.382339e-03; + constexpr double mdl_WW = 2.047600e+00; + constexpr double mdl_WZ = 2.441404e+00; + constexpr double mdl_WT = 1.491500e+00; + constexpr double mdl_ymtau = 1.777000e+00; + constexpr double mdl_ymt = 1.730000e+02; + constexpr double mdl_ymb = 4.700000e+00; + //constexpr double aS = 1.180000e-01; // now retrieved event-by-event (as G) from Fortran (running alphas #373) + constexpr double mdl_Gf = 1.166390e-05; + constexpr double aEWM1 = 1.325070e+02; + constexpr double mdl_MH = 1.250000e+02; + constexpr double mdl_MZ = 9.118800e+01; + constexpr double mdl_MTA = 1.777000e+00; + constexpr double mdl_MT = 1.730000e+02; + constexpr double mdl_MB = 4.700000e+00; + constexpr double mdl_conjg__CKM3x3 = 1.; + constexpr double mdl_conjg__CKM1x1 = 1.; + constexpr double mdl_CKM3x3 = 1.; + constexpr cxsmpl mdl_complexi = cxsmpl( 0., 1. ); + constexpr double mdl_MZ__exp__2 = ( ( mdl_MZ ) * ( mdl_MZ ) ); + constexpr double mdl_MZ__exp__4 = ( ( mdl_MZ ) * ( mdl_MZ ) * ( mdl_MZ ) * ( mdl_MZ ) ); + constexpr double mdl_sqrt__2 = constexpr_sqrt( 2. ); + constexpr double mdl_MH__exp__2 = ( ( mdl_MH ) * ( mdl_MH ) ); + constexpr double mdl_aEW = 1. / aEWM1; + constexpr double mdl_MW = constexpr_sqrt( mdl_MZ__exp__2 / 2. + constexpr_sqrt( mdl_MZ__exp__4 / 4. - ( mdl_aEW * M_PI * mdl_MZ__exp__2 ) / ( mdl_Gf * mdl_sqrt__2 ) ) ); + constexpr double mdl_sqrt__aEW = constexpr_sqrt( mdl_aEW ); + constexpr double mdl_ee = 2. * mdl_sqrt__aEW * constexpr_sqrt( M_PI ); + constexpr double mdl_MW__exp__2 = ( ( mdl_MW ) * ( mdl_MW ) ); + constexpr double mdl_sw2 = 1. - mdl_MW__exp__2 / mdl_MZ__exp__2; + constexpr double mdl_cw = constexpr_sqrt( 1. - mdl_sw2 ); + constexpr double mdl_sqrt__sw2 = constexpr_sqrt( mdl_sw2 ); + constexpr double mdl_sw = mdl_sqrt__sw2; + constexpr double mdl_g1 = mdl_ee / mdl_cw; + constexpr double mdl_gw = mdl_ee / mdl_sw; + constexpr double mdl_vev = ( 2. * mdl_MW * mdl_sw ) / mdl_ee; + constexpr double mdl_vev__exp__2 = ( ( mdl_vev ) * ( mdl_vev ) ); + constexpr double mdl_lam = mdl_MH__exp__2 / ( 2. * mdl_vev__exp__2 ); + constexpr double mdl_yb = ( mdl_ymb * mdl_sqrt__2 ) / mdl_vev; + constexpr double mdl_yt = ( mdl_ymt * mdl_sqrt__2 ) / mdl_vev; + constexpr double mdl_ytau = ( mdl_ymtau * mdl_sqrt__2 ) / mdl_vev; + constexpr double mdl_muH = constexpr_sqrt( mdl_lam * mdl_vev__exp__2 ); + constexpr cxsmpl mdl_I1x33 = mdl_yb * mdl_conjg__CKM3x3; + constexpr cxsmpl mdl_I2x33 = mdl_yt * mdl_conjg__CKM3x3; + constexpr cxsmpl mdl_I3x33 = mdl_CKM3x3 * mdl_yt; + constexpr cxsmpl mdl_I4x33 = mdl_CKM3x3 * mdl_yb; + constexpr double mdl_ee__exp__2 = ( ( mdl_ee ) * ( mdl_ee ) ); + constexpr double mdl_sw__exp__2 = ( ( mdl_sw ) * ( mdl_sw ) ); + constexpr double mdl_cw__exp__2 = ( ( mdl_cw ) * ( mdl_cw ) ); + + // Model couplings independent of aS + // (none) + + // Model parameters dependent on aS + //constexpr double mdl_sqrt__aS = //constexpr_sqrt( aS ); // now computed event-by-event (running alphas #373) + //constexpr double G = 2. * mdl_sqrt__aS * //constexpr_sqrt( M_PI ); // now computed event-by-event (running alphas #373) + //constexpr double mdl_G__exp__2 = ( ( G ) * ( G ) ); // now computed event-by-event (running alphas #373) + + // Model couplings dependent on aS + //constexpr cxsmpl GC_10 = -G; // now computed event-by-event (running alphas #373) + //constexpr cxsmpl GC_11 = mdl_complexi * G; // now computed event-by-event (running alphas #373) + //constexpr cxsmpl GC_12 = mdl_complexi * mdl_G__exp__2; // now computed event-by-event (running alphas #373) + + // Print parameters that are unchanged during the run + void printIndependentParameters(); + + // Print couplings that are unchanged during the run + void printIndependentCouplings(); + + // Print parameters that are changed event by event + //void printDependentParameters(); // now computed event-by-event (running alphas #373) + + // Print couplings that are changed event by event + //void printDependentCouplings(); // now computed event-by-event (running alphas #373) } - // Model parameters independent of aS - constexpr double zero = 0; - constexpr double ZERO = 0; - constexpr double mdl_WH = 6.382339e-03; - constexpr double mdl_WW = 2.047600e+00; - constexpr double mdl_WZ = 2.441404e+00; - constexpr double mdl_WT = 1.491500e+00; - constexpr double mdl_ymtau = 1.777000e+00; - constexpr double mdl_ymt = 1.730000e+02; - constexpr double mdl_ymb = 4.700000e+00; - //constexpr double aS = 1.180000e-01; // now retrieved event-by-event (as G) from Fortran (running alphas #373) - constexpr double mdl_Gf = 1.166390e-05; - constexpr double aEWM1 = 1.325070e+02; - constexpr double mdl_MH = 1.250000e+02; - constexpr double mdl_MZ = 9.118800e+01; - constexpr double mdl_MTA = 1.777000e+00; - constexpr double mdl_MT = 1.730000e+02; - constexpr double mdl_MB = 4.700000e+00; - constexpr double mdl_conjg__CKM3x3 = 1.; - constexpr double mdl_conjg__CKM1x1 = 1.; - constexpr double mdl_CKM3x3 = 1.; - constexpr cxsmpl mdl_complexi = cxsmpl( 0., 1. ); - constexpr double mdl_MZ__exp__2 = ( ( mdl_MZ ) * ( mdl_MZ ) ); - constexpr double mdl_MZ__exp__4 = ( ( mdl_MZ ) * ( mdl_MZ ) * ( mdl_MZ ) * ( mdl_MZ ) ); - constexpr double mdl_sqrt__2 = constexpr_sqrt( 2. ); - constexpr double mdl_MH__exp__2 = ( ( mdl_MH ) * ( mdl_MH ) ); - constexpr double mdl_aEW = 1. / aEWM1; - constexpr double mdl_MW = constexpr_sqrt( mdl_MZ__exp__2 / 2. + constexpr_sqrt( mdl_MZ__exp__4 / 4. - ( mdl_aEW * M_PI * mdl_MZ__exp__2 ) / ( mdl_Gf * mdl_sqrt__2 ) ) ); - constexpr double mdl_sqrt__aEW = constexpr_sqrt( mdl_aEW ); - constexpr double mdl_ee = 2. * mdl_sqrt__aEW * constexpr_sqrt( M_PI ); - constexpr double mdl_MW__exp__2 = ( ( mdl_MW ) * ( mdl_MW ) ); - constexpr double mdl_sw2 = 1. - mdl_MW__exp__2 / mdl_MZ__exp__2; - constexpr double mdl_cw = constexpr_sqrt( 1. - mdl_sw2 ); - constexpr double mdl_sqrt__sw2 = constexpr_sqrt( mdl_sw2 ); - constexpr double mdl_sw = mdl_sqrt__sw2; - constexpr double mdl_g1 = mdl_ee / mdl_cw; - constexpr double mdl_gw = mdl_ee / mdl_sw; - constexpr double mdl_vev = ( 2. * mdl_MW * mdl_sw ) / mdl_ee; - constexpr double mdl_vev__exp__2 = ( ( mdl_vev ) * ( mdl_vev ) ); - constexpr double mdl_lam = mdl_MH__exp__2 / ( 2. * mdl_vev__exp__2 ); - constexpr double mdl_yb = ( mdl_ymb * mdl_sqrt__2 ) / mdl_vev; - constexpr double mdl_yt = ( mdl_ymt * mdl_sqrt__2 ) / mdl_vev; - constexpr double mdl_ytau = ( mdl_ymtau * mdl_sqrt__2 ) / mdl_vev; - constexpr double mdl_muH = constexpr_sqrt( mdl_lam * mdl_vev__exp__2 ); - constexpr cxsmpl mdl_I1x33 = mdl_yb * mdl_conjg__CKM3x3; - constexpr cxsmpl mdl_I2x33 = mdl_yt * mdl_conjg__CKM3x3; - constexpr cxsmpl mdl_I3x33 = mdl_CKM3x3 * mdl_yt; - constexpr cxsmpl mdl_I4x33 = mdl_CKM3x3 * mdl_yb; - constexpr double mdl_ee__exp__2 = ( ( mdl_ee ) * ( mdl_ee ) ); - constexpr double mdl_sw__exp__2 = ( ( mdl_sw ) * ( mdl_sw ) ); - constexpr double mdl_cw__exp__2 = ( ( mdl_cw ) * ( mdl_cw ) ); - - // Model couplings independent of aS - // (none) - - // Model parameters dependent on aS - //constexpr double mdl_sqrt__aS = //constexpr_sqrt( aS ); // now computed event-by-event (running alphas #373) - //constexpr double G = 2. * mdl_sqrt__aS * //constexpr_sqrt( M_PI ); // now computed event-by-event (running alphas #373) - //constexpr double mdl_G__exp__2 = ( ( G ) * ( G ) ); // now computed event-by-event (running alphas #373) - - // Model couplings dependent on aS - //constexpr cxsmpl GC_10 = -G; // now computed event-by-event (running alphas #373) - //constexpr cxsmpl GC_11 = mdl_complexi * G; // now computed event-by-event (running alphas #373) - //constexpr cxsmpl GC_12 = mdl_complexi * mdl_G__exp__2; // now computed event-by-event (running alphas #373) - - // Print parameters that are unchanged during the run - void printIndependentParameters(); - - // Print couplings that are unchanged during the run - void printIndependentCouplings(); - - // Print parameters that are changed event by event - //void printDependentParameters(); // now computed event-by-event (running alphas #373) - - // Print couplings that are changed event by event - //void printDependentCouplings(); // now computed event-by-event (running alphas #373) -} +} // end namespace mg5amcGpu/mg5amcCpu #endif //========================================================================== -namespace Parameters_sm_dependentCouplings +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { - constexpr size_t ndcoup = 3; // #couplings that vary event by event because they depend on the running alphas QCD - constexpr size_t idcoup_GC_10 = 0; - constexpr size_t idcoup_GC_11 = 1; - constexpr size_t idcoup_GC_12 = 2; - struct DependentCouplings_sv + namespace Parameters_sm_dependentCouplings { - cxtype_sv GC_10; - cxtype_sv GC_11; - cxtype_sv GC_12; - }; + constexpr size_t ndcoup = 3; // #couplings that vary event by event because they depend on the running alphas QCD + constexpr size_t idcoup_GC_10 = 0; + constexpr size_t idcoup_GC_11 = 1; + constexpr size_t idcoup_GC_12 = 2; + struct DependentCouplings_sv + { + cxtype_sv GC_10; + cxtype_sv GC_11; + cxtype_sv GC_12; + }; #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wunused-variable" // e.g. <> #pragma GCC diagnostic ignored "-Wunused-parameter" // e.g. <> @@ -218,52 +243,46 @@ namespace Parameters_sm_dependentCouplings #pragma nv_diagnostic push #pragma nv_diag_suppress 177 // e.g. <> #endif - __host__ __device__ inline const DependentCouplings_sv computeDependentCouplings_fromG( const fptype_sv& G_sv ) - { + __host__ __device__ inline const DependentCouplings_sv computeDependentCouplings_fromG( const fptype_sv& G_sv ) + { #ifdef MGONGPU_HARDCODE_PARAM - using namespace Parameters_sm; + using namespace Parameters_sm; #endif - // NB: hardcode cxtype cI(0,1) instead of cxtype (or hardcoded cxsmpl) mdl_complexi (which exists in Parameters_sm) because: - // (1) mdl_complexi is always (0,1); (2) mdl_complexi is undefined in device code; (3) need cxsmpl conversion to cxtype in code below - const cxtype cI( 0., 1. ); - DependentCouplings_sv out; - // Begin SM implementation - no special handling of vectors of floats as in EFT (#439) - { - const fptype_sv& G = G_sv; - // Model parameters dependent on aS - //const fptype_sv mdl_sqrt__aS = constexpr_sqrt( aS ); - //const fptype_sv G = 2. * mdl_sqrt__aS * constexpr_sqrt( M_PI ); - const fptype_sv mdl_G__exp__2 = ( ( G ) * ( G ) ); - // Model couplings dependent on aS - out.GC_10 = -G; - out.GC_11 = cI * G; - out.GC_12 = cI * mdl_G__exp__2; + // NB: hardcode cxtype cI(0,1) instead of cxtype (or hardcoded cxsmpl) mdl_complexi (which exists in Parameters_sm) because: + // (1) mdl_complexi is always (0,1); (2) mdl_complexi is undefined in device code; (3) need cxsmpl conversion to cxtype in code below + const cxtype cI( 0., 1. ); + DependentCouplings_sv out; + // Begin SM implementation - no special handling of vectors of floats as in EFT (#439) + { + const fptype_sv& G = G_sv; + // Model parameters dependent on aS + //const fptype_sv mdl_sqrt__aS = constexpr_sqrt( aS ); + //const fptype_sv G = 2. * mdl_sqrt__aS * constexpr_sqrt( M_PI ); + const fptype_sv mdl_G__exp__2 = ( ( G ) * ( G ) ); + // Model couplings dependent on aS + out.GC_10 = -G; + out.GC_11 = cI * G; + out.GC_12 = cI * mdl_G__exp__2; + } + // End SM implementation - no special handling of vectors of floats as in EFT (#439) + return out; } - // End SM implementation - no special handling of vectors of floats as in EFT (#439) - return out; - } #ifdef __CUDACC__ #pragma GCC diagnostic pop #pragma nv_diagnostic pop #endif -} + } -//========================================================================== + //========================================================================== -namespace Parameters_sm_independentCouplings -{ - constexpr size_t nicoup = 0; // #couplings that are fixed for all events because they do not depend on the running alphas QCD - // NB: there are no aS-independent couplings in this physics process -} + namespace Parameters_sm_independentCouplings + { + constexpr size_t nicoup = 0; // #couplings that are fixed for all events because they do not depend on the running alphas QCD + // NB: there are no aS-independent couplings in this physics process + } -//========================================================================== + //========================================================================== -#ifdef __CUDACC__ -namespace mg5amcGpu -#else -namespace mg5amcCpu -#endif -{ #pragma GCC diagnostic push #ifndef __clang__ #pragma GCC diagnostic ignored "-Wunused-but-set-variable" // e.g. <> @@ -291,7 +310,8 @@ namespace mg5amcCpu return; } #pragma GCC diagnostic pop -} + +} // end namespace mg5amcGpu/mg5amcCpu //========================================================================== diff --git a/epochX/cudacpp/gg_ttggg.mad/src/cudacpp_src.mk b/epochX/cudacpp/gg_ttggg.mad/src/cudacpp_src.mk index 21b6d924ff..554d7a704c 100644 --- a/epochX/cudacpp/gg_ttggg.mad/src/cudacpp_src.mk +++ b/epochX/cudacpp/gg_ttggg.mad/src/cudacpp_src.mk @@ -38,7 +38,13 @@ endif #------------------------------------------------------------------------------- -#=== Configure ccache for CUDA and C++ builds +#=== Configure the CUDA compiler (note: NVCC is already exported including ccache) + +###$(info NVCC=$(NVCC)) + +#------------------------------------------------------------------------------- + +#=== Configure ccache for C++ builds (note: NVCC is already exported including ccache) # Enable ccache if USECCACHE=1 ifeq ($(USECCACHE)$(shell echo $(CXX) | grep ccache),1) @@ -47,11 +53,6 @@ endif #ifeq ($(USECCACHE)$(shell echo $(AR) | grep ccache),1) # override AR:=ccache $(AR) #endif -#ifneq ($(NVCC),) -# ifeq ($(USECCACHE)$(shell echo $(NVCC) | grep ccache),1) -# override NVCC:=ccache $(NVCC) -# endif -#endif #------------------------------------------------------------------------------- @@ -115,7 +116,9 @@ else ifneq ($(shell $(CXX) --version | grep ^nvc++),) # support nvc++ #531 $(error Unknown AVX='$(AVX)': only 'none', 'sse4', 'avx2', '512y' and '512z' are supported) endif else - ifeq ($(AVX),sse4) + ifeq ($(AVX),none) + override AVXFLAGS = -march=x86-64 # no SIMD (see #588) + else ifeq ($(AVX),sse4) override AVXFLAGS = -march=nehalem # SSE4.2 with 128 width (xmm registers) else ifeq ($(AVX),avx2) override AVXFLAGS = -march=haswell # AVX2 with 256 width (ymm registers) [DEFAULT for clang] @@ -216,7 +219,7 @@ MG5AMC_COMMONLIB = mg5amc_common all.$(TAG): $(BUILDDIR)/.build.$(TAG) $(LIBDIR)/.build.$(TAG) $(LIBDIR)/lib$(MG5AMC_COMMONLIB).so # Target (and build options): debug -debug: OPTFLAGS = -g -O0 -DDEBUG2 +debug: OPTFLAGS = -g -O0 debug: all.$(TAG) # Target: tag-specific build lockfiles @@ -237,17 +240,31 @@ $(LIBDIR)/.build.$(TAG): # Generic target and build rules: objects from C++ compilation $(BUILDDIR)/%.o : %.cc *.h $(BUILDDIR)/.build.$(TAG) - @if [ ! -d $(BUILDDIR) ]; then mkdir -p $(BUILDDIR); fi - $(CXX) $(CPPFLAGS) $(CXXFLAGS) -c $< -o $@ + @if [ ! -d $(BUILDDIR) ]; then echo "mkdir -p $(BUILDDIR)"; mkdir -p $(BUILDDIR); fi + $(CXX) $(CPPFLAGS) $(CXXFLAGS) -fPIC -c $< -o $@ + +# Generic target and build rules: objects from CUDA compilation +$(BUILDDIR)/%_cu.o : %.cc *.h $(BUILDDIR)/.build.$(TAG) + @if [ ! -d $(BUILDDIR) ]; then echo "mkdir -p $(BUILDDIR)"; mkdir -p $(BUILDDIR); fi + $(NVCC) $(CPPFLAGS) $(CUFLAGS) -Xcompiler -fPIC -c -x cu $< -o $@ #------------------------------------------------------------------------------- cxx_objects=$(addprefix $(BUILDDIR)/, Parameters_sm.o read_slha.o) +ifneq ($(NVCC),) +cu_objects=$(addprefix $(BUILDDIR)/, Parameters_sm_cu.o) +endif # Target (and build rules): common (src) library +ifneq ($(NVCC),) +$(LIBDIR)/lib$(MG5AMC_COMMONLIB).so : $(cxx_objects) $(cu_objects) + @if [ ! -d $(LIBDIR) ]; then echo "mkdir -p $(LIBDIR)"; mkdir -p $(LIBDIR); fi + $(NVCC) -shared -o $@ $(cxx_objects) $(cu_objects) +else $(LIBDIR)/lib$(MG5AMC_COMMONLIB).so : $(cxx_objects) @if [ ! -d $(LIBDIR) ]; then echo "mkdir -p $(LIBDIR)"; mkdir -p $(LIBDIR); fi - $(CXX) -shared -o$@ $(cxx_objects) + $(CXX) -shared -o $@ $(cxx_objects) +endif #------------------------------------------------------------------------------- diff --git a/epochX/cudacpp/gg_ttggg.mad/src/mgOnGpuConfig.h b/epochX/cudacpp/gg_ttggg.mad/src/mgOnGpuConfig.h index 881353abac..cacab1031a 100644 --- a/epochX/cudacpp/gg_ttggg.mad/src/mgOnGpuConfig.h +++ b/epochX/cudacpp/gg_ttggg.mad/src/mgOnGpuConfig.h @@ -98,6 +98,7 @@ #endif #endif +// NB: namespace mgOnGpu includes types which are defined in exactly the same way for CPU and GPU builds (see #318 and #725) namespace mgOnGpu { diff --git a/epochX/cudacpp/gg_ttggg.mad/src/mgOnGpuCxtypes.h b/epochX/cudacpp/gg_ttggg.mad/src/mgOnGpuCxtypes.h index 0cb2f1db7e..b56348bc58 100644 --- a/epochX/cudacpp/gg_ttggg.mad/src/mgOnGpuCxtypes.h +++ b/epochX/cudacpp/gg_ttggg.mad/src/mgOnGpuCxtypes.h @@ -43,8 +43,12 @@ // COMPLEX TYPES: SIMPLE COMPLEX CLASS (cxsmpl) //========================================================================== +// NB: namespace mgOnGpu includes types which are defined in exactly the same way for CPU and GPU builds (see #318 and #725) namespace mgOnGpu /* clang-format off */ { + // The number of floating point types in a complex type (real, imaginary) + constexpr int nx2 = 2; + // --- Type definition (simple complex type derived from cxtype_v) template class cxsmpl @@ -78,128 +82,139 @@ namespace mgOnGpu /* clang-format off */ using mgOnGpu::cxsmpl; // Printout to stream for user defined types -template -inline __host__ __device__ std::ostream& -operator<<( std::ostream& out, const cxsmpl& c ) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { - out << std::complex( c.real(), c.imag() ); - return out; -} + template + inline __host__ std::ostream& + operator<<( std::ostream& out, const cxsmpl& c ) + { + out << std::complex( c.real(), c.imag() ); + return out; + } -// Operators for cxsmpl -template -inline __host__ __device__ constexpr cxsmpl -operator+( const cxsmpl a ) -{ - return a; -} + // Operators for cxsmpl + template + inline __host__ __device__ constexpr cxsmpl + operator+( const cxsmpl a ) + { + return a; + } -template -inline __host__ __device__ constexpr cxsmpl -operator-( const cxsmpl& a ) -{ - return cxsmpl( -a.real(), -a.imag() ); -} + template + inline __host__ __device__ constexpr cxsmpl + operator-( const cxsmpl& a ) + { + return cxsmpl( -a.real(), -a.imag() ); + } -template -inline __host__ __device__ constexpr cxsmpl -operator+( const cxsmpl& a, const cxsmpl& b ) -{ - return cxsmpl( a.real() + b.real(), a.imag() + b.imag() ); -} + template + inline __host__ __device__ constexpr cxsmpl + operator+( const cxsmpl& a, const cxsmpl& b ) + { + return cxsmpl( a.real() + b.real(), a.imag() + b.imag() ); + } -template -inline __host__ __device__ constexpr cxsmpl -operator+( const FP& a, const cxsmpl& b ) -{ - return cxsmpl( a, 0 ) + b; -} + template + inline __host__ __device__ constexpr cxsmpl + operator+( const FP& a, const cxsmpl& b ) + { + return cxsmpl( a, 0 ) + b; + } -template -inline __host__ __device__ constexpr cxsmpl -operator-( const cxsmpl& a, const cxsmpl& b ) -{ - return cxsmpl( a.real() - b.real(), a.imag() - b.imag() ); -} + template + inline __host__ __device__ constexpr cxsmpl + operator-( const cxsmpl& a, const cxsmpl& b ) + { + return cxsmpl( a.real() - b.real(), a.imag() - b.imag() ); + } -template -inline __host__ __device__ constexpr cxsmpl -operator-( const FP& a, const cxsmpl& b ) -{ - return cxsmpl( a, 0 ) - b; -} + template + inline __host__ __device__ constexpr cxsmpl + operator-( const FP& a, const cxsmpl& b ) + { + return cxsmpl( a, 0 ) - b; + } -template -inline __host__ __device__ constexpr cxsmpl -operator*( const cxsmpl& a, const cxsmpl& b ) -{ - return cxsmpl( a.real() * b.real() - a.imag() * b.imag(), a.imag() * b.real() + a.real() * b.imag() ); -} + template + inline __host__ __device__ constexpr cxsmpl + operator*( const cxsmpl& a, const cxsmpl& b ) + { + return cxsmpl( a.real() * b.real() - a.imag() * b.imag(), a.imag() * b.real() + a.real() * b.imag() ); + } -template -inline __host__ __device__ constexpr cxsmpl -operator*( const FP& a, const cxsmpl& b ) -{ - return cxsmpl( a, 0 ) * b; -} + template + inline __host__ __device__ constexpr cxsmpl + operator*( const FP& a, const cxsmpl& b ) + { + return cxsmpl( a, 0 ) * b; + } -inline __host__ __device__ constexpr cxsmpl -operator*( const double& a, const cxsmpl& b ) -{ - return cxsmpl( a, 0 ) * b; -} + inline __host__ __device__ constexpr cxsmpl + operator*( const double& a, const cxsmpl& b ) + { + return cxsmpl( a, 0 ) * b; + } -template -inline __host__ __device__ constexpr cxsmpl -operator/( const cxsmpl& a, const cxsmpl& b ) -{ - FP bnorm = b.real() * b.real() + b.imag() * b.imag(); - return cxsmpl( ( a.real() * b.real() + a.imag() * b.imag() ) / bnorm, - ( a.imag() * b.real() - a.real() * b.imag() ) / bnorm ); -} + template + inline __host__ __device__ constexpr cxsmpl + operator/( const cxsmpl& a, const cxsmpl& b ) + { + FP bnorm = b.real() * b.real() + b.imag() * b.imag(); + return cxsmpl( ( a.real() * b.real() + a.imag() * b.imag() ) / bnorm, + ( a.imag() * b.real() - a.real() * b.imag() ) / bnorm ); + } -template -inline __host__ __device__ constexpr cxsmpl -operator/( const FP& a, const cxsmpl& b ) -{ - return cxsmpl( a, 0 ) / b; -} + template + inline __host__ __device__ constexpr cxsmpl + operator/( const FP& a, const cxsmpl& b ) + { + return cxsmpl( a, 0 ) / b; + } -template -inline __host__ __device__ constexpr cxsmpl -operator+( const cxsmpl& a, const FP& b ) -{ - return a + cxsmpl( b, 0 ); -} + template + inline __host__ __device__ constexpr cxsmpl + operator+( const cxsmpl& a, const FP& b ) + { + return a + cxsmpl( b, 0 ); + } -template -inline __host__ __device__ constexpr cxsmpl -operator-( const cxsmpl& a, const FP& b ) -{ - return a - cxsmpl( b, 0 ); -} + template + inline __host__ __device__ constexpr cxsmpl + operator-( const cxsmpl& a, const FP& b ) + { + return a - cxsmpl( b, 0 ); + } -template -inline __host__ __device__ constexpr cxsmpl -operator*( const cxsmpl& a, const FP& b ) -{ - return a * cxsmpl( b, 0 ); -} + template + inline __host__ __device__ constexpr cxsmpl + operator*( const cxsmpl& a, const FP& b ) + { + return a * cxsmpl( b, 0 ); + } -template -inline __host__ __device__ constexpr cxsmpl -operator/( const cxsmpl& a, const FP& b ) -{ - return a / cxsmpl( b, 0 ); + template + inline __host__ __device__ constexpr cxsmpl + operator/( const cxsmpl& a, const FP& b ) + { + return a / cxsmpl( b, 0 ); + } } //========================================================================== // COMPLEX TYPES: (PLATFORM-SPECIFIC) TYPEDEFS //========================================================================== -namespace mgOnGpu +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { - // --- Type definitions (complex type: cxtype) #ifdef __CUDACC__ // cuda #if defined MGONGPU_CUCXTYPE_THRUST @@ -221,390 +236,402 @@ namespace mgOnGpu #endif #endif - // The number of floating point types in a complex type (real, imaginary) - constexpr int nx2 = 2; - // SANITY CHECK: memory access may be based on casts of fptype[2] to cxtype (e.g. for wavefunctions) - static_assert( sizeof( cxtype ) == nx2 * sizeof( fptype ), "sizeof(cxtype) is not 2*sizeof(fptype)" ); + static_assert( sizeof( cxtype ) == mgOnGpu::nx2 * sizeof( fptype ), "sizeof(cxtype) is not 2*sizeof(fptype)" ); } -// Expose typedefs and operators outside the namespace -using mgOnGpu::cxtype; +// DANGEROUS! this was mixing different cxtype definitions for CPU and GPU builds (see #318 and #725) +// DO NOT expose typedefs and operators outside the namespace +//using mgOnGpu::cxtype; //========================================================================== // COMPLEX TYPES: (PLATFORM-SPECIFIC) FUNCTIONS AND OPERATORS //========================================================================== +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif +{ #if defined MGONGPU_CUCXTYPE_CXSMPL or defined MGONGPU_CPPCXTYPE_CXSMPL -//------------------------------ -// CUDA or C++ - using cxsmpl -//------------------------------ + //------------------------------ + // CUDA or C++ - using cxsmpl + //------------------------------ -inline __host__ __device__ cxtype -cxmake( const fptype& r, const fptype& i ) -{ - return cxtype( r, i ); // cxsmpl constructor -} + inline __host__ __device__ cxtype + cxmake( const fptype& r, const fptype& i ) + { + return cxtype( r, i ); // cxsmpl constructor + } -inline __host__ __device__ fptype -cxreal( const cxtype& c ) -{ - return c.real(); // cxsmpl::real() -} + inline __host__ __device__ fptype + cxreal( const cxtype& c ) + { + return c.real(); // cxsmpl::real() + } -inline __host__ __device__ fptype -cximag( const cxtype& c ) -{ - return c.imag(); // cxsmpl::imag() -} + inline __host__ __device__ fptype + cximag( const cxtype& c ) + { + return c.imag(); // cxsmpl::imag() + } -inline __host__ __device__ cxtype -cxconj( const cxtype& c ) -{ - return conj( c ); // conj( cxsmpl ) -} + inline __host__ __device__ cxtype + cxconj( const cxtype& c ) + { + return conj( c ); // conj( cxsmpl ) + } -inline __host__ cxtype // NOT __device__ -cxmake( const std::complex& c ) // std::complex to cxsmpl (float-to-float or float-to-double) -{ - return cxmake( c.real(), c.imag() ); -} + inline __host__ cxtype // NOT __device__ + cxmake( const std::complex& c ) // std::complex to cxsmpl (float-to-float or float-to-double) + { + return cxmake( c.real(), c.imag() ); + } -inline __host__ cxtype // NOT __device__ -cxmake( const std::complex& c ) // std::complex to cxsmpl (double-to-float or double-to-double) -{ - return cxmake( c.real(), c.imag() ); -} + inline __host__ cxtype // NOT __device__ + cxmake( const std::complex& c ) // std::complex to cxsmpl (double-to-float or double-to-double) + { + return cxmake( c.real(), c.imag() ); + } #endif // #if defined MGONGPU_CUCXTYPE_CXSMPL or defined MGONGPU_CPPCXTYPE_CXSMPL -//========================================================================== + //========================================================================== #if defined __CUDACC__ and defined MGONGPU_CUCXTYPE_THRUST // cuda + thrust -//------------------------------ -// CUDA - using thrust::complex -//------------------------------ + //------------------------------ + // CUDA - using thrust::complex + //------------------------------ -inline __host__ __device__ cxtype -cxmake( const fptype& r, const fptype& i ) -{ - return cxtype( r, i ); // thrust::complex constructor -} + inline __host__ __device__ cxtype + cxmake( const fptype& r, const fptype& i ) + { + return cxtype( r, i ); // thrust::complex constructor + } -inline __host__ __device__ fptype -cxreal( const cxtype& c ) -{ - return c.real(); // thrust::complex::real() -} + inline __host__ __device__ fptype + cxreal( const cxtype& c ) + { + return c.real(); // thrust::complex::real() + } -inline __host__ __device__ fptype -cximag( const cxtype& c ) -{ - return c.imag(); // thrust::complex::imag() -} + inline __host__ __device__ fptype + cximag( const cxtype& c ) + { + return c.imag(); // thrust::complex::imag() + } -inline __host__ __device__ cxtype -cxconj( const cxtype& c ) -{ - return conj( c ); // conj( thrust::complex ) -} + inline __host__ __device__ cxtype + cxconj( const cxtype& c ) + { + return conj( c ); // conj( thrust::complex ) + } -inline __host__ __device__ const cxtype& -cxmake( const cxtype& c ) -{ - return c; -} + inline __host__ __device__ const cxtype& + cxmake( const cxtype& c ) + { + return c; + } #endif // #if defined __CUDACC__ and defined MGONGPU_CUCXTYPE_THRUST -//========================================================================== + //========================================================================== #if defined __CUDACC__ and defined MGONGPU_CUCXTYPE_CUCOMPLEX // cuda + cucomplex -//------------------------------ -// CUDA - using cuComplex -//------------------------------ + //------------------------------ + // CUDA - using cuComplex + //------------------------------ #if defined MGONGPU_FPTYPE_DOUBLE // cuda + cucomplex + double -//+++++++++++++++++++++++++ -// cuDoubleComplex ONLY -//+++++++++++++++++++++++++ + //+++++++++++++++++++++++++ + // cuDoubleComplex ONLY + //+++++++++++++++++++++++++ -inline __host__ __device__ cxtype -cxmake( const fptype& r, const fptype& i ) -{ - return make_cuDoubleComplex( r, i ); -} + inline __host__ __device__ cxtype + cxmake( const fptype& r, const fptype& i ) + { + return make_cuDoubleComplex( r, i ); + } -inline __host__ __device__ fptype -cxreal( const cxtype& c ) -{ - return cuCreal( c ); // returns by value -} + inline __host__ __device__ fptype + cxreal( const cxtype& c ) + { + return cuCreal( c ); // returns by value + } -inline __host__ __device__ fptype -cximag( const cxtype& c ) -{ - return cuCimag( c ); // returns by value -} + inline __host__ __device__ fptype + cximag( const cxtype& c ) + { + return cuCimag( c ); // returns by value + } -inline __host__ __device__ cxtype -operator+( const cxtype& a, const cxtype& b ) -{ - return cuCadd( a, b ); -} + inline __host__ __device__ cxtype + operator+( const cxtype& a, const cxtype& b ) + { + return cuCadd( a, b ); + } -inline __host__ __device__ cxtype& -operator+=( cxtype& a, const cxtype& b ) -{ - a = cuCadd( a, b ); - return a; -} + inline __host__ __device__ cxtype& + operator+=( cxtype& a, const cxtype& b ) + { + a = cuCadd( a, b ); + return a; + } -inline __host__ __device__ cxtype -operator-( const cxtype& a, const cxtype& b ) -{ - return cuCsub( a, b ); -} + inline __host__ __device__ cxtype + operator-( const cxtype& a, const cxtype& b ) + { + return cuCsub( a, b ); + } -inline __host__ __device__ cxtype& -operator-=( cxtype& a, const cxtype& b ) -{ - a = cuCsub( a, b ); - return a; -} + inline __host__ __device__ cxtype& + operator-=( cxtype& a, const cxtype& b ) + { + a = cuCsub( a, b ); + return a; + } -inline __host__ __device__ cxtype -operator*( const cxtype& a, const cxtype& b ) -{ - return cuCmul( a, b ); -} + inline __host__ __device__ cxtype + operator*( const cxtype& a, const cxtype& b ) + { + return cuCmul( a, b ); + } -inline __host__ __device__ cxtype -operator/( const cxtype& a, const cxtype& b ) -{ - return cuCdiv( a, b ); -} + inline __host__ __device__ cxtype + operator/( const cxtype& a, const cxtype& b ) + { + return cuCdiv( a, b ); + } #elif defined MGONGPU_FPTYPE_FLOAT // cuda + cucomplex + float -//+++++++++++++++++++++++++ -// cuFloatComplex ONLY -//+++++++++++++++++++++++++ + //+++++++++++++++++++++++++ + // cuFloatComplex ONLY + //+++++++++++++++++++++++++ -inline __host__ __device__ cxtype -cxmake( const fptype& r, const fptype& i ) -{ - return make_cuFloatComplex( r, i ); -} + inline __host__ __device__ cxtype + cxmake( const fptype& r, const fptype& i ) + { + return make_cuFloatComplex( r, i ); + } -inline __host__ __device__ fptype -cxreal( const cxtype& c ) -{ - return cuCrealf( c ); // returns by value -} + inline __host__ __device__ fptype + cxreal( const cxtype& c ) + { + return cuCrealf( c ); // returns by value + } -inline __host__ __device__ fptype -cximag( const cxtype& c ) -{ - return cuCimagf( c ); // returns by value -} + inline __host__ __device__ fptype + cximag( const cxtype& c ) + { + return cuCimagf( c ); // returns by value + } -inline __host__ __device__ cxtype -operator+( const cxtype& a, const cxtype& b ) -{ - return cuCaddf( a, b ); -} + inline __host__ __device__ cxtype + operator+( const cxtype& a, const cxtype& b ) + { + return cuCaddf( a, b ); + } -inline __host__ __device__ cxtype& -operator+=( cxtype& a, const cxtype& b ) -{ - a = cuCaddf( a, b ); - return a; -} + inline __host__ __device__ cxtype& + operator+=( cxtype& a, const cxtype& b ) + { + a = cuCaddf( a, b ); + return a; + } -inline __host__ __device__ cxtype -operator-( const cxtype& a, const cxtype& b ) -{ - return cuCsubf( a, b ); -} + inline __host__ __device__ cxtype + operator-( const cxtype& a, const cxtype& b ) + { + return cuCsubf( a, b ); + } -inline __host__ __device__ cxtype& -operator-=( cxtype& a, const cxtype& b ) -{ - a = cuCsubf( a, b ); - return a; -} + inline __host__ __device__ cxtype& + operator-=( cxtype& a, const cxtype& b ) + { + a = cuCsubf( a, b ); + return a; + } -inline __host__ __device__ cxtype -operator*( const cxtype& a, const cxtype& b ) -{ - return cuCmulf( a, b ); -} + inline __host__ __device__ cxtype + operator*( const cxtype& a, const cxtype& b ) + { + return cuCmulf( a, b ); + } -inline __host__ __device__ cxtype -operator/( const cxtype& a, const cxtype& b ) -{ - return cuCdivf( a, b ); -} + inline __host__ __device__ cxtype + operator/( const cxtype& a, const cxtype& b ) + { + return cuCdivf( a, b ); + } -inline __host__ cxtype // NOT __device__ -cxmake( const std::complex& c ) // std::complex to cucomplex (cast double-to-float) -{ - return cxmake( (fptype)c.real(), (fptype)c.imag() ); -} + inline __host__ cxtype // NOT __device__ + cxmake( const std::complex& c ) // std::complex to cucomplex (cast double-to-float) + { + return cxmake( (fptype)c.real(), (fptype)c.imag() ); + } #endif -//+++++++++++++++++++++++++ -// cuDoubleComplex OR -// cuFloatComplex -//+++++++++++++++++++++++++ + //+++++++++++++++++++++++++ + // cuDoubleComplex OR + // cuFloatComplex + //+++++++++++++++++++++++++ -inline __host__ __device__ cxtype -operator+( const cxtype a ) -{ - return a; -} + inline __host__ __device__ cxtype + operator+( const cxtype a ) + { + return a; + } -inline __host__ __device__ cxtype -operator-( const cxtype& a ) -{ - return cxmake( -cxreal( a ), -cximag( a ) ); -} + inline __host__ __device__ cxtype + operator-( const cxtype& a ) + { + return cxmake( -cxreal( a ), -cximag( a ) ); + } -inline __host__ __device__ cxtype -operator+( const fptype& a, const cxtype& b ) -{ - return cxmake( a, 0 ) + b; -} + inline __host__ __device__ cxtype + operator+( const fptype& a, const cxtype& b ) + { + return cxmake( a, 0 ) + b; + } -inline __host__ __device__ cxtype -operator-( const fptype& a, const cxtype& b ) -{ - return cxmake( a, 0 ) - b; -} + inline __host__ __device__ cxtype + operator-( const fptype& a, const cxtype& b ) + { + return cxmake( a, 0 ) - b; + } -inline __host__ __device__ cxtype -operator*( const fptype& a, const cxtype& b ) -{ - return cxmake( a, 0 ) * b; -} + inline __host__ __device__ cxtype + operator*( const fptype& a, const cxtype& b ) + { + return cxmake( a, 0 ) * b; + } -inline __host__ __device__ cxtype -operator/( const fptype& a, const cxtype& b ) -{ - return cxmake( a, 0 ) / b; -} + inline __host__ __device__ cxtype + operator/( const fptype& a, const cxtype& b ) + { + return cxmake( a, 0 ) / b; + } -inline __host__ __device__ cxtype -operator+( const cxtype& a, const fptype& b ) -{ - return a + cxmake( b, 0 ); -} + inline __host__ __device__ cxtype + operator+( const cxtype& a, const fptype& b ) + { + return a + cxmake( b, 0 ); + } -inline __host__ __device__ cxtype -operator-( const cxtype& a, const fptype& b ) -{ - return a - cxmake( b, 0 ); -} + inline __host__ __device__ cxtype + operator-( const cxtype& a, const fptype& b ) + { + return a - cxmake( b, 0 ); + } -inline __host__ __device__ cxtype -operator*( const cxtype& a, const fptype& b ) -{ - return a * cxmake( b, 0 ); -} + inline __host__ __device__ cxtype + operator*( const cxtype& a, const fptype& b ) + { + return a * cxmake( b, 0 ); + } -inline __host__ __device__ cxtype -operator/( const cxtype& a, const fptype& b ) -{ - return a / cxmake( b, 0 ); -} + inline __host__ __device__ cxtype + operator/( const cxtype& a, const fptype& b ) + { + return a / cxmake( b, 0 ); + } -inline __host__ __device__ cxtype -cxconj( const cxtype& c ) -{ - return cxmake( cxreal( c ), -cximag( c ) ); -} + inline __host__ __device__ cxtype + cxconj( const cxtype& c ) + { + return cxmake( cxreal( c ), -cximag( c ) ); + } -inline __host__ cxtype // NOT __device__ -cxmake( const std::complex& c ) // std::complex to cucomplex (float-to-float or double-to-double) -{ - return cxmake( c.real(), c.imag() ); -} + inline __host__ cxtype // NOT __device__ + cxmake( const std::complex& c ) // std::complex to cucomplex (float-to-float or double-to-double) + { + return cxmake( c.real(), c.imag() ); + } #endif // #if defined __CUDACC__ and defined MGONGPU_CUCXTYPE_CUCOMPLEX -//========================================================================== + //========================================================================== #if not defined __CUDACC__ and defined MGONGPU_CPPCXTYPE_STDCOMPLEX // c++ + stdcomplex -//------------------------------ -// C++ - using std::complex -//------------------------------ + //------------------------------ + // C++ - using std::complex + //------------------------------ -inline cxtype -cxmake( const fptype& r, const fptype& i ) -{ - return cxtype( r, i ); // std::complex constructor -} + inline cxtype + cxmake( const fptype& r, const fptype& i ) + { + return cxtype( r, i ); // std::complex constructor + } -inline fptype -cxreal( const cxtype& c ) -{ - return c.real(); // std::complex::real() -} + inline fptype + cxreal( const cxtype& c ) + { + return c.real(); // std::complex::real() + } -inline fptype -cximag( const cxtype& c ) -{ - return c.imag(); // std::complex::imag() -} + inline fptype + cximag( const cxtype& c ) + { + return c.imag(); // std::complex::imag() + } -inline cxtype -cxconj( const cxtype& c ) -{ - return conj( c ); // conj( std::complex ) -} + inline cxtype + cxconj( const cxtype& c ) + { + return conj( c ); // conj( std::complex ) + } -inline const cxtype& -cxmake( const cxtype& c ) // std::complex to std::complex (float-to-float or double-to-double) -{ - return c; -} + inline const cxtype& + cxmake( const cxtype& c ) // std::complex to std::complex (float-to-float or double-to-double) + { + return c; + } #if defined MGONGPU_FPTYPE_FLOAT -inline cxtype -cxmake( const std::complex& c ) // std::complex to std::complex (cast double-to-float) -{ - return cxmake( (fptype)c.real(), (fptype)c.imag() ); -} + inline cxtype + cxmake( const std::complex& c ) // std::complex to std::complex (cast double-to-float) + { + return cxmake( (fptype)c.real(), (fptype)c.imag() ); + } #endif #endif // #if not defined __CUDACC__ and defined MGONGPU_CPPCXTYPE_STDCOMPLEX -//========================================================================== + //========================================================================== -inline __host__ __device__ const cxtype -cxmake( const cxsmpl& c ) // cxsmpl to cxtype (float-to-float or float-to-double) -{ - return cxmake( c.real(), c.imag() ); -} + inline __host__ __device__ const cxtype + cxmake( const cxsmpl& c ) // cxsmpl to cxtype (float-to-float or float-to-double) + { + return cxmake( c.real(), c.imag() ); + } -inline __host__ __device__ const cxtype -cxmake( const cxsmpl& c ) // cxsmpl to cxtype (double-to-float or double-to-double) -{ - return cxmake( c.real(), c.imag() ); -} + inline __host__ __device__ const cxtype + cxmake( const cxsmpl& c ) // cxsmpl to cxtype (double-to-float or double-to-double) + { + return cxmake( c.real(), c.imag() ); + } + +} // end namespace mg5amcGpu/mg5amcCpu //========================================================================== // COMPLEX TYPES: WRAPPER OVER RI FLOATING POINT PAIR (cxtype_ref) //========================================================================== -namespace mgOnGpu /* clang-format off */ +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { // The cxtype_ref class (a non-const reference to two fp variables) was originally designed for cxtype_v::operator[] // It used to be included in the code only when MGONGPU_HAS_CPPCXTYPEV_BRK (originally MGONGPU_HAS_CPPCXTYPE_REF) is defined @@ -615,23 +642,30 @@ namespace mgOnGpu /* clang-format off */ cxtype_ref() = delete; cxtype_ref( const cxtype_ref& ) = delete; cxtype_ref( cxtype_ref&& ) = default; // copy refs - __host__ __device__ cxtype_ref( fptype& r, fptype& i ) : m_preal( &r ), m_pimag( &i ) {} // copy refs + __host__ __device__ cxtype_ref( fptype& r, fptype& i ) + : m_preal( &r ), m_pimag( &i ) {} // copy refs cxtype_ref& operator=( const cxtype_ref& ) = delete; //__host__ __device__ cxtype_ref& operator=( cxtype_ref&& c ) {...} // REMOVED! Should copy refs or copy values? No longer needed in cxternary - __host__ __device__ cxtype_ref& operator=( const cxtype& c ) { *m_preal = cxreal( c ); *m_pimag = cximag( c ); return *this; } // copy values + __host__ __device__ cxtype_ref& operator=( const cxtype& c ) + { + *m_preal = cxreal( c ); + *m_pimag = cximag( c ); + return *this; + } // copy values __host__ __device__ operator cxtype() const { return cxmake( *m_preal, *m_pimag ); } private: fptype *m_preal, *m_pimag; // RI }; -} /* clang-format on */ -// Printout to stream for user defined types -inline __host__ __device__ std::ostream& -operator<<( std::ostream& out, const mgOnGpu::cxtype_ref& c ) -{ - out << (cxtype)c; - return out; -} + // Printout to stream for user defined types + inline __host__ __device__ std::ostream& + operator<<( std::ostream& out, const cxtype_ref& c ) + { + out << (cxtype)c; + return out; + } + +} // end namespace mg5amcGpu/mg5amcCpu //========================================================================== diff --git a/epochX/cudacpp/gg_ttggg.mad/src/mgOnGpuFptypes.h b/epochX/cudacpp/gg_ttggg.mad/src/mgOnGpuFptypes.h index a1cde16a67..905c97d700 100644 --- a/epochX/cudacpp/gg_ttggg.mad/src/mgOnGpuFptypes.h +++ b/epochX/cudacpp/gg_ttggg.mad/src/mgOnGpuFptypes.h @@ -11,82 +11,91 @@ #include #include -//========================================================================== - -#ifdef __CUDACC__ // cuda - -//------------------------------ -// Floating point types - Cuda -//------------------------------ - -/* -inline __host__ __device__ fptype -fpmax( const fptype& a, const fptype& b ) -{ - return max( a, b ); -} - -inline __host__ __device__ fptype -fpmin( const fptype& a, const fptype& b ) -{ - return min( a, b ); -} -*/ - -inline __host__ __device__ const fptype& -fpmax( const fptype& a, const fptype& b ) +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { - return ( ( b < a ) ? a : b ); -} + //========================================================================== -inline __host__ __device__ const fptype& -fpmin( const fptype& a, const fptype& b ) -{ - return ( ( a < b ) ? a : b ); -} +#ifdef __CUDACC__ // cuda -inline __host__ __device__ fptype -fpsqrt( const fptype& f ) -{ + //------------------------------ + // Floating point types - Cuda + //------------------------------ + + /* + inline __host__ __device__ fptype + fpmax( const fptype& a, const fptype& b ) + { + return max( a, b ); + } + + inline __host__ __device__ fptype + fpmin( const fptype& a, const fptype& b ) + { + return min( a, b ); + } + */ + + inline __host__ __device__ const fptype& + fpmax( const fptype& a, const fptype& b ) + { + return ( ( b < a ) ? a : b ); + } + + inline __host__ __device__ const fptype& + fpmin( const fptype& a, const fptype& b ) + { + return ( ( a < b ) ? a : b ); + } + + inline __host__ __device__ fptype + fpsqrt( const fptype& f ) + { #if defined MGONGPU_FPTYPE_FLOAT - // See https://docs.nvidia.com/cuda/cuda-math-api/group__CUDA__MATH__SINGLE.html - return sqrtf( f ); + // See https://docs.nvidia.com/cuda/cuda-math-api/group__CUDA__MATH__SINGLE.html + return sqrtf( f ); #else - // See https://docs.nvidia.com/cuda/cuda-math-api/group__CUDA__MATH__DOUBLE.html - return sqrt( f ); + // See https://docs.nvidia.com/cuda/cuda-math-api/group__CUDA__MATH__DOUBLE.html + return sqrt( f ); #endif -} + } #endif // #ifdef __CUDACC__ -//========================================================================== + //========================================================================== #ifndef __CUDACC__ -//------------------------------ -// Floating point types - C++ -//------------------------------ + //------------------------------ + // Floating point types - C++ + //------------------------------ -inline const fptype& -fpmax( const fptype& a, const fptype& b ) -{ - return std::max( a, b ); -} + inline const fptype& + fpmax( const fptype& a, const fptype& b ) + { + return std::max( a, b ); + } -inline const fptype& -fpmin( const fptype& a, const fptype& b ) -{ - return std::min( a, b ); -} + inline const fptype& + fpmin( const fptype& a, const fptype& b ) + { + return std::min( a, b ); + } -inline fptype -fpsqrt( const fptype& f ) -{ - return std::sqrt( f ); -} + inline fptype + fpsqrt( const fptype& f ) + { + return std::sqrt( f ); + } #endif // #ifndef __CUDACC__ -//========================================================================== + //========================================================================== + +} // end namespace mg5amcGpu/mg5amcCpu #endif // MGONGPUFPTYPES_H diff --git a/epochX/cudacpp/gg_ttggg.mad/src/mgOnGpuVectors.h b/epochX/cudacpp/gg_ttggg.mad/src/mgOnGpuVectors.h index 9d3e82b1e3..0d3892d026 100644 --- a/epochX/cudacpp/gg_ttggg.mad/src/mgOnGpuVectors.h +++ b/epochX/cudacpp/gg_ttggg.mad/src/mgOnGpuVectors.h @@ -31,7 +31,12 @@ //#undef MGONGPU_HAS_CPPCXTYPEV_BRK // gcc test (very slightly slower? issue #172) #endif -namespace mgOnGpu /* clang-format off */ +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { #ifdef MGONGPU_CPPSIMD @@ -72,22 +77,40 @@ namespace mgOnGpu /* clang-format off */ public: // Array initialization: zero-out as "{0}" (C and C++) or as "{}" (C++ only) // See https://en.cppreference.com/w/c/language/array_initialization#Notes - cxtype_v() : m_real{ 0 }, m_imag{ 0 } {} // RRRR=0000 IIII=0000 + cxtype_v() + : m_real{ 0 }, m_imag{ 0 } {} // RRRR=0000 IIII=0000 cxtype_v( const cxtype_v& ) = default; cxtype_v( cxtype_v&& ) = default; - cxtype_v( const fptype_v& r, const fptype_v& i ) : m_real( r ), m_imag( i ) {} - cxtype_v( const fptype_v& r ) : m_real( r ), m_imag{ 0 } {} // IIII=0000 + cxtype_v( const fptype_v& r, const fptype_v& i ) + : m_real( r ), m_imag( i ) {} + cxtype_v( const fptype_v& r ) + : m_real( r ), m_imag{ 0 } {} // IIII=0000 + cxtype_v( const fptype& r ) + : m_real( fptype_v{} + r ), m_imag{ 0 } {} // IIII=0000 cxtype_v& operator=( const cxtype_v& ) = default; cxtype_v& operator=( cxtype_v&& ) = default; - cxtype_v& operator+=( const cxtype_v& c ) { m_real += c.real(); m_imag += c.imag(); return *this; } - cxtype_v& operator-=( const cxtype_v& c ) { m_real -= c.real(); m_imag -= c.imag(); return *this; } + cxtype_v& operator+=( const cxtype_v& c ) + { + m_real += c.real(); + m_imag += c.imag(); + return *this; + } + cxtype_v& operator-=( const cxtype_v& c ) + { + m_real -= c.real(); + m_imag -= c.imag(); + return *this; + } #ifdef MGONGPU_HAS_CPPCXTYPEV_BRK // NB: THIS IS THE FUNDAMENTAL DIFFERENCE BETWEEN MGONGPU_HAS_CPPCXTYPEV_BRK DEFINED AND NOT DEFINED // NB: the alternative "clang" implementation is simpler: it simply does not have any bracket operator[] // NB: ** do NOT implement operator[] to return a value: it does not fail the build (why?) and gives unexpected results! ** cxtype_ref operator[]( size_t i ) const { return cxtype_ref( m_real[i], m_imag[i] ); } #endif - const fptype_v& real() const { return m_real; } + const fptype_v& real() const + { + return m_real; + } const fptype_v& imag() const { return m_imag; } private: fptype_v m_real, m_imag; // RRRRIIII @@ -98,7 +121,7 @@ namespace mgOnGpu /* clang-format off */ #if defined MGONGPU_FPTYPE_DOUBLE typedef long int bool_v __attribute__( ( ext_vector_type( neppV ) ) ); // bbbb #elif defined MGONGPU_FPTYPE_FLOAT - typedef int bool_v __attribute__( ( ext_vector_type( neppV ) ) ); // bbbb + typedef int bool_v __attribute__( ( ext_vector_type( neppV ) ) ); // bbbb #endif #else // gcc #if defined MGONGPU_FPTYPE_DOUBLE @@ -113,532 +136,551 @@ namespace mgOnGpu /* clang-format off */ const int neppV = 1; #endif // #ifdef MGONGPU_CPPSIMD - -} /* clang-format on */ +} //-------------------------------------------------------------------------- -// Expose typedefs outside the namespace -using mgOnGpu::neppV; -#ifdef MGONGPU_CPPSIMD -using mgOnGpu::fptype_v; -using mgOnGpu::fptype2_v; -using mgOnGpu::cxtype_v; -using mgOnGpu::bool_v; -#endif +// DANGEROUS! this was mixing different cxtype definitions for CPU and GPU builds (see #318 and #725) +// DO NOT expose typedefs outside the namespace +//using mgOnGpu::neppV; +//#ifdef MGONGPU_CPPSIMD +//using mgOnGpu::fptype_v; +//using mgOnGpu::fptype2_v; +//using mgOnGpu::cxtype_v; +//using mgOnGpu::bool_v; +//#endif -//-------------------------------------------------------------------------- +//========================================================================== +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif +{ #ifndef __CUDACC__ -// Printout to stream for user defined types + // Printout to stream for user defined types #ifndef MGONGPU_CPPCXTYPE_CXSMPL // operator<< for cxsmpl has already been defined! -inline std::ostream& -operator<<( std::ostream& out, const cxtype& c ) -{ - out << "[" << cxreal( c ) << "," << cximag( c ) << "]"; - //out << cxreal(c) << "+i" << cximag(c); - return out; -} + inline std::ostream& + operator<<( std::ostream& out, const cxtype& c ) + { + out << "[" << cxreal( c ) << "," << cximag( c ) << "]"; + //out << cxreal(c) << "+i" << cximag(c); + return out; + } #endif -/* + /* #ifdef MGONGPU_CPPSIMD -inline std::ostream& -operator<<( std::ostream& out, const bool_v& v ) -{ - out << "{ " << v[0]; - for ( int i=1; i t t~ g g g No model currently active, so we import the Standard Model INFO: load particles INFO: load vertices -DEBUG: model prefixing takes 0.004633426666259766  +DEBUG: model prefixing takes 0.004965782165527344  INFO: Restrict model sm with file models/sm/restrict_default.dat . DEBUG: Simplifying conditional expressions  DEBUG: remove interactions: u s w+ at order: QED=1  @@ -155,7 +155,7 @@ INFO: Please specify coupling orders to bypass this step. INFO: Trying coupling order WEIGHTED<=5: WEIGTHED IS QCD+2*QED INFO: Trying process: g g > t t~ g g g WEIGHTED<=5 @1 INFO: Process has 1240 diagrams -1 processes with 1240 diagrams generated in 1.703 s +1 processes with 1240 diagrams generated in 1.750 s Total: 1 processes with 1240 diagrams output standalone_cudacpp CODEGEN_cudacpp_gg_ttggg Load PLUGIN.CUDACPP_SA_OUTPUT @@ -171,42 +171,42 @@ INFO: Processing color information for process: g g > t t~ g g g @1 DEBUG: type(subproc_group)= [output.py at line 187]  DEBUG: type(fortran_model)= [output.py at line 188]  DEBUG: type(me)= me=0 [output.py at line 189]  -DEBUG: Entering PLUGIN_OneProcessExporter.__init__ [model_handling.py at line 1028]  -DEBUG: proc_id =  0 [model_handling.py at line 1034]  +DEBUG: Entering PLUGIN_OneProcessExporter.__init__ [model_handling.py at line 1039]  +DEBUG: proc_id =  0 [model_handling.py at line 1045]  INFO: Creating files in directory /data/avalassi/GPU2023/MG5aMC/ghav-mg5amcnlo/CODEGEN_cudacpp_gg_ttggg/SubProcesses/P1_Sigma_sm_gg_ttxggg -DEBUG: Entering PLUGIN_OneProcessExporter.generate_process_files [model_handling.py at line 1286]  -DEBUG: self.include_multi_channel is not yet defined: this is standalone_cudacpp mode [model_handling.py at line 1290]  +DEBUG: Entering PLUGIN_OneProcessExporter.generate_process_files [model_handling.py at line 1297]  +DEBUG: self.include_multi_channel is not yet defined: this is standalone_cudacpp mode [model_handling.py at line 1301]  FileWriter for /data/avalassi/GPU2023/MG5aMC/ghav-mg5amcnlo/CODEGEN_cudacpp_gg_ttggg/SubProcesses/P1_Sigma_sm_gg_ttxggg/./CPPProcess.h -DEBUG: Entering PLUGIN_OneProcessExporter.write_process_h_file [model_handling.py at line 1442]  +DEBUG: Entering PLUGIN_OneProcessExporter.write_process_h_file [model_handling.py at line 1453]  FileWriter for /data/avalassi/GPU2023/MG5aMC/ghav-mg5amcnlo/CODEGEN_cudacpp_gg_ttggg/SubProcesses/P1_Sigma_sm_gg_ttxggg/./CPPProcess.cc -DEBUG: Entering PLUGIN_OneProcessExporter.write_process_cc_file [model_handling.py at line 1464]  -DEBUG: Entering PLUGIN_OneProcessExporter.get_sigmaKin_lines [model_handling.py at line 1132]  -DEBUG: self.include_multi_channel =  False [model_handling.py at line 1133]  -DEBUG: self.support_multichannel =  True [model_handling.py at line 1134]  -DEBUG: type(self.helas_call_writer) =  [model_handling.py at line 1151]  -DEBUG: self.support_multichannel, self.include_multi_channel =  True False [model_handling.py at line 1152]  -DEBUG: multi_channel_map =  None [model_handling.py at line 1643]  -DEBUG: diag_to_config =  {} [model_handling.py at line 1698]  -DEBUG: call =  vxxxxx( momenta,m_pars->%s, cHel[ihel][%d],%+d, w_sv[%d], %d ); [model_handling.py at line 1810]  -DEBUG: ('ZERO', 0, -1, 0, 0) [model_handling.py at line 1811]  -DEBUG: call =  vxxxxx( momenta,m_pars->%s, cHel[ihel][%d],%+d, w_sv[%d], %d ); [model_handling.py at line 1810]  -DEBUG: ('ZERO', 1, -1, 1, 1) [model_handling.py at line 1811]  -DEBUG: call =  vxxxxx( momenta,m_pars->%s, cHel[ihel][%d],%+d, w_sv[%d], %d ); [model_handling.py at line 1810]  -DEBUG: ('ZERO', 4, 1, 4, 4) [model_handling.py at line 1811]  -DEBUG: call =  vxxxxx( momenta,m_pars->%s, cHel[ihel][%d],%+d, w_sv[%d], %d ); [model_handling.py at line 1810]  -DEBUG: ('ZERO', 5, 1, 5, 5) [model_handling.py at line 1811]  -DEBUG: call =  vxxxxx( momenta,m_pars->%s, cHel[ihel][%d],%+d, w_sv[%d], %d ); [model_handling.py at line 1810]  -DEBUG: ('ZERO', 6, 1, 6, 6) [model_handling.py at line 1811]  +DEBUG: Entering PLUGIN_OneProcessExporter.write_process_cc_file [model_handling.py at line 1475]  +DEBUG: Entering PLUGIN_OneProcessExporter.get_sigmaKin_lines [model_handling.py at line 1143]  +DEBUG: self.include_multi_channel =  False [model_handling.py at line 1144]  +DEBUG: self.support_multichannel =  True [model_handling.py at line 1145]  +DEBUG: type(self.helas_call_writer) =  [model_handling.py at line 1162]  +DEBUG: self.support_multichannel, self.include_multi_channel =  True False [model_handling.py at line 1163]  +DEBUG: multi_channel_map =  None [model_handling.py at line 1654]  +DEBUG: diag_to_config =  {} [model_handling.py at line 1709]  +DEBUG: call =  vxxxxx( momenta,m_pars->%s, cHel[ihel][%d],%+d, w_sv[%d], %d ); [model_handling.py at line 1821]  +DEBUG: ('ZERO', 0, -1, 0, 0) [model_handling.py at line 1822]  +DEBUG: call =  vxxxxx( momenta,m_pars->%s, cHel[ihel][%d],%+d, w_sv[%d], %d ); [model_handling.py at line 1821]  +DEBUG: ('ZERO', 1, -1, 1, 1) [model_handling.py at line 1822]  +DEBUG: call =  vxxxxx( momenta,m_pars->%s, cHel[ihel][%d],%+d, w_sv[%d], %d ); [model_handling.py at line 1821]  +DEBUG: ('ZERO', 4, 1, 4, 4) [model_handling.py at line 1822]  +DEBUG: call =  vxxxxx( momenta,m_pars->%s, cHel[ihel][%d],%+d, w_sv[%d], %d ); [model_handling.py at line 1821]  +DEBUG: ('ZERO', 5, 1, 5, 5) [model_handling.py at line 1822]  +DEBUG: call =  vxxxxx( momenta,m_pars->%s, cHel[ihel][%d],%+d, w_sv[%d], %d ); [model_handling.py at line 1821]  +DEBUG: ('ZERO', 6, 1, 6, 6) [model_handling.py at line 1822]  INFO: Created files CPPProcess.h and CPPProcess.cc in directory /data/avalassi/GPU2023/MG5aMC/ghav-mg5amcnlo/CODEGEN_cudacpp_gg_ttggg/SubProcesses/P1_Sigma_sm_gg_ttxggg/. -DEBUG: Entering PLUGIN_OneProcessExporter.edit_CMakeLists [model_handling.py at line 1332]  -DEBUG: Entering PLUGIN_OneProcessExporter.edit_check_sa [model_handling.py at line 1341]  -DEBUG: Entering PLUGIN_OneProcessExporter.edit_mgonGPU [model_handling.py at line 1358]  -DEBUG: Entering PLUGIN_OneProcessExporter.edit_processidfile [model_handling.py at line 1378]  -DEBUG: Entering PLUGIN_OneProcessExporter.edit_testxxx [model_handling.py at line 1408]  -DEBUG: Entering PLUGIN_OneProcessExporter.edit_memorybuffers [model_handling.py at line 1419]  -DEBUG: Entering PLUGIN_OneProcessExporter.edit_memoryaccesscouplings [model_handling.py at line 1430]  -DEBUG: 'Copying test reference file: ', template_ref =  Copying test reference file: /data/avalassi/GPU2023/MG5aMC/ghav-mg5amcnlo/PLUGIN/CUDACPP_SA_OUTPUT/madgraph/iolibs/template_files/../../../test/ref/dump_CPUTest.Sigma_sm_gg_ttxggg.txt [model_handling.py at line 1324]  -Generated helas calls for 1 subprocesses (1240 diagrams) in 5.972 s +DEBUG: Entering PLUGIN_OneProcessExporter.edit_CMakeLists [model_handling.py at line 1343]  +DEBUG: Entering PLUGIN_OneProcessExporter.edit_check_sa [model_handling.py at line 1352]  +DEBUG: Entering PLUGIN_OneProcessExporter.edit_mgonGPU [model_handling.py at line 1369]  +DEBUG: Entering PLUGIN_OneProcessExporter.edit_processidfile [model_handling.py at line 1389]  +DEBUG: Entering PLUGIN_OneProcessExporter.edit_testxxx [model_handling.py at line 1419]  +DEBUG: Entering PLUGIN_OneProcessExporter.edit_memorybuffers [model_handling.py at line 1430]  +DEBUG: Entering PLUGIN_OneProcessExporter.edit_memoryaccesscouplings [model_handling.py at line 1441]  +DEBUG: 'Copying test reference file: ', template_ref =  Copying test reference file: /data/avalassi/GPU2023/MG5aMC/ghav-mg5amcnlo/PLUGIN/CUDACPP_SA_OUTPUT/madgraph/iolibs/template_files/../../../test/ref/dump_CPUTest.Sigma_sm_gg_ttxggg.txt [model_handling.py at line 1335]  +Generated helas calls for 1 subprocesses (1240 diagrams) in 5.770 s DEBUG: Entering PLUGIN_ProcessExporter.convert_model (create the model) [output.py at line 194]  ALOHA: aloha starts to compute helicity amplitudes ALOHA: aloha creates VVV1 routines @@ -214,7 +214,7 @@ ALOHA: aloha creates FFV1 routines ALOHA: aloha creates VVVV1 routines ALOHA: aloha creates VVVV3 routines ALOHA: aloha creates VVVV4 routines -ALOHA: aloha creates 5 routines in 0.296 s +ALOHA: aloha creates 5 routines in 0.298 s VVV1 VVV1 FFV1 @@ -230,25 +230,13 @@ ALOHA: aloha creates 5 routines in 0.296 s FileWriter for /data/avalassi/GPU2023/MG5aMC/ghav-mg5amcnlo/CODEGEN_cudacpp_gg_ttggg/src/./HelAmps_sm.h INFO: Created file HelAmps_sm.h in directory /data/avalassi/GPU2023/MG5aMC/ghav-mg5amcnlo/CODEGEN_cudacpp_gg_ttggg/src/. super_write_set_parameters_onlyfixMajorana (hardcoded=False) -DEBUG: 'pardef_lines size =', len(pardef_lines), ', keys size =', len(pardef_lines.keys()) =  pardef_lines size = 48 , keys size = 48 [model_handling.py at line 724]  -DEBUG: 'parset_pars size =', len(parset_pars) =  parset_pars size = 48 [model_handling.py at line 740]  -DEBUG: 'parset_lines size =', len(parset_lines), ', keys size =', len(parset_lines.keys()) =  parset_lines size = 48 , keys size = 48 [model_handling.py at line 741]  +DEBUG: 'pardef_lines size =', len(pardef_lines), ', keys size =', len(pardef_lines.keys()) =  pardef_lines size = 48 , keys size = 48 [model_handling.py at line 729]  super_write_set_parameters_onlyfixMajorana (hardcoded=True) -DEBUG: 'pardef_lines size =', len(pardef_lines), ', keys size =', len(pardef_lines.keys()) =  pardef_lines size = 3 , keys size = 3 [model_handling.py at line 724]  -DEBUG: 'parset_pars size =', len(parset_pars) =  parset_pars size = 3 [model_handling.py at line 740]  -DEBUG: 'parset_lines size =', len(parset_lines), ', keys size =', len(parset_lines.keys()) =  parset_lines size = 3 , keys size = 3 [model_handling.py at line 741]  -DEBUG: 'pardef_lines size =', len(pardef_lines), ', keys size =', len(pardef_lines.keys()) =  pardef_lines size = 3 , keys size = 3 [model_handling.py at line 724]  -DEBUG: 'parset_pars size =', len(parset_pars) =  parset_pars size = 3 [model_handling.py at line 740]  -DEBUG: 'parset_lines size =', len(parset_lines), ', keys size =', len(parset_lines.keys()) =  parset_lines size = 3 , keys size = 3 [model_handling.py at line 741]  -DEBUG: 'pardef_lines size =', len(pardef_lines), ', keys size =', len(pardef_lines.keys()) =  pardef_lines size = 3 , keys size = 3 [model_handling.py at line 724]  -DEBUG: 'parset_pars size =', len(parset_pars) =  parset_pars size = 3 [model_handling.py at line 740]  -DEBUG: 'parset_lines size =', len(parset_lines), ', keys size =', len(parset_lines.keys()) =  parset_lines size = 3 , keys size = 3 [model_handling.py at line 741]  -DEBUG: 'pardef_lines size =', len(pardef_lines), ', keys size =', len(pardef_lines.keys()) =  pardef_lines size = 3 , keys size = 3 [model_handling.py at line 724]  -DEBUG: 'parset_pars size =', len(parset_pars) =  parset_pars size = 3 [model_handling.py at line 740]  -DEBUG: 'parset_lines size =', len(parset_lines), ', keys size =', len(parset_lines.keys()) =  parset_lines size = 3 , keys size = 3 [model_handling.py at line 741]  -DEBUG: 'pardef_lines size =', len(pardef_lines), ', keys size =', len(pardef_lines.keys()) =  pardef_lines size = 3 , keys size = 3 [model_handling.py at line 724]  -DEBUG: 'parset_pars size =', len(parset_pars) =  parset_pars size = 3 [model_handling.py at line 740]  -DEBUG: 'parset_lines size =', len(parset_lines), ', keys size =', len(parset_lines.keys()) =  parset_lines size = 3 , keys size = 3 [model_handling.py at line 741]  +DEBUG: 'pardef_lines size =', len(pardef_lines), ', keys size =', len(pardef_lines.keys()) =  pardef_lines size = 3 , keys size = 3 [model_handling.py at line 729]  +DEBUG: 'pardef_lines size =', len(pardef_lines), ', keys size =', len(pardef_lines.keys()) =  pardef_lines size = 3 , keys size = 3 [model_handling.py at line 729]  +DEBUG: 'pardef_lines size =', len(pardef_lines), ', keys size =', len(pardef_lines.keys()) =  pardef_lines size = 3 , keys size = 3 [model_handling.py at line 729]  +DEBUG: 'pardef_lines size =', len(pardef_lines), ', keys size =', len(pardef_lines.keys()) =  pardef_lines size = 3 , keys size = 3 [model_handling.py at line 729]  +DEBUG: 'pardef_lines size =', len(pardef_lines), ', keys size =', len(pardef_lines.keys()) =  pardef_lines size = 3 , keys size = 3 [model_handling.py at line 729]  FileWriter for /data/avalassi/GPU2023/MG5aMC/ghav-mg5amcnlo/CODEGEN_cudacpp_gg_ttggg/src/./Parameters_sm.h FileWriter for /data/avalassi/GPU2023/MG5aMC/ghav-mg5amcnlo/CODEGEN_cudacpp_gg_ttggg/src/./Parameters_sm.cc INFO: Created files Parameters_sm.h and Parameters_sm.cc in directory @@ -256,6 +244,6 @@ INFO: /data/avalassi/GPU2023/MG5aMC/ghav-mg5amcnlo/CODEGEN_cudacpp_gg_ttggg/src/ DEBUG: Entering PLUGIN_ProcessExporter.finalize [output.py at line 203]  quit -real 0m11.811s -user 0m11.639s -sys 0m0.116s +real 0m11.557s +user 0m11.387s +sys 0m0.119s diff --git a/epochX/cudacpp/gg_ttggg.sa/SubProcesses/Bridge.h b/epochX/cudacpp/gg_ttggg.sa/SubProcesses/Bridge.h index 4cafe0c997..d7e629cacd 100644 --- a/epochX/cudacpp/gg_ttggg.sa/SubProcesses/Bridge.h +++ b/epochX/cudacpp/gg_ttggg.sa/SubProcesses/Bridge.h @@ -152,32 +152,32 @@ namespace mg5amcCpu #ifdef __CUDACC__ int m_gputhreads; // number of gpu threads (default set from number of events, can be modified) int m_gpublocks; // number of gpu blocks (default set from number of events, can be modified) - mg5amcGpu::DeviceBuffer m_devMomentaF; - mg5amcGpu::DeviceBufferMomenta m_devMomentaC; - mg5amcGpu::DeviceBufferGs m_devGs; - mg5amcGpu::DeviceBufferRndNumHelicity m_devRndHel; - mg5amcGpu::DeviceBufferRndNumColor m_devRndCol; - mg5amcGpu::DeviceBufferMatrixElements m_devMEs; - mg5amcGpu::DeviceBufferSelectedHelicity m_devSelHel; - mg5amcGpu::DeviceBufferSelectedColor m_devSelCol; - mg5amcGpu::PinnedHostBufferGs m_hstGs; - mg5amcGpu::PinnedHostBufferRndNumHelicity m_hstRndHel; - mg5amcGpu::PinnedHostBufferRndNumColor m_hstRndCol; - mg5amcGpu::PinnedHostBufferMatrixElements m_hstMEs; - mg5amcGpu::PinnedHostBufferSelectedHelicity m_hstSelHel; - mg5amcGpu::PinnedHostBufferSelectedColor m_hstSelCol; - std::unique_ptr m_pmek; + DeviceBuffer m_devMomentaF; + DeviceBufferMomenta m_devMomentaC; + DeviceBufferGs m_devGs; + DeviceBufferRndNumHelicity m_devRndHel; + DeviceBufferRndNumColor m_devRndCol; + DeviceBufferMatrixElements m_devMEs; + DeviceBufferSelectedHelicity m_devSelHel; + DeviceBufferSelectedColor m_devSelCol; + PinnedHostBufferGs m_hstGs; + PinnedHostBufferRndNumHelicity m_hstRndHel; + PinnedHostBufferRndNumColor m_hstRndCol; + PinnedHostBufferMatrixElements m_hstMEs; + PinnedHostBufferSelectedHelicity m_hstSelHel; + PinnedHostBufferSelectedColor m_hstSelCol; + std::unique_ptr m_pmek; //static constexpr int s_gputhreadsmin = 16; // minimum number of gpu threads (TEST VALUE FOR MADEVENT) static constexpr int s_gputhreadsmin = 32; // minimum number of gpu threads (DEFAULT) #else - mg5amcCpu::HostBufferMomenta m_hstMomentaC; - mg5amcCpu::HostBufferGs m_hstGs; - mg5amcCpu::HostBufferRndNumHelicity m_hstRndHel; - mg5amcCpu::HostBufferRndNumColor m_hstRndCol; - mg5amcCpu::HostBufferMatrixElements m_hstMEs; - mg5amcCpu::HostBufferSelectedHelicity m_hstSelHel; - mg5amcCpu::HostBufferSelectedColor m_hstSelCol; - std::unique_ptr m_pmek; + HostBufferMomenta m_hstMomentaC; + HostBufferGs m_hstGs; + HostBufferRndNumHelicity m_hstRndHel; + HostBufferRndNumColor m_hstRndCol; + HostBufferMatrixElements m_hstMEs; + HostBufferSelectedHelicity m_hstSelHel; + HostBufferSelectedColor m_hstSelCol; + std::unique_ptr m_pmek; #endif }; @@ -244,12 +244,12 @@ namespace mg5amcCpu } std::cout << "WARNING! Instantiate device Bridge (nevt=" << m_nevt << ", gpublocks=" << m_gpublocks << ", gputhreads=" << m_gputhreads << ", gpublocks*gputhreads=" << m_gpublocks * m_gputhreads << ")" << std::endl; - mg5amcGpu::CPPProcess process( /*verbose=*/false ); - m_pmek.reset( new mg5amcGpu::MatrixElementKernelDevice( m_devMomentaC, m_devGs, m_devRndHel, m_devRndCol, m_devMEs, m_devSelHel, m_devSelCol, m_gpublocks, m_gputhreads ) ); + CPPProcess process( /*verbose=*/false ); + m_pmek.reset( new MatrixElementKernelDevice( m_devMomentaC, m_devGs, m_devRndHel, m_devRndCol, m_devMEs, m_devSelHel, m_devSelCol, m_gpublocks, m_gputhreads ) ); #else std::cout << "WARNING! Instantiate host Bridge (nevt=" << m_nevt << ")" << std::endl; - mg5amcCpu::CPPProcess process( /*verbose=*/false ); - m_pmek.reset( new mg5amcCpu::MatrixElementKernelHost( m_hstMomentaC, m_hstGs, m_hstRndHel, m_hstRndCol, m_hstMEs, m_hstSelHel, m_hstSelCol, m_nevt ) ); + CPPProcess process( /*verbose=*/false ); + m_pmek.reset( new MatrixElementKernelHost( m_hstMomentaC, m_hstGs, m_hstRndHel, m_hstRndCol, m_hstMEs, m_hstSelHel, m_hstSelCol, m_nevt ) ); #endif // __CUDACC__ process.initProc( "../../Cards/param_card.dat" ); } diff --git a/epochX/cudacpp/gg_ttggg.sa/SubProcesses/BridgeKernels.cc b/epochX/cudacpp/gg_ttggg.sa/SubProcesses/BridgeKernels.cc index cef4cb3c71..d58066c9c1 100644 --- a/epochX/cudacpp/gg_ttggg.sa/SubProcesses/BridgeKernels.cc +++ b/epochX/cudacpp/gg_ttggg.sa/SubProcesses/BridgeKernels.cc @@ -9,9 +9,6 @@ #include -constexpr int np4 = CPPProcess::np4; // dimensions of 4-momenta (E,px,py,pz) -constexpr int npar = CPPProcess::npar; // #particles in total (external = initial + final): e.g. 4 for e+ e- -> mu+ mu- - //============================================================================ #ifdef __CUDACC__ @@ -20,6 +17,9 @@ namespace mg5amcGpu namespace mg5amcCpu #endif { + constexpr int np4 = CPPProcess::np4; // dimensions of 4-momenta (E,px,py,pz) + constexpr int npar = CPPProcess::npar; // #particles in total (external = initial + final): e.g. 4 for e+ e- -> mu+ mu- + //-------------------------------------------------------------------------- BridgeKernelBase::BridgeKernelBase( const BufferMomenta& momenta, // input: momenta diff --git a/epochX/cudacpp/gg_ttggg.sa/SubProcesses/MemoryAccessAmplitudes.h b/epochX/cudacpp/gg_ttggg.sa/SubProcesses/MemoryAccessAmplitudes.h index 68f6838b5c..573b3bbbc9 100644 --- a/epochX/cudacpp/gg_ttggg.sa/SubProcesses/MemoryAccessAmplitudes.h +++ b/epochX/cudacpp/gg_ttggg.sa/SubProcesses/MemoryAccessAmplitudes.h @@ -14,142 +14,151 @@ #define MGONGPU_TRIVIAL_AMPLITUDES 1 -//---------------------------------------------------------------------------- - -#ifndef MGONGPU_TRIVIAL_AMPLITUDES - -// A class describing the internal layout of memory buffers for amplitudes -// This implementation uses an AOSOA[npagA][nx2][neppA] where nevt=npagA*neppA -// [If many implementations are used, a suffix _AOSOAv1 should be appended to the class name] -class MemoryAccessAmplitudesBase //_AOSOAv1 +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { -public: - - // Number of Events Per Page in the amplitude AOSOA memory buffer layout - static constexpr int neppA = 1; // AOS (just a test...) + //---------------------------------------------------------------------------- -private: - - friend class MemoryAccessHelper; - friend class KernelAccessHelper; - friend class KernelAccessHelper; - - // The number of floating point components of a complex number - static constexpr int nx2 = mgOnGpu::nx2; - - //-------------------------------------------------------------------------- - // NB all KernelLaunchers assume that memory access can be decomposed as "accessField = decodeRecord( accessRecord )" - // (in other words: first locate the event record for a given event, then locate an element in that record) - //-------------------------------------------------------------------------- +#ifndef MGONGPU_TRIVIAL_AMPLITUDES - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] - static __host__ __device__ inline fptype* - ieventAccessRecord( fptype* buffer, - const int ievt ) + // A class describing the internal layout of memory buffers for amplitudes + // This implementation uses an AOSOA[npagA][nx2][neppA] where nevt=npagA*neppA + // [If many implementations are used, a suffix _AOSOAv1 should be appended to the class name] + class MemoryAccessAmplitudesBase //_AOSOAv1 { - const int ipagA = ievt / neppA; // #event "A-page" - const int ieppA = ievt % neppA; // #event in the current event A-page - constexpr int ix2 = 0; - return &( buffer[ipagA * nx2 * neppA + ix2 * neppA + ieppA] ); // AOSOA[ipagA][ix2][ieppA] - } - - //-------------------------------------------------------------------------- - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, Ts... args ) <===] - // [NB: expand variadic template "Ts... args" to "const int ix2" and rename "Field" as "Ix2"] - static __host__ __device__ inline fptype& - decodeRecord( fptype* buffer, - const int ix2 ) + public: + + // Number of Events Per Page in the amplitude AOSOA memory buffer layout + static constexpr int neppA = 1; // AOS (just a test...) + + private: + + friend class MemoryAccessHelper; + friend class KernelAccessHelper; + friend class KernelAccessHelper; + + // The number of floating point components of a complex number + static constexpr int nx2 = mgOnGpu::nx2; + + //-------------------------------------------------------------------------- + // NB all KernelLaunchers assume that memory access can be decomposed as "accessField = decodeRecord( accessRecord )" + // (in other words: first locate the event record for a given event, then locate an element in that record) + //-------------------------------------------------------------------------- + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] + static __host__ __device__ inline fptype* + ieventAccessRecord( fptype* buffer, + const int ievt ) + { + const int ipagA = ievt / neppA; // #event "A-page" + const int ieppA = ievt % neppA; // #event in the current event A-page + constexpr int ix2 = 0; + return &( buffer[ipagA * nx2 * neppA + ix2 * neppA + ieppA] ); // AOSOA[ipagA][ix2][ieppA] + } + + //-------------------------------------------------------------------------- + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, Ts... args ) <===] + // [NB: expand variadic template "Ts... args" to "const int ix2" and rename "Field" as "Ix2"] + static __host__ __device__ inline fptype& + decodeRecord( fptype* buffer, + const int ix2 ) + { + constexpr int ipagA = 0; + constexpr int ieppA = 0; + return buffer[ipagA * nx2 * neppA + ix2 * neppA + ieppA]; // AOSOA[ipagA][ix2][ieppA] + } + }; + + //---------------------------------------------------------------------------- + + // A class providing access to memory buffers for a given event, based on explicit event numbers + // Its methods use the MemoryAccessHelper templates - note the use of the template keyword in template function instantiations + class MemoryAccessAmplitudes : public MemoryAccessAmplitudesBase { - constexpr int ipagA = 0; - constexpr int ieppA = 0; - return buffer[ipagA * nx2 * neppA + ix2 * neppA + ieppA]; // AOSOA[ipagA][ix2][ieppA] - } -}; + public: -//---------------------------------------------------------------------------- + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] + static constexpr auto ieventAccessRecord = MemoryAccessHelper::ieventAccessRecord; -// A class providing access to memory buffers for a given event, based on explicit event numbers -// Its methods use the MemoryAccessHelper templates - note the use of the template keyword in template function instantiations -class MemoryAccessAmplitudes : public MemoryAccessAmplitudesBase -{ -public: - - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] - static constexpr auto ieventAccessRecord = MemoryAccessHelper::ieventAccessRecord; + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (const) ===> const fptype* ieventAccessRecordConst( const fptype* buffer, const int ievt ) <===] + static constexpr auto ieventAccessRecordConst = MemoryAccessHelper::ieventAccessRecordConst; - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (const) ===> const fptype* ieventAccessRecordConst( const fptype* buffer, const int ievt ) <===] - static constexpr auto ieventAccessRecordConst = MemoryAccessHelper::ieventAccessRecordConst; + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, const int ix2 ) <===] + static constexpr auto decodeRecordIx2 = MemoryAccessHelper::decodeRecord; - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, const int ix2 ) <===] - static constexpr auto decodeRecordIx2 = MemoryAccessHelper::decodeRecord; + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (const) ===> const fptype& decodeRecordConst( const fptype* buffer, const int ix2 ) <===] + static constexpr auto decodeRecordIx2Const = + MemoryAccessHelper::template decodeRecordConst; - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (const) ===> const fptype& decodeRecordConst( const fptype* buffer, const int ix2 ) <===] - static constexpr auto decodeRecordIx2Const = - MemoryAccessHelper::template decodeRecordConst; + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (non-const) ===> fptype& ieventAccessIx2( fptype* buffer, const ievt, const int ix2 ) <===] + static constexpr auto ieventAccessIx2 = + MemoryAccessHelper::template ieventAccessField; - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (non-const) ===> fptype& ieventAccessIx2( fptype* buffer, const ievt, const int ix2 ) <===] - static constexpr auto ieventAccessIx2 = - MemoryAccessHelper::template ieventAccessField; - - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (const) ===> const fptype& ieventAccessIx2Const( const fptype* buffer, const ievt, const int ix2 ) <===] - static constexpr auto ieventAccessIx2Const = - MemoryAccessHelper::template ieventAccessFieldConst; -}; + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (const) ===> const fptype& ieventAccessIx2Const( const fptype* buffer, const ievt, const int ix2 ) <===] + static constexpr auto ieventAccessIx2Const = + MemoryAccessHelper::template ieventAccessFieldConst; + }; #endif // #ifndef MGONGPU_TRIVIAL_AMPLITUDES -//---------------------------------------------------------------------------- + //---------------------------------------------------------------------------- -// A class providing access to memory buffers for a given event, based on implicit kernel rules -// Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations -template -class KernelAccessAmplitudes -{ -public: + // A class providing access to memory buffers for a given event, based on implicit kernel rules + // Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations + template + class KernelAccessAmplitudes + { + public: #ifndef MGONGPU_TRIVIAL_AMPLITUDES - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (non-const) ===> fptype& kernelAccessIx2( fptype* buffer, const int ix2 ) <===] - static constexpr auto kernelAccessIx2 = - KernelAccessHelper::template kernelAccessField; + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (non-const) ===> fptype& kernelAccessIx2( fptype* buffer, const int ix2 ) <===] + static constexpr auto kernelAccessIx2 = + KernelAccessHelper::template kernelAccessField; - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (const) ===> const fptype& kernelAccessIx2Const( const fptype* buffer, const int ix2 ) <===] - static constexpr auto kernelAccessIx2Const = - KernelAccessHelper::template kernelAccessFieldConst; + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (const) ===> const fptype& kernelAccessIx2Const( const fptype* buffer, const int ix2 ) <===] + static constexpr auto kernelAccessIx2Const = + KernelAccessHelper::template kernelAccessFieldConst; #else - static __host__ __device__ inline cxtype_sv* - kernelAccess( fptype* buffer ) - { - return reinterpret_cast( buffer ); - } + static __host__ __device__ inline cxtype_sv* + kernelAccess( fptype* buffer ) + { + return reinterpret_cast( buffer ); + } - static __host__ __device__ inline const cxtype_sv* - kernelAccessConst( const fptype* buffer ) - { - return reinterpret_cast( buffer ); - } + static __host__ __device__ inline const cxtype_sv* + kernelAccessConst( const fptype* buffer ) + { + return reinterpret_cast( buffer ); + } #endif // #ifndef MGONGPU_TRIVIAL_AMPLITUDES -}; + }; + + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- + typedef KernelAccessAmplitudes HostAccessAmplitudes; + typedef KernelAccessAmplitudes DeviceAccessAmplitudes; -typedef KernelAccessAmplitudes HostAccessAmplitudes; -typedef KernelAccessAmplitudes DeviceAccessAmplitudes; + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- +} // end namespace mg5amcGpu/mg5amcCpu #endif // MemoryAccessAmplitudes_H diff --git a/epochX/cudacpp/gg_ttggg.sa/SubProcesses/MemoryAccessCouplings.h b/epochX/cudacpp/gg_ttggg.sa/SubProcesses/MemoryAccessCouplings.h index 15793bbec3..35a3af42e0 100644 --- a/epochX/cudacpp/gg_ttggg.sa/SubProcesses/MemoryAccessCouplings.h +++ b/epochX/cudacpp/gg_ttggg.sa/SubProcesses/MemoryAccessCouplings.h @@ -14,248 +14,257 @@ #include "MemoryAccessMomenta.h" // for MemoryAccessMomentaBase::neppM #include "MemoryBuffers.h" // for HostBufferCouplings::isaligned -//---------------------------------------------------------------------------- - -// A class describing the internal layout of memory buffers for couplings -// This implementation uses an AOSOA[npagC][ndcoup][nx2][neppC] "super-buffer" where nevt=npagC*neppC -// From the "super-buffer" for ndcoup different couplings, use idcoupAccessBuffer to access the buffer for one specific coupling -// [If many implementations are used, a suffix _AOSOAv1 should be appended to the class name] -class MemoryAccessCouplingsBase //_AOSOAv1 +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { -public: - - // Number of Events Per Page in the coupling AOSOA memory buffer layout - static constexpr int neppC = MemoryAccessMomentaBase::neppM; // use the same AOSOA striding as for momenta - - // SANITY CHECK: check that neppC is a power of two - static_assert( ispoweroftwo( neppC ), "neppC is not a power of 2" ); - - //-------------------------------------------------------------------------- - // ** NB! A single super-buffer AOSOA[npagC][ndcoup][nx2][neppC] includes data for ndcoup different couplings ** - // ** NB! The ieventAccessRecord and kernelAccess functions refer to the buffer for one individual coupling ** - // ** NB! Use idcoupAccessBuffer to add a fixed offset and locate the buffer for one given individual coupling ** - //-------------------------------------------------------------------------- - - // Locate the buffer for a single coupling (output) in a memory super-buffer (input) from the given coupling index (input) - // [Signature (non-const) ===> fptype* idcoupAccessBuffer( fptype* buffer, const int idcoup ) <===] - // NB: keep this in public even if exposed through KernelAccessCouplings: nvcc says it is inaccesible otherwise? - static __host__ __device__ inline fptype* - idcoupAccessBuffer( fptype* buffer, // input "super-buffer" - const int idcoup ) - { - constexpr int ipagC = 0; - constexpr int ieppC = 0; - constexpr int ix2 = 0; - // NB! this effectively adds an offset "idcoup * nx2 * neppC" - return &( buffer[ipagC * ndcoup * nx2 * neppC + idcoup * nx2 * neppC + ix2 * neppC + ieppC] ); // AOSOA[ipagC][idcoup][ix2][ieppC] - } - - // Locate the buffer for a single coupling (output) in a memory super-buffer (input) from the given coupling index (input) - // [Signature (const) ===> const fptype* idcoupAccessBufferConst( const fptype* buffer, const int idcoup ) <===] - // NB: keep this in public even if exposed through KernelAccessCouplings: nvcc says it is inaccesible otherwise? - static __host__ __device__ inline const fptype* - idcoupAccessBufferConst( const fptype* buffer, // input "super-buffer" - const int idcoup ) - { - return idcoupAccessBuffer( const_cast( buffer ), idcoup ); - } - -private: + //---------------------------------------------------------------------------- - friend class MemoryAccessHelper; - friend class KernelAccessHelper; - friend class KernelAccessHelper; - - // The number of couplings that dependent on the running alphas QCD in this specific process - static constexpr size_t ndcoup = Parameters_sm_dependentCouplings::ndcoup; - - // The number of floating point components of a complex number - static constexpr int nx2 = mgOnGpu::nx2; - - //-------------------------------------------------------------------------- - // NB all KernelLaunchers assume that memory access can be decomposed as "accessField = decodeRecord( accessRecord )" - // (in other words: first locate the event record for a given event, then locate an element in that record) - //-------------------------------------------------------------------------- - - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] - static __host__ __device__ inline fptype* - ieventAccessRecord( fptype* buffer, - const int ievt ) + // A class describing the internal layout of memory buffers for couplings + // This implementation uses an AOSOA[npagC][ndcoup][nx2][neppC] "super-buffer" where nevt=npagC*neppC + // From the "super-buffer" for ndcoup different couplings, use idcoupAccessBuffer to access the buffer for one specific coupling + // [If many implementations are used, a suffix _AOSOAv1 should be appended to the class name] + class MemoryAccessCouplingsBase //_AOSOAv1 { - const int ipagC = ievt / neppC; // #event "C-page" - const int ieppC = ievt % neppC; // #event in the current event C-page - constexpr int idcoup = 0; - constexpr int ix2 = 0; - return &( buffer[ipagC * ndcoup * nx2 * neppC + idcoup * nx2 * neppC + ix2 * neppC + ieppC] ); // AOSOA[ipagC][idcoup][ix2][ieppC] - } - - //-------------------------------------------------------------------------- - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, Ts... args ) <===] - // [NB: expand variadic template "Ts... args" to "const int ix2" and rename "Field" as "Ix2"] - static __host__ __device__ inline fptype& - decodeRecord( fptype* buffer, - const int ix2 ) + public: + + // Number of Events Per Page in the coupling AOSOA memory buffer layout + static constexpr int neppC = MemoryAccessMomentaBase::neppM; // use the same AOSOA striding as for momenta + + // SANITY CHECK: check that neppC is a power of two + static_assert( ispoweroftwo( neppC ), "neppC is not a power of 2" ); + + //-------------------------------------------------------------------------- + // ** NB! A single super-buffer AOSOA[npagC][ndcoup][nx2][neppC] includes data for ndcoup different couplings ** + // ** NB! The ieventAccessRecord and kernelAccess functions refer to the buffer for one individual coupling ** + // ** NB! Use idcoupAccessBuffer to add a fixed offset and locate the buffer for one given individual coupling ** + //-------------------------------------------------------------------------- + + // Locate the buffer for a single coupling (output) in a memory super-buffer (input) from the given coupling index (input) + // [Signature (non-const) ===> fptype* idcoupAccessBuffer( fptype* buffer, const int idcoup ) <===] + // NB: keep this in public even if exposed through KernelAccessCouplings: nvcc says it is inaccesible otherwise? + static __host__ __device__ inline fptype* + idcoupAccessBuffer( fptype* buffer, // input "super-buffer" + const int idcoup ) + { + constexpr int ipagC = 0; + constexpr int ieppC = 0; + constexpr int ix2 = 0; + // NB! this effectively adds an offset "idcoup * nx2 * neppC" + return &( buffer[ipagC * ndcoup * nx2 * neppC + idcoup * nx2 * neppC + ix2 * neppC + ieppC] ); // AOSOA[ipagC][idcoup][ix2][ieppC] + } + + // Locate the buffer for a single coupling (output) in a memory super-buffer (input) from the given coupling index (input) + // [Signature (const) ===> const fptype* idcoupAccessBufferConst( const fptype* buffer, const int idcoup ) <===] + // NB: keep this in public even if exposed through KernelAccessCouplings: nvcc says it is inaccesible otherwise? + static __host__ __device__ inline const fptype* + idcoupAccessBufferConst( const fptype* buffer, // input "super-buffer" + const int idcoup ) + { + return idcoupAccessBuffer( const_cast( buffer ), idcoup ); + } + + private: + + friend class MemoryAccessHelper; + friend class KernelAccessHelper; + friend class KernelAccessHelper; + + // The number of couplings that dependent on the running alphas QCD in this specific process + static constexpr size_t ndcoup = Parameters_sm_dependentCouplings::ndcoup; + + // The number of floating point components of a complex number + static constexpr int nx2 = mgOnGpu::nx2; + + //-------------------------------------------------------------------------- + // NB all KernelLaunchers assume that memory access can be decomposed as "accessField = decodeRecord( accessRecord )" + // (in other words: first locate the event record for a given event, then locate an element in that record) + //-------------------------------------------------------------------------- + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] + static __host__ __device__ inline fptype* + ieventAccessRecord( fptype* buffer, + const int ievt ) + { + const int ipagC = ievt / neppC; // #event "C-page" + const int ieppC = ievt % neppC; // #event in the current event C-page + constexpr int idcoup = 0; + constexpr int ix2 = 0; + return &( buffer[ipagC * ndcoup * nx2 * neppC + idcoup * nx2 * neppC + ix2 * neppC + ieppC] ); // AOSOA[ipagC][idcoup][ix2][ieppC] + } + + //-------------------------------------------------------------------------- + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, Ts... args ) <===] + // [NB: expand variadic template "Ts... args" to "const int ix2" and rename "Field" as "Ix2"] + static __host__ __device__ inline fptype& + decodeRecord( fptype* buffer, + const int ix2 ) + { + constexpr int ipagC = 0; + constexpr int ieppC = 0; + // NB! the offset "idcoup * nx2 * neppC" has been added in idcoupAccessBuffer + constexpr int idcoup = 0; + return buffer[ipagC * ndcoup * nx2 * neppC + idcoup * nx2 * neppC + ix2 * neppC + ieppC]; // AOSOA[ipagC][idcoup][ix2][ieppC] + } + }; + + //---------------------------------------------------------------------------- + + // A class providing access to memory buffers for a given event, based on explicit event numbers + // Its methods use the MemoryAccessHelper templates - note the use of the template keyword in template function instantiations + class MemoryAccessCouplings : public MemoryAccessCouplingsBase { - constexpr int ipagC = 0; - constexpr int ieppC = 0; - // NB! the offset "idcoup * nx2 * neppC" has been added in idcoupAccessBuffer - constexpr int idcoup = 0; - return buffer[ipagC * ndcoup * nx2 * neppC + idcoup * nx2 * neppC + ix2 * neppC + ieppC]; // AOSOA[ipagC][idcoup][ix2][ieppC] - } -}; - -//---------------------------------------------------------------------------- - -// A class providing access to memory buffers for a given event, based on explicit event numbers -// Its methods use the MemoryAccessHelper templates - note the use of the template keyword in template function instantiations -class MemoryAccessCouplings : public MemoryAccessCouplingsBase -{ -public: - - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] - static constexpr auto ieventAccessRecord = MemoryAccessHelper::ieventAccessRecord; - - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (const) ===> const fptype* ieventAccessRecordConst( const fptype* buffer, const int ievt ) <===] - static constexpr auto ieventAccessRecordConst = MemoryAccessHelper::ieventAccessRecordConst; - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, const int ix2 ) <===] - static constexpr auto decodeRecordIx2 = MemoryAccessHelper::decodeRecord; - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (const) ===> const fptype& decodeRecordConst( const fptype* buffer, const int ix2 ) <===] - static constexpr auto decodeRecordIx2Const = - MemoryAccessHelper::template decodeRecordConst; - - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (non-const) ===> fptype& ieventAccessIx2( fptype* buffer, const ievt, const int ix2 ) <===] - static constexpr auto ieventAccessIx2 = - MemoryAccessHelper::template ieventAccessField; - - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (const) ===> const fptype& ieventAccessIx2Const( const fptype* buffer, const ievt, const int ix2 ) <===] - static constexpr auto ieventAccessIx2Const = - MemoryAccessHelper::template ieventAccessFieldConst; -}; - -//---------------------------------------------------------------------------- - -// A class providing access to memory buffers for a given event, based on implicit kernel rules -// Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations -template -class KernelAccessCouplings -{ -public: - - // Expose selected functions from MemoryAccessCouplingsBase - static constexpr auto idcoupAccessBuffer = MemoryAccessCouplingsBase::idcoupAccessBuffer; - static constexpr auto idcoupAccessBufferConst = MemoryAccessCouplingsBase::idcoupAccessBufferConst; - - // Expose selected functions from MemoryAccessCouplings - static constexpr auto ieventAccessRecordConst = MemoryAccessCouplings::ieventAccessRecordConst; - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (non-const, SCALAR) ===> fptype& kernelAccessIx2( fptype* buffer, const int ix2 ) <===] - static constexpr auto kernelAccessIx2_s = - KernelAccessHelper::template kernelAccessField; - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (const, SCALAR) ===> const fptype& kernelAccessIx2Const( const fptype* buffer, const int ix2 ) <===] - static constexpr auto kernelAccessIx2Const_s = - KernelAccessHelper::template kernelAccessFieldConst; - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (non const, SCALAR OR VECTOR) ===> fptype_sv& kernelAccessIx2( fptype* buffer, const int ix2 ) <===] - static __host__ __device__ inline fptype_sv& - kernelAccessIx2( fptype* buffer, - const int ix2 ) + public: + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] + static constexpr auto ieventAccessRecord = MemoryAccessHelper::ieventAccessRecord; + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (const) ===> const fptype* ieventAccessRecordConst( const fptype* buffer, const int ievt ) <===] + static constexpr auto ieventAccessRecordConst = MemoryAccessHelper::ieventAccessRecordConst; + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, const int ix2 ) <===] + static constexpr auto decodeRecordIx2 = MemoryAccessHelper::decodeRecord; + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (const) ===> const fptype& decodeRecordConst( const fptype* buffer, const int ix2 ) <===] + static constexpr auto decodeRecordIx2Const = + MemoryAccessHelper::template decodeRecordConst; + + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (non-const) ===> fptype& ieventAccessIx2( fptype* buffer, const ievt, const int ix2 ) <===] + static constexpr auto ieventAccessIx2 = + MemoryAccessHelper::template ieventAccessField; + + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (const) ===> const fptype& ieventAccessIx2Const( const fptype* buffer, const ievt, const int ix2 ) <===] + static constexpr auto ieventAccessIx2Const = + MemoryAccessHelper::template ieventAccessFieldConst; + }; + + //---------------------------------------------------------------------------- + + // A class providing access to memory buffers for a given event, based on implicit kernel rules + // Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations + template + class KernelAccessCouplings { - fptype& out = kernelAccessIx2_s( buffer, ix2 ); + public: + + // Expose selected functions from MemoryAccessCouplingsBase + static constexpr auto idcoupAccessBuffer = MemoryAccessCouplingsBase::idcoupAccessBuffer; + static constexpr auto idcoupAccessBufferConst = MemoryAccessCouplingsBase::idcoupAccessBufferConst; + + // Expose selected functions from MemoryAccessCouplings + static constexpr auto ieventAccessRecordConst = MemoryAccessCouplings::ieventAccessRecordConst; + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (non-const, SCALAR) ===> fptype& kernelAccessIx2( fptype* buffer, const int ix2 ) <===] + static constexpr auto kernelAccessIx2_s = + KernelAccessHelper::template kernelAccessField; + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (const, SCALAR) ===> const fptype& kernelAccessIx2Const( const fptype* buffer, const int ix2 ) <===] + static constexpr auto kernelAccessIx2Const_s = + KernelAccessHelper::template kernelAccessFieldConst; + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (non const, SCALAR OR VECTOR) ===> fptype_sv& kernelAccessIx2( fptype* buffer, const int ix2 ) <===] + static __host__ __device__ inline fptype_sv& + kernelAccessIx2( fptype* buffer, + const int ix2 ) + { + fptype& out = kernelAccessIx2_s( buffer, ix2 ); #ifndef MGONGPU_CPPSIMD - return out; + return out; #else - // NB: derived from MemoryAccessMomenta, restricting the implementation to contiguous aligned arrays - constexpr int neppC = MemoryAccessCouplingsBase::neppC; - static_assert( neppC >= neppV ); // ASSUME CONTIGUOUS ARRAYS - static_assert( neppC % neppV == 0 ); // ASSUME CONTIGUOUS ARRAYS - static_assert( mg5amcCpu::HostBufferCouplings::isaligned() ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) - //assert( (size_t)( buffer ) % mgOnGpu::cppAlign == 0 ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) - return mg5amcCpu::fptypevFromAlignedArray( out ); // SIMD bulk load of neppV, use reinterpret_cast + // NB: derived from MemoryAccessMomenta, restricting the implementation to contiguous aligned arrays + constexpr int neppC = MemoryAccessCouplingsBase::neppC; + static_assert( neppC >= neppV ); // ASSUME CONTIGUOUS ARRAYS + static_assert( neppC % neppV == 0 ); // ASSUME CONTIGUOUS ARRAYS + static_assert( mg5amcCpu::HostBufferCouplings::isaligned() ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) + //assert( (size_t)( buffer ) % mgOnGpu::cppAlign == 0 ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) + return mg5amcCpu::fptypevFromAlignedArray( out ); // SIMD bulk load of neppV, use reinterpret_cast #endif - } + } - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (const, SCALAR OR VECTOR) ===> const fptype_sv& kernelAccessIx2Const( const fptype* buffer, const int ix2 ) <===] - static __host__ __device__ inline const fptype_sv& - kernelAccessIx2Const( const fptype* buffer, - const int ix2 ) - { - return kernelAccessIx2( const_cast( buffer ), ix2 ); - } - - /* - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (const, SCALAR OR VECTOR) ===> const fptype_sv& kernelAccessIx2Const( const fptype* buffer, const int ix2 ) <===] - static __host__ __device__ inline const fptype_sv& - kernelAccessIx2Const( const fptype* buffer, - const int ix2 ) - { - const fptype& out = kernelAccessIx2Const_s( buffer, ix2 ); + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (const, SCALAR OR VECTOR) ===> const fptype_sv& kernelAccessIx2Const( const fptype* buffer, const int ix2 ) <===] + static __host__ __device__ inline const fptype_sv& + kernelAccessIx2Const( const fptype* buffer, + const int ix2 ) + { + return kernelAccessIx2( const_cast( buffer ), ix2 ); + } + + /* + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (const, SCALAR OR VECTOR) ===> const fptype_sv& kernelAccessIx2Const( const fptype* buffer, const int ix2 ) <===] + static __host__ __device__ inline const fptype_sv& + kernelAccessIx2Const( const fptype* buffer, + const int ix2 ) + { + const fptype& out = kernelAccessIx2Const_s( buffer, ix2 ); #ifndef MGONGPU_CPPSIMD - return out; + return out; #else - // NB: derived from MemoryAccessMomenta, restricting the implementation to contiguous aligned arrays - constexpr int neppC = MemoryAccessCouplingsBase::neppC; - static_assert( neppC >= neppV ); // ASSUME CONTIGUOUS ARRAYS - static_assert( neppC % neppV == 0 ); // ASSUME CONTIGUOUS ARRAYS - static_assert( mg5amcCpu::HostBufferCouplings::isaligned() ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) - //assert( (size_t)( buffer ) % mgOnGpu::cppAlign == 0 ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) - return mg5amcCpu::fptypevFromAlignedArray( out ); // SIMD bulk load of neppV, use reinterpret_cast + // NB: derived from MemoryAccessMomenta, restricting the implementation to contiguous aligned arrays + constexpr int neppC = MemoryAccessCouplingsBase::neppC; + static_assert( neppC >= neppV ); // ASSUME CONTIGUOUS ARRAYS + static_assert( neppC % neppV == 0 ); // ASSUME CONTIGUOUS ARRAYS + static_assert( mg5amcCpu::HostBufferCouplings::isaligned() ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) + //assert( (size_t)( buffer ) % mgOnGpu::cppAlign == 0 ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) + return mg5amcCpu::fptypevFromAlignedArray( out ); // SIMD bulk load of neppV, use reinterpret_cast #endif - } - */ - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (non const, SCALAR OR VECTOR) ===> cxtype_sv_ref kernelAccess( fptype* buffer ) <===] - static __host__ __device__ inline cxtype_sv_ref - kernelAccess( fptype* buffer ) - { - /* - fptype_sv& real = kernelAccessIx2( buffer, 0 ); - fptype_sv& imag = kernelAccessIx2( buffer, 1 ); - printf( "C_ACCESS::kernelAccess: pbuffer=%p pr=%p pi=%p\n", buffer, &real, &imag ); - return cxtype_sv_ref( real, imag ); - */ - return cxtype_sv_ref( kernelAccessIx2( buffer, 0 ), - kernelAccessIx2( buffer, 1 ) ); - } - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (const, SCALAR OR VECTOR) ===> cxtype_sv kernelAccessConst( const fptype* buffer ) <===] - static __host__ __device__ inline cxtype_sv - kernelAccessConst( const fptype* buffer ) - { - /* - const fptype_sv& real = kernelAccessIx2Const( buffer, 0 ); - const fptype_sv& imag = kernelAccessIx2Const( buffer, 1 ); - printf( "C_ACCESS::kernelAccessConst: pbuffer=%p pr=%p pi=%p\n", buffer, &real, &imag ); - return cxtype_sv( real, imag ); + } */ - return cxtype_sv( kernelAccessIx2Const( buffer, 0 ), - kernelAccessIx2Const( buffer, 1 ) ); - } -}; - -//---------------------------------------------------------------------------- - -typedef KernelAccessCouplings HostAccessCouplings; -typedef KernelAccessCouplings DeviceAccessCouplings; -//---------------------------------------------------------------------------- + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (non const, SCALAR OR VECTOR) ===> cxtype_sv_ref kernelAccess( fptype* buffer ) <===] + static __host__ __device__ inline cxtype_sv_ref + kernelAccess( fptype* buffer ) + { + /* + fptype_sv& real = kernelAccessIx2( buffer, 0 ); + fptype_sv& imag = kernelAccessIx2( buffer, 1 ); + printf( "C_ACCESS::kernelAccess: pbuffer=%p pr=%p pi=%p\n", buffer, &real, &imag ); + return cxtype_sv_ref( real, imag ); + */ + return cxtype_sv_ref( kernelAccessIx2( buffer, 0 ), + kernelAccessIx2( buffer, 1 ) ); + } + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (const, SCALAR OR VECTOR) ===> cxtype_sv kernelAccessConst( const fptype* buffer ) <===] + static __host__ __device__ inline cxtype_sv + kernelAccessConst( const fptype* buffer ) + { + /* + const fptype_sv& real = kernelAccessIx2Const( buffer, 0 ); + const fptype_sv& imag = kernelAccessIx2Const( buffer, 1 ); + printf( "C_ACCESS::kernelAccessConst: pbuffer=%p pr=%p pi=%p\n", buffer, &real, &imag ); + return cxtype_sv( real, imag ); + */ + return cxtype_sv( kernelAccessIx2Const( buffer, 0 ), + kernelAccessIx2Const( buffer, 1 ) ); + } + }; + + //---------------------------------------------------------------------------- + + typedef KernelAccessCouplings HostAccessCouplings; + typedef KernelAccessCouplings DeviceAccessCouplings; + + //---------------------------------------------------------------------------- + +} // end namespace mg5amcGpu/mg5amcCpu #endif // MemoryAccessCouplings_H diff --git a/epochX/cudacpp/gg_ttggg.sa/SubProcesses/MemoryAccessCouplingsFixed.h b/epochX/cudacpp/gg_ttggg.sa/SubProcesses/MemoryAccessCouplingsFixed.h index 81193ab261..dc0d93afff 100644 --- a/epochX/cudacpp/gg_ttggg.sa/SubProcesses/MemoryAccessCouplingsFixed.h +++ b/epochX/cudacpp/gg_ttggg.sa/SubProcesses/MemoryAccessCouplingsFixed.h @@ -13,63 +13,72 @@ //#include "MemoryAccessHelpers.h" -//---------------------------------------------------------------------------- - -// A class describing the internal layout of memory buffers for fixed couplings -// This implementation uses a STRUCT[ndcoup][nx2] "super-buffer" layout: in practice, the cIPC global array -// From the "super-buffer" for ndcoup different couplings, use idcoupAccessBuffer to access the buffer for one specific coupling -// [If many implementations are used, a suffix _Sv1 should be appended to the class name] -class MemoryAccessCouplingsFixedBase //_Sv1 +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { -public: + //---------------------------------------------------------------------------- - // Locate the buffer for a single coupling (output) in a memory super-buffer (input) from the given coupling index (input) - // [Signature (const) ===> const fptype* iicoupAccessBufferConst( const fptype* buffer, const int iicoup ) <===] - static __host__ __device__ inline const fptype* - iicoupAccessBufferConst( const fptype* buffer, // input "super-buffer": in practice, the cIPC global array - const int iicoup ) + // A class describing the internal layout of memory buffers for fixed couplings + // This implementation uses a STRUCT[ndcoup][nx2] "super-buffer" layout: in practice, the cIPC global array + // From the "super-buffer" for ndcoup different couplings, use idcoupAccessBuffer to access the buffer for one specific coupling + // [If many implementations are used, a suffix _Sv1 should be appended to the class name] + class MemoryAccessCouplingsFixedBase //_Sv1 { - constexpr int ix2 = 0; - // NB! this effectively adds an offset "iicoup * nx2" - return &( buffer[iicoup * nx2 + ix2] ); // STRUCT[idcoup][ix2] - } - -private: - - // The number of floating point components of a complex number - static constexpr int nx2 = mgOnGpu::nx2; -}; - -//---------------------------------------------------------------------------- + public: + + // Locate the buffer for a single coupling (output) in a memory super-buffer (input) from the given coupling index (input) + // [Signature (const) ===> const fptype* iicoupAccessBufferConst( const fptype* buffer, const int iicoup ) <===] + static __host__ __device__ inline const fptype* + iicoupAccessBufferConst( const fptype* buffer, // input "super-buffer": in practice, the cIPC global array + const int iicoup ) + { + constexpr int ix2 = 0; + // NB! this effectively adds an offset "iicoup * nx2" + return &( buffer[iicoup * nx2 + ix2] ); // STRUCT[idcoup][ix2] + } + + private: + + // The number of floating point components of a complex number + static constexpr int nx2 = mgOnGpu::nx2; + }; + + //---------------------------------------------------------------------------- + + // A class providing access to memory buffers for a given event, based on implicit kernel rules + // Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations + template + class KernelAccessCouplingsFixed + { + public: -// A class providing access to memory buffers for a given event, based on implicit kernel rules -// Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations -template -class KernelAccessCouplingsFixed -{ -public: + // Expose selected functions from MemoryAccessCouplingsFixedBase + static constexpr auto iicoupAccessBufferConst = MemoryAccessCouplingsFixedBase::iicoupAccessBufferConst; - // Expose selected functions from MemoryAccessCouplingsFixedBase - static constexpr auto iicoupAccessBufferConst = MemoryAccessCouplingsFixedBase::iicoupAccessBufferConst; + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (const, SCALAR OR VECTOR) ===> cxtype_sv kernelAccessConst( const fptype* buffer ) <===] + static __host__ __device__ inline const cxtype_sv + kernelAccessConst( const fptype* buffer ) + { + // TRIVIAL ACCESS to fixed-couplings buffers! + //return cxmake( fptype_sv{ buffer[0] }, fptype_sv{ buffer[1] } ); // NO! BUG #339! + const fptype_sv r_sv = fptype_sv{ 0 } + buffer[0]; + const fptype_sv i_sv = fptype_sv{ 0 } + buffer[1]; + return cxmake( r_sv, i_sv ); // ugly but effective + } + }; - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (const, SCALAR OR VECTOR) ===> cxtype_sv kernelAccessConst( const fptype* buffer ) <===] - static __host__ __device__ inline const cxtype_sv - kernelAccessConst( const fptype* buffer ) - { - // TRIVIAL ACCESS to fixed-couplings buffers! - //return cxmake( fptype_sv{ buffer[0] }, fptype_sv{ buffer[1] } ); // NO! BUG #339! - const fptype_sv r_sv = fptype_sv{ 0 } + buffer[0]; - const fptype_sv i_sv = fptype_sv{ 0 } + buffer[1]; - return cxmake( r_sv, i_sv ); // ugly but effective - } -}; + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- + typedef KernelAccessCouplingsFixed HostAccessCouplingsFixed; + typedef KernelAccessCouplingsFixed DeviceAccessCouplingsFixed; -typedef KernelAccessCouplingsFixed HostAccessCouplingsFixed; -typedef KernelAccessCouplingsFixed DeviceAccessCouplingsFixed; + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- +} // end namespace mg5amcGpu/mg5amcCpu #endif // MemoryAccessCouplingsFixed_H diff --git a/epochX/cudacpp/gg_ttggg.sa/SubProcesses/MemoryAccessDenominators.h b/epochX/cudacpp/gg_ttggg.sa/SubProcesses/MemoryAccessDenominators.h index e76ae65ff9..3bce635718 100644 --- a/epochX/cudacpp/gg_ttggg.sa/SubProcesses/MemoryAccessDenominators.h +++ b/epochX/cudacpp/gg_ttggg.sa/SubProcesses/MemoryAccessDenominators.h @@ -9,15 +9,24 @@ #include "MemoryAccessGs.h" -//---------------------------------------------------------------------------- +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif +{ + //---------------------------------------------------------------------------- + + // A class describing the internal layout of memory buffers for denominators + // This implementation reuses the plain ARRAY[nevt] implementation of MemoryAccessGs -// A class describing the internal layout of memory buffers for denominators -// This implementation reuses the plain ARRAY[nevt] implementation of MemoryAccessGs + typedef KernelAccessGs HostAccessDenominators; + typedef KernelAccessGs DeviceAccessDenominators; -typedef KernelAccessGs HostAccessDenominators; -typedef KernelAccessGs DeviceAccessDenominators; + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- +} // end namespace mg5amcGpu/mg5amcCpu #endif #endif // MemoryAccessDenominators_H diff --git a/epochX/cudacpp/gg_ttggg.sa/SubProcesses/MemoryAccessGs.h b/epochX/cudacpp/gg_ttggg.sa/SubProcesses/MemoryAccessGs.h index 8996c0554c..31311aa375 100644 --- a/epochX/cudacpp/gg_ttggg.sa/SubProcesses/MemoryAccessGs.h +++ b/epochX/cudacpp/gg_ttggg.sa/SubProcesses/MemoryAccessGs.h @@ -12,142 +12,151 @@ #include "MemoryAccessVectors.h" #include "MemoryBuffers.h" // for HostBufferMatrixElements::isaligned -//---------------------------------------------------------------------------- - -// A class describing the internal layout of memory buffers for Gs -// This implementation uses a plain ARRAY[nevt] -// [If many implementations are used, a suffix _ARRAYv1 should be appended to the class name] -class MemoryAccessGsBase //_ARRAYv1 +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { -private: - - friend class MemoryAccessHelper; - friend class KernelAccessHelper; - friend class KernelAccessHelper; - - //-------------------------------------------------------------------------- - // NB all KernelLaunchers assume that memory access can be decomposed as "accessField = decodeRecord( accessRecord )" - // (in other words: first locate the event record for a given event, then locate an element in that record) - //-------------------------------------------------------------------------- - - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] - static __host__ __device__ inline fptype* - ieventAccessRecord( fptype* buffer, - const int ievt ) - { - return &( buffer[ievt] ); // ARRAY[nevt] - } - - //-------------------------------------------------------------------------- + //---------------------------------------------------------------------------- - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, Ts... args ) <===] - // [NB: expand variadic template "Ts... args" to empty and rename "Field" as empty] - static __host__ __device__ inline fptype& - decodeRecord( fptype* buffer ) + // A class describing the internal layout of memory buffers for Gs + // This implementation uses a plain ARRAY[nevt] + // [If many implementations are used, a suffix _ARRAYv1 should be appended to the class name] + class MemoryAccessGsBase //_ARRAYv1 { - constexpr int ievt = 0; - return buffer[ievt]; // ARRAY[nevt] - } -}; - -//---------------------------------------------------------------------------- - -// A class providing access to memory buffers for a given event, based on explicit event numbers -// Its methods use the MemoryAccessHelper templates - note the use of the template keyword in template function instantiations -class MemoryAccessGs : public MemoryAccessGsBase -{ -public: - - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] - static constexpr auto ieventAccessRecord = MemoryAccessHelper::ieventAccessRecord; - - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (const) ===> const fptype* ieventAccessRecordConst( const fptype* buffer, const int ievt ) <===] - static constexpr auto ieventAccessRecordConst = MemoryAccessHelper::ieventAccessRecordConst; - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer ) <===] - static constexpr auto decodeRecord = MemoryAccessHelper::decodeRecord; - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (const) ===> const fptype& decodeRecordConst( const fptype* buffer ) <===] - static constexpr auto decodeRecordConst = - MemoryAccessHelper::template decodeRecordConst<>; - - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (non-const) ===> fptype& ieventAccess( fptype* buffer, const ievt ) <===] - static constexpr auto ieventAccess = - MemoryAccessHelper::template ieventAccessField<>; - - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (const) ===> const fptype& ieventAccessConst( const fptype* buffer, const ievt ) <===] - static constexpr auto ieventAccessConst = - MemoryAccessHelper::template ieventAccessFieldConst<>; -}; - -//---------------------------------------------------------------------------- - -// A class providing access to memory buffers for a given event, based on implicit kernel rules -// Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations -template -class KernelAccessGs -{ -public: - - // Expose selected functions from MemoryAccessGs - static constexpr auto ieventAccessRecord = MemoryAccessGs::ieventAccessRecord; - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (non-const, SCALAR) ===> fptype& kernelAccess( fptype* buffer ) <===] - static constexpr auto kernelAccess_s = - KernelAccessHelper::template kernelAccessField<>; // requires cuda 11.4 - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) - // [Signature (non-const, SCALAR OR VECTOR) ===> fptype_sv& kernelAccess( fptype* buffer ) <===] - static __host__ __device__ inline fptype_sv& - kernelAccess( fptype* buffer ) + private: + + friend class MemoryAccessHelper; + friend class KernelAccessHelper; + friend class KernelAccessHelper; + + //-------------------------------------------------------------------------- + // NB all KernelLaunchers assume that memory access can be decomposed as "accessField = decodeRecord( accessRecord )" + // (in other words: first locate the event record for a given event, then locate an element in that record) + //-------------------------------------------------------------------------- + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] + static __host__ __device__ inline fptype* + ieventAccessRecord( fptype* buffer, + const int ievt ) + { + return &( buffer[ievt] ); // ARRAY[nevt] + } + + //-------------------------------------------------------------------------- + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, Ts... args ) <===] + // [NB: expand variadic template "Ts... args" to empty and rename "Field" as empty] + static __host__ __device__ inline fptype& + decodeRecord( fptype* buffer ) + { + constexpr int ievt = 0; + return buffer[ievt]; // ARRAY[nevt] + } + }; + + //---------------------------------------------------------------------------- + + // A class providing access to memory buffers for a given event, based on explicit event numbers + // Its methods use the MemoryAccessHelper templates - note the use of the template keyword in template function instantiations + class MemoryAccessGs : public MemoryAccessGsBase + { + public: + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] + static constexpr auto ieventAccessRecord = MemoryAccessHelper::ieventAccessRecord; + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (const) ===> const fptype* ieventAccessRecordConst( const fptype* buffer, const int ievt ) <===] + static constexpr auto ieventAccessRecordConst = MemoryAccessHelper::ieventAccessRecordConst; + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer ) <===] + static constexpr auto decodeRecord = MemoryAccessHelper::decodeRecord; + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (const) ===> const fptype& decodeRecordConst( const fptype* buffer ) <===] + static constexpr auto decodeRecordConst = + MemoryAccessHelper::template decodeRecordConst<>; + + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (non-const) ===> fptype& ieventAccess( fptype* buffer, const ievt ) <===] + static constexpr auto ieventAccess = + MemoryAccessHelper::template ieventAccessField<>; + + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (const) ===> const fptype& ieventAccessConst( const fptype* buffer, const ievt ) <===] + static constexpr auto ieventAccessConst = + MemoryAccessHelper::template ieventAccessFieldConst<>; + }; + + //---------------------------------------------------------------------------- + + // A class providing access to memory buffers for a given event, based on implicit kernel rules + // Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations + template + class KernelAccessGs { - fptype& out = kernelAccess_s( buffer ); + public: + + // Expose selected functions from MemoryAccessGs + static constexpr auto ieventAccessRecord = MemoryAccessGs::ieventAccessRecord; + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (non-const, SCALAR) ===> fptype& kernelAccess( fptype* buffer ) <===] + static constexpr auto kernelAccess_s = + KernelAccessHelper::template kernelAccessField<>; // requires cuda 11.4 + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) + // [Signature (non-const, SCALAR OR VECTOR) ===> fptype_sv& kernelAccess( fptype* buffer ) <===] + static __host__ __device__ inline fptype_sv& + kernelAccess( fptype* buffer ) + { + fptype& out = kernelAccess_s( buffer ); #ifndef MGONGPU_CPPSIMD - return out; + return out; #else - // NB: derived from MemoryAccessMomenta, restricting the implementation to contiguous aligned arrays (#435) - static_assert( mg5amcCpu::HostBufferGs::isaligned() ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) - //assert( (size_t)( buffer ) % mgOnGpu::cppAlign == 0 ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) - return mg5amcCpu::fptypevFromAlignedArray( out ); // SIMD bulk load of neppV, use reinterpret_cast + // NB: derived from MemoryAccessMomenta, restricting the implementation to contiguous aligned arrays (#435) + static_assert( mg5amcCpu::HostBufferGs::isaligned() ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) + //assert( (size_t)( buffer ) % mgOnGpu::cppAlign == 0 ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) + return mg5amcCpu::fptypevFromAlignedArray( out ); // SIMD bulk load of neppV, use reinterpret_cast #endif - } - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (const, SCALAR) ===> const fptype& kernelAccessConst( const fptype* buffer ) <===] - static constexpr auto kernelAccessConst_s = - KernelAccessHelper::template kernelAccessFieldConst<>; // requires cuda 11.4 - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) - // [Signature (const, SCALAR OR VECTOR) ===> const fptype_sv& kernelAccess( const fptype* buffer ) <===] - static __host__ __device__ inline const fptype_sv& - kernelAccessConst( const fptype* buffer ) - { - const fptype& out = kernelAccessConst_s( buffer ); + } + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (const, SCALAR) ===> const fptype& kernelAccessConst( const fptype* buffer ) <===] + static constexpr auto kernelAccessConst_s = + KernelAccessHelper::template kernelAccessFieldConst<>; // requires cuda 11.4 + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) + // [Signature (const, SCALAR OR VECTOR) ===> const fptype_sv& kernelAccess( const fptype* buffer ) <===] + static __host__ __device__ inline const fptype_sv& + kernelAccessConst( const fptype* buffer ) + { + const fptype& out = kernelAccessConst_s( buffer ); #ifndef MGONGPU_CPPSIMD - return out; + return out; #else - // NB: derived from MemoryAccessMomenta, restricting the implementation to contiguous aligned arrays (#435) - static_assert( mg5amcCpu::HostBufferGs::isaligned() ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) - //assert( (size_t)( buffer ) % mgOnGpu::cppAlign == 0 ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) - return mg5amcCpu::fptypevFromAlignedArray( out ); // SIMD bulk load of neppV, use reinterpret_cast + // NB: derived from MemoryAccessMomenta, restricting the implementation to contiguous aligned arrays (#435) + static_assert( mg5amcCpu::HostBufferGs::isaligned() ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) + //assert( (size_t)( buffer ) % mgOnGpu::cppAlign == 0 ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) + return mg5amcCpu::fptypevFromAlignedArray( out ); // SIMD bulk load of neppV, use reinterpret_cast #endif - } -}; + } + }; + + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- + typedef KernelAccessGs HostAccessGs; + typedef KernelAccessGs DeviceAccessGs; -typedef KernelAccessGs HostAccessGs; -typedef KernelAccessGs DeviceAccessGs; + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- +} // end namespace mg5amcGpu/mg5amcCpu #endif // MemoryAccessGs_H diff --git a/epochX/cudacpp/gg_ttggg.sa/SubProcesses/MemoryAccessMatrixElements.h b/epochX/cudacpp/gg_ttggg.sa/SubProcesses/MemoryAccessMatrixElements.h index b2a82d9acf..f32e6fea5b 100644 --- a/epochX/cudacpp/gg_ttggg.sa/SubProcesses/MemoryAccessMatrixElements.h +++ b/epochX/cudacpp/gg_ttggg.sa/SubProcesses/MemoryAccessMatrixElements.h @@ -12,126 +12,135 @@ #include "MemoryAccessVectors.h" #include "MemoryBuffers.h" // for HostBufferMatrixElements::isaligned -//---------------------------------------------------------------------------- - -// A class describing the internal layout of memory buffers for matrix elements -// This implementation uses a plain ARRAY[nevt] -// [If many implementations are used, a suffix _ARRAYv1 should be appended to the class name] -class MemoryAccessMatrixElementsBase //_ARRAYv1 +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { -private: - - friend class MemoryAccessHelper; - friend class KernelAccessHelper; - friend class KernelAccessHelper; - - //-------------------------------------------------------------------------- - // NB all KernelLaunchers assume that memory access can be decomposed as "accessField = decodeRecord( accessRecord )" - // (in other words: first locate the event record for a given event, then locate an element in that record) - //-------------------------------------------------------------------------- - - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] - static __host__ __device__ inline fptype* - ieventAccessRecord( fptype* buffer, - const int ievt ) - { - return &( buffer[ievt] ); // ARRAY[nevt] - } + //---------------------------------------------------------------------------- - //-------------------------------------------------------------------------- - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, Ts... args ) <===] - // [NB: expand variadic template "Ts... args" to empty and rename "Field" as empty] - static __host__ __device__ inline fptype& - decodeRecord( fptype* buffer ) + // A class describing the internal layout of memory buffers for matrix elements + // This implementation uses a plain ARRAY[nevt] + // [If many implementations are used, a suffix _ARRAYv1 should be appended to the class name] + class MemoryAccessMatrixElementsBase //_ARRAYv1 { - constexpr int ievt = 0; - return buffer[ievt]; // ARRAY[nevt] - } -}; - -//---------------------------------------------------------------------------- - -// A class providing access to memory buffers for a given event, based on explicit event numbers -// Its methods use the MemoryAccessHelper templates - note the use of the template keyword in template function instantiations -class MemoryAccessMatrixElements : public MemoryAccessMatrixElementsBase -{ -public: - - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] - static constexpr auto ieventAccessRecord = MemoryAccessHelper::ieventAccessRecord; - - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (const) ===> const fptype* ieventAccessRecordConst( const fptype* buffer, const int ievt ) <===] - static constexpr auto ieventAccessRecordConst = MemoryAccessHelper::ieventAccessRecordConst; - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer ) <===] - static constexpr auto decodeRecord = MemoryAccessHelper::decodeRecord; - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (const) ===> const fptype& decodeRecordConst( const fptype* buffer ) <===] - static constexpr auto decodeRecordConst = - MemoryAccessHelper::template decodeRecordConst<>; - - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (non-const) ===> fptype& ieventAccess( fptype* buffer, const ievt ) <===] - static constexpr auto ieventAccess = - MemoryAccessHelper::template ieventAccessField<>; - - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (const) ===> const fptype& ieventAccessConst( const fptype* buffer, const ievt ) <===] - static constexpr auto ieventAccessConst = - MemoryAccessHelper::template ieventAccessFieldConst<>; -}; - -//---------------------------------------------------------------------------- - -// A class providing access to memory buffers for a given event, based on implicit kernel rules -// Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations -template -class KernelAccessMatrixElements -{ -public: - - // Expose selected functions from MemoryAccessMatrixElements - static constexpr auto ieventAccessRecord = MemoryAccessMatrixElements::ieventAccessRecord; - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (non-const, SCALAR) ===> fptype& kernelAccess_s( fptype* buffer ) <===] - static constexpr auto kernelAccess_s = - KernelAccessHelper::template kernelAccessField<>; // requires cuda 11.4 - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) - // [Signature (non const, SCALAR OR VECTOR) ===> fptype_sv& kernelAccess( const fptype* buffer ) <===] - static __host__ __device__ inline fptype_sv& - kernelAccess( fptype* buffer ) + private: + + friend class MemoryAccessHelper; + friend class KernelAccessHelper; + friend class KernelAccessHelper; + + //-------------------------------------------------------------------------- + // NB all KernelLaunchers assume that memory access can be decomposed as "accessField = decodeRecord( accessRecord )" + // (in other words: first locate the event record for a given event, then locate an element in that record) + //-------------------------------------------------------------------------- + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] + static __host__ __device__ inline fptype* + ieventAccessRecord( fptype* buffer, + const int ievt ) + { + return &( buffer[ievt] ); // ARRAY[nevt] + } + + //-------------------------------------------------------------------------- + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, Ts... args ) <===] + // [NB: expand variadic template "Ts... args" to empty and rename "Field" as empty] + static __host__ __device__ inline fptype& + decodeRecord( fptype* buffer ) + { + constexpr int ievt = 0; + return buffer[ievt]; // ARRAY[nevt] + } + }; + + //---------------------------------------------------------------------------- + + // A class providing access to memory buffers for a given event, based on explicit event numbers + // Its methods use the MemoryAccessHelper templates - note the use of the template keyword in template function instantiations + class MemoryAccessMatrixElements : public MemoryAccessMatrixElementsBase + { + public: + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] + static constexpr auto ieventAccessRecord = MemoryAccessHelper::ieventAccessRecord; + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (const) ===> const fptype* ieventAccessRecordConst( const fptype* buffer, const int ievt ) <===] + static constexpr auto ieventAccessRecordConst = MemoryAccessHelper::ieventAccessRecordConst; + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer ) <===] + static constexpr auto decodeRecord = MemoryAccessHelper::decodeRecord; + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (const) ===> const fptype& decodeRecordConst( const fptype* buffer ) <===] + static constexpr auto decodeRecordConst = + MemoryAccessHelper::template decodeRecordConst<>; + + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (non-const) ===> fptype& ieventAccess( fptype* buffer, const ievt ) <===] + static constexpr auto ieventAccess = + MemoryAccessHelper::template ieventAccessField<>; + + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (const) ===> const fptype& ieventAccessConst( const fptype* buffer, const ievt ) <===] + static constexpr auto ieventAccessConst = + MemoryAccessHelper::template ieventAccessFieldConst<>; + }; + + //---------------------------------------------------------------------------- + + // A class providing access to memory buffers for a given event, based on implicit kernel rules + // Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations + template + class KernelAccessMatrixElements { - fptype& out = kernelAccess_s( buffer ); + public: + + // Expose selected functions from MemoryAccessMatrixElements + static constexpr auto ieventAccessRecord = MemoryAccessMatrixElements::ieventAccessRecord; + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (non-const, SCALAR) ===> fptype& kernelAccess_s( fptype* buffer ) <===] + static constexpr auto kernelAccess_s = + KernelAccessHelper::template kernelAccessField<>; // requires cuda 11.4 + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) + // [Signature (non const, SCALAR OR VECTOR) ===> fptype_sv& kernelAccess( const fptype* buffer ) <===] + static __host__ __device__ inline fptype_sv& + kernelAccess( fptype* buffer ) + { + fptype& out = kernelAccess_s( buffer ); #ifndef MGONGPU_CPPSIMD - return out; + return out; #else - // NB: derived from MemoryAccessMomenta, restricting the implementation to contiguous aligned arrays (#435) - static_assert( mg5amcCpu::HostBufferMatrixElements::isaligned() ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) - //assert( (size_t)( buffer ) % mgOnGpu::cppAlign == 0 ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) - return mg5amcCpu::fptypevFromAlignedArray( out ); // SIMD bulk load of neppV, use reinterpret_cast + // NB: derived from MemoryAccessMomenta, restricting the implementation to contiguous aligned arrays (#435) + static_assert( mg5amcCpu::HostBufferMatrixElements::isaligned() ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) + //assert( (size_t)( buffer ) % mgOnGpu::cppAlign == 0 ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) + return mg5amcCpu::fptypevFromAlignedArray( out ); // SIMD bulk load of neppV, use reinterpret_cast #endif - } + } + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (const) ===> const fptype& kernelAccessConst( const fptype* buffer ) <===] + static constexpr auto kernelAccessConst = + KernelAccessHelper::template kernelAccessFieldConst<>; // requires cuda 11.4 + }; - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (const) ===> const fptype& kernelAccessConst( const fptype* buffer ) <===] - static constexpr auto kernelAccessConst = - KernelAccessHelper::template kernelAccessFieldConst<>; // requires cuda 11.4 -}; + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- + typedef KernelAccessMatrixElements HostAccessMatrixElements; + typedef KernelAccessMatrixElements DeviceAccessMatrixElements; -typedef KernelAccessMatrixElements HostAccessMatrixElements; -typedef KernelAccessMatrixElements DeviceAccessMatrixElements; + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- +} // end namespace mg5amcGpu/mg5amcCpu #endif // MemoryAccessMatrixElements_H diff --git a/epochX/cudacpp/gg_ttggg.sa/SubProcesses/MemoryAccessMomenta.h b/epochX/cudacpp/gg_ttggg.sa/SubProcesses/MemoryAccessMomenta.h index 0ac4faa3c7..29266de32c 100644 --- a/epochX/cudacpp/gg_ttggg.sa/SubProcesses/MemoryAccessMomenta.h +++ b/epochX/cudacpp/gg_ttggg.sa/SubProcesses/MemoryAccessMomenta.h @@ -12,261 +12,264 @@ #include "MemoryAccessHelpers.h" #include "MemoryAccessVectors.h" +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) #ifdef __CUDACC__ -using mg5amcGpu::CPPProcess; +namespace mg5amcGpu #else -using mg5amcCpu::CPPProcess; +namespace mg5amcCpu #endif - -//---------------------------------------------------------------------------- - -// A class describing the internal layout of memory buffers for momenta -// This implementation uses an AOSOA[npagM][npar][np4][neppM] where nevt=npagM*neppM -// [If many implementations are used, a suffix _AOSOAv1 should be appended to the class name] -class MemoryAccessMomentaBase //_AOSOAv1 { -public: + //---------------------------------------------------------------------------- + + // A class describing the internal layout of memory buffers for momenta + // This implementation uses an AOSOA[npagM][npar][np4][neppM] where nevt=npagM*neppM + // [If many implementations are used, a suffix _AOSOAv1 should be appended to the class name] + class MemoryAccessMomentaBase //_AOSOAv1 + { + public: - // Number of Events Per Page in the momenta AOSOA memory buffer layout - // (these are all best kept as a compile-time constants: see issue #23) + // Number of Events Per Page in the momenta AOSOA memory buffer layout + // (these are all best kept as a compile-time constants: see issue #23) #ifdef __CUDACC__ /* clang-format off */ - // ----------------------------------------------------------------------------------------------- - // --- GPUs: neppM is best set to a power of 2 times the number of fptype's in a 32-byte cacheline - // --- This is relevant to ensure coalesced access to momenta in global memory - // --- Note that neppR is hardcoded and may differ from neppM and neppV on some platforms - // ----------------------------------------------------------------------------------------------- - //static constexpr int neppM = 64/sizeof(fptype); // 2x 32-byte GPU cache lines (512 bits): 8 (DOUBLE) or 16 (FLOAT) - static constexpr int neppM = 32/sizeof(fptype); // (DEFAULT) 32-byte GPU cache line (256 bits): 4 (DOUBLE) or 8 (FLOAT) - //static constexpr int neppM = 1; // *** NB: this is equivalent to AOS *** (slower: 1.03E9 instead of 1.11E9 in eemumu) + // ----------------------------------------------------------------------------------------------- + // --- GPUs: neppM is best set to a power of 2 times the number of fptype's in a 32-byte cacheline + // --- This is relevant to ensure coalesced access to momenta in global memory + // --- Note that neppR is hardcoded and may differ from neppM and neppV on some platforms + // ----------------------------------------------------------------------------------------------- + //static constexpr int neppM = 64/sizeof(fptype); // 2x 32-byte GPU cache lines (512 bits): 8 (DOUBLE) or 16 (FLOAT) + static constexpr int neppM = 32/sizeof(fptype); // (DEFAULT) 32-byte GPU cache line (256 bits): 4 (DOUBLE) or 8 (FLOAT) + //static constexpr int neppM = 1; // *** NB: this is equivalent to AOS *** (slower: 1.03E9 instead of 1.11E9 in eemumu) #else - // ----------------------------------------------------------------------------------------------- - // --- CPUs: neppM is best set equal to the number of fptype's (neppV) in a vector register - // --- This is relevant to ensure faster access to momenta from C++ memory cache lines - // --- However, neppM is now decoupled from neppV (issue #176) and can be separately hardcoded - // --- In practice, neppR, neppM and neppV could now (in principle) all be different - // ----------------------------------------------------------------------------------------------- + // ----------------------------------------------------------------------------------------------- + // --- CPUs: neppM is best set equal to the number of fptype's (neppV) in a vector register + // --- This is relevant to ensure faster access to momenta from C++ memory cache lines + // --- However, neppM is now decoupled from neppV (issue #176) and can be separately hardcoded + // --- In practice, neppR, neppM and neppV could now (in principle) all be different + // ----------------------------------------------------------------------------------------------- #ifdef MGONGPU_CPPSIMD - static constexpr int neppM = MGONGPU_CPPSIMD; // (DEFAULT) neppM=neppV for optimal performance - //static constexpr int neppM = 64/sizeof(fptype); // maximum CPU vector width (512 bits): 8 (DOUBLE) or 16 (FLOAT) - //static constexpr int neppM = 32/sizeof(fptype); // lower CPU vector width (256 bits): 4 (DOUBLE) or 8 (FLOAT) - //static constexpr int neppM = 1; // *** NB: this is equivalent to AOS *** (slower: 4.66E6 instead of 5.09E9 in eemumu) - //static constexpr int neppM = MGONGPU_CPPSIMD*2; // FOR TESTS + static constexpr int neppM = MGONGPU_CPPSIMD; // (DEFAULT) neppM=neppV for optimal performance + //static constexpr int neppM = 64/sizeof(fptype); // maximum CPU vector width (512 bits): 8 (DOUBLE) or 16 (FLOAT) + //static constexpr int neppM = 32/sizeof(fptype); // lower CPU vector width (256 bits): 4 (DOUBLE) or 8 (FLOAT) + //static constexpr int neppM = 1; // *** NB: this is equivalent to AOS *** (slower: 4.66E6 instead of 5.09E9 in eemumu) + //static constexpr int neppM = MGONGPU_CPPSIMD*2; // FOR TESTS #else - static constexpr int neppM = 1; // (DEFAULT) neppM=neppV for optimal performance (NB: this is equivalent to AOS) + static constexpr int neppM = 1; // (DEFAULT) neppM=neppV for optimal performance (NB: this is equivalent to AOS) #endif #endif /* clang-format on */ - // SANITY CHECK: check that neppM is a power of two - static_assert( ispoweroftwo( neppM ), "neppM is not a power of 2" ); + // SANITY CHECK: check that neppM is a power of two + static_assert( ispoweroftwo( neppM ), "neppM is not a power of 2" ); -private: + private: - friend class MemoryAccessHelper; - friend class KernelAccessHelper; - friend class KernelAccessHelper; + friend class MemoryAccessHelper; + friend class KernelAccessHelper; + friend class KernelAccessHelper; - // The number of components of a 4-momentum - static constexpr int np4 = CPPProcess::np4; + // The number of components of a 4-momentum + static constexpr int np4 = CPPProcess::np4; - // The number of particles in this physics process - static constexpr int npar = CPPProcess::npar; + // The number of particles in this physics process + static constexpr int npar = CPPProcess::npar; - //-------------------------------------------------------------------------- - // NB all KernelLaunchers assume that memory access can be decomposed as "accessField = decodeRecord( accessRecord )" - // (in other words: first locate the event record for a given event, then locate an element in that record) - //-------------------------------------------------------------------------- + //-------------------------------------------------------------------------- + // NB all KernelLaunchers assume that memory access can be decomposed as "accessField = decodeRecord( accessRecord )" + // (in other words: first locate the event record for a given event, then locate an element in that record) + //-------------------------------------------------------------------------- - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] - static __host__ __device__ inline fptype* - ieventAccessRecord( fptype* buffer, - const int ievt ) - { - const int ipagM = ievt / neppM; // #event "M-page" - const int ieppM = ievt % neppM; // #event in the current event M-page - constexpr int ip4 = 0; - constexpr int ipar = 0; - return &( buffer[ipagM * npar * np4 * neppM + ipar * np4 * neppM + ip4 * neppM + ieppM] ); // AOSOA[ipagM][ipar][ip4][ieppM] - } - - //-------------------------------------------------------------------------- - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, Ts... args ) <===] - // [NB: expand variadic template "Ts... args" to "const int ip4, const int ipar" and rename "Field" as "Ip4Ipar"] - static __host__ __device__ inline fptype& - decodeRecord( fptype* buffer, - const int ip4, - const int ipar ) + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] + static __host__ __device__ inline fptype* + ieventAccessRecord( fptype* buffer, + const int ievt ) + { + const int ipagM = ievt / neppM; // #event "M-page" + const int ieppM = ievt % neppM; // #event in the current event M-page + constexpr int ip4 = 0; + constexpr int ipar = 0; + return &( buffer[ipagM * npar * np4 * neppM + ipar * np4 * neppM + ip4 * neppM + ieppM] ); // AOSOA[ipagM][ipar][ip4][ieppM] + } + + //-------------------------------------------------------------------------- + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, Ts... args ) <===] + // [NB: expand variadic template "Ts... args" to "const int ip4, const int ipar" and rename "Field" as "Ip4Ipar"] + static __host__ __device__ inline fptype& + decodeRecord( fptype* buffer, + const int ip4, + const int ipar ) + { + constexpr int ipagM = 0; + constexpr int ieppM = 0; + return buffer[ipagM * npar * np4 * neppM + ipar * np4 * neppM + ip4 * neppM + ieppM]; // AOSOA[ipagM][ipar][ip4][ieppM] + } + }; + + //---------------------------------------------------------------------------- + + // A class providing access to memory buffers for a given event, based on explicit event numbers + // Its methods use the MemoryAccessHelper templates - note the use of the template keyword in template function instantiations + class MemoryAccessMomenta : public MemoryAccessMomentaBase { - constexpr int ipagM = 0; - constexpr int ieppM = 0; - return buffer[ipagM * npar * np4 * neppM + ipar * np4 * neppM + ip4 * neppM + ieppM]; // AOSOA[ipagM][ipar][ip4][ieppM] - } -}; + public: + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] + static constexpr auto ieventAccessRecord = MemoryAccessHelper::ieventAccessRecord; + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (const) ===> const fptype* ieventAccessRecordConst( const fptype* buffer, const int ievt ) <===] + static constexpr auto ieventAccessRecordConst = MemoryAccessHelper::ieventAccessRecordConst; + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, const int ipar, const int ipar ) <===] + static constexpr auto decodeRecordIp4Ipar = MemoryAccessHelper::decodeRecord; + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (const) ===> const fptype& decodeRecordConst( const fptype* buffer, const int ipar, const int ipar ) <===] + static constexpr auto decodeRecordIp4IparConst = + MemoryAccessHelper::template decodeRecordConst; + + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (non-const) ===> fptype& ieventAccessIp4Ipar( fptype* buffer, const ievt, const int ipar, const int ipar ) <===] + static constexpr auto ieventAccessIp4Ipar = + MemoryAccessHelper::template ieventAccessField; + + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (const) ===> const fptype& ieventAccessIp4IparConst( const fptype* buffer, const ievt, const int ipar, const int ipar ) <===] + // DEFAULT VERSION + static constexpr auto ieventAccessIp4IparConst = + MemoryAccessHelper::template ieventAccessFieldConst; + + /* + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (const) ===> const fptype& ieventAccessIp4IparConst( const fptype* buffer, const ievt, const int ipar, const int ipar ) <===] + // DEBUG VERSION WITH PRINTOUTS + static __host__ __device__ inline const fptype& + ieventAccessIp4IparConst( const fptype* buffer, + const int ievt, + const int ip4, + const int ipar ) + { + const fptype& out = MemoryAccessHelper::template ieventAccessFieldConst( buffer, ievt, ip4, ipar ); + printf( "ipar=%2d ip4=%2d ievt=%8d out=%8.3f\n", ipar, ip4, ievt, out ); + return out; + } + */ + }; -//---------------------------------------------------------------------------- + //---------------------------------------------------------------------------- -// A class providing access to memory buffers for a given event, based on explicit event numbers -// Its methods use the MemoryAccessHelper templates - note the use of the template keyword in template function instantiations -class MemoryAccessMomenta : public MemoryAccessMomentaBase -{ -public: - - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] - static constexpr auto ieventAccessRecord = MemoryAccessHelper::ieventAccessRecord; - - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (const) ===> const fptype* ieventAccessRecordConst( const fptype* buffer, const int ievt ) <===] - static constexpr auto ieventAccessRecordConst = MemoryAccessHelper::ieventAccessRecordConst; - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, const int ipar, const int ipar ) <===] - static constexpr auto decodeRecordIp4Ipar = MemoryAccessHelper::decodeRecord; - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (const) ===> const fptype& decodeRecordConst( const fptype* buffer, const int ipar, const int ipar ) <===] - static constexpr auto decodeRecordIp4IparConst = - MemoryAccessHelper::template decodeRecordConst; - - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (non-const) ===> fptype& ieventAccessIp4Ipar( fptype* buffer, const ievt, const int ipar, const int ipar ) <===] - static constexpr auto ieventAccessIp4Ipar = - MemoryAccessHelper::template ieventAccessField; - - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (const) ===> const fptype& ieventAccessIp4IparConst( const fptype* buffer, const ievt, const int ipar, const int ipar ) <===] - // DEFAULT VERSION - static constexpr auto ieventAccessIp4IparConst = - MemoryAccessHelper::template ieventAccessFieldConst; - - /* - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (const) ===> const fptype& ieventAccessIp4IparConst( const fptype* buffer, const ievt, const int ipar, const int ipar ) <===] - // DEBUG VERSION WITH PRINTOUTS - static __host__ __device__ inline const fptype& - ieventAccessIp4IparConst( const fptype* buffer, - const int ievt, - const int ip4, - const int ipar ) + // A class providing access to memory buffers for a given event, based on implicit kernel rules + // Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations + template + class KernelAccessMomenta { - const fptype& out = MemoryAccessHelper::template ieventAccessFieldConst( buffer, ievt, ip4, ipar ); - printf( "ipar=%2d ip4=%2d ievt=%8d out=%8.3f\n", ipar, ip4, ievt, out ); - return out; - } - */ -}; - -//---------------------------------------------------------------------------- - -// A class providing access to memory buffers for a given event, based on implicit kernel rules -// Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations -template -class KernelAccessMomenta -{ -public: - - // Expose selected functions from MemoryAccessMomenta - static constexpr auto ieventAccessRecordConst = MemoryAccessMomenta::ieventAccessRecordConst; - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (non-const, SCALAR) ===> fptype& kernelAccessIp4Ipar( fptype* buffer, const int ipar, const int ipar ) <===] - static constexpr auto kernelAccessIp4Ipar = - KernelAccessHelper::template kernelAccessField; - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (const, SCALAR) ===> const fptype& kernelAccessIp4IparConst( const fptype* buffer, const int ipar, const int ipar ) <===] - // DEFAULT VERSION - static constexpr auto kernelAccessIp4IparConst_s = - KernelAccessHelper::template kernelAccessFieldConst; - - /* - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (const, SCALAR) ===> const fptype& kernelAccessIp4IparConst( const fptype* buffer, const int ipar, const int ipar ) <===] - // DEBUG VERSION WITH PRINTOUTS - static __host__ __device__ inline const fptype& - kernelAccessIp4IparConst_s( const fptype* buffer, + public: + + // Expose selected functions from MemoryAccessMomenta + static constexpr auto ieventAccessRecordConst = MemoryAccessMomenta::ieventAccessRecordConst; + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (non-const, SCALAR) ===> fptype& kernelAccessIp4Ipar( fptype* buffer, const int ipar, const int ipar ) <===] + static constexpr auto kernelAccessIp4Ipar = + KernelAccessHelper::template kernelAccessField; + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (const, SCALAR) ===> const fptype& kernelAccessIp4IparConst( const fptype* buffer, const int ipar, const int ipar ) <===] + // DEFAULT VERSION + static constexpr auto kernelAccessIp4IparConst_s = + KernelAccessHelper::template kernelAccessFieldConst; + + /* + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (const, SCALAR) ===> const fptype& kernelAccessIp4IparConst( const fptype* buffer, const int ipar, const int ipar ) <===] + // DEBUG VERSION WITH PRINTOUTS + static __host__ __device__ inline const fptype& + kernelAccessIp4IparConst_s( const fptype* buffer, + const int ip4, + const int ipar ) + { + const fptype& out = KernelAccessHelper::template kernelAccessFieldConst( buffer, ip4, ipar ); + printf( "ipar=%2d ip4=%2d ievt='kernel' out=%8.3f\n", ipar, ip4, out ); + return out; + } + */ + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (const, SCALAR OR VECTOR) ===> fptype_sv kernelAccessIp4IparConst( const fptype* buffer, const int ipar, const int ipar ) <===] + // FIXME? Eventually return by const reference and support aligned arrays only? + // FIXME? Currently return by value to support also unaligned and arbitrary arrays + static __host__ __device__ inline fptype_sv + kernelAccessIp4IparConst( const fptype* buffer, const int ip4, const int ipar ) - { - const fptype& out = KernelAccessHelper::template kernelAccessFieldConst( buffer, ip4, ipar ); - printf( "ipar=%2d ip4=%2d ievt='kernel' out=%8.3f\n", ipar, ip4, out ); - return out; - } - */ - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (const, SCALAR OR VECTOR) ===> fptype_sv kernelAccessIp4IparConst( const fptype* buffer, const int ipar, const int ipar ) <===] - // FIXME? Eventually return by const reference and support aligned arrays only? - // FIXME? Currently return by value to support also unaligned and arbitrary arrays - static __host__ __device__ inline fptype_sv - kernelAccessIp4IparConst( const fptype* buffer, - const int ip4, - const int ipar ) - { - const fptype& out = kernelAccessIp4IparConst_s( buffer, ip4, ipar ); + { + const fptype& out = kernelAccessIp4IparConst_s( buffer, ip4, ipar ); #ifndef MGONGPU_CPPSIMD - return out; + return out; #else - constexpr int neppM = MemoryAccessMomentaBase::neppM; - constexpr bool useContiguousEventsIfPossible = true; // DEFAULT - //constexpr bool useContiguousEventsIfPossible = false; // FOR PERFORMANCE TESTS (treat as arbitrary array even if it is an AOSOA) - // Use c++17 "if constexpr": compile-time branching - if constexpr( useContiguousEventsIfPossible && ( neppM >= neppV ) && ( neppM % neppV == 0 ) ) - { - //constexpr bool skipAlignmentCheck = true; // FASTEST (SEGFAULTS IF MISALIGNED ACCESS, NEEDS A SANITY CHECK ELSEWHERE!) - constexpr bool skipAlignmentCheck = false; // DEFAULT: A BIT SLOWER BUT SAFER [ALLOWS MISALIGNED ACCESS] - if constexpr( skipAlignmentCheck ) - { - //static bool first=true; if( first ){ std::cout << "WARNING! assume aligned AOSOA, skip check" << std::endl; first=false; } // SLOWER (5.06E6) - // FASTEST? (5.09E6 in eemumu 512y) - // This assumes alignment for momenta1d without checking - causes segmentation fault in reinterpret_cast if not aligned! - return mg5amcCpu::fptypevFromAlignedArray( out ); // use reinterpret_cast - } - else if( (size_t)( buffer ) % mgOnGpu::cppAlign == 0 ) + constexpr int neppM = MemoryAccessMomentaBase::neppM; + constexpr bool useContiguousEventsIfPossible = true; // DEFAULT + //constexpr bool useContiguousEventsIfPossible = false; // FOR PERFORMANCE TESTS (treat as arbitrary array even if it is an AOSOA) + // Use c++17 "if constexpr": compile-time branching + if constexpr( useContiguousEventsIfPossible && ( neppM >= neppV ) && ( neppM % neppV == 0 ) ) { - //static bool first=true; if( first ){ std::cout << "WARNING! aligned AOSOA, reinterpret cast" << std::endl; first=false; } // SLOWER (5.00E6) - // DEFAULT! A tiny bit (<1%) slower because of the alignment check (5.07E6 in eemumu 512y) - // This explicitly checks buffer alignment to avoid segmentation faults in reinterpret_cast - return mg5amcCpu::fptypevFromAlignedArray( out ); // SIMD bulk load of neppV, use reinterpret_cast + //constexpr bool skipAlignmentCheck = true; // FASTEST (SEGFAULTS IF MISALIGNED ACCESS, NEEDS A SANITY CHECK ELSEWHERE!) + constexpr bool skipAlignmentCheck = false; // DEFAULT: A BIT SLOWER BUT SAFER [ALLOWS MISALIGNED ACCESS] + if constexpr( skipAlignmentCheck ) + { + //static bool first=true; if( first ){ std::cout << "WARNING! assume aligned AOSOA, skip check" << std::endl; first=false; } // SLOWER (5.06E6) + // FASTEST? (5.09E6 in eemumu 512y) + // This assumes alignment for momenta1d without checking - causes segmentation fault in reinterpret_cast if not aligned! + return mg5amcCpu::fptypevFromAlignedArray( out ); // use reinterpret_cast + } + else if( (size_t)( buffer ) % mgOnGpu::cppAlign == 0 ) + { + //static bool first=true; if( first ){ std::cout << "WARNING! aligned AOSOA, reinterpret cast" << std::endl; first=false; } // SLOWER (5.00E6) + // DEFAULT! A tiny bit (<1%) slower because of the alignment check (5.07E6 in eemumu 512y) + // This explicitly checks buffer alignment to avoid segmentation faults in reinterpret_cast + return mg5amcCpu::fptypevFromAlignedArray( out ); // SIMD bulk load of neppV, use reinterpret_cast + } + else + { + //static bool first=true; if( first ){ std::cout << "WARNING! AOSOA but no reinterpret cast" << std::endl; first=false; } // SLOWER (4.93E6) + // A bit (1%) slower (5.05E6 in eemumu 512y) + // This does not require buffer alignment, but it requires AOSOA with neppM>=neppV and neppM%neppV==0 + return mg5amcCpu::fptypevFromUnalignedArray( out ); // SIMD bulk load of neppV, do not use reinterpret_cast (fewer SIMD operations) + } } else { - //static bool first=true; if( first ){ std::cout << "WARNING! AOSOA but no reinterpret cast" << std::endl; first=false; } // SLOWER (4.93E6) - // A bit (1%) slower (5.05E6 in eemumu 512y) - // This does not require buffer alignment, but it requires AOSOA with neppM>=neppV and neppM%neppV==0 - return mg5amcCpu::fptypevFromUnalignedArray( out ); // SIMD bulk load of neppV, do not use reinterpret_cast (fewer SIMD operations) + //static bool first=true; if( first ){ std::cout << "WARNING! arbitrary array" << std::endl; first=false; } // SLOWER (5.08E6) + // ?!Used to be much slower, now a tiny bit faster for AOSOA?! (5.11E6 for AOSOA, 4.64E6 for AOS in eemumu 512y) + // This does not even require AOSOA with neppM>=neppV and neppM%neppV==0 (e.g. can be used with AOS neppM==1) + constexpr int ievt0 = 0; // just make it explicit in the code that buffer refers to a given ievt0 and decoderIeppV fetches event ievt0+ieppV + auto decoderIeppv = [buffer, ip4, ipar]( int ieppV ) + -> const fptype& + { return MemoryAccessMomenta::ieventAccessIp4IparConst( buffer, ievt0 + ieppV, ip4, ipar ); }; + return mg5amcCpu::fptypevFromArbitraryArray( decoderIeppv ); // iterate over ieppV in neppV (no SIMD) } +#endif } - else + + // Is this a HostAccess or DeviceAccess class? + // [this is only needed for a warning printout in rambo.h for nparf==1 #358] + static __host__ __device__ inline constexpr bool + isOnDevice() { - //static bool first=true; if( first ){ std::cout << "WARNING! arbitrary array" << std::endl; first=false; } // SLOWER (5.08E6) - // ?!Used to be much slower, now a tiny bit faster for AOSOA?! (5.11E6 for AOSOA, 4.64E6 for AOS in eemumu 512y) - // This does not even require AOSOA with neppM>=neppV and neppM%neppV==0 (e.g. can be used with AOS neppM==1) - constexpr int ievt0 = 0; // just make it explicit in the code that buffer refers to a given ievt0 and decoderIeppV fetches event ievt0+ieppV - auto decoderIeppv = [buffer, ip4, ipar]( int ieppV ) - -> const fptype& - { return MemoryAccessMomenta::ieventAccessIp4IparConst( buffer, ievt0 + ieppV, ip4, ipar ); }; - return mg5amcCpu::fptypevFromArbitraryArray( decoderIeppv ); // iterate over ieppV in neppV (no SIMD) + return onDevice; } -#endif - } + }; - // Is this a HostAccess or DeviceAccess class? - // [this is only needed for a warning printout in rambo.h for nparf==1 #358] - static __host__ __device__ inline constexpr bool - isOnDevice() - { - return onDevice; - } -}; + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- + typedef KernelAccessMomenta HostAccessMomenta; + typedef KernelAccessMomenta DeviceAccessMomenta; -typedef KernelAccessMomenta HostAccessMomenta; -typedef KernelAccessMomenta DeviceAccessMomenta; + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- +} // end namespace mg5amcGpu/mg5amcCpu #endif // MemoryAccessMomenta_H diff --git a/epochX/cudacpp/gg_ttggg.sa/SubProcesses/MemoryAccessNumerators.h b/epochX/cudacpp/gg_ttggg.sa/SubProcesses/MemoryAccessNumerators.h index b373fd6048..b152183b28 100644 --- a/epochX/cudacpp/gg_ttggg.sa/SubProcesses/MemoryAccessNumerators.h +++ b/epochX/cudacpp/gg_ttggg.sa/SubProcesses/MemoryAccessNumerators.h @@ -9,15 +9,24 @@ #include "MemoryAccessGs.h" -//---------------------------------------------------------------------------- +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif +{ + //---------------------------------------------------------------------------- + + // A class describing the internal layout of memory buffers for numerators + // This implementation reuses the plain ARRAY[nevt] implementation of MemoryAccessGs -// A class describing the internal layout of memory buffers for numerators -// This implementation reuses the plain ARRAY[nevt] implementation of MemoryAccessGs + typedef KernelAccessGs HostAccessNumerators; + typedef KernelAccessGs DeviceAccessNumerators; -typedef KernelAccessGs HostAccessNumerators; -typedef KernelAccessGs DeviceAccessNumerators; + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- +} // end namespace mg5amcGpu/mg5amcCpu #endif #endif // MemoryAccessNumerators_H diff --git a/epochX/cudacpp/gg_ttggg.sa/SubProcesses/MemoryAccessWavefunctions.h b/epochX/cudacpp/gg_ttggg.sa/SubProcesses/MemoryAccessWavefunctions.h index f42f0d34ed..5428aaf933 100644 --- a/epochX/cudacpp/gg_ttggg.sa/SubProcesses/MemoryAccessWavefunctions.h +++ b/epochX/cudacpp/gg_ttggg.sa/SubProcesses/MemoryAccessWavefunctions.h @@ -14,147 +14,156 @@ #define MGONGPU_TRIVIAL_WAVEFUNCTIONS 1 -//---------------------------------------------------------------------------- - -#ifndef MGONGPU_TRIVIAL_WAVEFUNCTIONS - -// A class describing the internal layout of memory buffers for wavefunctions -// This implementation uses an AOSOA[npagW][nw6][nx2][neppW] where nevt=npagW*neppW -// [If many implementations are used, a suffix _AOSOAv1 should be appended to the class name] -class MemoryAccessWavefunctionsBase //_AOSOAv1 +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { -public: - - // Number of Events Per Page in the wavefunction AOSOA memory buffer layout - static constexpr int neppW = 1; // AOS (just a test...) - -private: - - friend class MemoryAccessHelper; - friend class KernelAccessHelper; - friend class KernelAccessHelper; - - // The number of components of a (fermion or vector) wavefunction - static constexpr int nw6 = mgOnGpu::nw6; - - // The number of floating point components of a complex number - static constexpr int nx2 = mgOnGpu::nx2; + //---------------------------------------------------------------------------- - //-------------------------------------------------------------------------- - // NB all KernelLaunchers assume that memory access can be decomposed as "accessField = decodeRecord( accessRecord )" - // (in other words: first locate the event record for a given event, then locate an element in that record) - //-------------------------------------------------------------------------- +#ifndef MGONGPU_TRIVIAL_WAVEFUNCTIONS - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] - static __host__ __device__ inline fptype* - ieventAccessRecord( fptype* buffer, - const int ievt ) + // A class describing the internal layout of memory buffers for wavefunctions + // This implementation uses an AOSOA[npagW][nw6][nx2][neppW] where nevt=npagW*neppW + // [If many implementations are used, a suffix _AOSOAv1 should be appended to the class name] + class MemoryAccessWavefunctionsBase //_AOSOAv1 { - const int ipagW = ievt / neppW; // #event "W-page" - const int ieppW = ievt % neppW; // #event in the current event W-page - constexpr int iw6 = 0; - constexpr int ix2 = 0; - return &( buffer[ipagW * nw6 * nx2 * neppW + iw6 * nx2 * neppW + ix2 * neppW + ieppW] ); // AOSOA[ipagW][iw6][ix2][ieppW] - } - - //-------------------------------------------------------------------------- - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, Ts... args ) <===] - // [NB: expand variadic template "Ts... args" to "const int iw6, const int ix2" and rename "Field" as "Iw6Ix2"] - static __host__ __device__ inline fptype& - decodeRecord( fptype* buffer, - const int iw6, - const int ix2 ) + public: + + // Number of Events Per Page in the wavefunction AOSOA memory buffer layout + static constexpr int neppW = 1; // AOS (just a test...) + + private: + + friend class MemoryAccessHelper; + friend class KernelAccessHelper; + friend class KernelAccessHelper; + + // The number of components of a (fermion or vector) wavefunction + static constexpr int nw6 = mgOnGpu::nw6; + + // The number of floating point components of a complex number + static constexpr int nx2 = mgOnGpu::nx2; + + //-------------------------------------------------------------------------- + // NB all KernelLaunchers assume that memory access can be decomposed as "accessField = decodeRecord( accessRecord )" + // (in other words: first locate the event record for a given event, then locate an element in that record) + //-------------------------------------------------------------------------- + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] + static __host__ __device__ inline fptype* + ieventAccessRecord( fptype* buffer, + const int ievt ) + { + const int ipagW = ievt / neppW; // #event "W-page" + const int ieppW = ievt % neppW; // #event in the current event W-page + constexpr int iw6 = 0; + constexpr int ix2 = 0; + return &( buffer[ipagW * nw6 * nx2 * neppW + iw6 * nx2 * neppW + ix2 * neppW + ieppW] ); // AOSOA[ipagW][iw6][ix2][ieppW] + } + + //-------------------------------------------------------------------------- + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, Ts... args ) <===] + // [NB: expand variadic template "Ts... args" to "const int iw6, const int ix2" and rename "Field" as "Iw6Ix2"] + static __host__ __device__ inline fptype& + decodeRecord( fptype* buffer, + const int iw6, + const int ix2 ) + { + constexpr int ipagW = 0; + constexpr int ieppW = 0; + return buffer[ipagW * nw6 * nx2 * neppW + iw6 * nx2 * neppW + ix2 * neppW + ieppW]; // AOSOA[ipagW][iw6][ix2][ieppW] + } + }; + + //---------------------------------------------------------------------------- + + // A class providing access to memory buffers for a given event, based on explicit event numbers + // Its methods use the MemoryAccessHelper templates - note the use of the template keyword in template function instantiations + class MemoryAccessWavefunctions : public MemoryAccessWavefunctionsBase { - constexpr int ipagW = 0; - constexpr int ieppW = 0; - return buffer[ipagW * nw6 * nx2 * neppW + iw6 * nx2 * neppW + ix2 * neppW + ieppW]; // AOSOA[ipagW][iw6][ix2][ieppW] - } -}; - -//---------------------------------------------------------------------------- + public: -// A class providing access to memory buffers for a given event, based on explicit event numbers -// Its methods use the MemoryAccessHelper templates - note the use of the template keyword in template function instantiations -class MemoryAccessWavefunctions : public MemoryAccessWavefunctionsBase -{ -public: + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] + static constexpr auto ieventAccessRecord = MemoryAccessHelper::ieventAccessRecord; - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] - static constexpr auto ieventAccessRecord = MemoryAccessHelper::ieventAccessRecord; + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (const) ===> const fptype* ieventAccessRecordConst( const fptype* buffer, const int ievt ) <===] + static constexpr auto ieventAccessRecordConst = MemoryAccessHelper::ieventAccessRecordConst; - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (const) ===> const fptype* ieventAccessRecordConst( const fptype* buffer, const int ievt ) <===] - static constexpr auto ieventAccessRecordConst = MemoryAccessHelper::ieventAccessRecordConst; + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, const int iw6, const int ix2 ) <===] + static constexpr auto decodeRecordIw6Ix2 = MemoryAccessHelper::decodeRecord; - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, const int iw6, const int ix2 ) <===] - static constexpr auto decodeRecordIw6Ix2 = MemoryAccessHelper::decodeRecord; + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (const) ===> const fptype& decodeRecordConst( const fptype* buffer, const int iw6, const int ix2 ) <===] + static constexpr auto decodeRecordIw6Ix2Const = + MemoryAccessHelper::template decodeRecordConst; - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (const) ===> const fptype& decodeRecordConst( const fptype* buffer, const int iw6, const int ix2 ) <===] - static constexpr auto decodeRecordIw6Ix2Const = - MemoryAccessHelper::template decodeRecordConst; + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (non-const) ===> fptype& ieventAccessIw6Ix2( fptype* buffer, const ievt, const int iw6, const int ix2 ) <===] + static constexpr auto ieventAccessIw6Ix2 = + MemoryAccessHelper::template ieventAccessField; - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (non-const) ===> fptype& ieventAccessIw6Ix2( fptype* buffer, const ievt, const int iw6, const int ix2 ) <===] - static constexpr auto ieventAccessIw6Ix2 = - MemoryAccessHelper::template ieventAccessField; - - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (const) ===> const fptype& ieventAccessIw6Ix2Const( const fptype* buffer, const ievt, const int iw6, const int ix2 ) <===] - static constexpr auto ieventAccessIw6Ix2Const = - MemoryAccessHelper::template ieventAccessFieldConst; -}; + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (const) ===> const fptype& ieventAccessIw6Ix2Const( const fptype* buffer, const ievt, const int iw6, const int ix2 ) <===] + static constexpr auto ieventAccessIw6Ix2Const = + MemoryAccessHelper::template ieventAccessFieldConst; + }; #endif // #ifndef MGONGPU_TRIVIAL_WAVEFUNCTIONS -//---------------------------------------------------------------------------- + //---------------------------------------------------------------------------- -// A class providing access to memory buffers for a given event, based on implicit kernel rules -// Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations -template -class KernelAccessWavefunctions -{ -public: + // A class providing access to memory buffers for a given event, based on implicit kernel rules + // Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations + template + class KernelAccessWavefunctions + { + public: #ifndef MGONGPU_TRIVIAL_WAVEFUNCTIONS - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (non-const) ===> fptype& kernelAccessIw6Ix2( fptype* buffer, const int iw6, const int ix2 ) <===] - static constexpr auto kernelAccessIw6Ix2 = - KernelAccessHelper::template kernelAccessField; + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (non-const) ===> fptype& kernelAccessIw6Ix2( fptype* buffer, const int iw6, const int ix2 ) <===] + static constexpr auto kernelAccessIw6Ix2 = + KernelAccessHelper::template kernelAccessField; - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (const) ===> const fptype& kernelAccessIw6Ix2Const( const fptype* buffer, const int iw6, const int ix2 ) <===] - static constexpr auto kernelAccessIw6Ix2Const = - KernelAccessHelper::template kernelAccessFieldConst; + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (const) ===> const fptype& kernelAccessIw6Ix2Const( const fptype* buffer, const int iw6, const int ix2 ) <===] + static constexpr auto kernelAccessIw6Ix2Const = + KernelAccessHelper::template kernelAccessFieldConst; #else - static __host__ __device__ inline cxtype_sv* - kernelAccess( fptype* buffer ) - { - return reinterpret_cast( buffer ); - } + static __host__ __device__ inline cxtype_sv* + kernelAccess( fptype* buffer ) + { + return reinterpret_cast( buffer ); + } - static __host__ __device__ inline const cxtype_sv* - kernelAccessConst( const fptype* buffer ) - { - return reinterpret_cast( buffer ); - } + static __host__ __device__ inline const cxtype_sv* + kernelAccessConst( const fptype* buffer ) + { + return reinterpret_cast( buffer ); + } #endif // #ifndef MGONGPU_TRIVIAL_WAVEFUNCTIONS -}; + }; + + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- + typedef KernelAccessWavefunctions HostAccessWavefunctions; + typedef KernelAccessWavefunctions DeviceAccessWavefunctions; -typedef KernelAccessWavefunctions HostAccessWavefunctions; -typedef KernelAccessWavefunctions DeviceAccessWavefunctions; + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- +} // end namespace mg5amcGpu/mg5amcCpu #endif // MemoryAccessWavefunctions_H diff --git a/epochX/cudacpp/gg_ttggg.sa/SubProcesses/cudacpp.mk b/epochX/cudacpp/gg_ttggg.sa/SubProcesses/cudacpp.mk index a0397e9ecc..c2f7b8e0f6 100644 --- a/epochX/cudacpp/gg_ttggg.sa/SubProcesses/cudacpp.mk +++ b/epochX/cudacpp/gg_ttggg.sa/SubProcesses/cudacpp.mk @@ -76,7 +76,7 @@ endif CXXFLAGS = $(OPTFLAGS) -std=c++17 $(INCFLAGS) -Wall -Wshadow -Wextra ifeq ($(shell $(CXX) --version | grep ^nvc++),) -CXXFLAGS+= -ffast-math # see issue #117 +CXXFLAGS += -ffast-math # see issue #117 endif ###CXXFLAGS+= -Ofast # performance is not different from --fast-math ###CXXFLAGS+= -g # FOR DEBUGGING ONLY @@ -122,7 +122,7 @@ ifneq ($(wildcard $(CUDA_HOME)/bin/nvcc),) CUINC = -I$(CUDA_HOME)/include/ CURANDLIBFLAGS = -L$(CUDA_HOME)/lib64/ -lcurand # NB: -lcuda is not needed here! CUOPTFLAGS = -lineinfo - CUFLAGS = $(OPTFLAGS) $(CUOPTFLAGS) $(INCFLAGS) $(CUINC) $(USE_NVTX) $(CUARCHFLAGS) -use_fast_math + CUFLAGS = $(foreach opt, $(OPTFLAGS), -Xcompiler $(opt)) $(CUOPTFLAGS) $(INCFLAGS) $(CUINC) $(USE_NVTX) $(CUARCHFLAGS) -use_fast_math ###CUFLAGS += -Xcompiler -Wall -Xcompiler -Wextra -Xcompiler -Wshadow ###NVCC_VERSION = $(shell $(NVCC) --version | grep 'Cuda compilation tools' | cut -d' ' -f5 | cut -d, -f1) CUFLAGS += -std=c++17 # need CUDA >= 11.2 (see #333): this is enforced in mgOnGpuConfig.h @@ -142,6 +142,8 @@ else override CUINC= override CURANDLIBFLAGS= endif +export NVCC +export CUFLAGS # Set the host C++ compiler for nvcc via "-ccbin " # (NB issue #505: this must be a single word, "clang++ --gcc-toolchain..." is not supported) @@ -439,7 +441,7 @@ endif # Target (and build options): debug MAKEDEBUG= -debug: OPTFLAGS = -g -O0 -DDEBUG2 +debug: OPTFLAGS = -g -O0 debug: CUOPTFLAGS = -G debug: MAKEDEBUG := debug debug: all.$(TAG) @@ -468,9 +470,9 @@ $(BUILDDIR)/%.o : %.cc *.h ../../src/*.h $(BUILDDIR)/.build.$(TAG) @if [ ! -d $(BUILDDIR) ]; then echo "mkdir -p $(BUILDDIR)"; mkdir -p $(BUILDDIR); fi $(CXX) $(CPPFLAGS) $(CXXFLAGS) -fPIC -c $< -o $@ -# Apply special build flags only to CrossSectionKernel.cc and gCrossSectionKernel.cu (no fast math, see #117) +# Apply special build flags only to CrossSectionKernel.cc and gCrossSectionKernel.cu (no fast math, see #117 and #516) ifeq ($(shell $(CXX) --version | grep ^nvc++),) -$(BUILDDIR)/CrossSectionKernels.o: CXXFLAGS += -fno-fast-math +$(BUILDDIR)/CrossSectionKernels.o: CXXFLAGS := $(filter-out -ffast-math,$(CXXFLAGS)) $(BUILDDIR)/CrossSectionKernels.o: CXXFLAGS += -fno-fast-math ifneq ($(NVCC),) $(BUILDDIR)/gCrossSectionKernels.o: CUFLAGS += -Xcompiler -fno-fast-math diff --git a/epochX/cudacpp/gg_ttggg.sa/SubProcesses/runTest.cc b/epochX/cudacpp/gg_ttggg.sa/SubProcesses/runTest.cc index 572e28aaea..df7488178e 100644 --- a/epochX/cudacpp/gg_ttggg.sa/SubProcesses/runTest.cc +++ b/epochX/cudacpp/gg_ttggg.sa/SubProcesses/runTest.cc @@ -2,6 +2,9 @@ // Licensed under the GNU Lesser General Public License (version 3 or later). // Created by: S. Hageboeck (Nov 2020) for the MG5aMC CUDACPP plugin. // Further modified by: S. Hageboeck, O. Mattelaer, S. Roiser, A. Valassi (2020-2023) for the MG5aMC CUDACPP plugin. +//---------------------------------------------------------------------------- +// Use ./runTest.exe --gtest_filter=*xxx to run only testxxx.cc tests +//---------------------------------------------------------------------------- #include "mgOnGpuConfig.h" diff --git a/epochX/cudacpp/gg_ttggg.sa/SubProcesses/testmisc.cc b/epochX/cudacpp/gg_ttggg.sa/SubProcesses/testmisc.cc index 989aba1fdc..895d6eeb56 100644 --- a/epochX/cudacpp/gg_ttggg.sa/SubProcesses/testmisc.cc +++ b/epochX/cudacpp/gg_ttggg.sa/SubProcesses/testmisc.cc @@ -3,7 +3,7 @@ // Created by: A. Valassi (Jan 2022) for the MG5aMC CUDACPP plugin. // Further modified by: A. Valassi (2022-2023) for the MG5aMC CUDACPP plugin. //---------------------------------------------------------------------------- -// Use ./runTest.exe --gtest_filter=*misc to run only this test +// Use ./runTest.exe --gtest_filter=*misc to run only testmisc.cc tests //---------------------------------------------------------------------------- #include "mgOnGpuConfig.h" @@ -25,33 +25,48 @@ #define XTESTID( s ) TESTID( s ) +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif +{ #ifdef MGONGPU_CPPSIMD /* clang-format off */ -bool maskand( const bool_v& mask ){ bool out = true; for ( int i=0; i #include +#include // debug #701 (see https://stackoverflow.com/a/17473528) #include #include #include @@ -28,16 +32,47 @@ #define XTESTID( s ) TESTID( s ) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif +{ + std::string FPEhandlerMessage = "unknown"; + int FPEhandlerIevt = -1; + inline void FPEhandler( int sig ) + { +#ifdef __CUDACC__ + std::cerr << "Floating Point Exception (GPU): '" << FPEhandlerMessage << "' ievt=" << FPEhandlerIevt << std::endl; +#else + std::cerr << "Floating Point Exception (CPU neppV=" << neppV << "): '" << FPEhandlerMessage << "' ievt=" << FPEhandlerIevt << std::endl; +#endif + exit( 0 ); + } +} + TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) { +#ifdef __CUDACC__ + using namespace mg5amcGpu; +#else + using namespace mg5amcCpu; +#endif +#ifndef __APPLE__ // test #701 (except on MacOS where feenableexcept is not defined #730) + const bool enableFPE = !getenv( "CUDACPP_RUNTIME_DISABLEFPE" ); + if( enableFPE ) + { + feenableexcept( FE_INVALID | FE_DIVBYZERO | FE_OVERFLOW | FE_UNDERFLOW ); // debug #701 + signal( SIGFPE, FPEhandler ); + } +#endif constexpr bool dumpEvents = false; // dump the expected output of the test? constexpr bool testEvents = !dumpEvents; // run the test? constexpr fptype toleranceXXXs = std::is_same::value ? 1.E-15 : 1.E-5; // Constant parameters constexpr int neppM = MemoryAccessMomenta::neppM; // AOSOA layout - using mgOnGpu::neppV; constexpr int np4 = CPPProcess::np4; - const int nevt = 16; // 12 independent tests plus 4 duplicates (need a multiple of 8 for floats or for '512z') + const int nevt = 32; // 12 independent tests plus 20 duplicates (need a multiple of 16 for floats '512z') assert( nevt % neppM == 0 ); // nevt must be a multiple of neppM assert( nevt % neppV == 0 ); // nevt must be a multiple of neppV // Fill in the input momenta @@ -46,24 +81,41 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) #else mg5amcCpu::HostBufferMomenta hstMomenta( nevt ); // AOSOA[npagM][npar=4][np4=4][neppM] #endif /* clang-format off */ + // NB NEW TESTS FOR DEBUGGING #701: KEEP TWO SEPARATE SETS (16-SIMD-VECTORS!) OF TESTS FOR M==0 AND M!=0! const fptype par0[np4 * nevt] = // AOS[nevt][np4] { - 500, 0, 0, 500, // #0 (m=0 pT=0 E=pz>0) - 500, 0, 0, -500, // #1 (m=0 pT=0 -E=pz<0) - 500, 300, 400, 0, // #2 (m=0 pT>0 pz=0) - 500, 180, 240, 400, // #3 (m=0 pT>0 pz>0) - 500, 180, 240, -400, // #4 (m=0 pT>0 pz<0) - 500, 0, 0, 0, // #5 (m=50>0 pT=0 pz=0) - 500, 0, 0, 300, // #6 (m=40>0 pT=0 pz>0) - 500, 0, 0, -300, // #7 (m=40>0 pT=0 pz<0) - 500, 180, 240, 0, // #8 (m=40>0 pT>0 pz=0) - 500, -240, -180, 0, // #9 (m=40>0 pT>0 pz=0) - 500, 180, 192, 144, // #10 (m=40>0 pT>0 pz>0) - 500, 180, 192, -144, // #11 (m=40>0 pT>0 pz<0) - 500, 0, 0, 500, // DUPLICATE #12 == #0 (m=0 pT=0 E=pz>0) - 500, 0, 0, -500, // DUPLICATE #13 == #1 (m=0 pT=0 -E=pz<0) - 500, 300, 400, 0, // DUPLICATE #14 == #2 (m=0 pT>0 pz=0) - 500, 180, 240, 400 // DUPLICATE #15 == #3 (m=0 pT>0 pz>0) + 500, 0, 0, 500, // #0 (m=0 pT=0 E=pz>0) + 500, 0, 0, -500, // #1 (m=0 pT=0 -E=pz<0) + 500, 300, 400, 0, // #2 (m=0 pT>0 pz=0) + 500, 180, 240, 400, // #3 (m=0 pT>0 pz>0) + 500, 180, 240, -400, // #4 (m=0 pT>0 pz<0) + 500, 0, 0, 500, // #5 DUPLICATE == #0 (m=0 pT=0 E=pz>0) + 500, 0, 0, -500, // #6 DUPLICATE == #1 (m=0 pT=0 -E=pz<0) + 500, 300, 400, 0, // #7 DUPLICATE == #2 (m=0 pT>0 pz=0) + 500, 180, 240, 400, // #8 DUPLICATE == #3 (m=0 pT>0 pz>0) + 500, 180, 240, -400, // #9 DUPLICATE == #4 (m=0 pT>0 pz<0) + 500, 0, 0, 500, // #10 DUPLICATE == #0 (m=0 pT=0 E=pz>0) + 500, 0, 0, -500, // #11 DUPLICATE == #1 (m=0 pT=0 -E=pz<0) + 500, 300, 400, 0, // #12 DUPLICATE == #2 (m=0 pT>0 pz=0) + 500, 180, 240, 400, // #13 DUPLICATE == #3 (m=0 pT>0 pz>0) + 500, 180, 240, -400, // #14 DUPLICATE == #4 (m=0 pT>0 pz<0) + 500, 0, 0, 500, // #15 DUPLICATE == #0 (m=0 pT=0 E=pz>0) + 500, 0, 0, 0, // #16 (m=50>0 pT=0 pz=0) + 500, 0, 0, 300, // #17 (m=40>0 pT=0 pz>0) + 500, 0, 0, -300, // #18 (m=40>0 pT=0 pz<0) + 500, 180, 240, 0, // #19 (m=40>0 pT>0 pz=0) + 500, -240, -180, 0, // #20 (m=40>0 pT>0 pz=0) + 500, 180, 192, 144, // #21 (m=40>0 pT>0 pz>0) + 500, 180, 192, -144, // #22 (m=40>0 pT>0 pz<0) + 500, 0, 0, 0, // #23 DUPLICATE == #16 (m=50>0 pT=0 pz=0) + 500, 0, 0, 300, // #24 DUPLICATE == #17 (m=40>0 pT=0 pz>0) + 500, 0, 0, -300, // #25 DUPLICATE == #18 (m=40>0 pT=0 pz<0) + 500, 180, 240, 0, // #26 DUPLICATE == #19 (m=40>0 pT>0 pz=0) + 500, -240, -180, 0, // #27 DUPLICATE == #20 (m=40>0 pT>0 pz=0) + 500, 180, 192, 144, // #28 DUPLICATE == #21 (m=40>0 pT>0 pz>0) + 500, 180, 192, -144, // #29 DUPLICATE == #22 (m=40>0 pT>0 pz<0) + 500, 0, 0, 0, // #30 DUPLICATE == #16 (m=50>0 pT=0 pz=0) + 500, 0, 0, 300 // #31 DUPLICATE == #17 (m=40>0 pT=0 pz>0) }; /* clang-format on */ // Array initialization: zero-out as "{0}" (C and C++) or as "{}" (C++ only) // See https://en.cppreference.com/w/c/language/array_initialization#Notes @@ -99,7 +151,15 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) constexpr int nw6 = CPPProcess::nw6; // dimensions of each wavefunction (HELAS KEK 91-11): e.g. 6 for e+ e- -> mu+ mu- (fermions and vectors) int itest = 0; // index on the expected output vector std::ofstream dumpFile; - if( dumpEvents ) dumpFile.open( dumpFileName, std::ios::trunc ); + if( dumpEvents ) + { + dumpFile.open( dumpFileName, std::ios::trunc ); + dumpFile << " // Copyright (C) 2020-2023 CERN and UCLouvain." << std::endl + << " // Licensed under the GNU Lesser General Public License (version 3 or later)." << std::endl + << " // Created by: A. Valassi (Apr 2021) for the MG5aMC CUDACPP plugin." << std::endl + << " // Further modified by: A. Valassi (2021-2023) for the MG5aMC CUDACPP plugin." << std::endl; + } + // Lambda function for dumping wavefunctions auto dumpwf6 = [&]( std::ostream& out, const cxtype_sv wf[6], const char* xxx, int ievt, int nsp, fptype mass ) { out << std::setprecision( 15 ) << std::scientific; @@ -129,6 +189,7 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) } out << std::defaultfloat; }; + // Lambda function for testing wavefunctions (1) auto testwf6 = [&]( const cxtype_sv wf[6], const char* xxx, int ievt, int nsp, fptype mass ) { if( dumpEvents ) dumpwf6( dumpFile, wf, xxx, ievt, nsp, mass ); @@ -170,6 +231,7 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) } itest++; }; + // Lambda function for testing wavefunctions (2) auto testwf6two = [&]( const cxtype_sv wf[6], const cxtype_sv expwf[6], const char* xxx, int ievt ) { if( testEvents ) @@ -213,6 +275,32 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) } } }; + // Lambda function for resetting hstMomenta to the values of par0 + // This is needed in each test because hstMomenta may have been modified to ensure a function like ipzxxx can be used (#701) + auto resetHstMomentaToPar0 = [&]() + { + for( int ievt = 0; ievt < nevt; ievt++ ) + for( int ip4 = 0; ip4 < np4; ip4++ ) + MemoryAccessMomenta::ieventAccessIp4Ipar( hstMomenta.data(), ievt, ip4, ipar0 ) = par0[ievt * np4 + ip4]; // AOS to AOSOA + }; + // Lambda function for preparing the test of one specific function + const bool debug = false; + auto prepareTest = [&]( const char* xxx, int ievt ) + { + if( debug ) std::cout << "Prepare test " << xxx << " ievt=" << ievt << std::endl; + resetHstMomentaToPar0(); + FPEhandlerMessage = xxx; + FPEhandlerIevt = ievt; + if( std::string( xxx ) == "ipzxxx" || std::string( xxx ) == "opzxxx" || std::string( xxx ) == "imzxxx" || std::string( xxx ) == "omzxxx" || std::string( xxx ) == "ixzxxx" || std::string( xxx ) == "oxzxxx" ) + { + // Modify hstMomenta so that ALL events have the momenta of a single ievt + // This ensures that a function like ipzxxx (which assumes pZ>0) can be used without triggering FPEs (#701) + // This is done by filling the full SIMD vector with the value of ievt, which was already tested to respect the relevant assumptions + for( int jevt = 0; jevt < nevt; jevt++ ) + for( int ip4 = 0; ip4 < np4; ip4++ ) + MemoryAccessMomenta::ieventAccessIp4Ipar( hstMomenta.data(), jevt, ip4, ipar0 ) = par0[ievt * np4 + ip4]; // AOS to AOSOA + } + }; // Array initialization: zero-out as "{0}" (C and C++) or as "{}" (C++ only) // See https://en.cppreference.com/w/c/language/array_initialization#Notes cxtype_sv outwfI[6] = {}; // last result of ixxxxx (mass==0) @@ -224,6 +312,7 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) fptype* fp_outwf = reinterpret_cast( outwf ); // proof of concept for using fptype* in the interface fptype* fp_outwf3 = reinterpret_cast( outwf3 ); // proof of concept for using fptype* in the interface const int nhel = 1; + // *** START OF TESTING LOOP for( auto nsp: { -1, +1 } ) // antifermion/fermion (or initial/final for scalar and vector) { for( int ievt = 0; ievt < nevt; ievt++ ) @@ -233,9 +322,10 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) #else using namespace mg5amcCpu; #endif - if( false ) + if( debug ) { std::cout << std::endl; + std::cout << "nsp=" << nsp << " ievt=" << ievt << ": "; for( int ip4 = 0; ip4 < np4; ip4++ ) std::cout << par0[ievt * np4 + ip4] << ", "; std::cout << std::endl; } @@ -243,6 +333,7 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) const fptype* ievt0Momenta = MemoryAccessMomenta::ieventAccessRecordConst( hstMomenta.data(), ipagV * neppV ); // Test ixxxxx - NO ASSUMPTIONS { + prepareTest( "ixxxxx", ievt ); const fptype fmass = mass0[ievt]; ixxxxx( ievt0Momenta, fmass, nhel, nsp, fp_outwfI, ipar0 ); testwf6( outwfI, "ixxxxx", ievt, nsp, fmass ); @@ -252,6 +343,7 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) // Test ipzxxx - ASSUMPTIONS: (FMASS == 0) and (PX == PY == 0 and E == +PZ > 0) if( mass0[ievt] == 0 && !isptgt0[ievt] && ispzgt0[ievt] ) { + prepareTest( "ipzxxx", ievt ); ipzxxx( ievt0Momenta, nhel, nsp, fp_outwf, ipar0 ); testwf6two( outwf, outwfI, "ipzxxx", ievt ); testwf6( outwf, "ipzxxx", ievt, nsp, 0 ); @@ -259,6 +351,7 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) // Test imzxxx - ASSUMPTIONS: (FMASS == 0) and (PX == PY == 0 and E == -PZ > 0) if( mass0[ievt] == 0 && !isptgt0[ievt] && ispzlt0[ievt] ) { + prepareTest( "imzxxx", ievt ); imzxxx( ievt0Momenta, nhel, nsp, fp_outwf, ipar0 ); testwf6two( outwf, outwfI, "imzxxx", ievt ); testwf6( outwf, "imzxxx", ievt, nsp, 0 ); @@ -266,12 +359,14 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) // Test ixzxxx - ASSUMPTIONS: (FMASS == 0) and (PT > 0) if( mass0[ievt] == 0 && isptgt0[ievt] ) { + prepareTest( "ixzxxx", ievt ); ixzxxx( ievt0Momenta, nhel, nsp, fp_outwf, ipar0 ); testwf6two( outwf, outwfI, "ixzxxx", ievt ); testwf6( outwf, "ixzxxx", ievt, nsp, 0 ); } // Test vxxxxx - NO ASSUMPTIONS { + prepareTest( "vxxxxx", ievt ); const fptype vmass = mass0[ievt]; vxxxxx( ievt0Momenta, vmass, nhel, nsp, fp_outwf, ipar0 ); testwf6( outwf, "vxxxxx", ievt, nsp, vmass ); @@ -280,6 +375,7 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) } // Test sxxxxx - NO ASSUMPTIONS { + prepareTest( "sxxxxx", ievt ); const fptype smass = mass0[ievt]; sxxxxx( ievt0Momenta, nsp, fp_outwf3, ipar0 ); // no mass, no helicity (was "smass>0") testwf6( outwf3, "sxxxxx", ievt, nsp, smass ); @@ -288,6 +384,7 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) } // Test oxxxxx - NO ASSUMPTIONS { + prepareTest( "oxxxxx", ievt ); const fptype fmass = mass0[ievt]; oxxxxx( ievt0Momenta, fmass, nhel, nsp, fp_outwfO, ipar0 ); testwf6( outwfO, "oxxxxx", ievt, nsp, fmass ); @@ -297,6 +394,7 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) // Test opzxxx - ASSUMPTIONS: (FMASS == 0) and (PX == PY == 0 and E == +PZ > 0) if( mass0[ievt] == 0 && !isptgt0[ievt] && ispzgt0[ievt] ) { + prepareTest( "opzxxx", ievt ); opzxxx( ievt0Momenta, nhel, nsp, fp_outwf, ipar0 ); testwf6two( outwf, outwfO, "opzxxx", ievt ); testwf6( outwf, "opzxxx", ievt, nsp, 0 ); @@ -304,6 +402,7 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) // Test omzxxx - ASSUMPTIONS: (FMASS == 0) and (PX == PY == 0 and E == -PZ > 0) if( mass0[ievt] == 0 && !isptgt0[ievt] && ispzlt0[ievt] ) { + prepareTest( "omzxxx", ievt ); omzxxx( ievt0Momenta, nhel, nsp, fp_outwf, ipar0 ); testwf6two( outwf, outwfO, "omzxxx", ievt ); testwf6( outwf, "omzxxx", ievt, nsp, 0 ); @@ -311,17 +410,25 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) // Test oxzxxx - ASSUMPTIONS: (FMASS == 0) and (PT > 0) if( mass0[ievt] == 0 && isptgt0[ievt] ) { - oxzxxx( ievt0Momenta, nhel, nsp, reinterpret_cast( outwf ), ipar0 ); + prepareTest( "oxzxxx", ievt ); + oxzxxx( ievt0Momenta, nhel, nsp, fp_outwf, ipar0 ); testwf6two( outwf, outwfO, "oxzxxx", ievt ); testwf6( outwf, "oxzxxx", ievt, nsp, 0 ); } } } + // *** END OF TESTING LOOP if( dumpEvents ) { dumpFile.close(); std::cout << "INFO: New reference data dumped to file '" << dumpFileName << "'" << std::endl; } +#ifndef __APPLE__ // test #701 (except on MacOS where fedisableexcept is not defined #730) + if( enableFPE ) + { + fedisableexcept( FE_INVALID | FE_DIVBYZERO | FE_OVERFLOW | FE_UNDERFLOW ); // debug #701 + } +#endif } //========================================================================== diff --git a/epochX/cudacpp/gg_ttggg.sa/SubProcesses/testxxx_cc_ref.txt b/epochX/cudacpp/gg_ttggg.sa/SubProcesses/testxxx_cc_ref.txt index acb9bde918..637530d1f5 100644 --- a/epochX/cudacpp/gg_ttggg.sa/SubProcesses/testxxx_cc_ref.txt +++ b/epochX/cudacpp/gg_ttggg.sa/SubProcesses/testxxx_cc_ref.txt @@ -5,14 +5,14 @@ expwfs.push_back( { // --------- 5.000000000000000e+02, 5.000000000000000e+02, // itest=0: ixxxxx#0 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=0: ixxxxx#0 nsp=-1 mass=0 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=0: ixxxxx#0 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=0: ixxxxx#0 nsp=-1 mass=0 -3.162277660168379e+01, 0.000000000000000e+00, // itest=0: ixxxxx#0 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=0: ixxxxx#0 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=0: ixxxxx#0 nsp=-1 mass=0 expwfs.push_back( { // --------- 5.000000000000000e+02, 5.000000000000000e+02, // itest=1: ixxxxx#0 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=1: ixxxxx#0 nsp=-1 mass=0 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=1: ixxxxx#0 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=1: ixxxxx#0 nsp=-1 mass=0 -3.162277660168379e+01, 0.000000000000000e+00, // itest=1: ixxxxx#0 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=1: ixxxxx#0 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=1: ixxxxx#0 nsp=-1 mass=0 @@ -82,8 +82,8 @@ expwfs.push_back( { // --------- 5.000000000000000e+02, -5.000000000000000e+02, // itest=11: ixxxxx#1 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=11: ixxxxx#1 nsp=-1 mass=0 - -3.162277660168379e+01, -0.000000000000000e+00, // itest=11: ixxxxx#1 nsp=-1 mass=0 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=11: ixxxxx#1 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=11: ixxxxx#1 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=11: ixxxxx#1 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=11: ixxxxx#1 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=11: ixxxxx#1 nsp=-1 mass=0 expwfs.push_back( { // --------- @@ -133,8 +133,8 @@ -0.000000000000000e+00, -0.000000000000000e+00, // itest=18: oxxxxx#1 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=18: oxxxxx#1 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=18: oxxxxx#1 nsp=-1 mass=0 - -3.162277660168379e+01, -0.000000000000000e+00, // itest=18: oxxxxx#1 nsp=-1 mass=0 - -0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=18: oxxxxx#1 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=18: oxxxxx#1 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=18: oxxxxx#1 nsp=-1 mass=0 expwfs.push_back( { // --------- -5.000000000000000e+02, 5.000000000000000e+02, // itest=19: omzxxx#1 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=19: omzxxx#1 nsp=-1 mass=0 @@ -145,14 +145,14 @@ expwfs.push_back( { // --------- 5.000000000000000e+02, 0.000000000000000e+00, // itest=20: ixxxxx#2 nsp=-1 mass=0 3.000000000000000e+02, 4.000000000000000e+02, // itest=20: ixxxxx#2 nsp=-1 mass=0 - 1.341640786499874e+01, -1.788854381999832e+01, // itest=20: ixxxxx#2 nsp=-1 mass=0 + 1.341640786499874e+01, -1.788854381999831e+01, // itest=20: ixxxxx#2 nsp=-1 mass=0 -2.236067977499790e+01, 0.000000000000000e+00, // itest=20: ixxxxx#2 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=20: ixxxxx#2 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=20: ixxxxx#2 nsp=-1 mass=0 expwfs.push_back( { // --------- 5.000000000000000e+02, 0.000000000000000e+00, // itest=21: ixxxxx#2 nsp=-1 mass=0 3.000000000000000e+02, 4.000000000000000e+02, // itest=21: ixxxxx#2 nsp=-1 mass=0 - 1.341640786499874e+01, -1.788854381999832e+01, // itest=21: ixxxxx#2 nsp=-1 mass=0 + 1.341640786499874e+01, -1.788854381999831e+01, // itest=21: ixxxxx#2 nsp=-1 mass=0 -2.236067977499790e+01, 0.000000000000000e+00, // itest=21: ixxxxx#2 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=21: ixxxxx#2 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=21: ixxxxx#2 nsp=-1 mass=0 @@ -196,14 +196,14 @@ -3.000000000000000e+02, -4.000000000000000e+02, // itest=27: oxxxxx#2 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=27: oxxxxx#2 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=27: oxxxxx#2 nsp=-1 mass=0 - 1.341640786499874e+01, 1.788854381999832e+01, // itest=27: oxxxxx#2 nsp=-1 mass=0 + 1.341640786499874e+01, 1.788854381999831e+01, // itest=27: oxxxxx#2 nsp=-1 mass=0 -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=27: oxxxxx#2 nsp=-1 mass=0 expwfs.push_back( { // --------- -5.000000000000000e+02, -0.000000000000000e+00, // itest=28: oxxxxx#2 nsp=-1 mass=0 -3.000000000000000e+02, -4.000000000000000e+02, // itest=28: oxxxxx#2 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=28: oxxxxx#2 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=28: oxxxxx#2 nsp=-1 mass=0 - 1.341640786499874e+01, 1.788854381999832e+01, // itest=28: oxxxxx#2 nsp=-1 mass=0 + 1.341640786499874e+01, 1.788854381999831e+01, // itest=28: oxxxxx#2 nsp=-1 mass=0 -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=28: oxxxxx#2 nsp=-1 mass=0 expwfs.push_back( { // --------- -5.000000000000000e+02, -0.000000000000000e+00, // itest=29: oxzxxx#2 nsp=-1 mass=0 @@ -353,1696 +353,3684 @@ 1.800000000000000e+01, 2.400000000000000e+01, // itest=49: oxzxxx#4 nsp=-1 mass=0 -1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=49: oxzxxx#4 nsp=-1 mass=0 expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=50: ixxxxx#5 nsp=-1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=50: ixxxxx#5 nsp=-1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=50: ixxxxx#5 nsp=-1 mass=500 - -2.236067977499790e+01, 0.000000000000000e+00, // itest=50: ixxxxx#5 nsp=-1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=50: ixxxxx#5 nsp=-1 mass=500 - 2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=50: ixxxxx#5 nsp=-1 mass=500 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=51: ixxxxx#5 nsp=-1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=51: ixxxxx#5 nsp=-1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=51: ixxxxx#5 nsp=-1 mass=-500 - -2.236067977499790e+01, 0.000000000000000e+00, // itest=51: ixxxxx#5 nsp=-1 mass=-500 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=51: ixxxxx#5 nsp=-1 mass=-500 - -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=51: ixxxxx#5 nsp=-1 mass=-500 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=52: vxxxxx#5 nsp=-1 mass=500 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=52: vxxxxx#5 nsp=-1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=52: vxxxxx#5 nsp=-1 mass=500 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=52: vxxxxx#5 nsp=-1 mass=500 - 0.000000000000000e+00, -7.071067811865476e-01, // itest=52: vxxxxx#5 nsp=-1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=52: vxxxxx#5 nsp=-1 mass=500 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=53: vxxxxx#5 nsp=-1 mass=-500 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=53: vxxxxx#5 nsp=-1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=53: vxxxxx#5 nsp=-1 mass=-500 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=53: vxxxxx#5 nsp=-1 mass=-500 - 0.000000000000000e+00, -7.071067811865476e-01, // itest=53: vxxxxx#5 nsp=-1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=53: vxxxxx#5 nsp=-1 mass=-500 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=54: sxxxxx#5 nsp=-1 mass=500 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=54: sxxxxx#5 nsp=-1 mass=500 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=54: sxxxxx#5 nsp=-1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=54: sxxxxx#5 nsp=-1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=54: sxxxxx#5 nsp=-1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=54: sxxxxx#5 nsp=-1 mass=500 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=55: sxxxxx#5 nsp=-1 mass=-500 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=55: sxxxxx#5 nsp=-1 mass=-500 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=55: sxxxxx#5 nsp=-1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=55: sxxxxx#5 nsp=-1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=55: sxxxxx#5 nsp=-1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=55: sxxxxx#5 nsp=-1 mass=-500 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=56: oxxxxx#5 nsp=-1 mass=500 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=56: oxxxxx#5 nsp=-1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=56: oxxxxx#5 nsp=-1 mass=500 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=56: oxxxxx#5 nsp=-1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=56: oxxxxx#5 nsp=-1 mass=500 - -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=56: oxxxxx#5 nsp=-1 mass=500 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=57: oxxxxx#5 nsp=-1 mass=-500 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=57: oxxxxx#5 nsp=-1 mass=-500 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=57: oxxxxx#5 nsp=-1 mass=-500 - -2.236067977499790e+01, 0.000000000000000e+00, // itest=57: oxxxxx#5 nsp=-1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=57: oxxxxx#5 nsp=-1 mass=-500 - -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=57: oxxxxx#5 nsp=-1 mass=-500 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 3.000000000000000e+02, // itest=58: ixxxxx#6 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=58: ixxxxx#6 nsp=-1 mass=400 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=58: ixxxxx#6 nsp=-1 mass=400 - -2.828427124746190e+01, -0.000000000000000e+00, // itest=58: ixxxxx#6 nsp=-1 mass=400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=58: ixxxxx#6 nsp=-1 mass=400 - 1.414213562373095e+01, 0.000000000000000e+00 } ); // itest=58: ixxxxx#6 nsp=-1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 3.000000000000000e+02, // itest=59: ixxxxx#6 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=59: ixxxxx#6 nsp=-1 mass=-400 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=59: ixxxxx#6 nsp=-1 mass=-400 - -2.828427124746190e+01, -0.000000000000000e+00, // itest=59: ixxxxx#6 nsp=-1 mass=-400 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=59: ixxxxx#6 nsp=-1 mass=-400 - -1.414213562373095e+01, -0.000000000000000e+00 } ); // itest=59: ixxxxx#6 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -3.000000000000000e+02, // itest=60: vxxxxx#6 nsp=-1 mass=400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=60: vxxxxx#6 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=60: vxxxxx#6 nsp=-1 mass=400 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=60: vxxxxx#6 nsp=-1 mass=400 - 0.000000000000000e+00, -7.071067811865476e-01, // itest=60: vxxxxx#6 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=60: vxxxxx#6 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -3.000000000000000e+02, // itest=61: vxxxxx#6 nsp=-1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=61: vxxxxx#6 nsp=-1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=61: vxxxxx#6 nsp=-1 mass=-400 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=61: vxxxxx#6 nsp=-1 mass=-400 - 0.000000000000000e+00, -7.071067811865476e-01, // itest=61: vxxxxx#6 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=61: vxxxxx#6 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -3.000000000000000e+02, // itest=62: sxxxxx#6 nsp=-1 mass=400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=62: sxxxxx#6 nsp=-1 mass=400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=62: sxxxxx#6 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=62: sxxxxx#6 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=62: sxxxxx#6 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=62: sxxxxx#6 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -3.000000000000000e+02, // itest=63: sxxxxx#6 nsp=-1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=63: sxxxxx#6 nsp=-1 mass=-400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=63: sxxxxx#6 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=63: sxxxxx#6 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=63: sxxxxx#6 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=63: sxxxxx#6 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -3.000000000000000e+02, // itest=64: oxxxxx#6 nsp=-1 mass=400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=64: oxxxxx#6 nsp=-1 mass=400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=64: oxxxxx#6 nsp=-1 mass=400 - 1.414213562373095e+01, 0.000000000000000e+00, // itest=64: oxxxxx#6 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=64: oxxxxx#6 nsp=-1 mass=400 - -2.828427124746190e+01, -0.000000000000000e+00 } ); // itest=64: oxxxxx#6 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -3.000000000000000e+02, // itest=65: oxxxxx#6 nsp=-1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=65: oxxxxx#6 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=65: oxxxxx#6 nsp=-1 mass=-400 - -1.414213562373095e+01, -0.000000000000000e+00, // itest=65: oxxxxx#6 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=65: oxxxxx#6 nsp=-1 mass=-400 - -2.828427124746190e+01, -0.000000000000000e+00 } ); // itest=65: oxxxxx#6 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -3.000000000000000e+02, // itest=66: ixxxxx#7 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=66: ixxxxx#7 nsp=-1 mass=400 - -2.828427124746190e+01, -0.000000000000000e+00, // itest=66: ixxxxx#7 nsp=-1 mass=400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=66: ixxxxx#7 nsp=-1 mass=400 - 1.414213562373095e+01, 0.000000000000000e+00, // itest=66: ixxxxx#7 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=66: ixxxxx#7 nsp=-1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -3.000000000000000e+02, // itest=67: ixxxxx#7 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=67: ixxxxx#7 nsp=-1 mass=-400 - -2.828427124746190e+01, -0.000000000000000e+00, // itest=67: ixxxxx#7 nsp=-1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=67: ixxxxx#7 nsp=-1 mass=-400 - -1.414213562373095e+01, -0.000000000000000e+00, // itest=67: ixxxxx#7 nsp=-1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=67: ixxxxx#7 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 3.000000000000000e+02, // itest=68: vxxxxx#7 nsp=-1 mass=400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=68: vxxxxx#7 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=68: vxxxxx#7 nsp=-1 mass=400 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=68: vxxxxx#7 nsp=-1 mass=400 - 0.000000000000000e+00, 7.071067811865476e-01, // itest=68: vxxxxx#7 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=68: vxxxxx#7 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 3.000000000000000e+02, // itest=69: vxxxxx#7 nsp=-1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=69: vxxxxx#7 nsp=-1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=69: vxxxxx#7 nsp=-1 mass=-400 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=69: vxxxxx#7 nsp=-1 mass=-400 - 0.000000000000000e+00, 7.071067811865476e-01, // itest=69: vxxxxx#7 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=69: vxxxxx#7 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 3.000000000000000e+02, // itest=70: sxxxxx#7 nsp=-1 mass=400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=70: sxxxxx#7 nsp=-1 mass=400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=70: sxxxxx#7 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=70: sxxxxx#7 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=70: sxxxxx#7 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=70: sxxxxx#7 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 3.000000000000000e+02, // itest=71: sxxxxx#7 nsp=-1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=71: sxxxxx#7 nsp=-1 mass=-400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=71: sxxxxx#7 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=71: sxxxxx#7 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=71: sxxxxx#7 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=71: sxxxxx#7 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 3.000000000000000e+02, // itest=72: oxxxxx#7 nsp=-1 mass=400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=72: oxxxxx#7 nsp=-1 mass=400 - 1.414213562373095e+01, 0.000000000000000e+00, // itest=72: oxxxxx#7 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=72: oxxxxx#7 nsp=-1 mass=400 - -2.828427124746190e+01, -0.000000000000000e+00, // itest=72: oxxxxx#7 nsp=-1 mass=400 - -0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=72: oxxxxx#7 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 3.000000000000000e+02, // itest=73: oxxxxx#7 nsp=-1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=73: oxxxxx#7 nsp=-1 mass=-400 - -1.414213562373095e+01, -0.000000000000000e+00, // itest=73: oxxxxx#7 nsp=-1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=73: oxxxxx#7 nsp=-1 mass=-400 - -2.828427124746190e+01, -0.000000000000000e+00, // itest=73: oxxxxx#7 nsp=-1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=73: oxxxxx#7 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=74: ixxxxx#8 nsp=-1 mass=400 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=74: ixxxxx#8 nsp=-1 mass=400 - 1.200000000000000e+01, -1.600000000000000e+01, // itest=74: ixxxxx#8 nsp=-1 mass=400 - -2.000000000000000e+01, -0.000000000000000e+00, // itest=74: ixxxxx#8 nsp=-1 mass=400 - -5.999999999999999e+00, 7.999999999999999e+00, // itest=74: ixxxxx#8 nsp=-1 mass=400 - 1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=74: ixxxxx#8 nsp=-1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=75: ixxxxx#8 nsp=-1 mass=-400 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=75: ixxxxx#8 nsp=-1 mass=-400 - 1.200000000000000e+01, -1.600000000000000e+01, // itest=75: ixxxxx#8 nsp=-1 mass=-400 - -2.000000000000000e+01, -0.000000000000000e+00, // itest=75: ixxxxx#8 nsp=-1 mass=-400 - 5.999999999999999e+00, -7.999999999999999e+00, // itest=75: ixxxxx#8 nsp=-1 mass=-400 - -1.000000000000000e+01, -0.000000000000000e+00 } ); // itest=75: ixxxxx#8 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=76: vxxxxx#8 nsp=-1 mass=400 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=76: vxxxxx#8 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=76: vxxxxx#8 nsp=-1 mass=400 - 0.000000000000000e+00, 5.656854249492381e-01, // itest=76: vxxxxx#8 nsp=-1 mass=400 - 0.000000000000000e+00, -4.242640687119285e-01, // itest=76: vxxxxx#8 nsp=-1 mass=400 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=76: vxxxxx#8 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=77: vxxxxx#8 nsp=-1 mass=-400 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=77: vxxxxx#8 nsp=-1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=77: vxxxxx#8 nsp=-1 mass=-400 - -0.000000000000000e+00, 5.656854249492381e-01, // itest=77: vxxxxx#8 nsp=-1 mass=-400 - -0.000000000000000e+00, -4.242640687119285e-01, // itest=77: vxxxxx#8 nsp=-1 mass=-400 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=77: vxxxxx#8 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=78: sxxxxx#8 nsp=-1 mass=400 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=78: sxxxxx#8 nsp=-1 mass=400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=78: sxxxxx#8 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=78: sxxxxx#8 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=78: sxxxxx#8 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=78: sxxxxx#8 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=79: sxxxxx#8 nsp=-1 mass=-400 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=79: sxxxxx#8 nsp=-1 mass=-400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=79: sxxxxx#8 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=79: sxxxxx#8 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=79: sxxxxx#8 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=79: sxxxxx#8 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=80: oxxxxx#8 nsp=-1 mass=400 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=80: oxxxxx#8 nsp=-1 mass=400 - -5.999999999999999e+00, -7.999999999999999e+00, // itest=80: oxxxxx#8 nsp=-1 mass=400 - 1.000000000000000e+01, 0.000000000000000e+00, // itest=80: oxxxxx#8 nsp=-1 mass=400 - 1.200000000000000e+01, 1.600000000000000e+01, // itest=80: oxxxxx#8 nsp=-1 mass=400 - -2.000000000000000e+01, -0.000000000000000e+00 } ); // itest=80: oxxxxx#8 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=81: oxxxxx#8 nsp=-1 mass=-400 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=81: oxxxxx#8 nsp=-1 mass=-400 - 5.999999999999999e+00, 7.999999999999999e+00, // itest=81: oxxxxx#8 nsp=-1 mass=-400 - -1.000000000000000e+01, -0.000000000000000e+00, // itest=81: oxxxxx#8 nsp=-1 mass=-400 - 1.200000000000000e+01, 1.600000000000000e+01, // itest=81: oxxxxx#8 nsp=-1 mass=-400 - -2.000000000000000e+01, -0.000000000000000e+00 } ); // itest=81: oxxxxx#8 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=82: ixxxxx#9 nsp=-1 mass=400 - -2.400000000000000e+02, -1.800000000000000e+02, // itest=82: ixxxxx#9 nsp=-1 mass=400 - -1.600000000000000e+01, 1.200000000000000e+01, // itest=82: ixxxxx#9 nsp=-1 mass=400 - -2.000000000000000e+01, -0.000000000000000e+00, // itest=82: ixxxxx#9 nsp=-1 mass=400 - 7.999999999999999e+00, -5.999999999999999e+00, // itest=82: ixxxxx#9 nsp=-1 mass=400 - 1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=82: ixxxxx#9 nsp=-1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=83: ixxxxx#9 nsp=-1 mass=-400 - -2.400000000000000e+02, -1.800000000000000e+02, // itest=83: ixxxxx#9 nsp=-1 mass=-400 - -1.600000000000000e+01, 1.200000000000000e+01, // itest=83: ixxxxx#9 nsp=-1 mass=-400 - -2.000000000000000e+01, -0.000000000000000e+00, // itest=83: ixxxxx#9 nsp=-1 mass=-400 - -7.999999999999999e+00, 5.999999999999999e+00, // itest=83: ixxxxx#9 nsp=-1 mass=-400 - -1.000000000000000e+01, -0.000000000000000e+00 } ); // itest=83: ixxxxx#9 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=84: vxxxxx#9 nsp=-1 mass=400 - 2.400000000000000e+02, 1.800000000000000e+02, // itest=84: vxxxxx#9 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=84: vxxxxx#9 nsp=-1 mass=400 - 0.000000000000000e+00, -4.242640687119285e-01, // itest=84: vxxxxx#9 nsp=-1 mass=400 - 0.000000000000000e+00, 5.656854249492381e-01, // itest=84: vxxxxx#9 nsp=-1 mass=400 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=84: vxxxxx#9 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=85: vxxxxx#9 nsp=-1 mass=-400 - 2.400000000000000e+02, 1.800000000000000e+02, // itest=85: vxxxxx#9 nsp=-1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=85: vxxxxx#9 nsp=-1 mass=-400 - 0.000000000000000e+00, -4.242640687119285e-01, // itest=85: vxxxxx#9 nsp=-1 mass=-400 - 0.000000000000000e+00, 5.656854249492381e-01, // itest=85: vxxxxx#9 nsp=-1 mass=-400 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=85: vxxxxx#9 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=86: sxxxxx#9 nsp=-1 mass=400 - 2.400000000000000e+02, 1.800000000000000e+02, // itest=86: sxxxxx#9 nsp=-1 mass=400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=86: sxxxxx#9 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=86: sxxxxx#9 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=86: sxxxxx#9 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=86: sxxxxx#9 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=87: sxxxxx#9 nsp=-1 mass=-400 - 2.400000000000000e+02, 1.800000000000000e+02, // itest=87: sxxxxx#9 nsp=-1 mass=-400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=87: sxxxxx#9 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=87: sxxxxx#9 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=87: sxxxxx#9 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=87: sxxxxx#9 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=88: oxxxxx#9 nsp=-1 mass=400 - 2.400000000000000e+02, 1.800000000000000e+02, // itest=88: oxxxxx#9 nsp=-1 mass=400 - 7.999999999999999e+00, 5.999999999999999e+00, // itest=88: oxxxxx#9 nsp=-1 mass=400 - 1.000000000000000e+01, 0.000000000000000e+00, // itest=88: oxxxxx#9 nsp=-1 mass=400 - -1.600000000000000e+01, -1.200000000000000e+01, // itest=88: oxxxxx#9 nsp=-1 mass=400 - -2.000000000000000e+01, -0.000000000000000e+00 } ); // itest=88: oxxxxx#9 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=89: oxxxxx#9 nsp=-1 mass=-400 - 2.400000000000000e+02, 1.800000000000000e+02, // itest=89: oxxxxx#9 nsp=-1 mass=-400 - -7.999999999999999e+00, -5.999999999999999e+00, // itest=89: oxxxxx#9 nsp=-1 mass=-400 - -1.000000000000000e+01, -0.000000000000000e+00, // itest=89: oxxxxx#9 nsp=-1 mass=-400 - -1.600000000000000e+01, -1.200000000000000e+01, // itest=89: oxxxxx#9 nsp=-1 mass=-400 - -2.000000000000000e+01, -0.000000000000000e+00 } ); // itest=89: oxxxxx#9 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 1.440000000000000e+02, // itest=90: ixxxxx#10 nsp=-1 mass=400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=90: ixxxxx#10 nsp=-1 mass=400 - 9.863939238321439e+00, -1.052153518754287e+01, // itest=90: ixxxxx#10 nsp=-1 mass=400 - -2.433105012119288e+01, -0.000000000000000e+00, // itest=90: ixxxxx#10 nsp=-1 mass=400 - -4.931969619160719e+00, 5.260767593771432e+00, // itest=90: ixxxxx#10 nsp=-1 mass=400 - 1.216552506059644e+01, 0.000000000000000e+00 } ); // itest=90: ixxxxx#10 nsp=-1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 1.440000000000000e+02, // itest=91: ixxxxx#10 nsp=-1 mass=-400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=91: ixxxxx#10 nsp=-1 mass=-400 - 9.863939238321439e+00, -1.052153518754287e+01, // itest=91: ixxxxx#10 nsp=-1 mass=-400 - -2.433105012119288e+01, -0.000000000000000e+00, // itest=91: ixxxxx#10 nsp=-1 mass=-400 - 4.931969619160719e+00, -5.260767593771432e+00, // itest=91: ixxxxx#10 nsp=-1 mass=-400 - -1.216552506059644e+01, -0.000000000000000e+00 } ); // itest=91: ixxxxx#10 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -1.440000000000000e+02, // itest=92: vxxxxx#10 nsp=-1 mass=400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=92: vxxxxx#10 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=92: vxxxxx#10 nsp=-1 mass=400 - -2.321373168788980e-01, 5.158607041753289e-01, // itest=92: vxxxxx#10 nsp=-1 mass=400 - -2.476131380041579e-01, -4.836194101643708e-01, // itest=92: vxxxxx#10 nsp=-1 mass=400 - 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=92: vxxxxx#10 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -1.440000000000000e+02, // itest=93: vxxxxx#10 nsp=-1 mass=-400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=93: vxxxxx#10 nsp=-1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=93: vxxxxx#10 nsp=-1 mass=-400 - -2.321373168788980e-01, 5.158607041753289e-01, // itest=93: vxxxxx#10 nsp=-1 mass=-400 - -2.476131380041579e-01, -4.836194101643708e-01, // itest=93: vxxxxx#10 nsp=-1 mass=-400 - 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=93: vxxxxx#10 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -1.440000000000000e+02, // itest=94: sxxxxx#10 nsp=-1 mass=400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=94: sxxxxx#10 nsp=-1 mass=400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=94: sxxxxx#10 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=94: sxxxxx#10 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=94: sxxxxx#10 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=94: sxxxxx#10 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -1.440000000000000e+02, // itest=95: sxxxxx#10 nsp=-1 mass=-400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=95: sxxxxx#10 nsp=-1 mass=-400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=95: sxxxxx#10 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=95: sxxxxx#10 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=95: sxxxxx#10 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=95: sxxxxx#10 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -1.440000000000000e+02, // itest=96: oxxxxx#10 nsp=-1 mass=400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=96: oxxxxx#10 nsp=-1 mass=400 - -4.931969619160719e+00, -5.260767593771432e+00, // itest=96: oxxxxx#10 nsp=-1 mass=400 - 1.216552506059644e+01, 0.000000000000000e+00, // itest=96: oxxxxx#10 nsp=-1 mass=400 - 9.863939238321439e+00, 1.052153518754287e+01, // itest=96: oxxxxx#10 nsp=-1 mass=400 - -2.433105012119288e+01, -0.000000000000000e+00 } ); // itest=96: oxxxxx#10 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -1.440000000000000e+02, // itest=97: oxxxxx#10 nsp=-1 mass=-400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=97: oxxxxx#10 nsp=-1 mass=-400 - 4.931969619160719e+00, 5.260767593771432e+00, // itest=97: oxxxxx#10 nsp=-1 mass=-400 - -1.216552506059644e+01, -0.000000000000000e+00, // itest=97: oxxxxx#10 nsp=-1 mass=-400 - 9.863939238321439e+00, 1.052153518754287e+01, // itest=97: oxxxxx#10 nsp=-1 mass=-400 - -2.433105012119288e+01, -0.000000000000000e+00 } ); // itest=97: oxxxxx#10 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -1.440000000000000e+02, // itest=98: ixxxxx#11 nsp=-1 mass=400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=98: ixxxxx#11 nsp=-1 mass=400 - 1.664100588675688e+01, -1.775040627920733e+01, // itest=98: ixxxxx#11 nsp=-1 mass=400 - -1.442220510185596e+01, -0.000000000000000e+00, // itest=98: ixxxxx#11 nsp=-1 mass=400 - -8.320502943378436e+00, 8.875203139603666e+00, // itest=98: ixxxxx#11 nsp=-1 mass=400 - 7.211102550927978e+00, 0.000000000000000e+00 } ); // itest=98: ixxxxx#11 nsp=-1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -1.440000000000000e+02, // itest=99: ixxxxx#11 nsp=-1 mass=-400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=99: ixxxxx#11 nsp=-1 mass=-400 - 1.664100588675688e+01, -1.775040627920733e+01, // itest=99: ixxxxx#11 nsp=-1 mass=-400 - -1.442220510185596e+01, -0.000000000000000e+00, // itest=99: ixxxxx#11 nsp=-1 mass=-400 - 8.320502943378436e+00, -8.875203139603666e+00, // itest=99: ixxxxx#11 nsp=-1 mass=-400 - -7.211102550927978e+00, -0.000000000000000e+00 } ); // itest=99: ixxxxx#11 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 1.440000000000000e+02, // itest=100: vxxxxx#11 nsp=-1 mass=400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=100: vxxxxx#11 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=100: vxxxxx#11 nsp=-1 mass=400 - 2.321373168788980e-01, 5.158607041753289e-01, // itest=100: vxxxxx#11 nsp=-1 mass=400 - 2.476131380041579e-01, -4.836194101643708e-01, // itest=100: vxxxxx#11 nsp=-1 mass=400 - 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=100: vxxxxx#11 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 1.440000000000000e+02, // itest=101: vxxxxx#11 nsp=-1 mass=-400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=101: vxxxxx#11 nsp=-1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=101: vxxxxx#11 nsp=-1 mass=-400 - 2.321373168788980e-01, 5.158607041753289e-01, // itest=101: vxxxxx#11 nsp=-1 mass=-400 - 2.476131380041579e-01, -4.836194101643708e-01, // itest=101: vxxxxx#11 nsp=-1 mass=-400 - 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=101: vxxxxx#11 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 1.440000000000000e+02, // itest=102: sxxxxx#11 nsp=-1 mass=400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=102: sxxxxx#11 nsp=-1 mass=400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=102: sxxxxx#11 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=102: sxxxxx#11 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=102: sxxxxx#11 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=102: sxxxxx#11 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 1.440000000000000e+02, // itest=103: sxxxxx#11 nsp=-1 mass=-400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=103: sxxxxx#11 nsp=-1 mass=-400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=103: sxxxxx#11 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=103: sxxxxx#11 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=103: sxxxxx#11 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=103: sxxxxx#11 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 1.440000000000000e+02, // itest=104: oxxxxx#11 nsp=-1 mass=400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=104: oxxxxx#11 nsp=-1 mass=400 - -8.320502943378436e+00, -8.875203139603666e+00, // itest=104: oxxxxx#11 nsp=-1 mass=400 - 7.211102550927978e+00, 0.000000000000000e+00, // itest=104: oxxxxx#11 nsp=-1 mass=400 - 1.664100588675688e+01, 1.775040627920733e+01, // itest=104: oxxxxx#11 nsp=-1 mass=400 - -1.442220510185596e+01, -0.000000000000000e+00 } ); // itest=104: oxxxxx#11 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 1.440000000000000e+02, // itest=105: oxxxxx#11 nsp=-1 mass=-400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=105: oxxxxx#11 nsp=-1 mass=-400 - 8.320502943378436e+00, 8.875203139603666e+00, // itest=105: oxxxxx#11 nsp=-1 mass=-400 - -7.211102550927978e+00, -0.000000000000000e+00, // itest=105: oxxxxx#11 nsp=-1 mass=-400 - 1.664100588675688e+01, 1.775040627920733e+01, // itest=105: oxxxxx#11 nsp=-1 mass=-400 - -1.442220510185596e+01, -0.000000000000000e+00 } ); // itest=105: oxxxxx#11 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=106: ixxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=106: ixxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=106: ixxxxx#12 nsp=-1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00, // itest=106: ixxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=106: ixxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=106: ixxxxx#12 nsp=-1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=107: ixxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=107: ixxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=107: ixxxxx#12 nsp=-1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00, // itest=107: ixxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=107: ixxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=107: ixxxxx#12 nsp=-1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=108: ipzxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=108: ipzxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=108: ipzxxx#12 nsp=-1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00, // itest=108: ipzxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=108: ipzxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=108: ipzxxx#12 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=109: vxxxxx#12 nsp=-1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=109: vxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=109: vxxxxx#12 nsp=-1 mass=0 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=109: vxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, -7.071067811865476e-01, // itest=109: vxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=109: vxxxxx#12 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=110: vxxxxx#12 nsp=-1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=110: vxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=110: vxxxxx#12 nsp=-1 mass=0 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=110: vxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, -7.071067811865476e-01, // itest=110: vxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=110: vxxxxx#12 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=111: sxxxxx#12 nsp=-1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=111: sxxxxx#12 nsp=-1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=111: sxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=111: sxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=111: sxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=111: sxxxxx#12 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=112: sxxxxx#12 nsp=-1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=112: sxxxxx#12 nsp=-1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=112: sxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=112: sxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=112: sxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=112: sxxxxx#12 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=113: oxxxxx#12 nsp=-1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=113: oxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=113: oxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=113: oxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=113: oxxxxx#12 nsp=-1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=113: oxxxxx#12 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=114: oxxxxx#12 nsp=-1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=114: oxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=114: oxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=114: oxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=114: oxxxxx#12 nsp=-1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=114: oxxxxx#12 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=115: opzxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=115: opzxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=115: opzxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=115: opzxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=115: opzxxx#12 nsp=-1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=115: opzxxx#12 nsp=-1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=116: ixxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=116: ixxxxx#13 nsp=-1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00, // itest=116: ixxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=116: ixxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=116: ixxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=116: ixxxxx#13 nsp=-1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=117: ixxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=117: ixxxxx#13 nsp=-1 mass=0 - -3.162277660168379e+01, -0.000000000000000e+00, // itest=117: ixxxxx#13 nsp=-1 mass=0 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=117: ixxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=117: ixxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=117: ixxxxx#13 nsp=-1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=118: imzxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=118: imzxxx#13 nsp=-1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00, // itest=118: imzxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=118: imzxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=118: imzxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=118: imzxxx#13 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=119: vxxxxx#13 nsp=-1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=119: vxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=119: vxxxxx#13 nsp=-1 mass=0 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=119: vxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 7.071067811865476e-01, // itest=119: vxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=119: vxxxxx#13 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=120: vxxxxx#13 nsp=-1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=120: vxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=120: vxxxxx#13 nsp=-1 mass=0 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=120: vxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 7.071067811865476e-01, // itest=120: vxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=120: vxxxxx#13 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=121: sxxxxx#13 nsp=-1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=121: sxxxxx#13 nsp=-1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=121: sxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=121: sxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=121: sxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=121: sxxxxx#13 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=122: sxxxxx#13 nsp=-1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=122: sxxxxx#13 nsp=-1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=122: sxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=122: sxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=122: sxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=122: sxxxxx#13 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=123: oxxxxx#13 nsp=-1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=123: oxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=123: oxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=123: oxxxxx#13 nsp=-1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00, // itest=123: oxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=123: oxxxxx#13 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=124: oxxxxx#13 nsp=-1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=124: oxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=124: oxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=124: oxxxxx#13 nsp=-1 mass=0 - -3.162277660168379e+01, -0.000000000000000e+00, // itest=124: oxxxxx#13 nsp=-1 mass=0 - -0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=124: oxxxxx#13 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=125: omzxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=125: omzxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=125: omzxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=125: omzxxx#13 nsp=-1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00, // itest=125: omzxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=125: omzxxx#13 nsp=-1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=126: ixxxxx#14 nsp=-1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=126: ixxxxx#14 nsp=-1 mass=0 - 1.341640786499874e+01, -1.788854381999832e+01, // itest=126: ixxxxx#14 nsp=-1 mass=0 - -2.236067977499790e+01, 0.000000000000000e+00, // itest=126: ixxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=126: ixxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=126: ixxxxx#14 nsp=-1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=127: ixxxxx#14 nsp=-1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=127: ixxxxx#14 nsp=-1 mass=0 - 1.341640786499874e+01, -1.788854381999832e+01, // itest=127: ixxxxx#14 nsp=-1 mass=0 - -2.236067977499790e+01, 0.000000000000000e+00, // itest=127: ixxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=127: ixxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=127: ixxxxx#14 nsp=-1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=128: ixzxxx#14 nsp=-1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=128: ixzxxx#14 nsp=-1 mass=0 - 1.341640786499874e+01, -1.788854381999832e+01, // itest=128: ixzxxx#14 nsp=-1 mass=0 - -2.236067977499790e+01, 0.000000000000000e+00, // itest=128: ixzxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=128: ixzxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=128: ixzxxx#14 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=129: vxxxxx#14 nsp=-1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=129: vxxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=129: vxxxxx#14 nsp=-1 mass=0 - -0.000000000000000e+00, 5.656854249492381e-01, // itest=129: vxxxxx#14 nsp=-1 mass=0 - -0.000000000000000e+00, -4.242640687119285e-01, // itest=129: vxxxxx#14 nsp=-1 mass=0 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=129: vxxxxx#14 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=130: vxxxxx#14 nsp=-1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=130: vxxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=130: vxxxxx#14 nsp=-1 mass=0 - -0.000000000000000e+00, 5.656854249492381e-01, // itest=130: vxxxxx#14 nsp=-1 mass=0 - -0.000000000000000e+00, -4.242640687119285e-01, // itest=130: vxxxxx#14 nsp=-1 mass=0 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=130: vxxxxx#14 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=131: sxxxxx#14 nsp=-1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=131: sxxxxx#14 nsp=-1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=131: sxxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=131: sxxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=131: sxxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=131: sxxxxx#14 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=132: sxxxxx#14 nsp=-1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=132: sxxxxx#14 nsp=-1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=132: sxxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=132: sxxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=132: sxxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=132: sxxxxx#14 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=133: oxxxxx#14 nsp=-1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=133: oxxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=133: oxxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=133: oxxxxx#14 nsp=-1 mass=0 - 1.341640786499874e+01, 1.788854381999832e+01, // itest=133: oxxxxx#14 nsp=-1 mass=0 - -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=133: oxxxxx#14 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=134: oxxxxx#14 nsp=-1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=134: oxxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=134: oxxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=134: oxxxxx#14 nsp=-1 mass=0 - 1.341640786499874e+01, 1.788854381999832e+01, // itest=134: oxxxxx#14 nsp=-1 mass=0 - -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=134: oxxxxx#14 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=135: oxzxxx#14 nsp=-1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=135: oxzxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=135: oxzxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=135: oxzxxx#14 nsp=-1 mass=0 - 1.341640786499874e+01, 1.788854381999832e+01, // itest=135: oxzxxx#14 nsp=-1 mass=0 - -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=135: oxzxxx#14 nsp=-1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=136: ixxxxx#15 nsp=-1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=136: ixxxxx#15 nsp=-1 mass=0 - 6.000000000000000e+00, -8.000000000000000e+00, // itest=136: ixxxxx#15 nsp=-1 mass=0 - -3.000000000000000e+01, 0.000000000000000e+00, // itest=136: ixxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=136: ixxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=136: ixxxxx#15 nsp=-1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=137: ixxxxx#15 nsp=-1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=137: ixxxxx#15 nsp=-1 mass=0 - 6.000000000000000e+00, -8.000000000000000e+00, // itest=137: ixxxxx#15 nsp=-1 mass=0 - -3.000000000000000e+01, 0.000000000000000e+00, // itest=137: ixxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=137: ixxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=137: ixxxxx#15 nsp=-1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=138: ixzxxx#15 nsp=-1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=138: ixzxxx#15 nsp=-1 mass=0 - 6.000000000000000e+00, -8.000000000000000e+00, // itest=138: ixzxxx#15 nsp=-1 mass=0 - -3.000000000000000e+01, 0.000000000000000e+00, // itest=138: ixzxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=138: ixzxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=138: ixzxxx#15 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=139: vxxxxx#15 nsp=-1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=139: vxxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=139: vxxxxx#15 nsp=-1 mass=0 - -3.394112549695428e-01, 5.656854249492381e-01, // itest=139: vxxxxx#15 nsp=-1 mass=0 - -4.525483399593904e-01, -4.242640687119285e-01, // itest=139: vxxxxx#15 nsp=-1 mass=0 - 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=139: vxxxxx#15 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=140: vxxxxx#15 nsp=-1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=140: vxxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=140: vxxxxx#15 nsp=-1 mass=0 - -3.394112549695428e-01, 5.656854249492381e-01, // itest=140: vxxxxx#15 nsp=-1 mass=0 - -4.525483399593904e-01, -4.242640687119285e-01, // itest=140: vxxxxx#15 nsp=-1 mass=0 - 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=140: vxxxxx#15 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=141: sxxxxx#15 nsp=-1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=141: sxxxxx#15 nsp=-1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=141: sxxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=141: sxxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=141: sxxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=141: sxxxxx#15 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=142: sxxxxx#15 nsp=-1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=142: sxxxxx#15 nsp=-1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=142: sxxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=142: sxxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=142: sxxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=142: sxxxxx#15 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=143: oxxxxx#15 nsp=-1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=143: oxxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=143: oxxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=143: oxxxxx#15 nsp=-1 mass=0 - 6.000000000000000e+00, 8.000000000000000e+00, // itest=143: oxxxxx#15 nsp=-1 mass=0 - -3.000000000000000e+01, 0.000000000000000e+00 } ); // itest=143: oxxxxx#15 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=144: oxxxxx#15 nsp=-1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=144: oxxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=144: oxxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=144: oxxxxx#15 nsp=-1 mass=0 - 6.000000000000000e+00, 8.000000000000000e+00, // itest=144: oxxxxx#15 nsp=-1 mass=0 - -3.000000000000000e+01, 0.000000000000000e+00 } ); // itest=144: oxxxxx#15 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=145: oxzxxx#15 nsp=-1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=145: oxzxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=145: oxzxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=145: oxzxxx#15 nsp=-1 mass=0 - 6.000000000000000e+00, 8.000000000000000e+00, // itest=145: oxzxxx#15 nsp=-1 mass=0 - -3.000000000000000e+01, 0.000000000000000e+00 } ); // itest=145: oxzxxx#15 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=146: ixxxxx#0 nsp=1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=146: ixxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=146: ixxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=146: ixxxxx#0 nsp=1 mass=0 - 3.162277660168379e+01, 0.000000000000000e+00, // itest=146: ixxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=146: ixxxxx#0 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=147: ixxxxx#0 nsp=1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=147: ixxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=147: ixxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=147: ixxxxx#0 nsp=1 mass=0 - 3.162277660168379e+01, 0.000000000000000e+00, // itest=147: ixxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=147: ixxxxx#0 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=148: ipzxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=148: ipzxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=148: ipzxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=148: ipzxxx#0 nsp=1 mass=0 - 3.162277660168379e+01, 0.000000000000000e+00, // itest=148: ipzxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=148: ipzxxx#0 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=149: vxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=149: vxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=149: vxxxxx#0 nsp=1 mass=0 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=149: vxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 7.071067811865476e-01, // itest=149: vxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=149: vxxxxx#0 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=150: vxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=150: vxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=150: vxxxxx#0 nsp=1 mass=0 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=150: vxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 7.071067811865476e-01, // itest=150: vxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=150: vxxxxx#0 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=151: sxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=151: sxxxxx#0 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=151: sxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=151: sxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=151: sxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=151: sxxxxx#0 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=152: sxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=152: sxxxxx#0 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=152: sxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=152: sxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=152: sxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=152: sxxxxx#0 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=153: oxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=153: oxxxxx#0 nsp=1 mass=0 - 3.162277660168379e+01, 0.000000000000000e+00, // itest=153: oxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=153: oxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=153: oxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=153: oxxxxx#0 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=154: oxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=154: oxxxxx#0 nsp=1 mass=0 - 3.162277660168379e+01, 0.000000000000000e+00, // itest=154: oxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=154: oxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=154: oxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=154: oxxxxx#0 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=155: opzxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=155: opzxxx#0 nsp=1 mass=0 - 3.162277660168379e+01, 0.000000000000000e+00, // itest=155: opzxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=155: opzxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=155: opzxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=155: opzxxx#0 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=156: ixxxxx#1 nsp=1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=156: ixxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=156: ixxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=156: ixxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=156: ixxxxx#1 nsp=1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=156: ixxxxx#1 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=157: ixxxxx#1 nsp=1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=157: ixxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=157: ixxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=157: ixxxxx#1 nsp=1 mass=0 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=157: ixxxxx#1 nsp=1 mass=0 - -3.162277660168379e+01, -0.000000000000000e+00 } ); // itest=157: ixxxxx#1 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=158: imzxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=158: imzxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=158: imzxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=158: imzxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=158: imzxxx#1 nsp=1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=158: imzxxx#1 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=159: vxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=159: vxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=159: vxxxxx#1 nsp=1 mass=0 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=159: vxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, -7.071067811865476e-01, // itest=159: vxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=159: vxxxxx#1 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=160: vxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=160: vxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=160: vxxxxx#1 nsp=1 mass=0 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=160: vxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, -7.071067811865476e-01, // itest=160: vxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=160: vxxxxx#1 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=161: sxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=161: sxxxxx#1 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=161: sxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=161: sxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=161: sxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=161: sxxxxx#1 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=162: sxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=162: sxxxxx#1 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=162: sxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=162: sxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=162: sxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=162: sxxxxx#1 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=163: oxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=163: oxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=163: oxxxxx#1 nsp=1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00, // itest=163: oxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=163: oxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=163: oxxxxx#1 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=164: oxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=164: oxxxxx#1 nsp=1 mass=0 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=164: oxxxxx#1 nsp=1 mass=0 - -3.162277660168379e+01, -0.000000000000000e+00, // itest=164: oxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=164: oxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=164: oxxxxx#1 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=165: omzxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=165: omzxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=165: omzxxx#1 nsp=1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00, // itest=165: omzxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=165: omzxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=165: omzxxx#1 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=166: ixxxxx#2 nsp=1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=166: ixxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=166: ixxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=166: ixxxxx#2 nsp=1 mass=0 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=166: ixxxxx#2 nsp=1 mass=0 - 1.341640786499874e+01, 1.788854381999832e+01 } ); // itest=166: ixxxxx#2 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=167: ixxxxx#2 nsp=1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=167: ixxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=167: ixxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=167: ixxxxx#2 nsp=1 mass=0 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=167: ixxxxx#2 nsp=1 mass=0 - 1.341640786499874e+01, 1.788854381999832e+01 } ); // itest=167: ixxxxx#2 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=168: ixzxxx#2 nsp=1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=168: ixzxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=168: ixzxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=168: ixzxxx#2 nsp=1 mass=0 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=168: ixzxxx#2 nsp=1 mass=0 - 1.341640786499874e+01, 1.788854381999832e+01 } ); // itest=168: ixzxxx#2 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=169: vxxxxx#2 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=169: vxxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=169: vxxxxx#2 nsp=1 mass=0 - -0.000000000000000e+00, -5.656854249492381e-01, // itest=169: vxxxxx#2 nsp=1 mass=0 - -0.000000000000000e+00, 4.242640687119285e-01, // itest=169: vxxxxx#2 nsp=1 mass=0 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=169: vxxxxx#2 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=170: vxxxxx#2 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=170: vxxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=170: vxxxxx#2 nsp=1 mass=0 - -0.000000000000000e+00, -5.656854249492381e-01, // itest=170: vxxxxx#2 nsp=1 mass=0 - -0.000000000000000e+00, 4.242640687119285e-01, // itest=170: vxxxxx#2 nsp=1 mass=0 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=170: vxxxxx#2 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=171: sxxxxx#2 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=171: sxxxxx#2 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=171: sxxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=171: sxxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=171: sxxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=171: sxxxxx#2 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=172: sxxxxx#2 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=172: sxxxxx#2 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=172: sxxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=172: sxxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=172: sxxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=172: sxxxxx#2 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=173: oxxxxx#2 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=173: oxxxxx#2 nsp=1 mass=0 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=173: oxxxxx#2 nsp=1 mass=0 - 1.341640786499874e+01, -1.788854381999832e+01, // itest=173: oxxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=173: oxxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=173: oxxxxx#2 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=174: oxxxxx#2 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=174: oxxxxx#2 nsp=1 mass=0 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=174: oxxxxx#2 nsp=1 mass=0 - 1.341640786499874e+01, -1.788854381999832e+01, // itest=174: oxxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=174: oxxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=174: oxxxxx#2 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=175: oxzxxx#2 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=175: oxzxxx#2 nsp=1 mass=0 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=175: oxzxxx#2 nsp=1 mass=0 - 1.341640786499874e+01, -1.788854381999832e+01, // itest=175: oxzxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=175: oxzxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=175: oxzxxx#2 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=176: ixxxxx#3 nsp=1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=176: ixxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=176: ixxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=176: ixxxxx#3 nsp=1 mass=0 - 3.000000000000000e+01, 0.000000000000000e+00, // itest=176: ixxxxx#3 nsp=1 mass=0 - 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=176: ixxxxx#3 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=177: ixxxxx#3 nsp=1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=177: ixxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=177: ixxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=177: ixxxxx#3 nsp=1 mass=0 - 3.000000000000000e+01, 0.000000000000000e+00, // itest=177: ixxxxx#3 nsp=1 mass=0 - 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=177: ixxxxx#3 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=178: ixzxxx#3 nsp=1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=178: ixzxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=178: ixzxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=178: ixzxxx#3 nsp=1 mass=0 - 3.000000000000000e+01, 0.000000000000000e+00, // itest=178: ixzxxx#3 nsp=1 mass=0 - 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=178: ixzxxx#3 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=179: vxxxxx#3 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=179: vxxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=179: vxxxxx#3 nsp=1 mass=0 - -3.394112549695428e-01, -5.656854249492381e-01, // itest=179: vxxxxx#3 nsp=1 mass=0 - -4.525483399593904e-01, 4.242640687119285e-01, // itest=179: vxxxxx#3 nsp=1 mass=0 - 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=179: vxxxxx#3 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=180: vxxxxx#3 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=180: vxxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=180: vxxxxx#3 nsp=1 mass=0 - -3.394112549695428e-01, -5.656854249492381e-01, // itest=180: vxxxxx#3 nsp=1 mass=0 - -4.525483399593904e-01, 4.242640687119285e-01, // itest=180: vxxxxx#3 nsp=1 mass=0 - 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=180: vxxxxx#3 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=181: sxxxxx#3 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=181: sxxxxx#3 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=181: sxxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=181: sxxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=181: sxxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=181: sxxxxx#3 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=182: sxxxxx#3 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=182: sxxxxx#3 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=182: sxxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=182: sxxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=182: sxxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=182: sxxxxx#3 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=183: oxxxxx#3 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=183: oxxxxx#3 nsp=1 mass=0 - 3.000000000000000e+01, 0.000000000000000e+00, // itest=183: oxxxxx#3 nsp=1 mass=0 - 6.000000000000000e+00, -8.000000000000000e+00, // itest=183: oxxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=183: oxxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=183: oxxxxx#3 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=184: oxxxxx#3 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=184: oxxxxx#3 nsp=1 mass=0 - 3.000000000000000e+01, 0.000000000000000e+00, // itest=184: oxxxxx#3 nsp=1 mass=0 - 6.000000000000000e+00, -8.000000000000000e+00, // itest=184: oxxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=184: oxxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=184: oxxxxx#3 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=185: oxzxxx#3 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=185: oxzxxx#3 nsp=1 mass=0 - 3.000000000000000e+01, 0.000000000000000e+00, // itest=185: oxzxxx#3 nsp=1 mass=0 - 6.000000000000000e+00, -8.000000000000000e+00, // itest=185: oxzxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=185: oxzxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=185: oxzxxx#3 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 4.000000000000000e+02, // itest=186: ixxxxx#4 nsp=1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=186: ixxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=186: ixxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=186: ixxxxx#4 nsp=1 mass=0 - 1.000000000000000e+01, 0.000000000000000e+00, // itest=186: ixxxxx#4 nsp=1 mass=0 - 1.800000000000000e+01, 2.400000000000000e+01 } ); // itest=186: ixxxxx#4 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 4.000000000000000e+02, // itest=187: ixxxxx#4 nsp=1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=187: ixxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=187: ixxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=187: ixxxxx#4 nsp=1 mass=0 - 1.000000000000000e+01, 0.000000000000000e+00, // itest=187: ixxxxx#4 nsp=1 mass=0 - 1.800000000000000e+01, 2.400000000000000e+01 } ); // itest=187: ixxxxx#4 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 4.000000000000000e+02, // itest=188: ixzxxx#4 nsp=1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=188: ixzxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=188: ixzxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=188: ixzxxx#4 nsp=1 mass=0 - 1.000000000000000e+01, 0.000000000000000e+00, // itest=188: ixzxxx#4 nsp=1 mass=0 - 1.800000000000000e+01, 2.400000000000000e+01 } ); // itest=188: ixzxxx#4 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -4.000000000000000e+02, // itest=189: vxxxxx#4 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=189: vxxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=189: vxxxxx#4 nsp=1 mass=0 - 3.394112549695428e-01, -5.656854249492381e-01, // itest=189: vxxxxx#4 nsp=1 mass=0 - 4.525483399593904e-01, 4.242640687119285e-01, // itest=189: vxxxxx#4 nsp=1 mass=0 - 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=189: vxxxxx#4 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -4.000000000000000e+02, // itest=190: vxxxxx#4 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=190: vxxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=190: vxxxxx#4 nsp=1 mass=0 - 3.394112549695428e-01, -5.656854249492381e-01, // itest=190: vxxxxx#4 nsp=1 mass=0 - 4.525483399593904e-01, 4.242640687119285e-01, // itest=190: vxxxxx#4 nsp=1 mass=0 - 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=190: vxxxxx#4 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -4.000000000000000e+02, // itest=191: sxxxxx#4 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=191: sxxxxx#4 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=191: sxxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=191: sxxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=191: sxxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=191: sxxxxx#4 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -4.000000000000000e+02, // itest=192: sxxxxx#4 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=192: sxxxxx#4 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=192: sxxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=192: sxxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=192: sxxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=192: sxxxxx#4 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -4.000000000000000e+02, // itest=193: oxxxxx#4 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=193: oxxxxx#4 nsp=1 mass=0 - 1.000000000000000e+01, 0.000000000000000e+00, // itest=193: oxxxxx#4 nsp=1 mass=0 - 1.800000000000000e+01, -2.400000000000000e+01, // itest=193: oxxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=193: oxxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=193: oxxxxx#4 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -4.000000000000000e+02, // itest=194: oxxxxx#4 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=194: oxxxxx#4 nsp=1 mass=0 - 1.000000000000000e+01, 0.000000000000000e+00, // itest=194: oxxxxx#4 nsp=1 mass=0 - 1.800000000000000e+01, -2.400000000000000e+01, // itest=194: oxxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=194: oxxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=194: oxxxxx#4 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -4.000000000000000e+02, // itest=195: oxzxxx#4 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=195: oxzxxx#4 nsp=1 mass=0 - 1.000000000000000e+01, 0.000000000000000e+00, // itest=195: oxzxxx#4 nsp=1 mass=0 - 1.800000000000000e+01, -2.400000000000000e+01, // itest=195: oxzxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=195: oxzxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=195: oxzxxx#4 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=196: ixxxxx#5 nsp=1 mass=500 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=196: ixxxxx#5 nsp=1 mass=500 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=196: ixxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=196: ixxxxx#5 nsp=1 mass=500 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=196: ixxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=196: ixxxxx#5 nsp=1 mass=500 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=197: ixxxxx#5 nsp=1 mass=-500 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=197: ixxxxx#5 nsp=1 mass=-500 - -2.236067977499790e+01, 0.000000000000000e+00, // itest=197: ixxxxx#5 nsp=1 mass=-500 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=197: ixxxxx#5 nsp=1 mass=-500 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=197: ixxxxx#5 nsp=1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=197: ixxxxx#5 nsp=1 mass=-500 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=198: vxxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=198: vxxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=198: vxxxxx#5 nsp=1 mass=500 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=198: vxxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 7.071067811865476e-01, // itest=198: vxxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=198: vxxxxx#5 nsp=1 mass=500 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=199: vxxxxx#5 nsp=1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=199: vxxxxx#5 nsp=1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=199: vxxxxx#5 nsp=1 mass=-500 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=199: vxxxxx#5 nsp=1 mass=-500 - 0.000000000000000e+00, 7.071067811865476e-01, // itest=199: vxxxxx#5 nsp=1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=199: vxxxxx#5 nsp=1 mass=-500 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=200: sxxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=200: sxxxxx#5 nsp=1 mass=500 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=200: sxxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=200: sxxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=200: sxxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=200: sxxxxx#5 nsp=1 mass=500 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=201: sxxxxx#5 nsp=1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=201: sxxxxx#5 nsp=1 mass=-500 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=201: sxxxxx#5 nsp=1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=201: sxxxxx#5 nsp=1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=201: sxxxxx#5 nsp=1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=201: sxxxxx#5 nsp=1 mass=-500 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=202: oxxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=202: oxxxxx#5 nsp=1 mass=500 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=202: oxxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=202: oxxxxx#5 nsp=1 mass=500 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=202: oxxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=202: oxxxxx#5 nsp=1 mass=500 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=203: oxxxxx#5 nsp=1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=203: oxxxxx#5 nsp=1 mass=-500 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=203: oxxxxx#5 nsp=1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=203: oxxxxx#5 nsp=1 mass=-500 - -2.236067977499790e+01, 0.000000000000000e+00, // itest=203: oxxxxx#5 nsp=1 mass=-500 - -0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=203: oxxxxx#5 nsp=1 mass=-500 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -3.000000000000000e+02, // itest=204: ixxxxx#6 nsp=1 mass=400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=204: ixxxxx#6 nsp=1 mass=400 - 1.414213562373095e+01, 0.000000000000000e+00, // itest=204: ixxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=204: ixxxxx#6 nsp=1 mass=400 - 2.828427124746190e+01, 0.000000000000000e+00, // itest=204: ixxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=204: ixxxxx#6 nsp=1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -3.000000000000000e+02, // itest=205: ixxxxx#6 nsp=1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=205: ixxxxx#6 nsp=1 mass=-400 - -1.414213562373095e+01, -0.000000000000000e+00, // itest=205: ixxxxx#6 nsp=1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=205: ixxxxx#6 nsp=1 mass=-400 - 2.828427124746190e+01, 0.000000000000000e+00, // itest=205: ixxxxx#6 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=205: ixxxxx#6 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 3.000000000000000e+02, // itest=206: vxxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=206: vxxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=206: vxxxxx#6 nsp=1 mass=400 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=206: vxxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, 7.071067811865476e-01, // itest=206: vxxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=206: vxxxxx#6 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 3.000000000000000e+02, // itest=207: vxxxxx#6 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=207: vxxxxx#6 nsp=1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=207: vxxxxx#6 nsp=1 mass=-400 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=207: vxxxxx#6 nsp=1 mass=-400 - 0.000000000000000e+00, 7.071067811865476e-01, // itest=207: vxxxxx#6 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=207: vxxxxx#6 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 3.000000000000000e+02, // itest=208: sxxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=208: sxxxxx#6 nsp=1 mass=400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=208: sxxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=208: sxxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=208: sxxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=208: sxxxxx#6 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 3.000000000000000e+02, // itest=209: sxxxxx#6 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=209: sxxxxx#6 nsp=1 mass=-400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=209: sxxxxx#6 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=209: sxxxxx#6 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=209: sxxxxx#6 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=209: sxxxxx#6 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 3.000000000000000e+02, // itest=210: oxxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=210: oxxxxx#6 nsp=1 mass=400 - 2.828427124746190e+01, 0.000000000000000e+00, // itest=210: oxxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=210: oxxxxx#6 nsp=1 mass=400 - 1.414213562373095e+01, 0.000000000000000e+00, // itest=210: oxxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=210: oxxxxx#6 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 3.000000000000000e+02, // itest=211: oxxxxx#6 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=211: oxxxxx#6 nsp=1 mass=-400 - 2.828427124746190e+01, 0.000000000000000e+00, // itest=211: oxxxxx#6 nsp=1 mass=-400 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=211: oxxxxx#6 nsp=1 mass=-400 - -1.414213562373095e+01, -0.000000000000000e+00, // itest=211: oxxxxx#6 nsp=1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=211: oxxxxx#6 nsp=1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 3.000000000000000e+02, // itest=212: ixxxxx#7 nsp=1 mass=400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=212: ixxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=212: ixxxxx#7 nsp=1 mass=400 - -1.414213562373095e+01, 0.000000000000000e+00, // itest=212: ixxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=212: ixxxxx#7 nsp=1 mass=400 - -2.828427124746190e+01, 0.000000000000000e+00 } ); // itest=212: ixxxxx#7 nsp=1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 3.000000000000000e+02, // itest=213: ixxxxx#7 nsp=1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=213: ixxxxx#7 nsp=1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=213: ixxxxx#7 nsp=1 mass=-400 - 1.414213562373095e+01, -0.000000000000000e+00, // itest=213: ixxxxx#7 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=213: ixxxxx#7 nsp=1 mass=-400 - -2.828427124746190e+01, 0.000000000000000e+00 } ); // itest=213: ixxxxx#7 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -3.000000000000000e+02, // itest=214: vxxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=214: vxxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=214: vxxxxx#7 nsp=1 mass=400 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=214: vxxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, -7.071067811865476e-01, // itest=214: vxxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=214: vxxxxx#7 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -3.000000000000000e+02, // itest=215: vxxxxx#7 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=215: vxxxxx#7 nsp=1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=215: vxxxxx#7 nsp=1 mass=-400 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=215: vxxxxx#7 nsp=1 mass=-400 - 0.000000000000000e+00, -7.071067811865476e-01, // itest=215: vxxxxx#7 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=215: vxxxxx#7 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -3.000000000000000e+02, // itest=216: sxxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=216: sxxxxx#7 nsp=1 mass=400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=216: sxxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=216: sxxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=216: sxxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=216: sxxxxx#7 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -3.000000000000000e+02, // itest=217: sxxxxx#7 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=217: sxxxxx#7 nsp=1 mass=-400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=217: sxxxxx#7 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=217: sxxxxx#7 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=217: sxxxxx#7 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=217: sxxxxx#7 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -3.000000000000000e+02, // itest=218: oxxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=218: oxxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=218: oxxxxx#7 nsp=1 mass=400 - -2.828427124746190e+01, 0.000000000000000e+00, // itest=218: oxxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=218: oxxxxx#7 nsp=1 mass=400 - -1.414213562373095e+01, 0.000000000000000e+00 } ); // itest=218: oxxxxx#7 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -3.000000000000000e+02, // itest=219: oxxxxx#7 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=219: oxxxxx#7 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=219: oxxxxx#7 nsp=1 mass=-400 - -2.828427124746190e+01, 0.000000000000000e+00, // itest=219: oxxxxx#7 nsp=1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=219: oxxxxx#7 nsp=1 mass=-400 - 1.414213562373095e+01, -0.000000000000000e+00 } ); // itest=219: oxxxxx#7 nsp=1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=220: ixxxxx#8 nsp=1 mass=400 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=220: ixxxxx#8 nsp=1 mass=400 - 1.000000000000000e+01, 0.000000000000000e+00, // itest=220: ixxxxx#8 nsp=1 mass=400 - 5.999999999999999e+00, 7.999999999999999e+00, // itest=220: ixxxxx#8 nsp=1 mass=400 - 2.000000000000000e+01, 0.000000000000000e+00, // itest=220: ixxxxx#8 nsp=1 mass=400 - 1.200000000000000e+01, 1.600000000000000e+01 } ); // itest=220: ixxxxx#8 nsp=1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=221: ixxxxx#8 nsp=1 mass=-400 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=221: ixxxxx#8 nsp=1 mass=-400 - -1.000000000000000e+01, -0.000000000000000e+00, // itest=221: ixxxxx#8 nsp=1 mass=-400 - -5.999999999999999e+00, -7.999999999999999e+00, // itest=221: ixxxxx#8 nsp=1 mass=-400 - 2.000000000000000e+01, 0.000000000000000e+00, // itest=221: ixxxxx#8 nsp=1 mass=-400 - 1.200000000000000e+01, 1.600000000000000e+01 } ); // itest=221: ixxxxx#8 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=222: vxxxxx#8 nsp=1 mass=400 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=222: vxxxxx#8 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=222: vxxxxx#8 nsp=1 mass=400 - 0.000000000000000e+00, -5.656854249492381e-01, // itest=222: vxxxxx#8 nsp=1 mass=400 - 0.000000000000000e+00, 4.242640687119285e-01, // itest=222: vxxxxx#8 nsp=1 mass=400 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=222: vxxxxx#8 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=223: vxxxxx#8 nsp=1 mass=-400 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=223: vxxxxx#8 nsp=1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=223: vxxxxx#8 nsp=1 mass=-400 - -0.000000000000000e+00, -5.656854249492381e-01, // itest=223: vxxxxx#8 nsp=1 mass=-400 - -0.000000000000000e+00, 4.242640687119285e-01, // itest=223: vxxxxx#8 nsp=1 mass=-400 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=223: vxxxxx#8 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=224: sxxxxx#8 nsp=1 mass=400 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=224: sxxxxx#8 nsp=1 mass=400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=224: sxxxxx#8 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=224: sxxxxx#8 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=224: sxxxxx#8 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=224: sxxxxx#8 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=225: sxxxxx#8 nsp=1 mass=-400 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=225: sxxxxx#8 nsp=1 mass=-400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=225: sxxxxx#8 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=225: sxxxxx#8 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=225: sxxxxx#8 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=225: sxxxxx#8 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=226: oxxxxx#8 nsp=1 mass=400 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=226: oxxxxx#8 nsp=1 mass=400 - 2.000000000000000e+01, 0.000000000000000e+00, // itest=226: oxxxxx#8 nsp=1 mass=400 - 1.200000000000000e+01, -1.600000000000000e+01, // itest=226: oxxxxx#8 nsp=1 mass=400 - 1.000000000000000e+01, 0.000000000000000e+00, // itest=226: oxxxxx#8 nsp=1 mass=400 - 5.999999999999999e+00, -7.999999999999999e+00 } ); // itest=226: oxxxxx#8 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=227: oxxxxx#8 nsp=1 mass=-400 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=227: oxxxxx#8 nsp=1 mass=-400 - 2.000000000000000e+01, 0.000000000000000e+00, // itest=227: oxxxxx#8 nsp=1 mass=-400 - 1.200000000000000e+01, -1.600000000000000e+01, // itest=227: oxxxxx#8 nsp=1 mass=-400 - -1.000000000000000e+01, -0.000000000000000e+00, // itest=227: oxxxxx#8 nsp=1 mass=-400 - -5.999999999999999e+00, 7.999999999999999e+00 } ); // itest=227: oxxxxx#8 nsp=1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=228: ixxxxx#9 nsp=1 mass=400 - 2.400000000000000e+02, 1.800000000000000e+02, // itest=228: ixxxxx#9 nsp=1 mass=400 - 1.000000000000000e+01, 0.000000000000000e+00, // itest=228: ixxxxx#9 nsp=1 mass=400 - -7.999999999999999e+00, -5.999999999999999e+00, // itest=228: ixxxxx#9 nsp=1 mass=400 - 2.000000000000000e+01, 0.000000000000000e+00, // itest=228: ixxxxx#9 nsp=1 mass=400 - -1.600000000000000e+01, -1.200000000000000e+01 } ); // itest=228: ixxxxx#9 nsp=1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=229: ixxxxx#9 nsp=1 mass=-400 - 2.400000000000000e+02, 1.800000000000000e+02, // itest=229: ixxxxx#9 nsp=1 mass=-400 - -1.000000000000000e+01, -0.000000000000000e+00, // itest=229: ixxxxx#9 nsp=1 mass=-400 - 7.999999999999999e+00, 5.999999999999999e+00, // itest=229: ixxxxx#9 nsp=1 mass=-400 - 2.000000000000000e+01, 0.000000000000000e+00, // itest=229: ixxxxx#9 nsp=1 mass=-400 - -1.600000000000000e+01, -1.200000000000000e+01 } ); // itest=229: ixxxxx#9 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=230: vxxxxx#9 nsp=1 mass=400 - -2.400000000000000e+02, -1.800000000000000e+02, // itest=230: vxxxxx#9 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=230: vxxxxx#9 nsp=1 mass=400 - 0.000000000000000e+00, 4.242640687119285e-01, // itest=230: vxxxxx#9 nsp=1 mass=400 - 0.000000000000000e+00, -5.656854249492381e-01, // itest=230: vxxxxx#9 nsp=1 mass=400 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=230: vxxxxx#9 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=231: vxxxxx#9 nsp=1 mass=-400 - -2.400000000000000e+02, -1.800000000000000e+02, // itest=231: vxxxxx#9 nsp=1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=231: vxxxxx#9 nsp=1 mass=-400 - 0.000000000000000e+00, 4.242640687119285e-01, // itest=231: vxxxxx#9 nsp=1 mass=-400 - 0.000000000000000e+00, -5.656854249492381e-01, // itest=231: vxxxxx#9 nsp=1 mass=-400 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=231: vxxxxx#9 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=232: sxxxxx#9 nsp=1 mass=400 - -2.400000000000000e+02, -1.800000000000000e+02, // itest=232: sxxxxx#9 nsp=1 mass=400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=232: sxxxxx#9 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=232: sxxxxx#9 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=232: sxxxxx#9 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=232: sxxxxx#9 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=233: sxxxxx#9 nsp=1 mass=-400 - -2.400000000000000e+02, -1.800000000000000e+02, // itest=233: sxxxxx#9 nsp=1 mass=-400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=233: sxxxxx#9 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=233: sxxxxx#9 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=233: sxxxxx#9 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=233: sxxxxx#9 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=234: oxxxxx#9 nsp=1 mass=400 - -2.400000000000000e+02, -1.800000000000000e+02, // itest=234: oxxxxx#9 nsp=1 mass=400 - 2.000000000000000e+01, 0.000000000000000e+00, // itest=234: oxxxxx#9 nsp=1 mass=400 - -1.600000000000000e+01, 1.200000000000000e+01, // itest=234: oxxxxx#9 nsp=1 mass=400 - 1.000000000000000e+01, 0.000000000000000e+00, // itest=234: oxxxxx#9 nsp=1 mass=400 - -7.999999999999999e+00, 5.999999999999999e+00 } ); // itest=234: oxxxxx#9 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=235: oxxxxx#9 nsp=1 mass=-400 - -2.400000000000000e+02, -1.800000000000000e+02, // itest=235: oxxxxx#9 nsp=1 mass=-400 - 2.000000000000000e+01, 0.000000000000000e+00, // itest=235: oxxxxx#9 nsp=1 mass=-400 - -1.600000000000000e+01, 1.200000000000000e+01, // itest=235: oxxxxx#9 nsp=1 mass=-400 - -1.000000000000000e+01, -0.000000000000000e+00, // itest=235: oxxxxx#9 nsp=1 mass=-400 - 7.999999999999999e+00, -5.999999999999999e+00 } ); // itest=235: oxxxxx#9 nsp=1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -1.440000000000000e+02, // itest=236: ixxxxx#10 nsp=1 mass=400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=236: ixxxxx#10 nsp=1 mass=400 - 1.216552506059644e+01, 0.000000000000000e+00, // itest=236: ixxxxx#10 nsp=1 mass=400 - 4.931969619160719e+00, 5.260767593771432e+00, // itest=236: ixxxxx#10 nsp=1 mass=400 - 2.433105012119288e+01, 0.000000000000000e+00, // itest=236: ixxxxx#10 nsp=1 mass=400 - 9.863939238321439e+00, 1.052153518754287e+01 } ); // itest=236: ixxxxx#10 nsp=1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -1.440000000000000e+02, // itest=237: ixxxxx#10 nsp=1 mass=-400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=237: ixxxxx#10 nsp=1 mass=-400 - -1.216552506059644e+01, -0.000000000000000e+00, // itest=237: ixxxxx#10 nsp=1 mass=-400 - -4.931969619160719e+00, -5.260767593771432e+00, // itest=237: ixxxxx#10 nsp=1 mass=-400 - 2.433105012119288e+01, 0.000000000000000e+00, // itest=237: ixxxxx#10 nsp=1 mass=-400 - 9.863939238321439e+00, 1.052153518754287e+01 } ); // itest=237: ixxxxx#10 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 1.440000000000000e+02, // itest=238: vxxxxx#10 nsp=1 mass=400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=238: vxxxxx#10 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=238: vxxxxx#10 nsp=1 mass=400 - -2.321373168788980e-01, -5.158607041753289e-01, // itest=238: vxxxxx#10 nsp=1 mass=400 - -2.476131380041579e-01, 4.836194101643708e-01, // itest=238: vxxxxx#10 nsp=1 mass=400 - 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=238: vxxxxx#10 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 1.440000000000000e+02, // itest=239: vxxxxx#10 nsp=1 mass=-400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=239: vxxxxx#10 nsp=1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=239: vxxxxx#10 nsp=1 mass=-400 - -2.321373168788980e-01, -5.158607041753289e-01, // itest=239: vxxxxx#10 nsp=1 mass=-400 - -2.476131380041579e-01, 4.836194101643708e-01, // itest=239: vxxxxx#10 nsp=1 mass=-400 - 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=239: vxxxxx#10 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 1.440000000000000e+02, // itest=240: sxxxxx#10 nsp=1 mass=400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=240: sxxxxx#10 nsp=1 mass=400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=240: sxxxxx#10 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=240: sxxxxx#10 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=240: sxxxxx#10 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=240: sxxxxx#10 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 1.440000000000000e+02, // itest=241: sxxxxx#10 nsp=1 mass=-400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=241: sxxxxx#10 nsp=1 mass=-400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=241: sxxxxx#10 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=241: sxxxxx#10 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=241: sxxxxx#10 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=241: sxxxxx#10 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 1.440000000000000e+02, // itest=242: oxxxxx#10 nsp=1 mass=400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=242: oxxxxx#10 nsp=1 mass=400 - 2.433105012119288e+01, 0.000000000000000e+00, // itest=242: oxxxxx#10 nsp=1 mass=400 - 9.863939238321439e+00, -1.052153518754287e+01, // itest=242: oxxxxx#10 nsp=1 mass=400 - 1.216552506059644e+01, 0.000000000000000e+00, // itest=242: oxxxxx#10 nsp=1 mass=400 - 4.931969619160719e+00, -5.260767593771432e+00 } ); // itest=242: oxxxxx#10 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 1.440000000000000e+02, // itest=243: oxxxxx#10 nsp=1 mass=-400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=243: oxxxxx#10 nsp=1 mass=-400 - 2.433105012119288e+01, 0.000000000000000e+00, // itest=243: oxxxxx#10 nsp=1 mass=-400 - 9.863939238321439e+00, -1.052153518754287e+01, // itest=243: oxxxxx#10 nsp=1 mass=-400 - -1.216552506059644e+01, -0.000000000000000e+00, // itest=243: oxxxxx#10 nsp=1 mass=-400 - -4.931969619160719e+00, 5.260767593771432e+00 } ); // itest=243: oxxxxx#10 nsp=1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 1.440000000000000e+02, // itest=244: ixxxxx#11 nsp=1 mass=400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=244: ixxxxx#11 nsp=1 mass=400 - 7.211102550927978e+00, 0.000000000000000e+00, // itest=244: ixxxxx#11 nsp=1 mass=400 - 8.320502943378436e+00, 8.875203139603666e+00, // itest=244: ixxxxx#11 nsp=1 mass=400 - 1.442220510185596e+01, 0.000000000000000e+00, // itest=244: ixxxxx#11 nsp=1 mass=400 - 1.664100588675688e+01, 1.775040627920733e+01 } ); // itest=244: ixxxxx#11 nsp=1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 1.440000000000000e+02, // itest=245: ixxxxx#11 nsp=1 mass=-400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=245: ixxxxx#11 nsp=1 mass=-400 - -7.211102550927978e+00, -0.000000000000000e+00, // itest=245: ixxxxx#11 nsp=1 mass=-400 - -8.320502943378436e+00, -8.875203139603666e+00, // itest=245: ixxxxx#11 nsp=1 mass=-400 - 1.442220510185596e+01, 0.000000000000000e+00, // itest=245: ixxxxx#11 nsp=1 mass=-400 - 1.664100588675688e+01, 1.775040627920733e+01 } ); // itest=245: ixxxxx#11 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -1.440000000000000e+02, // itest=246: vxxxxx#11 nsp=1 mass=400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=246: vxxxxx#11 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=246: vxxxxx#11 nsp=1 mass=400 - 2.321373168788980e-01, -5.158607041753289e-01, // itest=246: vxxxxx#11 nsp=1 mass=400 - 2.476131380041579e-01, 4.836194101643708e-01, // itest=246: vxxxxx#11 nsp=1 mass=400 - 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=246: vxxxxx#11 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -1.440000000000000e+02, // itest=247: vxxxxx#11 nsp=1 mass=-400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=247: vxxxxx#11 nsp=1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=247: vxxxxx#11 nsp=1 mass=-400 - 2.321373168788980e-01, -5.158607041753289e-01, // itest=247: vxxxxx#11 nsp=1 mass=-400 - 2.476131380041579e-01, 4.836194101643708e-01, // itest=247: vxxxxx#11 nsp=1 mass=-400 - 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=247: vxxxxx#11 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -1.440000000000000e+02, // itest=248: sxxxxx#11 nsp=1 mass=400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=248: sxxxxx#11 nsp=1 mass=400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=248: sxxxxx#11 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=248: sxxxxx#11 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=248: sxxxxx#11 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=248: sxxxxx#11 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -1.440000000000000e+02, // itest=249: sxxxxx#11 nsp=1 mass=-400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=249: sxxxxx#11 nsp=1 mass=-400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=249: sxxxxx#11 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=249: sxxxxx#11 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=249: sxxxxx#11 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=249: sxxxxx#11 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -1.440000000000000e+02, // itest=250: oxxxxx#11 nsp=1 mass=400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=250: oxxxxx#11 nsp=1 mass=400 - 1.442220510185596e+01, 0.000000000000000e+00, // itest=250: oxxxxx#11 nsp=1 mass=400 - 1.664100588675688e+01, -1.775040627920733e+01, // itest=250: oxxxxx#11 nsp=1 mass=400 - 7.211102550927978e+00, 0.000000000000000e+00, // itest=250: oxxxxx#11 nsp=1 mass=400 - 8.320502943378436e+00, -8.875203139603666e+00 } ); // itest=250: oxxxxx#11 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -1.440000000000000e+02, // itest=251: oxxxxx#11 nsp=1 mass=-400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=251: oxxxxx#11 nsp=1 mass=-400 - 1.442220510185596e+01, 0.000000000000000e+00, // itest=251: oxxxxx#11 nsp=1 mass=-400 - 1.664100588675688e+01, -1.775040627920733e+01, // itest=251: oxxxxx#11 nsp=1 mass=-400 - -7.211102550927978e+00, -0.000000000000000e+00, // itest=251: oxxxxx#11 nsp=1 mass=-400 - -8.320502943378436e+00, 8.875203139603666e+00 } ); // itest=251: oxxxxx#11 nsp=1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=252: ixxxxx#12 nsp=1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=252: ixxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=252: ixxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=252: ixxxxx#12 nsp=1 mass=0 - 3.162277660168379e+01, 0.000000000000000e+00, // itest=252: ixxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=252: ixxxxx#12 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=253: ixxxxx#12 nsp=1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=253: ixxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=253: ixxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=253: ixxxxx#12 nsp=1 mass=0 - 3.162277660168379e+01, 0.000000000000000e+00, // itest=253: ixxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=253: ixxxxx#12 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=254: ipzxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=254: ipzxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=254: ipzxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=254: ipzxxx#12 nsp=1 mass=0 - 3.162277660168379e+01, 0.000000000000000e+00, // itest=254: ipzxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=254: ipzxxx#12 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=255: vxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=255: vxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=255: vxxxxx#12 nsp=1 mass=0 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=255: vxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 7.071067811865476e-01, // itest=255: vxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=255: vxxxxx#12 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=256: vxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=256: vxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=256: vxxxxx#12 nsp=1 mass=0 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=256: vxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 7.071067811865476e-01, // itest=256: vxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=256: vxxxxx#12 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=257: sxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=257: sxxxxx#12 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=257: sxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=257: sxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=257: sxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=257: sxxxxx#12 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=258: sxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=258: sxxxxx#12 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=258: sxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=258: sxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=258: sxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=258: sxxxxx#12 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=259: oxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=259: oxxxxx#12 nsp=1 mass=0 - 3.162277660168379e+01, 0.000000000000000e+00, // itest=259: oxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=259: oxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=259: oxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=259: oxxxxx#12 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=260: oxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=260: oxxxxx#12 nsp=1 mass=0 - 3.162277660168379e+01, 0.000000000000000e+00, // itest=260: oxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=260: oxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=260: oxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=260: oxxxxx#12 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=261: opzxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=261: opzxxx#12 nsp=1 mass=0 - 3.162277660168379e+01, 0.000000000000000e+00, // itest=261: opzxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=261: opzxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=261: opzxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=261: opzxxx#12 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=262: ixxxxx#13 nsp=1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=262: ixxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=262: ixxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=262: ixxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=262: ixxxxx#13 nsp=1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=262: ixxxxx#13 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=263: ixxxxx#13 nsp=1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=263: ixxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=263: ixxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=263: ixxxxx#13 nsp=1 mass=0 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=263: ixxxxx#13 nsp=1 mass=0 - -3.162277660168379e+01, -0.000000000000000e+00 } ); // itest=263: ixxxxx#13 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=264: imzxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=264: imzxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=264: imzxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=264: imzxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=264: imzxxx#13 nsp=1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=264: imzxxx#13 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=265: vxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=265: vxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=265: vxxxxx#13 nsp=1 mass=0 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=265: vxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, -7.071067811865476e-01, // itest=265: vxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=265: vxxxxx#13 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=266: vxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=266: vxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=266: vxxxxx#13 nsp=1 mass=0 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=266: vxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, -7.071067811865476e-01, // itest=266: vxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=266: vxxxxx#13 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=267: sxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=267: sxxxxx#13 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=267: sxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=267: sxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=267: sxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=267: sxxxxx#13 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=268: sxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=268: sxxxxx#13 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=268: sxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=268: sxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=268: sxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=268: sxxxxx#13 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=269: oxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=269: oxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=269: oxxxxx#13 nsp=1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00, // itest=269: oxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=269: oxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=269: oxxxxx#13 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=270: oxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=270: oxxxxx#13 nsp=1 mass=0 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=270: oxxxxx#13 nsp=1 mass=0 - -3.162277660168379e+01, -0.000000000000000e+00, // itest=270: oxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=270: oxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=270: oxxxxx#13 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=271: omzxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=271: omzxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=271: omzxxx#13 nsp=1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00, // itest=271: omzxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=271: omzxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=271: omzxxx#13 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=272: ixxxxx#14 nsp=1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=272: ixxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=272: ixxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=272: ixxxxx#14 nsp=1 mass=0 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=272: ixxxxx#14 nsp=1 mass=0 - 1.341640786499874e+01, 1.788854381999832e+01 } ); // itest=272: ixxxxx#14 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=273: ixxxxx#14 nsp=1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=273: ixxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=273: ixxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=273: ixxxxx#14 nsp=1 mass=0 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=273: ixxxxx#14 nsp=1 mass=0 - 1.341640786499874e+01, 1.788854381999832e+01 } ); // itest=273: ixxxxx#14 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=274: ixzxxx#14 nsp=1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=274: ixzxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=274: ixzxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=274: ixzxxx#14 nsp=1 mass=0 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=274: ixzxxx#14 nsp=1 mass=0 - 1.341640786499874e+01, 1.788854381999832e+01 } ); // itest=274: ixzxxx#14 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=275: vxxxxx#14 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=275: vxxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=275: vxxxxx#14 nsp=1 mass=0 - -0.000000000000000e+00, -5.656854249492381e-01, // itest=275: vxxxxx#14 nsp=1 mass=0 - -0.000000000000000e+00, 4.242640687119285e-01, // itest=275: vxxxxx#14 nsp=1 mass=0 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=275: vxxxxx#14 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=276: vxxxxx#14 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=276: vxxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=276: vxxxxx#14 nsp=1 mass=0 - -0.000000000000000e+00, -5.656854249492381e-01, // itest=276: vxxxxx#14 nsp=1 mass=0 - -0.000000000000000e+00, 4.242640687119285e-01, // itest=276: vxxxxx#14 nsp=1 mass=0 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=276: vxxxxx#14 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=277: sxxxxx#14 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=277: sxxxxx#14 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=277: sxxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=277: sxxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=277: sxxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=277: sxxxxx#14 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=278: sxxxxx#14 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=278: sxxxxx#14 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=278: sxxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=278: sxxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=278: sxxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=278: sxxxxx#14 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=279: oxxxxx#14 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=279: oxxxxx#14 nsp=1 mass=0 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=279: oxxxxx#14 nsp=1 mass=0 - 1.341640786499874e+01, -1.788854381999832e+01, // itest=279: oxxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=279: oxxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=279: oxxxxx#14 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=280: oxxxxx#14 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=280: oxxxxx#14 nsp=1 mass=0 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=280: oxxxxx#14 nsp=1 mass=0 - 1.341640786499874e+01, -1.788854381999832e+01, // itest=280: oxxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=280: oxxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=280: oxxxxx#14 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=281: oxzxxx#14 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=281: oxzxxx#14 nsp=1 mass=0 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=281: oxzxxx#14 nsp=1 mass=0 - 1.341640786499874e+01, -1.788854381999832e+01, // itest=281: oxzxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=281: oxzxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=281: oxzxxx#14 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=282: ixxxxx#15 nsp=1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=282: ixxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=282: ixxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=282: ixxxxx#15 nsp=1 mass=0 - 3.000000000000000e+01, 0.000000000000000e+00, // itest=282: ixxxxx#15 nsp=1 mass=0 - 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=282: ixxxxx#15 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=283: ixxxxx#15 nsp=1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=283: ixxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=283: ixxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=283: ixxxxx#15 nsp=1 mass=0 - 3.000000000000000e+01, 0.000000000000000e+00, // itest=283: ixxxxx#15 nsp=1 mass=0 - 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=283: ixxxxx#15 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=284: ixzxxx#15 nsp=1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=284: ixzxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=284: ixzxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=284: ixzxxx#15 nsp=1 mass=0 - 3.000000000000000e+01, 0.000000000000000e+00, // itest=284: ixzxxx#15 nsp=1 mass=0 - 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=284: ixzxxx#15 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=285: vxxxxx#15 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=285: vxxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=285: vxxxxx#15 nsp=1 mass=0 - -3.394112549695428e-01, -5.656854249492381e-01, // itest=285: vxxxxx#15 nsp=1 mass=0 - -4.525483399593904e-01, 4.242640687119285e-01, // itest=285: vxxxxx#15 nsp=1 mass=0 - 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=285: vxxxxx#15 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=286: vxxxxx#15 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=286: vxxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=286: vxxxxx#15 nsp=1 mass=0 - -3.394112549695428e-01, -5.656854249492381e-01, // itest=286: vxxxxx#15 nsp=1 mass=0 - -4.525483399593904e-01, 4.242640687119285e-01, // itest=286: vxxxxx#15 nsp=1 mass=0 - 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=286: vxxxxx#15 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=287: sxxxxx#15 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=287: sxxxxx#15 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=287: sxxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=287: sxxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=287: sxxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=287: sxxxxx#15 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=288: sxxxxx#15 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=288: sxxxxx#15 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=288: sxxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=288: sxxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=288: sxxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=288: sxxxxx#15 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=289: oxxxxx#15 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=289: oxxxxx#15 nsp=1 mass=0 - 3.000000000000000e+01, 0.000000000000000e+00, // itest=289: oxxxxx#15 nsp=1 mass=0 - 6.000000000000000e+00, -8.000000000000000e+00, // itest=289: oxxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=289: oxxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=289: oxxxxx#15 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=290: oxxxxx#15 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=290: oxxxxx#15 nsp=1 mass=0 - 3.000000000000000e+01, 0.000000000000000e+00, // itest=290: oxxxxx#15 nsp=1 mass=0 - 6.000000000000000e+00, -8.000000000000000e+00, // itest=290: oxxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=290: oxxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=290: oxxxxx#15 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=291: oxzxxx#15 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=291: oxzxxx#15 nsp=1 mass=0 - 3.000000000000000e+01, 0.000000000000000e+00, // itest=291: oxzxxx#15 nsp=1 mass=0 - 6.000000000000000e+00, -8.000000000000000e+00, // itest=291: oxzxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=291: oxzxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=291: oxzxxx#15 nsp=1 mass=0 + 5.000000000000000e+02, 5.000000000000000e+02, // itest=50: ixxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=50: ixxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=50: ixxxxx#5 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=50: ixxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=50: ixxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=50: ixxxxx#5 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=51: ixxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=51: ixxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=51: ixxxxx#5 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=51: ixxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=51: ixxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=51: ixxxxx#5 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=52: ipzxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=52: ipzxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=52: ipzxxx#5 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=52: ipzxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=52: ipzxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=52: ipzxxx#5 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=53: vxxxxx#5 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=53: vxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=53: vxxxxx#5 nsp=-1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=53: vxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=53: vxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=53: vxxxxx#5 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=54: vxxxxx#5 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=54: vxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=54: vxxxxx#5 nsp=-1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=54: vxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=54: vxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=54: vxxxxx#5 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=55: sxxxxx#5 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=55: sxxxxx#5 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=55: sxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=55: sxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=55: sxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=55: sxxxxx#5 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=56: sxxxxx#5 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=56: sxxxxx#5 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=56: sxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=56: sxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=56: sxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=56: sxxxxx#5 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=57: oxxxxx#5 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=57: oxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=57: oxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=57: oxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=57: oxxxxx#5 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=57: oxxxxx#5 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=58: oxxxxx#5 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=58: oxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=58: oxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=58: oxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=58: oxxxxx#5 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=58: oxxxxx#5 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=59: opzxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=59: opzxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=59: opzxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=59: opzxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=59: opzxxx#5 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=59: opzxxx#5 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=60: ixxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=60: ixxxxx#6 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=60: ixxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=60: ixxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=60: ixxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=60: ixxxxx#6 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=61: ixxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=61: ixxxxx#6 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=61: ixxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=61: ixxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=61: ixxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=61: ixxxxx#6 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=62: imzxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=62: imzxxx#6 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=62: imzxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=62: imzxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=62: imzxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=62: imzxxx#6 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=63: vxxxxx#6 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=63: vxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=63: vxxxxx#6 nsp=-1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=63: vxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=63: vxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=63: vxxxxx#6 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=64: vxxxxx#6 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=64: vxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=64: vxxxxx#6 nsp=-1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=64: vxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=64: vxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=64: vxxxxx#6 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=65: sxxxxx#6 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=65: sxxxxx#6 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=65: sxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=65: sxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=65: sxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=65: sxxxxx#6 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=66: sxxxxx#6 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=66: sxxxxx#6 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=66: sxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=66: sxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=66: sxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=66: sxxxxx#6 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=67: oxxxxx#6 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=67: oxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=67: oxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=67: oxxxxx#6 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=67: oxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=67: oxxxxx#6 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=68: oxxxxx#6 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=68: oxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=68: oxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=68: oxxxxx#6 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=68: oxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=68: oxxxxx#6 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=69: omzxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=69: omzxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=69: omzxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=69: omzxxx#6 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=69: omzxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=69: omzxxx#6 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=70: ixxxxx#7 nsp=-1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=70: ixxxxx#7 nsp=-1 mass=0 + 1.341640786499874e+01, -1.788854381999831e+01, // itest=70: ixxxxx#7 nsp=-1 mass=0 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=70: ixxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=70: ixxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=70: ixxxxx#7 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=71: ixxxxx#7 nsp=-1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=71: ixxxxx#7 nsp=-1 mass=0 + 1.341640786499874e+01, -1.788854381999831e+01, // itest=71: ixxxxx#7 nsp=-1 mass=0 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=71: ixxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=71: ixxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=71: ixxxxx#7 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=72: ixzxxx#7 nsp=-1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=72: ixzxxx#7 nsp=-1 mass=0 + 1.341640786499874e+01, -1.788854381999832e+01, // itest=72: ixzxxx#7 nsp=-1 mass=0 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=72: ixzxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=72: ixzxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=72: ixzxxx#7 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=73: vxxxxx#7 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=73: vxxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=73: vxxxxx#7 nsp=-1 mass=0 + -0.000000000000000e+00, 5.656854249492381e-01, // itest=73: vxxxxx#7 nsp=-1 mass=0 + -0.000000000000000e+00, -4.242640687119285e-01, // itest=73: vxxxxx#7 nsp=-1 mass=0 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=73: vxxxxx#7 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=74: vxxxxx#7 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=74: vxxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=74: vxxxxx#7 nsp=-1 mass=0 + -0.000000000000000e+00, 5.656854249492381e-01, // itest=74: vxxxxx#7 nsp=-1 mass=0 + -0.000000000000000e+00, -4.242640687119285e-01, // itest=74: vxxxxx#7 nsp=-1 mass=0 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=74: vxxxxx#7 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=75: sxxxxx#7 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=75: sxxxxx#7 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=75: sxxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=75: sxxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=75: sxxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=75: sxxxxx#7 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=76: sxxxxx#7 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=76: sxxxxx#7 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=76: sxxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=76: sxxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=76: sxxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=76: sxxxxx#7 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=77: oxxxxx#7 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=77: oxxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=77: oxxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=77: oxxxxx#7 nsp=-1 mass=0 + 1.341640786499874e+01, 1.788854381999831e+01, // itest=77: oxxxxx#7 nsp=-1 mass=0 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=77: oxxxxx#7 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=78: oxxxxx#7 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=78: oxxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=78: oxxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=78: oxxxxx#7 nsp=-1 mass=0 + 1.341640786499874e+01, 1.788854381999831e+01, // itest=78: oxxxxx#7 nsp=-1 mass=0 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=78: oxxxxx#7 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=79: oxzxxx#7 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=79: oxzxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=79: oxzxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=79: oxzxxx#7 nsp=-1 mass=0 + 1.341640786499874e+01, 1.788854381999832e+01, // itest=79: oxzxxx#7 nsp=-1 mass=0 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=79: oxzxxx#7 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=80: ixxxxx#8 nsp=-1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=80: ixxxxx#8 nsp=-1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=80: ixxxxx#8 nsp=-1 mass=0 + -3.000000000000000e+01, 0.000000000000000e+00, // itest=80: ixxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=80: ixxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=80: ixxxxx#8 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=81: ixxxxx#8 nsp=-1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=81: ixxxxx#8 nsp=-1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=81: ixxxxx#8 nsp=-1 mass=0 + -3.000000000000000e+01, 0.000000000000000e+00, // itest=81: ixxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=81: ixxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=81: ixxxxx#8 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=82: ixzxxx#8 nsp=-1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=82: ixzxxx#8 nsp=-1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=82: ixzxxx#8 nsp=-1 mass=0 + -3.000000000000000e+01, 0.000000000000000e+00, // itest=82: ixzxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=82: ixzxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=82: ixzxxx#8 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=83: vxxxxx#8 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=83: vxxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=83: vxxxxx#8 nsp=-1 mass=0 + -3.394112549695428e-01, 5.656854249492381e-01, // itest=83: vxxxxx#8 nsp=-1 mass=0 + -4.525483399593904e-01, -4.242640687119285e-01, // itest=83: vxxxxx#8 nsp=-1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=83: vxxxxx#8 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=84: vxxxxx#8 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=84: vxxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=84: vxxxxx#8 nsp=-1 mass=0 + -3.394112549695428e-01, 5.656854249492381e-01, // itest=84: vxxxxx#8 nsp=-1 mass=0 + -4.525483399593904e-01, -4.242640687119285e-01, // itest=84: vxxxxx#8 nsp=-1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=84: vxxxxx#8 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=85: sxxxxx#8 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=85: sxxxxx#8 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=85: sxxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=85: sxxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=85: sxxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=85: sxxxxx#8 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=86: sxxxxx#8 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=86: sxxxxx#8 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=86: sxxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=86: sxxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=86: sxxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=86: sxxxxx#8 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=87: oxxxxx#8 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=87: oxxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=87: oxxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=87: oxxxxx#8 nsp=-1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00, // itest=87: oxxxxx#8 nsp=-1 mass=0 + -3.000000000000000e+01, 0.000000000000000e+00 } ); // itest=87: oxxxxx#8 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=88: oxxxxx#8 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=88: oxxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=88: oxxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=88: oxxxxx#8 nsp=-1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00, // itest=88: oxxxxx#8 nsp=-1 mass=0 + -3.000000000000000e+01, 0.000000000000000e+00 } ); // itest=88: oxxxxx#8 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=89: oxzxxx#8 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=89: oxzxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=89: oxzxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=89: oxzxxx#8 nsp=-1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00, // itest=89: oxzxxx#8 nsp=-1 mass=0 + -3.000000000000000e+01, 0.000000000000000e+00 } ); // itest=89: oxzxxx#8 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=90: ixxxxx#9 nsp=-1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=90: ixxxxx#9 nsp=-1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=90: ixxxxx#9 nsp=-1 mass=0 + -1.000000000000000e+01, 0.000000000000000e+00, // itest=90: ixxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=90: ixxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=90: ixxxxx#9 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=91: ixxxxx#9 nsp=-1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=91: ixxxxx#9 nsp=-1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=91: ixxxxx#9 nsp=-1 mass=0 + -1.000000000000000e+01, 0.000000000000000e+00, // itest=91: ixxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=91: ixxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=91: ixxxxx#9 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=92: ixzxxx#9 nsp=-1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=92: ixzxxx#9 nsp=-1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=92: ixzxxx#9 nsp=-1 mass=0 + -1.000000000000000e+01, 0.000000000000000e+00, // itest=92: ixzxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=92: ixzxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=92: ixzxxx#9 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=93: vxxxxx#9 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=93: vxxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=93: vxxxxx#9 nsp=-1 mass=0 + 3.394112549695428e-01, 5.656854249492381e-01, // itest=93: vxxxxx#9 nsp=-1 mass=0 + 4.525483399593904e-01, -4.242640687119285e-01, // itest=93: vxxxxx#9 nsp=-1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=93: vxxxxx#9 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=94: vxxxxx#9 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=94: vxxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=94: vxxxxx#9 nsp=-1 mass=0 + 3.394112549695428e-01, 5.656854249492381e-01, // itest=94: vxxxxx#9 nsp=-1 mass=0 + 4.525483399593904e-01, -4.242640687119285e-01, // itest=94: vxxxxx#9 nsp=-1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=94: vxxxxx#9 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=95: sxxxxx#9 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=95: sxxxxx#9 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=95: sxxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=95: sxxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=95: sxxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=95: sxxxxx#9 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=96: sxxxxx#9 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=96: sxxxxx#9 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=96: sxxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=96: sxxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=96: sxxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=96: sxxxxx#9 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=97: oxxxxx#9 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=97: oxxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=97: oxxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=97: oxxxxx#9 nsp=-1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01, // itest=97: oxxxxx#9 nsp=-1 mass=0 + -1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=97: oxxxxx#9 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=98: oxxxxx#9 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=98: oxxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=98: oxxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=98: oxxxxx#9 nsp=-1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01, // itest=98: oxxxxx#9 nsp=-1 mass=0 + -1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=98: oxxxxx#9 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=99: oxzxxx#9 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=99: oxzxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=99: oxzxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=99: oxzxxx#9 nsp=-1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01, // itest=99: oxzxxx#9 nsp=-1 mass=0 + -1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=99: oxzxxx#9 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=100: ixxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=100: ixxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=100: ixxxxx#10 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=100: ixxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=100: ixxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=100: ixxxxx#10 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=101: ixxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=101: ixxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=101: ixxxxx#10 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=101: ixxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=101: ixxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=101: ixxxxx#10 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=102: ipzxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=102: ipzxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=102: ipzxxx#10 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=102: ipzxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=102: ipzxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=102: ipzxxx#10 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=103: vxxxxx#10 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=103: vxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=103: vxxxxx#10 nsp=-1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=103: vxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=103: vxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=103: vxxxxx#10 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=104: vxxxxx#10 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=104: vxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=104: vxxxxx#10 nsp=-1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=104: vxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=104: vxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=104: vxxxxx#10 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=105: sxxxxx#10 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=105: sxxxxx#10 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=105: sxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=105: sxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=105: sxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=105: sxxxxx#10 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=106: sxxxxx#10 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=106: sxxxxx#10 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=106: sxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=106: sxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=106: sxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=106: sxxxxx#10 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=107: oxxxxx#10 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=107: oxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=107: oxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=107: oxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=107: oxxxxx#10 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=107: oxxxxx#10 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=108: oxxxxx#10 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=108: oxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=108: oxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=108: oxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=108: oxxxxx#10 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=108: oxxxxx#10 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=109: opzxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=109: opzxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=109: opzxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=109: opzxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=109: opzxxx#10 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=109: opzxxx#10 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=110: ixxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=110: ixxxxx#11 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=110: ixxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=110: ixxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=110: ixxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=110: ixxxxx#11 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=111: ixxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=111: ixxxxx#11 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=111: ixxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=111: ixxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=111: ixxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=111: ixxxxx#11 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=112: imzxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=112: imzxxx#11 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=112: imzxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=112: imzxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=112: imzxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=112: imzxxx#11 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=113: vxxxxx#11 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=113: vxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=113: vxxxxx#11 nsp=-1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=113: vxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=113: vxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=113: vxxxxx#11 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=114: vxxxxx#11 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=114: vxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=114: vxxxxx#11 nsp=-1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=114: vxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=114: vxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=114: vxxxxx#11 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=115: sxxxxx#11 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=115: sxxxxx#11 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=115: sxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=115: sxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=115: sxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=115: sxxxxx#11 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=116: sxxxxx#11 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=116: sxxxxx#11 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=116: sxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=116: sxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=116: sxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=116: sxxxxx#11 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=117: oxxxxx#11 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=117: oxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=117: oxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=117: oxxxxx#11 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=117: oxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=117: oxxxxx#11 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=118: oxxxxx#11 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=118: oxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=118: oxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=118: oxxxxx#11 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=118: oxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=118: oxxxxx#11 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=119: omzxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=119: omzxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=119: omzxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=119: omzxxx#11 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=119: omzxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=119: omzxxx#11 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=120: ixxxxx#12 nsp=-1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=120: ixxxxx#12 nsp=-1 mass=0 + 1.341640786499874e+01, -1.788854381999831e+01, // itest=120: ixxxxx#12 nsp=-1 mass=0 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=120: ixxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=120: ixxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=120: ixxxxx#12 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=121: ixxxxx#12 nsp=-1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=121: ixxxxx#12 nsp=-1 mass=0 + 1.341640786499874e+01, -1.788854381999831e+01, // itest=121: ixxxxx#12 nsp=-1 mass=0 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=121: ixxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=121: ixxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=121: ixxxxx#12 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=122: ixzxxx#12 nsp=-1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=122: ixzxxx#12 nsp=-1 mass=0 + 1.341640786499874e+01, -1.788854381999832e+01, // itest=122: ixzxxx#12 nsp=-1 mass=0 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=122: ixzxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=122: ixzxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=122: ixzxxx#12 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=123: vxxxxx#12 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=123: vxxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=123: vxxxxx#12 nsp=-1 mass=0 + -0.000000000000000e+00, 5.656854249492381e-01, // itest=123: vxxxxx#12 nsp=-1 mass=0 + -0.000000000000000e+00, -4.242640687119285e-01, // itest=123: vxxxxx#12 nsp=-1 mass=0 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=123: vxxxxx#12 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=124: vxxxxx#12 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=124: vxxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=124: vxxxxx#12 nsp=-1 mass=0 + -0.000000000000000e+00, 5.656854249492381e-01, // itest=124: vxxxxx#12 nsp=-1 mass=0 + -0.000000000000000e+00, -4.242640687119285e-01, // itest=124: vxxxxx#12 nsp=-1 mass=0 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=124: vxxxxx#12 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=125: sxxxxx#12 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=125: sxxxxx#12 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=125: sxxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=125: sxxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=125: sxxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=125: sxxxxx#12 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=126: sxxxxx#12 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=126: sxxxxx#12 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=126: sxxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=126: sxxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=126: sxxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=126: sxxxxx#12 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=127: oxxxxx#12 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=127: oxxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=127: oxxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=127: oxxxxx#12 nsp=-1 mass=0 + 1.341640786499874e+01, 1.788854381999831e+01, // itest=127: oxxxxx#12 nsp=-1 mass=0 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=127: oxxxxx#12 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=128: oxxxxx#12 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=128: oxxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=128: oxxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=128: oxxxxx#12 nsp=-1 mass=0 + 1.341640786499874e+01, 1.788854381999831e+01, // itest=128: oxxxxx#12 nsp=-1 mass=0 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=128: oxxxxx#12 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=129: oxzxxx#12 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=129: oxzxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=129: oxzxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=129: oxzxxx#12 nsp=-1 mass=0 + 1.341640786499874e+01, 1.788854381999832e+01, // itest=129: oxzxxx#12 nsp=-1 mass=0 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=129: oxzxxx#12 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=130: ixxxxx#13 nsp=-1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=130: ixxxxx#13 nsp=-1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=130: ixxxxx#13 nsp=-1 mass=0 + -3.000000000000000e+01, 0.000000000000000e+00, // itest=130: ixxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=130: ixxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=130: ixxxxx#13 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=131: ixxxxx#13 nsp=-1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=131: ixxxxx#13 nsp=-1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=131: ixxxxx#13 nsp=-1 mass=0 + -3.000000000000000e+01, 0.000000000000000e+00, // itest=131: ixxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=131: ixxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=131: ixxxxx#13 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=132: ixzxxx#13 nsp=-1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=132: ixzxxx#13 nsp=-1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=132: ixzxxx#13 nsp=-1 mass=0 + -3.000000000000000e+01, 0.000000000000000e+00, // itest=132: ixzxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=132: ixzxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=132: ixzxxx#13 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=133: vxxxxx#13 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=133: vxxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=133: vxxxxx#13 nsp=-1 mass=0 + -3.394112549695428e-01, 5.656854249492381e-01, // itest=133: vxxxxx#13 nsp=-1 mass=0 + -4.525483399593904e-01, -4.242640687119285e-01, // itest=133: vxxxxx#13 nsp=-1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=133: vxxxxx#13 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=134: vxxxxx#13 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=134: vxxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=134: vxxxxx#13 nsp=-1 mass=0 + -3.394112549695428e-01, 5.656854249492381e-01, // itest=134: vxxxxx#13 nsp=-1 mass=0 + -4.525483399593904e-01, -4.242640687119285e-01, // itest=134: vxxxxx#13 nsp=-1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=134: vxxxxx#13 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=135: sxxxxx#13 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=135: sxxxxx#13 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=135: sxxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=135: sxxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=135: sxxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=135: sxxxxx#13 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=136: sxxxxx#13 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=136: sxxxxx#13 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=136: sxxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=136: sxxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=136: sxxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=136: sxxxxx#13 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=137: oxxxxx#13 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=137: oxxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=137: oxxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=137: oxxxxx#13 nsp=-1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00, // itest=137: oxxxxx#13 nsp=-1 mass=0 + -3.000000000000000e+01, 0.000000000000000e+00 } ); // itest=137: oxxxxx#13 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=138: oxxxxx#13 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=138: oxxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=138: oxxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=138: oxxxxx#13 nsp=-1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00, // itest=138: oxxxxx#13 nsp=-1 mass=0 + -3.000000000000000e+01, 0.000000000000000e+00 } ); // itest=138: oxxxxx#13 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=139: oxzxxx#13 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=139: oxzxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=139: oxzxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=139: oxzxxx#13 nsp=-1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00, // itest=139: oxzxxx#13 nsp=-1 mass=0 + -3.000000000000000e+01, 0.000000000000000e+00 } ); // itest=139: oxzxxx#13 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=140: ixxxxx#14 nsp=-1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=140: ixxxxx#14 nsp=-1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=140: ixxxxx#14 nsp=-1 mass=0 + -1.000000000000000e+01, 0.000000000000000e+00, // itest=140: ixxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=140: ixxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=140: ixxxxx#14 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=141: ixxxxx#14 nsp=-1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=141: ixxxxx#14 nsp=-1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=141: ixxxxx#14 nsp=-1 mass=0 + -1.000000000000000e+01, 0.000000000000000e+00, // itest=141: ixxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=141: ixxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=141: ixxxxx#14 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=142: ixzxxx#14 nsp=-1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=142: ixzxxx#14 nsp=-1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=142: ixzxxx#14 nsp=-1 mass=0 + -1.000000000000000e+01, 0.000000000000000e+00, // itest=142: ixzxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=142: ixzxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=142: ixzxxx#14 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=143: vxxxxx#14 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=143: vxxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=143: vxxxxx#14 nsp=-1 mass=0 + 3.394112549695428e-01, 5.656854249492381e-01, // itest=143: vxxxxx#14 nsp=-1 mass=0 + 4.525483399593904e-01, -4.242640687119285e-01, // itest=143: vxxxxx#14 nsp=-1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=143: vxxxxx#14 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=144: vxxxxx#14 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=144: vxxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=144: vxxxxx#14 nsp=-1 mass=0 + 3.394112549695428e-01, 5.656854249492381e-01, // itest=144: vxxxxx#14 nsp=-1 mass=0 + 4.525483399593904e-01, -4.242640687119285e-01, // itest=144: vxxxxx#14 nsp=-1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=144: vxxxxx#14 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=145: sxxxxx#14 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=145: sxxxxx#14 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=145: sxxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=145: sxxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=145: sxxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=145: sxxxxx#14 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=146: sxxxxx#14 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=146: sxxxxx#14 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=146: sxxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=146: sxxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=146: sxxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=146: sxxxxx#14 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=147: oxxxxx#14 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=147: oxxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=147: oxxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=147: oxxxxx#14 nsp=-1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01, // itest=147: oxxxxx#14 nsp=-1 mass=0 + -1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=147: oxxxxx#14 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=148: oxxxxx#14 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=148: oxxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=148: oxxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=148: oxxxxx#14 nsp=-1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01, // itest=148: oxxxxx#14 nsp=-1 mass=0 + -1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=148: oxxxxx#14 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=149: oxzxxx#14 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=149: oxzxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=149: oxzxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=149: oxzxxx#14 nsp=-1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01, // itest=149: oxzxxx#14 nsp=-1 mass=0 + -1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=149: oxzxxx#14 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=150: ixxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=150: ixxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=150: ixxxxx#15 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=150: ixxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=150: ixxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=150: ixxxxx#15 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=151: ixxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=151: ixxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=151: ixxxxx#15 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=151: ixxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=151: ixxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=151: ixxxxx#15 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=152: ipzxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=152: ipzxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=152: ipzxxx#15 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=152: ipzxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=152: ipzxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=152: ipzxxx#15 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=153: vxxxxx#15 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=153: vxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=153: vxxxxx#15 nsp=-1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=153: vxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=153: vxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=153: vxxxxx#15 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=154: vxxxxx#15 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=154: vxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=154: vxxxxx#15 nsp=-1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=154: vxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=154: vxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=154: vxxxxx#15 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=155: sxxxxx#15 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=155: sxxxxx#15 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=155: sxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=155: sxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=155: sxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=155: sxxxxx#15 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=156: sxxxxx#15 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=156: sxxxxx#15 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=156: sxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=156: sxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=156: sxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=156: sxxxxx#15 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=157: oxxxxx#15 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=157: oxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=157: oxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=157: oxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=157: oxxxxx#15 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=157: oxxxxx#15 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=158: oxxxxx#15 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=158: oxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=158: oxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=158: oxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=158: oxxxxx#15 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=158: oxxxxx#15 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=159: opzxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=159: opzxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=159: opzxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=159: opzxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=159: opzxxx#15 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=159: opzxxx#15 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=160: ixxxxx#16 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=160: ixxxxx#16 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=160: ixxxxx#16 nsp=-1 mass=500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=160: ixxxxx#16 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=160: ixxxxx#16 nsp=-1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=160: ixxxxx#16 nsp=-1 mass=500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=161: ixxxxx#16 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=161: ixxxxx#16 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=161: ixxxxx#16 nsp=-1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=161: ixxxxx#16 nsp=-1 mass=-500 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=161: ixxxxx#16 nsp=-1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=161: ixxxxx#16 nsp=-1 mass=-500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=162: vxxxxx#16 nsp=-1 mass=500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=162: vxxxxx#16 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=162: vxxxxx#16 nsp=-1 mass=500 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=162: vxxxxx#16 nsp=-1 mass=500 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=162: vxxxxx#16 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=162: vxxxxx#16 nsp=-1 mass=500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=163: vxxxxx#16 nsp=-1 mass=-500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=163: vxxxxx#16 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=163: vxxxxx#16 nsp=-1 mass=-500 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=163: vxxxxx#16 nsp=-1 mass=-500 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=163: vxxxxx#16 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=163: vxxxxx#16 nsp=-1 mass=-500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=164: sxxxxx#16 nsp=-1 mass=500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=164: sxxxxx#16 nsp=-1 mass=500 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=164: sxxxxx#16 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=164: sxxxxx#16 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=164: sxxxxx#16 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=164: sxxxxx#16 nsp=-1 mass=500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=165: sxxxxx#16 nsp=-1 mass=-500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=165: sxxxxx#16 nsp=-1 mass=-500 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=165: sxxxxx#16 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=165: sxxxxx#16 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=165: sxxxxx#16 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=165: sxxxxx#16 nsp=-1 mass=-500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=166: oxxxxx#16 nsp=-1 mass=500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=166: oxxxxx#16 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=166: oxxxxx#16 nsp=-1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=166: oxxxxx#16 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=166: oxxxxx#16 nsp=-1 mass=500 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=166: oxxxxx#16 nsp=-1 mass=500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=167: oxxxxx#16 nsp=-1 mass=-500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=167: oxxxxx#16 nsp=-1 mass=-500 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=167: oxxxxx#16 nsp=-1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=167: oxxxxx#16 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=167: oxxxxx#16 nsp=-1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=167: oxxxxx#16 nsp=-1 mass=-500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=168: ixxxxx#17 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=168: ixxxxx#17 nsp=-1 mass=400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=168: ixxxxx#17 nsp=-1 mass=400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=168: ixxxxx#17 nsp=-1 mass=400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=168: ixxxxx#17 nsp=-1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00 } ); // itest=168: ixxxxx#17 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=169: ixxxxx#17 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=169: ixxxxx#17 nsp=-1 mass=-400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=169: ixxxxx#17 nsp=-1 mass=-400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=169: ixxxxx#17 nsp=-1 mass=-400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=169: ixxxxx#17 nsp=-1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00 } ); // itest=169: ixxxxx#17 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=170: vxxxxx#17 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=170: vxxxxx#17 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=170: vxxxxx#17 nsp=-1 mass=400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=170: vxxxxx#17 nsp=-1 mass=400 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=170: vxxxxx#17 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=170: vxxxxx#17 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=171: vxxxxx#17 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=171: vxxxxx#17 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=171: vxxxxx#17 nsp=-1 mass=-400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=171: vxxxxx#17 nsp=-1 mass=-400 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=171: vxxxxx#17 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=171: vxxxxx#17 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=172: sxxxxx#17 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=172: sxxxxx#17 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=172: sxxxxx#17 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=172: sxxxxx#17 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=172: sxxxxx#17 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=172: sxxxxx#17 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=173: sxxxxx#17 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=173: sxxxxx#17 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=173: sxxxxx#17 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=173: sxxxxx#17 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=173: sxxxxx#17 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=173: sxxxxx#17 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=174: oxxxxx#17 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=174: oxxxxx#17 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=174: oxxxxx#17 nsp=-1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=174: oxxxxx#17 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=174: oxxxxx#17 nsp=-1 mass=400 + -2.828427124746190e+01, -0.000000000000000e+00 } ); // itest=174: oxxxxx#17 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=175: oxxxxx#17 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=175: oxxxxx#17 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=175: oxxxxx#17 nsp=-1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=175: oxxxxx#17 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=175: oxxxxx#17 nsp=-1 mass=-400 + -2.828427124746190e+01, -0.000000000000000e+00 } ); // itest=175: oxxxxx#17 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=176: ixxxxx#18 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=176: ixxxxx#18 nsp=-1 mass=400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=176: ixxxxx#18 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=176: ixxxxx#18 nsp=-1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=176: ixxxxx#18 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=176: ixxxxx#18 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=177: ixxxxx#18 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=177: ixxxxx#18 nsp=-1 mass=-400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=177: ixxxxx#18 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=177: ixxxxx#18 nsp=-1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=177: ixxxxx#18 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=177: ixxxxx#18 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=178: vxxxxx#18 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=178: vxxxxx#18 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=178: vxxxxx#18 nsp=-1 mass=400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=178: vxxxxx#18 nsp=-1 mass=400 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=178: vxxxxx#18 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=178: vxxxxx#18 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=179: vxxxxx#18 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=179: vxxxxx#18 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=179: vxxxxx#18 nsp=-1 mass=-400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=179: vxxxxx#18 nsp=-1 mass=-400 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=179: vxxxxx#18 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=179: vxxxxx#18 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=180: sxxxxx#18 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=180: sxxxxx#18 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=180: sxxxxx#18 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=180: sxxxxx#18 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=180: sxxxxx#18 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=180: sxxxxx#18 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=181: sxxxxx#18 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=181: sxxxxx#18 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=181: sxxxxx#18 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=181: sxxxxx#18 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=181: sxxxxx#18 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=181: sxxxxx#18 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=182: oxxxxx#18 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=182: oxxxxx#18 nsp=-1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=182: oxxxxx#18 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=182: oxxxxx#18 nsp=-1 mass=400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=182: oxxxxx#18 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=182: oxxxxx#18 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=183: oxxxxx#18 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=183: oxxxxx#18 nsp=-1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=183: oxxxxx#18 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=183: oxxxxx#18 nsp=-1 mass=-400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=183: oxxxxx#18 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=183: oxxxxx#18 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=184: ixxxxx#19 nsp=-1 mass=400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=184: ixxxxx#19 nsp=-1 mass=400 + 1.200000000000000e+01, -1.600000000000000e+01, // itest=184: ixxxxx#19 nsp=-1 mass=400 + -2.000000000000000e+01, -0.000000000000000e+00, // itest=184: ixxxxx#19 nsp=-1 mass=400 + -5.999999999999999e+00, 7.999999999999999e+00, // itest=184: ixxxxx#19 nsp=-1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=184: ixxxxx#19 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=185: ixxxxx#19 nsp=-1 mass=-400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=185: ixxxxx#19 nsp=-1 mass=-400 + 1.200000000000000e+01, -1.600000000000000e+01, // itest=185: ixxxxx#19 nsp=-1 mass=-400 + -2.000000000000000e+01, -0.000000000000000e+00, // itest=185: ixxxxx#19 nsp=-1 mass=-400 + 5.999999999999999e+00, -7.999999999999999e+00, // itest=185: ixxxxx#19 nsp=-1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00 } ); // itest=185: ixxxxx#19 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=186: vxxxxx#19 nsp=-1 mass=400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=186: vxxxxx#19 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=186: vxxxxx#19 nsp=-1 mass=400 + 0.000000000000000e+00, 5.656854249492381e-01, // itest=186: vxxxxx#19 nsp=-1 mass=400 + 0.000000000000000e+00, -4.242640687119285e-01, // itest=186: vxxxxx#19 nsp=-1 mass=400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=186: vxxxxx#19 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=187: vxxxxx#19 nsp=-1 mass=-400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=187: vxxxxx#19 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=187: vxxxxx#19 nsp=-1 mass=-400 + -0.000000000000000e+00, 5.656854249492381e-01, // itest=187: vxxxxx#19 nsp=-1 mass=-400 + -0.000000000000000e+00, -4.242640687119285e-01, // itest=187: vxxxxx#19 nsp=-1 mass=-400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=187: vxxxxx#19 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=188: sxxxxx#19 nsp=-1 mass=400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=188: sxxxxx#19 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=188: sxxxxx#19 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=188: sxxxxx#19 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=188: sxxxxx#19 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=188: sxxxxx#19 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=189: sxxxxx#19 nsp=-1 mass=-400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=189: sxxxxx#19 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=189: sxxxxx#19 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=189: sxxxxx#19 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=189: sxxxxx#19 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=189: sxxxxx#19 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=190: oxxxxx#19 nsp=-1 mass=400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=190: oxxxxx#19 nsp=-1 mass=400 + -5.999999999999999e+00, -7.999999999999999e+00, // itest=190: oxxxxx#19 nsp=-1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=190: oxxxxx#19 nsp=-1 mass=400 + 1.200000000000000e+01, 1.600000000000000e+01, // itest=190: oxxxxx#19 nsp=-1 mass=400 + -2.000000000000000e+01, -0.000000000000000e+00 } ); // itest=190: oxxxxx#19 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=191: oxxxxx#19 nsp=-1 mass=-400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=191: oxxxxx#19 nsp=-1 mass=-400 + 5.999999999999999e+00, 7.999999999999999e+00, // itest=191: oxxxxx#19 nsp=-1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00, // itest=191: oxxxxx#19 nsp=-1 mass=-400 + 1.200000000000000e+01, 1.600000000000000e+01, // itest=191: oxxxxx#19 nsp=-1 mass=-400 + -2.000000000000000e+01, -0.000000000000000e+00 } ); // itest=191: oxxxxx#19 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=192: ixxxxx#20 nsp=-1 mass=400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=192: ixxxxx#20 nsp=-1 mass=400 + -1.600000000000000e+01, 1.200000000000000e+01, // itest=192: ixxxxx#20 nsp=-1 mass=400 + -2.000000000000000e+01, -0.000000000000000e+00, // itest=192: ixxxxx#20 nsp=-1 mass=400 + 7.999999999999999e+00, -5.999999999999999e+00, // itest=192: ixxxxx#20 nsp=-1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=192: ixxxxx#20 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=193: ixxxxx#20 nsp=-1 mass=-400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=193: ixxxxx#20 nsp=-1 mass=-400 + -1.600000000000000e+01, 1.200000000000000e+01, // itest=193: ixxxxx#20 nsp=-1 mass=-400 + -2.000000000000000e+01, -0.000000000000000e+00, // itest=193: ixxxxx#20 nsp=-1 mass=-400 + -7.999999999999999e+00, 5.999999999999999e+00, // itest=193: ixxxxx#20 nsp=-1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00 } ); // itest=193: ixxxxx#20 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=194: vxxxxx#20 nsp=-1 mass=400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=194: vxxxxx#20 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=194: vxxxxx#20 nsp=-1 mass=400 + 0.000000000000000e+00, -4.242640687119285e-01, // itest=194: vxxxxx#20 nsp=-1 mass=400 + 0.000000000000000e+00, 5.656854249492381e-01, // itest=194: vxxxxx#20 nsp=-1 mass=400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=194: vxxxxx#20 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=195: vxxxxx#20 nsp=-1 mass=-400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=195: vxxxxx#20 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=195: vxxxxx#20 nsp=-1 mass=-400 + 0.000000000000000e+00, -4.242640687119285e-01, // itest=195: vxxxxx#20 nsp=-1 mass=-400 + 0.000000000000000e+00, 5.656854249492381e-01, // itest=195: vxxxxx#20 nsp=-1 mass=-400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=195: vxxxxx#20 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=196: sxxxxx#20 nsp=-1 mass=400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=196: sxxxxx#20 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=196: sxxxxx#20 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=196: sxxxxx#20 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=196: sxxxxx#20 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=196: sxxxxx#20 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=197: sxxxxx#20 nsp=-1 mass=-400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=197: sxxxxx#20 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=197: sxxxxx#20 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=197: sxxxxx#20 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=197: sxxxxx#20 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=197: sxxxxx#20 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=198: oxxxxx#20 nsp=-1 mass=400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=198: oxxxxx#20 nsp=-1 mass=400 + 7.999999999999999e+00, 5.999999999999999e+00, // itest=198: oxxxxx#20 nsp=-1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=198: oxxxxx#20 nsp=-1 mass=400 + -1.600000000000000e+01, -1.200000000000000e+01, // itest=198: oxxxxx#20 nsp=-1 mass=400 + -2.000000000000000e+01, -0.000000000000000e+00 } ); // itest=198: oxxxxx#20 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=199: oxxxxx#20 nsp=-1 mass=-400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=199: oxxxxx#20 nsp=-1 mass=-400 + -7.999999999999999e+00, -5.999999999999999e+00, // itest=199: oxxxxx#20 nsp=-1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00, // itest=199: oxxxxx#20 nsp=-1 mass=-400 + -1.600000000000000e+01, -1.200000000000000e+01, // itest=199: oxxxxx#20 nsp=-1 mass=-400 + -2.000000000000000e+01, -0.000000000000000e+00 } ); // itest=199: oxxxxx#20 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=200: ixxxxx#21 nsp=-1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=200: ixxxxx#21 nsp=-1 mass=400 + 9.863939238321439e+00, -1.052153518754287e+01, // itest=200: ixxxxx#21 nsp=-1 mass=400 + -2.433105012119288e+01, -0.000000000000000e+00, // itest=200: ixxxxx#21 nsp=-1 mass=400 + -4.931969619160719e+00, 5.260767593771432e+00, // itest=200: ixxxxx#21 nsp=-1 mass=400 + 1.216552506059644e+01, 0.000000000000000e+00 } ); // itest=200: ixxxxx#21 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=201: ixxxxx#21 nsp=-1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=201: ixxxxx#21 nsp=-1 mass=-400 + 9.863939238321439e+00, -1.052153518754287e+01, // itest=201: ixxxxx#21 nsp=-1 mass=-400 + -2.433105012119288e+01, -0.000000000000000e+00, // itest=201: ixxxxx#21 nsp=-1 mass=-400 + 4.931969619160719e+00, -5.260767593771432e+00, // itest=201: ixxxxx#21 nsp=-1 mass=-400 + -1.216552506059644e+01, -0.000000000000000e+00 } ); // itest=201: ixxxxx#21 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=202: vxxxxx#21 nsp=-1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=202: vxxxxx#21 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=202: vxxxxx#21 nsp=-1 mass=400 + -2.321373168788980e-01, 5.158607041753289e-01, // itest=202: vxxxxx#21 nsp=-1 mass=400 + -2.476131380041579e-01, -4.836194101643708e-01, // itest=202: vxxxxx#21 nsp=-1 mass=400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=202: vxxxxx#21 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=203: vxxxxx#21 nsp=-1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=203: vxxxxx#21 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=203: vxxxxx#21 nsp=-1 mass=-400 + -2.321373168788980e-01, 5.158607041753289e-01, // itest=203: vxxxxx#21 nsp=-1 mass=-400 + -2.476131380041579e-01, -4.836194101643708e-01, // itest=203: vxxxxx#21 nsp=-1 mass=-400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=203: vxxxxx#21 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=204: sxxxxx#21 nsp=-1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=204: sxxxxx#21 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=204: sxxxxx#21 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=204: sxxxxx#21 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=204: sxxxxx#21 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=204: sxxxxx#21 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=205: sxxxxx#21 nsp=-1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=205: sxxxxx#21 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=205: sxxxxx#21 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=205: sxxxxx#21 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=205: sxxxxx#21 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=205: sxxxxx#21 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=206: oxxxxx#21 nsp=-1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=206: oxxxxx#21 nsp=-1 mass=400 + -4.931969619160719e+00, -5.260767593771432e+00, // itest=206: oxxxxx#21 nsp=-1 mass=400 + 1.216552506059644e+01, 0.000000000000000e+00, // itest=206: oxxxxx#21 nsp=-1 mass=400 + 9.863939238321439e+00, 1.052153518754287e+01, // itest=206: oxxxxx#21 nsp=-1 mass=400 + -2.433105012119288e+01, -0.000000000000000e+00 } ); // itest=206: oxxxxx#21 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=207: oxxxxx#21 nsp=-1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=207: oxxxxx#21 nsp=-1 mass=-400 + 4.931969619160719e+00, 5.260767593771432e+00, // itest=207: oxxxxx#21 nsp=-1 mass=-400 + -1.216552506059644e+01, -0.000000000000000e+00, // itest=207: oxxxxx#21 nsp=-1 mass=-400 + 9.863939238321439e+00, 1.052153518754287e+01, // itest=207: oxxxxx#21 nsp=-1 mass=-400 + -2.433105012119288e+01, -0.000000000000000e+00 } ); // itest=207: oxxxxx#21 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=208: ixxxxx#22 nsp=-1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=208: ixxxxx#22 nsp=-1 mass=400 + 1.664100588675688e+01, -1.775040627920733e+01, // itest=208: ixxxxx#22 nsp=-1 mass=400 + -1.442220510185596e+01, -0.000000000000000e+00, // itest=208: ixxxxx#22 nsp=-1 mass=400 + -8.320502943378436e+00, 8.875203139603666e+00, // itest=208: ixxxxx#22 nsp=-1 mass=400 + 7.211102550927978e+00, 0.000000000000000e+00 } ); // itest=208: ixxxxx#22 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=209: ixxxxx#22 nsp=-1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=209: ixxxxx#22 nsp=-1 mass=-400 + 1.664100588675688e+01, -1.775040627920733e+01, // itest=209: ixxxxx#22 nsp=-1 mass=-400 + -1.442220510185596e+01, -0.000000000000000e+00, // itest=209: ixxxxx#22 nsp=-1 mass=-400 + 8.320502943378436e+00, -8.875203139603666e+00, // itest=209: ixxxxx#22 nsp=-1 mass=-400 + -7.211102550927978e+00, -0.000000000000000e+00 } ); // itest=209: ixxxxx#22 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=210: vxxxxx#22 nsp=-1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=210: vxxxxx#22 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=210: vxxxxx#22 nsp=-1 mass=400 + 2.321373168788980e-01, 5.158607041753289e-01, // itest=210: vxxxxx#22 nsp=-1 mass=400 + 2.476131380041579e-01, -4.836194101643708e-01, // itest=210: vxxxxx#22 nsp=-1 mass=400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=210: vxxxxx#22 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=211: vxxxxx#22 nsp=-1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=211: vxxxxx#22 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=211: vxxxxx#22 nsp=-1 mass=-400 + 2.321373168788980e-01, 5.158607041753289e-01, // itest=211: vxxxxx#22 nsp=-1 mass=-400 + 2.476131380041579e-01, -4.836194101643708e-01, // itest=211: vxxxxx#22 nsp=-1 mass=-400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=211: vxxxxx#22 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=212: sxxxxx#22 nsp=-1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=212: sxxxxx#22 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=212: sxxxxx#22 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=212: sxxxxx#22 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=212: sxxxxx#22 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=212: sxxxxx#22 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=213: sxxxxx#22 nsp=-1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=213: sxxxxx#22 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=213: sxxxxx#22 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=213: sxxxxx#22 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=213: sxxxxx#22 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=213: sxxxxx#22 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=214: oxxxxx#22 nsp=-1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=214: oxxxxx#22 nsp=-1 mass=400 + -8.320502943378436e+00, -8.875203139603666e+00, // itest=214: oxxxxx#22 nsp=-1 mass=400 + 7.211102550927978e+00, 0.000000000000000e+00, // itest=214: oxxxxx#22 nsp=-1 mass=400 + 1.664100588675688e+01, 1.775040627920733e+01, // itest=214: oxxxxx#22 nsp=-1 mass=400 + -1.442220510185596e+01, -0.000000000000000e+00 } ); // itest=214: oxxxxx#22 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=215: oxxxxx#22 nsp=-1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=215: oxxxxx#22 nsp=-1 mass=-400 + 8.320502943378436e+00, 8.875203139603666e+00, // itest=215: oxxxxx#22 nsp=-1 mass=-400 + -7.211102550927978e+00, -0.000000000000000e+00, // itest=215: oxxxxx#22 nsp=-1 mass=-400 + 1.664100588675688e+01, 1.775040627920733e+01, // itest=215: oxxxxx#22 nsp=-1 mass=-400 + -1.442220510185596e+01, -0.000000000000000e+00 } ); // itest=215: oxxxxx#22 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=216: ixxxxx#23 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=216: ixxxxx#23 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=216: ixxxxx#23 nsp=-1 mass=500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=216: ixxxxx#23 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=216: ixxxxx#23 nsp=-1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=216: ixxxxx#23 nsp=-1 mass=500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=217: ixxxxx#23 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=217: ixxxxx#23 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=217: ixxxxx#23 nsp=-1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=217: ixxxxx#23 nsp=-1 mass=-500 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=217: ixxxxx#23 nsp=-1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=217: ixxxxx#23 nsp=-1 mass=-500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=218: vxxxxx#23 nsp=-1 mass=500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=218: vxxxxx#23 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=218: vxxxxx#23 nsp=-1 mass=500 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=218: vxxxxx#23 nsp=-1 mass=500 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=218: vxxxxx#23 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=218: vxxxxx#23 nsp=-1 mass=500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=219: vxxxxx#23 nsp=-1 mass=-500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=219: vxxxxx#23 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=219: vxxxxx#23 nsp=-1 mass=-500 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=219: vxxxxx#23 nsp=-1 mass=-500 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=219: vxxxxx#23 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=219: vxxxxx#23 nsp=-1 mass=-500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=220: sxxxxx#23 nsp=-1 mass=500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=220: sxxxxx#23 nsp=-1 mass=500 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=220: sxxxxx#23 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=220: sxxxxx#23 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=220: sxxxxx#23 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=220: sxxxxx#23 nsp=-1 mass=500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=221: sxxxxx#23 nsp=-1 mass=-500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=221: sxxxxx#23 nsp=-1 mass=-500 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=221: sxxxxx#23 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=221: sxxxxx#23 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=221: sxxxxx#23 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=221: sxxxxx#23 nsp=-1 mass=-500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=222: oxxxxx#23 nsp=-1 mass=500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=222: oxxxxx#23 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=222: oxxxxx#23 nsp=-1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=222: oxxxxx#23 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=222: oxxxxx#23 nsp=-1 mass=500 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=222: oxxxxx#23 nsp=-1 mass=500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=223: oxxxxx#23 nsp=-1 mass=-500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=223: oxxxxx#23 nsp=-1 mass=-500 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=223: oxxxxx#23 nsp=-1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=223: oxxxxx#23 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=223: oxxxxx#23 nsp=-1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=223: oxxxxx#23 nsp=-1 mass=-500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=224: ixxxxx#24 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=224: ixxxxx#24 nsp=-1 mass=400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=224: ixxxxx#24 nsp=-1 mass=400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=224: ixxxxx#24 nsp=-1 mass=400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=224: ixxxxx#24 nsp=-1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00 } ); // itest=224: ixxxxx#24 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=225: ixxxxx#24 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=225: ixxxxx#24 nsp=-1 mass=-400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=225: ixxxxx#24 nsp=-1 mass=-400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=225: ixxxxx#24 nsp=-1 mass=-400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=225: ixxxxx#24 nsp=-1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00 } ); // itest=225: ixxxxx#24 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=226: vxxxxx#24 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=226: vxxxxx#24 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=226: vxxxxx#24 nsp=-1 mass=400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=226: vxxxxx#24 nsp=-1 mass=400 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=226: vxxxxx#24 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=226: vxxxxx#24 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=227: vxxxxx#24 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=227: vxxxxx#24 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=227: vxxxxx#24 nsp=-1 mass=-400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=227: vxxxxx#24 nsp=-1 mass=-400 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=227: vxxxxx#24 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=227: vxxxxx#24 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=228: sxxxxx#24 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=228: sxxxxx#24 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=228: sxxxxx#24 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=228: sxxxxx#24 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=228: sxxxxx#24 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=228: sxxxxx#24 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=229: sxxxxx#24 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=229: sxxxxx#24 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=229: sxxxxx#24 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=229: sxxxxx#24 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=229: sxxxxx#24 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=229: sxxxxx#24 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=230: oxxxxx#24 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=230: oxxxxx#24 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=230: oxxxxx#24 nsp=-1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=230: oxxxxx#24 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=230: oxxxxx#24 nsp=-1 mass=400 + -2.828427124746190e+01, -0.000000000000000e+00 } ); // itest=230: oxxxxx#24 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=231: oxxxxx#24 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=231: oxxxxx#24 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=231: oxxxxx#24 nsp=-1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=231: oxxxxx#24 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=231: oxxxxx#24 nsp=-1 mass=-400 + -2.828427124746190e+01, -0.000000000000000e+00 } ); // itest=231: oxxxxx#24 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=232: ixxxxx#25 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=232: ixxxxx#25 nsp=-1 mass=400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=232: ixxxxx#25 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=232: ixxxxx#25 nsp=-1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=232: ixxxxx#25 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=232: ixxxxx#25 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=233: ixxxxx#25 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=233: ixxxxx#25 nsp=-1 mass=-400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=233: ixxxxx#25 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=233: ixxxxx#25 nsp=-1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=233: ixxxxx#25 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=233: ixxxxx#25 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=234: vxxxxx#25 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=234: vxxxxx#25 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=234: vxxxxx#25 nsp=-1 mass=400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=234: vxxxxx#25 nsp=-1 mass=400 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=234: vxxxxx#25 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=234: vxxxxx#25 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=235: vxxxxx#25 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=235: vxxxxx#25 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=235: vxxxxx#25 nsp=-1 mass=-400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=235: vxxxxx#25 nsp=-1 mass=-400 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=235: vxxxxx#25 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=235: vxxxxx#25 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=236: sxxxxx#25 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=236: sxxxxx#25 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=236: sxxxxx#25 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=236: sxxxxx#25 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=236: sxxxxx#25 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=236: sxxxxx#25 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=237: sxxxxx#25 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=237: sxxxxx#25 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=237: sxxxxx#25 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=237: sxxxxx#25 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=237: sxxxxx#25 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=237: sxxxxx#25 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=238: oxxxxx#25 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=238: oxxxxx#25 nsp=-1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=238: oxxxxx#25 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=238: oxxxxx#25 nsp=-1 mass=400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=238: oxxxxx#25 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=238: oxxxxx#25 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=239: oxxxxx#25 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=239: oxxxxx#25 nsp=-1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=239: oxxxxx#25 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=239: oxxxxx#25 nsp=-1 mass=-400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=239: oxxxxx#25 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=239: oxxxxx#25 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=240: ixxxxx#26 nsp=-1 mass=400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=240: ixxxxx#26 nsp=-1 mass=400 + 1.200000000000000e+01, -1.600000000000000e+01, // itest=240: ixxxxx#26 nsp=-1 mass=400 + -2.000000000000000e+01, -0.000000000000000e+00, // itest=240: ixxxxx#26 nsp=-1 mass=400 + -5.999999999999999e+00, 7.999999999999999e+00, // itest=240: ixxxxx#26 nsp=-1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=240: ixxxxx#26 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=241: ixxxxx#26 nsp=-1 mass=-400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=241: ixxxxx#26 nsp=-1 mass=-400 + 1.200000000000000e+01, -1.600000000000000e+01, // itest=241: ixxxxx#26 nsp=-1 mass=-400 + -2.000000000000000e+01, -0.000000000000000e+00, // itest=241: ixxxxx#26 nsp=-1 mass=-400 + 5.999999999999999e+00, -7.999999999999999e+00, // itest=241: ixxxxx#26 nsp=-1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00 } ); // itest=241: ixxxxx#26 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=242: vxxxxx#26 nsp=-1 mass=400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=242: vxxxxx#26 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=242: vxxxxx#26 nsp=-1 mass=400 + 0.000000000000000e+00, 5.656854249492381e-01, // itest=242: vxxxxx#26 nsp=-1 mass=400 + 0.000000000000000e+00, -4.242640687119285e-01, // itest=242: vxxxxx#26 nsp=-1 mass=400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=242: vxxxxx#26 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=243: vxxxxx#26 nsp=-1 mass=-400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=243: vxxxxx#26 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=243: vxxxxx#26 nsp=-1 mass=-400 + -0.000000000000000e+00, 5.656854249492381e-01, // itest=243: vxxxxx#26 nsp=-1 mass=-400 + -0.000000000000000e+00, -4.242640687119285e-01, // itest=243: vxxxxx#26 nsp=-1 mass=-400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=243: vxxxxx#26 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=244: sxxxxx#26 nsp=-1 mass=400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=244: sxxxxx#26 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=244: sxxxxx#26 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=244: sxxxxx#26 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=244: sxxxxx#26 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=244: sxxxxx#26 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=245: sxxxxx#26 nsp=-1 mass=-400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=245: sxxxxx#26 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=245: sxxxxx#26 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=245: sxxxxx#26 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=245: sxxxxx#26 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=245: sxxxxx#26 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=246: oxxxxx#26 nsp=-1 mass=400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=246: oxxxxx#26 nsp=-1 mass=400 + -5.999999999999999e+00, -7.999999999999999e+00, // itest=246: oxxxxx#26 nsp=-1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=246: oxxxxx#26 nsp=-1 mass=400 + 1.200000000000000e+01, 1.600000000000000e+01, // itest=246: oxxxxx#26 nsp=-1 mass=400 + -2.000000000000000e+01, -0.000000000000000e+00 } ); // itest=246: oxxxxx#26 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=247: oxxxxx#26 nsp=-1 mass=-400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=247: oxxxxx#26 nsp=-1 mass=-400 + 5.999999999999999e+00, 7.999999999999999e+00, // itest=247: oxxxxx#26 nsp=-1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00, // itest=247: oxxxxx#26 nsp=-1 mass=-400 + 1.200000000000000e+01, 1.600000000000000e+01, // itest=247: oxxxxx#26 nsp=-1 mass=-400 + -2.000000000000000e+01, -0.000000000000000e+00 } ); // itest=247: oxxxxx#26 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=248: ixxxxx#27 nsp=-1 mass=400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=248: ixxxxx#27 nsp=-1 mass=400 + -1.600000000000000e+01, 1.200000000000000e+01, // itest=248: ixxxxx#27 nsp=-1 mass=400 + -2.000000000000000e+01, -0.000000000000000e+00, // itest=248: ixxxxx#27 nsp=-1 mass=400 + 7.999999999999999e+00, -5.999999999999999e+00, // itest=248: ixxxxx#27 nsp=-1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=248: ixxxxx#27 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=249: ixxxxx#27 nsp=-1 mass=-400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=249: ixxxxx#27 nsp=-1 mass=-400 + -1.600000000000000e+01, 1.200000000000000e+01, // itest=249: ixxxxx#27 nsp=-1 mass=-400 + -2.000000000000000e+01, -0.000000000000000e+00, // itest=249: ixxxxx#27 nsp=-1 mass=-400 + -7.999999999999999e+00, 5.999999999999999e+00, // itest=249: ixxxxx#27 nsp=-1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00 } ); // itest=249: ixxxxx#27 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=250: vxxxxx#27 nsp=-1 mass=400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=250: vxxxxx#27 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=250: vxxxxx#27 nsp=-1 mass=400 + 0.000000000000000e+00, -4.242640687119285e-01, // itest=250: vxxxxx#27 nsp=-1 mass=400 + 0.000000000000000e+00, 5.656854249492381e-01, // itest=250: vxxxxx#27 nsp=-1 mass=400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=250: vxxxxx#27 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=251: vxxxxx#27 nsp=-1 mass=-400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=251: vxxxxx#27 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=251: vxxxxx#27 nsp=-1 mass=-400 + 0.000000000000000e+00, -4.242640687119285e-01, // itest=251: vxxxxx#27 nsp=-1 mass=-400 + 0.000000000000000e+00, 5.656854249492381e-01, // itest=251: vxxxxx#27 nsp=-1 mass=-400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=251: vxxxxx#27 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=252: sxxxxx#27 nsp=-1 mass=400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=252: sxxxxx#27 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=252: sxxxxx#27 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=252: sxxxxx#27 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=252: sxxxxx#27 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=252: sxxxxx#27 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=253: sxxxxx#27 nsp=-1 mass=-400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=253: sxxxxx#27 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=253: sxxxxx#27 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=253: sxxxxx#27 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=253: sxxxxx#27 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=253: sxxxxx#27 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=254: oxxxxx#27 nsp=-1 mass=400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=254: oxxxxx#27 nsp=-1 mass=400 + 7.999999999999999e+00, 5.999999999999999e+00, // itest=254: oxxxxx#27 nsp=-1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=254: oxxxxx#27 nsp=-1 mass=400 + -1.600000000000000e+01, -1.200000000000000e+01, // itest=254: oxxxxx#27 nsp=-1 mass=400 + -2.000000000000000e+01, -0.000000000000000e+00 } ); // itest=254: oxxxxx#27 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=255: oxxxxx#27 nsp=-1 mass=-400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=255: oxxxxx#27 nsp=-1 mass=-400 + -7.999999999999999e+00, -5.999999999999999e+00, // itest=255: oxxxxx#27 nsp=-1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00, // itest=255: oxxxxx#27 nsp=-1 mass=-400 + -1.600000000000000e+01, -1.200000000000000e+01, // itest=255: oxxxxx#27 nsp=-1 mass=-400 + -2.000000000000000e+01, -0.000000000000000e+00 } ); // itest=255: oxxxxx#27 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=256: ixxxxx#28 nsp=-1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=256: ixxxxx#28 nsp=-1 mass=400 + 9.863939238321439e+00, -1.052153518754287e+01, // itest=256: ixxxxx#28 nsp=-1 mass=400 + -2.433105012119288e+01, -0.000000000000000e+00, // itest=256: ixxxxx#28 nsp=-1 mass=400 + -4.931969619160719e+00, 5.260767593771432e+00, // itest=256: ixxxxx#28 nsp=-1 mass=400 + 1.216552506059644e+01, 0.000000000000000e+00 } ); // itest=256: ixxxxx#28 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=257: ixxxxx#28 nsp=-1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=257: ixxxxx#28 nsp=-1 mass=-400 + 9.863939238321439e+00, -1.052153518754287e+01, // itest=257: ixxxxx#28 nsp=-1 mass=-400 + -2.433105012119288e+01, -0.000000000000000e+00, // itest=257: ixxxxx#28 nsp=-1 mass=-400 + 4.931969619160719e+00, -5.260767593771432e+00, // itest=257: ixxxxx#28 nsp=-1 mass=-400 + -1.216552506059644e+01, -0.000000000000000e+00 } ); // itest=257: ixxxxx#28 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=258: vxxxxx#28 nsp=-1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=258: vxxxxx#28 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=258: vxxxxx#28 nsp=-1 mass=400 + -2.321373168788980e-01, 5.158607041753289e-01, // itest=258: vxxxxx#28 nsp=-1 mass=400 + -2.476131380041579e-01, -4.836194101643708e-01, // itest=258: vxxxxx#28 nsp=-1 mass=400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=258: vxxxxx#28 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=259: vxxxxx#28 nsp=-1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=259: vxxxxx#28 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=259: vxxxxx#28 nsp=-1 mass=-400 + -2.321373168788980e-01, 5.158607041753289e-01, // itest=259: vxxxxx#28 nsp=-1 mass=-400 + -2.476131380041579e-01, -4.836194101643708e-01, // itest=259: vxxxxx#28 nsp=-1 mass=-400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=259: vxxxxx#28 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=260: sxxxxx#28 nsp=-1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=260: sxxxxx#28 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=260: sxxxxx#28 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=260: sxxxxx#28 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=260: sxxxxx#28 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=260: sxxxxx#28 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=261: sxxxxx#28 nsp=-1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=261: sxxxxx#28 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=261: sxxxxx#28 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=261: sxxxxx#28 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=261: sxxxxx#28 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=261: sxxxxx#28 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=262: oxxxxx#28 nsp=-1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=262: oxxxxx#28 nsp=-1 mass=400 + -4.931969619160719e+00, -5.260767593771432e+00, // itest=262: oxxxxx#28 nsp=-1 mass=400 + 1.216552506059644e+01, 0.000000000000000e+00, // itest=262: oxxxxx#28 nsp=-1 mass=400 + 9.863939238321439e+00, 1.052153518754287e+01, // itest=262: oxxxxx#28 nsp=-1 mass=400 + -2.433105012119288e+01, -0.000000000000000e+00 } ); // itest=262: oxxxxx#28 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=263: oxxxxx#28 nsp=-1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=263: oxxxxx#28 nsp=-1 mass=-400 + 4.931969619160719e+00, 5.260767593771432e+00, // itest=263: oxxxxx#28 nsp=-1 mass=-400 + -1.216552506059644e+01, -0.000000000000000e+00, // itest=263: oxxxxx#28 nsp=-1 mass=-400 + 9.863939238321439e+00, 1.052153518754287e+01, // itest=263: oxxxxx#28 nsp=-1 mass=-400 + -2.433105012119288e+01, -0.000000000000000e+00 } ); // itest=263: oxxxxx#28 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=264: ixxxxx#29 nsp=-1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=264: ixxxxx#29 nsp=-1 mass=400 + 1.664100588675688e+01, -1.775040627920733e+01, // itest=264: ixxxxx#29 nsp=-1 mass=400 + -1.442220510185596e+01, -0.000000000000000e+00, // itest=264: ixxxxx#29 nsp=-1 mass=400 + -8.320502943378436e+00, 8.875203139603666e+00, // itest=264: ixxxxx#29 nsp=-1 mass=400 + 7.211102550927978e+00, 0.000000000000000e+00 } ); // itest=264: ixxxxx#29 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=265: ixxxxx#29 nsp=-1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=265: ixxxxx#29 nsp=-1 mass=-400 + 1.664100588675688e+01, -1.775040627920733e+01, // itest=265: ixxxxx#29 nsp=-1 mass=-400 + -1.442220510185596e+01, -0.000000000000000e+00, // itest=265: ixxxxx#29 nsp=-1 mass=-400 + 8.320502943378436e+00, -8.875203139603666e+00, // itest=265: ixxxxx#29 nsp=-1 mass=-400 + -7.211102550927978e+00, -0.000000000000000e+00 } ); // itest=265: ixxxxx#29 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=266: vxxxxx#29 nsp=-1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=266: vxxxxx#29 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=266: vxxxxx#29 nsp=-1 mass=400 + 2.321373168788980e-01, 5.158607041753289e-01, // itest=266: vxxxxx#29 nsp=-1 mass=400 + 2.476131380041579e-01, -4.836194101643708e-01, // itest=266: vxxxxx#29 nsp=-1 mass=400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=266: vxxxxx#29 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=267: vxxxxx#29 nsp=-1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=267: vxxxxx#29 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=267: vxxxxx#29 nsp=-1 mass=-400 + 2.321373168788980e-01, 5.158607041753289e-01, // itest=267: vxxxxx#29 nsp=-1 mass=-400 + 2.476131380041579e-01, -4.836194101643708e-01, // itest=267: vxxxxx#29 nsp=-1 mass=-400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=267: vxxxxx#29 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=268: sxxxxx#29 nsp=-1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=268: sxxxxx#29 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=268: sxxxxx#29 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=268: sxxxxx#29 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=268: sxxxxx#29 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=268: sxxxxx#29 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=269: sxxxxx#29 nsp=-1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=269: sxxxxx#29 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=269: sxxxxx#29 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=269: sxxxxx#29 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=269: sxxxxx#29 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=269: sxxxxx#29 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=270: oxxxxx#29 nsp=-1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=270: oxxxxx#29 nsp=-1 mass=400 + -8.320502943378436e+00, -8.875203139603666e+00, // itest=270: oxxxxx#29 nsp=-1 mass=400 + 7.211102550927978e+00, 0.000000000000000e+00, // itest=270: oxxxxx#29 nsp=-1 mass=400 + 1.664100588675688e+01, 1.775040627920733e+01, // itest=270: oxxxxx#29 nsp=-1 mass=400 + -1.442220510185596e+01, -0.000000000000000e+00 } ); // itest=270: oxxxxx#29 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=271: oxxxxx#29 nsp=-1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=271: oxxxxx#29 nsp=-1 mass=-400 + 8.320502943378436e+00, 8.875203139603666e+00, // itest=271: oxxxxx#29 nsp=-1 mass=-400 + -7.211102550927978e+00, -0.000000000000000e+00, // itest=271: oxxxxx#29 nsp=-1 mass=-400 + 1.664100588675688e+01, 1.775040627920733e+01, // itest=271: oxxxxx#29 nsp=-1 mass=-400 + -1.442220510185596e+01, -0.000000000000000e+00 } ); // itest=271: oxxxxx#29 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=272: ixxxxx#30 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=272: ixxxxx#30 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=272: ixxxxx#30 nsp=-1 mass=500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=272: ixxxxx#30 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=272: ixxxxx#30 nsp=-1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=272: ixxxxx#30 nsp=-1 mass=500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=273: ixxxxx#30 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=273: ixxxxx#30 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=273: ixxxxx#30 nsp=-1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=273: ixxxxx#30 nsp=-1 mass=-500 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=273: ixxxxx#30 nsp=-1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=273: ixxxxx#30 nsp=-1 mass=-500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=274: vxxxxx#30 nsp=-1 mass=500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=274: vxxxxx#30 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=274: vxxxxx#30 nsp=-1 mass=500 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=274: vxxxxx#30 nsp=-1 mass=500 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=274: vxxxxx#30 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=274: vxxxxx#30 nsp=-1 mass=500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=275: vxxxxx#30 nsp=-1 mass=-500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=275: vxxxxx#30 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=275: vxxxxx#30 nsp=-1 mass=-500 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=275: vxxxxx#30 nsp=-1 mass=-500 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=275: vxxxxx#30 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=275: vxxxxx#30 nsp=-1 mass=-500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=276: sxxxxx#30 nsp=-1 mass=500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=276: sxxxxx#30 nsp=-1 mass=500 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=276: sxxxxx#30 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=276: sxxxxx#30 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=276: sxxxxx#30 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=276: sxxxxx#30 nsp=-1 mass=500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=277: sxxxxx#30 nsp=-1 mass=-500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=277: sxxxxx#30 nsp=-1 mass=-500 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=277: sxxxxx#30 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=277: sxxxxx#30 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=277: sxxxxx#30 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=277: sxxxxx#30 nsp=-1 mass=-500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=278: oxxxxx#30 nsp=-1 mass=500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=278: oxxxxx#30 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=278: oxxxxx#30 nsp=-1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=278: oxxxxx#30 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=278: oxxxxx#30 nsp=-1 mass=500 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=278: oxxxxx#30 nsp=-1 mass=500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=279: oxxxxx#30 nsp=-1 mass=-500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=279: oxxxxx#30 nsp=-1 mass=-500 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=279: oxxxxx#30 nsp=-1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=279: oxxxxx#30 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=279: oxxxxx#30 nsp=-1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=279: oxxxxx#30 nsp=-1 mass=-500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=280: ixxxxx#31 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=280: ixxxxx#31 nsp=-1 mass=400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=280: ixxxxx#31 nsp=-1 mass=400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=280: ixxxxx#31 nsp=-1 mass=400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=280: ixxxxx#31 nsp=-1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00 } ); // itest=280: ixxxxx#31 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=281: ixxxxx#31 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=281: ixxxxx#31 nsp=-1 mass=-400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=281: ixxxxx#31 nsp=-1 mass=-400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=281: ixxxxx#31 nsp=-1 mass=-400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=281: ixxxxx#31 nsp=-1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00 } ); // itest=281: ixxxxx#31 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=282: vxxxxx#31 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=282: vxxxxx#31 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=282: vxxxxx#31 nsp=-1 mass=400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=282: vxxxxx#31 nsp=-1 mass=400 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=282: vxxxxx#31 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=282: vxxxxx#31 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=283: vxxxxx#31 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=283: vxxxxx#31 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=283: vxxxxx#31 nsp=-1 mass=-400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=283: vxxxxx#31 nsp=-1 mass=-400 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=283: vxxxxx#31 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=283: vxxxxx#31 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=284: sxxxxx#31 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=284: sxxxxx#31 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=284: sxxxxx#31 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=284: sxxxxx#31 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=284: sxxxxx#31 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=284: sxxxxx#31 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=285: sxxxxx#31 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=285: sxxxxx#31 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=285: sxxxxx#31 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=285: sxxxxx#31 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=285: sxxxxx#31 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=285: sxxxxx#31 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=286: oxxxxx#31 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=286: oxxxxx#31 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=286: oxxxxx#31 nsp=-1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=286: oxxxxx#31 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=286: oxxxxx#31 nsp=-1 mass=400 + -2.828427124746190e+01, -0.000000000000000e+00 } ); // itest=286: oxxxxx#31 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=287: oxxxxx#31 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=287: oxxxxx#31 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=287: oxxxxx#31 nsp=-1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=287: oxxxxx#31 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=287: oxxxxx#31 nsp=-1 mass=-400 + -2.828427124746190e+01, -0.000000000000000e+00 } ); // itest=287: oxxxxx#31 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=288: ixxxxx#0 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=288: ixxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=288: ixxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=288: ixxxxx#0 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=288: ixxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=288: ixxxxx#0 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=289: ixxxxx#0 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=289: ixxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=289: ixxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=289: ixxxxx#0 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=289: ixxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=289: ixxxxx#0 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=290: ipzxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=290: ipzxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=290: ipzxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=290: ipzxxx#0 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=290: ipzxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=290: ipzxxx#0 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=291: vxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=291: vxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=291: vxxxxx#0 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=291: vxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=291: vxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=291: vxxxxx#0 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=292: vxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=292: vxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=292: vxxxxx#0 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=292: vxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=292: vxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=292: vxxxxx#0 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=293: sxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=293: sxxxxx#0 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=293: sxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=293: sxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=293: sxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=293: sxxxxx#0 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=294: sxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=294: sxxxxx#0 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=294: sxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=294: sxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=294: sxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=294: sxxxxx#0 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=295: oxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=295: oxxxxx#0 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=295: oxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=295: oxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=295: oxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=295: oxxxxx#0 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=296: oxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=296: oxxxxx#0 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=296: oxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=296: oxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=296: oxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=296: oxxxxx#0 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=297: opzxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=297: opzxxx#0 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=297: opzxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=297: opzxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=297: opzxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=297: opzxxx#0 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=298: ixxxxx#1 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=298: ixxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=298: ixxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=298: ixxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=298: ixxxxx#1 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=298: ixxxxx#1 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=299: ixxxxx#1 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=299: ixxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=299: ixxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=299: ixxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=299: ixxxxx#1 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=299: ixxxxx#1 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=300: imzxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=300: imzxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=300: imzxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=300: imzxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=300: imzxxx#1 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=300: imzxxx#1 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=301: vxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=301: vxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=301: vxxxxx#1 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=301: vxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=301: vxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=301: vxxxxx#1 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=302: vxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=302: vxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=302: vxxxxx#1 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=302: vxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=302: vxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=302: vxxxxx#1 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=303: sxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=303: sxxxxx#1 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=303: sxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=303: sxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=303: sxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=303: sxxxxx#1 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=304: sxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=304: sxxxxx#1 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=304: sxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=304: sxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=304: sxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=304: sxxxxx#1 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=305: oxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=305: oxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=305: oxxxxx#1 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=305: oxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=305: oxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=305: oxxxxx#1 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=306: oxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=306: oxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=306: oxxxxx#1 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=306: oxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=306: oxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=306: oxxxxx#1 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=307: omzxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=307: omzxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=307: omzxxx#1 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=307: omzxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=307: omzxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=307: omzxxx#1 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=308: ixxxxx#2 nsp=1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=308: ixxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=308: ixxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=308: ixxxxx#2 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=308: ixxxxx#2 nsp=1 mass=0 + 1.341640786499874e+01, 1.788854381999831e+01 } ); // itest=308: ixxxxx#2 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=309: ixxxxx#2 nsp=1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=309: ixxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=309: ixxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=309: ixxxxx#2 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=309: ixxxxx#2 nsp=1 mass=0 + 1.341640786499874e+01, 1.788854381999831e+01 } ); // itest=309: ixxxxx#2 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=310: ixzxxx#2 nsp=1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=310: ixzxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=310: ixzxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=310: ixzxxx#2 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=310: ixzxxx#2 nsp=1 mass=0 + 1.341640786499874e+01, 1.788854381999832e+01 } ); // itest=310: ixzxxx#2 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=311: vxxxxx#2 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=311: vxxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=311: vxxxxx#2 nsp=1 mass=0 + -0.000000000000000e+00, -5.656854249492381e-01, // itest=311: vxxxxx#2 nsp=1 mass=0 + -0.000000000000000e+00, 4.242640687119285e-01, // itest=311: vxxxxx#2 nsp=1 mass=0 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=311: vxxxxx#2 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=312: vxxxxx#2 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=312: vxxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=312: vxxxxx#2 nsp=1 mass=0 + -0.000000000000000e+00, -5.656854249492381e-01, // itest=312: vxxxxx#2 nsp=1 mass=0 + -0.000000000000000e+00, 4.242640687119285e-01, // itest=312: vxxxxx#2 nsp=1 mass=0 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=312: vxxxxx#2 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=313: sxxxxx#2 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=313: sxxxxx#2 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=313: sxxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=313: sxxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=313: sxxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=313: sxxxxx#2 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=314: sxxxxx#2 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=314: sxxxxx#2 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=314: sxxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=314: sxxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=314: sxxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=314: sxxxxx#2 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=315: oxxxxx#2 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=315: oxxxxx#2 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=315: oxxxxx#2 nsp=1 mass=0 + 1.341640786499874e+01, -1.788854381999831e+01, // itest=315: oxxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=315: oxxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=315: oxxxxx#2 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=316: oxxxxx#2 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=316: oxxxxx#2 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=316: oxxxxx#2 nsp=1 mass=0 + 1.341640786499874e+01, -1.788854381999831e+01, // itest=316: oxxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=316: oxxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=316: oxxxxx#2 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=317: oxzxxx#2 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=317: oxzxxx#2 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=317: oxzxxx#2 nsp=1 mass=0 + 1.341640786499874e+01, -1.788854381999832e+01, // itest=317: oxzxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=317: oxzxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=317: oxzxxx#2 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=318: ixxxxx#3 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=318: ixxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=318: ixxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=318: ixxxxx#3 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=318: ixxxxx#3 nsp=1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=318: ixxxxx#3 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=319: ixxxxx#3 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=319: ixxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=319: ixxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=319: ixxxxx#3 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=319: ixxxxx#3 nsp=1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=319: ixxxxx#3 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=320: ixzxxx#3 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=320: ixzxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=320: ixzxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=320: ixzxxx#3 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=320: ixzxxx#3 nsp=1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=320: ixzxxx#3 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=321: vxxxxx#3 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=321: vxxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=321: vxxxxx#3 nsp=1 mass=0 + -3.394112549695428e-01, -5.656854249492381e-01, // itest=321: vxxxxx#3 nsp=1 mass=0 + -4.525483399593904e-01, 4.242640687119285e-01, // itest=321: vxxxxx#3 nsp=1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=321: vxxxxx#3 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=322: vxxxxx#3 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=322: vxxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=322: vxxxxx#3 nsp=1 mass=0 + -3.394112549695428e-01, -5.656854249492381e-01, // itest=322: vxxxxx#3 nsp=1 mass=0 + -4.525483399593904e-01, 4.242640687119285e-01, // itest=322: vxxxxx#3 nsp=1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=322: vxxxxx#3 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=323: sxxxxx#3 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=323: sxxxxx#3 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=323: sxxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=323: sxxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=323: sxxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=323: sxxxxx#3 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=324: sxxxxx#3 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=324: sxxxxx#3 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=324: sxxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=324: sxxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=324: sxxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=324: sxxxxx#3 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=325: oxxxxx#3 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=325: oxxxxx#3 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=325: oxxxxx#3 nsp=1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=325: oxxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=325: oxxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=325: oxxxxx#3 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=326: oxxxxx#3 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=326: oxxxxx#3 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=326: oxxxxx#3 nsp=1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=326: oxxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=326: oxxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=326: oxxxxx#3 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=327: oxzxxx#3 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=327: oxzxxx#3 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=327: oxzxxx#3 nsp=1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=327: oxzxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=327: oxzxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=327: oxzxxx#3 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=328: ixxxxx#4 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=328: ixxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=328: ixxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=328: ixxxxx#4 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=328: ixxxxx#4 nsp=1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01 } ); // itest=328: ixxxxx#4 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=329: ixxxxx#4 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=329: ixxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=329: ixxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=329: ixxxxx#4 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=329: ixxxxx#4 nsp=1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01 } ); // itest=329: ixxxxx#4 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=330: ixzxxx#4 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=330: ixzxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=330: ixzxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=330: ixzxxx#4 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=330: ixzxxx#4 nsp=1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01 } ); // itest=330: ixzxxx#4 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=331: vxxxxx#4 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=331: vxxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=331: vxxxxx#4 nsp=1 mass=0 + 3.394112549695428e-01, -5.656854249492381e-01, // itest=331: vxxxxx#4 nsp=1 mass=0 + 4.525483399593904e-01, 4.242640687119285e-01, // itest=331: vxxxxx#4 nsp=1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=331: vxxxxx#4 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=332: vxxxxx#4 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=332: vxxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=332: vxxxxx#4 nsp=1 mass=0 + 3.394112549695428e-01, -5.656854249492381e-01, // itest=332: vxxxxx#4 nsp=1 mass=0 + 4.525483399593904e-01, 4.242640687119285e-01, // itest=332: vxxxxx#4 nsp=1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=332: vxxxxx#4 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=333: sxxxxx#4 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=333: sxxxxx#4 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=333: sxxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=333: sxxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=333: sxxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=333: sxxxxx#4 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=334: sxxxxx#4 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=334: sxxxxx#4 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=334: sxxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=334: sxxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=334: sxxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=334: sxxxxx#4 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=335: oxxxxx#4 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=335: oxxxxx#4 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=335: oxxxxx#4 nsp=1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=335: oxxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=335: oxxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=335: oxxxxx#4 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=336: oxxxxx#4 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=336: oxxxxx#4 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=336: oxxxxx#4 nsp=1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=336: oxxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=336: oxxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=336: oxxxxx#4 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=337: oxzxxx#4 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=337: oxzxxx#4 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=337: oxzxxx#4 nsp=1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=337: oxzxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=337: oxzxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=337: oxzxxx#4 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=338: ixxxxx#5 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=338: ixxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=338: ixxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=338: ixxxxx#5 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=338: ixxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=338: ixxxxx#5 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=339: ixxxxx#5 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=339: ixxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=339: ixxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=339: ixxxxx#5 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=339: ixxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=339: ixxxxx#5 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=340: ipzxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=340: ipzxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=340: ipzxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=340: ipzxxx#5 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=340: ipzxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=340: ipzxxx#5 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=341: vxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=341: vxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=341: vxxxxx#5 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=341: vxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=341: vxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=341: vxxxxx#5 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=342: vxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=342: vxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=342: vxxxxx#5 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=342: vxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=342: vxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=342: vxxxxx#5 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=343: sxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=343: sxxxxx#5 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=343: sxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=343: sxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=343: sxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=343: sxxxxx#5 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=344: sxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=344: sxxxxx#5 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=344: sxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=344: sxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=344: sxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=344: sxxxxx#5 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=345: oxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=345: oxxxxx#5 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=345: oxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=345: oxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=345: oxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=345: oxxxxx#5 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=346: oxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=346: oxxxxx#5 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=346: oxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=346: oxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=346: oxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=346: oxxxxx#5 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=347: opzxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=347: opzxxx#5 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=347: opzxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=347: opzxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=347: opzxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=347: opzxxx#5 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=348: ixxxxx#6 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=348: ixxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=348: ixxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=348: ixxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=348: ixxxxx#6 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=348: ixxxxx#6 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=349: ixxxxx#6 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=349: ixxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=349: ixxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=349: ixxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=349: ixxxxx#6 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=349: ixxxxx#6 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=350: imzxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=350: imzxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=350: imzxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=350: imzxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=350: imzxxx#6 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=350: imzxxx#6 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=351: vxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=351: vxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=351: vxxxxx#6 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=351: vxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=351: vxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=351: vxxxxx#6 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=352: vxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=352: vxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=352: vxxxxx#6 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=352: vxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=352: vxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=352: vxxxxx#6 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=353: sxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=353: sxxxxx#6 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=353: sxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=353: sxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=353: sxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=353: sxxxxx#6 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=354: sxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=354: sxxxxx#6 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=354: sxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=354: sxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=354: sxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=354: sxxxxx#6 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=355: oxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=355: oxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=355: oxxxxx#6 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=355: oxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=355: oxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=355: oxxxxx#6 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=356: oxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=356: oxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=356: oxxxxx#6 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=356: oxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=356: oxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=356: oxxxxx#6 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=357: omzxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=357: omzxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=357: omzxxx#6 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=357: omzxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=357: omzxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=357: omzxxx#6 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=358: ixxxxx#7 nsp=1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=358: ixxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=358: ixxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=358: ixxxxx#7 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=358: ixxxxx#7 nsp=1 mass=0 + 1.341640786499874e+01, 1.788854381999831e+01 } ); // itest=358: ixxxxx#7 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=359: ixxxxx#7 nsp=1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=359: ixxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=359: ixxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=359: ixxxxx#7 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=359: ixxxxx#7 nsp=1 mass=0 + 1.341640786499874e+01, 1.788854381999831e+01 } ); // itest=359: ixxxxx#7 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=360: ixzxxx#7 nsp=1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=360: ixzxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=360: ixzxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=360: ixzxxx#7 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=360: ixzxxx#7 nsp=1 mass=0 + 1.341640786499874e+01, 1.788854381999832e+01 } ); // itest=360: ixzxxx#7 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=361: vxxxxx#7 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=361: vxxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=361: vxxxxx#7 nsp=1 mass=0 + -0.000000000000000e+00, -5.656854249492381e-01, // itest=361: vxxxxx#7 nsp=1 mass=0 + -0.000000000000000e+00, 4.242640687119285e-01, // itest=361: vxxxxx#7 nsp=1 mass=0 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=361: vxxxxx#7 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=362: vxxxxx#7 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=362: vxxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=362: vxxxxx#7 nsp=1 mass=0 + -0.000000000000000e+00, -5.656854249492381e-01, // itest=362: vxxxxx#7 nsp=1 mass=0 + -0.000000000000000e+00, 4.242640687119285e-01, // itest=362: vxxxxx#7 nsp=1 mass=0 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=362: vxxxxx#7 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=363: sxxxxx#7 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=363: sxxxxx#7 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=363: sxxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=363: sxxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=363: sxxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=363: sxxxxx#7 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=364: sxxxxx#7 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=364: sxxxxx#7 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=364: sxxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=364: sxxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=364: sxxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=364: sxxxxx#7 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=365: oxxxxx#7 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=365: oxxxxx#7 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=365: oxxxxx#7 nsp=1 mass=0 + 1.341640786499874e+01, -1.788854381999831e+01, // itest=365: oxxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=365: oxxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=365: oxxxxx#7 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=366: oxxxxx#7 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=366: oxxxxx#7 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=366: oxxxxx#7 nsp=1 mass=0 + 1.341640786499874e+01, -1.788854381999831e+01, // itest=366: oxxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=366: oxxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=366: oxxxxx#7 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=367: oxzxxx#7 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=367: oxzxxx#7 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=367: oxzxxx#7 nsp=1 mass=0 + 1.341640786499874e+01, -1.788854381999832e+01, // itest=367: oxzxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=367: oxzxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=367: oxzxxx#7 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=368: ixxxxx#8 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=368: ixxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=368: ixxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=368: ixxxxx#8 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=368: ixxxxx#8 nsp=1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=368: ixxxxx#8 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=369: ixxxxx#8 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=369: ixxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=369: ixxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=369: ixxxxx#8 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=369: ixxxxx#8 nsp=1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=369: ixxxxx#8 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=370: ixzxxx#8 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=370: ixzxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=370: ixzxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=370: ixzxxx#8 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=370: ixzxxx#8 nsp=1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=370: ixzxxx#8 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=371: vxxxxx#8 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=371: vxxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=371: vxxxxx#8 nsp=1 mass=0 + -3.394112549695428e-01, -5.656854249492381e-01, // itest=371: vxxxxx#8 nsp=1 mass=0 + -4.525483399593904e-01, 4.242640687119285e-01, // itest=371: vxxxxx#8 nsp=1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=371: vxxxxx#8 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=372: vxxxxx#8 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=372: vxxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=372: vxxxxx#8 nsp=1 mass=0 + -3.394112549695428e-01, -5.656854249492381e-01, // itest=372: vxxxxx#8 nsp=1 mass=0 + -4.525483399593904e-01, 4.242640687119285e-01, // itest=372: vxxxxx#8 nsp=1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=372: vxxxxx#8 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=373: sxxxxx#8 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=373: sxxxxx#8 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=373: sxxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=373: sxxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=373: sxxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=373: sxxxxx#8 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=374: sxxxxx#8 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=374: sxxxxx#8 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=374: sxxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=374: sxxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=374: sxxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=374: sxxxxx#8 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=375: oxxxxx#8 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=375: oxxxxx#8 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=375: oxxxxx#8 nsp=1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=375: oxxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=375: oxxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=375: oxxxxx#8 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=376: oxxxxx#8 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=376: oxxxxx#8 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=376: oxxxxx#8 nsp=1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=376: oxxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=376: oxxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=376: oxxxxx#8 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=377: oxzxxx#8 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=377: oxzxxx#8 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=377: oxzxxx#8 nsp=1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=377: oxzxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=377: oxzxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=377: oxzxxx#8 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=378: ixxxxx#9 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=378: ixxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=378: ixxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=378: ixxxxx#9 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=378: ixxxxx#9 nsp=1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01 } ); // itest=378: ixxxxx#9 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=379: ixxxxx#9 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=379: ixxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=379: ixxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=379: ixxxxx#9 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=379: ixxxxx#9 nsp=1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01 } ); // itest=379: ixxxxx#9 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=380: ixzxxx#9 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=380: ixzxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=380: ixzxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=380: ixzxxx#9 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=380: ixzxxx#9 nsp=1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01 } ); // itest=380: ixzxxx#9 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=381: vxxxxx#9 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=381: vxxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=381: vxxxxx#9 nsp=1 mass=0 + 3.394112549695428e-01, -5.656854249492381e-01, // itest=381: vxxxxx#9 nsp=1 mass=0 + 4.525483399593904e-01, 4.242640687119285e-01, // itest=381: vxxxxx#9 nsp=1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=381: vxxxxx#9 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=382: vxxxxx#9 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=382: vxxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=382: vxxxxx#9 nsp=1 mass=0 + 3.394112549695428e-01, -5.656854249492381e-01, // itest=382: vxxxxx#9 nsp=1 mass=0 + 4.525483399593904e-01, 4.242640687119285e-01, // itest=382: vxxxxx#9 nsp=1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=382: vxxxxx#9 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=383: sxxxxx#9 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=383: sxxxxx#9 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=383: sxxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=383: sxxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=383: sxxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=383: sxxxxx#9 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=384: sxxxxx#9 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=384: sxxxxx#9 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=384: sxxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=384: sxxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=384: sxxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=384: sxxxxx#9 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=385: oxxxxx#9 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=385: oxxxxx#9 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=385: oxxxxx#9 nsp=1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=385: oxxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=385: oxxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=385: oxxxxx#9 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=386: oxxxxx#9 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=386: oxxxxx#9 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=386: oxxxxx#9 nsp=1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=386: oxxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=386: oxxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=386: oxxxxx#9 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=387: oxzxxx#9 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=387: oxzxxx#9 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=387: oxzxxx#9 nsp=1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=387: oxzxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=387: oxzxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=387: oxzxxx#9 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=388: ixxxxx#10 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=388: ixxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=388: ixxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=388: ixxxxx#10 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=388: ixxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=388: ixxxxx#10 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=389: ixxxxx#10 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=389: ixxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=389: ixxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=389: ixxxxx#10 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=389: ixxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=389: ixxxxx#10 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=390: ipzxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=390: ipzxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=390: ipzxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=390: ipzxxx#10 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=390: ipzxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=390: ipzxxx#10 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=391: vxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=391: vxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=391: vxxxxx#10 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=391: vxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=391: vxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=391: vxxxxx#10 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=392: vxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=392: vxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=392: vxxxxx#10 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=392: vxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=392: vxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=392: vxxxxx#10 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=393: sxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=393: sxxxxx#10 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=393: sxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=393: sxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=393: sxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=393: sxxxxx#10 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=394: sxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=394: sxxxxx#10 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=394: sxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=394: sxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=394: sxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=394: sxxxxx#10 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=395: oxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=395: oxxxxx#10 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=395: oxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=395: oxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=395: oxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=395: oxxxxx#10 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=396: oxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=396: oxxxxx#10 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=396: oxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=396: oxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=396: oxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=396: oxxxxx#10 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=397: opzxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=397: opzxxx#10 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=397: opzxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=397: opzxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=397: opzxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=397: opzxxx#10 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=398: ixxxxx#11 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=398: ixxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=398: ixxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=398: ixxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=398: ixxxxx#11 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=398: ixxxxx#11 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=399: ixxxxx#11 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=399: ixxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=399: ixxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=399: ixxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=399: ixxxxx#11 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=399: ixxxxx#11 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=400: imzxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=400: imzxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=400: imzxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=400: imzxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=400: imzxxx#11 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=400: imzxxx#11 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=401: vxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=401: vxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=401: vxxxxx#11 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=401: vxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=401: vxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=401: vxxxxx#11 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=402: vxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=402: vxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=402: vxxxxx#11 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=402: vxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=402: vxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=402: vxxxxx#11 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=403: sxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=403: sxxxxx#11 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=403: sxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=403: sxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=403: sxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=403: sxxxxx#11 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=404: sxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=404: sxxxxx#11 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=404: sxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=404: sxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=404: sxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=404: sxxxxx#11 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=405: oxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=405: oxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=405: oxxxxx#11 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=405: oxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=405: oxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=405: oxxxxx#11 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=406: oxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=406: oxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=406: oxxxxx#11 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=406: oxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=406: oxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=406: oxxxxx#11 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=407: omzxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=407: omzxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=407: omzxxx#11 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=407: omzxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=407: omzxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=407: omzxxx#11 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=408: ixxxxx#12 nsp=1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=408: ixxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=408: ixxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=408: ixxxxx#12 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=408: ixxxxx#12 nsp=1 mass=0 + 1.341640786499874e+01, 1.788854381999831e+01 } ); // itest=408: ixxxxx#12 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=409: ixxxxx#12 nsp=1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=409: ixxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=409: ixxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=409: ixxxxx#12 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=409: ixxxxx#12 nsp=1 mass=0 + 1.341640786499874e+01, 1.788854381999831e+01 } ); // itest=409: ixxxxx#12 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=410: ixzxxx#12 nsp=1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=410: ixzxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=410: ixzxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=410: ixzxxx#12 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=410: ixzxxx#12 nsp=1 mass=0 + 1.341640786499874e+01, 1.788854381999832e+01 } ); // itest=410: ixzxxx#12 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=411: vxxxxx#12 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=411: vxxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=411: vxxxxx#12 nsp=1 mass=0 + -0.000000000000000e+00, -5.656854249492381e-01, // itest=411: vxxxxx#12 nsp=1 mass=0 + -0.000000000000000e+00, 4.242640687119285e-01, // itest=411: vxxxxx#12 nsp=1 mass=0 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=411: vxxxxx#12 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=412: vxxxxx#12 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=412: vxxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=412: vxxxxx#12 nsp=1 mass=0 + -0.000000000000000e+00, -5.656854249492381e-01, // itest=412: vxxxxx#12 nsp=1 mass=0 + -0.000000000000000e+00, 4.242640687119285e-01, // itest=412: vxxxxx#12 nsp=1 mass=0 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=412: vxxxxx#12 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=413: sxxxxx#12 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=413: sxxxxx#12 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=413: sxxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=413: sxxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=413: sxxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=413: sxxxxx#12 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=414: sxxxxx#12 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=414: sxxxxx#12 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=414: sxxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=414: sxxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=414: sxxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=414: sxxxxx#12 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=415: oxxxxx#12 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=415: oxxxxx#12 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=415: oxxxxx#12 nsp=1 mass=0 + 1.341640786499874e+01, -1.788854381999831e+01, // itest=415: oxxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=415: oxxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=415: oxxxxx#12 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=416: oxxxxx#12 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=416: oxxxxx#12 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=416: oxxxxx#12 nsp=1 mass=0 + 1.341640786499874e+01, -1.788854381999831e+01, // itest=416: oxxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=416: oxxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=416: oxxxxx#12 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=417: oxzxxx#12 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=417: oxzxxx#12 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=417: oxzxxx#12 nsp=1 mass=0 + 1.341640786499874e+01, -1.788854381999832e+01, // itest=417: oxzxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=417: oxzxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=417: oxzxxx#12 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=418: ixxxxx#13 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=418: ixxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=418: ixxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=418: ixxxxx#13 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=418: ixxxxx#13 nsp=1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=418: ixxxxx#13 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=419: ixxxxx#13 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=419: ixxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=419: ixxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=419: ixxxxx#13 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=419: ixxxxx#13 nsp=1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=419: ixxxxx#13 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=420: ixzxxx#13 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=420: ixzxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=420: ixzxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=420: ixzxxx#13 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=420: ixzxxx#13 nsp=1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=420: ixzxxx#13 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=421: vxxxxx#13 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=421: vxxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=421: vxxxxx#13 nsp=1 mass=0 + -3.394112549695428e-01, -5.656854249492381e-01, // itest=421: vxxxxx#13 nsp=1 mass=0 + -4.525483399593904e-01, 4.242640687119285e-01, // itest=421: vxxxxx#13 nsp=1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=421: vxxxxx#13 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=422: vxxxxx#13 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=422: vxxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=422: vxxxxx#13 nsp=1 mass=0 + -3.394112549695428e-01, -5.656854249492381e-01, // itest=422: vxxxxx#13 nsp=1 mass=0 + -4.525483399593904e-01, 4.242640687119285e-01, // itest=422: vxxxxx#13 nsp=1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=422: vxxxxx#13 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=423: sxxxxx#13 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=423: sxxxxx#13 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=423: sxxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=423: sxxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=423: sxxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=423: sxxxxx#13 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=424: sxxxxx#13 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=424: sxxxxx#13 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=424: sxxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=424: sxxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=424: sxxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=424: sxxxxx#13 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=425: oxxxxx#13 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=425: oxxxxx#13 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=425: oxxxxx#13 nsp=1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=425: oxxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=425: oxxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=425: oxxxxx#13 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=426: oxxxxx#13 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=426: oxxxxx#13 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=426: oxxxxx#13 nsp=1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=426: oxxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=426: oxxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=426: oxxxxx#13 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=427: oxzxxx#13 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=427: oxzxxx#13 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=427: oxzxxx#13 nsp=1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=427: oxzxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=427: oxzxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=427: oxzxxx#13 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=428: ixxxxx#14 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=428: ixxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=428: ixxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=428: ixxxxx#14 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=428: ixxxxx#14 nsp=1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01 } ); // itest=428: ixxxxx#14 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=429: ixxxxx#14 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=429: ixxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=429: ixxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=429: ixxxxx#14 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=429: ixxxxx#14 nsp=1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01 } ); // itest=429: ixxxxx#14 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=430: ixzxxx#14 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=430: ixzxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=430: ixzxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=430: ixzxxx#14 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=430: ixzxxx#14 nsp=1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01 } ); // itest=430: ixzxxx#14 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=431: vxxxxx#14 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=431: vxxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=431: vxxxxx#14 nsp=1 mass=0 + 3.394112549695428e-01, -5.656854249492381e-01, // itest=431: vxxxxx#14 nsp=1 mass=0 + 4.525483399593904e-01, 4.242640687119285e-01, // itest=431: vxxxxx#14 nsp=1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=431: vxxxxx#14 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=432: vxxxxx#14 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=432: vxxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=432: vxxxxx#14 nsp=1 mass=0 + 3.394112549695428e-01, -5.656854249492381e-01, // itest=432: vxxxxx#14 nsp=1 mass=0 + 4.525483399593904e-01, 4.242640687119285e-01, // itest=432: vxxxxx#14 nsp=1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=432: vxxxxx#14 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=433: sxxxxx#14 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=433: sxxxxx#14 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=433: sxxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=433: sxxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=433: sxxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=433: sxxxxx#14 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=434: sxxxxx#14 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=434: sxxxxx#14 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=434: sxxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=434: sxxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=434: sxxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=434: sxxxxx#14 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=435: oxxxxx#14 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=435: oxxxxx#14 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=435: oxxxxx#14 nsp=1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=435: oxxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=435: oxxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=435: oxxxxx#14 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=436: oxxxxx#14 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=436: oxxxxx#14 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=436: oxxxxx#14 nsp=1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=436: oxxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=436: oxxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=436: oxxxxx#14 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=437: oxzxxx#14 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=437: oxzxxx#14 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=437: oxzxxx#14 nsp=1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=437: oxzxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=437: oxzxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=437: oxzxxx#14 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=438: ixxxxx#15 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=438: ixxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=438: ixxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=438: ixxxxx#15 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=438: ixxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=438: ixxxxx#15 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=439: ixxxxx#15 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=439: ixxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=439: ixxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=439: ixxxxx#15 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=439: ixxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=439: ixxxxx#15 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=440: ipzxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=440: ipzxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=440: ipzxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=440: ipzxxx#15 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=440: ipzxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=440: ipzxxx#15 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=441: vxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=441: vxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=441: vxxxxx#15 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=441: vxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=441: vxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=441: vxxxxx#15 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=442: vxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=442: vxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=442: vxxxxx#15 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=442: vxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=442: vxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=442: vxxxxx#15 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=443: sxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=443: sxxxxx#15 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=443: sxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=443: sxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=443: sxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=443: sxxxxx#15 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=444: sxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=444: sxxxxx#15 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=444: sxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=444: sxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=444: sxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=444: sxxxxx#15 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=445: oxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=445: oxxxxx#15 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=445: oxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=445: oxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=445: oxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=445: oxxxxx#15 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=446: oxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=446: oxxxxx#15 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=446: oxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=446: oxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=446: oxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=446: oxxxxx#15 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=447: opzxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=447: opzxxx#15 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=447: opzxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=447: opzxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=447: opzxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=447: opzxxx#15 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=448: ixxxxx#16 nsp=1 mass=500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=448: ixxxxx#16 nsp=1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=448: ixxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=448: ixxxxx#16 nsp=1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=448: ixxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=448: ixxxxx#16 nsp=1 mass=500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=449: ixxxxx#16 nsp=1 mass=-500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=449: ixxxxx#16 nsp=1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=449: ixxxxx#16 nsp=1 mass=-500 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=449: ixxxxx#16 nsp=1 mass=-500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=449: ixxxxx#16 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=449: ixxxxx#16 nsp=1 mass=-500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=450: vxxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=450: vxxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=450: vxxxxx#16 nsp=1 mass=500 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=450: vxxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=450: vxxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=450: vxxxxx#16 nsp=1 mass=500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=451: vxxxxx#16 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=451: vxxxxx#16 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=451: vxxxxx#16 nsp=1 mass=-500 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=451: vxxxxx#16 nsp=1 mass=-500 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=451: vxxxxx#16 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=451: vxxxxx#16 nsp=1 mass=-500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=452: sxxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=452: sxxxxx#16 nsp=1 mass=500 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=452: sxxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=452: sxxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=452: sxxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=452: sxxxxx#16 nsp=1 mass=500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=453: sxxxxx#16 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=453: sxxxxx#16 nsp=1 mass=-500 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=453: sxxxxx#16 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=453: sxxxxx#16 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=453: sxxxxx#16 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=453: sxxxxx#16 nsp=1 mass=-500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=454: oxxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=454: oxxxxx#16 nsp=1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=454: oxxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=454: oxxxxx#16 nsp=1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=454: oxxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=454: oxxxxx#16 nsp=1 mass=500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=455: oxxxxx#16 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=455: oxxxxx#16 nsp=1 mass=-500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=455: oxxxxx#16 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=455: oxxxxx#16 nsp=1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=455: oxxxxx#16 nsp=1 mass=-500 + -0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=455: oxxxxx#16 nsp=1 mass=-500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=456: ixxxxx#17 nsp=1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=456: ixxxxx#17 nsp=1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=456: ixxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=456: ixxxxx#17 nsp=1 mass=400 + 2.828427124746190e+01, 0.000000000000000e+00, // itest=456: ixxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=456: ixxxxx#17 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=457: ixxxxx#17 nsp=1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=457: ixxxxx#17 nsp=1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=457: ixxxxx#17 nsp=1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=457: ixxxxx#17 nsp=1 mass=-400 + 2.828427124746190e+01, 0.000000000000000e+00, // itest=457: ixxxxx#17 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=457: ixxxxx#17 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=458: vxxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=458: vxxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=458: vxxxxx#17 nsp=1 mass=400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=458: vxxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=458: vxxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=458: vxxxxx#17 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=459: vxxxxx#17 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=459: vxxxxx#17 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=459: vxxxxx#17 nsp=1 mass=-400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=459: vxxxxx#17 nsp=1 mass=-400 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=459: vxxxxx#17 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=459: vxxxxx#17 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=460: sxxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=460: sxxxxx#17 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=460: sxxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=460: sxxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=460: sxxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=460: sxxxxx#17 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=461: sxxxxx#17 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=461: sxxxxx#17 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=461: sxxxxx#17 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=461: sxxxxx#17 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=461: sxxxxx#17 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=461: sxxxxx#17 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=462: oxxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=462: oxxxxx#17 nsp=1 mass=400 + 2.828427124746190e+01, 0.000000000000000e+00, // itest=462: oxxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=462: oxxxxx#17 nsp=1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=462: oxxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=462: oxxxxx#17 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=463: oxxxxx#17 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=463: oxxxxx#17 nsp=1 mass=-400 + 2.828427124746190e+01, 0.000000000000000e+00, // itest=463: oxxxxx#17 nsp=1 mass=-400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=463: oxxxxx#17 nsp=1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=463: oxxxxx#17 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=463: oxxxxx#17 nsp=1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=464: ixxxxx#18 nsp=1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=464: ixxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=464: ixxxxx#18 nsp=1 mass=400 + -1.414213562373095e+01, 0.000000000000000e+00, // itest=464: ixxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=464: ixxxxx#18 nsp=1 mass=400 + -2.828427124746190e+01, 0.000000000000000e+00 } ); // itest=464: ixxxxx#18 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=465: ixxxxx#18 nsp=1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=465: ixxxxx#18 nsp=1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=465: ixxxxx#18 nsp=1 mass=-400 + 1.414213562373095e+01, -0.000000000000000e+00, // itest=465: ixxxxx#18 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=465: ixxxxx#18 nsp=1 mass=-400 + -2.828427124746190e+01, 0.000000000000000e+00 } ); // itest=465: ixxxxx#18 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=466: vxxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=466: vxxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=466: vxxxxx#18 nsp=1 mass=400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=466: vxxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=466: vxxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=466: vxxxxx#18 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=467: vxxxxx#18 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=467: vxxxxx#18 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=467: vxxxxx#18 nsp=1 mass=-400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=467: vxxxxx#18 nsp=1 mass=-400 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=467: vxxxxx#18 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=467: vxxxxx#18 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=468: sxxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=468: sxxxxx#18 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=468: sxxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=468: sxxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=468: sxxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=468: sxxxxx#18 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=469: sxxxxx#18 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=469: sxxxxx#18 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=469: sxxxxx#18 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=469: sxxxxx#18 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=469: sxxxxx#18 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=469: sxxxxx#18 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=470: oxxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=470: oxxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=470: oxxxxx#18 nsp=1 mass=400 + -2.828427124746190e+01, 0.000000000000000e+00, // itest=470: oxxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=470: oxxxxx#18 nsp=1 mass=400 + -1.414213562373095e+01, 0.000000000000000e+00 } ); // itest=470: oxxxxx#18 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=471: oxxxxx#18 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=471: oxxxxx#18 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=471: oxxxxx#18 nsp=1 mass=-400 + -2.828427124746190e+01, 0.000000000000000e+00, // itest=471: oxxxxx#18 nsp=1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=471: oxxxxx#18 nsp=1 mass=-400 + 1.414213562373095e+01, -0.000000000000000e+00 } ); // itest=471: oxxxxx#18 nsp=1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=472: ixxxxx#19 nsp=1 mass=400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=472: ixxxxx#19 nsp=1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=472: ixxxxx#19 nsp=1 mass=400 + 5.999999999999999e+00, 7.999999999999999e+00, // itest=472: ixxxxx#19 nsp=1 mass=400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=472: ixxxxx#19 nsp=1 mass=400 + 1.200000000000000e+01, 1.600000000000000e+01 } ); // itest=472: ixxxxx#19 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=473: ixxxxx#19 nsp=1 mass=-400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=473: ixxxxx#19 nsp=1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00, // itest=473: ixxxxx#19 nsp=1 mass=-400 + -5.999999999999999e+00, -7.999999999999999e+00, // itest=473: ixxxxx#19 nsp=1 mass=-400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=473: ixxxxx#19 nsp=1 mass=-400 + 1.200000000000000e+01, 1.600000000000000e+01 } ); // itest=473: ixxxxx#19 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=474: vxxxxx#19 nsp=1 mass=400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=474: vxxxxx#19 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=474: vxxxxx#19 nsp=1 mass=400 + 0.000000000000000e+00, -5.656854249492381e-01, // itest=474: vxxxxx#19 nsp=1 mass=400 + 0.000000000000000e+00, 4.242640687119285e-01, // itest=474: vxxxxx#19 nsp=1 mass=400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=474: vxxxxx#19 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=475: vxxxxx#19 nsp=1 mass=-400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=475: vxxxxx#19 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=475: vxxxxx#19 nsp=1 mass=-400 + -0.000000000000000e+00, -5.656854249492381e-01, // itest=475: vxxxxx#19 nsp=1 mass=-400 + -0.000000000000000e+00, 4.242640687119285e-01, // itest=475: vxxxxx#19 nsp=1 mass=-400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=475: vxxxxx#19 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=476: sxxxxx#19 nsp=1 mass=400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=476: sxxxxx#19 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=476: sxxxxx#19 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=476: sxxxxx#19 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=476: sxxxxx#19 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=476: sxxxxx#19 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=477: sxxxxx#19 nsp=1 mass=-400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=477: sxxxxx#19 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=477: sxxxxx#19 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=477: sxxxxx#19 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=477: sxxxxx#19 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=477: sxxxxx#19 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=478: oxxxxx#19 nsp=1 mass=400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=478: oxxxxx#19 nsp=1 mass=400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=478: oxxxxx#19 nsp=1 mass=400 + 1.200000000000000e+01, -1.600000000000000e+01, // itest=478: oxxxxx#19 nsp=1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=478: oxxxxx#19 nsp=1 mass=400 + 5.999999999999999e+00, -7.999999999999999e+00 } ); // itest=478: oxxxxx#19 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=479: oxxxxx#19 nsp=1 mass=-400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=479: oxxxxx#19 nsp=1 mass=-400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=479: oxxxxx#19 nsp=1 mass=-400 + 1.200000000000000e+01, -1.600000000000000e+01, // itest=479: oxxxxx#19 nsp=1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00, // itest=479: oxxxxx#19 nsp=1 mass=-400 + -5.999999999999999e+00, 7.999999999999999e+00 } ); // itest=479: oxxxxx#19 nsp=1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=480: ixxxxx#20 nsp=1 mass=400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=480: ixxxxx#20 nsp=1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=480: ixxxxx#20 nsp=1 mass=400 + -7.999999999999999e+00, -5.999999999999999e+00, // itest=480: ixxxxx#20 nsp=1 mass=400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=480: ixxxxx#20 nsp=1 mass=400 + -1.600000000000000e+01, -1.200000000000000e+01 } ); // itest=480: ixxxxx#20 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=481: ixxxxx#20 nsp=1 mass=-400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=481: ixxxxx#20 nsp=1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00, // itest=481: ixxxxx#20 nsp=1 mass=-400 + 7.999999999999999e+00, 5.999999999999999e+00, // itest=481: ixxxxx#20 nsp=1 mass=-400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=481: ixxxxx#20 nsp=1 mass=-400 + -1.600000000000000e+01, -1.200000000000000e+01 } ); // itest=481: ixxxxx#20 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=482: vxxxxx#20 nsp=1 mass=400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=482: vxxxxx#20 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=482: vxxxxx#20 nsp=1 mass=400 + 0.000000000000000e+00, 4.242640687119285e-01, // itest=482: vxxxxx#20 nsp=1 mass=400 + 0.000000000000000e+00, -5.656854249492381e-01, // itest=482: vxxxxx#20 nsp=1 mass=400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=482: vxxxxx#20 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=483: vxxxxx#20 nsp=1 mass=-400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=483: vxxxxx#20 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=483: vxxxxx#20 nsp=1 mass=-400 + 0.000000000000000e+00, 4.242640687119285e-01, // itest=483: vxxxxx#20 nsp=1 mass=-400 + 0.000000000000000e+00, -5.656854249492381e-01, // itest=483: vxxxxx#20 nsp=1 mass=-400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=483: vxxxxx#20 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=484: sxxxxx#20 nsp=1 mass=400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=484: sxxxxx#20 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=484: sxxxxx#20 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=484: sxxxxx#20 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=484: sxxxxx#20 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=484: sxxxxx#20 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=485: sxxxxx#20 nsp=1 mass=-400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=485: sxxxxx#20 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=485: sxxxxx#20 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=485: sxxxxx#20 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=485: sxxxxx#20 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=485: sxxxxx#20 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=486: oxxxxx#20 nsp=1 mass=400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=486: oxxxxx#20 nsp=1 mass=400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=486: oxxxxx#20 nsp=1 mass=400 + -1.600000000000000e+01, 1.200000000000000e+01, // itest=486: oxxxxx#20 nsp=1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=486: oxxxxx#20 nsp=1 mass=400 + -7.999999999999999e+00, 5.999999999999999e+00 } ); // itest=486: oxxxxx#20 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=487: oxxxxx#20 nsp=1 mass=-400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=487: oxxxxx#20 nsp=1 mass=-400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=487: oxxxxx#20 nsp=1 mass=-400 + -1.600000000000000e+01, 1.200000000000000e+01, // itest=487: oxxxxx#20 nsp=1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00, // itest=487: oxxxxx#20 nsp=1 mass=-400 + 7.999999999999999e+00, -5.999999999999999e+00 } ); // itest=487: oxxxxx#20 nsp=1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=488: ixxxxx#21 nsp=1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=488: ixxxxx#21 nsp=1 mass=400 + 1.216552506059644e+01, 0.000000000000000e+00, // itest=488: ixxxxx#21 nsp=1 mass=400 + 4.931969619160719e+00, 5.260767593771432e+00, // itest=488: ixxxxx#21 nsp=1 mass=400 + 2.433105012119288e+01, 0.000000000000000e+00, // itest=488: ixxxxx#21 nsp=1 mass=400 + 9.863939238321439e+00, 1.052153518754287e+01 } ); // itest=488: ixxxxx#21 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=489: ixxxxx#21 nsp=1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=489: ixxxxx#21 nsp=1 mass=-400 + -1.216552506059644e+01, -0.000000000000000e+00, // itest=489: ixxxxx#21 nsp=1 mass=-400 + -4.931969619160719e+00, -5.260767593771432e+00, // itest=489: ixxxxx#21 nsp=1 mass=-400 + 2.433105012119288e+01, 0.000000000000000e+00, // itest=489: ixxxxx#21 nsp=1 mass=-400 + 9.863939238321439e+00, 1.052153518754287e+01 } ); // itest=489: ixxxxx#21 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=490: vxxxxx#21 nsp=1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=490: vxxxxx#21 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=490: vxxxxx#21 nsp=1 mass=400 + -2.321373168788980e-01, -5.158607041753289e-01, // itest=490: vxxxxx#21 nsp=1 mass=400 + -2.476131380041579e-01, 4.836194101643708e-01, // itest=490: vxxxxx#21 nsp=1 mass=400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=490: vxxxxx#21 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=491: vxxxxx#21 nsp=1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=491: vxxxxx#21 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=491: vxxxxx#21 nsp=1 mass=-400 + -2.321373168788980e-01, -5.158607041753289e-01, // itest=491: vxxxxx#21 nsp=1 mass=-400 + -2.476131380041579e-01, 4.836194101643708e-01, // itest=491: vxxxxx#21 nsp=1 mass=-400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=491: vxxxxx#21 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=492: sxxxxx#21 nsp=1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=492: sxxxxx#21 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=492: sxxxxx#21 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=492: sxxxxx#21 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=492: sxxxxx#21 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=492: sxxxxx#21 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=493: sxxxxx#21 nsp=1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=493: sxxxxx#21 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=493: sxxxxx#21 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=493: sxxxxx#21 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=493: sxxxxx#21 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=493: sxxxxx#21 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=494: oxxxxx#21 nsp=1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=494: oxxxxx#21 nsp=1 mass=400 + 2.433105012119288e+01, 0.000000000000000e+00, // itest=494: oxxxxx#21 nsp=1 mass=400 + 9.863939238321439e+00, -1.052153518754287e+01, // itest=494: oxxxxx#21 nsp=1 mass=400 + 1.216552506059644e+01, 0.000000000000000e+00, // itest=494: oxxxxx#21 nsp=1 mass=400 + 4.931969619160719e+00, -5.260767593771432e+00 } ); // itest=494: oxxxxx#21 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=495: oxxxxx#21 nsp=1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=495: oxxxxx#21 nsp=1 mass=-400 + 2.433105012119288e+01, 0.000000000000000e+00, // itest=495: oxxxxx#21 nsp=1 mass=-400 + 9.863939238321439e+00, -1.052153518754287e+01, // itest=495: oxxxxx#21 nsp=1 mass=-400 + -1.216552506059644e+01, -0.000000000000000e+00, // itest=495: oxxxxx#21 nsp=1 mass=-400 + -4.931969619160719e+00, 5.260767593771432e+00 } ); // itest=495: oxxxxx#21 nsp=1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=496: ixxxxx#22 nsp=1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=496: ixxxxx#22 nsp=1 mass=400 + 7.211102550927978e+00, 0.000000000000000e+00, // itest=496: ixxxxx#22 nsp=1 mass=400 + 8.320502943378436e+00, 8.875203139603666e+00, // itest=496: ixxxxx#22 nsp=1 mass=400 + 1.442220510185596e+01, 0.000000000000000e+00, // itest=496: ixxxxx#22 nsp=1 mass=400 + 1.664100588675688e+01, 1.775040627920733e+01 } ); // itest=496: ixxxxx#22 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=497: ixxxxx#22 nsp=1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=497: ixxxxx#22 nsp=1 mass=-400 + -7.211102550927978e+00, -0.000000000000000e+00, // itest=497: ixxxxx#22 nsp=1 mass=-400 + -8.320502943378436e+00, -8.875203139603666e+00, // itest=497: ixxxxx#22 nsp=1 mass=-400 + 1.442220510185596e+01, 0.000000000000000e+00, // itest=497: ixxxxx#22 nsp=1 mass=-400 + 1.664100588675688e+01, 1.775040627920733e+01 } ); // itest=497: ixxxxx#22 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=498: vxxxxx#22 nsp=1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=498: vxxxxx#22 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=498: vxxxxx#22 nsp=1 mass=400 + 2.321373168788980e-01, -5.158607041753289e-01, // itest=498: vxxxxx#22 nsp=1 mass=400 + 2.476131380041579e-01, 4.836194101643708e-01, // itest=498: vxxxxx#22 nsp=1 mass=400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=498: vxxxxx#22 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=499: vxxxxx#22 nsp=1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=499: vxxxxx#22 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=499: vxxxxx#22 nsp=1 mass=-400 + 2.321373168788980e-01, -5.158607041753289e-01, // itest=499: vxxxxx#22 nsp=1 mass=-400 + 2.476131380041579e-01, 4.836194101643708e-01, // itest=499: vxxxxx#22 nsp=1 mass=-400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=499: vxxxxx#22 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=500: sxxxxx#22 nsp=1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=500: sxxxxx#22 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=500: sxxxxx#22 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=500: sxxxxx#22 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=500: sxxxxx#22 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=500: sxxxxx#22 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=501: sxxxxx#22 nsp=1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=501: sxxxxx#22 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=501: sxxxxx#22 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=501: sxxxxx#22 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=501: sxxxxx#22 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=501: sxxxxx#22 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=502: oxxxxx#22 nsp=1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=502: oxxxxx#22 nsp=1 mass=400 + 1.442220510185596e+01, 0.000000000000000e+00, // itest=502: oxxxxx#22 nsp=1 mass=400 + 1.664100588675688e+01, -1.775040627920733e+01, // itest=502: oxxxxx#22 nsp=1 mass=400 + 7.211102550927978e+00, 0.000000000000000e+00, // itest=502: oxxxxx#22 nsp=1 mass=400 + 8.320502943378436e+00, -8.875203139603666e+00 } ); // itest=502: oxxxxx#22 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=503: oxxxxx#22 nsp=1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=503: oxxxxx#22 nsp=1 mass=-400 + 1.442220510185596e+01, 0.000000000000000e+00, // itest=503: oxxxxx#22 nsp=1 mass=-400 + 1.664100588675688e+01, -1.775040627920733e+01, // itest=503: oxxxxx#22 nsp=1 mass=-400 + -7.211102550927978e+00, -0.000000000000000e+00, // itest=503: oxxxxx#22 nsp=1 mass=-400 + -8.320502943378436e+00, 8.875203139603666e+00 } ); // itest=503: oxxxxx#22 nsp=1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=504: ixxxxx#23 nsp=1 mass=500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=504: ixxxxx#23 nsp=1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=504: ixxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=504: ixxxxx#23 nsp=1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=504: ixxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=504: ixxxxx#23 nsp=1 mass=500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=505: ixxxxx#23 nsp=1 mass=-500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=505: ixxxxx#23 nsp=1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=505: ixxxxx#23 nsp=1 mass=-500 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=505: ixxxxx#23 nsp=1 mass=-500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=505: ixxxxx#23 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=505: ixxxxx#23 nsp=1 mass=-500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=506: vxxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=506: vxxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=506: vxxxxx#23 nsp=1 mass=500 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=506: vxxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=506: vxxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=506: vxxxxx#23 nsp=1 mass=500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=507: vxxxxx#23 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=507: vxxxxx#23 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=507: vxxxxx#23 nsp=1 mass=-500 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=507: vxxxxx#23 nsp=1 mass=-500 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=507: vxxxxx#23 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=507: vxxxxx#23 nsp=1 mass=-500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=508: sxxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=508: sxxxxx#23 nsp=1 mass=500 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=508: sxxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=508: sxxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=508: sxxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=508: sxxxxx#23 nsp=1 mass=500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=509: sxxxxx#23 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=509: sxxxxx#23 nsp=1 mass=-500 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=509: sxxxxx#23 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=509: sxxxxx#23 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=509: sxxxxx#23 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=509: sxxxxx#23 nsp=1 mass=-500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=510: oxxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=510: oxxxxx#23 nsp=1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=510: oxxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=510: oxxxxx#23 nsp=1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=510: oxxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=510: oxxxxx#23 nsp=1 mass=500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=511: oxxxxx#23 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=511: oxxxxx#23 nsp=1 mass=-500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=511: oxxxxx#23 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=511: oxxxxx#23 nsp=1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=511: oxxxxx#23 nsp=1 mass=-500 + -0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=511: oxxxxx#23 nsp=1 mass=-500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=512: ixxxxx#24 nsp=1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=512: ixxxxx#24 nsp=1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=512: ixxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=512: ixxxxx#24 nsp=1 mass=400 + 2.828427124746190e+01, 0.000000000000000e+00, // itest=512: ixxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=512: ixxxxx#24 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=513: ixxxxx#24 nsp=1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=513: ixxxxx#24 nsp=1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=513: ixxxxx#24 nsp=1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=513: ixxxxx#24 nsp=1 mass=-400 + 2.828427124746190e+01, 0.000000000000000e+00, // itest=513: ixxxxx#24 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=513: ixxxxx#24 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=514: vxxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=514: vxxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=514: vxxxxx#24 nsp=1 mass=400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=514: vxxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=514: vxxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=514: vxxxxx#24 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=515: vxxxxx#24 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=515: vxxxxx#24 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=515: vxxxxx#24 nsp=1 mass=-400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=515: vxxxxx#24 nsp=1 mass=-400 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=515: vxxxxx#24 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=515: vxxxxx#24 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=516: sxxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=516: sxxxxx#24 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=516: sxxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=516: sxxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=516: sxxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=516: sxxxxx#24 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=517: sxxxxx#24 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=517: sxxxxx#24 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=517: sxxxxx#24 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=517: sxxxxx#24 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=517: sxxxxx#24 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=517: sxxxxx#24 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=518: oxxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=518: oxxxxx#24 nsp=1 mass=400 + 2.828427124746190e+01, 0.000000000000000e+00, // itest=518: oxxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=518: oxxxxx#24 nsp=1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=518: oxxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=518: oxxxxx#24 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=519: oxxxxx#24 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=519: oxxxxx#24 nsp=1 mass=-400 + 2.828427124746190e+01, 0.000000000000000e+00, // itest=519: oxxxxx#24 nsp=1 mass=-400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=519: oxxxxx#24 nsp=1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=519: oxxxxx#24 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=519: oxxxxx#24 nsp=1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=520: ixxxxx#25 nsp=1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=520: ixxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=520: ixxxxx#25 nsp=1 mass=400 + -1.414213562373095e+01, 0.000000000000000e+00, // itest=520: ixxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=520: ixxxxx#25 nsp=1 mass=400 + -2.828427124746190e+01, 0.000000000000000e+00 } ); // itest=520: ixxxxx#25 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=521: ixxxxx#25 nsp=1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=521: ixxxxx#25 nsp=1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=521: ixxxxx#25 nsp=1 mass=-400 + 1.414213562373095e+01, -0.000000000000000e+00, // itest=521: ixxxxx#25 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=521: ixxxxx#25 nsp=1 mass=-400 + -2.828427124746190e+01, 0.000000000000000e+00 } ); // itest=521: ixxxxx#25 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=522: vxxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=522: vxxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=522: vxxxxx#25 nsp=1 mass=400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=522: vxxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=522: vxxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=522: vxxxxx#25 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=523: vxxxxx#25 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=523: vxxxxx#25 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=523: vxxxxx#25 nsp=1 mass=-400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=523: vxxxxx#25 nsp=1 mass=-400 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=523: vxxxxx#25 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=523: vxxxxx#25 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=524: sxxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=524: sxxxxx#25 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=524: sxxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=524: sxxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=524: sxxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=524: sxxxxx#25 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=525: sxxxxx#25 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=525: sxxxxx#25 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=525: sxxxxx#25 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=525: sxxxxx#25 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=525: sxxxxx#25 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=525: sxxxxx#25 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=526: oxxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=526: oxxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=526: oxxxxx#25 nsp=1 mass=400 + -2.828427124746190e+01, 0.000000000000000e+00, // itest=526: oxxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=526: oxxxxx#25 nsp=1 mass=400 + -1.414213562373095e+01, 0.000000000000000e+00 } ); // itest=526: oxxxxx#25 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=527: oxxxxx#25 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=527: oxxxxx#25 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=527: oxxxxx#25 nsp=1 mass=-400 + -2.828427124746190e+01, 0.000000000000000e+00, // itest=527: oxxxxx#25 nsp=1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=527: oxxxxx#25 nsp=1 mass=-400 + 1.414213562373095e+01, -0.000000000000000e+00 } ); // itest=527: oxxxxx#25 nsp=1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=528: ixxxxx#26 nsp=1 mass=400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=528: ixxxxx#26 nsp=1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=528: ixxxxx#26 nsp=1 mass=400 + 5.999999999999999e+00, 7.999999999999999e+00, // itest=528: ixxxxx#26 nsp=1 mass=400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=528: ixxxxx#26 nsp=1 mass=400 + 1.200000000000000e+01, 1.600000000000000e+01 } ); // itest=528: ixxxxx#26 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=529: ixxxxx#26 nsp=1 mass=-400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=529: ixxxxx#26 nsp=1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00, // itest=529: ixxxxx#26 nsp=1 mass=-400 + -5.999999999999999e+00, -7.999999999999999e+00, // itest=529: ixxxxx#26 nsp=1 mass=-400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=529: ixxxxx#26 nsp=1 mass=-400 + 1.200000000000000e+01, 1.600000000000000e+01 } ); // itest=529: ixxxxx#26 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=530: vxxxxx#26 nsp=1 mass=400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=530: vxxxxx#26 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=530: vxxxxx#26 nsp=1 mass=400 + 0.000000000000000e+00, -5.656854249492381e-01, // itest=530: vxxxxx#26 nsp=1 mass=400 + 0.000000000000000e+00, 4.242640687119285e-01, // itest=530: vxxxxx#26 nsp=1 mass=400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=530: vxxxxx#26 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=531: vxxxxx#26 nsp=1 mass=-400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=531: vxxxxx#26 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=531: vxxxxx#26 nsp=1 mass=-400 + -0.000000000000000e+00, -5.656854249492381e-01, // itest=531: vxxxxx#26 nsp=1 mass=-400 + -0.000000000000000e+00, 4.242640687119285e-01, // itest=531: vxxxxx#26 nsp=1 mass=-400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=531: vxxxxx#26 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=532: sxxxxx#26 nsp=1 mass=400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=532: sxxxxx#26 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=532: sxxxxx#26 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=532: sxxxxx#26 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=532: sxxxxx#26 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=532: sxxxxx#26 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=533: sxxxxx#26 nsp=1 mass=-400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=533: sxxxxx#26 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=533: sxxxxx#26 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=533: sxxxxx#26 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=533: sxxxxx#26 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=533: sxxxxx#26 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=534: oxxxxx#26 nsp=1 mass=400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=534: oxxxxx#26 nsp=1 mass=400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=534: oxxxxx#26 nsp=1 mass=400 + 1.200000000000000e+01, -1.600000000000000e+01, // itest=534: oxxxxx#26 nsp=1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=534: oxxxxx#26 nsp=1 mass=400 + 5.999999999999999e+00, -7.999999999999999e+00 } ); // itest=534: oxxxxx#26 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=535: oxxxxx#26 nsp=1 mass=-400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=535: oxxxxx#26 nsp=1 mass=-400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=535: oxxxxx#26 nsp=1 mass=-400 + 1.200000000000000e+01, -1.600000000000000e+01, // itest=535: oxxxxx#26 nsp=1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00, // itest=535: oxxxxx#26 nsp=1 mass=-400 + -5.999999999999999e+00, 7.999999999999999e+00 } ); // itest=535: oxxxxx#26 nsp=1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=536: ixxxxx#27 nsp=1 mass=400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=536: ixxxxx#27 nsp=1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=536: ixxxxx#27 nsp=1 mass=400 + -7.999999999999999e+00, -5.999999999999999e+00, // itest=536: ixxxxx#27 nsp=1 mass=400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=536: ixxxxx#27 nsp=1 mass=400 + -1.600000000000000e+01, -1.200000000000000e+01 } ); // itest=536: ixxxxx#27 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=537: ixxxxx#27 nsp=1 mass=-400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=537: ixxxxx#27 nsp=1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00, // itest=537: ixxxxx#27 nsp=1 mass=-400 + 7.999999999999999e+00, 5.999999999999999e+00, // itest=537: ixxxxx#27 nsp=1 mass=-400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=537: ixxxxx#27 nsp=1 mass=-400 + -1.600000000000000e+01, -1.200000000000000e+01 } ); // itest=537: ixxxxx#27 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=538: vxxxxx#27 nsp=1 mass=400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=538: vxxxxx#27 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=538: vxxxxx#27 nsp=1 mass=400 + 0.000000000000000e+00, 4.242640687119285e-01, // itest=538: vxxxxx#27 nsp=1 mass=400 + 0.000000000000000e+00, -5.656854249492381e-01, // itest=538: vxxxxx#27 nsp=1 mass=400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=538: vxxxxx#27 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=539: vxxxxx#27 nsp=1 mass=-400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=539: vxxxxx#27 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=539: vxxxxx#27 nsp=1 mass=-400 + 0.000000000000000e+00, 4.242640687119285e-01, // itest=539: vxxxxx#27 nsp=1 mass=-400 + 0.000000000000000e+00, -5.656854249492381e-01, // itest=539: vxxxxx#27 nsp=1 mass=-400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=539: vxxxxx#27 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=540: sxxxxx#27 nsp=1 mass=400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=540: sxxxxx#27 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=540: sxxxxx#27 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=540: sxxxxx#27 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=540: sxxxxx#27 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=540: sxxxxx#27 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=541: sxxxxx#27 nsp=1 mass=-400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=541: sxxxxx#27 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=541: sxxxxx#27 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=541: sxxxxx#27 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=541: sxxxxx#27 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=541: sxxxxx#27 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=542: oxxxxx#27 nsp=1 mass=400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=542: oxxxxx#27 nsp=1 mass=400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=542: oxxxxx#27 nsp=1 mass=400 + -1.600000000000000e+01, 1.200000000000000e+01, // itest=542: oxxxxx#27 nsp=1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=542: oxxxxx#27 nsp=1 mass=400 + -7.999999999999999e+00, 5.999999999999999e+00 } ); // itest=542: oxxxxx#27 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=543: oxxxxx#27 nsp=1 mass=-400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=543: oxxxxx#27 nsp=1 mass=-400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=543: oxxxxx#27 nsp=1 mass=-400 + -1.600000000000000e+01, 1.200000000000000e+01, // itest=543: oxxxxx#27 nsp=1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00, // itest=543: oxxxxx#27 nsp=1 mass=-400 + 7.999999999999999e+00, -5.999999999999999e+00 } ); // itest=543: oxxxxx#27 nsp=1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=544: ixxxxx#28 nsp=1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=544: ixxxxx#28 nsp=1 mass=400 + 1.216552506059644e+01, 0.000000000000000e+00, // itest=544: ixxxxx#28 nsp=1 mass=400 + 4.931969619160719e+00, 5.260767593771432e+00, // itest=544: ixxxxx#28 nsp=1 mass=400 + 2.433105012119288e+01, 0.000000000000000e+00, // itest=544: ixxxxx#28 nsp=1 mass=400 + 9.863939238321439e+00, 1.052153518754287e+01 } ); // itest=544: ixxxxx#28 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=545: ixxxxx#28 nsp=1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=545: ixxxxx#28 nsp=1 mass=-400 + -1.216552506059644e+01, -0.000000000000000e+00, // itest=545: ixxxxx#28 nsp=1 mass=-400 + -4.931969619160719e+00, -5.260767593771432e+00, // itest=545: ixxxxx#28 nsp=1 mass=-400 + 2.433105012119288e+01, 0.000000000000000e+00, // itest=545: ixxxxx#28 nsp=1 mass=-400 + 9.863939238321439e+00, 1.052153518754287e+01 } ); // itest=545: ixxxxx#28 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=546: vxxxxx#28 nsp=1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=546: vxxxxx#28 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=546: vxxxxx#28 nsp=1 mass=400 + -2.321373168788980e-01, -5.158607041753289e-01, // itest=546: vxxxxx#28 nsp=1 mass=400 + -2.476131380041579e-01, 4.836194101643708e-01, // itest=546: vxxxxx#28 nsp=1 mass=400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=546: vxxxxx#28 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=547: vxxxxx#28 nsp=1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=547: vxxxxx#28 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=547: vxxxxx#28 nsp=1 mass=-400 + -2.321373168788980e-01, -5.158607041753289e-01, // itest=547: vxxxxx#28 nsp=1 mass=-400 + -2.476131380041579e-01, 4.836194101643708e-01, // itest=547: vxxxxx#28 nsp=1 mass=-400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=547: vxxxxx#28 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=548: sxxxxx#28 nsp=1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=548: sxxxxx#28 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=548: sxxxxx#28 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=548: sxxxxx#28 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=548: sxxxxx#28 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=548: sxxxxx#28 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=549: sxxxxx#28 nsp=1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=549: sxxxxx#28 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=549: sxxxxx#28 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=549: sxxxxx#28 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=549: sxxxxx#28 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=549: sxxxxx#28 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=550: oxxxxx#28 nsp=1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=550: oxxxxx#28 nsp=1 mass=400 + 2.433105012119288e+01, 0.000000000000000e+00, // itest=550: oxxxxx#28 nsp=1 mass=400 + 9.863939238321439e+00, -1.052153518754287e+01, // itest=550: oxxxxx#28 nsp=1 mass=400 + 1.216552506059644e+01, 0.000000000000000e+00, // itest=550: oxxxxx#28 nsp=1 mass=400 + 4.931969619160719e+00, -5.260767593771432e+00 } ); // itest=550: oxxxxx#28 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=551: oxxxxx#28 nsp=1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=551: oxxxxx#28 nsp=1 mass=-400 + 2.433105012119288e+01, 0.000000000000000e+00, // itest=551: oxxxxx#28 nsp=1 mass=-400 + 9.863939238321439e+00, -1.052153518754287e+01, // itest=551: oxxxxx#28 nsp=1 mass=-400 + -1.216552506059644e+01, -0.000000000000000e+00, // itest=551: oxxxxx#28 nsp=1 mass=-400 + -4.931969619160719e+00, 5.260767593771432e+00 } ); // itest=551: oxxxxx#28 nsp=1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=552: ixxxxx#29 nsp=1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=552: ixxxxx#29 nsp=1 mass=400 + 7.211102550927978e+00, 0.000000000000000e+00, // itest=552: ixxxxx#29 nsp=1 mass=400 + 8.320502943378436e+00, 8.875203139603666e+00, // itest=552: ixxxxx#29 nsp=1 mass=400 + 1.442220510185596e+01, 0.000000000000000e+00, // itest=552: ixxxxx#29 nsp=1 mass=400 + 1.664100588675688e+01, 1.775040627920733e+01 } ); // itest=552: ixxxxx#29 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=553: ixxxxx#29 nsp=1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=553: ixxxxx#29 nsp=1 mass=-400 + -7.211102550927978e+00, -0.000000000000000e+00, // itest=553: ixxxxx#29 nsp=1 mass=-400 + -8.320502943378436e+00, -8.875203139603666e+00, // itest=553: ixxxxx#29 nsp=1 mass=-400 + 1.442220510185596e+01, 0.000000000000000e+00, // itest=553: ixxxxx#29 nsp=1 mass=-400 + 1.664100588675688e+01, 1.775040627920733e+01 } ); // itest=553: ixxxxx#29 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=554: vxxxxx#29 nsp=1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=554: vxxxxx#29 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=554: vxxxxx#29 nsp=1 mass=400 + 2.321373168788980e-01, -5.158607041753289e-01, // itest=554: vxxxxx#29 nsp=1 mass=400 + 2.476131380041579e-01, 4.836194101643708e-01, // itest=554: vxxxxx#29 nsp=1 mass=400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=554: vxxxxx#29 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=555: vxxxxx#29 nsp=1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=555: vxxxxx#29 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=555: vxxxxx#29 nsp=1 mass=-400 + 2.321373168788980e-01, -5.158607041753289e-01, // itest=555: vxxxxx#29 nsp=1 mass=-400 + 2.476131380041579e-01, 4.836194101643708e-01, // itest=555: vxxxxx#29 nsp=1 mass=-400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=555: vxxxxx#29 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=556: sxxxxx#29 nsp=1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=556: sxxxxx#29 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=556: sxxxxx#29 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=556: sxxxxx#29 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=556: sxxxxx#29 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=556: sxxxxx#29 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=557: sxxxxx#29 nsp=1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=557: sxxxxx#29 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=557: sxxxxx#29 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=557: sxxxxx#29 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=557: sxxxxx#29 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=557: sxxxxx#29 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=558: oxxxxx#29 nsp=1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=558: oxxxxx#29 nsp=1 mass=400 + 1.442220510185596e+01, 0.000000000000000e+00, // itest=558: oxxxxx#29 nsp=1 mass=400 + 1.664100588675688e+01, -1.775040627920733e+01, // itest=558: oxxxxx#29 nsp=1 mass=400 + 7.211102550927978e+00, 0.000000000000000e+00, // itest=558: oxxxxx#29 nsp=1 mass=400 + 8.320502943378436e+00, -8.875203139603666e+00 } ); // itest=558: oxxxxx#29 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=559: oxxxxx#29 nsp=1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=559: oxxxxx#29 nsp=1 mass=-400 + 1.442220510185596e+01, 0.000000000000000e+00, // itest=559: oxxxxx#29 nsp=1 mass=-400 + 1.664100588675688e+01, -1.775040627920733e+01, // itest=559: oxxxxx#29 nsp=1 mass=-400 + -7.211102550927978e+00, -0.000000000000000e+00, // itest=559: oxxxxx#29 nsp=1 mass=-400 + -8.320502943378436e+00, 8.875203139603666e+00 } ); // itest=559: oxxxxx#29 nsp=1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=560: ixxxxx#30 nsp=1 mass=500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=560: ixxxxx#30 nsp=1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=560: ixxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=560: ixxxxx#30 nsp=1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=560: ixxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=560: ixxxxx#30 nsp=1 mass=500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=561: ixxxxx#30 nsp=1 mass=-500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=561: ixxxxx#30 nsp=1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=561: ixxxxx#30 nsp=1 mass=-500 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=561: ixxxxx#30 nsp=1 mass=-500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=561: ixxxxx#30 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=561: ixxxxx#30 nsp=1 mass=-500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=562: vxxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=562: vxxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=562: vxxxxx#30 nsp=1 mass=500 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=562: vxxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=562: vxxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=562: vxxxxx#30 nsp=1 mass=500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=563: vxxxxx#30 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=563: vxxxxx#30 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=563: vxxxxx#30 nsp=1 mass=-500 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=563: vxxxxx#30 nsp=1 mass=-500 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=563: vxxxxx#30 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=563: vxxxxx#30 nsp=1 mass=-500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=564: sxxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=564: sxxxxx#30 nsp=1 mass=500 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=564: sxxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=564: sxxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=564: sxxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=564: sxxxxx#30 nsp=1 mass=500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=565: sxxxxx#30 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=565: sxxxxx#30 nsp=1 mass=-500 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=565: sxxxxx#30 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=565: sxxxxx#30 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=565: sxxxxx#30 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=565: sxxxxx#30 nsp=1 mass=-500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=566: oxxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=566: oxxxxx#30 nsp=1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=566: oxxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=566: oxxxxx#30 nsp=1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=566: oxxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=566: oxxxxx#30 nsp=1 mass=500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=567: oxxxxx#30 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=567: oxxxxx#30 nsp=1 mass=-500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=567: oxxxxx#30 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=567: oxxxxx#30 nsp=1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=567: oxxxxx#30 nsp=1 mass=-500 + -0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=567: oxxxxx#30 nsp=1 mass=-500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=568: ixxxxx#31 nsp=1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=568: ixxxxx#31 nsp=1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=568: ixxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=568: ixxxxx#31 nsp=1 mass=400 + 2.828427124746190e+01, 0.000000000000000e+00, // itest=568: ixxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=568: ixxxxx#31 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=569: ixxxxx#31 nsp=1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=569: ixxxxx#31 nsp=1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=569: ixxxxx#31 nsp=1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=569: ixxxxx#31 nsp=1 mass=-400 + 2.828427124746190e+01, 0.000000000000000e+00, // itest=569: ixxxxx#31 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=569: ixxxxx#31 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=570: vxxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=570: vxxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=570: vxxxxx#31 nsp=1 mass=400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=570: vxxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=570: vxxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=570: vxxxxx#31 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=571: vxxxxx#31 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=571: vxxxxx#31 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=571: vxxxxx#31 nsp=1 mass=-400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=571: vxxxxx#31 nsp=1 mass=-400 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=571: vxxxxx#31 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=571: vxxxxx#31 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=572: sxxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=572: sxxxxx#31 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=572: sxxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=572: sxxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=572: sxxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=572: sxxxxx#31 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=573: sxxxxx#31 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=573: sxxxxx#31 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=573: sxxxxx#31 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=573: sxxxxx#31 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=573: sxxxxx#31 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=573: sxxxxx#31 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=574: oxxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=574: oxxxxx#31 nsp=1 mass=400 + 2.828427124746190e+01, 0.000000000000000e+00, // itest=574: oxxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=574: oxxxxx#31 nsp=1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=574: oxxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=574: oxxxxx#31 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=575: oxxxxx#31 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=575: oxxxxx#31 nsp=1 mass=-400 + 2.828427124746190e+01, 0.000000000000000e+00, // itest=575: oxxxxx#31 nsp=1 mass=-400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=575: oxxxxx#31 nsp=1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=575: oxxxxx#31 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=575: oxxxxx#31 nsp=1 mass=-400 diff --git a/epochX/cudacpp/gg_ttggg.sa/src/HelAmps_sm.h b/epochX/cudacpp/gg_ttggg.sa/src/HelAmps_sm.h index ee2fcbbde5..b68cdea0db 100644 --- a/epochX/cudacpp/gg_ttggg.sa/src/HelAmps_sm.h +++ b/epochX/cudacpp/gg_ttggg.sa/src/HelAmps_sm.h @@ -1,3 +1,4 @@ +// Copyright (C) 2010 The ALOHA Development team and Contributors. // Copyright (C) 2010 The MadGraph5_aMC@NLO development team and contributors. // Created by: J. Alwall (Sep 2010) for the MG5aMC backend. //========================================================================== @@ -21,6 +22,7 @@ #include "Parameters_sm.h" +#include //#include //#include //#include @@ -190,6 +192,9 @@ namespace mg5amcCpu const int ipar ) // input: particle# out of npar { mgDebug( 0, __FUNCTION__ ); + // NEW IMPLEMENTATION FIXING FLOATING POINT EXCEPTIONS IN SIMD CODE (#701) + // Variables xxxDENOM are a hack to avoid division-by-0 FPE while preserving speed (#701 and #727) + // Variables xxxDENOM are declared as 'volatile' to make sure they are not optimized away on clang! (#724) const fptype_sv& pvec0 = M_ACCESS::kernelAccessIp4IparConst( momenta, 0, ipar ); const fptype_sv& pvec1 = M_ACCESS::kernelAccessIp4IparConst( momenta, 1, ipar ); const fptype_sv& pvec2 = M_ACCESS::kernelAccessIp4IparConst( momenta, 2, ipar ); @@ -201,6 +206,11 @@ namespace mg5amcCpu if( fmass != 0. ) { const fptype_sv pp = fpmin( pvec0, fpsqrt( pvec1 * pvec1 + pvec2 * pvec2 + pvec3 * pvec3 ) ); + // In C++ ixxxxx, use a single ip/im numbering that is valid both for pp==0 and pp>0, which have two numbering schemes in Fortran ixxxxx: + // for pp==0, Fortran sqm(0:1) has indexes 0,1 as in C++; but for Fortran pp>0, omega(2) has indexes 1,2 and not 0,1 + // NB: this is only possible in ixxxx, but in oxxxxx two different numbering schemes must be used + const int ip = ( 1 + nh ) / 2; // NB: same as in Fortran pp==0, differs from Fortran pp>0, which is (3+nh)/2 because omega(2) has indexes 1,2 + const int im = ( 1 - nh ) / 2; // NB: same as in Fortran pp==0, differs from Fortran pp>0, which is (3-nh)/2 because omega(2) has indexes 1,2 #ifndef MGONGPU_CPPSIMD if( pp == 0. ) { @@ -208,8 +218,6 @@ namespace mg5amcCpu fptype sqm[2] = { fpsqrt( std::abs( fmass ) ), 0. }; // possibility of negative fermion masses //sqm[1] = ( fmass < 0. ? -abs( sqm[0] ) : abs( sqm[0] ) ); // AV: why abs here? sqm[1] = ( fmass < 0. ? -sqm[0] : sqm[0] ); // AV: removed an abs here - const int ip = ( 1 + nh ) / 2; // NB: Fortran sqm(0:1) also has indexes 0,1 as in C++ - const int im = ( 1 - nh ) / 2; // NB: Fortran sqm(0:1) also has indexes 0,1 as in C++ fi[2] = cxmake( ip * sqm[ip], 0 ); fi[3] = cxmake( im * nsf * sqm[ip], 0 ); fi[4] = cxmake( ip * nsf * sqm[im], 0 ); @@ -221,8 +229,6 @@ namespace mg5amcCpu fptype( 1 + nsf - ( 1 - nsf ) * nh ) * (fptype)0.5 }; fptype omega[2] = { fpsqrt( pvec0 + pp ), 0. }; omega[1] = fmass / omega[0]; - const int ip = ( 1 + nh ) / 2; // NB: Fortran is (3+nh)/2 because omega(2) has indexes 1,2 and not 0,1 - const int im = ( 1 - nh ) / 2; // NB: Fortran is (3-nh)/2 because omega(2) has indexes 1,2 and not 0,1 const fptype sfomega[2] = { sf[0] * omega[ip], sf[1] * omega[im] }; const fptype pp3 = fpmax( pp + pvec3, 0. ); const cxtype chi[2] = { cxmake( fpsqrt( pp3 * (fptype)0.5 / pp ), 0. ), @@ -233,8 +239,6 @@ namespace mg5amcCpu fi[5] = sfomega[1] * chi[ip]; } #else - const int ip = ( 1 + nh ) / 2; - const int im = ( 1 - nh ) / 2; // Branch A: pp == 0. // NB: Do not use "abs" for floats! It returns an integer with no build warning! Use std::abs! fptype sqm[2] = { fpsqrt( std::abs( fmass ) ), 0 }; // possibility of negative fermion masses (NB: SCALAR!) @@ -250,10 +254,12 @@ namespace mg5amcCpu omega[1] = fmass / omega[0]; const fptype_v sfomega[2] = { sf[0] * omega[ip], sf[1] * omega[im] }; const fptype_v pp3 = fpmax( pp + pvec3, 0 ); - const cxtype_v chi[2] = { cxmake( fpsqrt( pp3 * 0.5 / pp ), 0 ), + volatile fptype_v ppDENOM = fpternary( pp != 0, pp, 1. ); // hack: ppDENOM[ieppV]=1 if pp[ieppV]==0 + volatile fptype_v pp3DENOM = fpternary( pp3 != 0, pp3, 1. ); // hack: pp3DENOM[ieppV]=1 if pp3[ieppV]==0 + const cxtype_v chi[2] = { cxmake( fpsqrt( pp3 * 0.5 / ppDENOM ), 0 ), // hack: dummy[ieppV] is not used if pp[ieppV]==0 cxternary( ( pp3 == 0. ), cxmake( -nh, 0 ), - cxmake( (fptype)nh * pvec1, pvec2 ) / fpsqrt( 2. * pp * pp3 ) ) }; + cxmake( (fptype)nh * pvec1, pvec2 ) / fpsqrt( 2. * ppDENOM * pp3DENOM ) ) }; // hack: dummy[ieppV] is not used if pp[ieppV]==0 const cxtype_v fiB_2 = sfomega[0] * chi[im]; const cxtype_v fiB_3 = sfomega[0] * chi[ip]; const cxtype_v fiB_4 = sfomega[1] * chi[im]; @@ -271,7 +277,16 @@ namespace mg5amcCpu const fptype_sv sqp0p3 = fpternary( ( pvec1 == 0. and pvec2 == 0. and pvec3 < 0. ), fptype_sv{ 0 }, fpsqrt( fpmax( pvec0 + pvec3, 0. ) ) * (fptype)nsf ); - const cxtype_sv chi[2] = { cxmake( sqp0p3, 0. ), cxternary( ( sqp0p3 == 0. ), cxmake( -(fptype)nhel * fpsqrt( 2. * pvec0 ), 0. ), cxmake( (fptype)nh * pvec1, pvec2 ) / sqp0p3 ) }; +#ifdef MGONGPU_CPPSIMD + volatile fptype_v sqp0p3DENOM = fpternary( sqp0p3 != 0, sqp0p3, 1. ); // hack: dummy sqp0p3DENOM[ieppV]=1 if sqp0p3[ieppV]==0 + cxtype_sv chi[2] = { cxmake( sqp0p3, 0. ), + cxternary( sqp0p3 == 0, + cxmake( -(fptype)nhel * fpsqrt( 2. * pvec0 ), 0. ), + cxmake( (fptype)nh * pvec1, pvec2 ) / (const fptype_v)sqp0p3DENOM ) }; // hack: dummy[ieppV] is not used if sqp0p3[ieppV]==0 +#else + const cxtype_sv chi[2] = { cxmake( sqp0p3, 0. ), + ( sqp0p3 == 0. ? cxmake( -(fptype)nhel * fpsqrt( 2. * pvec0 ), 0. ) : cxmake( (fptype)nh * pvec1, pvec2 ) / sqp0p3 ) }; +#endif if( nh == 1 ) { fi[2] = cxzero_sv(); @@ -422,6 +437,9 @@ namespace mg5amcCpu const int ipar ) // input: particle# out of npar { mgDebug( 0, __FUNCTION__ ); + // NEW IMPLEMENTATION FIXING FLOATING POINT EXCEPTIONS IN SIMD CODE (#701) + // Variables xxxDENOM are a hack to avoid division-by-0 FPE while preserving speed (#701 and #727) + // Variables xxxDENOM are declared as 'volatile' to make sure they are not optimized away on clang! (#724) const fptype_sv& pvec0 = M_ACCESS::kernelAccessIp4IparConst( momenta, 0, ipar ); const fptype_sv& pvec1 = M_ACCESS::kernelAccessIp4IparConst( momenta, 1, ipar ); const fptype_sv& pvec2 = M_ACCESS::kernelAccessIp4IparConst( momenta, 2, ipar ); @@ -472,13 +490,15 @@ namespace mg5amcCpu const cxtype vcA_4 = cxmake( 0, nsvahl * sqh ); const cxtype vcA_5 = cxmake( hel0, 0 ); // Branch B: pp != 0. - const fptype_v emp = pvec0 / ( vmass * pp ); + volatile fptype_v ppDENOM = fpternary( pp != 0, pp, 1. ); // hack: ppDENOM[ieppV]=1 if pp[ieppV]==0 + const fptype_v emp = pvec0 / ( vmass * ppDENOM ); // hack: dummy[ieppV] is not used if pp[ieppV]==0 const cxtype_v vcB_2 = cxmake( hel0 * pp / vmass, 0 ); - const cxtype_v vcB_5 = cxmake( hel0 * pvec3 * emp + hel * pt / pp * sqh, 0 ); + const cxtype_v vcB_5 = cxmake( hel0 * pvec3 * emp + hel * pt / ppDENOM * sqh, 0 ); // hack: dummy[ieppV] is not used if pp[ieppV]==0 // Branch B1: pp != 0. and pt != 0. - const fptype_v pzpt = pvec3 / ( pp * pt ) * sqh * hel; - const cxtype_v vcB1_3 = cxmake( hel0 * pvec1 * emp - pvec1 * pzpt, -(fptype)nsvahl * pvec2 / pt * sqh ); - const cxtype_v vcB1_4 = cxmake( hel0 * pvec2 * emp - pvec2 * pzpt, (fptype)nsvahl * pvec1 / pt * sqh ); + volatile fptype_v ptDENOM = fpternary( pt != 0, pt, 1. ); // hack: ptDENOM[ieppV]=1 if pt[ieppV]==0 + const fptype_v pzpt = pvec3 / ( ppDENOM * ptDENOM ) * sqh * hel; // hack: dummy[ieppV] is not used if pp[ieppV]==0 + const cxtype_v vcB1_3 = cxmake( hel0 * pvec1 * emp - pvec1 * pzpt, -(fptype)nsvahl * pvec2 / ptDENOM * sqh ); // hack: dummy[ieppV] is not used if pt[ieppV]==0 + const cxtype_v vcB1_4 = cxmake( hel0 * pvec2 * emp - pvec2 * pzpt, (fptype)nsvahl * pvec1 / ptDENOM * sqh ); // hack: dummy[ieppV] is not used if pt[ieppV]==0 // Branch B2: pp != 0. and pt == 0. const cxtype vcB2_3 = cxmake( -hel * sqh, 0. ); const cxtype_v vcB2_4 = cxmake( 0., (fptype)nsvahl * fpternary( ( pvec3 < 0 ), -sqh, sqh ) ); // AV: removed an abs here @@ -513,9 +533,10 @@ namespace mg5amcCpu } #else // Branch A: pt != 0. - const fptype_v pzpt = pvec3 / ( pp * pt ) * sqh * hel; - const cxtype_v vcA_3 = cxmake( -pvec1 * pzpt, -(fptype)nsv * pvec2 / pt * sqh ); - const cxtype_v vcA_4 = cxmake( -pvec2 * pzpt, (fptype)nsv * pvec1 / pt * sqh ); + volatile fptype_v ptDENOM = fpternary( pt != 0, pt, 1. ); // hack: ptDENOM[ieppV]=1 if pt[ieppV]==0 + const fptype_v pzpt = pvec3 / ( pp * ptDENOM ) * sqh * hel; // hack: dummy[ieppV] is not used if pt[ieppV]==0 + const cxtype_v vcA_3 = cxmake( -pvec1 * pzpt, -(fptype)nsv * pvec2 / ptDENOM * sqh ); // hack: dummy[ieppV] is not used if pt[ieppV]==0 + const cxtype_v vcA_4 = cxmake( -pvec2 * pzpt, (fptype)nsv * pvec1 / ptDENOM * sqh ); // hack: dummy[ieppV] is not used if pt[ieppV]==0 // Branch B: pt == 0. const cxtype vcB_3 = cxmake( -(fptype)hel * sqh, 0 ); const cxtype_v vcB_4 = cxmake( 0, (fptype)nsv * fpternary( ( pvec3 < 0 ), -sqh, sqh ) ); // AV: removed an abs here @@ -567,6 +588,9 @@ namespace mg5amcCpu const int ipar ) // input: particle# out of npar { mgDebug( 0, __FUNCTION__ ); + // NEW IMPLEMENTATION FIXING FLOATING POINT EXCEPTIONS IN SIMD CODE (#701) + // Variables xxxDENOM are a hack to avoid division-by-0 FPE while preserving speed (#701 and #727) + // Variables xxxDENOM are declared as 'volatile' to make sure they are not optimized away on clang! (#724) const fptype_sv& pvec0 = M_ACCESS::kernelAccessIp4IparConst( momenta, 0, ipar ); const fptype_sv& pvec1 = M_ACCESS::kernelAccessIp4IparConst( momenta, 1, ipar ); const fptype_sv& pvec2 = M_ACCESS::kernelAccessIp4IparConst( momenta, 2, ipar ); @@ -630,10 +654,12 @@ namespace mg5amcCpu const int imB = ( 1 - nh ) / 2; const fptype_v sfomeg[2] = { sf[0] * omega[ipB], sf[1] * omega[imB] }; const fptype_v pp3 = fpmax( pp + pvec3, 0. ); - const cxtype_v chi[2] = { cxmake( fpsqrt( pp3 * 0.5 / pp ), 0. ), + volatile fptype_v ppDENOM = fpternary( pp != 0, pp, 1. ); // hack: ppDENOM[ieppV]=1 if pp[ieppV]==0 + volatile fptype_v pp3DENOM = fpternary( pp3 != 0, pp3, 1. ); // hack: pp3DENOM[ieppV]=1 if pp3[ieppV]==0 + const cxtype_v chi[2] = { cxmake( fpsqrt( pp3 * 0.5 / ppDENOM ), 0. ), // hack: dummy[ieppV] is not used if pp[ieppV]==0 ( cxternary( ( pp3 == 0. ), cxmake( -nh, 0. ), - cxmake( (fptype)nh * pvec1, -pvec2 ) / fpsqrt( 2. * pp * pp3 ) ) ) }; + cxmake( (fptype)nh * pvec1, -pvec2 ) / fpsqrt( 2. * ppDENOM * pp3DENOM ) ) ) }; // hack: dummy[ieppV] is not used if pp[ieppV]==0 const cxtype_v foB_2 = sfomeg[1] * chi[imB]; const cxtype_v foB_3 = sfomeg[1] * chi[ipB]; const cxtype_v foB_4 = sfomeg[0] * chi[imB]; @@ -651,10 +677,16 @@ namespace mg5amcCpu const fptype_sv sqp0p3 = fpternary( ( pvec1 == 0. ) and ( pvec2 == 0. ) and ( pvec3 < 0. ), 0, fpsqrt( fpmax( pvec0 + pvec3, 0. ) ) * (fptype)nsf ); +#ifdef MGONGPU_CPPSIMD + volatile fptype_v sqp0p3DENOM = fpternary( sqp0p3 != 0, sqp0p3, 1. ); // hack: sqp0p3DENOM[ieppV]=1 if sqp0p3[ieppV]==0 + const cxtype_v chi[2] = { cxmake( sqp0p3, 0. ), + cxternary( ( sqp0p3 == 0. ), + cxmake( -nhel, 0. ) * fpsqrt( 2. * pvec0 ), + cxmake( (fptype)nh * pvec1, -pvec2 ) / (const fptype_sv)sqp0p3DENOM ) }; // hack: dummy[ieppV] is not used if sqp0p3[ieppV]==0 +#else const cxtype_sv chi[2] = { cxmake( sqp0p3, 0. ), - cxternary( ( sqp0p3 == 0. ), - cxmake( -nhel, 0. ) * fpsqrt( 2. * pvec0 ), - cxmake( (fptype)nh * pvec1, -pvec2 ) / sqp0p3 ) }; + ( sqp0p3 == 0. ? cxmake( -nhel, 0. ) * fpsqrt( 2. * pvec0 ) : cxmake( (fptype)nh * pvec1, -pvec2 ) / sqp0p3 ) }; +#endif if( nh == 1 ) { fo[2] = chi[0]; diff --git a/epochX/cudacpp/gg_ttggg.sa/src/Parameters_sm.cc b/epochX/cudacpp/gg_ttggg.sa/src/Parameters_sm.cc index d3d01102fd..22fdd96a68 100644 --- a/epochX/cudacpp/gg_ttggg.sa/src/Parameters_sm.cc +++ b/epochX/cudacpp/gg_ttggg.sa/src/Parameters_sm.cc @@ -17,6 +17,12 @@ #include #include +#ifdef __CUDACC__ +using namespace mg5amcGpu; +#else +using namespace mg5amcCpu; +#endif + #ifndef MGONGPU_HARDCODE_PARAM // Initialize static instance diff --git a/epochX/cudacpp/gg_ttggg.sa/src/Parameters_sm.h b/epochX/cudacpp/gg_ttggg.sa/src/Parameters_sm.h index 6551d8da81..11fd9e3c74 100644 --- a/epochX/cudacpp/gg_ttggg.sa/src/Parameters_sm.h +++ b/epochX/cudacpp/gg_ttggg.sa/src/Parameters_sm.h @@ -26,191 +26,216 @@ #include "read_slha.h" -class Parameters_sm +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { -public: + class Parameters_sm + { + public: - static Parameters_sm* getInstance(); + static Parameters_sm* getInstance(); - // Define "zero" - double zero, ZERO; + // Define "zero" + double zero, ZERO; - // Model parameters independent of aS - //double aS; // now retrieved event-by-event (as G) from Fortran (running alphas #373) - double mdl_WH, mdl_WW, mdl_WZ, mdl_WT, mdl_ymtau, mdl_ymt, mdl_ymb, mdl_Gf, aEWM1, mdl_MH, mdl_MZ, mdl_MTA, mdl_MT, mdl_MB, mdl_conjg__CKM3x3, mdl_conjg__CKM1x1, mdl_CKM3x3, mdl_MZ__exp__2, mdl_MZ__exp__4, mdl_sqrt__2, mdl_MH__exp__2, mdl_aEW, mdl_MW, mdl_sqrt__aEW, mdl_ee, mdl_MW__exp__2, mdl_sw2, mdl_cw, mdl_sqrt__sw2, mdl_sw, mdl_g1, mdl_gw, mdl_vev, mdl_vev__exp__2, mdl_lam, mdl_yb, mdl_yt, mdl_ytau, mdl_muH, mdl_ee__exp__2, mdl_sw__exp__2, mdl_cw__exp__2; - cxsmpl mdl_complexi, mdl_I1x33, mdl_I2x33, mdl_I3x33, mdl_I4x33; + // Model parameters independent of aS + //double aS; // now retrieved event-by-event (as G) from Fortran (running alphas #373) + double mdl_WH, mdl_WW, mdl_WZ, mdl_WT, mdl_ymtau, mdl_ymt, mdl_ymb, mdl_Gf, aEWM1, mdl_MH, mdl_MZ, mdl_MTA, mdl_MT, mdl_MB, mdl_conjg__CKM3x3, mdl_conjg__CKM1x1, mdl_CKM3x3, mdl_MZ__exp__2, mdl_MZ__exp__4, mdl_sqrt__2, mdl_MH__exp__2, mdl_aEW, mdl_MW, mdl_sqrt__aEW, mdl_ee, mdl_MW__exp__2, mdl_sw2, mdl_cw, mdl_sqrt__sw2, mdl_sw, mdl_g1, mdl_gw, mdl_vev, mdl_vev__exp__2, mdl_lam, mdl_yb, mdl_yt, mdl_ytau, mdl_muH, mdl_ee__exp__2, mdl_sw__exp__2, mdl_cw__exp__2; + cxsmpl mdl_complexi, mdl_I1x33, mdl_I2x33, mdl_I3x33, mdl_I4x33; - // Model couplings independent of aS - // (none) + // Model couplings independent of aS + // (none) - // Model parameters dependent on aS - //double mdl_sqrt__aS, G, mdl_G__exp__2; // now computed event-by-event (running alphas #373) + // Model parameters dependent on aS + //double mdl_sqrt__aS, G, mdl_G__exp__2; // now computed event-by-event (running alphas #373) - // Model couplings dependent on aS - //cxsmpl GC_10, GC_11, GC_12; // now computed event-by-event (running alphas #373) + // Model couplings dependent on aS + //cxsmpl GC_10, GC_11, GC_12; // now computed event-by-event (running alphas #373) - // Set parameters that are unchanged during the run - void setIndependentParameters( SLHAReader& slha ); + // Set parameters that are unchanged during the run + void setIndependentParameters( SLHAReader& slha ); - // Set couplings that are unchanged during the run - void setIndependentCouplings(); + // Set couplings that are unchanged during the run + void setIndependentCouplings(); - // Set parameters that are changed event by event - //void setDependentParameters(); // now computed event-by-event (running alphas #373) + // Set parameters that are changed event by event + //void setDependentParameters(); // now computed event-by-event (running alphas #373) - // Set couplings that are changed event by event - //void setDependentCouplings(); // now computed event-by-event (running alphas #373) + // Set couplings that are changed event by event + //void setDependentCouplings(); // now computed event-by-event (running alphas #373) - // Print parameters that are unchanged during the run - void printIndependentParameters(); + // Print parameters that are unchanged during the run + void printIndependentParameters(); - // Print couplings that are unchanged during the run - void printIndependentCouplings(); + // Print couplings that are unchanged during the run + void printIndependentCouplings(); - // Print parameters that are changed event by event - //void printDependentParameters(); // now computed event-by-event (running alphas #373) + // Print parameters that are changed event by event + //void printDependentParameters(); // now computed event-by-event (running alphas #373) - // Print couplings that are changed event by event - //void printDependentCouplings(); // now computed event-by-event (running alphas #373) + // Print couplings that are changed event by event + //void printDependentCouplings(); // now computed event-by-event (running alphas #373) -private: + private: - static Parameters_sm* instance; -}; + static Parameters_sm* instance; + }; + +} // end namespace mg5amcGpu/mg5amcCpu #else #include #include -// Hardcoded constexpr physics parameters -namespace Parameters_sm // keep the same name rather than HardcodedParameters_sm for simplicity +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { - // Constexpr implementation of sqrt (see https://stackoverflow.com/a/34134071) - double constexpr sqrtNewtonRaphson( double x, double curr, double prev ) + // Hardcoded constexpr physics parameters + namespace Parameters_sm // keep the same name rather than HardcodedParameters_sm for simplicity { - return curr == prev ? curr : sqrtNewtonRaphson( x, 0.5 * ( curr + x / curr ), curr ); - } - double constexpr constexpr_sqrt( double x ) - { - return x >= 0 // && x < std::numeric_limits::infinity() // avoid -Wtautological-constant-compare warning in fast math - ? sqrtNewtonRaphson( x, x, 0 ) - : std::numeric_limits::quiet_NaN(); - } + // Constexpr implementation of sqrt (see https://stackoverflow.com/a/34134071) + double constexpr sqrtNewtonRaphson( double x, double curr, double prev ) + { + return curr == prev ? curr : sqrtNewtonRaphson( x, 0.5 * ( curr + x / curr ), curr ); + } + double constexpr constexpr_sqrt( double x ) + { + return x >= 0 // && x < std::numeric_limits::infinity() // avoid -Wtautological-constant-compare warning in fast math + ? sqrtNewtonRaphson( x, x, 0 ) + : std::numeric_limits::quiet_NaN(); + } - // Constexpr implementation of floor (see https://stackoverflow.com/a/66146159) - constexpr int constexpr_floor( double d ) - { - const int i = static_cast( d ); - return d < i ? i - 1 : i; - } + // Constexpr implementation of floor (see https://stackoverflow.com/a/66146159) + constexpr int constexpr_floor( double d ) + { + const int i = static_cast( d ); + return d < i ? i - 1 : i; + } - // Constexpr implementation of pow - constexpr double constexpr_pow( double base, double exp ) - { - // NB(1): this implementation of constexpr_pow requires exponent >= 0 - assert( exp >= 0 ); // NB would fail at compile time with "error: call to non-‘constexpr’ function ‘void __assert_fail'" - // NB(2): this implementation of constexpr_pow requires an integer exponent - const int iexp = constexpr_floor( exp ); - assert( static_cast( iexp ) == exp ); // NB would fail at compile time with "error: call to non-‘constexpr’ function ‘void __assert_fail'" - // Iterative implementation of pow if exp is a non negative integer - return iexp == 0 ? 1 : base * constexpr_pow( base, iexp - 1 ); + // Constexpr implementation of pow + constexpr double constexpr_pow( double base, double exp ) + { + // NB(1): this implementation of constexpr_pow requires exponent >= 0 + assert( exp >= 0 ); // NB would fail at compile time with "error: call to non-‘constexpr’ function ‘void __assert_fail'" + // NB(2): this implementation of constexpr_pow requires an integer exponent + const int iexp = constexpr_floor( exp ); + assert( static_cast( iexp ) == exp ); // NB would fail at compile time with "error: call to non-‘constexpr’ function ‘void __assert_fail'" + // Iterative implementation of pow if exp is a non negative integer + return iexp == 0 ? 1 : base * constexpr_pow( base, iexp - 1 ); + } + + // Model parameters independent of aS + constexpr double zero = 0; + constexpr double ZERO = 0; + constexpr double mdl_WH = 6.382339e-03; + constexpr double mdl_WW = 2.047600e+00; + constexpr double mdl_WZ = 2.441404e+00; + constexpr double mdl_WT = 1.491500e+00; + constexpr double mdl_ymtau = 1.777000e+00; + constexpr double mdl_ymt = 1.730000e+02; + constexpr double mdl_ymb = 4.700000e+00; + //constexpr double aS = 1.180000e-01; // now retrieved event-by-event (as G) from Fortran (running alphas #373) + constexpr double mdl_Gf = 1.166390e-05; + constexpr double aEWM1 = 1.325070e+02; + constexpr double mdl_MH = 1.250000e+02; + constexpr double mdl_MZ = 9.118800e+01; + constexpr double mdl_MTA = 1.777000e+00; + constexpr double mdl_MT = 1.730000e+02; + constexpr double mdl_MB = 4.700000e+00; + constexpr double mdl_conjg__CKM3x3 = 1.; + constexpr double mdl_conjg__CKM1x1 = 1.; + constexpr double mdl_CKM3x3 = 1.; + constexpr cxsmpl mdl_complexi = cxsmpl( 0., 1. ); + constexpr double mdl_MZ__exp__2 = ( ( mdl_MZ ) * ( mdl_MZ ) ); + constexpr double mdl_MZ__exp__4 = ( ( mdl_MZ ) * ( mdl_MZ ) * ( mdl_MZ ) * ( mdl_MZ ) ); + constexpr double mdl_sqrt__2 = constexpr_sqrt( 2. ); + constexpr double mdl_MH__exp__2 = ( ( mdl_MH ) * ( mdl_MH ) ); + constexpr double mdl_aEW = 1. / aEWM1; + constexpr double mdl_MW = constexpr_sqrt( mdl_MZ__exp__2 / 2. + constexpr_sqrt( mdl_MZ__exp__4 / 4. - ( mdl_aEW * M_PI * mdl_MZ__exp__2 ) / ( mdl_Gf * mdl_sqrt__2 ) ) ); + constexpr double mdl_sqrt__aEW = constexpr_sqrt( mdl_aEW ); + constexpr double mdl_ee = 2. * mdl_sqrt__aEW * constexpr_sqrt( M_PI ); + constexpr double mdl_MW__exp__2 = ( ( mdl_MW ) * ( mdl_MW ) ); + constexpr double mdl_sw2 = 1. - mdl_MW__exp__2 / mdl_MZ__exp__2; + constexpr double mdl_cw = constexpr_sqrt( 1. - mdl_sw2 ); + constexpr double mdl_sqrt__sw2 = constexpr_sqrt( mdl_sw2 ); + constexpr double mdl_sw = mdl_sqrt__sw2; + constexpr double mdl_g1 = mdl_ee / mdl_cw; + constexpr double mdl_gw = mdl_ee / mdl_sw; + constexpr double mdl_vev = ( 2. * mdl_MW * mdl_sw ) / mdl_ee; + constexpr double mdl_vev__exp__2 = ( ( mdl_vev ) * ( mdl_vev ) ); + constexpr double mdl_lam = mdl_MH__exp__2 / ( 2. * mdl_vev__exp__2 ); + constexpr double mdl_yb = ( mdl_ymb * mdl_sqrt__2 ) / mdl_vev; + constexpr double mdl_yt = ( mdl_ymt * mdl_sqrt__2 ) / mdl_vev; + constexpr double mdl_ytau = ( mdl_ymtau * mdl_sqrt__2 ) / mdl_vev; + constexpr double mdl_muH = constexpr_sqrt( mdl_lam * mdl_vev__exp__2 ); + constexpr cxsmpl mdl_I1x33 = mdl_yb * mdl_conjg__CKM3x3; + constexpr cxsmpl mdl_I2x33 = mdl_yt * mdl_conjg__CKM3x3; + constexpr cxsmpl mdl_I3x33 = mdl_CKM3x3 * mdl_yt; + constexpr cxsmpl mdl_I4x33 = mdl_CKM3x3 * mdl_yb; + constexpr double mdl_ee__exp__2 = ( ( mdl_ee ) * ( mdl_ee ) ); + constexpr double mdl_sw__exp__2 = ( ( mdl_sw ) * ( mdl_sw ) ); + constexpr double mdl_cw__exp__2 = ( ( mdl_cw ) * ( mdl_cw ) ); + + // Model couplings independent of aS + // (none) + + // Model parameters dependent on aS + //constexpr double mdl_sqrt__aS = //constexpr_sqrt( aS ); // now computed event-by-event (running alphas #373) + //constexpr double G = 2. * mdl_sqrt__aS * //constexpr_sqrt( M_PI ); // now computed event-by-event (running alphas #373) + //constexpr double mdl_G__exp__2 = ( ( G ) * ( G ) ); // now computed event-by-event (running alphas #373) + + // Model couplings dependent on aS + //constexpr cxsmpl GC_10 = -G; // now computed event-by-event (running alphas #373) + //constexpr cxsmpl GC_11 = mdl_complexi * G; // now computed event-by-event (running alphas #373) + //constexpr cxsmpl GC_12 = mdl_complexi * mdl_G__exp__2; // now computed event-by-event (running alphas #373) + + // Print parameters that are unchanged during the run + void printIndependentParameters(); + + // Print couplings that are unchanged during the run + void printIndependentCouplings(); + + // Print parameters that are changed event by event + //void printDependentParameters(); // now computed event-by-event (running alphas #373) + + // Print couplings that are changed event by event + //void printDependentCouplings(); // now computed event-by-event (running alphas #373) } - // Model parameters independent of aS - constexpr double zero = 0; - constexpr double ZERO = 0; - constexpr double mdl_WH = 6.382339e-03; - constexpr double mdl_WW = 2.047600e+00; - constexpr double mdl_WZ = 2.441404e+00; - constexpr double mdl_WT = 1.491500e+00; - constexpr double mdl_ymtau = 1.777000e+00; - constexpr double mdl_ymt = 1.730000e+02; - constexpr double mdl_ymb = 4.700000e+00; - //constexpr double aS = 1.180000e-01; // now retrieved event-by-event (as G) from Fortran (running alphas #373) - constexpr double mdl_Gf = 1.166390e-05; - constexpr double aEWM1 = 1.325070e+02; - constexpr double mdl_MH = 1.250000e+02; - constexpr double mdl_MZ = 9.118800e+01; - constexpr double mdl_MTA = 1.777000e+00; - constexpr double mdl_MT = 1.730000e+02; - constexpr double mdl_MB = 4.700000e+00; - constexpr double mdl_conjg__CKM3x3 = 1.; - constexpr double mdl_conjg__CKM1x1 = 1.; - constexpr double mdl_CKM3x3 = 1.; - constexpr cxsmpl mdl_complexi = cxsmpl( 0., 1. ); - constexpr double mdl_MZ__exp__2 = ( ( mdl_MZ ) * ( mdl_MZ ) ); - constexpr double mdl_MZ__exp__4 = ( ( mdl_MZ ) * ( mdl_MZ ) * ( mdl_MZ ) * ( mdl_MZ ) ); - constexpr double mdl_sqrt__2 = constexpr_sqrt( 2. ); - constexpr double mdl_MH__exp__2 = ( ( mdl_MH ) * ( mdl_MH ) ); - constexpr double mdl_aEW = 1. / aEWM1; - constexpr double mdl_MW = constexpr_sqrt( mdl_MZ__exp__2 / 2. + constexpr_sqrt( mdl_MZ__exp__4 / 4. - ( mdl_aEW * M_PI * mdl_MZ__exp__2 ) / ( mdl_Gf * mdl_sqrt__2 ) ) ); - constexpr double mdl_sqrt__aEW = constexpr_sqrt( mdl_aEW ); - constexpr double mdl_ee = 2. * mdl_sqrt__aEW * constexpr_sqrt( M_PI ); - constexpr double mdl_MW__exp__2 = ( ( mdl_MW ) * ( mdl_MW ) ); - constexpr double mdl_sw2 = 1. - mdl_MW__exp__2 / mdl_MZ__exp__2; - constexpr double mdl_cw = constexpr_sqrt( 1. - mdl_sw2 ); - constexpr double mdl_sqrt__sw2 = constexpr_sqrt( mdl_sw2 ); - constexpr double mdl_sw = mdl_sqrt__sw2; - constexpr double mdl_g1 = mdl_ee / mdl_cw; - constexpr double mdl_gw = mdl_ee / mdl_sw; - constexpr double mdl_vev = ( 2. * mdl_MW * mdl_sw ) / mdl_ee; - constexpr double mdl_vev__exp__2 = ( ( mdl_vev ) * ( mdl_vev ) ); - constexpr double mdl_lam = mdl_MH__exp__2 / ( 2. * mdl_vev__exp__2 ); - constexpr double mdl_yb = ( mdl_ymb * mdl_sqrt__2 ) / mdl_vev; - constexpr double mdl_yt = ( mdl_ymt * mdl_sqrt__2 ) / mdl_vev; - constexpr double mdl_ytau = ( mdl_ymtau * mdl_sqrt__2 ) / mdl_vev; - constexpr double mdl_muH = constexpr_sqrt( mdl_lam * mdl_vev__exp__2 ); - constexpr cxsmpl mdl_I1x33 = mdl_yb * mdl_conjg__CKM3x3; - constexpr cxsmpl mdl_I2x33 = mdl_yt * mdl_conjg__CKM3x3; - constexpr cxsmpl mdl_I3x33 = mdl_CKM3x3 * mdl_yt; - constexpr cxsmpl mdl_I4x33 = mdl_CKM3x3 * mdl_yb; - constexpr double mdl_ee__exp__2 = ( ( mdl_ee ) * ( mdl_ee ) ); - constexpr double mdl_sw__exp__2 = ( ( mdl_sw ) * ( mdl_sw ) ); - constexpr double mdl_cw__exp__2 = ( ( mdl_cw ) * ( mdl_cw ) ); - - // Model couplings independent of aS - // (none) - - // Model parameters dependent on aS - //constexpr double mdl_sqrt__aS = //constexpr_sqrt( aS ); // now computed event-by-event (running alphas #373) - //constexpr double G = 2. * mdl_sqrt__aS * //constexpr_sqrt( M_PI ); // now computed event-by-event (running alphas #373) - //constexpr double mdl_G__exp__2 = ( ( G ) * ( G ) ); // now computed event-by-event (running alphas #373) - - // Model couplings dependent on aS - //constexpr cxsmpl GC_10 = -G; // now computed event-by-event (running alphas #373) - //constexpr cxsmpl GC_11 = mdl_complexi * G; // now computed event-by-event (running alphas #373) - //constexpr cxsmpl GC_12 = mdl_complexi * mdl_G__exp__2; // now computed event-by-event (running alphas #373) - - // Print parameters that are unchanged during the run - void printIndependentParameters(); - - // Print couplings that are unchanged during the run - void printIndependentCouplings(); - - // Print parameters that are changed event by event - //void printDependentParameters(); // now computed event-by-event (running alphas #373) - - // Print couplings that are changed event by event - //void printDependentCouplings(); // now computed event-by-event (running alphas #373) -} +} // end namespace mg5amcGpu/mg5amcCpu #endif //========================================================================== -namespace Parameters_sm_dependentCouplings +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { - constexpr size_t ndcoup = 3; // #couplings that vary event by event because they depend on the running alphas QCD - constexpr size_t idcoup_GC_10 = 0; - constexpr size_t idcoup_GC_11 = 1; - constexpr size_t idcoup_GC_12 = 2; - struct DependentCouplings_sv + namespace Parameters_sm_dependentCouplings { - cxtype_sv GC_10; - cxtype_sv GC_11; - cxtype_sv GC_12; - }; + constexpr size_t ndcoup = 3; // #couplings that vary event by event because they depend on the running alphas QCD + constexpr size_t idcoup_GC_10 = 0; + constexpr size_t idcoup_GC_11 = 1; + constexpr size_t idcoup_GC_12 = 2; + struct DependentCouplings_sv + { + cxtype_sv GC_10; + cxtype_sv GC_11; + cxtype_sv GC_12; + }; #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wunused-variable" // e.g. <> #pragma GCC diagnostic ignored "-Wunused-parameter" // e.g. <> @@ -218,52 +243,46 @@ namespace Parameters_sm_dependentCouplings #pragma nv_diagnostic push #pragma nv_diag_suppress 177 // e.g. <> #endif - __host__ __device__ inline const DependentCouplings_sv computeDependentCouplings_fromG( const fptype_sv& G_sv ) - { + __host__ __device__ inline const DependentCouplings_sv computeDependentCouplings_fromG( const fptype_sv& G_sv ) + { #ifdef MGONGPU_HARDCODE_PARAM - using namespace Parameters_sm; + using namespace Parameters_sm; #endif - // NB: hardcode cxtype cI(0,1) instead of cxtype (or hardcoded cxsmpl) mdl_complexi (which exists in Parameters_sm) because: - // (1) mdl_complexi is always (0,1); (2) mdl_complexi is undefined in device code; (3) need cxsmpl conversion to cxtype in code below - const cxtype cI( 0., 1. ); - DependentCouplings_sv out; - // Begin SM implementation - no special handling of vectors of floats as in EFT (#439) - { - const fptype_sv& G = G_sv; - // Model parameters dependent on aS - //const fptype_sv mdl_sqrt__aS = constexpr_sqrt( aS ); - //const fptype_sv G = 2. * mdl_sqrt__aS * constexpr_sqrt( M_PI ); - const fptype_sv mdl_G__exp__2 = ( ( G ) * ( G ) ); - // Model couplings dependent on aS - out.GC_10 = -G; - out.GC_11 = cI * G; - out.GC_12 = cI * mdl_G__exp__2; + // NB: hardcode cxtype cI(0,1) instead of cxtype (or hardcoded cxsmpl) mdl_complexi (which exists in Parameters_sm) because: + // (1) mdl_complexi is always (0,1); (2) mdl_complexi is undefined in device code; (3) need cxsmpl conversion to cxtype in code below + const cxtype cI( 0., 1. ); + DependentCouplings_sv out; + // Begin SM implementation - no special handling of vectors of floats as in EFT (#439) + { + const fptype_sv& G = G_sv; + // Model parameters dependent on aS + //const fptype_sv mdl_sqrt__aS = constexpr_sqrt( aS ); + //const fptype_sv G = 2. * mdl_sqrt__aS * constexpr_sqrt( M_PI ); + const fptype_sv mdl_G__exp__2 = ( ( G ) * ( G ) ); + // Model couplings dependent on aS + out.GC_10 = -G; + out.GC_11 = cI * G; + out.GC_12 = cI * mdl_G__exp__2; + } + // End SM implementation - no special handling of vectors of floats as in EFT (#439) + return out; } - // End SM implementation - no special handling of vectors of floats as in EFT (#439) - return out; - } #ifdef __CUDACC__ #pragma GCC diagnostic pop #pragma nv_diagnostic pop #endif -} + } -//========================================================================== + //========================================================================== -namespace Parameters_sm_independentCouplings -{ - constexpr size_t nicoup = 0; // #couplings that are fixed for all events because they do not depend on the running alphas QCD - // NB: there are no aS-independent couplings in this physics process -} + namespace Parameters_sm_independentCouplings + { + constexpr size_t nicoup = 0; // #couplings that are fixed for all events because they do not depend on the running alphas QCD + // NB: there are no aS-independent couplings in this physics process + } -//========================================================================== + //========================================================================== -#ifdef __CUDACC__ -namespace mg5amcGpu -#else -namespace mg5amcCpu -#endif -{ #pragma GCC diagnostic push #ifndef __clang__ #pragma GCC diagnostic ignored "-Wunused-but-set-variable" // e.g. <> @@ -291,7 +310,8 @@ namespace mg5amcCpu return; } #pragma GCC diagnostic pop -} + +} // end namespace mg5amcGpu/mg5amcCpu //========================================================================== diff --git a/epochX/cudacpp/gg_ttggg.sa/src/cudacpp_src.mk b/epochX/cudacpp/gg_ttggg.sa/src/cudacpp_src.mk index 21b6d924ff..554d7a704c 100644 --- a/epochX/cudacpp/gg_ttggg.sa/src/cudacpp_src.mk +++ b/epochX/cudacpp/gg_ttggg.sa/src/cudacpp_src.mk @@ -38,7 +38,13 @@ endif #------------------------------------------------------------------------------- -#=== Configure ccache for CUDA and C++ builds +#=== Configure the CUDA compiler (note: NVCC is already exported including ccache) + +###$(info NVCC=$(NVCC)) + +#------------------------------------------------------------------------------- + +#=== Configure ccache for C++ builds (note: NVCC is already exported including ccache) # Enable ccache if USECCACHE=1 ifeq ($(USECCACHE)$(shell echo $(CXX) | grep ccache),1) @@ -47,11 +53,6 @@ endif #ifeq ($(USECCACHE)$(shell echo $(AR) | grep ccache),1) # override AR:=ccache $(AR) #endif -#ifneq ($(NVCC),) -# ifeq ($(USECCACHE)$(shell echo $(NVCC) | grep ccache),1) -# override NVCC:=ccache $(NVCC) -# endif -#endif #------------------------------------------------------------------------------- @@ -115,7 +116,9 @@ else ifneq ($(shell $(CXX) --version | grep ^nvc++),) # support nvc++ #531 $(error Unknown AVX='$(AVX)': only 'none', 'sse4', 'avx2', '512y' and '512z' are supported) endif else - ifeq ($(AVX),sse4) + ifeq ($(AVX),none) + override AVXFLAGS = -march=x86-64 # no SIMD (see #588) + else ifeq ($(AVX),sse4) override AVXFLAGS = -march=nehalem # SSE4.2 with 128 width (xmm registers) else ifeq ($(AVX),avx2) override AVXFLAGS = -march=haswell # AVX2 with 256 width (ymm registers) [DEFAULT for clang] @@ -216,7 +219,7 @@ MG5AMC_COMMONLIB = mg5amc_common all.$(TAG): $(BUILDDIR)/.build.$(TAG) $(LIBDIR)/.build.$(TAG) $(LIBDIR)/lib$(MG5AMC_COMMONLIB).so # Target (and build options): debug -debug: OPTFLAGS = -g -O0 -DDEBUG2 +debug: OPTFLAGS = -g -O0 debug: all.$(TAG) # Target: tag-specific build lockfiles @@ -237,17 +240,31 @@ $(LIBDIR)/.build.$(TAG): # Generic target and build rules: objects from C++ compilation $(BUILDDIR)/%.o : %.cc *.h $(BUILDDIR)/.build.$(TAG) - @if [ ! -d $(BUILDDIR) ]; then mkdir -p $(BUILDDIR); fi - $(CXX) $(CPPFLAGS) $(CXXFLAGS) -c $< -o $@ + @if [ ! -d $(BUILDDIR) ]; then echo "mkdir -p $(BUILDDIR)"; mkdir -p $(BUILDDIR); fi + $(CXX) $(CPPFLAGS) $(CXXFLAGS) -fPIC -c $< -o $@ + +# Generic target and build rules: objects from CUDA compilation +$(BUILDDIR)/%_cu.o : %.cc *.h $(BUILDDIR)/.build.$(TAG) + @if [ ! -d $(BUILDDIR) ]; then echo "mkdir -p $(BUILDDIR)"; mkdir -p $(BUILDDIR); fi + $(NVCC) $(CPPFLAGS) $(CUFLAGS) -Xcompiler -fPIC -c -x cu $< -o $@ #------------------------------------------------------------------------------- cxx_objects=$(addprefix $(BUILDDIR)/, Parameters_sm.o read_slha.o) +ifneq ($(NVCC),) +cu_objects=$(addprefix $(BUILDDIR)/, Parameters_sm_cu.o) +endif # Target (and build rules): common (src) library +ifneq ($(NVCC),) +$(LIBDIR)/lib$(MG5AMC_COMMONLIB).so : $(cxx_objects) $(cu_objects) + @if [ ! -d $(LIBDIR) ]; then echo "mkdir -p $(LIBDIR)"; mkdir -p $(LIBDIR); fi + $(NVCC) -shared -o $@ $(cxx_objects) $(cu_objects) +else $(LIBDIR)/lib$(MG5AMC_COMMONLIB).so : $(cxx_objects) @if [ ! -d $(LIBDIR) ]; then echo "mkdir -p $(LIBDIR)"; mkdir -p $(LIBDIR); fi - $(CXX) -shared -o$@ $(cxx_objects) + $(CXX) -shared -o $@ $(cxx_objects) +endif #------------------------------------------------------------------------------- diff --git a/epochX/cudacpp/gg_ttggg.sa/src/mgOnGpuConfig.h b/epochX/cudacpp/gg_ttggg.sa/src/mgOnGpuConfig.h index 6c0c4919e9..c0f067f1d8 100644 --- a/epochX/cudacpp/gg_ttggg.sa/src/mgOnGpuConfig.h +++ b/epochX/cudacpp/gg_ttggg.sa/src/mgOnGpuConfig.h @@ -98,6 +98,7 @@ #endif #endif +// NB: namespace mgOnGpu includes types which are defined in exactly the same way for CPU and GPU builds (see #318 and #725) namespace mgOnGpu { diff --git a/epochX/cudacpp/gg_ttggg.sa/src/mgOnGpuCxtypes.h b/epochX/cudacpp/gg_ttggg.sa/src/mgOnGpuCxtypes.h index 0cb2f1db7e..b56348bc58 100644 --- a/epochX/cudacpp/gg_ttggg.sa/src/mgOnGpuCxtypes.h +++ b/epochX/cudacpp/gg_ttggg.sa/src/mgOnGpuCxtypes.h @@ -43,8 +43,12 @@ // COMPLEX TYPES: SIMPLE COMPLEX CLASS (cxsmpl) //========================================================================== +// NB: namespace mgOnGpu includes types which are defined in exactly the same way for CPU and GPU builds (see #318 and #725) namespace mgOnGpu /* clang-format off */ { + // The number of floating point types in a complex type (real, imaginary) + constexpr int nx2 = 2; + // --- Type definition (simple complex type derived from cxtype_v) template class cxsmpl @@ -78,128 +82,139 @@ namespace mgOnGpu /* clang-format off */ using mgOnGpu::cxsmpl; // Printout to stream for user defined types -template -inline __host__ __device__ std::ostream& -operator<<( std::ostream& out, const cxsmpl& c ) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { - out << std::complex( c.real(), c.imag() ); - return out; -} + template + inline __host__ std::ostream& + operator<<( std::ostream& out, const cxsmpl& c ) + { + out << std::complex( c.real(), c.imag() ); + return out; + } -// Operators for cxsmpl -template -inline __host__ __device__ constexpr cxsmpl -operator+( const cxsmpl a ) -{ - return a; -} + // Operators for cxsmpl + template + inline __host__ __device__ constexpr cxsmpl + operator+( const cxsmpl a ) + { + return a; + } -template -inline __host__ __device__ constexpr cxsmpl -operator-( const cxsmpl& a ) -{ - return cxsmpl( -a.real(), -a.imag() ); -} + template + inline __host__ __device__ constexpr cxsmpl + operator-( const cxsmpl& a ) + { + return cxsmpl( -a.real(), -a.imag() ); + } -template -inline __host__ __device__ constexpr cxsmpl -operator+( const cxsmpl& a, const cxsmpl& b ) -{ - return cxsmpl( a.real() + b.real(), a.imag() + b.imag() ); -} + template + inline __host__ __device__ constexpr cxsmpl + operator+( const cxsmpl& a, const cxsmpl& b ) + { + return cxsmpl( a.real() + b.real(), a.imag() + b.imag() ); + } -template -inline __host__ __device__ constexpr cxsmpl -operator+( const FP& a, const cxsmpl& b ) -{ - return cxsmpl( a, 0 ) + b; -} + template + inline __host__ __device__ constexpr cxsmpl + operator+( const FP& a, const cxsmpl& b ) + { + return cxsmpl( a, 0 ) + b; + } -template -inline __host__ __device__ constexpr cxsmpl -operator-( const cxsmpl& a, const cxsmpl& b ) -{ - return cxsmpl( a.real() - b.real(), a.imag() - b.imag() ); -} + template + inline __host__ __device__ constexpr cxsmpl + operator-( const cxsmpl& a, const cxsmpl& b ) + { + return cxsmpl( a.real() - b.real(), a.imag() - b.imag() ); + } -template -inline __host__ __device__ constexpr cxsmpl -operator-( const FP& a, const cxsmpl& b ) -{ - return cxsmpl( a, 0 ) - b; -} + template + inline __host__ __device__ constexpr cxsmpl + operator-( const FP& a, const cxsmpl& b ) + { + return cxsmpl( a, 0 ) - b; + } -template -inline __host__ __device__ constexpr cxsmpl -operator*( const cxsmpl& a, const cxsmpl& b ) -{ - return cxsmpl( a.real() * b.real() - a.imag() * b.imag(), a.imag() * b.real() + a.real() * b.imag() ); -} + template + inline __host__ __device__ constexpr cxsmpl + operator*( const cxsmpl& a, const cxsmpl& b ) + { + return cxsmpl( a.real() * b.real() - a.imag() * b.imag(), a.imag() * b.real() + a.real() * b.imag() ); + } -template -inline __host__ __device__ constexpr cxsmpl -operator*( const FP& a, const cxsmpl& b ) -{ - return cxsmpl( a, 0 ) * b; -} + template + inline __host__ __device__ constexpr cxsmpl + operator*( const FP& a, const cxsmpl& b ) + { + return cxsmpl( a, 0 ) * b; + } -inline __host__ __device__ constexpr cxsmpl -operator*( const double& a, const cxsmpl& b ) -{ - return cxsmpl( a, 0 ) * b; -} + inline __host__ __device__ constexpr cxsmpl + operator*( const double& a, const cxsmpl& b ) + { + return cxsmpl( a, 0 ) * b; + } -template -inline __host__ __device__ constexpr cxsmpl -operator/( const cxsmpl& a, const cxsmpl& b ) -{ - FP bnorm = b.real() * b.real() + b.imag() * b.imag(); - return cxsmpl( ( a.real() * b.real() + a.imag() * b.imag() ) / bnorm, - ( a.imag() * b.real() - a.real() * b.imag() ) / bnorm ); -} + template + inline __host__ __device__ constexpr cxsmpl + operator/( const cxsmpl& a, const cxsmpl& b ) + { + FP bnorm = b.real() * b.real() + b.imag() * b.imag(); + return cxsmpl( ( a.real() * b.real() + a.imag() * b.imag() ) / bnorm, + ( a.imag() * b.real() - a.real() * b.imag() ) / bnorm ); + } -template -inline __host__ __device__ constexpr cxsmpl -operator/( const FP& a, const cxsmpl& b ) -{ - return cxsmpl( a, 0 ) / b; -} + template + inline __host__ __device__ constexpr cxsmpl + operator/( const FP& a, const cxsmpl& b ) + { + return cxsmpl( a, 0 ) / b; + } -template -inline __host__ __device__ constexpr cxsmpl -operator+( const cxsmpl& a, const FP& b ) -{ - return a + cxsmpl( b, 0 ); -} + template + inline __host__ __device__ constexpr cxsmpl + operator+( const cxsmpl& a, const FP& b ) + { + return a + cxsmpl( b, 0 ); + } -template -inline __host__ __device__ constexpr cxsmpl -operator-( const cxsmpl& a, const FP& b ) -{ - return a - cxsmpl( b, 0 ); -} + template + inline __host__ __device__ constexpr cxsmpl + operator-( const cxsmpl& a, const FP& b ) + { + return a - cxsmpl( b, 0 ); + } -template -inline __host__ __device__ constexpr cxsmpl -operator*( const cxsmpl& a, const FP& b ) -{ - return a * cxsmpl( b, 0 ); -} + template + inline __host__ __device__ constexpr cxsmpl + operator*( const cxsmpl& a, const FP& b ) + { + return a * cxsmpl( b, 0 ); + } -template -inline __host__ __device__ constexpr cxsmpl -operator/( const cxsmpl& a, const FP& b ) -{ - return a / cxsmpl( b, 0 ); + template + inline __host__ __device__ constexpr cxsmpl + operator/( const cxsmpl& a, const FP& b ) + { + return a / cxsmpl( b, 0 ); + } } //========================================================================== // COMPLEX TYPES: (PLATFORM-SPECIFIC) TYPEDEFS //========================================================================== -namespace mgOnGpu +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { - // --- Type definitions (complex type: cxtype) #ifdef __CUDACC__ // cuda #if defined MGONGPU_CUCXTYPE_THRUST @@ -221,390 +236,402 @@ namespace mgOnGpu #endif #endif - // The number of floating point types in a complex type (real, imaginary) - constexpr int nx2 = 2; - // SANITY CHECK: memory access may be based on casts of fptype[2] to cxtype (e.g. for wavefunctions) - static_assert( sizeof( cxtype ) == nx2 * sizeof( fptype ), "sizeof(cxtype) is not 2*sizeof(fptype)" ); + static_assert( sizeof( cxtype ) == mgOnGpu::nx2 * sizeof( fptype ), "sizeof(cxtype) is not 2*sizeof(fptype)" ); } -// Expose typedefs and operators outside the namespace -using mgOnGpu::cxtype; +// DANGEROUS! this was mixing different cxtype definitions for CPU and GPU builds (see #318 and #725) +// DO NOT expose typedefs and operators outside the namespace +//using mgOnGpu::cxtype; //========================================================================== // COMPLEX TYPES: (PLATFORM-SPECIFIC) FUNCTIONS AND OPERATORS //========================================================================== +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif +{ #if defined MGONGPU_CUCXTYPE_CXSMPL or defined MGONGPU_CPPCXTYPE_CXSMPL -//------------------------------ -// CUDA or C++ - using cxsmpl -//------------------------------ + //------------------------------ + // CUDA or C++ - using cxsmpl + //------------------------------ -inline __host__ __device__ cxtype -cxmake( const fptype& r, const fptype& i ) -{ - return cxtype( r, i ); // cxsmpl constructor -} + inline __host__ __device__ cxtype + cxmake( const fptype& r, const fptype& i ) + { + return cxtype( r, i ); // cxsmpl constructor + } -inline __host__ __device__ fptype -cxreal( const cxtype& c ) -{ - return c.real(); // cxsmpl::real() -} + inline __host__ __device__ fptype + cxreal( const cxtype& c ) + { + return c.real(); // cxsmpl::real() + } -inline __host__ __device__ fptype -cximag( const cxtype& c ) -{ - return c.imag(); // cxsmpl::imag() -} + inline __host__ __device__ fptype + cximag( const cxtype& c ) + { + return c.imag(); // cxsmpl::imag() + } -inline __host__ __device__ cxtype -cxconj( const cxtype& c ) -{ - return conj( c ); // conj( cxsmpl ) -} + inline __host__ __device__ cxtype + cxconj( const cxtype& c ) + { + return conj( c ); // conj( cxsmpl ) + } -inline __host__ cxtype // NOT __device__ -cxmake( const std::complex& c ) // std::complex to cxsmpl (float-to-float or float-to-double) -{ - return cxmake( c.real(), c.imag() ); -} + inline __host__ cxtype // NOT __device__ + cxmake( const std::complex& c ) // std::complex to cxsmpl (float-to-float or float-to-double) + { + return cxmake( c.real(), c.imag() ); + } -inline __host__ cxtype // NOT __device__ -cxmake( const std::complex& c ) // std::complex to cxsmpl (double-to-float or double-to-double) -{ - return cxmake( c.real(), c.imag() ); -} + inline __host__ cxtype // NOT __device__ + cxmake( const std::complex& c ) // std::complex to cxsmpl (double-to-float or double-to-double) + { + return cxmake( c.real(), c.imag() ); + } #endif // #if defined MGONGPU_CUCXTYPE_CXSMPL or defined MGONGPU_CPPCXTYPE_CXSMPL -//========================================================================== + //========================================================================== #if defined __CUDACC__ and defined MGONGPU_CUCXTYPE_THRUST // cuda + thrust -//------------------------------ -// CUDA - using thrust::complex -//------------------------------ + //------------------------------ + // CUDA - using thrust::complex + //------------------------------ -inline __host__ __device__ cxtype -cxmake( const fptype& r, const fptype& i ) -{ - return cxtype( r, i ); // thrust::complex constructor -} + inline __host__ __device__ cxtype + cxmake( const fptype& r, const fptype& i ) + { + return cxtype( r, i ); // thrust::complex constructor + } -inline __host__ __device__ fptype -cxreal( const cxtype& c ) -{ - return c.real(); // thrust::complex::real() -} + inline __host__ __device__ fptype + cxreal( const cxtype& c ) + { + return c.real(); // thrust::complex::real() + } -inline __host__ __device__ fptype -cximag( const cxtype& c ) -{ - return c.imag(); // thrust::complex::imag() -} + inline __host__ __device__ fptype + cximag( const cxtype& c ) + { + return c.imag(); // thrust::complex::imag() + } -inline __host__ __device__ cxtype -cxconj( const cxtype& c ) -{ - return conj( c ); // conj( thrust::complex ) -} + inline __host__ __device__ cxtype + cxconj( const cxtype& c ) + { + return conj( c ); // conj( thrust::complex ) + } -inline __host__ __device__ const cxtype& -cxmake( const cxtype& c ) -{ - return c; -} + inline __host__ __device__ const cxtype& + cxmake( const cxtype& c ) + { + return c; + } #endif // #if defined __CUDACC__ and defined MGONGPU_CUCXTYPE_THRUST -//========================================================================== + //========================================================================== #if defined __CUDACC__ and defined MGONGPU_CUCXTYPE_CUCOMPLEX // cuda + cucomplex -//------------------------------ -// CUDA - using cuComplex -//------------------------------ + //------------------------------ + // CUDA - using cuComplex + //------------------------------ #if defined MGONGPU_FPTYPE_DOUBLE // cuda + cucomplex + double -//+++++++++++++++++++++++++ -// cuDoubleComplex ONLY -//+++++++++++++++++++++++++ + //+++++++++++++++++++++++++ + // cuDoubleComplex ONLY + //+++++++++++++++++++++++++ -inline __host__ __device__ cxtype -cxmake( const fptype& r, const fptype& i ) -{ - return make_cuDoubleComplex( r, i ); -} + inline __host__ __device__ cxtype + cxmake( const fptype& r, const fptype& i ) + { + return make_cuDoubleComplex( r, i ); + } -inline __host__ __device__ fptype -cxreal( const cxtype& c ) -{ - return cuCreal( c ); // returns by value -} + inline __host__ __device__ fptype + cxreal( const cxtype& c ) + { + return cuCreal( c ); // returns by value + } -inline __host__ __device__ fptype -cximag( const cxtype& c ) -{ - return cuCimag( c ); // returns by value -} + inline __host__ __device__ fptype + cximag( const cxtype& c ) + { + return cuCimag( c ); // returns by value + } -inline __host__ __device__ cxtype -operator+( const cxtype& a, const cxtype& b ) -{ - return cuCadd( a, b ); -} + inline __host__ __device__ cxtype + operator+( const cxtype& a, const cxtype& b ) + { + return cuCadd( a, b ); + } -inline __host__ __device__ cxtype& -operator+=( cxtype& a, const cxtype& b ) -{ - a = cuCadd( a, b ); - return a; -} + inline __host__ __device__ cxtype& + operator+=( cxtype& a, const cxtype& b ) + { + a = cuCadd( a, b ); + return a; + } -inline __host__ __device__ cxtype -operator-( const cxtype& a, const cxtype& b ) -{ - return cuCsub( a, b ); -} + inline __host__ __device__ cxtype + operator-( const cxtype& a, const cxtype& b ) + { + return cuCsub( a, b ); + } -inline __host__ __device__ cxtype& -operator-=( cxtype& a, const cxtype& b ) -{ - a = cuCsub( a, b ); - return a; -} + inline __host__ __device__ cxtype& + operator-=( cxtype& a, const cxtype& b ) + { + a = cuCsub( a, b ); + return a; + } -inline __host__ __device__ cxtype -operator*( const cxtype& a, const cxtype& b ) -{ - return cuCmul( a, b ); -} + inline __host__ __device__ cxtype + operator*( const cxtype& a, const cxtype& b ) + { + return cuCmul( a, b ); + } -inline __host__ __device__ cxtype -operator/( const cxtype& a, const cxtype& b ) -{ - return cuCdiv( a, b ); -} + inline __host__ __device__ cxtype + operator/( const cxtype& a, const cxtype& b ) + { + return cuCdiv( a, b ); + } #elif defined MGONGPU_FPTYPE_FLOAT // cuda + cucomplex + float -//+++++++++++++++++++++++++ -// cuFloatComplex ONLY -//+++++++++++++++++++++++++ + //+++++++++++++++++++++++++ + // cuFloatComplex ONLY + //+++++++++++++++++++++++++ -inline __host__ __device__ cxtype -cxmake( const fptype& r, const fptype& i ) -{ - return make_cuFloatComplex( r, i ); -} + inline __host__ __device__ cxtype + cxmake( const fptype& r, const fptype& i ) + { + return make_cuFloatComplex( r, i ); + } -inline __host__ __device__ fptype -cxreal( const cxtype& c ) -{ - return cuCrealf( c ); // returns by value -} + inline __host__ __device__ fptype + cxreal( const cxtype& c ) + { + return cuCrealf( c ); // returns by value + } -inline __host__ __device__ fptype -cximag( const cxtype& c ) -{ - return cuCimagf( c ); // returns by value -} + inline __host__ __device__ fptype + cximag( const cxtype& c ) + { + return cuCimagf( c ); // returns by value + } -inline __host__ __device__ cxtype -operator+( const cxtype& a, const cxtype& b ) -{ - return cuCaddf( a, b ); -} + inline __host__ __device__ cxtype + operator+( const cxtype& a, const cxtype& b ) + { + return cuCaddf( a, b ); + } -inline __host__ __device__ cxtype& -operator+=( cxtype& a, const cxtype& b ) -{ - a = cuCaddf( a, b ); - return a; -} + inline __host__ __device__ cxtype& + operator+=( cxtype& a, const cxtype& b ) + { + a = cuCaddf( a, b ); + return a; + } -inline __host__ __device__ cxtype -operator-( const cxtype& a, const cxtype& b ) -{ - return cuCsubf( a, b ); -} + inline __host__ __device__ cxtype + operator-( const cxtype& a, const cxtype& b ) + { + return cuCsubf( a, b ); + } -inline __host__ __device__ cxtype& -operator-=( cxtype& a, const cxtype& b ) -{ - a = cuCsubf( a, b ); - return a; -} + inline __host__ __device__ cxtype& + operator-=( cxtype& a, const cxtype& b ) + { + a = cuCsubf( a, b ); + return a; + } -inline __host__ __device__ cxtype -operator*( const cxtype& a, const cxtype& b ) -{ - return cuCmulf( a, b ); -} + inline __host__ __device__ cxtype + operator*( const cxtype& a, const cxtype& b ) + { + return cuCmulf( a, b ); + } -inline __host__ __device__ cxtype -operator/( const cxtype& a, const cxtype& b ) -{ - return cuCdivf( a, b ); -} + inline __host__ __device__ cxtype + operator/( const cxtype& a, const cxtype& b ) + { + return cuCdivf( a, b ); + } -inline __host__ cxtype // NOT __device__ -cxmake( const std::complex& c ) // std::complex to cucomplex (cast double-to-float) -{ - return cxmake( (fptype)c.real(), (fptype)c.imag() ); -} + inline __host__ cxtype // NOT __device__ + cxmake( const std::complex& c ) // std::complex to cucomplex (cast double-to-float) + { + return cxmake( (fptype)c.real(), (fptype)c.imag() ); + } #endif -//+++++++++++++++++++++++++ -// cuDoubleComplex OR -// cuFloatComplex -//+++++++++++++++++++++++++ + //+++++++++++++++++++++++++ + // cuDoubleComplex OR + // cuFloatComplex + //+++++++++++++++++++++++++ -inline __host__ __device__ cxtype -operator+( const cxtype a ) -{ - return a; -} + inline __host__ __device__ cxtype + operator+( const cxtype a ) + { + return a; + } -inline __host__ __device__ cxtype -operator-( const cxtype& a ) -{ - return cxmake( -cxreal( a ), -cximag( a ) ); -} + inline __host__ __device__ cxtype + operator-( const cxtype& a ) + { + return cxmake( -cxreal( a ), -cximag( a ) ); + } -inline __host__ __device__ cxtype -operator+( const fptype& a, const cxtype& b ) -{ - return cxmake( a, 0 ) + b; -} + inline __host__ __device__ cxtype + operator+( const fptype& a, const cxtype& b ) + { + return cxmake( a, 0 ) + b; + } -inline __host__ __device__ cxtype -operator-( const fptype& a, const cxtype& b ) -{ - return cxmake( a, 0 ) - b; -} + inline __host__ __device__ cxtype + operator-( const fptype& a, const cxtype& b ) + { + return cxmake( a, 0 ) - b; + } -inline __host__ __device__ cxtype -operator*( const fptype& a, const cxtype& b ) -{ - return cxmake( a, 0 ) * b; -} + inline __host__ __device__ cxtype + operator*( const fptype& a, const cxtype& b ) + { + return cxmake( a, 0 ) * b; + } -inline __host__ __device__ cxtype -operator/( const fptype& a, const cxtype& b ) -{ - return cxmake( a, 0 ) / b; -} + inline __host__ __device__ cxtype + operator/( const fptype& a, const cxtype& b ) + { + return cxmake( a, 0 ) / b; + } -inline __host__ __device__ cxtype -operator+( const cxtype& a, const fptype& b ) -{ - return a + cxmake( b, 0 ); -} + inline __host__ __device__ cxtype + operator+( const cxtype& a, const fptype& b ) + { + return a + cxmake( b, 0 ); + } -inline __host__ __device__ cxtype -operator-( const cxtype& a, const fptype& b ) -{ - return a - cxmake( b, 0 ); -} + inline __host__ __device__ cxtype + operator-( const cxtype& a, const fptype& b ) + { + return a - cxmake( b, 0 ); + } -inline __host__ __device__ cxtype -operator*( const cxtype& a, const fptype& b ) -{ - return a * cxmake( b, 0 ); -} + inline __host__ __device__ cxtype + operator*( const cxtype& a, const fptype& b ) + { + return a * cxmake( b, 0 ); + } -inline __host__ __device__ cxtype -operator/( const cxtype& a, const fptype& b ) -{ - return a / cxmake( b, 0 ); -} + inline __host__ __device__ cxtype + operator/( const cxtype& a, const fptype& b ) + { + return a / cxmake( b, 0 ); + } -inline __host__ __device__ cxtype -cxconj( const cxtype& c ) -{ - return cxmake( cxreal( c ), -cximag( c ) ); -} + inline __host__ __device__ cxtype + cxconj( const cxtype& c ) + { + return cxmake( cxreal( c ), -cximag( c ) ); + } -inline __host__ cxtype // NOT __device__ -cxmake( const std::complex& c ) // std::complex to cucomplex (float-to-float or double-to-double) -{ - return cxmake( c.real(), c.imag() ); -} + inline __host__ cxtype // NOT __device__ + cxmake( const std::complex& c ) // std::complex to cucomplex (float-to-float or double-to-double) + { + return cxmake( c.real(), c.imag() ); + } #endif // #if defined __CUDACC__ and defined MGONGPU_CUCXTYPE_CUCOMPLEX -//========================================================================== + //========================================================================== #if not defined __CUDACC__ and defined MGONGPU_CPPCXTYPE_STDCOMPLEX // c++ + stdcomplex -//------------------------------ -// C++ - using std::complex -//------------------------------ + //------------------------------ + // C++ - using std::complex + //------------------------------ -inline cxtype -cxmake( const fptype& r, const fptype& i ) -{ - return cxtype( r, i ); // std::complex constructor -} + inline cxtype + cxmake( const fptype& r, const fptype& i ) + { + return cxtype( r, i ); // std::complex constructor + } -inline fptype -cxreal( const cxtype& c ) -{ - return c.real(); // std::complex::real() -} + inline fptype + cxreal( const cxtype& c ) + { + return c.real(); // std::complex::real() + } -inline fptype -cximag( const cxtype& c ) -{ - return c.imag(); // std::complex::imag() -} + inline fptype + cximag( const cxtype& c ) + { + return c.imag(); // std::complex::imag() + } -inline cxtype -cxconj( const cxtype& c ) -{ - return conj( c ); // conj( std::complex ) -} + inline cxtype + cxconj( const cxtype& c ) + { + return conj( c ); // conj( std::complex ) + } -inline const cxtype& -cxmake( const cxtype& c ) // std::complex to std::complex (float-to-float or double-to-double) -{ - return c; -} + inline const cxtype& + cxmake( const cxtype& c ) // std::complex to std::complex (float-to-float or double-to-double) + { + return c; + } #if defined MGONGPU_FPTYPE_FLOAT -inline cxtype -cxmake( const std::complex& c ) // std::complex to std::complex (cast double-to-float) -{ - return cxmake( (fptype)c.real(), (fptype)c.imag() ); -} + inline cxtype + cxmake( const std::complex& c ) // std::complex to std::complex (cast double-to-float) + { + return cxmake( (fptype)c.real(), (fptype)c.imag() ); + } #endif #endif // #if not defined __CUDACC__ and defined MGONGPU_CPPCXTYPE_STDCOMPLEX -//========================================================================== + //========================================================================== -inline __host__ __device__ const cxtype -cxmake( const cxsmpl& c ) // cxsmpl to cxtype (float-to-float or float-to-double) -{ - return cxmake( c.real(), c.imag() ); -} + inline __host__ __device__ const cxtype + cxmake( const cxsmpl& c ) // cxsmpl to cxtype (float-to-float or float-to-double) + { + return cxmake( c.real(), c.imag() ); + } -inline __host__ __device__ const cxtype -cxmake( const cxsmpl& c ) // cxsmpl to cxtype (double-to-float or double-to-double) -{ - return cxmake( c.real(), c.imag() ); -} + inline __host__ __device__ const cxtype + cxmake( const cxsmpl& c ) // cxsmpl to cxtype (double-to-float or double-to-double) + { + return cxmake( c.real(), c.imag() ); + } + +} // end namespace mg5amcGpu/mg5amcCpu //========================================================================== // COMPLEX TYPES: WRAPPER OVER RI FLOATING POINT PAIR (cxtype_ref) //========================================================================== -namespace mgOnGpu /* clang-format off */ +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { // The cxtype_ref class (a non-const reference to two fp variables) was originally designed for cxtype_v::operator[] // It used to be included in the code only when MGONGPU_HAS_CPPCXTYPEV_BRK (originally MGONGPU_HAS_CPPCXTYPE_REF) is defined @@ -615,23 +642,30 @@ namespace mgOnGpu /* clang-format off */ cxtype_ref() = delete; cxtype_ref( const cxtype_ref& ) = delete; cxtype_ref( cxtype_ref&& ) = default; // copy refs - __host__ __device__ cxtype_ref( fptype& r, fptype& i ) : m_preal( &r ), m_pimag( &i ) {} // copy refs + __host__ __device__ cxtype_ref( fptype& r, fptype& i ) + : m_preal( &r ), m_pimag( &i ) {} // copy refs cxtype_ref& operator=( const cxtype_ref& ) = delete; //__host__ __device__ cxtype_ref& operator=( cxtype_ref&& c ) {...} // REMOVED! Should copy refs or copy values? No longer needed in cxternary - __host__ __device__ cxtype_ref& operator=( const cxtype& c ) { *m_preal = cxreal( c ); *m_pimag = cximag( c ); return *this; } // copy values + __host__ __device__ cxtype_ref& operator=( const cxtype& c ) + { + *m_preal = cxreal( c ); + *m_pimag = cximag( c ); + return *this; + } // copy values __host__ __device__ operator cxtype() const { return cxmake( *m_preal, *m_pimag ); } private: fptype *m_preal, *m_pimag; // RI }; -} /* clang-format on */ -// Printout to stream for user defined types -inline __host__ __device__ std::ostream& -operator<<( std::ostream& out, const mgOnGpu::cxtype_ref& c ) -{ - out << (cxtype)c; - return out; -} + // Printout to stream for user defined types + inline __host__ __device__ std::ostream& + operator<<( std::ostream& out, const cxtype_ref& c ) + { + out << (cxtype)c; + return out; + } + +} // end namespace mg5amcGpu/mg5amcCpu //========================================================================== diff --git a/epochX/cudacpp/gg_ttggg.sa/src/mgOnGpuFptypes.h b/epochX/cudacpp/gg_ttggg.sa/src/mgOnGpuFptypes.h index a1cde16a67..905c97d700 100644 --- a/epochX/cudacpp/gg_ttggg.sa/src/mgOnGpuFptypes.h +++ b/epochX/cudacpp/gg_ttggg.sa/src/mgOnGpuFptypes.h @@ -11,82 +11,91 @@ #include #include -//========================================================================== - -#ifdef __CUDACC__ // cuda - -//------------------------------ -// Floating point types - Cuda -//------------------------------ - -/* -inline __host__ __device__ fptype -fpmax( const fptype& a, const fptype& b ) -{ - return max( a, b ); -} - -inline __host__ __device__ fptype -fpmin( const fptype& a, const fptype& b ) -{ - return min( a, b ); -} -*/ - -inline __host__ __device__ const fptype& -fpmax( const fptype& a, const fptype& b ) +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { - return ( ( b < a ) ? a : b ); -} + //========================================================================== -inline __host__ __device__ const fptype& -fpmin( const fptype& a, const fptype& b ) -{ - return ( ( a < b ) ? a : b ); -} +#ifdef __CUDACC__ // cuda -inline __host__ __device__ fptype -fpsqrt( const fptype& f ) -{ + //------------------------------ + // Floating point types - Cuda + //------------------------------ + + /* + inline __host__ __device__ fptype + fpmax( const fptype& a, const fptype& b ) + { + return max( a, b ); + } + + inline __host__ __device__ fptype + fpmin( const fptype& a, const fptype& b ) + { + return min( a, b ); + } + */ + + inline __host__ __device__ const fptype& + fpmax( const fptype& a, const fptype& b ) + { + return ( ( b < a ) ? a : b ); + } + + inline __host__ __device__ const fptype& + fpmin( const fptype& a, const fptype& b ) + { + return ( ( a < b ) ? a : b ); + } + + inline __host__ __device__ fptype + fpsqrt( const fptype& f ) + { #if defined MGONGPU_FPTYPE_FLOAT - // See https://docs.nvidia.com/cuda/cuda-math-api/group__CUDA__MATH__SINGLE.html - return sqrtf( f ); + // See https://docs.nvidia.com/cuda/cuda-math-api/group__CUDA__MATH__SINGLE.html + return sqrtf( f ); #else - // See https://docs.nvidia.com/cuda/cuda-math-api/group__CUDA__MATH__DOUBLE.html - return sqrt( f ); + // See https://docs.nvidia.com/cuda/cuda-math-api/group__CUDA__MATH__DOUBLE.html + return sqrt( f ); #endif -} + } #endif // #ifdef __CUDACC__ -//========================================================================== + //========================================================================== #ifndef __CUDACC__ -//------------------------------ -// Floating point types - C++ -//------------------------------ + //------------------------------ + // Floating point types - C++ + //------------------------------ -inline const fptype& -fpmax( const fptype& a, const fptype& b ) -{ - return std::max( a, b ); -} + inline const fptype& + fpmax( const fptype& a, const fptype& b ) + { + return std::max( a, b ); + } -inline const fptype& -fpmin( const fptype& a, const fptype& b ) -{ - return std::min( a, b ); -} + inline const fptype& + fpmin( const fptype& a, const fptype& b ) + { + return std::min( a, b ); + } -inline fptype -fpsqrt( const fptype& f ) -{ - return std::sqrt( f ); -} + inline fptype + fpsqrt( const fptype& f ) + { + return std::sqrt( f ); + } #endif // #ifndef __CUDACC__ -//========================================================================== + //========================================================================== + +} // end namespace mg5amcGpu/mg5amcCpu #endif // MGONGPUFPTYPES_H diff --git a/epochX/cudacpp/gg_ttggg.sa/src/mgOnGpuVectors.h b/epochX/cudacpp/gg_ttggg.sa/src/mgOnGpuVectors.h index 9d3e82b1e3..0d3892d026 100644 --- a/epochX/cudacpp/gg_ttggg.sa/src/mgOnGpuVectors.h +++ b/epochX/cudacpp/gg_ttggg.sa/src/mgOnGpuVectors.h @@ -31,7 +31,12 @@ //#undef MGONGPU_HAS_CPPCXTYPEV_BRK // gcc test (very slightly slower? issue #172) #endif -namespace mgOnGpu /* clang-format off */ +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { #ifdef MGONGPU_CPPSIMD @@ -72,22 +77,40 @@ namespace mgOnGpu /* clang-format off */ public: // Array initialization: zero-out as "{0}" (C and C++) or as "{}" (C++ only) // See https://en.cppreference.com/w/c/language/array_initialization#Notes - cxtype_v() : m_real{ 0 }, m_imag{ 0 } {} // RRRR=0000 IIII=0000 + cxtype_v() + : m_real{ 0 }, m_imag{ 0 } {} // RRRR=0000 IIII=0000 cxtype_v( const cxtype_v& ) = default; cxtype_v( cxtype_v&& ) = default; - cxtype_v( const fptype_v& r, const fptype_v& i ) : m_real( r ), m_imag( i ) {} - cxtype_v( const fptype_v& r ) : m_real( r ), m_imag{ 0 } {} // IIII=0000 + cxtype_v( const fptype_v& r, const fptype_v& i ) + : m_real( r ), m_imag( i ) {} + cxtype_v( const fptype_v& r ) + : m_real( r ), m_imag{ 0 } {} // IIII=0000 + cxtype_v( const fptype& r ) + : m_real( fptype_v{} + r ), m_imag{ 0 } {} // IIII=0000 cxtype_v& operator=( const cxtype_v& ) = default; cxtype_v& operator=( cxtype_v&& ) = default; - cxtype_v& operator+=( const cxtype_v& c ) { m_real += c.real(); m_imag += c.imag(); return *this; } - cxtype_v& operator-=( const cxtype_v& c ) { m_real -= c.real(); m_imag -= c.imag(); return *this; } + cxtype_v& operator+=( const cxtype_v& c ) + { + m_real += c.real(); + m_imag += c.imag(); + return *this; + } + cxtype_v& operator-=( const cxtype_v& c ) + { + m_real -= c.real(); + m_imag -= c.imag(); + return *this; + } #ifdef MGONGPU_HAS_CPPCXTYPEV_BRK // NB: THIS IS THE FUNDAMENTAL DIFFERENCE BETWEEN MGONGPU_HAS_CPPCXTYPEV_BRK DEFINED AND NOT DEFINED // NB: the alternative "clang" implementation is simpler: it simply does not have any bracket operator[] // NB: ** do NOT implement operator[] to return a value: it does not fail the build (why?) and gives unexpected results! ** cxtype_ref operator[]( size_t i ) const { return cxtype_ref( m_real[i], m_imag[i] ); } #endif - const fptype_v& real() const { return m_real; } + const fptype_v& real() const + { + return m_real; + } const fptype_v& imag() const { return m_imag; } private: fptype_v m_real, m_imag; // RRRRIIII @@ -98,7 +121,7 @@ namespace mgOnGpu /* clang-format off */ #if defined MGONGPU_FPTYPE_DOUBLE typedef long int bool_v __attribute__( ( ext_vector_type( neppV ) ) ); // bbbb #elif defined MGONGPU_FPTYPE_FLOAT - typedef int bool_v __attribute__( ( ext_vector_type( neppV ) ) ); // bbbb + typedef int bool_v __attribute__( ( ext_vector_type( neppV ) ) ); // bbbb #endif #else // gcc #if defined MGONGPU_FPTYPE_DOUBLE @@ -113,532 +136,551 @@ namespace mgOnGpu /* clang-format off */ const int neppV = 1; #endif // #ifdef MGONGPU_CPPSIMD - -} /* clang-format on */ +} //-------------------------------------------------------------------------- -// Expose typedefs outside the namespace -using mgOnGpu::neppV; -#ifdef MGONGPU_CPPSIMD -using mgOnGpu::fptype_v; -using mgOnGpu::fptype2_v; -using mgOnGpu::cxtype_v; -using mgOnGpu::bool_v; -#endif +// DANGEROUS! this was mixing different cxtype definitions for CPU and GPU builds (see #318 and #725) +// DO NOT expose typedefs outside the namespace +//using mgOnGpu::neppV; +//#ifdef MGONGPU_CPPSIMD +//using mgOnGpu::fptype_v; +//using mgOnGpu::fptype2_v; +//using mgOnGpu::cxtype_v; +//using mgOnGpu::bool_v; +//#endif -//-------------------------------------------------------------------------- +//========================================================================== +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif +{ #ifndef __CUDACC__ -// Printout to stream for user defined types + // Printout to stream for user defined types #ifndef MGONGPU_CPPCXTYPE_CXSMPL // operator<< for cxsmpl has already been defined! -inline std::ostream& -operator<<( std::ostream& out, const cxtype& c ) -{ - out << "[" << cxreal( c ) << "," << cximag( c ) << "]"; - //out << cxreal(c) << "+i" << cximag(c); - return out; -} + inline std::ostream& + operator<<( std::ostream& out, const cxtype& c ) + { + out << "[" << cxreal( c ) << "," << cximag( c ) << "]"; + //out << cxreal(c) << "+i" << cximag(c); + return out; + } #endif -/* + /* #ifdef MGONGPU_CPPSIMD -inline std::ostream& -operator<<( std::ostream& out, const bool_v& v ) -{ - out << "{ " << v[0]; - for ( int i=1; i t t~ q INFO: load particles INFO: load vertices -DEBUG: model prefixing takes 0.004947662353515625  +DEBUG: model prefixing takes 0.005097150802612305  INFO: Restrict model sm with file models/sm/restrict_default.dat . DEBUG: Simplifying conditional expressions  DEBUG: remove interactions: u s w+ at order: QED=1  @@ -169,7 +169,7 @@ INFO: Crossed process found for g u~ > t t~ u~, reuse diagrams. INFO: Crossed process found for g c~ > t t~ c~, reuse diagrams. INFO: Crossed process found for g d~ > t t~ d~, reuse diagrams. INFO: Crossed process found for g s~ > t t~ s~, reuse diagrams. -8 processes with 40 diagrams generated in 0.071 s +8 processes with 40 diagrams generated in 0.070 s Total: 8 processes with 40 diagrams output madevent CODEGEN_mad_gq_ttq --hel_recycling=False --vector_size=16384 --me_exporter=standalone_cudacpp Load PLUGIN.CUDACPP_SA_OUTPUT @@ -196,37 +196,37 @@ INFO: Combined process g c~ > t t~ c~ WEIGHTED<=3 @1 with process g u~ > t t~ u~ INFO: Combined process g d~ > t t~ d~ WEIGHTED<=3 @1 with process g u~ > t t~ u~ WEIGHTED<=3 @1 INFO: Combined process g s~ > t t~ s~ WEIGHTED<=3 @1 with process g u~ > t t~ u~ WEIGHTED<=3 @1 INFO: Creating files in directory P1_gu_ttxu -DEBUG: Entering PLUGIN_OneProcessExporter.__init__ [model_handling.py at line 1028]  -DEBUG: kwargs[prefix] = 0 [model_handling.py at line 1029]  -DEBUG: proc_id =  1 [model_handling.py at line 1034]  -DEBUG: process_exporter_cpp =  [export_v4.py at line 6174]  +DEBUG: Entering PLUGIN_OneProcessExporter.__init__ [model_handling.py at line 1039]  +DEBUG: kwargs[prefix] = 0 [model_handling.py at line 1040]  +DEBUG: proc_id =  1 [model_handling.py at line 1045]  +DEBUG: process_exporter_cpp =  [export_v4.py at line 6174]  INFO: Creating files in directory . -DEBUG: Entering PLUGIN_OneProcessExporter.generate_process_files [model_handling.py at line 1286]  -DEBUG: self.include_multi_channel is already defined: this is madevent+second_exporter mode [model_handling.py at line 1288]  +DEBUG: Entering PLUGIN_OneProcessExporter.generate_process_files [model_handling.py at line 1297]  +DEBUG: self.include_multi_channel is already defined: this is madevent+second_exporter mode [model_handling.py at line 1299]  FileWriter for ././CPPProcess.h -DEBUG: Entering PLUGIN_OneProcessExporter.write_process_h_file [model_handling.py at line 1442]  +DEBUG: Entering PLUGIN_OneProcessExporter.write_process_h_file [model_handling.py at line 1453]  FileWriter for ././CPPProcess.cc -DEBUG: Entering PLUGIN_OneProcessExporter.write_process_cc_file [model_handling.py at line 1464]  -DEBUG: Entering PLUGIN_OneProcessExporter.get_sigmaKin_lines [model_handling.py at line 1132]  -DEBUG: self.include_multi_channel =  [1, 2, 3, 4, 5] [model_handling.py at line 1133]  -DEBUG: self.support_multichannel =  True [model_handling.py at line 1134]  -DEBUG: type(self.helas_call_writer) =  [model_handling.py at line 1151]  -DEBUG: self.support_multichannel, self.include_multi_channel =  True [1, 2, 3, 4, 5] [model_handling.py at line 1152]  -DEBUG: multi_channel =  {1: [0], 2: [1], 3: [2], 4: [3], 5: [4]} [model_handling.py at line 1158]  -DEBUG: multi_channel_map =  {1: [0], 2: [1], 3: [2], 4: [3], 5: [4]} [model_handling.py at line 1643]  -DEBUG: diag_to_config =  {1: 1, 2: 2, 3: 3, 4: 4, 5: 5} [model_handling.py at line 1698]  -DEBUG: call =  vxxxxx( momenta,m_pars->%s, cHel[ihel][%d],%+d, w_sv[%d], %d ); [model_handling.py at line 1810]  -DEBUG: ('ZERO', 0, -1, 0, 0) [model_handling.py at line 1811]  +DEBUG: Entering PLUGIN_OneProcessExporter.write_process_cc_file [model_handling.py at line 1475]  +DEBUG: Entering PLUGIN_OneProcessExporter.get_sigmaKin_lines [model_handling.py at line 1143]  +DEBUG: self.include_multi_channel =  [1, 2, 3, 4, 5] [model_handling.py at line 1144]  +DEBUG: self.support_multichannel =  True [model_handling.py at line 1145]  +DEBUG: type(self.helas_call_writer) =  [model_handling.py at line 1162]  +DEBUG: self.support_multichannel, self.include_multi_channel =  True [1, 2, 3, 4, 5] [model_handling.py at line 1163]  +DEBUG: multi_channel =  {1: [0], 2: [1], 3: [2], 4: [3], 5: [4]} [model_handling.py at line 1169]  +DEBUG: multi_channel_map =  {1: [0], 2: [1], 3: [2], 4: [3], 5: [4]} [model_handling.py at line 1654]  +DEBUG: diag_to_config =  {1: 1, 2: 2, 3: 3, 4: 4, 5: 5} [model_handling.py at line 1709]  +DEBUG: call =  vxxxxx( momenta,m_pars->%s, cHel[ihel][%d],%+d, w_sv[%d], %d ); [model_handling.py at line 1821]  +DEBUG: ('ZERO', 0, -1, 0, 0) [model_handling.py at line 1822]  INFO: Created files CPPProcess.h and CPPProcess.cc in directory ./. -DEBUG: Entering PLUGIN_OneProcessExporter.edit_CMakeLists [model_handling.py at line 1332]  -DEBUG: Entering PLUGIN_OneProcessExporter.edit_check_sa [model_handling.py at line 1341]  -DEBUG: Entering PLUGIN_OneProcessExporter.edit_mgonGPU [model_handling.py at line 1358]  -DEBUG: Entering PLUGIN_OneProcessExporter.edit_processidfile [model_handling.py at line 1378]  -DEBUG: Entering PLUGIN_OneProcessExporter.edit_coloramps [model_handling.py at line 1390]  -DEBUG: Entering PLUGIN_OneProcessExporter.edit_testxxx [model_handling.py at line 1408]  -DEBUG: Entering PLUGIN_OneProcessExporter.edit_memorybuffers [model_handling.py at line 1419]  -DEBUG: Entering PLUGIN_OneProcessExporter.edit_memoryaccesscouplings [model_handling.py at line 1430]  -DEBUG: 'Test reference file does not exist and will not be copied: ', template_ref =  Test reference file does not exist and will not be copied: /data/avalassi/GPU2023/MG5aMC/ghav-mg5amcnlo/PLUGIN/CUDACPP_SA_OUTPUT/madgraph/iolibs/template_files/../../../test/ref/dump_CPUTest.Sigma_sm_gu_ttxu.txt [model_handling.py at line 1327]  +DEBUG: Entering PLUGIN_OneProcessExporter.edit_CMakeLists [model_handling.py at line 1343]  +DEBUG: Entering PLUGIN_OneProcessExporter.edit_check_sa [model_handling.py at line 1352]  +DEBUG: Entering PLUGIN_OneProcessExporter.edit_mgonGPU [model_handling.py at line 1369]  +DEBUG: Entering PLUGIN_OneProcessExporter.edit_processidfile [model_handling.py at line 1389]  +DEBUG: Entering PLUGIN_OneProcessExporter.edit_coloramps [model_handling.py at line 1401]  +DEBUG: Entering PLUGIN_OneProcessExporter.edit_testxxx [model_handling.py at line 1419]  +DEBUG: Entering PLUGIN_OneProcessExporter.edit_memorybuffers [model_handling.py at line 1430]  +DEBUG: Entering PLUGIN_OneProcessExporter.edit_memoryaccesscouplings [model_handling.py at line 1441]  +DEBUG: 'Test reference file does not exist and will not be copied: ', template_ref =  Test reference file does not exist and will not be copied: /data/avalassi/GPU2023/MG5aMC/ghav-mg5amcnlo/PLUGIN/CUDACPP_SA_OUTPUT/madgraph/iolibs/template_files/../../../test/ref/dump_CPUTest.Sigma_sm_gu_ttxu.txt [model_handling.py at line 1338]  DEBUG: proc_id =  1 [export_cpp.py at line 710]  DEBUG: config_map =  [1, 2, 3, 4, 5] [export_cpp.py at line 711]  DEBUG: subproc_number =  0 [export_cpp.py at line 712]  @@ -234,37 +234,37 @@ INFO: Created files CPPProcess.h and CPPProcess.cc in directory ./. INFO: Generating Feynman diagrams for Process: g u > t t~ u WEIGHTED<=3 @1 INFO: Finding symmetric diagrams for subprocess group gu_ttxu INFO: Creating files in directory P1_gux_ttxux -DEBUG: Entering PLUGIN_OneProcessExporter.__init__ [model_handling.py at line 1028]  -DEBUG: kwargs[prefix] = 0 [model_handling.py at line 1029]  -DEBUG: proc_id =  1 [model_handling.py at line 1034]  -DEBUG: process_exporter_cpp =  [export_v4.py at line 6174]  +DEBUG: Entering PLUGIN_OneProcessExporter.__init__ [model_handling.py at line 1039]  +DEBUG: kwargs[prefix] = 0 [model_handling.py at line 1040]  +DEBUG: proc_id =  1 [model_handling.py at line 1045]  +DEBUG: process_exporter_cpp =  [export_v4.py at line 6174]  INFO: Creating files in directory . -DEBUG: Entering PLUGIN_OneProcessExporter.generate_process_files [model_handling.py at line 1286]  -DEBUG: self.include_multi_channel is already defined: this is madevent+second_exporter mode [model_handling.py at line 1288]  +DEBUG: Entering PLUGIN_OneProcessExporter.generate_process_files [model_handling.py at line 1297]  +DEBUG: self.include_multi_channel is already defined: this is madevent+second_exporter mode [model_handling.py at line 1299]  FileWriter for ././CPPProcess.h -DEBUG: Entering PLUGIN_OneProcessExporter.write_process_h_file [model_handling.py at line 1442]  +DEBUG: Entering PLUGIN_OneProcessExporter.write_process_h_file [model_handling.py at line 1453]  FileWriter for ././CPPProcess.cc -DEBUG: Entering PLUGIN_OneProcessExporter.write_process_cc_file [model_handling.py at line 1464]  -DEBUG: Entering PLUGIN_OneProcessExporter.get_sigmaKin_lines [model_handling.py at line 1132]  -DEBUG: self.include_multi_channel =  [1, 2, 3, 4, 5] [model_handling.py at line 1133]  -DEBUG: self.support_multichannel =  True [model_handling.py at line 1134]  -DEBUG: type(self.helas_call_writer) =  [model_handling.py at line 1151]  -DEBUG: self.support_multichannel, self.include_multi_channel =  True [1, 2, 3, 4, 5] [model_handling.py at line 1152]  -DEBUG: multi_channel =  {1: [0], 2: [1], 3: [2], 4: [3], 5: [4]} [model_handling.py at line 1158]  -DEBUG: multi_channel_map =  {1: [0], 2: [1], 3: [2], 4: [3], 5: [4]} [model_handling.py at line 1643]  -DEBUG: diag_to_config =  {1: 1, 2: 2, 3: 3, 4: 4, 5: 5} [model_handling.py at line 1698]  -DEBUG: call =  vxxxxx( momenta,m_pars->%s, cHel[ihel][%d],%+d, w_sv[%d], %d ); [model_handling.py at line 1810]  -DEBUG: ('ZERO', 0, -1, 0, 0) [model_handling.py at line 1811]  +DEBUG: Entering PLUGIN_OneProcessExporter.write_process_cc_file [model_handling.py at line 1475]  +DEBUG: Entering PLUGIN_OneProcessExporter.get_sigmaKin_lines [model_handling.py at line 1143]  +DEBUG: self.include_multi_channel =  [1, 2, 3, 4, 5] [model_handling.py at line 1144]  +DEBUG: self.support_multichannel =  True [model_handling.py at line 1145]  +DEBUG: type(self.helas_call_writer) =  [model_handling.py at line 1162]  +DEBUG: self.support_multichannel, self.include_multi_channel =  True [1, 2, 3, 4, 5] [model_handling.py at line 1163]  +DEBUG: multi_channel =  {1: [0], 2: [1], 3: [2], 4: [3], 5: [4]} [model_handling.py at line 1169]  +DEBUG: multi_channel_map =  {1: [0], 2: [1], 3: [2], 4: [3], 5: [4]} [model_handling.py at line 1654]  +DEBUG: diag_to_config =  {1: 1, 2: 2, 3: 3, 4: 4, 5: 5} [model_handling.py at line 1709]  +DEBUG: call =  vxxxxx( momenta,m_pars->%s, cHel[ihel][%d],%+d, w_sv[%d], %d ); [model_handling.py at line 1821]  +DEBUG: ('ZERO', 0, -1, 0, 0) [model_handling.py at line 1822]  INFO: Created files CPPProcess.h and CPPProcess.cc in directory ./. -DEBUG: Entering PLUGIN_OneProcessExporter.edit_CMakeLists [model_handling.py at line 1332]  -DEBUG: Entering PLUGIN_OneProcessExporter.edit_check_sa [model_handling.py at line 1341]  -DEBUG: Entering PLUGIN_OneProcessExporter.edit_mgonGPU [model_handling.py at line 1358]  -DEBUG: Entering PLUGIN_OneProcessExporter.edit_processidfile [model_handling.py at line 1378]  -DEBUG: Entering PLUGIN_OneProcessExporter.edit_coloramps [model_handling.py at line 1390]  -DEBUG: Entering PLUGIN_OneProcessExporter.edit_testxxx [model_handling.py at line 1408]  -DEBUG: Entering PLUGIN_OneProcessExporter.edit_memorybuffers [model_handling.py at line 1419]  -DEBUG: Entering PLUGIN_OneProcessExporter.edit_memoryaccesscouplings [model_handling.py at line 1430]  -DEBUG: 'Copying test reference file: ', template_ref =  Copying test reference file: /data/avalassi/GPU2023/MG5aMC/ghav-mg5amcnlo/PLUGIN/CUDACPP_SA_OUTPUT/madgraph/iolibs/template_files/../../../test/ref/dump_CPUTest.Sigma_sm_gux_ttxux.txt [model_handling.py at line 1324]  +DEBUG: Entering PLUGIN_OneProcessExporter.edit_CMakeLists [model_handling.py at line 1343]  +DEBUG: Entering PLUGIN_OneProcessExporter.edit_check_sa [model_handling.py at line 1352]  +DEBUG: Entering PLUGIN_OneProcessExporter.edit_mgonGPU [model_handling.py at line 1369]  +DEBUG: Entering PLUGIN_OneProcessExporter.edit_processidfile [model_handling.py at line 1389]  +DEBUG: Entering PLUGIN_OneProcessExporter.edit_coloramps [model_handling.py at line 1401]  +DEBUG: Entering PLUGIN_OneProcessExporter.edit_testxxx [model_handling.py at line 1419]  +DEBUG: Entering PLUGIN_OneProcessExporter.edit_memorybuffers [model_handling.py at line 1430]  +DEBUG: Entering PLUGIN_OneProcessExporter.edit_memoryaccesscouplings [model_handling.py at line 1441]  +DEBUG: 'Copying test reference file: ', template_ref =  Copying test reference file: /data/avalassi/GPU2023/MG5aMC/ghav-mg5amcnlo/PLUGIN/CUDACPP_SA_OUTPUT/madgraph/iolibs/template_files/../../../test/ref/dump_CPUTest.Sigma_sm_gux_ttxux.txt [model_handling.py at line 1335]  DEBUG: proc_id =  1 [export_cpp.py at line 710]  DEBUG: config_map =  [1, 2, 3, 4, 5] [export_cpp.py at line 711]  DEBUG: subproc_number =  1 [export_cpp.py at line 712]  @@ -272,16 +272,16 @@ INFO: Created files CPPProcess.h and CPPProcess.cc in directory ./. INFO: Generating Feynman diagrams for Process: g u~ > t t~ u~ WEIGHTED<=3 @1 INFO: Finding symmetric diagrams for subprocess group gux_ttxux Generated helas calls for 2 subprocesses (10 diagrams) in 0.028 s -Wrote files for 32 helas calls in 0.213 s +Wrote files for 32 helas calls in 0.214 s ALOHA: aloha starts to compute helicity amplitudes ALOHA: aloha creates FFV1 routines ALOHA: aloha creates VVV1 routines -ALOHA: aloha creates 2 routines in 0.126 s +ALOHA: aloha creates 2 routines in 0.125 s DEBUG: Entering PLUGIN_ProcessExporter.convert_model (create the model) [output.py at line 194]  ALOHA: aloha starts to compute helicity amplitudes ALOHA: aloha creates FFV1 routines ALOHA: aloha creates VVV1 routines -ALOHA: aloha creates 4 routines in 0.112 s +ALOHA: aloha creates 4 routines in 0.115 s FFV1 FFV1 FFV1 @@ -290,25 +290,13 @@ ALOHA: aloha creates 4 routines in 0.112 s FileWriter for /data/avalassi/GPU2023/MG5aMC/ghav-mg5amcnlo/CODEGEN_mad_gq_ttq/src/./HelAmps_sm.h INFO: Created file HelAmps_sm.h in directory /data/avalassi/GPU2023/MG5aMC/ghav-mg5amcnlo/CODEGEN_mad_gq_ttq/src/. super_write_set_parameters_onlyfixMajorana (hardcoded=False) -DEBUG: 'pardef_lines size =', len(pardef_lines), ', keys size =', len(pardef_lines.keys()) =  pardef_lines size = 48 , keys size = 48 [model_handling.py at line 724]  -DEBUG: 'parset_pars size =', len(parset_pars) =  parset_pars size = 48 [model_handling.py at line 740]  -DEBUG: 'parset_lines size =', len(parset_lines), ', keys size =', len(parset_lines.keys()) =  parset_lines size = 48 , keys size = 48 [model_handling.py at line 741]  +DEBUG: 'pardef_lines size =', len(pardef_lines), ', keys size =', len(pardef_lines.keys()) =  pardef_lines size = 48 , keys size = 48 [model_handling.py at line 729]  super_write_set_parameters_onlyfixMajorana (hardcoded=True) -DEBUG: 'pardef_lines size =', len(pardef_lines), ', keys size =', len(pardef_lines.keys()) =  pardef_lines size = 3 , keys size = 3 [model_handling.py at line 724]  -DEBUG: 'parset_pars size =', len(parset_pars) =  parset_pars size = 3 [model_handling.py at line 740]  -DEBUG: 'parset_lines size =', len(parset_lines), ', keys size =', len(parset_lines.keys()) =  parset_lines size = 3 , keys size = 3 [model_handling.py at line 741]  -DEBUG: 'pardef_lines size =', len(pardef_lines), ', keys size =', len(pardef_lines.keys()) =  pardef_lines size = 2 , keys size = 2 [model_handling.py at line 724]  -DEBUG: 'parset_pars size =', len(parset_pars) =  parset_pars size = 2 [model_handling.py at line 740]  -DEBUG: 'parset_lines size =', len(parset_lines), ', keys size =', len(parset_lines.keys()) =  parset_lines size = 2 , keys size = 2 [model_handling.py at line 741]  -DEBUG: 'pardef_lines size =', len(pardef_lines), ', keys size =', len(pardef_lines.keys()) =  pardef_lines size = 3 , keys size = 3 [model_handling.py at line 724]  -DEBUG: 'parset_pars size =', len(parset_pars) =  parset_pars size = 3 [model_handling.py at line 740]  -DEBUG: 'parset_lines size =', len(parset_lines), ', keys size =', len(parset_lines.keys()) =  parset_lines size = 3 , keys size = 3 [model_handling.py at line 741]  -DEBUG: 'pardef_lines size =', len(pardef_lines), ', keys size =', len(pardef_lines.keys()) =  pardef_lines size = 2 , keys size = 2 [model_handling.py at line 724]  -DEBUG: 'parset_pars size =', len(parset_pars) =  parset_pars size = 2 [model_handling.py at line 740]  -DEBUG: 'parset_lines size =', len(parset_lines), ', keys size =', len(parset_lines.keys()) =  parset_lines size = 2 , keys size = 2 [model_handling.py at line 741]  -DEBUG: 'pardef_lines size =', len(pardef_lines), ', keys size =', len(pardef_lines.keys()) =  pardef_lines size = 2 , keys size = 2 [model_handling.py at line 724]  -DEBUG: 'parset_pars size =', len(parset_pars) =  parset_pars size = 2 [model_handling.py at line 740]  -DEBUG: 'parset_lines size =', len(parset_lines), ', keys size =', len(parset_lines.keys()) =  parset_lines size = 2 , keys size = 2 [model_handling.py at line 741]  +DEBUG: 'pardef_lines size =', len(pardef_lines), ', keys size =', len(pardef_lines.keys()) =  pardef_lines size = 3 , keys size = 3 [model_handling.py at line 729]  +DEBUG: 'pardef_lines size =', len(pardef_lines), ', keys size =', len(pardef_lines.keys()) =  pardef_lines size = 2 , keys size = 2 [model_handling.py at line 729]  +DEBUG: 'pardef_lines size =', len(pardef_lines), ', keys size =', len(pardef_lines.keys()) =  pardef_lines size = 3 , keys size = 3 [model_handling.py at line 729]  +DEBUG: 'pardef_lines size =', len(pardef_lines), ', keys size =', len(pardef_lines.keys()) =  pardef_lines size = 2 , keys size = 2 [model_handling.py at line 729]  +DEBUG: 'pardef_lines size =', len(pardef_lines), ', keys size =', len(pardef_lines.keys()) =  pardef_lines size = 2 , keys size = 2 [model_handling.py at line 729]  FileWriter for /data/avalassi/GPU2023/MG5aMC/ghav-mg5amcnlo/CODEGEN_mad_gq_ttq/src/./Parameters_sm.h FileWriter for /data/avalassi/GPU2023/MG5aMC/ghav-mg5amcnlo/CODEGEN_mad_gq_ttq/src/./Parameters_sm.cc INFO: Created files Parameters_sm.h and Parameters_sm.cc in directory @@ -325,6 +313,6 @@ Type "launch" to generate events from this process, or see Run "open index.html" to see more information about this process. quit -real 0m1.861s -user 0m1.623s -sys 0m0.202s +real 0m1.810s +user 0m1.575s +sys 0m0.222s diff --git a/epochX/cudacpp/gq_ttq.mad/SubProcesses/Bridge.h b/epochX/cudacpp/gq_ttq.mad/SubProcesses/Bridge.h index 4cafe0c997..d7e629cacd 100644 --- a/epochX/cudacpp/gq_ttq.mad/SubProcesses/Bridge.h +++ b/epochX/cudacpp/gq_ttq.mad/SubProcesses/Bridge.h @@ -152,32 +152,32 @@ namespace mg5amcCpu #ifdef __CUDACC__ int m_gputhreads; // number of gpu threads (default set from number of events, can be modified) int m_gpublocks; // number of gpu blocks (default set from number of events, can be modified) - mg5amcGpu::DeviceBuffer m_devMomentaF; - mg5amcGpu::DeviceBufferMomenta m_devMomentaC; - mg5amcGpu::DeviceBufferGs m_devGs; - mg5amcGpu::DeviceBufferRndNumHelicity m_devRndHel; - mg5amcGpu::DeviceBufferRndNumColor m_devRndCol; - mg5amcGpu::DeviceBufferMatrixElements m_devMEs; - mg5amcGpu::DeviceBufferSelectedHelicity m_devSelHel; - mg5amcGpu::DeviceBufferSelectedColor m_devSelCol; - mg5amcGpu::PinnedHostBufferGs m_hstGs; - mg5amcGpu::PinnedHostBufferRndNumHelicity m_hstRndHel; - mg5amcGpu::PinnedHostBufferRndNumColor m_hstRndCol; - mg5amcGpu::PinnedHostBufferMatrixElements m_hstMEs; - mg5amcGpu::PinnedHostBufferSelectedHelicity m_hstSelHel; - mg5amcGpu::PinnedHostBufferSelectedColor m_hstSelCol; - std::unique_ptr m_pmek; + DeviceBuffer m_devMomentaF; + DeviceBufferMomenta m_devMomentaC; + DeviceBufferGs m_devGs; + DeviceBufferRndNumHelicity m_devRndHel; + DeviceBufferRndNumColor m_devRndCol; + DeviceBufferMatrixElements m_devMEs; + DeviceBufferSelectedHelicity m_devSelHel; + DeviceBufferSelectedColor m_devSelCol; + PinnedHostBufferGs m_hstGs; + PinnedHostBufferRndNumHelicity m_hstRndHel; + PinnedHostBufferRndNumColor m_hstRndCol; + PinnedHostBufferMatrixElements m_hstMEs; + PinnedHostBufferSelectedHelicity m_hstSelHel; + PinnedHostBufferSelectedColor m_hstSelCol; + std::unique_ptr m_pmek; //static constexpr int s_gputhreadsmin = 16; // minimum number of gpu threads (TEST VALUE FOR MADEVENT) static constexpr int s_gputhreadsmin = 32; // minimum number of gpu threads (DEFAULT) #else - mg5amcCpu::HostBufferMomenta m_hstMomentaC; - mg5amcCpu::HostBufferGs m_hstGs; - mg5amcCpu::HostBufferRndNumHelicity m_hstRndHel; - mg5amcCpu::HostBufferRndNumColor m_hstRndCol; - mg5amcCpu::HostBufferMatrixElements m_hstMEs; - mg5amcCpu::HostBufferSelectedHelicity m_hstSelHel; - mg5amcCpu::HostBufferSelectedColor m_hstSelCol; - std::unique_ptr m_pmek; + HostBufferMomenta m_hstMomentaC; + HostBufferGs m_hstGs; + HostBufferRndNumHelicity m_hstRndHel; + HostBufferRndNumColor m_hstRndCol; + HostBufferMatrixElements m_hstMEs; + HostBufferSelectedHelicity m_hstSelHel; + HostBufferSelectedColor m_hstSelCol; + std::unique_ptr m_pmek; #endif }; @@ -244,12 +244,12 @@ namespace mg5amcCpu } std::cout << "WARNING! Instantiate device Bridge (nevt=" << m_nevt << ", gpublocks=" << m_gpublocks << ", gputhreads=" << m_gputhreads << ", gpublocks*gputhreads=" << m_gpublocks * m_gputhreads << ")" << std::endl; - mg5amcGpu::CPPProcess process( /*verbose=*/false ); - m_pmek.reset( new mg5amcGpu::MatrixElementKernelDevice( m_devMomentaC, m_devGs, m_devRndHel, m_devRndCol, m_devMEs, m_devSelHel, m_devSelCol, m_gpublocks, m_gputhreads ) ); + CPPProcess process( /*verbose=*/false ); + m_pmek.reset( new MatrixElementKernelDevice( m_devMomentaC, m_devGs, m_devRndHel, m_devRndCol, m_devMEs, m_devSelHel, m_devSelCol, m_gpublocks, m_gputhreads ) ); #else std::cout << "WARNING! Instantiate host Bridge (nevt=" << m_nevt << ")" << std::endl; - mg5amcCpu::CPPProcess process( /*verbose=*/false ); - m_pmek.reset( new mg5amcCpu::MatrixElementKernelHost( m_hstMomentaC, m_hstGs, m_hstRndHel, m_hstRndCol, m_hstMEs, m_hstSelHel, m_hstSelCol, m_nevt ) ); + CPPProcess process( /*verbose=*/false ); + m_pmek.reset( new MatrixElementKernelHost( m_hstMomentaC, m_hstGs, m_hstRndHel, m_hstRndCol, m_hstMEs, m_hstSelHel, m_hstSelCol, m_nevt ) ); #endif // __CUDACC__ process.initProc( "../../Cards/param_card.dat" ); } diff --git a/epochX/cudacpp/gq_ttq.mad/SubProcesses/BridgeKernels.cc b/epochX/cudacpp/gq_ttq.mad/SubProcesses/BridgeKernels.cc index cef4cb3c71..d58066c9c1 100644 --- a/epochX/cudacpp/gq_ttq.mad/SubProcesses/BridgeKernels.cc +++ b/epochX/cudacpp/gq_ttq.mad/SubProcesses/BridgeKernels.cc @@ -9,9 +9,6 @@ #include -constexpr int np4 = CPPProcess::np4; // dimensions of 4-momenta (E,px,py,pz) -constexpr int npar = CPPProcess::npar; // #particles in total (external = initial + final): e.g. 4 for e+ e- -> mu+ mu- - //============================================================================ #ifdef __CUDACC__ @@ -20,6 +17,9 @@ namespace mg5amcGpu namespace mg5amcCpu #endif { + constexpr int np4 = CPPProcess::np4; // dimensions of 4-momenta (E,px,py,pz) + constexpr int npar = CPPProcess::npar; // #particles in total (external = initial + final): e.g. 4 for e+ e- -> mu+ mu- + //-------------------------------------------------------------------------- BridgeKernelBase::BridgeKernelBase( const BufferMomenta& momenta, // input: momenta diff --git a/epochX/cudacpp/gq_ttq.mad/SubProcesses/MemoryAccessAmplitudes.h b/epochX/cudacpp/gq_ttq.mad/SubProcesses/MemoryAccessAmplitudes.h index 68f6838b5c..573b3bbbc9 100644 --- a/epochX/cudacpp/gq_ttq.mad/SubProcesses/MemoryAccessAmplitudes.h +++ b/epochX/cudacpp/gq_ttq.mad/SubProcesses/MemoryAccessAmplitudes.h @@ -14,142 +14,151 @@ #define MGONGPU_TRIVIAL_AMPLITUDES 1 -//---------------------------------------------------------------------------- - -#ifndef MGONGPU_TRIVIAL_AMPLITUDES - -// A class describing the internal layout of memory buffers for amplitudes -// This implementation uses an AOSOA[npagA][nx2][neppA] where nevt=npagA*neppA -// [If many implementations are used, a suffix _AOSOAv1 should be appended to the class name] -class MemoryAccessAmplitudesBase //_AOSOAv1 +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { -public: - - // Number of Events Per Page in the amplitude AOSOA memory buffer layout - static constexpr int neppA = 1; // AOS (just a test...) + //---------------------------------------------------------------------------- -private: - - friend class MemoryAccessHelper; - friend class KernelAccessHelper; - friend class KernelAccessHelper; - - // The number of floating point components of a complex number - static constexpr int nx2 = mgOnGpu::nx2; - - //-------------------------------------------------------------------------- - // NB all KernelLaunchers assume that memory access can be decomposed as "accessField = decodeRecord( accessRecord )" - // (in other words: first locate the event record for a given event, then locate an element in that record) - //-------------------------------------------------------------------------- +#ifndef MGONGPU_TRIVIAL_AMPLITUDES - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] - static __host__ __device__ inline fptype* - ieventAccessRecord( fptype* buffer, - const int ievt ) + // A class describing the internal layout of memory buffers for amplitudes + // This implementation uses an AOSOA[npagA][nx2][neppA] where nevt=npagA*neppA + // [If many implementations are used, a suffix _AOSOAv1 should be appended to the class name] + class MemoryAccessAmplitudesBase //_AOSOAv1 { - const int ipagA = ievt / neppA; // #event "A-page" - const int ieppA = ievt % neppA; // #event in the current event A-page - constexpr int ix2 = 0; - return &( buffer[ipagA * nx2 * neppA + ix2 * neppA + ieppA] ); // AOSOA[ipagA][ix2][ieppA] - } - - //-------------------------------------------------------------------------- - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, Ts... args ) <===] - // [NB: expand variadic template "Ts... args" to "const int ix2" and rename "Field" as "Ix2"] - static __host__ __device__ inline fptype& - decodeRecord( fptype* buffer, - const int ix2 ) + public: + + // Number of Events Per Page in the amplitude AOSOA memory buffer layout + static constexpr int neppA = 1; // AOS (just a test...) + + private: + + friend class MemoryAccessHelper; + friend class KernelAccessHelper; + friend class KernelAccessHelper; + + // The number of floating point components of a complex number + static constexpr int nx2 = mgOnGpu::nx2; + + //-------------------------------------------------------------------------- + // NB all KernelLaunchers assume that memory access can be decomposed as "accessField = decodeRecord( accessRecord )" + // (in other words: first locate the event record for a given event, then locate an element in that record) + //-------------------------------------------------------------------------- + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] + static __host__ __device__ inline fptype* + ieventAccessRecord( fptype* buffer, + const int ievt ) + { + const int ipagA = ievt / neppA; // #event "A-page" + const int ieppA = ievt % neppA; // #event in the current event A-page + constexpr int ix2 = 0; + return &( buffer[ipagA * nx2 * neppA + ix2 * neppA + ieppA] ); // AOSOA[ipagA][ix2][ieppA] + } + + //-------------------------------------------------------------------------- + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, Ts... args ) <===] + // [NB: expand variadic template "Ts... args" to "const int ix2" and rename "Field" as "Ix2"] + static __host__ __device__ inline fptype& + decodeRecord( fptype* buffer, + const int ix2 ) + { + constexpr int ipagA = 0; + constexpr int ieppA = 0; + return buffer[ipagA * nx2 * neppA + ix2 * neppA + ieppA]; // AOSOA[ipagA][ix2][ieppA] + } + }; + + //---------------------------------------------------------------------------- + + // A class providing access to memory buffers for a given event, based on explicit event numbers + // Its methods use the MemoryAccessHelper templates - note the use of the template keyword in template function instantiations + class MemoryAccessAmplitudes : public MemoryAccessAmplitudesBase { - constexpr int ipagA = 0; - constexpr int ieppA = 0; - return buffer[ipagA * nx2 * neppA + ix2 * neppA + ieppA]; // AOSOA[ipagA][ix2][ieppA] - } -}; + public: -//---------------------------------------------------------------------------- + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] + static constexpr auto ieventAccessRecord = MemoryAccessHelper::ieventAccessRecord; -// A class providing access to memory buffers for a given event, based on explicit event numbers -// Its methods use the MemoryAccessHelper templates - note the use of the template keyword in template function instantiations -class MemoryAccessAmplitudes : public MemoryAccessAmplitudesBase -{ -public: - - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] - static constexpr auto ieventAccessRecord = MemoryAccessHelper::ieventAccessRecord; + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (const) ===> const fptype* ieventAccessRecordConst( const fptype* buffer, const int ievt ) <===] + static constexpr auto ieventAccessRecordConst = MemoryAccessHelper::ieventAccessRecordConst; - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (const) ===> const fptype* ieventAccessRecordConst( const fptype* buffer, const int ievt ) <===] - static constexpr auto ieventAccessRecordConst = MemoryAccessHelper::ieventAccessRecordConst; + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, const int ix2 ) <===] + static constexpr auto decodeRecordIx2 = MemoryAccessHelper::decodeRecord; - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, const int ix2 ) <===] - static constexpr auto decodeRecordIx2 = MemoryAccessHelper::decodeRecord; + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (const) ===> const fptype& decodeRecordConst( const fptype* buffer, const int ix2 ) <===] + static constexpr auto decodeRecordIx2Const = + MemoryAccessHelper::template decodeRecordConst; - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (const) ===> const fptype& decodeRecordConst( const fptype* buffer, const int ix2 ) <===] - static constexpr auto decodeRecordIx2Const = - MemoryAccessHelper::template decodeRecordConst; + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (non-const) ===> fptype& ieventAccessIx2( fptype* buffer, const ievt, const int ix2 ) <===] + static constexpr auto ieventAccessIx2 = + MemoryAccessHelper::template ieventAccessField; - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (non-const) ===> fptype& ieventAccessIx2( fptype* buffer, const ievt, const int ix2 ) <===] - static constexpr auto ieventAccessIx2 = - MemoryAccessHelper::template ieventAccessField; - - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (const) ===> const fptype& ieventAccessIx2Const( const fptype* buffer, const ievt, const int ix2 ) <===] - static constexpr auto ieventAccessIx2Const = - MemoryAccessHelper::template ieventAccessFieldConst; -}; + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (const) ===> const fptype& ieventAccessIx2Const( const fptype* buffer, const ievt, const int ix2 ) <===] + static constexpr auto ieventAccessIx2Const = + MemoryAccessHelper::template ieventAccessFieldConst; + }; #endif // #ifndef MGONGPU_TRIVIAL_AMPLITUDES -//---------------------------------------------------------------------------- + //---------------------------------------------------------------------------- -// A class providing access to memory buffers for a given event, based on implicit kernel rules -// Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations -template -class KernelAccessAmplitudes -{ -public: + // A class providing access to memory buffers for a given event, based on implicit kernel rules + // Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations + template + class KernelAccessAmplitudes + { + public: #ifndef MGONGPU_TRIVIAL_AMPLITUDES - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (non-const) ===> fptype& kernelAccessIx2( fptype* buffer, const int ix2 ) <===] - static constexpr auto kernelAccessIx2 = - KernelAccessHelper::template kernelAccessField; + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (non-const) ===> fptype& kernelAccessIx2( fptype* buffer, const int ix2 ) <===] + static constexpr auto kernelAccessIx2 = + KernelAccessHelper::template kernelAccessField; - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (const) ===> const fptype& kernelAccessIx2Const( const fptype* buffer, const int ix2 ) <===] - static constexpr auto kernelAccessIx2Const = - KernelAccessHelper::template kernelAccessFieldConst; + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (const) ===> const fptype& kernelAccessIx2Const( const fptype* buffer, const int ix2 ) <===] + static constexpr auto kernelAccessIx2Const = + KernelAccessHelper::template kernelAccessFieldConst; #else - static __host__ __device__ inline cxtype_sv* - kernelAccess( fptype* buffer ) - { - return reinterpret_cast( buffer ); - } + static __host__ __device__ inline cxtype_sv* + kernelAccess( fptype* buffer ) + { + return reinterpret_cast( buffer ); + } - static __host__ __device__ inline const cxtype_sv* - kernelAccessConst( const fptype* buffer ) - { - return reinterpret_cast( buffer ); - } + static __host__ __device__ inline const cxtype_sv* + kernelAccessConst( const fptype* buffer ) + { + return reinterpret_cast( buffer ); + } #endif // #ifndef MGONGPU_TRIVIAL_AMPLITUDES -}; + }; + + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- + typedef KernelAccessAmplitudes HostAccessAmplitudes; + typedef KernelAccessAmplitudes DeviceAccessAmplitudes; -typedef KernelAccessAmplitudes HostAccessAmplitudes; -typedef KernelAccessAmplitudes DeviceAccessAmplitudes; + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- +} // end namespace mg5amcGpu/mg5amcCpu #endif // MemoryAccessAmplitudes_H diff --git a/epochX/cudacpp/gq_ttq.mad/SubProcesses/MemoryAccessCouplings.h b/epochX/cudacpp/gq_ttq.mad/SubProcesses/MemoryAccessCouplings.h index 15793bbec3..35a3af42e0 100644 --- a/epochX/cudacpp/gq_ttq.mad/SubProcesses/MemoryAccessCouplings.h +++ b/epochX/cudacpp/gq_ttq.mad/SubProcesses/MemoryAccessCouplings.h @@ -14,248 +14,257 @@ #include "MemoryAccessMomenta.h" // for MemoryAccessMomentaBase::neppM #include "MemoryBuffers.h" // for HostBufferCouplings::isaligned -//---------------------------------------------------------------------------- - -// A class describing the internal layout of memory buffers for couplings -// This implementation uses an AOSOA[npagC][ndcoup][nx2][neppC] "super-buffer" where nevt=npagC*neppC -// From the "super-buffer" for ndcoup different couplings, use idcoupAccessBuffer to access the buffer for one specific coupling -// [If many implementations are used, a suffix _AOSOAv1 should be appended to the class name] -class MemoryAccessCouplingsBase //_AOSOAv1 +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { -public: - - // Number of Events Per Page in the coupling AOSOA memory buffer layout - static constexpr int neppC = MemoryAccessMomentaBase::neppM; // use the same AOSOA striding as for momenta - - // SANITY CHECK: check that neppC is a power of two - static_assert( ispoweroftwo( neppC ), "neppC is not a power of 2" ); - - //-------------------------------------------------------------------------- - // ** NB! A single super-buffer AOSOA[npagC][ndcoup][nx2][neppC] includes data for ndcoup different couplings ** - // ** NB! The ieventAccessRecord and kernelAccess functions refer to the buffer for one individual coupling ** - // ** NB! Use idcoupAccessBuffer to add a fixed offset and locate the buffer for one given individual coupling ** - //-------------------------------------------------------------------------- - - // Locate the buffer for a single coupling (output) in a memory super-buffer (input) from the given coupling index (input) - // [Signature (non-const) ===> fptype* idcoupAccessBuffer( fptype* buffer, const int idcoup ) <===] - // NB: keep this in public even if exposed through KernelAccessCouplings: nvcc says it is inaccesible otherwise? - static __host__ __device__ inline fptype* - idcoupAccessBuffer( fptype* buffer, // input "super-buffer" - const int idcoup ) - { - constexpr int ipagC = 0; - constexpr int ieppC = 0; - constexpr int ix2 = 0; - // NB! this effectively adds an offset "idcoup * nx2 * neppC" - return &( buffer[ipagC * ndcoup * nx2 * neppC + idcoup * nx2 * neppC + ix2 * neppC + ieppC] ); // AOSOA[ipagC][idcoup][ix2][ieppC] - } - - // Locate the buffer for a single coupling (output) in a memory super-buffer (input) from the given coupling index (input) - // [Signature (const) ===> const fptype* idcoupAccessBufferConst( const fptype* buffer, const int idcoup ) <===] - // NB: keep this in public even if exposed through KernelAccessCouplings: nvcc says it is inaccesible otherwise? - static __host__ __device__ inline const fptype* - idcoupAccessBufferConst( const fptype* buffer, // input "super-buffer" - const int idcoup ) - { - return idcoupAccessBuffer( const_cast( buffer ), idcoup ); - } - -private: + //---------------------------------------------------------------------------- - friend class MemoryAccessHelper; - friend class KernelAccessHelper; - friend class KernelAccessHelper; - - // The number of couplings that dependent on the running alphas QCD in this specific process - static constexpr size_t ndcoup = Parameters_sm_dependentCouplings::ndcoup; - - // The number of floating point components of a complex number - static constexpr int nx2 = mgOnGpu::nx2; - - //-------------------------------------------------------------------------- - // NB all KernelLaunchers assume that memory access can be decomposed as "accessField = decodeRecord( accessRecord )" - // (in other words: first locate the event record for a given event, then locate an element in that record) - //-------------------------------------------------------------------------- - - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] - static __host__ __device__ inline fptype* - ieventAccessRecord( fptype* buffer, - const int ievt ) + // A class describing the internal layout of memory buffers for couplings + // This implementation uses an AOSOA[npagC][ndcoup][nx2][neppC] "super-buffer" where nevt=npagC*neppC + // From the "super-buffer" for ndcoup different couplings, use idcoupAccessBuffer to access the buffer for one specific coupling + // [If many implementations are used, a suffix _AOSOAv1 should be appended to the class name] + class MemoryAccessCouplingsBase //_AOSOAv1 { - const int ipagC = ievt / neppC; // #event "C-page" - const int ieppC = ievt % neppC; // #event in the current event C-page - constexpr int idcoup = 0; - constexpr int ix2 = 0; - return &( buffer[ipagC * ndcoup * nx2 * neppC + idcoup * nx2 * neppC + ix2 * neppC + ieppC] ); // AOSOA[ipagC][idcoup][ix2][ieppC] - } - - //-------------------------------------------------------------------------- - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, Ts... args ) <===] - // [NB: expand variadic template "Ts... args" to "const int ix2" and rename "Field" as "Ix2"] - static __host__ __device__ inline fptype& - decodeRecord( fptype* buffer, - const int ix2 ) + public: + + // Number of Events Per Page in the coupling AOSOA memory buffer layout + static constexpr int neppC = MemoryAccessMomentaBase::neppM; // use the same AOSOA striding as for momenta + + // SANITY CHECK: check that neppC is a power of two + static_assert( ispoweroftwo( neppC ), "neppC is not a power of 2" ); + + //-------------------------------------------------------------------------- + // ** NB! A single super-buffer AOSOA[npagC][ndcoup][nx2][neppC] includes data for ndcoup different couplings ** + // ** NB! The ieventAccessRecord and kernelAccess functions refer to the buffer for one individual coupling ** + // ** NB! Use idcoupAccessBuffer to add a fixed offset and locate the buffer for one given individual coupling ** + //-------------------------------------------------------------------------- + + // Locate the buffer for a single coupling (output) in a memory super-buffer (input) from the given coupling index (input) + // [Signature (non-const) ===> fptype* idcoupAccessBuffer( fptype* buffer, const int idcoup ) <===] + // NB: keep this in public even if exposed through KernelAccessCouplings: nvcc says it is inaccesible otherwise? + static __host__ __device__ inline fptype* + idcoupAccessBuffer( fptype* buffer, // input "super-buffer" + const int idcoup ) + { + constexpr int ipagC = 0; + constexpr int ieppC = 0; + constexpr int ix2 = 0; + // NB! this effectively adds an offset "idcoup * nx2 * neppC" + return &( buffer[ipagC * ndcoup * nx2 * neppC + idcoup * nx2 * neppC + ix2 * neppC + ieppC] ); // AOSOA[ipagC][idcoup][ix2][ieppC] + } + + // Locate the buffer for a single coupling (output) in a memory super-buffer (input) from the given coupling index (input) + // [Signature (const) ===> const fptype* idcoupAccessBufferConst( const fptype* buffer, const int idcoup ) <===] + // NB: keep this in public even if exposed through KernelAccessCouplings: nvcc says it is inaccesible otherwise? + static __host__ __device__ inline const fptype* + idcoupAccessBufferConst( const fptype* buffer, // input "super-buffer" + const int idcoup ) + { + return idcoupAccessBuffer( const_cast( buffer ), idcoup ); + } + + private: + + friend class MemoryAccessHelper; + friend class KernelAccessHelper; + friend class KernelAccessHelper; + + // The number of couplings that dependent on the running alphas QCD in this specific process + static constexpr size_t ndcoup = Parameters_sm_dependentCouplings::ndcoup; + + // The number of floating point components of a complex number + static constexpr int nx2 = mgOnGpu::nx2; + + //-------------------------------------------------------------------------- + // NB all KernelLaunchers assume that memory access can be decomposed as "accessField = decodeRecord( accessRecord )" + // (in other words: first locate the event record for a given event, then locate an element in that record) + //-------------------------------------------------------------------------- + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] + static __host__ __device__ inline fptype* + ieventAccessRecord( fptype* buffer, + const int ievt ) + { + const int ipagC = ievt / neppC; // #event "C-page" + const int ieppC = ievt % neppC; // #event in the current event C-page + constexpr int idcoup = 0; + constexpr int ix2 = 0; + return &( buffer[ipagC * ndcoup * nx2 * neppC + idcoup * nx2 * neppC + ix2 * neppC + ieppC] ); // AOSOA[ipagC][idcoup][ix2][ieppC] + } + + //-------------------------------------------------------------------------- + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, Ts... args ) <===] + // [NB: expand variadic template "Ts... args" to "const int ix2" and rename "Field" as "Ix2"] + static __host__ __device__ inline fptype& + decodeRecord( fptype* buffer, + const int ix2 ) + { + constexpr int ipagC = 0; + constexpr int ieppC = 0; + // NB! the offset "idcoup * nx2 * neppC" has been added in idcoupAccessBuffer + constexpr int idcoup = 0; + return buffer[ipagC * ndcoup * nx2 * neppC + idcoup * nx2 * neppC + ix2 * neppC + ieppC]; // AOSOA[ipagC][idcoup][ix2][ieppC] + } + }; + + //---------------------------------------------------------------------------- + + // A class providing access to memory buffers for a given event, based on explicit event numbers + // Its methods use the MemoryAccessHelper templates - note the use of the template keyword in template function instantiations + class MemoryAccessCouplings : public MemoryAccessCouplingsBase { - constexpr int ipagC = 0; - constexpr int ieppC = 0; - // NB! the offset "idcoup * nx2 * neppC" has been added in idcoupAccessBuffer - constexpr int idcoup = 0; - return buffer[ipagC * ndcoup * nx2 * neppC + idcoup * nx2 * neppC + ix2 * neppC + ieppC]; // AOSOA[ipagC][idcoup][ix2][ieppC] - } -}; - -//---------------------------------------------------------------------------- - -// A class providing access to memory buffers for a given event, based on explicit event numbers -// Its methods use the MemoryAccessHelper templates - note the use of the template keyword in template function instantiations -class MemoryAccessCouplings : public MemoryAccessCouplingsBase -{ -public: - - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] - static constexpr auto ieventAccessRecord = MemoryAccessHelper::ieventAccessRecord; - - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (const) ===> const fptype* ieventAccessRecordConst( const fptype* buffer, const int ievt ) <===] - static constexpr auto ieventAccessRecordConst = MemoryAccessHelper::ieventAccessRecordConst; - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, const int ix2 ) <===] - static constexpr auto decodeRecordIx2 = MemoryAccessHelper::decodeRecord; - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (const) ===> const fptype& decodeRecordConst( const fptype* buffer, const int ix2 ) <===] - static constexpr auto decodeRecordIx2Const = - MemoryAccessHelper::template decodeRecordConst; - - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (non-const) ===> fptype& ieventAccessIx2( fptype* buffer, const ievt, const int ix2 ) <===] - static constexpr auto ieventAccessIx2 = - MemoryAccessHelper::template ieventAccessField; - - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (const) ===> const fptype& ieventAccessIx2Const( const fptype* buffer, const ievt, const int ix2 ) <===] - static constexpr auto ieventAccessIx2Const = - MemoryAccessHelper::template ieventAccessFieldConst; -}; - -//---------------------------------------------------------------------------- - -// A class providing access to memory buffers for a given event, based on implicit kernel rules -// Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations -template -class KernelAccessCouplings -{ -public: - - // Expose selected functions from MemoryAccessCouplingsBase - static constexpr auto idcoupAccessBuffer = MemoryAccessCouplingsBase::idcoupAccessBuffer; - static constexpr auto idcoupAccessBufferConst = MemoryAccessCouplingsBase::idcoupAccessBufferConst; - - // Expose selected functions from MemoryAccessCouplings - static constexpr auto ieventAccessRecordConst = MemoryAccessCouplings::ieventAccessRecordConst; - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (non-const, SCALAR) ===> fptype& kernelAccessIx2( fptype* buffer, const int ix2 ) <===] - static constexpr auto kernelAccessIx2_s = - KernelAccessHelper::template kernelAccessField; - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (const, SCALAR) ===> const fptype& kernelAccessIx2Const( const fptype* buffer, const int ix2 ) <===] - static constexpr auto kernelAccessIx2Const_s = - KernelAccessHelper::template kernelAccessFieldConst; - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (non const, SCALAR OR VECTOR) ===> fptype_sv& kernelAccessIx2( fptype* buffer, const int ix2 ) <===] - static __host__ __device__ inline fptype_sv& - kernelAccessIx2( fptype* buffer, - const int ix2 ) + public: + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] + static constexpr auto ieventAccessRecord = MemoryAccessHelper::ieventAccessRecord; + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (const) ===> const fptype* ieventAccessRecordConst( const fptype* buffer, const int ievt ) <===] + static constexpr auto ieventAccessRecordConst = MemoryAccessHelper::ieventAccessRecordConst; + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, const int ix2 ) <===] + static constexpr auto decodeRecordIx2 = MemoryAccessHelper::decodeRecord; + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (const) ===> const fptype& decodeRecordConst( const fptype* buffer, const int ix2 ) <===] + static constexpr auto decodeRecordIx2Const = + MemoryAccessHelper::template decodeRecordConst; + + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (non-const) ===> fptype& ieventAccessIx2( fptype* buffer, const ievt, const int ix2 ) <===] + static constexpr auto ieventAccessIx2 = + MemoryAccessHelper::template ieventAccessField; + + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (const) ===> const fptype& ieventAccessIx2Const( const fptype* buffer, const ievt, const int ix2 ) <===] + static constexpr auto ieventAccessIx2Const = + MemoryAccessHelper::template ieventAccessFieldConst; + }; + + //---------------------------------------------------------------------------- + + // A class providing access to memory buffers for a given event, based on implicit kernel rules + // Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations + template + class KernelAccessCouplings { - fptype& out = kernelAccessIx2_s( buffer, ix2 ); + public: + + // Expose selected functions from MemoryAccessCouplingsBase + static constexpr auto idcoupAccessBuffer = MemoryAccessCouplingsBase::idcoupAccessBuffer; + static constexpr auto idcoupAccessBufferConst = MemoryAccessCouplingsBase::idcoupAccessBufferConst; + + // Expose selected functions from MemoryAccessCouplings + static constexpr auto ieventAccessRecordConst = MemoryAccessCouplings::ieventAccessRecordConst; + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (non-const, SCALAR) ===> fptype& kernelAccessIx2( fptype* buffer, const int ix2 ) <===] + static constexpr auto kernelAccessIx2_s = + KernelAccessHelper::template kernelAccessField; + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (const, SCALAR) ===> const fptype& kernelAccessIx2Const( const fptype* buffer, const int ix2 ) <===] + static constexpr auto kernelAccessIx2Const_s = + KernelAccessHelper::template kernelAccessFieldConst; + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (non const, SCALAR OR VECTOR) ===> fptype_sv& kernelAccessIx2( fptype* buffer, const int ix2 ) <===] + static __host__ __device__ inline fptype_sv& + kernelAccessIx2( fptype* buffer, + const int ix2 ) + { + fptype& out = kernelAccessIx2_s( buffer, ix2 ); #ifndef MGONGPU_CPPSIMD - return out; + return out; #else - // NB: derived from MemoryAccessMomenta, restricting the implementation to contiguous aligned arrays - constexpr int neppC = MemoryAccessCouplingsBase::neppC; - static_assert( neppC >= neppV ); // ASSUME CONTIGUOUS ARRAYS - static_assert( neppC % neppV == 0 ); // ASSUME CONTIGUOUS ARRAYS - static_assert( mg5amcCpu::HostBufferCouplings::isaligned() ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) - //assert( (size_t)( buffer ) % mgOnGpu::cppAlign == 0 ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) - return mg5amcCpu::fptypevFromAlignedArray( out ); // SIMD bulk load of neppV, use reinterpret_cast + // NB: derived from MemoryAccessMomenta, restricting the implementation to contiguous aligned arrays + constexpr int neppC = MemoryAccessCouplingsBase::neppC; + static_assert( neppC >= neppV ); // ASSUME CONTIGUOUS ARRAYS + static_assert( neppC % neppV == 0 ); // ASSUME CONTIGUOUS ARRAYS + static_assert( mg5amcCpu::HostBufferCouplings::isaligned() ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) + //assert( (size_t)( buffer ) % mgOnGpu::cppAlign == 0 ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) + return mg5amcCpu::fptypevFromAlignedArray( out ); // SIMD bulk load of neppV, use reinterpret_cast #endif - } + } - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (const, SCALAR OR VECTOR) ===> const fptype_sv& kernelAccessIx2Const( const fptype* buffer, const int ix2 ) <===] - static __host__ __device__ inline const fptype_sv& - kernelAccessIx2Const( const fptype* buffer, - const int ix2 ) - { - return kernelAccessIx2( const_cast( buffer ), ix2 ); - } - - /* - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (const, SCALAR OR VECTOR) ===> const fptype_sv& kernelAccessIx2Const( const fptype* buffer, const int ix2 ) <===] - static __host__ __device__ inline const fptype_sv& - kernelAccessIx2Const( const fptype* buffer, - const int ix2 ) - { - const fptype& out = kernelAccessIx2Const_s( buffer, ix2 ); + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (const, SCALAR OR VECTOR) ===> const fptype_sv& kernelAccessIx2Const( const fptype* buffer, const int ix2 ) <===] + static __host__ __device__ inline const fptype_sv& + kernelAccessIx2Const( const fptype* buffer, + const int ix2 ) + { + return kernelAccessIx2( const_cast( buffer ), ix2 ); + } + + /* + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (const, SCALAR OR VECTOR) ===> const fptype_sv& kernelAccessIx2Const( const fptype* buffer, const int ix2 ) <===] + static __host__ __device__ inline const fptype_sv& + kernelAccessIx2Const( const fptype* buffer, + const int ix2 ) + { + const fptype& out = kernelAccessIx2Const_s( buffer, ix2 ); #ifndef MGONGPU_CPPSIMD - return out; + return out; #else - // NB: derived from MemoryAccessMomenta, restricting the implementation to contiguous aligned arrays - constexpr int neppC = MemoryAccessCouplingsBase::neppC; - static_assert( neppC >= neppV ); // ASSUME CONTIGUOUS ARRAYS - static_assert( neppC % neppV == 0 ); // ASSUME CONTIGUOUS ARRAYS - static_assert( mg5amcCpu::HostBufferCouplings::isaligned() ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) - //assert( (size_t)( buffer ) % mgOnGpu::cppAlign == 0 ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) - return mg5amcCpu::fptypevFromAlignedArray( out ); // SIMD bulk load of neppV, use reinterpret_cast + // NB: derived from MemoryAccessMomenta, restricting the implementation to contiguous aligned arrays + constexpr int neppC = MemoryAccessCouplingsBase::neppC; + static_assert( neppC >= neppV ); // ASSUME CONTIGUOUS ARRAYS + static_assert( neppC % neppV == 0 ); // ASSUME CONTIGUOUS ARRAYS + static_assert( mg5amcCpu::HostBufferCouplings::isaligned() ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) + //assert( (size_t)( buffer ) % mgOnGpu::cppAlign == 0 ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) + return mg5amcCpu::fptypevFromAlignedArray( out ); // SIMD bulk load of neppV, use reinterpret_cast #endif - } - */ - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (non const, SCALAR OR VECTOR) ===> cxtype_sv_ref kernelAccess( fptype* buffer ) <===] - static __host__ __device__ inline cxtype_sv_ref - kernelAccess( fptype* buffer ) - { - /* - fptype_sv& real = kernelAccessIx2( buffer, 0 ); - fptype_sv& imag = kernelAccessIx2( buffer, 1 ); - printf( "C_ACCESS::kernelAccess: pbuffer=%p pr=%p pi=%p\n", buffer, &real, &imag ); - return cxtype_sv_ref( real, imag ); - */ - return cxtype_sv_ref( kernelAccessIx2( buffer, 0 ), - kernelAccessIx2( buffer, 1 ) ); - } - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (const, SCALAR OR VECTOR) ===> cxtype_sv kernelAccessConst( const fptype* buffer ) <===] - static __host__ __device__ inline cxtype_sv - kernelAccessConst( const fptype* buffer ) - { - /* - const fptype_sv& real = kernelAccessIx2Const( buffer, 0 ); - const fptype_sv& imag = kernelAccessIx2Const( buffer, 1 ); - printf( "C_ACCESS::kernelAccessConst: pbuffer=%p pr=%p pi=%p\n", buffer, &real, &imag ); - return cxtype_sv( real, imag ); + } */ - return cxtype_sv( kernelAccessIx2Const( buffer, 0 ), - kernelAccessIx2Const( buffer, 1 ) ); - } -}; - -//---------------------------------------------------------------------------- - -typedef KernelAccessCouplings HostAccessCouplings; -typedef KernelAccessCouplings DeviceAccessCouplings; -//---------------------------------------------------------------------------- + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (non const, SCALAR OR VECTOR) ===> cxtype_sv_ref kernelAccess( fptype* buffer ) <===] + static __host__ __device__ inline cxtype_sv_ref + kernelAccess( fptype* buffer ) + { + /* + fptype_sv& real = kernelAccessIx2( buffer, 0 ); + fptype_sv& imag = kernelAccessIx2( buffer, 1 ); + printf( "C_ACCESS::kernelAccess: pbuffer=%p pr=%p pi=%p\n", buffer, &real, &imag ); + return cxtype_sv_ref( real, imag ); + */ + return cxtype_sv_ref( kernelAccessIx2( buffer, 0 ), + kernelAccessIx2( buffer, 1 ) ); + } + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (const, SCALAR OR VECTOR) ===> cxtype_sv kernelAccessConst( const fptype* buffer ) <===] + static __host__ __device__ inline cxtype_sv + kernelAccessConst( const fptype* buffer ) + { + /* + const fptype_sv& real = kernelAccessIx2Const( buffer, 0 ); + const fptype_sv& imag = kernelAccessIx2Const( buffer, 1 ); + printf( "C_ACCESS::kernelAccessConst: pbuffer=%p pr=%p pi=%p\n", buffer, &real, &imag ); + return cxtype_sv( real, imag ); + */ + return cxtype_sv( kernelAccessIx2Const( buffer, 0 ), + kernelAccessIx2Const( buffer, 1 ) ); + } + }; + + //---------------------------------------------------------------------------- + + typedef KernelAccessCouplings HostAccessCouplings; + typedef KernelAccessCouplings DeviceAccessCouplings; + + //---------------------------------------------------------------------------- + +} // end namespace mg5amcGpu/mg5amcCpu #endif // MemoryAccessCouplings_H diff --git a/epochX/cudacpp/gq_ttq.mad/SubProcesses/MemoryAccessCouplingsFixed.h b/epochX/cudacpp/gq_ttq.mad/SubProcesses/MemoryAccessCouplingsFixed.h index 81193ab261..dc0d93afff 100644 --- a/epochX/cudacpp/gq_ttq.mad/SubProcesses/MemoryAccessCouplingsFixed.h +++ b/epochX/cudacpp/gq_ttq.mad/SubProcesses/MemoryAccessCouplingsFixed.h @@ -13,63 +13,72 @@ //#include "MemoryAccessHelpers.h" -//---------------------------------------------------------------------------- - -// A class describing the internal layout of memory buffers for fixed couplings -// This implementation uses a STRUCT[ndcoup][nx2] "super-buffer" layout: in practice, the cIPC global array -// From the "super-buffer" for ndcoup different couplings, use idcoupAccessBuffer to access the buffer for one specific coupling -// [If many implementations are used, a suffix _Sv1 should be appended to the class name] -class MemoryAccessCouplingsFixedBase //_Sv1 +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { -public: + //---------------------------------------------------------------------------- - // Locate the buffer for a single coupling (output) in a memory super-buffer (input) from the given coupling index (input) - // [Signature (const) ===> const fptype* iicoupAccessBufferConst( const fptype* buffer, const int iicoup ) <===] - static __host__ __device__ inline const fptype* - iicoupAccessBufferConst( const fptype* buffer, // input "super-buffer": in practice, the cIPC global array - const int iicoup ) + // A class describing the internal layout of memory buffers for fixed couplings + // This implementation uses a STRUCT[ndcoup][nx2] "super-buffer" layout: in practice, the cIPC global array + // From the "super-buffer" for ndcoup different couplings, use idcoupAccessBuffer to access the buffer for one specific coupling + // [If many implementations are used, a suffix _Sv1 should be appended to the class name] + class MemoryAccessCouplingsFixedBase //_Sv1 { - constexpr int ix2 = 0; - // NB! this effectively adds an offset "iicoup * nx2" - return &( buffer[iicoup * nx2 + ix2] ); // STRUCT[idcoup][ix2] - } - -private: - - // The number of floating point components of a complex number - static constexpr int nx2 = mgOnGpu::nx2; -}; - -//---------------------------------------------------------------------------- + public: + + // Locate the buffer for a single coupling (output) in a memory super-buffer (input) from the given coupling index (input) + // [Signature (const) ===> const fptype* iicoupAccessBufferConst( const fptype* buffer, const int iicoup ) <===] + static __host__ __device__ inline const fptype* + iicoupAccessBufferConst( const fptype* buffer, // input "super-buffer": in practice, the cIPC global array + const int iicoup ) + { + constexpr int ix2 = 0; + // NB! this effectively adds an offset "iicoup * nx2" + return &( buffer[iicoup * nx2 + ix2] ); // STRUCT[idcoup][ix2] + } + + private: + + // The number of floating point components of a complex number + static constexpr int nx2 = mgOnGpu::nx2; + }; + + //---------------------------------------------------------------------------- + + // A class providing access to memory buffers for a given event, based on implicit kernel rules + // Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations + template + class KernelAccessCouplingsFixed + { + public: -// A class providing access to memory buffers for a given event, based on implicit kernel rules -// Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations -template -class KernelAccessCouplingsFixed -{ -public: + // Expose selected functions from MemoryAccessCouplingsFixedBase + static constexpr auto iicoupAccessBufferConst = MemoryAccessCouplingsFixedBase::iicoupAccessBufferConst; - // Expose selected functions from MemoryAccessCouplingsFixedBase - static constexpr auto iicoupAccessBufferConst = MemoryAccessCouplingsFixedBase::iicoupAccessBufferConst; + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (const, SCALAR OR VECTOR) ===> cxtype_sv kernelAccessConst( const fptype* buffer ) <===] + static __host__ __device__ inline const cxtype_sv + kernelAccessConst( const fptype* buffer ) + { + // TRIVIAL ACCESS to fixed-couplings buffers! + //return cxmake( fptype_sv{ buffer[0] }, fptype_sv{ buffer[1] } ); // NO! BUG #339! + const fptype_sv r_sv = fptype_sv{ 0 } + buffer[0]; + const fptype_sv i_sv = fptype_sv{ 0 } + buffer[1]; + return cxmake( r_sv, i_sv ); // ugly but effective + } + }; - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (const, SCALAR OR VECTOR) ===> cxtype_sv kernelAccessConst( const fptype* buffer ) <===] - static __host__ __device__ inline const cxtype_sv - kernelAccessConst( const fptype* buffer ) - { - // TRIVIAL ACCESS to fixed-couplings buffers! - //return cxmake( fptype_sv{ buffer[0] }, fptype_sv{ buffer[1] } ); // NO! BUG #339! - const fptype_sv r_sv = fptype_sv{ 0 } + buffer[0]; - const fptype_sv i_sv = fptype_sv{ 0 } + buffer[1]; - return cxmake( r_sv, i_sv ); // ugly but effective - } -}; + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- + typedef KernelAccessCouplingsFixed HostAccessCouplingsFixed; + typedef KernelAccessCouplingsFixed DeviceAccessCouplingsFixed; -typedef KernelAccessCouplingsFixed HostAccessCouplingsFixed; -typedef KernelAccessCouplingsFixed DeviceAccessCouplingsFixed; + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- +} // end namespace mg5amcGpu/mg5amcCpu #endif // MemoryAccessCouplingsFixed_H diff --git a/epochX/cudacpp/gq_ttq.mad/SubProcesses/MemoryAccessDenominators.h b/epochX/cudacpp/gq_ttq.mad/SubProcesses/MemoryAccessDenominators.h index e76ae65ff9..3bce635718 100644 --- a/epochX/cudacpp/gq_ttq.mad/SubProcesses/MemoryAccessDenominators.h +++ b/epochX/cudacpp/gq_ttq.mad/SubProcesses/MemoryAccessDenominators.h @@ -9,15 +9,24 @@ #include "MemoryAccessGs.h" -//---------------------------------------------------------------------------- +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif +{ + //---------------------------------------------------------------------------- + + // A class describing the internal layout of memory buffers for denominators + // This implementation reuses the plain ARRAY[nevt] implementation of MemoryAccessGs -// A class describing the internal layout of memory buffers for denominators -// This implementation reuses the plain ARRAY[nevt] implementation of MemoryAccessGs + typedef KernelAccessGs HostAccessDenominators; + typedef KernelAccessGs DeviceAccessDenominators; -typedef KernelAccessGs HostAccessDenominators; -typedef KernelAccessGs DeviceAccessDenominators; + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- +} // end namespace mg5amcGpu/mg5amcCpu #endif #endif // MemoryAccessDenominators_H diff --git a/epochX/cudacpp/gq_ttq.mad/SubProcesses/MemoryAccessGs.h b/epochX/cudacpp/gq_ttq.mad/SubProcesses/MemoryAccessGs.h index 8996c0554c..31311aa375 100644 --- a/epochX/cudacpp/gq_ttq.mad/SubProcesses/MemoryAccessGs.h +++ b/epochX/cudacpp/gq_ttq.mad/SubProcesses/MemoryAccessGs.h @@ -12,142 +12,151 @@ #include "MemoryAccessVectors.h" #include "MemoryBuffers.h" // for HostBufferMatrixElements::isaligned -//---------------------------------------------------------------------------- - -// A class describing the internal layout of memory buffers for Gs -// This implementation uses a plain ARRAY[nevt] -// [If many implementations are used, a suffix _ARRAYv1 should be appended to the class name] -class MemoryAccessGsBase //_ARRAYv1 +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { -private: - - friend class MemoryAccessHelper; - friend class KernelAccessHelper; - friend class KernelAccessHelper; - - //-------------------------------------------------------------------------- - // NB all KernelLaunchers assume that memory access can be decomposed as "accessField = decodeRecord( accessRecord )" - // (in other words: first locate the event record for a given event, then locate an element in that record) - //-------------------------------------------------------------------------- - - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] - static __host__ __device__ inline fptype* - ieventAccessRecord( fptype* buffer, - const int ievt ) - { - return &( buffer[ievt] ); // ARRAY[nevt] - } - - //-------------------------------------------------------------------------- + //---------------------------------------------------------------------------- - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, Ts... args ) <===] - // [NB: expand variadic template "Ts... args" to empty and rename "Field" as empty] - static __host__ __device__ inline fptype& - decodeRecord( fptype* buffer ) + // A class describing the internal layout of memory buffers for Gs + // This implementation uses a plain ARRAY[nevt] + // [If many implementations are used, a suffix _ARRAYv1 should be appended to the class name] + class MemoryAccessGsBase //_ARRAYv1 { - constexpr int ievt = 0; - return buffer[ievt]; // ARRAY[nevt] - } -}; - -//---------------------------------------------------------------------------- - -// A class providing access to memory buffers for a given event, based on explicit event numbers -// Its methods use the MemoryAccessHelper templates - note the use of the template keyword in template function instantiations -class MemoryAccessGs : public MemoryAccessGsBase -{ -public: - - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] - static constexpr auto ieventAccessRecord = MemoryAccessHelper::ieventAccessRecord; - - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (const) ===> const fptype* ieventAccessRecordConst( const fptype* buffer, const int ievt ) <===] - static constexpr auto ieventAccessRecordConst = MemoryAccessHelper::ieventAccessRecordConst; - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer ) <===] - static constexpr auto decodeRecord = MemoryAccessHelper::decodeRecord; - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (const) ===> const fptype& decodeRecordConst( const fptype* buffer ) <===] - static constexpr auto decodeRecordConst = - MemoryAccessHelper::template decodeRecordConst<>; - - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (non-const) ===> fptype& ieventAccess( fptype* buffer, const ievt ) <===] - static constexpr auto ieventAccess = - MemoryAccessHelper::template ieventAccessField<>; - - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (const) ===> const fptype& ieventAccessConst( const fptype* buffer, const ievt ) <===] - static constexpr auto ieventAccessConst = - MemoryAccessHelper::template ieventAccessFieldConst<>; -}; - -//---------------------------------------------------------------------------- - -// A class providing access to memory buffers for a given event, based on implicit kernel rules -// Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations -template -class KernelAccessGs -{ -public: - - // Expose selected functions from MemoryAccessGs - static constexpr auto ieventAccessRecord = MemoryAccessGs::ieventAccessRecord; - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (non-const, SCALAR) ===> fptype& kernelAccess( fptype* buffer ) <===] - static constexpr auto kernelAccess_s = - KernelAccessHelper::template kernelAccessField<>; // requires cuda 11.4 - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) - // [Signature (non-const, SCALAR OR VECTOR) ===> fptype_sv& kernelAccess( fptype* buffer ) <===] - static __host__ __device__ inline fptype_sv& - kernelAccess( fptype* buffer ) + private: + + friend class MemoryAccessHelper; + friend class KernelAccessHelper; + friend class KernelAccessHelper; + + //-------------------------------------------------------------------------- + // NB all KernelLaunchers assume that memory access can be decomposed as "accessField = decodeRecord( accessRecord )" + // (in other words: first locate the event record for a given event, then locate an element in that record) + //-------------------------------------------------------------------------- + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] + static __host__ __device__ inline fptype* + ieventAccessRecord( fptype* buffer, + const int ievt ) + { + return &( buffer[ievt] ); // ARRAY[nevt] + } + + //-------------------------------------------------------------------------- + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, Ts... args ) <===] + // [NB: expand variadic template "Ts... args" to empty and rename "Field" as empty] + static __host__ __device__ inline fptype& + decodeRecord( fptype* buffer ) + { + constexpr int ievt = 0; + return buffer[ievt]; // ARRAY[nevt] + } + }; + + //---------------------------------------------------------------------------- + + // A class providing access to memory buffers for a given event, based on explicit event numbers + // Its methods use the MemoryAccessHelper templates - note the use of the template keyword in template function instantiations + class MemoryAccessGs : public MemoryAccessGsBase + { + public: + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] + static constexpr auto ieventAccessRecord = MemoryAccessHelper::ieventAccessRecord; + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (const) ===> const fptype* ieventAccessRecordConst( const fptype* buffer, const int ievt ) <===] + static constexpr auto ieventAccessRecordConst = MemoryAccessHelper::ieventAccessRecordConst; + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer ) <===] + static constexpr auto decodeRecord = MemoryAccessHelper::decodeRecord; + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (const) ===> const fptype& decodeRecordConst( const fptype* buffer ) <===] + static constexpr auto decodeRecordConst = + MemoryAccessHelper::template decodeRecordConst<>; + + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (non-const) ===> fptype& ieventAccess( fptype* buffer, const ievt ) <===] + static constexpr auto ieventAccess = + MemoryAccessHelper::template ieventAccessField<>; + + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (const) ===> const fptype& ieventAccessConst( const fptype* buffer, const ievt ) <===] + static constexpr auto ieventAccessConst = + MemoryAccessHelper::template ieventAccessFieldConst<>; + }; + + //---------------------------------------------------------------------------- + + // A class providing access to memory buffers for a given event, based on implicit kernel rules + // Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations + template + class KernelAccessGs { - fptype& out = kernelAccess_s( buffer ); + public: + + // Expose selected functions from MemoryAccessGs + static constexpr auto ieventAccessRecord = MemoryAccessGs::ieventAccessRecord; + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (non-const, SCALAR) ===> fptype& kernelAccess( fptype* buffer ) <===] + static constexpr auto kernelAccess_s = + KernelAccessHelper::template kernelAccessField<>; // requires cuda 11.4 + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) + // [Signature (non-const, SCALAR OR VECTOR) ===> fptype_sv& kernelAccess( fptype* buffer ) <===] + static __host__ __device__ inline fptype_sv& + kernelAccess( fptype* buffer ) + { + fptype& out = kernelAccess_s( buffer ); #ifndef MGONGPU_CPPSIMD - return out; + return out; #else - // NB: derived from MemoryAccessMomenta, restricting the implementation to contiguous aligned arrays (#435) - static_assert( mg5amcCpu::HostBufferGs::isaligned() ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) - //assert( (size_t)( buffer ) % mgOnGpu::cppAlign == 0 ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) - return mg5amcCpu::fptypevFromAlignedArray( out ); // SIMD bulk load of neppV, use reinterpret_cast + // NB: derived from MemoryAccessMomenta, restricting the implementation to contiguous aligned arrays (#435) + static_assert( mg5amcCpu::HostBufferGs::isaligned() ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) + //assert( (size_t)( buffer ) % mgOnGpu::cppAlign == 0 ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) + return mg5amcCpu::fptypevFromAlignedArray( out ); // SIMD bulk load of neppV, use reinterpret_cast #endif - } - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (const, SCALAR) ===> const fptype& kernelAccessConst( const fptype* buffer ) <===] - static constexpr auto kernelAccessConst_s = - KernelAccessHelper::template kernelAccessFieldConst<>; // requires cuda 11.4 - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) - // [Signature (const, SCALAR OR VECTOR) ===> const fptype_sv& kernelAccess( const fptype* buffer ) <===] - static __host__ __device__ inline const fptype_sv& - kernelAccessConst( const fptype* buffer ) - { - const fptype& out = kernelAccessConst_s( buffer ); + } + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (const, SCALAR) ===> const fptype& kernelAccessConst( const fptype* buffer ) <===] + static constexpr auto kernelAccessConst_s = + KernelAccessHelper::template kernelAccessFieldConst<>; // requires cuda 11.4 + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) + // [Signature (const, SCALAR OR VECTOR) ===> const fptype_sv& kernelAccess( const fptype* buffer ) <===] + static __host__ __device__ inline const fptype_sv& + kernelAccessConst( const fptype* buffer ) + { + const fptype& out = kernelAccessConst_s( buffer ); #ifndef MGONGPU_CPPSIMD - return out; + return out; #else - // NB: derived from MemoryAccessMomenta, restricting the implementation to contiguous aligned arrays (#435) - static_assert( mg5amcCpu::HostBufferGs::isaligned() ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) - //assert( (size_t)( buffer ) % mgOnGpu::cppAlign == 0 ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) - return mg5amcCpu::fptypevFromAlignedArray( out ); // SIMD bulk load of neppV, use reinterpret_cast + // NB: derived from MemoryAccessMomenta, restricting the implementation to contiguous aligned arrays (#435) + static_assert( mg5amcCpu::HostBufferGs::isaligned() ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) + //assert( (size_t)( buffer ) % mgOnGpu::cppAlign == 0 ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) + return mg5amcCpu::fptypevFromAlignedArray( out ); // SIMD bulk load of neppV, use reinterpret_cast #endif - } -}; + } + }; + + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- + typedef KernelAccessGs HostAccessGs; + typedef KernelAccessGs DeviceAccessGs; -typedef KernelAccessGs HostAccessGs; -typedef KernelAccessGs DeviceAccessGs; + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- +} // end namespace mg5amcGpu/mg5amcCpu #endif // MemoryAccessGs_H diff --git a/epochX/cudacpp/gq_ttq.mad/SubProcesses/MemoryAccessMatrixElements.h b/epochX/cudacpp/gq_ttq.mad/SubProcesses/MemoryAccessMatrixElements.h index b2a82d9acf..f32e6fea5b 100644 --- a/epochX/cudacpp/gq_ttq.mad/SubProcesses/MemoryAccessMatrixElements.h +++ b/epochX/cudacpp/gq_ttq.mad/SubProcesses/MemoryAccessMatrixElements.h @@ -12,126 +12,135 @@ #include "MemoryAccessVectors.h" #include "MemoryBuffers.h" // for HostBufferMatrixElements::isaligned -//---------------------------------------------------------------------------- - -// A class describing the internal layout of memory buffers for matrix elements -// This implementation uses a plain ARRAY[nevt] -// [If many implementations are used, a suffix _ARRAYv1 should be appended to the class name] -class MemoryAccessMatrixElementsBase //_ARRAYv1 +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { -private: - - friend class MemoryAccessHelper; - friend class KernelAccessHelper; - friend class KernelAccessHelper; - - //-------------------------------------------------------------------------- - // NB all KernelLaunchers assume that memory access can be decomposed as "accessField = decodeRecord( accessRecord )" - // (in other words: first locate the event record for a given event, then locate an element in that record) - //-------------------------------------------------------------------------- - - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] - static __host__ __device__ inline fptype* - ieventAccessRecord( fptype* buffer, - const int ievt ) - { - return &( buffer[ievt] ); // ARRAY[nevt] - } + //---------------------------------------------------------------------------- - //-------------------------------------------------------------------------- - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, Ts... args ) <===] - // [NB: expand variadic template "Ts... args" to empty and rename "Field" as empty] - static __host__ __device__ inline fptype& - decodeRecord( fptype* buffer ) + // A class describing the internal layout of memory buffers for matrix elements + // This implementation uses a plain ARRAY[nevt] + // [If many implementations are used, a suffix _ARRAYv1 should be appended to the class name] + class MemoryAccessMatrixElementsBase //_ARRAYv1 { - constexpr int ievt = 0; - return buffer[ievt]; // ARRAY[nevt] - } -}; - -//---------------------------------------------------------------------------- - -// A class providing access to memory buffers for a given event, based on explicit event numbers -// Its methods use the MemoryAccessHelper templates - note the use of the template keyword in template function instantiations -class MemoryAccessMatrixElements : public MemoryAccessMatrixElementsBase -{ -public: - - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] - static constexpr auto ieventAccessRecord = MemoryAccessHelper::ieventAccessRecord; - - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (const) ===> const fptype* ieventAccessRecordConst( const fptype* buffer, const int ievt ) <===] - static constexpr auto ieventAccessRecordConst = MemoryAccessHelper::ieventAccessRecordConst; - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer ) <===] - static constexpr auto decodeRecord = MemoryAccessHelper::decodeRecord; - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (const) ===> const fptype& decodeRecordConst( const fptype* buffer ) <===] - static constexpr auto decodeRecordConst = - MemoryAccessHelper::template decodeRecordConst<>; - - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (non-const) ===> fptype& ieventAccess( fptype* buffer, const ievt ) <===] - static constexpr auto ieventAccess = - MemoryAccessHelper::template ieventAccessField<>; - - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (const) ===> const fptype& ieventAccessConst( const fptype* buffer, const ievt ) <===] - static constexpr auto ieventAccessConst = - MemoryAccessHelper::template ieventAccessFieldConst<>; -}; - -//---------------------------------------------------------------------------- - -// A class providing access to memory buffers for a given event, based on implicit kernel rules -// Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations -template -class KernelAccessMatrixElements -{ -public: - - // Expose selected functions from MemoryAccessMatrixElements - static constexpr auto ieventAccessRecord = MemoryAccessMatrixElements::ieventAccessRecord; - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (non-const, SCALAR) ===> fptype& kernelAccess_s( fptype* buffer ) <===] - static constexpr auto kernelAccess_s = - KernelAccessHelper::template kernelAccessField<>; // requires cuda 11.4 - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) - // [Signature (non const, SCALAR OR VECTOR) ===> fptype_sv& kernelAccess( const fptype* buffer ) <===] - static __host__ __device__ inline fptype_sv& - kernelAccess( fptype* buffer ) + private: + + friend class MemoryAccessHelper; + friend class KernelAccessHelper; + friend class KernelAccessHelper; + + //-------------------------------------------------------------------------- + // NB all KernelLaunchers assume that memory access can be decomposed as "accessField = decodeRecord( accessRecord )" + // (in other words: first locate the event record for a given event, then locate an element in that record) + //-------------------------------------------------------------------------- + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] + static __host__ __device__ inline fptype* + ieventAccessRecord( fptype* buffer, + const int ievt ) + { + return &( buffer[ievt] ); // ARRAY[nevt] + } + + //-------------------------------------------------------------------------- + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, Ts... args ) <===] + // [NB: expand variadic template "Ts... args" to empty and rename "Field" as empty] + static __host__ __device__ inline fptype& + decodeRecord( fptype* buffer ) + { + constexpr int ievt = 0; + return buffer[ievt]; // ARRAY[nevt] + } + }; + + //---------------------------------------------------------------------------- + + // A class providing access to memory buffers for a given event, based on explicit event numbers + // Its methods use the MemoryAccessHelper templates - note the use of the template keyword in template function instantiations + class MemoryAccessMatrixElements : public MemoryAccessMatrixElementsBase + { + public: + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] + static constexpr auto ieventAccessRecord = MemoryAccessHelper::ieventAccessRecord; + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (const) ===> const fptype* ieventAccessRecordConst( const fptype* buffer, const int ievt ) <===] + static constexpr auto ieventAccessRecordConst = MemoryAccessHelper::ieventAccessRecordConst; + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer ) <===] + static constexpr auto decodeRecord = MemoryAccessHelper::decodeRecord; + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (const) ===> const fptype& decodeRecordConst( const fptype* buffer ) <===] + static constexpr auto decodeRecordConst = + MemoryAccessHelper::template decodeRecordConst<>; + + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (non-const) ===> fptype& ieventAccess( fptype* buffer, const ievt ) <===] + static constexpr auto ieventAccess = + MemoryAccessHelper::template ieventAccessField<>; + + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (const) ===> const fptype& ieventAccessConst( const fptype* buffer, const ievt ) <===] + static constexpr auto ieventAccessConst = + MemoryAccessHelper::template ieventAccessFieldConst<>; + }; + + //---------------------------------------------------------------------------- + + // A class providing access to memory buffers for a given event, based on implicit kernel rules + // Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations + template + class KernelAccessMatrixElements { - fptype& out = kernelAccess_s( buffer ); + public: + + // Expose selected functions from MemoryAccessMatrixElements + static constexpr auto ieventAccessRecord = MemoryAccessMatrixElements::ieventAccessRecord; + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (non-const, SCALAR) ===> fptype& kernelAccess_s( fptype* buffer ) <===] + static constexpr auto kernelAccess_s = + KernelAccessHelper::template kernelAccessField<>; // requires cuda 11.4 + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) + // [Signature (non const, SCALAR OR VECTOR) ===> fptype_sv& kernelAccess( const fptype* buffer ) <===] + static __host__ __device__ inline fptype_sv& + kernelAccess( fptype* buffer ) + { + fptype& out = kernelAccess_s( buffer ); #ifndef MGONGPU_CPPSIMD - return out; + return out; #else - // NB: derived from MemoryAccessMomenta, restricting the implementation to contiguous aligned arrays (#435) - static_assert( mg5amcCpu::HostBufferMatrixElements::isaligned() ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) - //assert( (size_t)( buffer ) % mgOnGpu::cppAlign == 0 ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) - return mg5amcCpu::fptypevFromAlignedArray( out ); // SIMD bulk load of neppV, use reinterpret_cast + // NB: derived from MemoryAccessMomenta, restricting the implementation to contiguous aligned arrays (#435) + static_assert( mg5amcCpu::HostBufferMatrixElements::isaligned() ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) + //assert( (size_t)( buffer ) % mgOnGpu::cppAlign == 0 ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) + return mg5amcCpu::fptypevFromAlignedArray( out ); // SIMD bulk load of neppV, use reinterpret_cast #endif - } + } + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (const) ===> const fptype& kernelAccessConst( const fptype* buffer ) <===] + static constexpr auto kernelAccessConst = + KernelAccessHelper::template kernelAccessFieldConst<>; // requires cuda 11.4 + }; - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (const) ===> const fptype& kernelAccessConst( const fptype* buffer ) <===] - static constexpr auto kernelAccessConst = - KernelAccessHelper::template kernelAccessFieldConst<>; // requires cuda 11.4 -}; + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- + typedef KernelAccessMatrixElements HostAccessMatrixElements; + typedef KernelAccessMatrixElements DeviceAccessMatrixElements; -typedef KernelAccessMatrixElements HostAccessMatrixElements; -typedef KernelAccessMatrixElements DeviceAccessMatrixElements; + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- +} // end namespace mg5amcGpu/mg5amcCpu #endif // MemoryAccessMatrixElements_H diff --git a/epochX/cudacpp/gq_ttq.mad/SubProcesses/MemoryAccessMomenta.h b/epochX/cudacpp/gq_ttq.mad/SubProcesses/MemoryAccessMomenta.h index 0ac4faa3c7..29266de32c 100644 --- a/epochX/cudacpp/gq_ttq.mad/SubProcesses/MemoryAccessMomenta.h +++ b/epochX/cudacpp/gq_ttq.mad/SubProcesses/MemoryAccessMomenta.h @@ -12,261 +12,264 @@ #include "MemoryAccessHelpers.h" #include "MemoryAccessVectors.h" +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) #ifdef __CUDACC__ -using mg5amcGpu::CPPProcess; +namespace mg5amcGpu #else -using mg5amcCpu::CPPProcess; +namespace mg5amcCpu #endif - -//---------------------------------------------------------------------------- - -// A class describing the internal layout of memory buffers for momenta -// This implementation uses an AOSOA[npagM][npar][np4][neppM] where nevt=npagM*neppM -// [If many implementations are used, a suffix _AOSOAv1 should be appended to the class name] -class MemoryAccessMomentaBase //_AOSOAv1 { -public: + //---------------------------------------------------------------------------- + + // A class describing the internal layout of memory buffers for momenta + // This implementation uses an AOSOA[npagM][npar][np4][neppM] where nevt=npagM*neppM + // [If many implementations are used, a suffix _AOSOAv1 should be appended to the class name] + class MemoryAccessMomentaBase //_AOSOAv1 + { + public: - // Number of Events Per Page in the momenta AOSOA memory buffer layout - // (these are all best kept as a compile-time constants: see issue #23) + // Number of Events Per Page in the momenta AOSOA memory buffer layout + // (these are all best kept as a compile-time constants: see issue #23) #ifdef __CUDACC__ /* clang-format off */ - // ----------------------------------------------------------------------------------------------- - // --- GPUs: neppM is best set to a power of 2 times the number of fptype's in a 32-byte cacheline - // --- This is relevant to ensure coalesced access to momenta in global memory - // --- Note that neppR is hardcoded and may differ from neppM and neppV on some platforms - // ----------------------------------------------------------------------------------------------- - //static constexpr int neppM = 64/sizeof(fptype); // 2x 32-byte GPU cache lines (512 bits): 8 (DOUBLE) or 16 (FLOAT) - static constexpr int neppM = 32/sizeof(fptype); // (DEFAULT) 32-byte GPU cache line (256 bits): 4 (DOUBLE) or 8 (FLOAT) - //static constexpr int neppM = 1; // *** NB: this is equivalent to AOS *** (slower: 1.03E9 instead of 1.11E9 in eemumu) + // ----------------------------------------------------------------------------------------------- + // --- GPUs: neppM is best set to a power of 2 times the number of fptype's in a 32-byte cacheline + // --- This is relevant to ensure coalesced access to momenta in global memory + // --- Note that neppR is hardcoded and may differ from neppM and neppV on some platforms + // ----------------------------------------------------------------------------------------------- + //static constexpr int neppM = 64/sizeof(fptype); // 2x 32-byte GPU cache lines (512 bits): 8 (DOUBLE) or 16 (FLOAT) + static constexpr int neppM = 32/sizeof(fptype); // (DEFAULT) 32-byte GPU cache line (256 bits): 4 (DOUBLE) or 8 (FLOAT) + //static constexpr int neppM = 1; // *** NB: this is equivalent to AOS *** (slower: 1.03E9 instead of 1.11E9 in eemumu) #else - // ----------------------------------------------------------------------------------------------- - // --- CPUs: neppM is best set equal to the number of fptype's (neppV) in a vector register - // --- This is relevant to ensure faster access to momenta from C++ memory cache lines - // --- However, neppM is now decoupled from neppV (issue #176) and can be separately hardcoded - // --- In practice, neppR, neppM and neppV could now (in principle) all be different - // ----------------------------------------------------------------------------------------------- + // ----------------------------------------------------------------------------------------------- + // --- CPUs: neppM is best set equal to the number of fptype's (neppV) in a vector register + // --- This is relevant to ensure faster access to momenta from C++ memory cache lines + // --- However, neppM is now decoupled from neppV (issue #176) and can be separately hardcoded + // --- In practice, neppR, neppM and neppV could now (in principle) all be different + // ----------------------------------------------------------------------------------------------- #ifdef MGONGPU_CPPSIMD - static constexpr int neppM = MGONGPU_CPPSIMD; // (DEFAULT) neppM=neppV for optimal performance - //static constexpr int neppM = 64/sizeof(fptype); // maximum CPU vector width (512 bits): 8 (DOUBLE) or 16 (FLOAT) - //static constexpr int neppM = 32/sizeof(fptype); // lower CPU vector width (256 bits): 4 (DOUBLE) or 8 (FLOAT) - //static constexpr int neppM = 1; // *** NB: this is equivalent to AOS *** (slower: 4.66E6 instead of 5.09E9 in eemumu) - //static constexpr int neppM = MGONGPU_CPPSIMD*2; // FOR TESTS + static constexpr int neppM = MGONGPU_CPPSIMD; // (DEFAULT) neppM=neppV for optimal performance + //static constexpr int neppM = 64/sizeof(fptype); // maximum CPU vector width (512 bits): 8 (DOUBLE) or 16 (FLOAT) + //static constexpr int neppM = 32/sizeof(fptype); // lower CPU vector width (256 bits): 4 (DOUBLE) or 8 (FLOAT) + //static constexpr int neppM = 1; // *** NB: this is equivalent to AOS *** (slower: 4.66E6 instead of 5.09E9 in eemumu) + //static constexpr int neppM = MGONGPU_CPPSIMD*2; // FOR TESTS #else - static constexpr int neppM = 1; // (DEFAULT) neppM=neppV for optimal performance (NB: this is equivalent to AOS) + static constexpr int neppM = 1; // (DEFAULT) neppM=neppV for optimal performance (NB: this is equivalent to AOS) #endif #endif /* clang-format on */ - // SANITY CHECK: check that neppM is a power of two - static_assert( ispoweroftwo( neppM ), "neppM is not a power of 2" ); + // SANITY CHECK: check that neppM is a power of two + static_assert( ispoweroftwo( neppM ), "neppM is not a power of 2" ); -private: + private: - friend class MemoryAccessHelper; - friend class KernelAccessHelper; - friend class KernelAccessHelper; + friend class MemoryAccessHelper; + friend class KernelAccessHelper; + friend class KernelAccessHelper; - // The number of components of a 4-momentum - static constexpr int np4 = CPPProcess::np4; + // The number of components of a 4-momentum + static constexpr int np4 = CPPProcess::np4; - // The number of particles in this physics process - static constexpr int npar = CPPProcess::npar; + // The number of particles in this physics process + static constexpr int npar = CPPProcess::npar; - //-------------------------------------------------------------------------- - // NB all KernelLaunchers assume that memory access can be decomposed as "accessField = decodeRecord( accessRecord )" - // (in other words: first locate the event record for a given event, then locate an element in that record) - //-------------------------------------------------------------------------- + //-------------------------------------------------------------------------- + // NB all KernelLaunchers assume that memory access can be decomposed as "accessField = decodeRecord( accessRecord )" + // (in other words: first locate the event record for a given event, then locate an element in that record) + //-------------------------------------------------------------------------- - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] - static __host__ __device__ inline fptype* - ieventAccessRecord( fptype* buffer, - const int ievt ) - { - const int ipagM = ievt / neppM; // #event "M-page" - const int ieppM = ievt % neppM; // #event in the current event M-page - constexpr int ip4 = 0; - constexpr int ipar = 0; - return &( buffer[ipagM * npar * np4 * neppM + ipar * np4 * neppM + ip4 * neppM + ieppM] ); // AOSOA[ipagM][ipar][ip4][ieppM] - } - - //-------------------------------------------------------------------------- - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, Ts... args ) <===] - // [NB: expand variadic template "Ts... args" to "const int ip4, const int ipar" and rename "Field" as "Ip4Ipar"] - static __host__ __device__ inline fptype& - decodeRecord( fptype* buffer, - const int ip4, - const int ipar ) + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] + static __host__ __device__ inline fptype* + ieventAccessRecord( fptype* buffer, + const int ievt ) + { + const int ipagM = ievt / neppM; // #event "M-page" + const int ieppM = ievt % neppM; // #event in the current event M-page + constexpr int ip4 = 0; + constexpr int ipar = 0; + return &( buffer[ipagM * npar * np4 * neppM + ipar * np4 * neppM + ip4 * neppM + ieppM] ); // AOSOA[ipagM][ipar][ip4][ieppM] + } + + //-------------------------------------------------------------------------- + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, Ts... args ) <===] + // [NB: expand variadic template "Ts... args" to "const int ip4, const int ipar" and rename "Field" as "Ip4Ipar"] + static __host__ __device__ inline fptype& + decodeRecord( fptype* buffer, + const int ip4, + const int ipar ) + { + constexpr int ipagM = 0; + constexpr int ieppM = 0; + return buffer[ipagM * npar * np4 * neppM + ipar * np4 * neppM + ip4 * neppM + ieppM]; // AOSOA[ipagM][ipar][ip4][ieppM] + } + }; + + //---------------------------------------------------------------------------- + + // A class providing access to memory buffers for a given event, based on explicit event numbers + // Its methods use the MemoryAccessHelper templates - note the use of the template keyword in template function instantiations + class MemoryAccessMomenta : public MemoryAccessMomentaBase { - constexpr int ipagM = 0; - constexpr int ieppM = 0; - return buffer[ipagM * npar * np4 * neppM + ipar * np4 * neppM + ip4 * neppM + ieppM]; // AOSOA[ipagM][ipar][ip4][ieppM] - } -}; + public: + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] + static constexpr auto ieventAccessRecord = MemoryAccessHelper::ieventAccessRecord; + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (const) ===> const fptype* ieventAccessRecordConst( const fptype* buffer, const int ievt ) <===] + static constexpr auto ieventAccessRecordConst = MemoryAccessHelper::ieventAccessRecordConst; + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, const int ipar, const int ipar ) <===] + static constexpr auto decodeRecordIp4Ipar = MemoryAccessHelper::decodeRecord; + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (const) ===> const fptype& decodeRecordConst( const fptype* buffer, const int ipar, const int ipar ) <===] + static constexpr auto decodeRecordIp4IparConst = + MemoryAccessHelper::template decodeRecordConst; + + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (non-const) ===> fptype& ieventAccessIp4Ipar( fptype* buffer, const ievt, const int ipar, const int ipar ) <===] + static constexpr auto ieventAccessIp4Ipar = + MemoryAccessHelper::template ieventAccessField; + + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (const) ===> const fptype& ieventAccessIp4IparConst( const fptype* buffer, const ievt, const int ipar, const int ipar ) <===] + // DEFAULT VERSION + static constexpr auto ieventAccessIp4IparConst = + MemoryAccessHelper::template ieventAccessFieldConst; + + /* + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (const) ===> const fptype& ieventAccessIp4IparConst( const fptype* buffer, const ievt, const int ipar, const int ipar ) <===] + // DEBUG VERSION WITH PRINTOUTS + static __host__ __device__ inline const fptype& + ieventAccessIp4IparConst( const fptype* buffer, + const int ievt, + const int ip4, + const int ipar ) + { + const fptype& out = MemoryAccessHelper::template ieventAccessFieldConst( buffer, ievt, ip4, ipar ); + printf( "ipar=%2d ip4=%2d ievt=%8d out=%8.3f\n", ipar, ip4, ievt, out ); + return out; + } + */ + }; -//---------------------------------------------------------------------------- + //---------------------------------------------------------------------------- -// A class providing access to memory buffers for a given event, based on explicit event numbers -// Its methods use the MemoryAccessHelper templates - note the use of the template keyword in template function instantiations -class MemoryAccessMomenta : public MemoryAccessMomentaBase -{ -public: - - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] - static constexpr auto ieventAccessRecord = MemoryAccessHelper::ieventAccessRecord; - - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (const) ===> const fptype* ieventAccessRecordConst( const fptype* buffer, const int ievt ) <===] - static constexpr auto ieventAccessRecordConst = MemoryAccessHelper::ieventAccessRecordConst; - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, const int ipar, const int ipar ) <===] - static constexpr auto decodeRecordIp4Ipar = MemoryAccessHelper::decodeRecord; - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (const) ===> const fptype& decodeRecordConst( const fptype* buffer, const int ipar, const int ipar ) <===] - static constexpr auto decodeRecordIp4IparConst = - MemoryAccessHelper::template decodeRecordConst; - - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (non-const) ===> fptype& ieventAccessIp4Ipar( fptype* buffer, const ievt, const int ipar, const int ipar ) <===] - static constexpr auto ieventAccessIp4Ipar = - MemoryAccessHelper::template ieventAccessField; - - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (const) ===> const fptype& ieventAccessIp4IparConst( const fptype* buffer, const ievt, const int ipar, const int ipar ) <===] - // DEFAULT VERSION - static constexpr auto ieventAccessIp4IparConst = - MemoryAccessHelper::template ieventAccessFieldConst; - - /* - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (const) ===> const fptype& ieventAccessIp4IparConst( const fptype* buffer, const ievt, const int ipar, const int ipar ) <===] - // DEBUG VERSION WITH PRINTOUTS - static __host__ __device__ inline const fptype& - ieventAccessIp4IparConst( const fptype* buffer, - const int ievt, - const int ip4, - const int ipar ) + // A class providing access to memory buffers for a given event, based on implicit kernel rules + // Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations + template + class KernelAccessMomenta { - const fptype& out = MemoryAccessHelper::template ieventAccessFieldConst( buffer, ievt, ip4, ipar ); - printf( "ipar=%2d ip4=%2d ievt=%8d out=%8.3f\n", ipar, ip4, ievt, out ); - return out; - } - */ -}; - -//---------------------------------------------------------------------------- - -// A class providing access to memory buffers for a given event, based on implicit kernel rules -// Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations -template -class KernelAccessMomenta -{ -public: - - // Expose selected functions from MemoryAccessMomenta - static constexpr auto ieventAccessRecordConst = MemoryAccessMomenta::ieventAccessRecordConst; - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (non-const, SCALAR) ===> fptype& kernelAccessIp4Ipar( fptype* buffer, const int ipar, const int ipar ) <===] - static constexpr auto kernelAccessIp4Ipar = - KernelAccessHelper::template kernelAccessField; - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (const, SCALAR) ===> const fptype& kernelAccessIp4IparConst( const fptype* buffer, const int ipar, const int ipar ) <===] - // DEFAULT VERSION - static constexpr auto kernelAccessIp4IparConst_s = - KernelAccessHelper::template kernelAccessFieldConst; - - /* - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (const, SCALAR) ===> const fptype& kernelAccessIp4IparConst( const fptype* buffer, const int ipar, const int ipar ) <===] - // DEBUG VERSION WITH PRINTOUTS - static __host__ __device__ inline const fptype& - kernelAccessIp4IparConst_s( const fptype* buffer, + public: + + // Expose selected functions from MemoryAccessMomenta + static constexpr auto ieventAccessRecordConst = MemoryAccessMomenta::ieventAccessRecordConst; + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (non-const, SCALAR) ===> fptype& kernelAccessIp4Ipar( fptype* buffer, const int ipar, const int ipar ) <===] + static constexpr auto kernelAccessIp4Ipar = + KernelAccessHelper::template kernelAccessField; + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (const, SCALAR) ===> const fptype& kernelAccessIp4IparConst( const fptype* buffer, const int ipar, const int ipar ) <===] + // DEFAULT VERSION + static constexpr auto kernelAccessIp4IparConst_s = + KernelAccessHelper::template kernelAccessFieldConst; + + /* + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (const, SCALAR) ===> const fptype& kernelAccessIp4IparConst( const fptype* buffer, const int ipar, const int ipar ) <===] + // DEBUG VERSION WITH PRINTOUTS + static __host__ __device__ inline const fptype& + kernelAccessIp4IparConst_s( const fptype* buffer, + const int ip4, + const int ipar ) + { + const fptype& out = KernelAccessHelper::template kernelAccessFieldConst( buffer, ip4, ipar ); + printf( "ipar=%2d ip4=%2d ievt='kernel' out=%8.3f\n", ipar, ip4, out ); + return out; + } + */ + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (const, SCALAR OR VECTOR) ===> fptype_sv kernelAccessIp4IparConst( const fptype* buffer, const int ipar, const int ipar ) <===] + // FIXME? Eventually return by const reference and support aligned arrays only? + // FIXME? Currently return by value to support also unaligned and arbitrary arrays + static __host__ __device__ inline fptype_sv + kernelAccessIp4IparConst( const fptype* buffer, const int ip4, const int ipar ) - { - const fptype& out = KernelAccessHelper::template kernelAccessFieldConst( buffer, ip4, ipar ); - printf( "ipar=%2d ip4=%2d ievt='kernel' out=%8.3f\n", ipar, ip4, out ); - return out; - } - */ - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (const, SCALAR OR VECTOR) ===> fptype_sv kernelAccessIp4IparConst( const fptype* buffer, const int ipar, const int ipar ) <===] - // FIXME? Eventually return by const reference and support aligned arrays only? - // FIXME? Currently return by value to support also unaligned and arbitrary arrays - static __host__ __device__ inline fptype_sv - kernelAccessIp4IparConst( const fptype* buffer, - const int ip4, - const int ipar ) - { - const fptype& out = kernelAccessIp4IparConst_s( buffer, ip4, ipar ); + { + const fptype& out = kernelAccessIp4IparConst_s( buffer, ip4, ipar ); #ifndef MGONGPU_CPPSIMD - return out; + return out; #else - constexpr int neppM = MemoryAccessMomentaBase::neppM; - constexpr bool useContiguousEventsIfPossible = true; // DEFAULT - //constexpr bool useContiguousEventsIfPossible = false; // FOR PERFORMANCE TESTS (treat as arbitrary array even if it is an AOSOA) - // Use c++17 "if constexpr": compile-time branching - if constexpr( useContiguousEventsIfPossible && ( neppM >= neppV ) && ( neppM % neppV == 0 ) ) - { - //constexpr bool skipAlignmentCheck = true; // FASTEST (SEGFAULTS IF MISALIGNED ACCESS, NEEDS A SANITY CHECK ELSEWHERE!) - constexpr bool skipAlignmentCheck = false; // DEFAULT: A BIT SLOWER BUT SAFER [ALLOWS MISALIGNED ACCESS] - if constexpr( skipAlignmentCheck ) - { - //static bool first=true; if( first ){ std::cout << "WARNING! assume aligned AOSOA, skip check" << std::endl; first=false; } // SLOWER (5.06E6) - // FASTEST? (5.09E6 in eemumu 512y) - // This assumes alignment for momenta1d without checking - causes segmentation fault in reinterpret_cast if not aligned! - return mg5amcCpu::fptypevFromAlignedArray( out ); // use reinterpret_cast - } - else if( (size_t)( buffer ) % mgOnGpu::cppAlign == 0 ) + constexpr int neppM = MemoryAccessMomentaBase::neppM; + constexpr bool useContiguousEventsIfPossible = true; // DEFAULT + //constexpr bool useContiguousEventsIfPossible = false; // FOR PERFORMANCE TESTS (treat as arbitrary array even if it is an AOSOA) + // Use c++17 "if constexpr": compile-time branching + if constexpr( useContiguousEventsIfPossible && ( neppM >= neppV ) && ( neppM % neppV == 0 ) ) { - //static bool first=true; if( first ){ std::cout << "WARNING! aligned AOSOA, reinterpret cast" << std::endl; first=false; } // SLOWER (5.00E6) - // DEFAULT! A tiny bit (<1%) slower because of the alignment check (5.07E6 in eemumu 512y) - // This explicitly checks buffer alignment to avoid segmentation faults in reinterpret_cast - return mg5amcCpu::fptypevFromAlignedArray( out ); // SIMD bulk load of neppV, use reinterpret_cast + //constexpr bool skipAlignmentCheck = true; // FASTEST (SEGFAULTS IF MISALIGNED ACCESS, NEEDS A SANITY CHECK ELSEWHERE!) + constexpr bool skipAlignmentCheck = false; // DEFAULT: A BIT SLOWER BUT SAFER [ALLOWS MISALIGNED ACCESS] + if constexpr( skipAlignmentCheck ) + { + //static bool first=true; if( first ){ std::cout << "WARNING! assume aligned AOSOA, skip check" << std::endl; first=false; } // SLOWER (5.06E6) + // FASTEST? (5.09E6 in eemumu 512y) + // This assumes alignment for momenta1d without checking - causes segmentation fault in reinterpret_cast if not aligned! + return mg5amcCpu::fptypevFromAlignedArray( out ); // use reinterpret_cast + } + else if( (size_t)( buffer ) % mgOnGpu::cppAlign == 0 ) + { + //static bool first=true; if( first ){ std::cout << "WARNING! aligned AOSOA, reinterpret cast" << std::endl; first=false; } // SLOWER (5.00E6) + // DEFAULT! A tiny bit (<1%) slower because of the alignment check (5.07E6 in eemumu 512y) + // This explicitly checks buffer alignment to avoid segmentation faults in reinterpret_cast + return mg5amcCpu::fptypevFromAlignedArray( out ); // SIMD bulk load of neppV, use reinterpret_cast + } + else + { + //static bool first=true; if( first ){ std::cout << "WARNING! AOSOA but no reinterpret cast" << std::endl; first=false; } // SLOWER (4.93E6) + // A bit (1%) slower (5.05E6 in eemumu 512y) + // This does not require buffer alignment, but it requires AOSOA with neppM>=neppV and neppM%neppV==0 + return mg5amcCpu::fptypevFromUnalignedArray( out ); // SIMD bulk load of neppV, do not use reinterpret_cast (fewer SIMD operations) + } } else { - //static bool first=true; if( first ){ std::cout << "WARNING! AOSOA but no reinterpret cast" << std::endl; first=false; } // SLOWER (4.93E6) - // A bit (1%) slower (5.05E6 in eemumu 512y) - // This does not require buffer alignment, but it requires AOSOA with neppM>=neppV and neppM%neppV==0 - return mg5amcCpu::fptypevFromUnalignedArray( out ); // SIMD bulk load of neppV, do not use reinterpret_cast (fewer SIMD operations) + //static bool first=true; if( first ){ std::cout << "WARNING! arbitrary array" << std::endl; first=false; } // SLOWER (5.08E6) + // ?!Used to be much slower, now a tiny bit faster for AOSOA?! (5.11E6 for AOSOA, 4.64E6 for AOS in eemumu 512y) + // This does not even require AOSOA with neppM>=neppV and neppM%neppV==0 (e.g. can be used with AOS neppM==1) + constexpr int ievt0 = 0; // just make it explicit in the code that buffer refers to a given ievt0 and decoderIeppV fetches event ievt0+ieppV + auto decoderIeppv = [buffer, ip4, ipar]( int ieppV ) + -> const fptype& + { return MemoryAccessMomenta::ieventAccessIp4IparConst( buffer, ievt0 + ieppV, ip4, ipar ); }; + return mg5amcCpu::fptypevFromArbitraryArray( decoderIeppv ); // iterate over ieppV in neppV (no SIMD) } +#endif } - else + + // Is this a HostAccess or DeviceAccess class? + // [this is only needed for a warning printout in rambo.h for nparf==1 #358] + static __host__ __device__ inline constexpr bool + isOnDevice() { - //static bool first=true; if( first ){ std::cout << "WARNING! arbitrary array" << std::endl; first=false; } // SLOWER (5.08E6) - // ?!Used to be much slower, now a tiny bit faster for AOSOA?! (5.11E6 for AOSOA, 4.64E6 for AOS in eemumu 512y) - // This does not even require AOSOA with neppM>=neppV and neppM%neppV==0 (e.g. can be used with AOS neppM==1) - constexpr int ievt0 = 0; // just make it explicit in the code that buffer refers to a given ievt0 and decoderIeppV fetches event ievt0+ieppV - auto decoderIeppv = [buffer, ip4, ipar]( int ieppV ) - -> const fptype& - { return MemoryAccessMomenta::ieventAccessIp4IparConst( buffer, ievt0 + ieppV, ip4, ipar ); }; - return mg5amcCpu::fptypevFromArbitraryArray( decoderIeppv ); // iterate over ieppV in neppV (no SIMD) + return onDevice; } -#endif - } + }; - // Is this a HostAccess or DeviceAccess class? - // [this is only needed for a warning printout in rambo.h for nparf==1 #358] - static __host__ __device__ inline constexpr bool - isOnDevice() - { - return onDevice; - } -}; + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- + typedef KernelAccessMomenta HostAccessMomenta; + typedef KernelAccessMomenta DeviceAccessMomenta; -typedef KernelAccessMomenta HostAccessMomenta; -typedef KernelAccessMomenta DeviceAccessMomenta; + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- +} // end namespace mg5amcGpu/mg5amcCpu #endif // MemoryAccessMomenta_H diff --git a/epochX/cudacpp/gq_ttq.mad/SubProcesses/MemoryAccessNumerators.h b/epochX/cudacpp/gq_ttq.mad/SubProcesses/MemoryAccessNumerators.h index b373fd6048..b152183b28 100644 --- a/epochX/cudacpp/gq_ttq.mad/SubProcesses/MemoryAccessNumerators.h +++ b/epochX/cudacpp/gq_ttq.mad/SubProcesses/MemoryAccessNumerators.h @@ -9,15 +9,24 @@ #include "MemoryAccessGs.h" -//---------------------------------------------------------------------------- +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif +{ + //---------------------------------------------------------------------------- + + // A class describing the internal layout of memory buffers for numerators + // This implementation reuses the plain ARRAY[nevt] implementation of MemoryAccessGs -// A class describing the internal layout of memory buffers for numerators -// This implementation reuses the plain ARRAY[nevt] implementation of MemoryAccessGs + typedef KernelAccessGs HostAccessNumerators; + typedef KernelAccessGs DeviceAccessNumerators; -typedef KernelAccessGs HostAccessNumerators; -typedef KernelAccessGs DeviceAccessNumerators; + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- +} // end namespace mg5amcGpu/mg5amcCpu #endif #endif // MemoryAccessNumerators_H diff --git a/epochX/cudacpp/gq_ttq.mad/SubProcesses/MemoryAccessWavefunctions.h b/epochX/cudacpp/gq_ttq.mad/SubProcesses/MemoryAccessWavefunctions.h index f42f0d34ed..5428aaf933 100644 --- a/epochX/cudacpp/gq_ttq.mad/SubProcesses/MemoryAccessWavefunctions.h +++ b/epochX/cudacpp/gq_ttq.mad/SubProcesses/MemoryAccessWavefunctions.h @@ -14,147 +14,156 @@ #define MGONGPU_TRIVIAL_WAVEFUNCTIONS 1 -//---------------------------------------------------------------------------- - -#ifndef MGONGPU_TRIVIAL_WAVEFUNCTIONS - -// A class describing the internal layout of memory buffers for wavefunctions -// This implementation uses an AOSOA[npagW][nw6][nx2][neppW] where nevt=npagW*neppW -// [If many implementations are used, a suffix _AOSOAv1 should be appended to the class name] -class MemoryAccessWavefunctionsBase //_AOSOAv1 +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { -public: - - // Number of Events Per Page in the wavefunction AOSOA memory buffer layout - static constexpr int neppW = 1; // AOS (just a test...) - -private: - - friend class MemoryAccessHelper; - friend class KernelAccessHelper; - friend class KernelAccessHelper; - - // The number of components of a (fermion or vector) wavefunction - static constexpr int nw6 = mgOnGpu::nw6; - - // The number of floating point components of a complex number - static constexpr int nx2 = mgOnGpu::nx2; + //---------------------------------------------------------------------------- - //-------------------------------------------------------------------------- - // NB all KernelLaunchers assume that memory access can be decomposed as "accessField = decodeRecord( accessRecord )" - // (in other words: first locate the event record for a given event, then locate an element in that record) - //-------------------------------------------------------------------------- +#ifndef MGONGPU_TRIVIAL_WAVEFUNCTIONS - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] - static __host__ __device__ inline fptype* - ieventAccessRecord( fptype* buffer, - const int ievt ) + // A class describing the internal layout of memory buffers for wavefunctions + // This implementation uses an AOSOA[npagW][nw6][nx2][neppW] where nevt=npagW*neppW + // [If many implementations are used, a suffix _AOSOAv1 should be appended to the class name] + class MemoryAccessWavefunctionsBase //_AOSOAv1 { - const int ipagW = ievt / neppW; // #event "W-page" - const int ieppW = ievt % neppW; // #event in the current event W-page - constexpr int iw6 = 0; - constexpr int ix2 = 0; - return &( buffer[ipagW * nw6 * nx2 * neppW + iw6 * nx2 * neppW + ix2 * neppW + ieppW] ); // AOSOA[ipagW][iw6][ix2][ieppW] - } - - //-------------------------------------------------------------------------- - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, Ts... args ) <===] - // [NB: expand variadic template "Ts... args" to "const int iw6, const int ix2" and rename "Field" as "Iw6Ix2"] - static __host__ __device__ inline fptype& - decodeRecord( fptype* buffer, - const int iw6, - const int ix2 ) + public: + + // Number of Events Per Page in the wavefunction AOSOA memory buffer layout + static constexpr int neppW = 1; // AOS (just a test...) + + private: + + friend class MemoryAccessHelper; + friend class KernelAccessHelper; + friend class KernelAccessHelper; + + // The number of components of a (fermion or vector) wavefunction + static constexpr int nw6 = mgOnGpu::nw6; + + // The number of floating point components of a complex number + static constexpr int nx2 = mgOnGpu::nx2; + + //-------------------------------------------------------------------------- + // NB all KernelLaunchers assume that memory access can be decomposed as "accessField = decodeRecord( accessRecord )" + // (in other words: first locate the event record for a given event, then locate an element in that record) + //-------------------------------------------------------------------------- + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] + static __host__ __device__ inline fptype* + ieventAccessRecord( fptype* buffer, + const int ievt ) + { + const int ipagW = ievt / neppW; // #event "W-page" + const int ieppW = ievt % neppW; // #event in the current event W-page + constexpr int iw6 = 0; + constexpr int ix2 = 0; + return &( buffer[ipagW * nw6 * nx2 * neppW + iw6 * nx2 * neppW + ix2 * neppW + ieppW] ); // AOSOA[ipagW][iw6][ix2][ieppW] + } + + //-------------------------------------------------------------------------- + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, Ts... args ) <===] + // [NB: expand variadic template "Ts... args" to "const int iw6, const int ix2" and rename "Field" as "Iw6Ix2"] + static __host__ __device__ inline fptype& + decodeRecord( fptype* buffer, + const int iw6, + const int ix2 ) + { + constexpr int ipagW = 0; + constexpr int ieppW = 0; + return buffer[ipagW * nw6 * nx2 * neppW + iw6 * nx2 * neppW + ix2 * neppW + ieppW]; // AOSOA[ipagW][iw6][ix2][ieppW] + } + }; + + //---------------------------------------------------------------------------- + + // A class providing access to memory buffers for a given event, based on explicit event numbers + // Its methods use the MemoryAccessHelper templates - note the use of the template keyword in template function instantiations + class MemoryAccessWavefunctions : public MemoryAccessWavefunctionsBase { - constexpr int ipagW = 0; - constexpr int ieppW = 0; - return buffer[ipagW * nw6 * nx2 * neppW + iw6 * nx2 * neppW + ix2 * neppW + ieppW]; // AOSOA[ipagW][iw6][ix2][ieppW] - } -}; - -//---------------------------------------------------------------------------- + public: -// A class providing access to memory buffers for a given event, based on explicit event numbers -// Its methods use the MemoryAccessHelper templates - note the use of the template keyword in template function instantiations -class MemoryAccessWavefunctions : public MemoryAccessWavefunctionsBase -{ -public: + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] + static constexpr auto ieventAccessRecord = MemoryAccessHelper::ieventAccessRecord; - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] - static constexpr auto ieventAccessRecord = MemoryAccessHelper::ieventAccessRecord; + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (const) ===> const fptype* ieventAccessRecordConst( const fptype* buffer, const int ievt ) <===] + static constexpr auto ieventAccessRecordConst = MemoryAccessHelper::ieventAccessRecordConst; - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (const) ===> const fptype* ieventAccessRecordConst( const fptype* buffer, const int ievt ) <===] - static constexpr auto ieventAccessRecordConst = MemoryAccessHelper::ieventAccessRecordConst; + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, const int iw6, const int ix2 ) <===] + static constexpr auto decodeRecordIw6Ix2 = MemoryAccessHelper::decodeRecord; - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, const int iw6, const int ix2 ) <===] - static constexpr auto decodeRecordIw6Ix2 = MemoryAccessHelper::decodeRecord; + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (const) ===> const fptype& decodeRecordConst( const fptype* buffer, const int iw6, const int ix2 ) <===] + static constexpr auto decodeRecordIw6Ix2Const = + MemoryAccessHelper::template decodeRecordConst; - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (const) ===> const fptype& decodeRecordConst( const fptype* buffer, const int iw6, const int ix2 ) <===] - static constexpr auto decodeRecordIw6Ix2Const = - MemoryAccessHelper::template decodeRecordConst; + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (non-const) ===> fptype& ieventAccessIw6Ix2( fptype* buffer, const ievt, const int iw6, const int ix2 ) <===] + static constexpr auto ieventAccessIw6Ix2 = + MemoryAccessHelper::template ieventAccessField; - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (non-const) ===> fptype& ieventAccessIw6Ix2( fptype* buffer, const ievt, const int iw6, const int ix2 ) <===] - static constexpr auto ieventAccessIw6Ix2 = - MemoryAccessHelper::template ieventAccessField; - - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (const) ===> const fptype& ieventAccessIw6Ix2Const( const fptype* buffer, const ievt, const int iw6, const int ix2 ) <===] - static constexpr auto ieventAccessIw6Ix2Const = - MemoryAccessHelper::template ieventAccessFieldConst; -}; + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (const) ===> const fptype& ieventAccessIw6Ix2Const( const fptype* buffer, const ievt, const int iw6, const int ix2 ) <===] + static constexpr auto ieventAccessIw6Ix2Const = + MemoryAccessHelper::template ieventAccessFieldConst; + }; #endif // #ifndef MGONGPU_TRIVIAL_WAVEFUNCTIONS -//---------------------------------------------------------------------------- + //---------------------------------------------------------------------------- -// A class providing access to memory buffers for a given event, based on implicit kernel rules -// Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations -template -class KernelAccessWavefunctions -{ -public: + // A class providing access to memory buffers for a given event, based on implicit kernel rules + // Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations + template + class KernelAccessWavefunctions + { + public: #ifndef MGONGPU_TRIVIAL_WAVEFUNCTIONS - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (non-const) ===> fptype& kernelAccessIw6Ix2( fptype* buffer, const int iw6, const int ix2 ) <===] - static constexpr auto kernelAccessIw6Ix2 = - KernelAccessHelper::template kernelAccessField; + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (non-const) ===> fptype& kernelAccessIw6Ix2( fptype* buffer, const int iw6, const int ix2 ) <===] + static constexpr auto kernelAccessIw6Ix2 = + KernelAccessHelper::template kernelAccessField; - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (const) ===> const fptype& kernelAccessIw6Ix2Const( const fptype* buffer, const int iw6, const int ix2 ) <===] - static constexpr auto kernelAccessIw6Ix2Const = - KernelAccessHelper::template kernelAccessFieldConst; + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (const) ===> const fptype& kernelAccessIw6Ix2Const( const fptype* buffer, const int iw6, const int ix2 ) <===] + static constexpr auto kernelAccessIw6Ix2Const = + KernelAccessHelper::template kernelAccessFieldConst; #else - static __host__ __device__ inline cxtype_sv* - kernelAccess( fptype* buffer ) - { - return reinterpret_cast( buffer ); - } + static __host__ __device__ inline cxtype_sv* + kernelAccess( fptype* buffer ) + { + return reinterpret_cast( buffer ); + } - static __host__ __device__ inline const cxtype_sv* - kernelAccessConst( const fptype* buffer ) - { - return reinterpret_cast( buffer ); - } + static __host__ __device__ inline const cxtype_sv* + kernelAccessConst( const fptype* buffer ) + { + return reinterpret_cast( buffer ); + } #endif // #ifndef MGONGPU_TRIVIAL_WAVEFUNCTIONS -}; + }; + + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- + typedef KernelAccessWavefunctions HostAccessWavefunctions; + typedef KernelAccessWavefunctions DeviceAccessWavefunctions; -typedef KernelAccessWavefunctions HostAccessWavefunctions; -typedef KernelAccessWavefunctions DeviceAccessWavefunctions; + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- +} // end namespace mg5amcGpu/mg5amcCpu #endif // MemoryAccessWavefunctions_H diff --git a/epochX/cudacpp/gq_ttq.mad/SubProcesses/cudacpp.mk b/epochX/cudacpp/gq_ttq.mad/SubProcesses/cudacpp.mk index a0397e9ecc..c2f7b8e0f6 100644 --- a/epochX/cudacpp/gq_ttq.mad/SubProcesses/cudacpp.mk +++ b/epochX/cudacpp/gq_ttq.mad/SubProcesses/cudacpp.mk @@ -76,7 +76,7 @@ endif CXXFLAGS = $(OPTFLAGS) -std=c++17 $(INCFLAGS) -Wall -Wshadow -Wextra ifeq ($(shell $(CXX) --version | grep ^nvc++),) -CXXFLAGS+= -ffast-math # see issue #117 +CXXFLAGS += -ffast-math # see issue #117 endif ###CXXFLAGS+= -Ofast # performance is not different from --fast-math ###CXXFLAGS+= -g # FOR DEBUGGING ONLY @@ -122,7 +122,7 @@ ifneq ($(wildcard $(CUDA_HOME)/bin/nvcc),) CUINC = -I$(CUDA_HOME)/include/ CURANDLIBFLAGS = -L$(CUDA_HOME)/lib64/ -lcurand # NB: -lcuda is not needed here! CUOPTFLAGS = -lineinfo - CUFLAGS = $(OPTFLAGS) $(CUOPTFLAGS) $(INCFLAGS) $(CUINC) $(USE_NVTX) $(CUARCHFLAGS) -use_fast_math + CUFLAGS = $(foreach opt, $(OPTFLAGS), -Xcompiler $(opt)) $(CUOPTFLAGS) $(INCFLAGS) $(CUINC) $(USE_NVTX) $(CUARCHFLAGS) -use_fast_math ###CUFLAGS += -Xcompiler -Wall -Xcompiler -Wextra -Xcompiler -Wshadow ###NVCC_VERSION = $(shell $(NVCC) --version | grep 'Cuda compilation tools' | cut -d' ' -f5 | cut -d, -f1) CUFLAGS += -std=c++17 # need CUDA >= 11.2 (see #333): this is enforced in mgOnGpuConfig.h @@ -142,6 +142,8 @@ else override CUINC= override CURANDLIBFLAGS= endif +export NVCC +export CUFLAGS # Set the host C++ compiler for nvcc via "-ccbin " # (NB issue #505: this must be a single word, "clang++ --gcc-toolchain..." is not supported) @@ -439,7 +441,7 @@ endif # Target (and build options): debug MAKEDEBUG= -debug: OPTFLAGS = -g -O0 -DDEBUG2 +debug: OPTFLAGS = -g -O0 debug: CUOPTFLAGS = -G debug: MAKEDEBUG := debug debug: all.$(TAG) @@ -468,9 +470,9 @@ $(BUILDDIR)/%.o : %.cc *.h ../../src/*.h $(BUILDDIR)/.build.$(TAG) @if [ ! -d $(BUILDDIR) ]; then echo "mkdir -p $(BUILDDIR)"; mkdir -p $(BUILDDIR); fi $(CXX) $(CPPFLAGS) $(CXXFLAGS) -fPIC -c $< -o $@ -# Apply special build flags only to CrossSectionKernel.cc and gCrossSectionKernel.cu (no fast math, see #117) +# Apply special build flags only to CrossSectionKernel.cc and gCrossSectionKernel.cu (no fast math, see #117 and #516) ifeq ($(shell $(CXX) --version | grep ^nvc++),) -$(BUILDDIR)/CrossSectionKernels.o: CXXFLAGS += -fno-fast-math +$(BUILDDIR)/CrossSectionKernels.o: CXXFLAGS := $(filter-out -ffast-math,$(CXXFLAGS)) $(BUILDDIR)/CrossSectionKernels.o: CXXFLAGS += -fno-fast-math ifneq ($(NVCC),) $(BUILDDIR)/gCrossSectionKernels.o: CUFLAGS += -Xcompiler -fno-fast-math diff --git a/epochX/cudacpp/gq_ttq.mad/SubProcesses/runTest.cc b/epochX/cudacpp/gq_ttq.mad/SubProcesses/runTest.cc index 572e28aaea..df7488178e 100644 --- a/epochX/cudacpp/gq_ttq.mad/SubProcesses/runTest.cc +++ b/epochX/cudacpp/gq_ttq.mad/SubProcesses/runTest.cc @@ -2,6 +2,9 @@ // Licensed under the GNU Lesser General Public License (version 3 or later). // Created by: S. Hageboeck (Nov 2020) for the MG5aMC CUDACPP plugin. // Further modified by: S. Hageboeck, O. Mattelaer, S. Roiser, A. Valassi (2020-2023) for the MG5aMC CUDACPP plugin. +//---------------------------------------------------------------------------- +// Use ./runTest.exe --gtest_filter=*xxx to run only testxxx.cc tests +//---------------------------------------------------------------------------- #include "mgOnGpuConfig.h" diff --git a/epochX/cudacpp/gq_ttq.mad/SubProcesses/testmisc.cc b/epochX/cudacpp/gq_ttq.mad/SubProcesses/testmisc.cc index 989aba1fdc..895d6eeb56 100644 --- a/epochX/cudacpp/gq_ttq.mad/SubProcesses/testmisc.cc +++ b/epochX/cudacpp/gq_ttq.mad/SubProcesses/testmisc.cc @@ -3,7 +3,7 @@ // Created by: A. Valassi (Jan 2022) for the MG5aMC CUDACPP plugin. // Further modified by: A. Valassi (2022-2023) for the MG5aMC CUDACPP plugin. //---------------------------------------------------------------------------- -// Use ./runTest.exe --gtest_filter=*misc to run only this test +// Use ./runTest.exe --gtest_filter=*misc to run only testmisc.cc tests //---------------------------------------------------------------------------- #include "mgOnGpuConfig.h" @@ -25,33 +25,48 @@ #define XTESTID( s ) TESTID( s ) +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif +{ #ifdef MGONGPU_CPPSIMD /* clang-format off */ -bool maskand( const bool_v& mask ){ bool out = true; for ( int i=0; i #include +#include // debug #701 (see https://stackoverflow.com/a/17473528) #include #include #include @@ -28,16 +32,47 @@ #define XTESTID( s ) TESTID( s ) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif +{ + std::string FPEhandlerMessage = "unknown"; + int FPEhandlerIevt = -1; + inline void FPEhandler( int sig ) + { +#ifdef __CUDACC__ + std::cerr << "Floating Point Exception (GPU): '" << FPEhandlerMessage << "' ievt=" << FPEhandlerIevt << std::endl; +#else + std::cerr << "Floating Point Exception (CPU neppV=" << neppV << "): '" << FPEhandlerMessage << "' ievt=" << FPEhandlerIevt << std::endl; +#endif + exit( 0 ); + } +} + TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) { +#ifdef __CUDACC__ + using namespace mg5amcGpu; +#else + using namespace mg5amcCpu; +#endif +#ifndef __APPLE__ // test #701 (except on MacOS where feenableexcept is not defined #730) + const bool enableFPE = !getenv( "CUDACPP_RUNTIME_DISABLEFPE" ); + if( enableFPE ) + { + feenableexcept( FE_INVALID | FE_DIVBYZERO | FE_OVERFLOW | FE_UNDERFLOW ); // debug #701 + signal( SIGFPE, FPEhandler ); + } +#endif constexpr bool dumpEvents = false; // dump the expected output of the test? constexpr bool testEvents = !dumpEvents; // run the test? constexpr fptype toleranceXXXs = std::is_same::value ? 1.E-15 : 1.E-5; // Constant parameters constexpr int neppM = MemoryAccessMomenta::neppM; // AOSOA layout - using mgOnGpu::neppV; constexpr int np4 = CPPProcess::np4; - const int nevt = 16; // 12 independent tests plus 4 duplicates (need a multiple of 8 for floats or for '512z') + const int nevt = 32; // 12 independent tests plus 20 duplicates (need a multiple of 16 for floats '512z') assert( nevt % neppM == 0 ); // nevt must be a multiple of neppM assert( nevt % neppV == 0 ); // nevt must be a multiple of neppV // Fill in the input momenta @@ -46,24 +81,41 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) #else mg5amcCpu::HostBufferMomenta hstMomenta( nevt ); // AOSOA[npagM][npar=4][np4=4][neppM] #endif /* clang-format off */ + // NB NEW TESTS FOR DEBUGGING #701: KEEP TWO SEPARATE SETS (16-SIMD-VECTORS!) OF TESTS FOR M==0 AND M!=0! const fptype par0[np4 * nevt] = // AOS[nevt][np4] { - 500, 0, 0, 500, // #0 (m=0 pT=0 E=pz>0) - 500, 0, 0, -500, // #1 (m=0 pT=0 -E=pz<0) - 500, 300, 400, 0, // #2 (m=0 pT>0 pz=0) - 500, 180, 240, 400, // #3 (m=0 pT>0 pz>0) - 500, 180, 240, -400, // #4 (m=0 pT>0 pz<0) - 500, 0, 0, 0, // #5 (m=50>0 pT=0 pz=0) - 500, 0, 0, 300, // #6 (m=40>0 pT=0 pz>0) - 500, 0, 0, -300, // #7 (m=40>0 pT=0 pz<0) - 500, 180, 240, 0, // #8 (m=40>0 pT>0 pz=0) - 500, -240, -180, 0, // #9 (m=40>0 pT>0 pz=0) - 500, 180, 192, 144, // #10 (m=40>0 pT>0 pz>0) - 500, 180, 192, -144, // #11 (m=40>0 pT>0 pz<0) - 500, 0, 0, 500, // DUPLICATE #12 == #0 (m=0 pT=0 E=pz>0) - 500, 0, 0, -500, // DUPLICATE #13 == #1 (m=0 pT=0 -E=pz<0) - 500, 300, 400, 0, // DUPLICATE #14 == #2 (m=0 pT>0 pz=0) - 500, 180, 240, 400 // DUPLICATE #15 == #3 (m=0 pT>0 pz>0) + 500, 0, 0, 500, // #0 (m=0 pT=0 E=pz>0) + 500, 0, 0, -500, // #1 (m=0 pT=0 -E=pz<0) + 500, 300, 400, 0, // #2 (m=0 pT>0 pz=0) + 500, 180, 240, 400, // #3 (m=0 pT>0 pz>0) + 500, 180, 240, -400, // #4 (m=0 pT>0 pz<0) + 500, 0, 0, 500, // #5 DUPLICATE == #0 (m=0 pT=0 E=pz>0) + 500, 0, 0, -500, // #6 DUPLICATE == #1 (m=0 pT=0 -E=pz<0) + 500, 300, 400, 0, // #7 DUPLICATE == #2 (m=0 pT>0 pz=0) + 500, 180, 240, 400, // #8 DUPLICATE == #3 (m=0 pT>0 pz>0) + 500, 180, 240, -400, // #9 DUPLICATE == #4 (m=0 pT>0 pz<0) + 500, 0, 0, 500, // #10 DUPLICATE == #0 (m=0 pT=0 E=pz>0) + 500, 0, 0, -500, // #11 DUPLICATE == #1 (m=0 pT=0 -E=pz<0) + 500, 300, 400, 0, // #12 DUPLICATE == #2 (m=0 pT>0 pz=0) + 500, 180, 240, 400, // #13 DUPLICATE == #3 (m=0 pT>0 pz>0) + 500, 180, 240, -400, // #14 DUPLICATE == #4 (m=0 pT>0 pz<0) + 500, 0, 0, 500, // #15 DUPLICATE == #0 (m=0 pT=0 E=pz>0) + 500, 0, 0, 0, // #16 (m=50>0 pT=0 pz=0) + 500, 0, 0, 300, // #17 (m=40>0 pT=0 pz>0) + 500, 0, 0, -300, // #18 (m=40>0 pT=0 pz<0) + 500, 180, 240, 0, // #19 (m=40>0 pT>0 pz=0) + 500, -240, -180, 0, // #20 (m=40>0 pT>0 pz=0) + 500, 180, 192, 144, // #21 (m=40>0 pT>0 pz>0) + 500, 180, 192, -144, // #22 (m=40>0 pT>0 pz<0) + 500, 0, 0, 0, // #23 DUPLICATE == #16 (m=50>0 pT=0 pz=0) + 500, 0, 0, 300, // #24 DUPLICATE == #17 (m=40>0 pT=0 pz>0) + 500, 0, 0, -300, // #25 DUPLICATE == #18 (m=40>0 pT=0 pz<0) + 500, 180, 240, 0, // #26 DUPLICATE == #19 (m=40>0 pT>0 pz=0) + 500, -240, -180, 0, // #27 DUPLICATE == #20 (m=40>0 pT>0 pz=0) + 500, 180, 192, 144, // #28 DUPLICATE == #21 (m=40>0 pT>0 pz>0) + 500, 180, 192, -144, // #29 DUPLICATE == #22 (m=40>0 pT>0 pz<0) + 500, 0, 0, 0, // #30 DUPLICATE == #16 (m=50>0 pT=0 pz=0) + 500, 0, 0, 300 // #31 DUPLICATE == #17 (m=40>0 pT=0 pz>0) }; /* clang-format on */ // Array initialization: zero-out as "{0}" (C and C++) or as "{}" (C++ only) // See https://en.cppreference.com/w/c/language/array_initialization#Notes @@ -99,7 +151,15 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) constexpr int nw6 = CPPProcess::nw6; // dimensions of each wavefunction (HELAS KEK 91-11): e.g. 6 for e+ e- -> mu+ mu- (fermions and vectors) int itest = 0; // index on the expected output vector std::ofstream dumpFile; - if( dumpEvents ) dumpFile.open( dumpFileName, std::ios::trunc ); + if( dumpEvents ) + { + dumpFile.open( dumpFileName, std::ios::trunc ); + dumpFile << " // Copyright (C) 2020-2023 CERN and UCLouvain." << std::endl + << " // Licensed under the GNU Lesser General Public License (version 3 or later)." << std::endl + << " // Created by: A. Valassi (Apr 2021) for the MG5aMC CUDACPP plugin." << std::endl + << " // Further modified by: A. Valassi (2021-2023) for the MG5aMC CUDACPP plugin." << std::endl; + } + // Lambda function for dumping wavefunctions auto dumpwf6 = [&]( std::ostream& out, const cxtype_sv wf[6], const char* xxx, int ievt, int nsp, fptype mass ) { out << std::setprecision( 15 ) << std::scientific; @@ -129,6 +189,7 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) } out << std::defaultfloat; }; + // Lambda function for testing wavefunctions (1) auto testwf6 = [&]( const cxtype_sv wf[6], const char* xxx, int ievt, int nsp, fptype mass ) { if( dumpEvents ) dumpwf6( dumpFile, wf, xxx, ievt, nsp, mass ); @@ -170,6 +231,7 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) } itest++; }; + // Lambda function for testing wavefunctions (2) auto testwf6two = [&]( const cxtype_sv wf[6], const cxtype_sv expwf[6], const char* xxx, int ievt ) { if( testEvents ) @@ -213,6 +275,32 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) } } }; + // Lambda function for resetting hstMomenta to the values of par0 + // This is needed in each test because hstMomenta may have been modified to ensure a function like ipzxxx can be used (#701) + auto resetHstMomentaToPar0 = [&]() + { + for( int ievt = 0; ievt < nevt; ievt++ ) + for( int ip4 = 0; ip4 < np4; ip4++ ) + MemoryAccessMomenta::ieventAccessIp4Ipar( hstMomenta.data(), ievt, ip4, ipar0 ) = par0[ievt * np4 + ip4]; // AOS to AOSOA + }; + // Lambda function for preparing the test of one specific function + const bool debug = false; + auto prepareTest = [&]( const char* xxx, int ievt ) + { + if( debug ) std::cout << "Prepare test " << xxx << " ievt=" << ievt << std::endl; + resetHstMomentaToPar0(); + FPEhandlerMessage = xxx; + FPEhandlerIevt = ievt; + if( std::string( xxx ) == "ipzxxx" || std::string( xxx ) == "opzxxx" || std::string( xxx ) == "imzxxx" || std::string( xxx ) == "omzxxx" || std::string( xxx ) == "ixzxxx" || std::string( xxx ) == "oxzxxx" ) + { + // Modify hstMomenta so that ALL events have the momenta of a single ievt + // This ensures that a function like ipzxxx (which assumes pZ>0) can be used without triggering FPEs (#701) + // This is done by filling the full SIMD vector with the value of ievt, which was already tested to respect the relevant assumptions + for( int jevt = 0; jevt < nevt; jevt++ ) + for( int ip4 = 0; ip4 < np4; ip4++ ) + MemoryAccessMomenta::ieventAccessIp4Ipar( hstMomenta.data(), jevt, ip4, ipar0 ) = par0[ievt * np4 + ip4]; // AOS to AOSOA + } + }; // Array initialization: zero-out as "{0}" (C and C++) or as "{}" (C++ only) // See https://en.cppreference.com/w/c/language/array_initialization#Notes cxtype_sv outwfI[6] = {}; // last result of ixxxxx (mass==0) @@ -224,6 +312,7 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) fptype* fp_outwf = reinterpret_cast( outwf ); // proof of concept for using fptype* in the interface fptype* fp_outwf3 = reinterpret_cast( outwf3 ); // proof of concept for using fptype* in the interface const int nhel = 1; + // *** START OF TESTING LOOP for( auto nsp: { -1, +1 } ) // antifermion/fermion (or initial/final for scalar and vector) { for( int ievt = 0; ievt < nevt; ievt++ ) @@ -233,9 +322,10 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) #else using namespace mg5amcCpu; #endif - if( false ) + if( debug ) { std::cout << std::endl; + std::cout << "nsp=" << nsp << " ievt=" << ievt << ": "; for( int ip4 = 0; ip4 < np4; ip4++ ) std::cout << par0[ievt * np4 + ip4] << ", "; std::cout << std::endl; } @@ -243,6 +333,7 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) const fptype* ievt0Momenta = MemoryAccessMomenta::ieventAccessRecordConst( hstMomenta.data(), ipagV * neppV ); // Test ixxxxx - NO ASSUMPTIONS { + prepareTest( "ixxxxx", ievt ); const fptype fmass = mass0[ievt]; ixxxxx( ievt0Momenta, fmass, nhel, nsp, fp_outwfI, ipar0 ); testwf6( outwfI, "ixxxxx", ievt, nsp, fmass ); @@ -252,6 +343,7 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) // Test ipzxxx - ASSUMPTIONS: (FMASS == 0) and (PX == PY == 0 and E == +PZ > 0) if( mass0[ievt] == 0 && !isptgt0[ievt] && ispzgt0[ievt] ) { + prepareTest( "ipzxxx", ievt ); ipzxxx( ievt0Momenta, nhel, nsp, fp_outwf, ipar0 ); testwf6two( outwf, outwfI, "ipzxxx", ievt ); testwf6( outwf, "ipzxxx", ievt, nsp, 0 ); @@ -259,6 +351,7 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) // Test imzxxx - ASSUMPTIONS: (FMASS == 0) and (PX == PY == 0 and E == -PZ > 0) if( mass0[ievt] == 0 && !isptgt0[ievt] && ispzlt0[ievt] ) { + prepareTest( "imzxxx", ievt ); imzxxx( ievt0Momenta, nhel, nsp, fp_outwf, ipar0 ); testwf6two( outwf, outwfI, "imzxxx", ievt ); testwf6( outwf, "imzxxx", ievt, nsp, 0 ); @@ -266,12 +359,14 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) // Test ixzxxx - ASSUMPTIONS: (FMASS == 0) and (PT > 0) if( mass0[ievt] == 0 && isptgt0[ievt] ) { + prepareTest( "ixzxxx", ievt ); ixzxxx( ievt0Momenta, nhel, nsp, fp_outwf, ipar0 ); testwf6two( outwf, outwfI, "ixzxxx", ievt ); testwf6( outwf, "ixzxxx", ievt, nsp, 0 ); } // Test vxxxxx - NO ASSUMPTIONS { + prepareTest( "vxxxxx", ievt ); const fptype vmass = mass0[ievt]; vxxxxx( ievt0Momenta, vmass, nhel, nsp, fp_outwf, ipar0 ); testwf6( outwf, "vxxxxx", ievt, nsp, vmass ); @@ -280,6 +375,7 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) } // Test sxxxxx - NO ASSUMPTIONS { + prepareTest( "sxxxxx", ievt ); const fptype smass = mass0[ievt]; sxxxxx( ievt0Momenta, nsp, fp_outwf3, ipar0 ); // no mass, no helicity (was "smass>0") testwf6( outwf3, "sxxxxx", ievt, nsp, smass ); @@ -288,6 +384,7 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) } // Test oxxxxx - NO ASSUMPTIONS { + prepareTest( "oxxxxx", ievt ); const fptype fmass = mass0[ievt]; oxxxxx( ievt0Momenta, fmass, nhel, nsp, fp_outwfO, ipar0 ); testwf6( outwfO, "oxxxxx", ievt, nsp, fmass ); @@ -297,6 +394,7 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) // Test opzxxx - ASSUMPTIONS: (FMASS == 0) and (PX == PY == 0 and E == +PZ > 0) if( mass0[ievt] == 0 && !isptgt0[ievt] && ispzgt0[ievt] ) { + prepareTest( "opzxxx", ievt ); opzxxx( ievt0Momenta, nhel, nsp, fp_outwf, ipar0 ); testwf6two( outwf, outwfO, "opzxxx", ievt ); testwf6( outwf, "opzxxx", ievt, nsp, 0 ); @@ -304,6 +402,7 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) // Test omzxxx - ASSUMPTIONS: (FMASS == 0) and (PX == PY == 0 and E == -PZ > 0) if( mass0[ievt] == 0 && !isptgt0[ievt] && ispzlt0[ievt] ) { + prepareTest( "omzxxx", ievt ); omzxxx( ievt0Momenta, nhel, nsp, fp_outwf, ipar0 ); testwf6two( outwf, outwfO, "omzxxx", ievt ); testwf6( outwf, "omzxxx", ievt, nsp, 0 ); @@ -311,17 +410,25 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) // Test oxzxxx - ASSUMPTIONS: (FMASS == 0) and (PT > 0) if( mass0[ievt] == 0 && isptgt0[ievt] ) { - oxzxxx( ievt0Momenta, nhel, nsp, reinterpret_cast( outwf ), ipar0 ); + prepareTest( "oxzxxx", ievt ); + oxzxxx( ievt0Momenta, nhel, nsp, fp_outwf, ipar0 ); testwf6two( outwf, outwfO, "oxzxxx", ievt ); testwf6( outwf, "oxzxxx", ievt, nsp, 0 ); } } } + // *** END OF TESTING LOOP if( dumpEvents ) { dumpFile.close(); std::cout << "INFO: New reference data dumped to file '" << dumpFileName << "'" << std::endl; } +#ifndef __APPLE__ // test #701 (except on MacOS where fedisableexcept is not defined #730) + if( enableFPE ) + { + fedisableexcept( FE_INVALID | FE_DIVBYZERO | FE_OVERFLOW | FE_UNDERFLOW ); // debug #701 + } +#endif } //========================================================================== diff --git a/epochX/cudacpp/gq_ttq.mad/SubProcesses/testxxx_cc_ref.txt b/epochX/cudacpp/gq_ttq.mad/SubProcesses/testxxx_cc_ref.txt index acb9bde918..637530d1f5 100644 --- a/epochX/cudacpp/gq_ttq.mad/SubProcesses/testxxx_cc_ref.txt +++ b/epochX/cudacpp/gq_ttq.mad/SubProcesses/testxxx_cc_ref.txt @@ -5,14 +5,14 @@ expwfs.push_back( { // --------- 5.000000000000000e+02, 5.000000000000000e+02, // itest=0: ixxxxx#0 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=0: ixxxxx#0 nsp=-1 mass=0 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=0: ixxxxx#0 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=0: ixxxxx#0 nsp=-1 mass=0 -3.162277660168379e+01, 0.000000000000000e+00, // itest=0: ixxxxx#0 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=0: ixxxxx#0 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=0: ixxxxx#0 nsp=-1 mass=0 expwfs.push_back( { // --------- 5.000000000000000e+02, 5.000000000000000e+02, // itest=1: ixxxxx#0 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=1: ixxxxx#0 nsp=-1 mass=0 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=1: ixxxxx#0 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=1: ixxxxx#0 nsp=-1 mass=0 -3.162277660168379e+01, 0.000000000000000e+00, // itest=1: ixxxxx#0 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=1: ixxxxx#0 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=1: ixxxxx#0 nsp=-1 mass=0 @@ -82,8 +82,8 @@ expwfs.push_back( { // --------- 5.000000000000000e+02, -5.000000000000000e+02, // itest=11: ixxxxx#1 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=11: ixxxxx#1 nsp=-1 mass=0 - -3.162277660168379e+01, -0.000000000000000e+00, // itest=11: ixxxxx#1 nsp=-1 mass=0 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=11: ixxxxx#1 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=11: ixxxxx#1 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=11: ixxxxx#1 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=11: ixxxxx#1 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=11: ixxxxx#1 nsp=-1 mass=0 expwfs.push_back( { // --------- @@ -133,8 +133,8 @@ -0.000000000000000e+00, -0.000000000000000e+00, // itest=18: oxxxxx#1 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=18: oxxxxx#1 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=18: oxxxxx#1 nsp=-1 mass=0 - -3.162277660168379e+01, -0.000000000000000e+00, // itest=18: oxxxxx#1 nsp=-1 mass=0 - -0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=18: oxxxxx#1 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=18: oxxxxx#1 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=18: oxxxxx#1 nsp=-1 mass=0 expwfs.push_back( { // --------- -5.000000000000000e+02, 5.000000000000000e+02, // itest=19: omzxxx#1 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=19: omzxxx#1 nsp=-1 mass=0 @@ -145,14 +145,14 @@ expwfs.push_back( { // --------- 5.000000000000000e+02, 0.000000000000000e+00, // itest=20: ixxxxx#2 nsp=-1 mass=0 3.000000000000000e+02, 4.000000000000000e+02, // itest=20: ixxxxx#2 nsp=-1 mass=0 - 1.341640786499874e+01, -1.788854381999832e+01, // itest=20: ixxxxx#2 nsp=-1 mass=0 + 1.341640786499874e+01, -1.788854381999831e+01, // itest=20: ixxxxx#2 nsp=-1 mass=0 -2.236067977499790e+01, 0.000000000000000e+00, // itest=20: ixxxxx#2 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=20: ixxxxx#2 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=20: ixxxxx#2 nsp=-1 mass=0 expwfs.push_back( { // --------- 5.000000000000000e+02, 0.000000000000000e+00, // itest=21: ixxxxx#2 nsp=-1 mass=0 3.000000000000000e+02, 4.000000000000000e+02, // itest=21: ixxxxx#2 nsp=-1 mass=0 - 1.341640786499874e+01, -1.788854381999832e+01, // itest=21: ixxxxx#2 nsp=-1 mass=0 + 1.341640786499874e+01, -1.788854381999831e+01, // itest=21: ixxxxx#2 nsp=-1 mass=0 -2.236067977499790e+01, 0.000000000000000e+00, // itest=21: ixxxxx#2 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=21: ixxxxx#2 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=21: ixxxxx#2 nsp=-1 mass=0 @@ -196,14 +196,14 @@ -3.000000000000000e+02, -4.000000000000000e+02, // itest=27: oxxxxx#2 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=27: oxxxxx#2 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=27: oxxxxx#2 nsp=-1 mass=0 - 1.341640786499874e+01, 1.788854381999832e+01, // itest=27: oxxxxx#2 nsp=-1 mass=0 + 1.341640786499874e+01, 1.788854381999831e+01, // itest=27: oxxxxx#2 nsp=-1 mass=0 -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=27: oxxxxx#2 nsp=-1 mass=0 expwfs.push_back( { // --------- -5.000000000000000e+02, -0.000000000000000e+00, // itest=28: oxxxxx#2 nsp=-1 mass=0 -3.000000000000000e+02, -4.000000000000000e+02, // itest=28: oxxxxx#2 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=28: oxxxxx#2 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=28: oxxxxx#2 nsp=-1 mass=0 - 1.341640786499874e+01, 1.788854381999832e+01, // itest=28: oxxxxx#2 nsp=-1 mass=0 + 1.341640786499874e+01, 1.788854381999831e+01, // itest=28: oxxxxx#2 nsp=-1 mass=0 -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=28: oxxxxx#2 nsp=-1 mass=0 expwfs.push_back( { // --------- -5.000000000000000e+02, -0.000000000000000e+00, // itest=29: oxzxxx#2 nsp=-1 mass=0 @@ -353,1696 +353,3684 @@ 1.800000000000000e+01, 2.400000000000000e+01, // itest=49: oxzxxx#4 nsp=-1 mass=0 -1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=49: oxzxxx#4 nsp=-1 mass=0 expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=50: ixxxxx#5 nsp=-1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=50: ixxxxx#5 nsp=-1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=50: ixxxxx#5 nsp=-1 mass=500 - -2.236067977499790e+01, 0.000000000000000e+00, // itest=50: ixxxxx#5 nsp=-1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=50: ixxxxx#5 nsp=-1 mass=500 - 2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=50: ixxxxx#5 nsp=-1 mass=500 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=51: ixxxxx#5 nsp=-1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=51: ixxxxx#5 nsp=-1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=51: ixxxxx#5 nsp=-1 mass=-500 - -2.236067977499790e+01, 0.000000000000000e+00, // itest=51: ixxxxx#5 nsp=-1 mass=-500 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=51: ixxxxx#5 nsp=-1 mass=-500 - -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=51: ixxxxx#5 nsp=-1 mass=-500 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=52: vxxxxx#5 nsp=-1 mass=500 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=52: vxxxxx#5 nsp=-1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=52: vxxxxx#5 nsp=-1 mass=500 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=52: vxxxxx#5 nsp=-1 mass=500 - 0.000000000000000e+00, -7.071067811865476e-01, // itest=52: vxxxxx#5 nsp=-1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=52: vxxxxx#5 nsp=-1 mass=500 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=53: vxxxxx#5 nsp=-1 mass=-500 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=53: vxxxxx#5 nsp=-1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=53: vxxxxx#5 nsp=-1 mass=-500 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=53: vxxxxx#5 nsp=-1 mass=-500 - 0.000000000000000e+00, -7.071067811865476e-01, // itest=53: vxxxxx#5 nsp=-1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=53: vxxxxx#5 nsp=-1 mass=-500 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=54: sxxxxx#5 nsp=-1 mass=500 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=54: sxxxxx#5 nsp=-1 mass=500 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=54: sxxxxx#5 nsp=-1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=54: sxxxxx#5 nsp=-1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=54: sxxxxx#5 nsp=-1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=54: sxxxxx#5 nsp=-1 mass=500 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=55: sxxxxx#5 nsp=-1 mass=-500 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=55: sxxxxx#5 nsp=-1 mass=-500 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=55: sxxxxx#5 nsp=-1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=55: sxxxxx#5 nsp=-1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=55: sxxxxx#5 nsp=-1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=55: sxxxxx#5 nsp=-1 mass=-500 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=56: oxxxxx#5 nsp=-1 mass=500 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=56: oxxxxx#5 nsp=-1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=56: oxxxxx#5 nsp=-1 mass=500 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=56: oxxxxx#5 nsp=-1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=56: oxxxxx#5 nsp=-1 mass=500 - -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=56: oxxxxx#5 nsp=-1 mass=500 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=57: oxxxxx#5 nsp=-1 mass=-500 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=57: oxxxxx#5 nsp=-1 mass=-500 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=57: oxxxxx#5 nsp=-1 mass=-500 - -2.236067977499790e+01, 0.000000000000000e+00, // itest=57: oxxxxx#5 nsp=-1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=57: oxxxxx#5 nsp=-1 mass=-500 - -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=57: oxxxxx#5 nsp=-1 mass=-500 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 3.000000000000000e+02, // itest=58: ixxxxx#6 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=58: ixxxxx#6 nsp=-1 mass=400 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=58: ixxxxx#6 nsp=-1 mass=400 - -2.828427124746190e+01, -0.000000000000000e+00, // itest=58: ixxxxx#6 nsp=-1 mass=400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=58: ixxxxx#6 nsp=-1 mass=400 - 1.414213562373095e+01, 0.000000000000000e+00 } ); // itest=58: ixxxxx#6 nsp=-1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 3.000000000000000e+02, // itest=59: ixxxxx#6 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=59: ixxxxx#6 nsp=-1 mass=-400 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=59: ixxxxx#6 nsp=-1 mass=-400 - -2.828427124746190e+01, -0.000000000000000e+00, // itest=59: ixxxxx#6 nsp=-1 mass=-400 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=59: ixxxxx#6 nsp=-1 mass=-400 - -1.414213562373095e+01, -0.000000000000000e+00 } ); // itest=59: ixxxxx#6 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -3.000000000000000e+02, // itest=60: vxxxxx#6 nsp=-1 mass=400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=60: vxxxxx#6 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=60: vxxxxx#6 nsp=-1 mass=400 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=60: vxxxxx#6 nsp=-1 mass=400 - 0.000000000000000e+00, -7.071067811865476e-01, // itest=60: vxxxxx#6 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=60: vxxxxx#6 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -3.000000000000000e+02, // itest=61: vxxxxx#6 nsp=-1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=61: vxxxxx#6 nsp=-1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=61: vxxxxx#6 nsp=-1 mass=-400 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=61: vxxxxx#6 nsp=-1 mass=-400 - 0.000000000000000e+00, -7.071067811865476e-01, // itest=61: vxxxxx#6 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=61: vxxxxx#6 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -3.000000000000000e+02, // itest=62: sxxxxx#6 nsp=-1 mass=400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=62: sxxxxx#6 nsp=-1 mass=400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=62: sxxxxx#6 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=62: sxxxxx#6 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=62: sxxxxx#6 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=62: sxxxxx#6 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -3.000000000000000e+02, // itest=63: sxxxxx#6 nsp=-1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=63: sxxxxx#6 nsp=-1 mass=-400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=63: sxxxxx#6 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=63: sxxxxx#6 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=63: sxxxxx#6 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=63: sxxxxx#6 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -3.000000000000000e+02, // itest=64: oxxxxx#6 nsp=-1 mass=400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=64: oxxxxx#6 nsp=-1 mass=400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=64: oxxxxx#6 nsp=-1 mass=400 - 1.414213562373095e+01, 0.000000000000000e+00, // itest=64: oxxxxx#6 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=64: oxxxxx#6 nsp=-1 mass=400 - -2.828427124746190e+01, -0.000000000000000e+00 } ); // itest=64: oxxxxx#6 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -3.000000000000000e+02, // itest=65: oxxxxx#6 nsp=-1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=65: oxxxxx#6 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=65: oxxxxx#6 nsp=-1 mass=-400 - -1.414213562373095e+01, -0.000000000000000e+00, // itest=65: oxxxxx#6 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=65: oxxxxx#6 nsp=-1 mass=-400 - -2.828427124746190e+01, -0.000000000000000e+00 } ); // itest=65: oxxxxx#6 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -3.000000000000000e+02, // itest=66: ixxxxx#7 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=66: ixxxxx#7 nsp=-1 mass=400 - -2.828427124746190e+01, -0.000000000000000e+00, // itest=66: ixxxxx#7 nsp=-1 mass=400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=66: ixxxxx#7 nsp=-1 mass=400 - 1.414213562373095e+01, 0.000000000000000e+00, // itest=66: ixxxxx#7 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=66: ixxxxx#7 nsp=-1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -3.000000000000000e+02, // itest=67: ixxxxx#7 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=67: ixxxxx#7 nsp=-1 mass=-400 - -2.828427124746190e+01, -0.000000000000000e+00, // itest=67: ixxxxx#7 nsp=-1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=67: ixxxxx#7 nsp=-1 mass=-400 - -1.414213562373095e+01, -0.000000000000000e+00, // itest=67: ixxxxx#7 nsp=-1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=67: ixxxxx#7 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 3.000000000000000e+02, // itest=68: vxxxxx#7 nsp=-1 mass=400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=68: vxxxxx#7 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=68: vxxxxx#7 nsp=-1 mass=400 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=68: vxxxxx#7 nsp=-1 mass=400 - 0.000000000000000e+00, 7.071067811865476e-01, // itest=68: vxxxxx#7 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=68: vxxxxx#7 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 3.000000000000000e+02, // itest=69: vxxxxx#7 nsp=-1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=69: vxxxxx#7 nsp=-1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=69: vxxxxx#7 nsp=-1 mass=-400 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=69: vxxxxx#7 nsp=-1 mass=-400 - 0.000000000000000e+00, 7.071067811865476e-01, // itest=69: vxxxxx#7 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=69: vxxxxx#7 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 3.000000000000000e+02, // itest=70: sxxxxx#7 nsp=-1 mass=400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=70: sxxxxx#7 nsp=-1 mass=400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=70: sxxxxx#7 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=70: sxxxxx#7 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=70: sxxxxx#7 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=70: sxxxxx#7 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 3.000000000000000e+02, // itest=71: sxxxxx#7 nsp=-1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=71: sxxxxx#7 nsp=-1 mass=-400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=71: sxxxxx#7 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=71: sxxxxx#7 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=71: sxxxxx#7 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=71: sxxxxx#7 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 3.000000000000000e+02, // itest=72: oxxxxx#7 nsp=-1 mass=400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=72: oxxxxx#7 nsp=-1 mass=400 - 1.414213562373095e+01, 0.000000000000000e+00, // itest=72: oxxxxx#7 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=72: oxxxxx#7 nsp=-1 mass=400 - -2.828427124746190e+01, -0.000000000000000e+00, // itest=72: oxxxxx#7 nsp=-1 mass=400 - -0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=72: oxxxxx#7 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 3.000000000000000e+02, // itest=73: oxxxxx#7 nsp=-1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=73: oxxxxx#7 nsp=-1 mass=-400 - -1.414213562373095e+01, -0.000000000000000e+00, // itest=73: oxxxxx#7 nsp=-1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=73: oxxxxx#7 nsp=-1 mass=-400 - -2.828427124746190e+01, -0.000000000000000e+00, // itest=73: oxxxxx#7 nsp=-1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=73: oxxxxx#7 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=74: ixxxxx#8 nsp=-1 mass=400 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=74: ixxxxx#8 nsp=-1 mass=400 - 1.200000000000000e+01, -1.600000000000000e+01, // itest=74: ixxxxx#8 nsp=-1 mass=400 - -2.000000000000000e+01, -0.000000000000000e+00, // itest=74: ixxxxx#8 nsp=-1 mass=400 - -5.999999999999999e+00, 7.999999999999999e+00, // itest=74: ixxxxx#8 nsp=-1 mass=400 - 1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=74: ixxxxx#8 nsp=-1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=75: ixxxxx#8 nsp=-1 mass=-400 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=75: ixxxxx#8 nsp=-1 mass=-400 - 1.200000000000000e+01, -1.600000000000000e+01, // itest=75: ixxxxx#8 nsp=-1 mass=-400 - -2.000000000000000e+01, -0.000000000000000e+00, // itest=75: ixxxxx#8 nsp=-1 mass=-400 - 5.999999999999999e+00, -7.999999999999999e+00, // itest=75: ixxxxx#8 nsp=-1 mass=-400 - -1.000000000000000e+01, -0.000000000000000e+00 } ); // itest=75: ixxxxx#8 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=76: vxxxxx#8 nsp=-1 mass=400 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=76: vxxxxx#8 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=76: vxxxxx#8 nsp=-1 mass=400 - 0.000000000000000e+00, 5.656854249492381e-01, // itest=76: vxxxxx#8 nsp=-1 mass=400 - 0.000000000000000e+00, -4.242640687119285e-01, // itest=76: vxxxxx#8 nsp=-1 mass=400 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=76: vxxxxx#8 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=77: vxxxxx#8 nsp=-1 mass=-400 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=77: vxxxxx#8 nsp=-1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=77: vxxxxx#8 nsp=-1 mass=-400 - -0.000000000000000e+00, 5.656854249492381e-01, // itest=77: vxxxxx#8 nsp=-1 mass=-400 - -0.000000000000000e+00, -4.242640687119285e-01, // itest=77: vxxxxx#8 nsp=-1 mass=-400 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=77: vxxxxx#8 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=78: sxxxxx#8 nsp=-1 mass=400 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=78: sxxxxx#8 nsp=-1 mass=400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=78: sxxxxx#8 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=78: sxxxxx#8 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=78: sxxxxx#8 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=78: sxxxxx#8 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=79: sxxxxx#8 nsp=-1 mass=-400 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=79: sxxxxx#8 nsp=-1 mass=-400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=79: sxxxxx#8 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=79: sxxxxx#8 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=79: sxxxxx#8 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=79: sxxxxx#8 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=80: oxxxxx#8 nsp=-1 mass=400 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=80: oxxxxx#8 nsp=-1 mass=400 - -5.999999999999999e+00, -7.999999999999999e+00, // itest=80: oxxxxx#8 nsp=-1 mass=400 - 1.000000000000000e+01, 0.000000000000000e+00, // itest=80: oxxxxx#8 nsp=-1 mass=400 - 1.200000000000000e+01, 1.600000000000000e+01, // itest=80: oxxxxx#8 nsp=-1 mass=400 - -2.000000000000000e+01, -0.000000000000000e+00 } ); // itest=80: oxxxxx#8 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=81: oxxxxx#8 nsp=-1 mass=-400 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=81: oxxxxx#8 nsp=-1 mass=-400 - 5.999999999999999e+00, 7.999999999999999e+00, // itest=81: oxxxxx#8 nsp=-1 mass=-400 - -1.000000000000000e+01, -0.000000000000000e+00, // itest=81: oxxxxx#8 nsp=-1 mass=-400 - 1.200000000000000e+01, 1.600000000000000e+01, // itest=81: oxxxxx#8 nsp=-1 mass=-400 - -2.000000000000000e+01, -0.000000000000000e+00 } ); // itest=81: oxxxxx#8 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=82: ixxxxx#9 nsp=-1 mass=400 - -2.400000000000000e+02, -1.800000000000000e+02, // itest=82: ixxxxx#9 nsp=-1 mass=400 - -1.600000000000000e+01, 1.200000000000000e+01, // itest=82: ixxxxx#9 nsp=-1 mass=400 - -2.000000000000000e+01, -0.000000000000000e+00, // itest=82: ixxxxx#9 nsp=-1 mass=400 - 7.999999999999999e+00, -5.999999999999999e+00, // itest=82: ixxxxx#9 nsp=-1 mass=400 - 1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=82: ixxxxx#9 nsp=-1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=83: ixxxxx#9 nsp=-1 mass=-400 - -2.400000000000000e+02, -1.800000000000000e+02, // itest=83: ixxxxx#9 nsp=-1 mass=-400 - -1.600000000000000e+01, 1.200000000000000e+01, // itest=83: ixxxxx#9 nsp=-1 mass=-400 - -2.000000000000000e+01, -0.000000000000000e+00, // itest=83: ixxxxx#9 nsp=-1 mass=-400 - -7.999999999999999e+00, 5.999999999999999e+00, // itest=83: ixxxxx#9 nsp=-1 mass=-400 - -1.000000000000000e+01, -0.000000000000000e+00 } ); // itest=83: ixxxxx#9 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=84: vxxxxx#9 nsp=-1 mass=400 - 2.400000000000000e+02, 1.800000000000000e+02, // itest=84: vxxxxx#9 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=84: vxxxxx#9 nsp=-1 mass=400 - 0.000000000000000e+00, -4.242640687119285e-01, // itest=84: vxxxxx#9 nsp=-1 mass=400 - 0.000000000000000e+00, 5.656854249492381e-01, // itest=84: vxxxxx#9 nsp=-1 mass=400 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=84: vxxxxx#9 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=85: vxxxxx#9 nsp=-1 mass=-400 - 2.400000000000000e+02, 1.800000000000000e+02, // itest=85: vxxxxx#9 nsp=-1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=85: vxxxxx#9 nsp=-1 mass=-400 - 0.000000000000000e+00, -4.242640687119285e-01, // itest=85: vxxxxx#9 nsp=-1 mass=-400 - 0.000000000000000e+00, 5.656854249492381e-01, // itest=85: vxxxxx#9 nsp=-1 mass=-400 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=85: vxxxxx#9 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=86: sxxxxx#9 nsp=-1 mass=400 - 2.400000000000000e+02, 1.800000000000000e+02, // itest=86: sxxxxx#9 nsp=-1 mass=400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=86: sxxxxx#9 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=86: sxxxxx#9 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=86: sxxxxx#9 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=86: sxxxxx#9 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=87: sxxxxx#9 nsp=-1 mass=-400 - 2.400000000000000e+02, 1.800000000000000e+02, // itest=87: sxxxxx#9 nsp=-1 mass=-400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=87: sxxxxx#9 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=87: sxxxxx#9 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=87: sxxxxx#9 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=87: sxxxxx#9 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=88: oxxxxx#9 nsp=-1 mass=400 - 2.400000000000000e+02, 1.800000000000000e+02, // itest=88: oxxxxx#9 nsp=-1 mass=400 - 7.999999999999999e+00, 5.999999999999999e+00, // itest=88: oxxxxx#9 nsp=-1 mass=400 - 1.000000000000000e+01, 0.000000000000000e+00, // itest=88: oxxxxx#9 nsp=-1 mass=400 - -1.600000000000000e+01, -1.200000000000000e+01, // itest=88: oxxxxx#9 nsp=-1 mass=400 - -2.000000000000000e+01, -0.000000000000000e+00 } ); // itest=88: oxxxxx#9 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=89: oxxxxx#9 nsp=-1 mass=-400 - 2.400000000000000e+02, 1.800000000000000e+02, // itest=89: oxxxxx#9 nsp=-1 mass=-400 - -7.999999999999999e+00, -5.999999999999999e+00, // itest=89: oxxxxx#9 nsp=-1 mass=-400 - -1.000000000000000e+01, -0.000000000000000e+00, // itest=89: oxxxxx#9 nsp=-1 mass=-400 - -1.600000000000000e+01, -1.200000000000000e+01, // itest=89: oxxxxx#9 nsp=-1 mass=-400 - -2.000000000000000e+01, -0.000000000000000e+00 } ); // itest=89: oxxxxx#9 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 1.440000000000000e+02, // itest=90: ixxxxx#10 nsp=-1 mass=400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=90: ixxxxx#10 nsp=-1 mass=400 - 9.863939238321439e+00, -1.052153518754287e+01, // itest=90: ixxxxx#10 nsp=-1 mass=400 - -2.433105012119288e+01, -0.000000000000000e+00, // itest=90: ixxxxx#10 nsp=-1 mass=400 - -4.931969619160719e+00, 5.260767593771432e+00, // itest=90: ixxxxx#10 nsp=-1 mass=400 - 1.216552506059644e+01, 0.000000000000000e+00 } ); // itest=90: ixxxxx#10 nsp=-1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 1.440000000000000e+02, // itest=91: ixxxxx#10 nsp=-1 mass=-400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=91: ixxxxx#10 nsp=-1 mass=-400 - 9.863939238321439e+00, -1.052153518754287e+01, // itest=91: ixxxxx#10 nsp=-1 mass=-400 - -2.433105012119288e+01, -0.000000000000000e+00, // itest=91: ixxxxx#10 nsp=-1 mass=-400 - 4.931969619160719e+00, -5.260767593771432e+00, // itest=91: ixxxxx#10 nsp=-1 mass=-400 - -1.216552506059644e+01, -0.000000000000000e+00 } ); // itest=91: ixxxxx#10 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -1.440000000000000e+02, // itest=92: vxxxxx#10 nsp=-1 mass=400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=92: vxxxxx#10 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=92: vxxxxx#10 nsp=-1 mass=400 - -2.321373168788980e-01, 5.158607041753289e-01, // itest=92: vxxxxx#10 nsp=-1 mass=400 - -2.476131380041579e-01, -4.836194101643708e-01, // itest=92: vxxxxx#10 nsp=-1 mass=400 - 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=92: vxxxxx#10 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -1.440000000000000e+02, // itest=93: vxxxxx#10 nsp=-1 mass=-400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=93: vxxxxx#10 nsp=-1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=93: vxxxxx#10 nsp=-1 mass=-400 - -2.321373168788980e-01, 5.158607041753289e-01, // itest=93: vxxxxx#10 nsp=-1 mass=-400 - -2.476131380041579e-01, -4.836194101643708e-01, // itest=93: vxxxxx#10 nsp=-1 mass=-400 - 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=93: vxxxxx#10 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -1.440000000000000e+02, // itest=94: sxxxxx#10 nsp=-1 mass=400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=94: sxxxxx#10 nsp=-1 mass=400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=94: sxxxxx#10 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=94: sxxxxx#10 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=94: sxxxxx#10 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=94: sxxxxx#10 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -1.440000000000000e+02, // itest=95: sxxxxx#10 nsp=-1 mass=-400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=95: sxxxxx#10 nsp=-1 mass=-400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=95: sxxxxx#10 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=95: sxxxxx#10 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=95: sxxxxx#10 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=95: sxxxxx#10 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -1.440000000000000e+02, // itest=96: oxxxxx#10 nsp=-1 mass=400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=96: oxxxxx#10 nsp=-1 mass=400 - -4.931969619160719e+00, -5.260767593771432e+00, // itest=96: oxxxxx#10 nsp=-1 mass=400 - 1.216552506059644e+01, 0.000000000000000e+00, // itest=96: oxxxxx#10 nsp=-1 mass=400 - 9.863939238321439e+00, 1.052153518754287e+01, // itest=96: oxxxxx#10 nsp=-1 mass=400 - -2.433105012119288e+01, -0.000000000000000e+00 } ); // itest=96: oxxxxx#10 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -1.440000000000000e+02, // itest=97: oxxxxx#10 nsp=-1 mass=-400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=97: oxxxxx#10 nsp=-1 mass=-400 - 4.931969619160719e+00, 5.260767593771432e+00, // itest=97: oxxxxx#10 nsp=-1 mass=-400 - -1.216552506059644e+01, -0.000000000000000e+00, // itest=97: oxxxxx#10 nsp=-1 mass=-400 - 9.863939238321439e+00, 1.052153518754287e+01, // itest=97: oxxxxx#10 nsp=-1 mass=-400 - -2.433105012119288e+01, -0.000000000000000e+00 } ); // itest=97: oxxxxx#10 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -1.440000000000000e+02, // itest=98: ixxxxx#11 nsp=-1 mass=400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=98: ixxxxx#11 nsp=-1 mass=400 - 1.664100588675688e+01, -1.775040627920733e+01, // itest=98: ixxxxx#11 nsp=-1 mass=400 - -1.442220510185596e+01, -0.000000000000000e+00, // itest=98: ixxxxx#11 nsp=-1 mass=400 - -8.320502943378436e+00, 8.875203139603666e+00, // itest=98: ixxxxx#11 nsp=-1 mass=400 - 7.211102550927978e+00, 0.000000000000000e+00 } ); // itest=98: ixxxxx#11 nsp=-1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -1.440000000000000e+02, // itest=99: ixxxxx#11 nsp=-1 mass=-400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=99: ixxxxx#11 nsp=-1 mass=-400 - 1.664100588675688e+01, -1.775040627920733e+01, // itest=99: ixxxxx#11 nsp=-1 mass=-400 - -1.442220510185596e+01, -0.000000000000000e+00, // itest=99: ixxxxx#11 nsp=-1 mass=-400 - 8.320502943378436e+00, -8.875203139603666e+00, // itest=99: ixxxxx#11 nsp=-1 mass=-400 - -7.211102550927978e+00, -0.000000000000000e+00 } ); // itest=99: ixxxxx#11 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 1.440000000000000e+02, // itest=100: vxxxxx#11 nsp=-1 mass=400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=100: vxxxxx#11 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=100: vxxxxx#11 nsp=-1 mass=400 - 2.321373168788980e-01, 5.158607041753289e-01, // itest=100: vxxxxx#11 nsp=-1 mass=400 - 2.476131380041579e-01, -4.836194101643708e-01, // itest=100: vxxxxx#11 nsp=-1 mass=400 - 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=100: vxxxxx#11 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 1.440000000000000e+02, // itest=101: vxxxxx#11 nsp=-1 mass=-400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=101: vxxxxx#11 nsp=-1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=101: vxxxxx#11 nsp=-1 mass=-400 - 2.321373168788980e-01, 5.158607041753289e-01, // itest=101: vxxxxx#11 nsp=-1 mass=-400 - 2.476131380041579e-01, -4.836194101643708e-01, // itest=101: vxxxxx#11 nsp=-1 mass=-400 - 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=101: vxxxxx#11 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 1.440000000000000e+02, // itest=102: sxxxxx#11 nsp=-1 mass=400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=102: sxxxxx#11 nsp=-1 mass=400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=102: sxxxxx#11 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=102: sxxxxx#11 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=102: sxxxxx#11 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=102: sxxxxx#11 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 1.440000000000000e+02, // itest=103: sxxxxx#11 nsp=-1 mass=-400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=103: sxxxxx#11 nsp=-1 mass=-400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=103: sxxxxx#11 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=103: sxxxxx#11 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=103: sxxxxx#11 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=103: sxxxxx#11 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 1.440000000000000e+02, // itest=104: oxxxxx#11 nsp=-1 mass=400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=104: oxxxxx#11 nsp=-1 mass=400 - -8.320502943378436e+00, -8.875203139603666e+00, // itest=104: oxxxxx#11 nsp=-1 mass=400 - 7.211102550927978e+00, 0.000000000000000e+00, // itest=104: oxxxxx#11 nsp=-1 mass=400 - 1.664100588675688e+01, 1.775040627920733e+01, // itest=104: oxxxxx#11 nsp=-1 mass=400 - -1.442220510185596e+01, -0.000000000000000e+00 } ); // itest=104: oxxxxx#11 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 1.440000000000000e+02, // itest=105: oxxxxx#11 nsp=-1 mass=-400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=105: oxxxxx#11 nsp=-1 mass=-400 - 8.320502943378436e+00, 8.875203139603666e+00, // itest=105: oxxxxx#11 nsp=-1 mass=-400 - -7.211102550927978e+00, -0.000000000000000e+00, // itest=105: oxxxxx#11 nsp=-1 mass=-400 - 1.664100588675688e+01, 1.775040627920733e+01, // itest=105: oxxxxx#11 nsp=-1 mass=-400 - -1.442220510185596e+01, -0.000000000000000e+00 } ); // itest=105: oxxxxx#11 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=106: ixxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=106: ixxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=106: ixxxxx#12 nsp=-1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00, // itest=106: ixxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=106: ixxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=106: ixxxxx#12 nsp=-1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=107: ixxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=107: ixxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=107: ixxxxx#12 nsp=-1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00, // itest=107: ixxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=107: ixxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=107: ixxxxx#12 nsp=-1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=108: ipzxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=108: ipzxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=108: ipzxxx#12 nsp=-1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00, // itest=108: ipzxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=108: ipzxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=108: ipzxxx#12 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=109: vxxxxx#12 nsp=-1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=109: vxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=109: vxxxxx#12 nsp=-1 mass=0 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=109: vxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, -7.071067811865476e-01, // itest=109: vxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=109: vxxxxx#12 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=110: vxxxxx#12 nsp=-1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=110: vxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=110: vxxxxx#12 nsp=-1 mass=0 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=110: vxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, -7.071067811865476e-01, // itest=110: vxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=110: vxxxxx#12 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=111: sxxxxx#12 nsp=-1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=111: sxxxxx#12 nsp=-1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=111: sxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=111: sxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=111: sxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=111: sxxxxx#12 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=112: sxxxxx#12 nsp=-1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=112: sxxxxx#12 nsp=-1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=112: sxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=112: sxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=112: sxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=112: sxxxxx#12 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=113: oxxxxx#12 nsp=-1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=113: oxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=113: oxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=113: oxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=113: oxxxxx#12 nsp=-1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=113: oxxxxx#12 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=114: oxxxxx#12 nsp=-1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=114: oxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=114: oxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=114: oxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=114: oxxxxx#12 nsp=-1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=114: oxxxxx#12 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=115: opzxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=115: opzxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=115: opzxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=115: opzxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=115: opzxxx#12 nsp=-1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=115: opzxxx#12 nsp=-1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=116: ixxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=116: ixxxxx#13 nsp=-1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00, // itest=116: ixxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=116: ixxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=116: ixxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=116: ixxxxx#13 nsp=-1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=117: ixxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=117: ixxxxx#13 nsp=-1 mass=0 - -3.162277660168379e+01, -0.000000000000000e+00, // itest=117: ixxxxx#13 nsp=-1 mass=0 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=117: ixxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=117: ixxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=117: ixxxxx#13 nsp=-1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=118: imzxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=118: imzxxx#13 nsp=-1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00, // itest=118: imzxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=118: imzxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=118: imzxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=118: imzxxx#13 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=119: vxxxxx#13 nsp=-1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=119: vxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=119: vxxxxx#13 nsp=-1 mass=0 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=119: vxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 7.071067811865476e-01, // itest=119: vxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=119: vxxxxx#13 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=120: vxxxxx#13 nsp=-1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=120: vxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=120: vxxxxx#13 nsp=-1 mass=0 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=120: vxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 7.071067811865476e-01, // itest=120: vxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=120: vxxxxx#13 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=121: sxxxxx#13 nsp=-1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=121: sxxxxx#13 nsp=-1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=121: sxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=121: sxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=121: sxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=121: sxxxxx#13 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=122: sxxxxx#13 nsp=-1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=122: sxxxxx#13 nsp=-1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=122: sxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=122: sxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=122: sxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=122: sxxxxx#13 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=123: oxxxxx#13 nsp=-1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=123: oxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=123: oxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=123: oxxxxx#13 nsp=-1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00, // itest=123: oxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=123: oxxxxx#13 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=124: oxxxxx#13 nsp=-1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=124: oxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=124: oxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=124: oxxxxx#13 nsp=-1 mass=0 - -3.162277660168379e+01, -0.000000000000000e+00, // itest=124: oxxxxx#13 nsp=-1 mass=0 - -0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=124: oxxxxx#13 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=125: omzxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=125: omzxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=125: omzxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=125: omzxxx#13 nsp=-1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00, // itest=125: omzxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=125: omzxxx#13 nsp=-1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=126: ixxxxx#14 nsp=-1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=126: ixxxxx#14 nsp=-1 mass=0 - 1.341640786499874e+01, -1.788854381999832e+01, // itest=126: ixxxxx#14 nsp=-1 mass=0 - -2.236067977499790e+01, 0.000000000000000e+00, // itest=126: ixxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=126: ixxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=126: ixxxxx#14 nsp=-1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=127: ixxxxx#14 nsp=-1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=127: ixxxxx#14 nsp=-1 mass=0 - 1.341640786499874e+01, -1.788854381999832e+01, // itest=127: ixxxxx#14 nsp=-1 mass=0 - -2.236067977499790e+01, 0.000000000000000e+00, // itest=127: ixxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=127: ixxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=127: ixxxxx#14 nsp=-1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=128: ixzxxx#14 nsp=-1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=128: ixzxxx#14 nsp=-1 mass=0 - 1.341640786499874e+01, -1.788854381999832e+01, // itest=128: ixzxxx#14 nsp=-1 mass=0 - -2.236067977499790e+01, 0.000000000000000e+00, // itest=128: ixzxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=128: ixzxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=128: ixzxxx#14 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=129: vxxxxx#14 nsp=-1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=129: vxxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=129: vxxxxx#14 nsp=-1 mass=0 - -0.000000000000000e+00, 5.656854249492381e-01, // itest=129: vxxxxx#14 nsp=-1 mass=0 - -0.000000000000000e+00, -4.242640687119285e-01, // itest=129: vxxxxx#14 nsp=-1 mass=0 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=129: vxxxxx#14 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=130: vxxxxx#14 nsp=-1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=130: vxxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=130: vxxxxx#14 nsp=-1 mass=0 - -0.000000000000000e+00, 5.656854249492381e-01, // itest=130: vxxxxx#14 nsp=-1 mass=0 - -0.000000000000000e+00, -4.242640687119285e-01, // itest=130: vxxxxx#14 nsp=-1 mass=0 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=130: vxxxxx#14 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=131: sxxxxx#14 nsp=-1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=131: sxxxxx#14 nsp=-1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=131: sxxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=131: sxxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=131: sxxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=131: sxxxxx#14 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=132: sxxxxx#14 nsp=-1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=132: sxxxxx#14 nsp=-1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=132: sxxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=132: sxxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=132: sxxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=132: sxxxxx#14 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=133: oxxxxx#14 nsp=-1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=133: oxxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=133: oxxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=133: oxxxxx#14 nsp=-1 mass=0 - 1.341640786499874e+01, 1.788854381999832e+01, // itest=133: oxxxxx#14 nsp=-1 mass=0 - -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=133: oxxxxx#14 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=134: oxxxxx#14 nsp=-1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=134: oxxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=134: oxxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=134: oxxxxx#14 nsp=-1 mass=0 - 1.341640786499874e+01, 1.788854381999832e+01, // itest=134: oxxxxx#14 nsp=-1 mass=0 - -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=134: oxxxxx#14 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=135: oxzxxx#14 nsp=-1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=135: oxzxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=135: oxzxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=135: oxzxxx#14 nsp=-1 mass=0 - 1.341640786499874e+01, 1.788854381999832e+01, // itest=135: oxzxxx#14 nsp=-1 mass=0 - -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=135: oxzxxx#14 nsp=-1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=136: ixxxxx#15 nsp=-1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=136: ixxxxx#15 nsp=-1 mass=0 - 6.000000000000000e+00, -8.000000000000000e+00, // itest=136: ixxxxx#15 nsp=-1 mass=0 - -3.000000000000000e+01, 0.000000000000000e+00, // itest=136: ixxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=136: ixxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=136: ixxxxx#15 nsp=-1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=137: ixxxxx#15 nsp=-1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=137: ixxxxx#15 nsp=-1 mass=0 - 6.000000000000000e+00, -8.000000000000000e+00, // itest=137: ixxxxx#15 nsp=-1 mass=0 - -3.000000000000000e+01, 0.000000000000000e+00, // itest=137: ixxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=137: ixxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=137: ixxxxx#15 nsp=-1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=138: ixzxxx#15 nsp=-1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=138: ixzxxx#15 nsp=-1 mass=0 - 6.000000000000000e+00, -8.000000000000000e+00, // itest=138: ixzxxx#15 nsp=-1 mass=0 - -3.000000000000000e+01, 0.000000000000000e+00, // itest=138: ixzxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=138: ixzxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=138: ixzxxx#15 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=139: vxxxxx#15 nsp=-1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=139: vxxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=139: vxxxxx#15 nsp=-1 mass=0 - -3.394112549695428e-01, 5.656854249492381e-01, // itest=139: vxxxxx#15 nsp=-1 mass=0 - -4.525483399593904e-01, -4.242640687119285e-01, // itest=139: vxxxxx#15 nsp=-1 mass=0 - 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=139: vxxxxx#15 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=140: vxxxxx#15 nsp=-1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=140: vxxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=140: vxxxxx#15 nsp=-1 mass=0 - -3.394112549695428e-01, 5.656854249492381e-01, // itest=140: vxxxxx#15 nsp=-1 mass=0 - -4.525483399593904e-01, -4.242640687119285e-01, // itest=140: vxxxxx#15 nsp=-1 mass=0 - 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=140: vxxxxx#15 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=141: sxxxxx#15 nsp=-1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=141: sxxxxx#15 nsp=-1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=141: sxxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=141: sxxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=141: sxxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=141: sxxxxx#15 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=142: sxxxxx#15 nsp=-1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=142: sxxxxx#15 nsp=-1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=142: sxxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=142: sxxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=142: sxxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=142: sxxxxx#15 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=143: oxxxxx#15 nsp=-1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=143: oxxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=143: oxxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=143: oxxxxx#15 nsp=-1 mass=0 - 6.000000000000000e+00, 8.000000000000000e+00, // itest=143: oxxxxx#15 nsp=-1 mass=0 - -3.000000000000000e+01, 0.000000000000000e+00 } ); // itest=143: oxxxxx#15 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=144: oxxxxx#15 nsp=-1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=144: oxxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=144: oxxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=144: oxxxxx#15 nsp=-1 mass=0 - 6.000000000000000e+00, 8.000000000000000e+00, // itest=144: oxxxxx#15 nsp=-1 mass=0 - -3.000000000000000e+01, 0.000000000000000e+00 } ); // itest=144: oxxxxx#15 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=145: oxzxxx#15 nsp=-1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=145: oxzxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=145: oxzxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=145: oxzxxx#15 nsp=-1 mass=0 - 6.000000000000000e+00, 8.000000000000000e+00, // itest=145: oxzxxx#15 nsp=-1 mass=0 - -3.000000000000000e+01, 0.000000000000000e+00 } ); // itest=145: oxzxxx#15 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=146: ixxxxx#0 nsp=1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=146: ixxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=146: ixxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=146: ixxxxx#0 nsp=1 mass=0 - 3.162277660168379e+01, 0.000000000000000e+00, // itest=146: ixxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=146: ixxxxx#0 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=147: ixxxxx#0 nsp=1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=147: ixxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=147: ixxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=147: ixxxxx#0 nsp=1 mass=0 - 3.162277660168379e+01, 0.000000000000000e+00, // itest=147: ixxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=147: ixxxxx#0 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=148: ipzxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=148: ipzxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=148: ipzxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=148: ipzxxx#0 nsp=1 mass=0 - 3.162277660168379e+01, 0.000000000000000e+00, // itest=148: ipzxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=148: ipzxxx#0 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=149: vxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=149: vxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=149: vxxxxx#0 nsp=1 mass=0 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=149: vxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 7.071067811865476e-01, // itest=149: vxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=149: vxxxxx#0 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=150: vxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=150: vxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=150: vxxxxx#0 nsp=1 mass=0 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=150: vxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 7.071067811865476e-01, // itest=150: vxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=150: vxxxxx#0 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=151: sxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=151: sxxxxx#0 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=151: sxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=151: sxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=151: sxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=151: sxxxxx#0 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=152: sxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=152: sxxxxx#0 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=152: sxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=152: sxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=152: sxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=152: sxxxxx#0 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=153: oxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=153: oxxxxx#0 nsp=1 mass=0 - 3.162277660168379e+01, 0.000000000000000e+00, // itest=153: oxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=153: oxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=153: oxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=153: oxxxxx#0 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=154: oxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=154: oxxxxx#0 nsp=1 mass=0 - 3.162277660168379e+01, 0.000000000000000e+00, // itest=154: oxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=154: oxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=154: oxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=154: oxxxxx#0 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=155: opzxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=155: opzxxx#0 nsp=1 mass=0 - 3.162277660168379e+01, 0.000000000000000e+00, // itest=155: opzxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=155: opzxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=155: opzxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=155: opzxxx#0 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=156: ixxxxx#1 nsp=1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=156: ixxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=156: ixxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=156: ixxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=156: ixxxxx#1 nsp=1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=156: ixxxxx#1 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=157: ixxxxx#1 nsp=1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=157: ixxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=157: ixxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=157: ixxxxx#1 nsp=1 mass=0 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=157: ixxxxx#1 nsp=1 mass=0 - -3.162277660168379e+01, -0.000000000000000e+00 } ); // itest=157: ixxxxx#1 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=158: imzxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=158: imzxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=158: imzxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=158: imzxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=158: imzxxx#1 nsp=1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=158: imzxxx#1 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=159: vxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=159: vxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=159: vxxxxx#1 nsp=1 mass=0 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=159: vxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, -7.071067811865476e-01, // itest=159: vxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=159: vxxxxx#1 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=160: vxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=160: vxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=160: vxxxxx#1 nsp=1 mass=0 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=160: vxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, -7.071067811865476e-01, // itest=160: vxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=160: vxxxxx#1 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=161: sxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=161: sxxxxx#1 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=161: sxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=161: sxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=161: sxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=161: sxxxxx#1 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=162: sxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=162: sxxxxx#1 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=162: sxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=162: sxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=162: sxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=162: sxxxxx#1 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=163: oxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=163: oxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=163: oxxxxx#1 nsp=1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00, // itest=163: oxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=163: oxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=163: oxxxxx#1 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=164: oxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=164: oxxxxx#1 nsp=1 mass=0 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=164: oxxxxx#1 nsp=1 mass=0 - -3.162277660168379e+01, -0.000000000000000e+00, // itest=164: oxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=164: oxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=164: oxxxxx#1 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=165: omzxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=165: omzxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=165: omzxxx#1 nsp=1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00, // itest=165: omzxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=165: omzxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=165: omzxxx#1 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=166: ixxxxx#2 nsp=1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=166: ixxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=166: ixxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=166: ixxxxx#2 nsp=1 mass=0 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=166: ixxxxx#2 nsp=1 mass=0 - 1.341640786499874e+01, 1.788854381999832e+01 } ); // itest=166: ixxxxx#2 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=167: ixxxxx#2 nsp=1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=167: ixxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=167: ixxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=167: ixxxxx#2 nsp=1 mass=0 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=167: ixxxxx#2 nsp=1 mass=0 - 1.341640786499874e+01, 1.788854381999832e+01 } ); // itest=167: ixxxxx#2 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=168: ixzxxx#2 nsp=1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=168: ixzxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=168: ixzxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=168: ixzxxx#2 nsp=1 mass=0 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=168: ixzxxx#2 nsp=1 mass=0 - 1.341640786499874e+01, 1.788854381999832e+01 } ); // itest=168: ixzxxx#2 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=169: vxxxxx#2 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=169: vxxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=169: vxxxxx#2 nsp=1 mass=0 - -0.000000000000000e+00, -5.656854249492381e-01, // itest=169: vxxxxx#2 nsp=1 mass=0 - -0.000000000000000e+00, 4.242640687119285e-01, // itest=169: vxxxxx#2 nsp=1 mass=0 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=169: vxxxxx#2 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=170: vxxxxx#2 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=170: vxxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=170: vxxxxx#2 nsp=1 mass=0 - -0.000000000000000e+00, -5.656854249492381e-01, // itest=170: vxxxxx#2 nsp=1 mass=0 - -0.000000000000000e+00, 4.242640687119285e-01, // itest=170: vxxxxx#2 nsp=1 mass=0 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=170: vxxxxx#2 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=171: sxxxxx#2 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=171: sxxxxx#2 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=171: sxxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=171: sxxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=171: sxxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=171: sxxxxx#2 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=172: sxxxxx#2 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=172: sxxxxx#2 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=172: sxxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=172: sxxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=172: sxxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=172: sxxxxx#2 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=173: oxxxxx#2 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=173: oxxxxx#2 nsp=1 mass=0 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=173: oxxxxx#2 nsp=1 mass=0 - 1.341640786499874e+01, -1.788854381999832e+01, // itest=173: oxxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=173: oxxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=173: oxxxxx#2 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=174: oxxxxx#2 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=174: oxxxxx#2 nsp=1 mass=0 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=174: oxxxxx#2 nsp=1 mass=0 - 1.341640786499874e+01, -1.788854381999832e+01, // itest=174: oxxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=174: oxxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=174: oxxxxx#2 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=175: oxzxxx#2 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=175: oxzxxx#2 nsp=1 mass=0 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=175: oxzxxx#2 nsp=1 mass=0 - 1.341640786499874e+01, -1.788854381999832e+01, // itest=175: oxzxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=175: oxzxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=175: oxzxxx#2 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=176: ixxxxx#3 nsp=1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=176: ixxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=176: ixxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=176: ixxxxx#3 nsp=1 mass=0 - 3.000000000000000e+01, 0.000000000000000e+00, // itest=176: ixxxxx#3 nsp=1 mass=0 - 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=176: ixxxxx#3 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=177: ixxxxx#3 nsp=1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=177: ixxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=177: ixxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=177: ixxxxx#3 nsp=1 mass=0 - 3.000000000000000e+01, 0.000000000000000e+00, // itest=177: ixxxxx#3 nsp=1 mass=0 - 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=177: ixxxxx#3 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=178: ixzxxx#3 nsp=1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=178: ixzxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=178: ixzxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=178: ixzxxx#3 nsp=1 mass=0 - 3.000000000000000e+01, 0.000000000000000e+00, // itest=178: ixzxxx#3 nsp=1 mass=0 - 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=178: ixzxxx#3 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=179: vxxxxx#3 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=179: vxxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=179: vxxxxx#3 nsp=1 mass=0 - -3.394112549695428e-01, -5.656854249492381e-01, // itest=179: vxxxxx#3 nsp=1 mass=0 - -4.525483399593904e-01, 4.242640687119285e-01, // itest=179: vxxxxx#3 nsp=1 mass=0 - 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=179: vxxxxx#3 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=180: vxxxxx#3 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=180: vxxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=180: vxxxxx#3 nsp=1 mass=0 - -3.394112549695428e-01, -5.656854249492381e-01, // itest=180: vxxxxx#3 nsp=1 mass=0 - -4.525483399593904e-01, 4.242640687119285e-01, // itest=180: vxxxxx#3 nsp=1 mass=0 - 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=180: vxxxxx#3 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=181: sxxxxx#3 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=181: sxxxxx#3 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=181: sxxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=181: sxxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=181: sxxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=181: sxxxxx#3 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=182: sxxxxx#3 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=182: sxxxxx#3 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=182: sxxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=182: sxxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=182: sxxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=182: sxxxxx#3 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=183: oxxxxx#3 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=183: oxxxxx#3 nsp=1 mass=0 - 3.000000000000000e+01, 0.000000000000000e+00, // itest=183: oxxxxx#3 nsp=1 mass=0 - 6.000000000000000e+00, -8.000000000000000e+00, // itest=183: oxxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=183: oxxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=183: oxxxxx#3 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=184: oxxxxx#3 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=184: oxxxxx#3 nsp=1 mass=0 - 3.000000000000000e+01, 0.000000000000000e+00, // itest=184: oxxxxx#3 nsp=1 mass=0 - 6.000000000000000e+00, -8.000000000000000e+00, // itest=184: oxxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=184: oxxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=184: oxxxxx#3 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=185: oxzxxx#3 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=185: oxzxxx#3 nsp=1 mass=0 - 3.000000000000000e+01, 0.000000000000000e+00, // itest=185: oxzxxx#3 nsp=1 mass=0 - 6.000000000000000e+00, -8.000000000000000e+00, // itest=185: oxzxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=185: oxzxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=185: oxzxxx#3 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 4.000000000000000e+02, // itest=186: ixxxxx#4 nsp=1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=186: ixxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=186: ixxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=186: ixxxxx#4 nsp=1 mass=0 - 1.000000000000000e+01, 0.000000000000000e+00, // itest=186: ixxxxx#4 nsp=1 mass=0 - 1.800000000000000e+01, 2.400000000000000e+01 } ); // itest=186: ixxxxx#4 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 4.000000000000000e+02, // itest=187: ixxxxx#4 nsp=1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=187: ixxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=187: ixxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=187: ixxxxx#4 nsp=1 mass=0 - 1.000000000000000e+01, 0.000000000000000e+00, // itest=187: ixxxxx#4 nsp=1 mass=0 - 1.800000000000000e+01, 2.400000000000000e+01 } ); // itest=187: ixxxxx#4 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 4.000000000000000e+02, // itest=188: ixzxxx#4 nsp=1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=188: ixzxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=188: ixzxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=188: ixzxxx#4 nsp=1 mass=0 - 1.000000000000000e+01, 0.000000000000000e+00, // itest=188: ixzxxx#4 nsp=1 mass=0 - 1.800000000000000e+01, 2.400000000000000e+01 } ); // itest=188: ixzxxx#4 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -4.000000000000000e+02, // itest=189: vxxxxx#4 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=189: vxxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=189: vxxxxx#4 nsp=1 mass=0 - 3.394112549695428e-01, -5.656854249492381e-01, // itest=189: vxxxxx#4 nsp=1 mass=0 - 4.525483399593904e-01, 4.242640687119285e-01, // itest=189: vxxxxx#4 nsp=1 mass=0 - 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=189: vxxxxx#4 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -4.000000000000000e+02, // itest=190: vxxxxx#4 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=190: vxxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=190: vxxxxx#4 nsp=1 mass=0 - 3.394112549695428e-01, -5.656854249492381e-01, // itest=190: vxxxxx#4 nsp=1 mass=0 - 4.525483399593904e-01, 4.242640687119285e-01, // itest=190: vxxxxx#4 nsp=1 mass=0 - 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=190: vxxxxx#4 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -4.000000000000000e+02, // itest=191: sxxxxx#4 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=191: sxxxxx#4 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=191: sxxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=191: sxxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=191: sxxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=191: sxxxxx#4 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -4.000000000000000e+02, // itest=192: sxxxxx#4 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=192: sxxxxx#4 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=192: sxxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=192: sxxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=192: sxxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=192: sxxxxx#4 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -4.000000000000000e+02, // itest=193: oxxxxx#4 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=193: oxxxxx#4 nsp=1 mass=0 - 1.000000000000000e+01, 0.000000000000000e+00, // itest=193: oxxxxx#4 nsp=1 mass=0 - 1.800000000000000e+01, -2.400000000000000e+01, // itest=193: oxxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=193: oxxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=193: oxxxxx#4 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -4.000000000000000e+02, // itest=194: oxxxxx#4 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=194: oxxxxx#4 nsp=1 mass=0 - 1.000000000000000e+01, 0.000000000000000e+00, // itest=194: oxxxxx#4 nsp=1 mass=0 - 1.800000000000000e+01, -2.400000000000000e+01, // itest=194: oxxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=194: oxxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=194: oxxxxx#4 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -4.000000000000000e+02, // itest=195: oxzxxx#4 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=195: oxzxxx#4 nsp=1 mass=0 - 1.000000000000000e+01, 0.000000000000000e+00, // itest=195: oxzxxx#4 nsp=1 mass=0 - 1.800000000000000e+01, -2.400000000000000e+01, // itest=195: oxzxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=195: oxzxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=195: oxzxxx#4 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=196: ixxxxx#5 nsp=1 mass=500 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=196: ixxxxx#5 nsp=1 mass=500 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=196: ixxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=196: ixxxxx#5 nsp=1 mass=500 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=196: ixxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=196: ixxxxx#5 nsp=1 mass=500 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=197: ixxxxx#5 nsp=1 mass=-500 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=197: ixxxxx#5 nsp=1 mass=-500 - -2.236067977499790e+01, 0.000000000000000e+00, // itest=197: ixxxxx#5 nsp=1 mass=-500 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=197: ixxxxx#5 nsp=1 mass=-500 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=197: ixxxxx#5 nsp=1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=197: ixxxxx#5 nsp=1 mass=-500 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=198: vxxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=198: vxxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=198: vxxxxx#5 nsp=1 mass=500 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=198: vxxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 7.071067811865476e-01, // itest=198: vxxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=198: vxxxxx#5 nsp=1 mass=500 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=199: vxxxxx#5 nsp=1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=199: vxxxxx#5 nsp=1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=199: vxxxxx#5 nsp=1 mass=-500 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=199: vxxxxx#5 nsp=1 mass=-500 - 0.000000000000000e+00, 7.071067811865476e-01, // itest=199: vxxxxx#5 nsp=1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=199: vxxxxx#5 nsp=1 mass=-500 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=200: sxxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=200: sxxxxx#5 nsp=1 mass=500 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=200: sxxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=200: sxxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=200: sxxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=200: sxxxxx#5 nsp=1 mass=500 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=201: sxxxxx#5 nsp=1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=201: sxxxxx#5 nsp=1 mass=-500 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=201: sxxxxx#5 nsp=1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=201: sxxxxx#5 nsp=1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=201: sxxxxx#5 nsp=1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=201: sxxxxx#5 nsp=1 mass=-500 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=202: oxxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=202: oxxxxx#5 nsp=1 mass=500 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=202: oxxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=202: oxxxxx#5 nsp=1 mass=500 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=202: oxxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=202: oxxxxx#5 nsp=1 mass=500 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=203: oxxxxx#5 nsp=1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=203: oxxxxx#5 nsp=1 mass=-500 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=203: oxxxxx#5 nsp=1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=203: oxxxxx#5 nsp=1 mass=-500 - -2.236067977499790e+01, 0.000000000000000e+00, // itest=203: oxxxxx#5 nsp=1 mass=-500 - -0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=203: oxxxxx#5 nsp=1 mass=-500 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -3.000000000000000e+02, // itest=204: ixxxxx#6 nsp=1 mass=400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=204: ixxxxx#6 nsp=1 mass=400 - 1.414213562373095e+01, 0.000000000000000e+00, // itest=204: ixxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=204: ixxxxx#6 nsp=1 mass=400 - 2.828427124746190e+01, 0.000000000000000e+00, // itest=204: ixxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=204: ixxxxx#6 nsp=1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -3.000000000000000e+02, // itest=205: ixxxxx#6 nsp=1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=205: ixxxxx#6 nsp=1 mass=-400 - -1.414213562373095e+01, -0.000000000000000e+00, // itest=205: ixxxxx#6 nsp=1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=205: ixxxxx#6 nsp=1 mass=-400 - 2.828427124746190e+01, 0.000000000000000e+00, // itest=205: ixxxxx#6 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=205: ixxxxx#6 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 3.000000000000000e+02, // itest=206: vxxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=206: vxxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=206: vxxxxx#6 nsp=1 mass=400 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=206: vxxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, 7.071067811865476e-01, // itest=206: vxxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=206: vxxxxx#6 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 3.000000000000000e+02, // itest=207: vxxxxx#6 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=207: vxxxxx#6 nsp=1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=207: vxxxxx#6 nsp=1 mass=-400 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=207: vxxxxx#6 nsp=1 mass=-400 - 0.000000000000000e+00, 7.071067811865476e-01, // itest=207: vxxxxx#6 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=207: vxxxxx#6 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 3.000000000000000e+02, // itest=208: sxxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=208: sxxxxx#6 nsp=1 mass=400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=208: sxxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=208: sxxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=208: sxxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=208: sxxxxx#6 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 3.000000000000000e+02, // itest=209: sxxxxx#6 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=209: sxxxxx#6 nsp=1 mass=-400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=209: sxxxxx#6 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=209: sxxxxx#6 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=209: sxxxxx#6 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=209: sxxxxx#6 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 3.000000000000000e+02, // itest=210: oxxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=210: oxxxxx#6 nsp=1 mass=400 - 2.828427124746190e+01, 0.000000000000000e+00, // itest=210: oxxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=210: oxxxxx#6 nsp=1 mass=400 - 1.414213562373095e+01, 0.000000000000000e+00, // itest=210: oxxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=210: oxxxxx#6 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 3.000000000000000e+02, // itest=211: oxxxxx#6 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=211: oxxxxx#6 nsp=1 mass=-400 - 2.828427124746190e+01, 0.000000000000000e+00, // itest=211: oxxxxx#6 nsp=1 mass=-400 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=211: oxxxxx#6 nsp=1 mass=-400 - -1.414213562373095e+01, -0.000000000000000e+00, // itest=211: oxxxxx#6 nsp=1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=211: oxxxxx#6 nsp=1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 3.000000000000000e+02, // itest=212: ixxxxx#7 nsp=1 mass=400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=212: ixxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=212: ixxxxx#7 nsp=1 mass=400 - -1.414213562373095e+01, 0.000000000000000e+00, // itest=212: ixxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=212: ixxxxx#7 nsp=1 mass=400 - -2.828427124746190e+01, 0.000000000000000e+00 } ); // itest=212: ixxxxx#7 nsp=1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 3.000000000000000e+02, // itest=213: ixxxxx#7 nsp=1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=213: ixxxxx#7 nsp=1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=213: ixxxxx#7 nsp=1 mass=-400 - 1.414213562373095e+01, -0.000000000000000e+00, // itest=213: ixxxxx#7 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=213: ixxxxx#7 nsp=1 mass=-400 - -2.828427124746190e+01, 0.000000000000000e+00 } ); // itest=213: ixxxxx#7 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -3.000000000000000e+02, // itest=214: vxxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=214: vxxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=214: vxxxxx#7 nsp=1 mass=400 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=214: vxxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, -7.071067811865476e-01, // itest=214: vxxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=214: vxxxxx#7 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -3.000000000000000e+02, // itest=215: vxxxxx#7 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=215: vxxxxx#7 nsp=1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=215: vxxxxx#7 nsp=1 mass=-400 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=215: vxxxxx#7 nsp=1 mass=-400 - 0.000000000000000e+00, -7.071067811865476e-01, // itest=215: vxxxxx#7 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=215: vxxxxx#7 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -3.000000000000000e+02, // itest=216: sxxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=216: sxxxxx#7 nsp=1 mass=400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=216: sxxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=216: sxxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=216: sxxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=216: sxxxxx#7 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -3.000000000000000e+02, // itest=217: sxxxxx#7 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=217: sxxxxx#7 nsp=1 mass=-400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=217: sxxxxx#7 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=217: sxxxxx#7 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=217: sxxxxx#7 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=217: sxxxxx#7 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -3.000000000000000e+02, // itest=218: oxxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=218: oxxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=218: oxxxxx#7 nsp=1 mass=400 - -2.828427124746190e+01, 0.000000000000000e+00, // itest=218: oxxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=218: oxxxxx#7 nsp=1 mass=400 - -1.414213562373095e+01, 0.000000000000000e+00 } ); // itest=218: oxxxxx#7 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -3.000000000000000e+02, // itest=219: oxxxxx#7 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=219: oxxxxx#7 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=219: oxxxxx#7 nsp=1 mass=-400 - -2.828427124746190e+01, 0.000000000000000e+00, // itest=219: oxxxxx#7 nsp=1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=219: oxxxxx#7 nsp=1 mass=-400 - 1.414213562373095e+01, -0.000000000000000e+00 } ); // itest=219: oxxxxx#7 nsp=1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=220: ixxxxx#8 nsp=1 mass=400 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=220: ixxxxx#8 nsp=1 mass=400 - 1.000000000000000e+01, 0.000000000000000e+00, // itest=220: ixxxxx#8 nsp=1 mass=400 - 5.999999999999999e+00, 7.999999999999999e+00, // itest=220: ixxxxx#8 nsp=1 mass=400 - 2.000000000000000e+01, 0.000000000000000e+00, // itest=220: ixxxxx#8 nsp=1 mass=400 - 1.200000000000000e+01, 1.600000000000000e+01 } ); // itest=220: ixxxxx#8 nsp=1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=221: ixxxxx#8 nsp=1 mass=-400 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=221: ixxxxx#8 nsp=1 mass=-400 - -1.000000000000000e+01, -0.000000000000000e+00, // itest=221: ixxxxx#8 nsp=1 mass=-400 - -5.999999999999999e+00, -7.999999999999999e+00, // itest=221: ixxxxx#8 nsp=1 mass=-400 - 2.000000000000000e+01, 0.000000000000000e+00, // itest=221: ixxxxx#8 nsp=1 mass=-400 - 1.200000000000000e+01, 1.600000000000000e+01 } ); // itest=221: ixxxxx#8 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=222: vxxxxx#8 nsp=1 mass=400 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=222: vxxxxx#8 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=222: vxxxxx#8 nsp=1 mass=400 - 0.000000000000000e+00, -5.656854249492381e-01, // itest=222: vxxxxx#8 nsp=1 mass=400 - 0.000000000000000e+00, 4.242640687119285e-01, // itest=222: vxxxxx#8 nsp=1 mass=400 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=222: vxxxxx#8 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=223: vxxxxx#8 nsp=1 mass=-400 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=223: vxxxxx#8 nsp=1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=223: vxxxxx#8 nsp=1 mass=-400 - -0.000000000000000e+00, -5.656854249492381e-01, // itest=223: vxxxxx#8 nsp=1 mass=-400 - -0.000000000000000e+00, 4.242640687119285e-01, // itest=223: vxxxxx#8 nsp=1 mass=-400 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=223: vxxxxx#8 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=224: sxxxxx#8 nsp=1 mass=400 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=224: sxxxxx#8 nsp=1 mass=400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=224: sxxxxx#8 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=224: sxxxxx#8 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=224: sxxxxx#8 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=224: sxxxxx#8 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=225: sxxxxx#8 nsp=1 mass=-400 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=225: sxxxxx#8 nsp=1 mass=-400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=225: sxxxxx#8 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=225: sxxxxx#8 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=225: sxxxxx#8 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=225: sxxxxx#8 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=226: oxxxxx#8 nsp=1 mass=400 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=226: oxxxxx#8 nsp=1 mass=400 - 2.000000000000000e+01, 0.000000000000000e+00, // itest=226: oxxxxx#8 nsp=1 mass=400 - 1.200000000000000e+01, -1.600000000000000e+01, // itest=226: oxxxxx#8 nsp=1 mass=400 - 1.000000000000000e+01, 0.000000000000000e+00, // itest=226: oxxxxx#8 nsp=1 mass=400 - 5.999999999999999e+00, -7.999999999999999e+00 } ); // itest=226: oxxxxx#8 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=227: oxxxxx#8 nsp=1 mass=-400 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=227: oxxxxx#8 nsp=1 mass=-400 - 2.000000000000000e+01, 0.000000000000000e+00, // itest=227: oxxxxx#8 nsp=1 mass=-400 - 1.200000000000000e+01, -1.600000000000000e+01, // itest=227: oxxxxx#8 nsp=1 mass=-400 - -1.000000000000000e+01, -0.000000000000000e+00, // itest=227: oxxxxx#8 nsp=1 mass=-400 - -5.999999999999999e+00, 7.999999999999999e+00 } ); // itest=227: oxxxxx#8 nsp=1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=228: ixxxxx#9 nsp=1 mass=400 - 2.400000000000000e+02, 1.800000000000000e+02, // itest=228: ixxxxx#9 nsp=1 mass=400 - 1.000000000000000e+01, 0.000000000000000e+00, // itest=228: ixxxxx#9 nsp=1 mass=400 - -7.999999999999999e+00, -5.999999999999999e+00, // itest=228: ixxxxx#9 nsp=1 mass=400 - 2.000000000000000e+01, 0.000000000000000e+00, // itest=228: ixxxxx#9 nsp=1 mass=400 - -1.600000000000000e+01, -1.200000000000000e+01 } ); // itest=228: ixxxxx#9 nsp=1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=229: ixxxxx#9 nsp=1 mass=-400 - 2.400000000000000e+02, 1.800000000000000e+02, // itest=229: ixxxxx#9 nsp=1 mass=-400 - -1.000000000000000e+01, -0.000000000000000e+00, // itest=229: ixxxxx#9 nsp=1 mass=-400 - 7.999999999999999e+00, 5.999999999999999e+00, // itest=229: ixxxxx#9 nsp=1 mass=-400 - 2.000000000000000e+01, 0.000000000000000e+00, // itest=229: ixxxxx#9 nsp=1 mass=-400 - -1.600000000000000e+01, -1.200000000000000e+01 } ); // itest=229: ixxxxx#9 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=230: vxxxxx#9 nsp=1 mass=400 - -2.400000000000000e+02, -1.800000000000000e+02, // itest=230: vxxxxx#9 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=230: vxxxxx#9 nsp=1 mass=400 - 0.000000000000000e+00, 4.242640687119285e-01, // itest=230: vxxxxx#9 nsp=1 mass=400 - 0.000000000000000e+00, -5.656854249492381e-01, // itest=230: vxxxxx#9 nsp=1 mass=400 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=230: vxxxxx#9 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=231: vxxxxx#9 nsp=1 mass=-400 - -2.400000000000000e+02, -1.800000000000000e+02, // itest=231: vxxxxx#9 nsp=1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=231: vxxxxx#9 nsp=1 mass=-400 - 0.000000000000000e+00, 4.242640687119285e-01, // itest=231: vxxxxx#9 nsp=1 mass=-400 - 0.000000000000000e+00, -5.656854249492381e-01, // itest=231: vxxxxx#9 nsp=1 mass=-400 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=231: vxxxxx#9 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=232: sxxxxx#9 nsp=1 mass=400 - -2.400000000000000e+02, -1.800000000000000e+02, // itest=232: sxxxxx#9 nsp=1 mass=400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=232: sxxxxx#9 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=232: sxxxxx#9 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=232: sxxxxx#9 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=232: sxxxxx#9 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=233: sxxxxx#9 nsp=1 mass=-400 - -2.400000000000000e+02, -1.800000000000000e+02, // itest=233: sxxxxx#9 nsp=1 mass=-400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=233: sxxxxx#9 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=233: sxxxxx#9 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=233: sxxxxx#9 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=233: sxxxxx#9 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=234: oxxxxx#9 nsp=1 mass=400 - -2.400000000000000e+02, -1.800000000000000e+02, // itest=234: oxxxxx#9 nsp=1 mass=400 - 2.000000000000000e+01, 0.000000000000000e+00, // itest=234: oxxxxx#9 nsp=1 mass=400 - -1.600000000000000e+01, 1.200000000000000e+01, // itest=234: oxxxxx#9 nsp=1 mass=400 - 1.000000000000000e+01, 0.000000000000000e+00, // itest=234: oxxxxx#9 nsp=1 mass=400 - -7.999999999999999e+00, 5.999999999999999e+00 } ); // itest=234: oxxxxx#9 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=235: oxxxxx#9 nsp=1 mass=-400 - -2.400000000000000e+02, -1.800000000000000e+02, // itest=235: oxxxxx#9 nsp=1 mass=-400 - 2.000000000000000e+01, 0.000000000000000e+00, // itest=235: oxxxxx#9 nsp=1 mass=-400 - -1.600000000000000e+01, 1.200000000000000e+01, // itest=235: oxxxxx#9 nsp=1 mass=-400 - -1.000000000000000e+01, -0.000000000000000e+00, // itest=235: oxxxxx#9 nsp=1 mass=-400 - 7.999999999999999e+00, -5.999999999999999e+00 } ); // itest=235: oxxxxx#9 nsp=1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -1.440000000000000e+02, // itest=236: ixxxxx#10 nsp=1 mass=400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=236: ixxxxx#10 nsp=1 mass=400 - 1.216552506059644e+01, 0.000000000000000e+00, // itest=236: ixxxxx#10 nsp=1 mass=400 - 4.931969619160719e+00, 5.260767593771432e+00, // itest=236: ixxxxx#10 nsp=1 mass=400 - 2.433105012119288e+01, 0.000000000000000e+00, // itest=236: ixxxxx#10 nsp=1 mass=400 - 9.863939238321439e+00, 1.052153518754287e+01 } ); // itest=236: ixxxxx#10 nsp=1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -1.440000000000000e+02, // itest=237: ixxxxx#10 nsp=1 mass=-400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=237: ixxxxx#10 nsp=1 mass=-400 - -1.216552506059644e+01, -0.000000000000000e+00, // itest=237: ixxxxx#10 nsp=1 mass=-400 - -4.931969619160719e+00, -5.260767593771432e+00, // itest=237: ixxxxx#10 nsp=1 mass=-400 - 2.433105012119288e+01, 0.000000000000000e+00, // itest=237: ixxxxx#10 nsp=1 mass=-400 - 9.863939238321439e+00, 1.052153518754287e+01 } ); // itest=237: ixxxxx#10 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 1.440000000000000e+02, // itest=238: vxxxxx#10 nsp=1 mass=400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=238: vxxxxx#10 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=238: vxxxxx#10 nsp=1 mass=400 - -2.321373168788980e-01, -5.158607041753289e-01, // itest=238: vxxxxx#10 nsp=1 mass=400 - -2.476131380041579e-01, 4.836194101643708e-01, // itest=238: vxxxxx#10 nsp=1 mass=400 - 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=238: vxxxxx#10 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 1.440000000000000e+02, // itest=239: vxxxxx#10 nsp=1 mass=-400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=239: vxxxxx#10 nsp=1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=239: vxxxxx#10 nsp=1 mass=-400 - -2.321373168788980e-01, -5.158607041753289e-01, // itest=239: vxxxxx#10 nsp=1 mass=-400 - -2.476131380041579e-01, 4.836194101643708e-01, // itest=239: vxxxxx#10 nsp=1 mass=-400 - 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=239: vxxxxx#10 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 1.440000000000000e+02, // itest=240: sxxxxx#10 nsp=1 mass=400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=240: sxxxxx#10 nsp=1 mass=400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=240: sxxxxx#10 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=240: sxxxxx#10 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=240: sxxxxx#10 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=240: sxxxxx#10 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 1.440000000000000e+02, // itest=241: sxxxxx#10 nsp=1 mass=-400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=241: sxxxxx#10 nsp=1 mass=-400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=241: sxxxxx#10 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=241: sxxxxx#10 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=241: sxxxxx#10 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=241: sxxxxx#10 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 1.440000000000000e+02, // itest=242: oxxxxx#10 nsp=1 mass=400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=242: oxxxxx#10 nsp=1 mass=400 - 2.433105012119288e+01, 0.000000000000000e+00, // itest=242: oxxxxx#10 nsp=1 mass=400 - 9.863939238321439e+00, -1.052153518754287e+01, // itest=242: oxxxxx#10 nsp=1 mass=400 - 1.216552506059644e+01, 0.000000000000000e+00, // itest=242: oxxxxx#10 nsp=1 mass=400 - 4.931969619160719e+00, -5.260767593771432e+00 } ); // itest=242: oxxxxx#10 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 1.440000000000000e+02, // itest=243: oxxxxx#10 nsp=1 mass=-400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=243: oxxxxx#10 nsp=1 mass=-400 - 2.433105012119288e+01, 0.000000000000000e+00, // itest=243: oxxxxx#10 nsp=1 mass=-400 - 9.863939238321439e+00, -1.052153518754287e+01, // itest=243: oxxxxx#10 nsp=1 mass=-400 - -1.216552506059644e+01, -0.000000000000000e+00, // itest=243: oxxxxx#10 nsp=1 mass=-400 - -4.931969619160719e+00, 5.260767593771432e+00 } ); // itest=243: oxxxxx#10 nsp=1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 1.440000000000000e+02, // itest=244: ixxxxx#11 nsp=1 mass=400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=244: ixxxxx#11 nsp=1 mass=400 - 7.211102550927978e+00, 0.000000000000000e+00, // itest=244: ixxxxx#11 nsp=1 mass=400 - 8.320502943378436e+00, 8.875203139603666e+00, // itest=244: ixxxxx#11 nsp=1 mass=400 - 1.442220510185596e+01, 0.000000000000000e+00, // itest=244: ixxxxx#11 nsp=1 mass=400 - 1.664100588675688e+01, 1.775040627920733e+01 } ); // itest=244: ixxxxx#11 nsp=1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 1.440000000000000e+02, // itest=245: ixxxxx#11 nsp=1 mass=-400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=245: ixxxxx#11 nsp=1 mass=-400 - -7.211102550927978e+00, -0.000000000000000e+00, // itest=245: ixxxxx#11 nsp=1 mass=-400 - -8.320502943378436e+00, -8.875203139603666e+00, // itest=245: ixxxxx#11 nsp=1 mass=-400 - 1.442220510185596e+01, 0.000000000000000e+00, // itest=245: ixxxxx#11 nsp=1 mass=-400 - 1.664100588675688e+01, 1.775040627920733e+01 } ); // itest=245: ixxxxx#11 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -1.440000000000000e+02, // itest=246: vxxxxx#11 nsp=1 mass=400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=246: vxxxxx#11 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=246: vxxxxx#11 nsp=1 mass=400 - 2.321373168788980e-01, -5.158607041753289e-01, // itest=246: vxxxxx#11 nsp=1 mass=400 - 2.476131380041579e-01, 4.836194101643708e-01, // itest=246: vxxxxx#11 nsp=1 mass=400 - 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=246: vxxxxx#11 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -1.440000000000000e+02, // itest=247: vxxxxx#11 nsp=1 mass=-400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=247: vxxxxx#11 nsp=1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=247: vxxxxx#11 nsp=1 mass=-400 - 2.321373168788980e-01, -5.158607041753289e-01, // itest=247: vxxxxx#11 nsp=1 mass=-400 - 2.476131380041579e-01, 4.836194101643708e-01, // itest=247: vxxxxx#11 nsp=1 mass=-400 - 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=247: vxxxxx#11 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -1.440000000000000e+02, // itest=248: sxxxxx#11 nsp=1 mass=400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=248: sxxxxx#11 nsp=1 mass=400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=248: sxxxxx#11 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=248: sxxxxx#11 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=248: sxxxxx#11 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=248: sxxxxx#11 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -1.440000000000000e+02, // itest=249: sxxxxx#11 nsp=1 mass=-400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=249: sxxxxx#11 nsp=1 mass=-400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=249: sxxxxx#11 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=249: sxxxxx#11 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=249: sxxxxx#11 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=249: sxxxxx#11 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -1.440000000000000e+02, // itest=250: oxxxxx#11 nsp=1 mass=400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=250: oxxxxx#11 nsp=1 mass=400 - 1.442220510185596e+01, 0.000000000000000e+00, // itest=250: oxxxxx#11 nsp=1 mass=400 - 1.664100588675688e+01, -1.775040627920733e+01, // itest=250: oxxxxx#11 nsp=1 mass=400 - 7.211102550927978e+00, 0.000000000000000e+00, // itest=250: oxxxxx#11 nsp=1 mass=400 - 8.320502943378436e+00, -8.875203139603666e+00 } ); // itest=250: oxxxxx#11 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -1.440000000000000e+02, // itest=251: oxxxxx#11 nsp=1 mass=-400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=251: oxxxxx#11 nsp=1 mass=-400 - 1.442220510185596e+01, 0.000000000000000e+00, // itest=251: oxxxxx#11 nsp=1 mass=-400 - 1.664100588675688e+01, -1.775040627920733e+01, // itest=251: oxxxxx#11 nsp=1 mass=-400 - -7.211102550927978e+00, -0.000000000000000e+00, // itest=251: oxxxxx#11 nsp=1 mass=-400 - -8.320502943378436e+00, 8.875203139603666e+00 } ); // itest=251: oxxxxx#11 nsp=1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=252: ixxxxx#12 nsp=1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=252: ixxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=252: ixxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=252: ixxxxx#12 nsp=1 mass=0 - 3.162277660168379e+01, 0.000000000000000e+00, // itest=252: ixxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=252: ixxxxx#12 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=253: ixxxxx#12 nsp=1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=253: ixxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=253: ixxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=253: ixxxxx#12 nsp=1 mass=0 - 3.162277660168379e+01, 0.000000000000000e+00, // itest=253: ixxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=253: ixxxxx#12 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=254: ipzxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=254: ipzxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=254: ipzxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=254: ipzxxx#12 nsp=1 mass=0 - 3.162277660168379e+01, 0.000000000000000e+00, // itest=254: ipzxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=254: ipzxxx#12 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=255: vxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=255: vxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=255: vxxxxx#12 nsp=1 mass=0 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=255: vxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 7.071067811865476e-01, // itest=255: vxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=255: vxxxxx#12 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=256: vxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=256: vxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=256: vxxxxx#12 nsp=1 mass=0 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=256: vxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 7.071067811865476e-01, // itest=256: vxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=256: vxxxxx#12 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=257: sxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=257: sxxxxx#12 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=257: sxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=257: sxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=257: sxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=257: sxxxxx#12 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=258: sxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=258: sxxxxx#12 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=258: sxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=258: sxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=258: sxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=258: sxxxxx#12 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=259: oxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=259: oxxxxx#12 nsp=1 mass=0 - 3.162277660168379e+01, 0.000000000000000e+00, // itest=259: oxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=259: oxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=259: oxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=259: oxxxxx#12 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=260: oxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=260: oxxxxx#12 nsp=1 mass=0 - 3.162277660168379e+01, 0.000000000000000e+00, // itest=260: oxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=260: oxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=260: oxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=260: oxxxxx#12 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=261: opzxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=261: opzxxx#12 nsp=1 mass=0 - 3.162277660168379e+01, 0.000000000000000e+00, // itest=261: opzxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=261: opzxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=261: opzxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=261: opzxxx#12 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=262: ixxxxx#13 nsp=1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=262: ixxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=262: ixxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=262: ixxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=262: ixxxxx#13 nsp=1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=262: ixxxxx#13 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=263: ixxxxx#13 nsp=1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=263: ixxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=263: ixxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=263: ixxxxx#13 nsp=1 mass=0 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=263: ixxxxx#13 nsp=1 mass=0 - -3.162277660168379e+01, -0.000000000000000e+00 } ); // itest=263: ixxxxx#13 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=264: imzxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=264: imzxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=264: imzxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=264: imzxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=264: imzxxx#13 nsp=1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=264: imzxxx#13 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=265: vxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=265: vxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=265: vxxxxx#13 nsp=1 mass=0 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=265: vxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, -7.071067811865476e-01, // itest=265: vxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=265: vxxxxx#13 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=266: vxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=266: vxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=266: vxxxxx#13 nsp=1 mass=0 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=266: vxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, -7.071067811865476e-01, // itest=266: vxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=266: vxxxxx#13 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=267: sxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=267: sxxxxx#13 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=267: sxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=267: sxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=267: sxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=267: sxxxxx#13 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=268: sxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=268: sxxxxx#13 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=268: sxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=268: sxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=268: sxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=268: sxxxxx#13 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=269: oxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=269: oxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=269: oxxxxx#13 nsp=1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00, // itest=269: oxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=269: oxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=269: oxxxxx#13 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=270: oxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=270: oxxxxx#13 nsp=1 mass=0 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=270: oxxxxx#13 nsp=1 mass=0 - -3.162277660168379e+01, -0.000000000000000e+00, // itest=270: oxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=270: oxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=270: oxxxxx#13 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=271: omzxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=271: omzxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=271: omzxxx#13 nsp=1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00, // itest=271: omzxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=271: omzxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=271: omzxxx#13 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=272: ixxxxx#14 nsp=1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=272: ixxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=272: ixxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=272: ixxxxx#14 nsp=1 mass=0 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=272: ixxxxx#14 nsp=1 mass=0 - 1.341640786499874e+01, 1.788854381999832e+01 } ); // itest=272: ixxxxx#14 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=273: ixxxxx#14 nsp=1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=273: ixxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=273: ixxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=273: ixxxxx#14 nsp=1 mass=0 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=273: ixxxxx#14 nsp=1 mass=0 - 1.341640786499874e+01, 1.788854381999832e+01 } ); // itest=273: ixxxxx#14 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=274: ixzxxx#14 nsp=1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=274: ixzxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=274: ixzxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=274: ixzxxx#14 nsp=1 mass=0 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=274: ixzxxx#14 nsp=1 mass=0 - 1.341640786499874e+01, 1.788854381999832e+01 } ); // itest=274: ixzxxx#14 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=275: vxxxxx#14 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=275: vxxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=275: vxxxxx#14 nsp=1 mass=0 - -0.000000000000000e+00, -5.656854249492381e-01, // itest=275: vxxxxx#14 nsp=1 mass=0 - -0.000000000000000e+00, 4.242640687119285e-01, // itest=275: vxxxxx#14 nsp=1 mass=0 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=275: vxxxxx#14 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=276: vxxxxx#14 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=276: vxxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=276: vxxxxx#14 nsp=1 mass=0 - -0.000000000000000e+00, -5.656854249492381e-01, // itest=276: vxxxxx#14 nsp=1 mass=0 - -0.000000000000000e+00, 4.242640687119285e-01, // itest=276: vxxxxx#14 nsp=1 mass=0 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=276: vxxxxx#14 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=277: sxxxxx#14 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=277: sxxxxx#14 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=277: sxxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=277: sxxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=277: sxxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=277: sxxxxx#14 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=278: sxxxxx#14 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=278: sxxxxx#14 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=278: sxxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=278: sxxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=278: sxxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=278: sxxxxx#14 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=279: oxxxxx#14 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=279: oxxxxx#14 nsp=1 mass=0 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=279: oxxxxx#14 nsp=1 mass=0 - 1.341640786499874e+01, -1.788854381999832e+01, // itest=279: oxxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=279: oxxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=279: oxxxxx#14 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=280: oxxxxx#14 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=280: oxxxxx#14 nsp=1 mass=0 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=280: oxxxxx#14 nsp=1 mass=0 - 1.341640786499874e+01, -1.788854381999832e+01, // itest=280: oxxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=280: oxxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=280: oxxxxx#14 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=281: oxzxxx#14 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=281: oxzxxx#14 nsp=1 mass=0 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=281: oxzxxx#14 nsp=1 mass=0 - 1.341640786499874e+01, -1.788854381999832e+01, // itest=281: oxzxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=281: oxzxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=281: oxzxxx#14 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=282: ixxxxx#15 nsp=1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=282: ixxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=282: ixxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=282: ixxxxx#15 nsp=1 mass=0 - 3.000000000000000e+01, 0.000000000000000e+00, // itest=282: ixxxxx#15 nsp=1 mass=0 - 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=282: ixxxxx#15 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=283: ixxxxx#15 nsp=1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=283: ixxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=283: ixxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=283: ixxxxx#15 nsp=1 mass=0 - 3.000000000000000e+01, 0.000000000000000e+00, // itest=283: ixxxxx#15 nsp=1 mass=0 - 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=283: ixxxxx#15 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=284: ixzxxx#15 nsp=1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=284: ixzxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=284: ixzxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=284: ixzxxx#15 nsp=1 mass=0 - 3.000000000000000e+01, 0.000000000000000e+00, // itest=284: ixzxxx#15 nsp=1 mass=0 - 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=284: ixzxxx#15 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=285: vxxxxx#15 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=285: vxxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=285: vxxxxx#15 nsp=1 mass=0 - -3.394112549695428e-01, -5.656854249492381e-01, // itest=285: vxxxxx#15 nsp=1 mass=0 - -4.525483399593904e-01, 4.242640687119285e-01, // itest=285: vxxxxx#15 nsp=1 mass=0 - 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=285: vxxxxx#15 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=286: vxxxxx#15 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=286: vxxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=286: vxxxxx#15 nsp=1 mass=0 - -3.394112549695428e-01, -5.656854249492381e-01, // itest=286: vxxxxx#15 nsp=1 mass=0 - -4.525483399593904e-01, 4.242640687119285e-01, // itest=286: vxxxxx#15 nsp=1 mass=0 - 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=286: vxxxxx#15 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=287: sxxxxx#15 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=287: sxxxxx#15 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=287: sxxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=287: sxxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=287: sxxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=287: sxxxxx#15 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=288: sxxxxx#15 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=288: sxxxxx#15 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=288: sxxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=288: sxxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=288: sxxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=288: sxxxxx#15 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=289: oxxxxx#15 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=289: oxxxxx#15 nsp=1 mass=0 - 3.000000000000000e+01, 0.000000000000000e+00, // itest=289: oxxxxx#15 nsp=1 mass=0 - 6.000000000000000e+00, -8.000000000000000e+00, // itest=289: oxxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=289: oxxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=289: oxxxxx#15 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=290: oxxxxx#15 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=290: oxxxxx#15 nsp=1 mass=0 - 3.000000000000000e+01, 0.000000000000000e+00, // itest=290: oxxxxx#15 nsp=1 mass=0 - 6.000000000000000e+00, -8.000000000000000e+00, // itest=290: oxxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=290: oxxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=290: oxxxxx#15 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=291: oxzxxx#15 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=291: oxzxxx#15 nsp=1 mass=0 - 3.000000000000000e+01, 0.000000000000000e+00, // itest=291: oxzxxx#15 nsp=1 mass=0 - 6.000000000000000e+00, -8.000000000000000e+00, // itest=291: oxzxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=291: oxzxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=291: oxzxxx#15 nsp=1 mass=0 + 5.000000000000000e+02, 5.000000000000000e+02, // itest=50: ixxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=50: ixxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=50: ixxxxx#5 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=50: ixxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=50: ixxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=50: ixxxxx#5 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=51: ixxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=51: ixxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=51: ixxxxx#5 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=51: ixxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=51: ixxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=51: ixxxxx#5 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=52: ipzxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=52: ipzxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=52: ipzxxx#5 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=52: ipzxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=52: ipzxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=52: ipzxxx#5 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=53: vxxxxx#5 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=53: vxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=53: vxxxxx#5 nsp=-1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=53: vxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=53: vxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=53: vxxxxx#5 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=54: vxxxxx#5 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=54: vxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=54: vxxxxx#5 nsp=-1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=54: vxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=54: vxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=54: vxxxxx#5 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=55: sxxxxx#5 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=55: sxxxxx#5 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=55: sxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=55: sxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=55: sxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=55: sxxxxx#5 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=56: sxxxxx#5 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=56: sxxxxx#5 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=56: sxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=56: sxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=56: sxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=56: sxxxxx#5 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=57: oxxxxx#5 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=57: oxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=57: oxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=57: oxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=57: oxxxxx#5 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=57: oxxxxx#5 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=58: oxxxxx#5 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=58: oxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=58: oxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=58: oxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=58: oxxxxx#5 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=58: oxxxxx#5 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=59: opzxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=59: opzxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=59: opzxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=59: opzxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=59: opzxxx#5 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=59: opzxxx#5 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=60: ixxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=60: ixxxxx#6 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=60: ixxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=60: ixxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=60: ixxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=60: ixxxxx#6 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=61: ixxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=61: ixxxxx#6 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=61: ixxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=61: ixxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=61: ixxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=61: ixxxxx#6 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=62: imzxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=62: imzxxx#6 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=62: imzxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=62: imzxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=62: imzxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=62: imzxxx#6 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=63: vxxxxx#6 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=63: vxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=63: vxxxxx#6 nsp=-1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=63: vxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=63: vxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=63: vxxxxx#6 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=64: vxxxxx#6 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=64: vxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=64: vxxxxx#6 nsp=-1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=64: vxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=64: vxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=64: vxxxxx#6 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=65: sxxxxx#6 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=65: sxxxxx#6 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=65: sxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=65: sxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=65: sxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=65: sxxxxx#6 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=66: sxxxxx#6 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=66: sxxxxx#6 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=66: sxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=66: sxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=66: sxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=66: sxxxxx#6 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=67: oxxxxx#6 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=67: oxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=67: oxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=67: oxxxxx#6 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=67: oxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=67: oxxxxx#6 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=68: oxxxxx#6 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=68: oxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=68: oxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=68: oxxxxx#6 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=68: oxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=68: oxxxxx#6 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=69: omzxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=69: omzxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=69: omzxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=69: omzxxx#6 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=69: omzxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=69: omzxxx#6 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=70: ixxxxx#7 nsp=-1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=70: ixxxxx#7 nsp=-1 mass=0 + 1.341640786499874e+01, -1.788854381999831e+01, // itest=70: ixxxxx#7 nsp=-1 mass=0 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=70: ixxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=70: ixxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=70: ixxxxx#7 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=71: ixxxxx#7 nsp=-1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=71: ixxxxx#7 nsp=-1 mass=0 + 1.341640786499874e+01, -1.788854381999831e+01, // itest=71: ixxxxx#7 nsp=-1 mass=0 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=71: ixxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=71: ixxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=71: ixxxxx#7 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=72: ixzxxx#7 nsp=-1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=72: ixzxxx#7 nsp=-1 mass=0 + 1.341640786499874e+01, -1.788854381999832e+01, // itest=72: ixzxxx#7 nsp=-1 mass=0 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=72: ixzxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=72: ixzxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=72: ixzxxx#7 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=73: vxxxxx#7 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=73: vxxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=73: vxxxxx#7 nsp=-1 mass=0 + -0.000000000000000e+00, 5.656854249492381e-01, // itest=73: vxxxxx#7 nsp=-1 mass=0 + -0.000000000000000e+00, -4.242640687119285e-01, // itest=73: vxxxxx#7 nsp=-1 mass=0 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=73: vxxxxx#7 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=74: vxxxxx#7 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=74: vxxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=74: vxxxxx#7 nsp=-1 mass=0 + -0.000000000000000e+00, 5.656854249492381e-01, // itest=74: vxxxxx#7 nsp=-1 mass=0 + -0.000000000000000e+00, -4.242640687119285e-01, // itest=74: vxxxxx#7 nsp=-1 mass=0 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=74: vxxxxx#7 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=75: sxxxxx#7 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=75: sxxxxx#7 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=75: sxxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=75: sxxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=75: sxxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=75: sxxxxx#7 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=76: sxxxxx#7 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=76: sxxxxx#7 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=76: sxxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=76: sxxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=76: sxxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=76: sxxxxx#7 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=77: oxxxxx#7 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=77: oxxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=77: oxxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=77: oxxxxx#7 nsp=-1 mass=0 + 1.341640786499874e+01, 1.788854381999831e+01, // itest=77: oxxxxx#7 nsp=-1 mass=0 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=77: oxxxxx#7 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=78: oxxxxx#7 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=78: oxxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=78: oxxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=78: oxxxxx#7 nsp=-1 mass=0 + 1.341640786499874e+01, 1.788854381999831e+01, // itest=78: oxxxxx#7 nsp=-1 mass=0 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=78: oxxxxx#7 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=79: oxzxxx#7 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=79: oxzxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=79: oxzxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=79: oxzxxx#7 nsp=-1 mass=0 + 1.341640786499874e+01, 1.788854381999832e+01, // itest=79: oxzxxx#7 nsp=-1 mass=0 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=79: oxzxxx#7 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=80: ixxxxx#8 nsp=-1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=80: ixxxxx#8 nsp=-1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=80: ixxxxx#8 nsp=-1 mass=0 + -3.000000000000000e+01, 0.000000000000000e+00, // itest=80: ixxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=80: ixxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=80: ixxxxx#8 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=81: ixxxxx#8 nsp=-1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=81: ixxxxx#8 nsp=-1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=81: ixxxxx#8 nsp=-1 mass=0 + -3.000000000000000e+01, 0.000000000000000e+00, // itest=81: ixxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=81: ixxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=81: ixxxxx#8 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=82: ixzxxx#8 nsp=-1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=82: ixzxxx#8 nsp=-1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=82: ixzxxx#8 nsp=-1 mass=0 + -3.000000000000000e+01, 0.000000000000000e+00, // itest=82: ixzxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=82: ixzxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=82: ixzxxx#8 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=83: vxxxxx#8 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=83: vxxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=83: vxxxxx#8 nsp=-1 mass=0 + -3.394112549695428e-01, 5.656854249492381e-01, // itest=83: vxxxxx#8 nsp=-1 mass=0 + -4.525483399593904e-01, -4.242640687119285e-01, // itest=83: vxxxxx#8 nsp=-1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=83: vxxxxx#8 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=84: vxxxxx#8 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=84: vxxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=84: vxxxxx#8 nsp=-1 mass=0 + -3.394112549695428e-01, 5.656854249492381e-01, // itest=84: vxxxxx#8 nsp=-1 mass=0 + -4.525483399593904e-01, -4.242640687119285e-01, // itest=84: vxxxxx#8 nsp=-1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=84: vxxxxx#8 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=85: sxxxxx#8 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=85: sxxxxx#8 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=85: sxxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=85: sxxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=85: sxxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=85: sxxxxx#8 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=86: sxxxxx#8 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=86: sxxxxx#8 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=86: sxxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=86: sxxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=86: sxxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=86: sxxxxx#8 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=87: oxxxxx#8 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=87: oxxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=87: oxxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=87: oxxxxx#8 nsp=-1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00, // itest=87: oxxxxx#8 nsp=-1 mass=0 + -3.000000000000000e+01, 0.000000000000000e+00 } ); // itest=87: oxxxxx#8 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=88: oxxxxx#8 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=88: oxxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=88: oxxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=88: oxxxxx#8 nsp=-1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00, // itest=88: oxxxxx#8 nsp=-1 mass=0 + -3.000000000000000e+01, 0.000000000000000e+00 } ); // itest=88: oxxxxx#8 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=89: oxzxxx#8 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=89: oxzxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=89: oxzxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=89: oxzxxx#8 nsp=-1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00, // itest=89: oxzxxx#8 nsp=-1 mass=0 + -3.000000000000000e+01, 0.000000000000000e+00 } ); // itest=89: oxzxxx#8 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=90: ixxxxx#9 nsp=-1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=90: ixxxxx#9 nsp=-1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=90: ixxxxx#9 nsp=-1 mass=0 + -1.000000000000000e+01, 0.000000000000000e+00, // itest=90: ixxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=90: ixxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=90: ixxxxx#9 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=91: ixxxxx#9 nsp=-1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=91: ixxxxx#9 nsp=-1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=91: ixxxxx#9 nsp=-1 mass=0 + -1.000000000000000e+01, 0.000000000000000e+00, // itest=91: ixxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=91: ixxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=91: ixxxxx#9 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=92: ixzxxx#9 nsp=-1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=92: ixzxxx#9 nsp=-1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=92: ixzxxx#9 nsp=-1 mass=0 + -1.000000000000000e+01, 0.000000000000000e+00, // itest=92: ixzxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=92: ixzxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=92: ixzxxx#9 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=93: vxxxxx#9 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=93: vxxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=93: vxxxxx#9 nsp=-1 mass=0 + 3.394112549695428e-01, 5.656854249492381e-01, // itest=93: vxxxxx#9 nsp=-1 mass=0 + 4.525483399593904e-01, -4.242640687119285e-01, // itest=93: vxxxxx#9 nsp=-1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=93: vxxxxx#9 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=94: vxxxxx#9 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=94: vxxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=94: vxxxxx#9 nsp=-1 mass=0 + 3.394112549695428e-01, 5.656854249492381e-01, // itest=94: vxxxxx#9 nsp=-1 mass=0 + 4.525483399593904e-01, -4.242640687119285e-01, // itest=94: vxxxxx#9 nsp=-1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=94: vxxxxx#9 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=95: sxxxxx#9 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=95: sxxxxx#9 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=95: sxxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=95: sxxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=95: sxxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=95: sxxxxx#9 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=96: sxxxxx#9 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=96: sxxxxx#9 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=96: sxxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=96: sxxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=96: sxxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=96: sxxxxx#9 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=97: oxxxxx#9 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=97: oxxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=97: oxxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=97: oxxxxx#9 nsp=-1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01, // itest=97: oxxxxx#9 nsp=-1 mass=0 + -1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=97: oxxxxx#9 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=98: oxxxxx#9 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=98: oxxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=98: oxxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=98: oxxxxx#9 nsp=-1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01, // itest=98: oxxxxx#9 nsp=-1 mass=0 + -1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=98: oxxxxx#9 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=99: oxzxxx#9 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=99: oxzxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=99: oxzxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=99: oxzxxx#9 nsp=-1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01, // itest=99: oxzxxx#9 nsp=-1 mass=0 + -1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=99: oxzxxx#9 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=100: ixxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=100: ixxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=100: ixxxxx#10 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=100: ixxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=100: ixxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=100: ixxxxx#10 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=101: ixxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=101: ixxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=101: ixxxxx#10 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=101: ixxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=101: ixxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=101: ixxxxx#10 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=102: ipzxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=102: ipzxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=102: ipzxxx#10 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=102: ipzxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=102: ipzxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=102: ipzxxx#10 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=103: vxxxxx#10 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=103: vxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=103: vxxxxx#10 nsp=-1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=103: vxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=103: vxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=103: vxxxxx#10 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=104: vxxxxx#10 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=104: vxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=104: vxxxxx#10 nsp=-1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=104: vxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=104: vxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=104: vxxxxx#10 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=105: sxxxxx#10 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=105: sxxxxx#10 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=105: sxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=105: sxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=105: sxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=105: sxxxxx#10 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=106: sxxxxx#10 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=106: sxxxxx#10 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=106: sxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=106: sxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=106: sxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=106: sxxxxx#10 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=107: oxxxxx#10 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=107: oxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=107: oxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=107: oxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=107: oxxxxx#10 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=107: oxxxxx#10 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=108: oxxxxx#10 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=108: oxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=108: oxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=108: oxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=108: oxxxxx#10 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=108: oxxxxx#10 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=109: opzxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=109: opzxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=109: opzxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=109: opzxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=109: opzxxx#10 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=109: opzxxx#10 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=110: ixxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=110: ixxxxx#11 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=110: ixxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=110: ixxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=110: ixxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=110: ixxxxx#11 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=111: ixxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=111: ixxxxx#11 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=111: ixxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=111: ixxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=111: ixxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=111: ixxxxx#11 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=112: imzxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=112: imzxxx#11 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=112: imzxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=112: imzxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=112: imzxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=112: imzxxx#11 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=113: vxxxxx#11 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=113: vxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=113: vxxxxx#11 nsp=-1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=113: vxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=113: vxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=113: vxxxxx#11 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=114: vxxxxx#11 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=114: vxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=114: vxxxxx#11 nsp=-1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=114: vxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=114: vxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=114: vxxxxx#11 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=115: sxxxxx#11 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=115: sxxxxx#11 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=115: sxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=115: sxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=115: sxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=115: sxxxxx#11 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=116: sxxxxx#11 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=116: sxxxxx#11 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=116: sxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=116: sxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=116: sxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=116: sxxxxx#11 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=117: oxxxxx#11 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=117: oxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=117: oxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=117: oxxxxx#11 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=117: oxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=117: oxxxxx#11 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=118: oxxxxx#11 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=118: oxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=118: oxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=118: oxxxxx#11 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=118: oxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=118: oxxxxx#11 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=119: omzxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=119: omzxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=119: omzxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=119: omzxxx#11 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=119: omzxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=119: omzxxx#11 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=120: ixxxxx#12 nsp=-1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=120: ixxxxx#12 nsp=-1 mass=0 + 1.341640786499874e+01, -1.788854381999831e+01, // itest=120: ixxxxx#12 nsp=-1 mass=0 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=120: ixxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=120: ixxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=120: ixxxxx#12 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=121: ixxxxx#12 nsp=-1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=121: ixxxxx#12 nsp=-1 mass=0 + 1.341640786499874e+01, -1.788854381999831e+01, // itest=121: ixxxxx#12 nsp=-1 mass=0 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=121: ixxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=121: ixxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=121: ixxxxx#12 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=122: ixzxxx#12 nsp=-1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=122: ixzxxx#12 nsp=-1 mass=0 + 1.341640786499874e+01, -1.788854381999832e+01, // itest=122: ixzxxx#12 nsp=-1 mass=0 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=122: ixzxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=122: ixzxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=122: ixzxxx#12 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=123: vxxxxx#12 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=123: vxxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=123: vxxxxx#12 nsp=-1 mass=0 + -0.000000000000000e+00, 5.656854249492381e-01, // itest=123: vxxxxx#12 nsp=-1 mass=0 + -0.000000000000000e+00, -4.242640687119285e-01, // itest=123: vxxxxx#12 nsp=-1 mass=0 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=123: vxxxxx#12 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=124: vxxxxx#12 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=124: vxxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=124: vxxxxx#12 nsp=-1 mass=0 + -0.000000000000000e+00, 5.656854249492381e-01, // itest=124: vxxxxx#12 nsp=-1 mass=0 + -0.000000000000000e+00, -4.242640687119285e-01, // itest=124: vxxxxx#12 nsp=-1 mass=0 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=124: vxxxxx#12 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=125: sxxxxx#12 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=125: sxxxxx#12 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=125: sxxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=125: sxxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=125: sxxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=125: sxxxxx#12 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=126: sxxxxx#12 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=126: sxxxxx#12 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=126: sxxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=126: sxxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=126: sxxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=126: sxxxxx#12 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=127: oxxxxx#12 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=127: oxxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=127: oxxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=127: oxxxxx#12 nsp=-1 mass=0 + 1.341640786499874e+01, 1.788854381999831e+01, // itest=127: oxxxxx#12 nsp=-1 mass=0 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=127: oxxxxx#12 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=128: oxxxxx#12 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=128: oxxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=128: oxxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=128: oxxxxx#12 nsp=-1 mass=0 + 1.341640786499874e+01, 1.788854381999831e+01, // itest=128: oxxxxx#12 nsp=-1 mass=0 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=128: oxxxxx#12 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=129: oxzxxx#12 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=129: oxzxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=129: oxzxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=129: oxzxxx#12 nsp=-1 mass=0 + 1.341640786499874e+01, 1.788854381999832e+01, // itest=129: oxzxxx#12 nsp=-1 mass=0 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=129: oxzxxx#12 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=130: ixxxxx#13 nsp=-1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=130: ixxxxx#13 nsp=-1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=130: ixxxxx#13 nsp=-1 mass=0 + -3.000000000000000e+01, 0.000000000000000e+00, // itest=130: ixxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=130: ixxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=130: ixxxxx#13 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=131: ixxxxx#13 nsp=-1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=131: ixxxxx#13 nsp=-1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=131: ixxxxx#13 nsp=-1 mass=0 + -3.000000000000000e+01, 0.000000000000000e+00, // itest=131: ixxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=131: ixxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=131: ixxxxx#13 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=132: ixzxxx#13 nsp=-1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=132: ixzxxx#13 nsp=-1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=132: ixzxxx#13 nsp=-1 mass=0 + -3.000000000000000e+01, 0.000000000000000e+00, // itest=132: ixzxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=132: ixzxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=132: ixzxxx#13 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=133: vxxxxx#13 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=133: vxxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=133: vxxxxx#13 nsp=-1 mass=0 + -3.394112549695428e-01, 5.656854249492381e-01, // itest=133: vxxxxx#13 nsp=-1 mass=0 + -4.525483399593904e-01, -4.242640687119285e-01, // itest=133: vxxxxx#13 nsp=-1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=133: vxxxxx#13 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=134: vxxxxx#13 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=134: vxxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=134: vxxxxx#13 nsp=-1 mass=0 + -3.394112549695428e-01, 5.656854249492381e-01, // itest=134: vxxxxx#13 nsp=-1 mass=0 + -4.525483399593904e-01, -4.242640687119285e-01, // itest=134: vxxxxx#13 nsp=-1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=134: vxxxxx#13 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=135: sxxxxx#13 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=135: sxxxxx#13 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=135: sxxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=135: sxxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=135: sxxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=135: sxxxxx#13 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=136: sxxxxx#13 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=136: sxxxxx#13 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=136: sxxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=136: sxxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=136: sxxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=136: sxxxxx#13 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=137: oxxxxx#13 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=137: oxxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=137: oxxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=137: oxxxxx#13 nsp=-1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00, // itest=137: oxxxxx#13 nsp=-1 mass=0 + -3.000000000000000e+01, 0.000000000000000e+00 } ); // itest=137: oxxxxx#13 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=138: oxxxxx#13 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=138: oxxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=138: oxxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=138: oxxxxx#13 nsp=-1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00, // itest=138: oxxxxx#13 nsp=-1 mass=0 + -3.000000000000000e+01, 0.000000000000000e+00 } ); // itest=138: oxxxxx#13 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=139: oxzxxx#13 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=139: oxzxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=139: oxzxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=139: oxzxxx#13 nsp=-1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00, // itest=139: oxzxxx#13 nsp=-1 mass=0 + -3.000000000000000e+01, 0.000000000000000e+00 } ); // itest=139: oxzxxx#13 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=140: ixxxxx#14 nsp=-1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=140: ixxxxx#14 nsp=-1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=140: ixxxxx#14 nsp=-1 mass=0 + -1.000000000000000e+01, 0.000000000000000e+00, // itest=140: ixxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=140: ixxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=140: ixxxxx#14 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=141: ixxxxx#14 nsp=-1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=141: ixxxxx#14 nsp=-1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=141: ixxxxx#14 nsp=-1 mass=0 + -1.000000000000000e+01, 0.000000000000000e+00, // itest=141: ixxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=141: ixxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=141: ixxxxx#14 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=142: ixzxxx#14 nsp=-1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=142: ixzxxx#14 nsp=-1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=142: ixzxxx#14 nsp=-1 mass=0 + -1.000000000000000e+01, 0.000000000000000e+00, // itest=142: ixzxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=142: ixzxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=142: ixzxxx#14 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=143: vxxxxx#14 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=143: vxxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=143: vxxxxx#14 nsp=-1 mass=0 + 3.394112549695428e-01, 5.656854249492381e-01, // itest=143: vxxxxx#14 nsp=-1 mass=0 + 4.525483399593904e-01, -4.242640687119285e-01, // itest=143: vxxxxx#14 nsp=-1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=143: vxxxxx#14 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=144: vxxxxx#14 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=144: vxxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=144: vxxxxx#14 nsp=-1 mass=0 + 3.394112549695428e-01, 5.656854249492381e-01, // itest=144: vxxxxx#14 nsp=-1 mass=0 + 4.525483399593904e-01, -4.242640687119285e-01, // itest=144: vxxxxx#14 nsp=-1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=144: vxxxxx#14 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=145: sxxxxx#14 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=145: sxxxxx#14 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=145: sxxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=145: sxxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=145: sxxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=145: sxxxxx#14 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=146: sxxxxx#14 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=146: sxxxxx#14 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=146: sxxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=146: sxxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=146: sxxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=146: sxxxxx#14 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=147: oxxxxx#14 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=147: oxxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=147: oxxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=147: oxxxxx#14 nsp=-1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01, // itest=147: oxxxxx#14 nsp=-1 mass=0 + -1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=147: oxxxxx#14 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=148: oxxxxx#14 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=148: oxxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=148: oxxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=148: oxxxxx#14 nsp=-1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01, // itest=148: oxxxxx#14 nsp=-1 mass=0 + -1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=148: oxxxxx#14 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=149: oxzxxx#14 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=149: oxzxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=149: oxzxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=149: oxzxxx#14 nsp=-1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01, // itest=149: oxzxxx#14 nsp=-1 mass=0 + -1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=149: oxzxxx#14 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=150: ixxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=150: ixxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=150: ixxxxx#15 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=150: ixxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=150: ixxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=150: ixxxxx#15 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=151: ixxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=151: ixxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=151: ixxxxx#15 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=151: ixxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=151: ixxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=151: ixxxxx#15 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=152: ipzxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=152: ipzxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=152: ipzxxx#15 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=152: ipzxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=152: ipzxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=152: ipzxxx#15 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=153: vxxxxx#15 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=153: vxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=153: vxxxxx#15 nsp=-1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=153: vxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=153: vxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=153: vxxxxx#15 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=154: vxxxxx#15 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=154: vxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=154: vxxxxx#15 nsp=-1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=154: vxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=154: vxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=154: vxxxxx#15 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=155: sxxxxx#15 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=155: sxxxxx#15 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=155: sxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=155: sxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=155: sxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=155: sxxxxx#15 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=156: sxxxxx#15 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=156: sxxxxx#15 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=156: sxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=156: sxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=156: sxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=156: sxxxxx#15 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=157: oxxxxx#15 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=157: oxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=157: oxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=157: oxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=157: oxxxxx#15 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=157: oxxxxx#15 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=158: oxxxxx#15 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=158: oxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=158: oxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=158: oxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=158: oxxxxx#15 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=158: oxxxxx#15 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=159: opzxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=159: opzxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=159: opzxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=159: opzxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=159: opzxxx#15 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=159: opzxxx#15 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=160: ixxxxx#16 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=160: ixxxxx#16 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=160: ixxxxx#16 nsp=-1 mass=500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=160: ixxxxx#16 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=160: ixxxxx#16 nsp=-1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=160: ixxxxx#16 nsp=-1 mass=500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=161: ixxxxx#16 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=161: ixxxxx#16 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=161: ixxxxx#16 nsp=-1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=161: ixxxxx#16 nsp=-1 mass=-500 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=161: ixxxxx#16 nsp=-1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=161: ixxxxx#16 nsp=-1 mass=-500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=162: vxxxxx#16 nsp=-1 mass=500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=162: vxxxxx#16 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=162: vxxxxx#16 nsp=-1 mass=500 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=162: vxxxxx#16 nsp=-1 mass=500 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=162: vxxxxx#16 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=162: vxxxxx#16 nsp=-1 mass=500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=163: vxxxxx#16 nsp=-1 mass=-500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=163: vxxxxx#16 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=163: vxxxxx#16 nsp=-1 mass=-500 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=163: vxxxxx#16 nsp=-1 mass=-500 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=163: vxxxxx#16 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=163: vxxxxx#16 nsp=-1 mass=-500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=164: sxxxxx#16 nsp=-1 mass=500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=164: sxxxxx#16 nsp=-1 mass=500 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=164: sxxxxx#16 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=164: sxxxxx#16 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=164: sxxxxx#16 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=164: sxxxxx#16 nsp=-1 mass=500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=165: sxxxxx#16 nsp=-1 mass=-500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=165: sxxxxx#16 nsp=-1 mass=-500 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=165: sxxxxx#16 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=165: sxxxxx#16 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=165: sxxxxx#16 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=165: sxxxxx#16 nsp=-1 mass=-500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=166: oxxxxx#16 nsp=-1 mass=500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=166: oxxxxx#16 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=166: oxxxxx#16 nsp=-1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=166: oxxxxx#16 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=166: oxxxxx#16 nsp=-1 mass=500 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=166: oxxxxx#16 nsp=-1 mass=500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=167: oxxxxx#16 nsp=-1 mass=-500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=167: oxxxxx#16 nsp=-1 mass=-500 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=167: oxxxxx#16 nsp=-1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=167: oxxxxx#16 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=167: oxxxxx#16 nsp=-1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=167: oxxxxx#16 nsp=-1 mass=-500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=168: ixxxxx#17 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=168: ixxxxx#17 nsp=-1 mass=400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=168: ixxxxx#17 nsp=-1 mass=400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=168: ixxxxx#17 nsp=-1 mass=400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=168: ixxxxx#17 nsp=-1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00 } ); // itest=168: ixxxxx#17 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=169: ixxxxx#17 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=169: ixxxxx#17 nsp=-1 mass=-400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=169: ixxxxx#17 nsp=-1 mass=-400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=169: ixxxxx#17 nsp=-1 mass=-400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=169: ixxxxx#17 nsp=-1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00 } ); // itest=169: ixxxxx#17 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=170: vxxxxx#17 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=170: vxxxxx#17 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=170: vxxxxx#17 nsp=-1 mass=400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=170: vxxxxx#17 nsp=-1 mass=400 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=170: vxxxxx#17 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=170: vxxxxx#17 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=171: vxxxxx#17 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=171: vxxxxx#17 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=171: vxxxxx#17 nsp=-1 mass=-400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=171: vxxxxx#17 nsp=-1 mass=-400 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=171: vxxxxx#17 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=171: vxxxxx#17 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=172: sxxxxx#17 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=172: sxxxxx#17 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=172: sxxxxx#17 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=172: sxxxxx#17 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=172: sxxxxx#17 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=172: sxxxxx#17 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=173: sxxxxx#17 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=173: sxxxxx#17 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=173: sxxxxx#17 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=173: sxxxxx#17 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=173: sxxxxx#17 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=173: sxxxxx#17 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=174: oxxxxx#17 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=174: oxxxxx#17 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=174: oxxxxx#17 nsp=-1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=174: oxxxxx#17 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=174: oxxxxx#17 nsp=-1 mass=400 + -2.828427124746190e+01, -0.000000000000000e+00 } ); // itest=174: oxxxxx#17 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=175: oxxxxx#17 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=175: oxxxxx#17 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=175: oxxxxx#17 nsp=-1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=175: oxxxxx#17 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=175: oxxxxx#17 nsp=-1 mass=-400 + -2.828427124746190e+01, -0.000000000000000e+00 } ); // itest=175: oxxxxx#17 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=176: ixxxxx#18 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=176: ixxxxx#18 nsp=-1 mass=400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=176: ixxxxx#18 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=176: ixxxxx#18 nsp=-1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=176: ixxxxx#18 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=176: ixxxxx#18 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=177: ixxxxx#18 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=177: ixxxxx#18 nsp=-1 mass=-400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=177: ixxxxx#18 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=177: ixxxxx#18 nsp=-1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=177: ixxxxx#18 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=177: ixxxxx#18 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=178: vxxxxx#18 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=178: vxxxxx#18 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=178: vxxxxx#18 nsp=-1 mass=400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=178: vxxxxx#18 nsp=-1 mass=400 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=178: vxxxxx#18 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=178: vxxxxx#18 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=179: vxxxxx#18 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=179: vxxxxx#18 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=179: vxxxxx#18 nsp=-1 mass=-400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=179: vxxxxx#18 nsp=-1 mass=-400 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=179: vxxxxx#18 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=179: vxxxxx#18 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=180: sxxxxx#18 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=180: sxxxxx#18 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=180: sxxxxx#18 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=180: sxxxxx#18 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=180: sxxxxx#18 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=180: sxxxxx#18 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=181: sxxxxx#18 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=181: sxxxxx#18 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=181: sxxxxx#18 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=181: sxxxxx#18 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=181: sxxxxx#18 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=181: sxxxxx#18 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=182: oxxxxx#18 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=182: oxxxxx#18 nsp=-1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=182: oxxxxx#18 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=182: oxxxxx#18 nsp=-1 mass=400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=182: oxxxxx#18 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=182: oxxxxx#18 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=183: oxxxxx#18 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=183: oxxxxx#18 nsp=-1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=183: oxxxxx#18 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=183: oxxxxx#18 nsp=-1 mass=-400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=183: oxxxxx#18 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=183: oxxxxx#18 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=184: ixxxxx#19 nsp=-1 mass=400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=184: ixxxxx#19 nsp=-1 mass=400 + 1.200000000000000e+01, -1.600000000000000e+01, // itest=184: ixxxxx#19 nsp=-1 mass=400 + -2.000000000000000e+01, -0.000000000000000e+00, // itest=184: ixxxxx#19 nsp=-1 mass=400 + -5.999999999999999e+00, 7.999999999999999e+00, // itest=184: ixxxxx#19 nsp=-1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=184: ixxxxx#19 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=185: ixxxxx#19 nsp=-1 mass=-400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=185: ixxxxx#19 nsp=-1 mass=-400 + 1.200000000000000e+01, -1.600000000000000e+01, // itest=185: ixxxxx#19 nsp=-1 mass=-400 + -2.000000000000000e+01, -0.000000000000000e+00, // itest=185: ixxxxx#19 nsp=-1 mass=-400 + 5.999999999999999e+00, -7.999999999999999e+00, // itest=185: ixxxxx#19 nsp=-1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00 } ); // itest=185: ixxxxx#19 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=186: vxxxxx#19 nsp=-1 mass=400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=186: vxxxxx#19 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=186: vxxxxx#19 nsp=-1 mass=400 + 0.000000000000000e+00, 5.656854249492381e-01, // itest=186: vxxxxx#19 nsp=-1 mass=400 + 0.000000000000000e+00, -4.242640687119285e-01, // itest=186: vxxxxx#19 nsp=-1 mass=400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=186: vxxxxx#19 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=187: vxxxxx#19 nsp=-1 mass=-400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=187: vxxxxx#19 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=187: vxxxxx#19 nsp=-1 mass=-400 + -0.000000000000000e+00, 5.656854249492381e-01, // itest=187: vxxxxx#19 nsp=-1 mass=-400 + -0.000000000000000e+00, -4.242640687119285e-01, // itest=187: vxxxxx#19 nsp=-1 mass=-400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=187: vxxxxx#19 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=188: sxxxxx#19 nsp=-1 mass=400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=188: sxxxxx#19 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=188: sxxxxx#19 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=188: sxxxxx#19 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=188: sxxxxx#19 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=188: sxxxxx#19 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=189: sxxxxx#19 nsp=-1 mass=-400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=189: sxxxxx#19 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=189: sxxxxx#19 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=189: sxxxxx#19 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=189: sxxxxx#19 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=189: sxxxxx#19 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=190: oxxxxx#19 nsp=-1 mass=400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=190: oxxxxx#19 nsp=-1 mass=400 + -5.999999999999999e+00, -7.999999999999999e+00, // itest=190: oxxxxx#19 nsp=-1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=190: oxxxxx#19 nsp=-1 mass=400 + 1.200000000000000e+01, 1.600000000000000e+01, // itest=190: oxxxxx#19 nsp=-1 mass=400 + -2.000000000000000e+01, -0.000000000000000e+00 } ); // itest=190: oxxxxx#19 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=191: oxxxxx#19 nsp=-1 mass=-400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=191: oxxxxx#19 nsp=-1 mass=-400 + 5.999999999999999e+00, 7.999999999999999e+00, // itest=191: oxxxxx#19 nsp=-1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00, // itest=191: oxxxxx#19 nsp=-1 mass=-400 + 1.200000000000000e+01, 1.600000000000000e+01, // itest=191: oxxxxx#19 nsp=-1 mass=-400 + -2.000000000000000e+01, -0.000000000000000e+00 } ); // itest=191: oxxxxx#19 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=192: ixxxxx#20 nsp=-1 mass=400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=192: ixxxxx#20 nsp=-1 mass=400 + -1.600000000000000e+01, 1.200000000000000e+01, // itest=192: ixxxxx#20 nsp=-1 mass=400 + -2.000000000000000e+01, -0.000000000000000e+00, // itest=192: ixxxxx#20 nsp=-1 mass=400 + 7.999999999999999e+00, -5.999999999999999e+00, // itest=192: ixxxxx#20 nsp=-1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=192: ixxxxx#20 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=193: ixxxxx#20 nsp=-1 mass=-400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=193: ixxxxx#20 nsp=-1 mass=-400 + -1.600000000000000e+01, 1.200000000000000e+01, // itest=193: ixxxxx#20 nsp=-1 mass=-400 + -2.000000000000000e+01, -0.000000000000000e+00, // itest=193: ixxxxx#20 nsp=-1 mass=-400 + -7.999999999999999e+00, 5.999999999999999e+00, // itest=193: ixxxxx#20 nsp=-1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00 } ); // itest=193: ixxxxx#20 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=194: vxxxxx#20 nsp=-1 mass=400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=194: vxxxxx#20 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=194: vxxxxx#20 nsp=-1 mass=400 + 0.000000000000000e+00, -4.242640687119285e-01, // itest=194: vxxxxx#20 nsp=-1 mass=400 + 0.000000000000000e+00, 5.656854249492381e-01, // itest=194: vxxxxx#20 nsp=-1 mass=400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=194: vxxxxx#20 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=195: vxxxxx#20 nsp=-1 mass=-400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=195: vxxxxx#20 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=195: vxxxxx#20 nsp=-1 mass=-400 + 0.000000000000000e+00, -4.242640687119285e-01, // itest=195: vxxxxx#20 nsp=-1 mass=-400 + 0.000000000000000e+00, 5.656854249492381e-01, // itest=195: vxxxxx#20 nsp=-1 mass=-400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=195: vxxxxx#20 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=196: sxxxxx#20 nsp=-1 mass=400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=196: sxxxxx#20 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=196: sxxxxx#20 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=196: sxxxxx#20 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=196: sxxxxx#20 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=196: sxxxxx#20 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=197: sxxxxx#20 nsp=-1 mass=-400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=197: sxxxxx#20 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=197: sxxxxx#20 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=197: sxxxxx#20 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=197: sxxxxx#20 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=197: sxxxxx#20 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=198: oxxxxx#20 nsp=-1 mass=400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=198: oxxxxx#20 nsp=-1 mass=400 + 7.999999999999999e+00, 5.999999999999999e+00, // itest=198: oxxxxx#20 nsp=-1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=198: oxxxxx#20 nsp=-1 mass=400 + -1.600000000000000e+01, -1.200000000000000e+01, // itest=198: oxxxxx#20 nsp=-1 mass=400 + -2.000000000000000e+01, -0.000000000000000e+00 } ); // itest=198: oxxxxx#20 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=199: oxxxxx#20 nsp=-1 mass=-400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=199: oxxxxx#20 nsp=-1 mass=-400 + -7.999999999999999e+00, -5.999999999999999e+00, // itest=199: oxxxxx#20 nsp=-1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00, // itest=199: oxxxxx#20 nsp=-1 mass=-400 + -1.600000000000000e+01, -1.200000000000000e+01, // itest=199: oxxxxx#20 nsp=-1 mass=-400 + -2.000000000000000e+01, -0.000000000000000e+00 } ); // itest=199: oxxxxx#20 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=200: ixxxxx#21 nsp=-1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=200: ixxxxx#21 nsp=-1 mass=400 + 9.863939238321439e+00, -1.052153518754287e+01, // itest=200: ixxxxx#21 nsp=-1 mass=400 + -2.433105012119288e+01, -0.000000000000000e+00, // itest=200: ixxxxx#21 nsp=-1 mass=400 + -4.931969619160719e+00, 5.260767593771432e+00, // itest=200: ixxxxx#21 nsp=-1 mass=400 + 1.216552506059644e+01, 0.000000000000000e+00 } ); // itest=200: ixxxxx#21 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=201: ixxxxx#21 nsp=-1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=201: ixxxxx#21 nsp=-1 mass=-400 + 9.863939238321439e+00, -1.052153518754287e+01, // itest=201: ixxxxx#21 nsp=-1 mass=-400 + -2.433105012119288e+01, -0.000000000000000e+00, // itest=201: ixxxxx#21 nsp=-1 mass=-400 + 4.931969619160719e+00, -5.260767593771432e+00, // itest=201: ixxxxx#21 nsp=-1 mass=-400 + -1.216552506059644e+01, -0.000000000000000e+00 } ); // itest=201: ixxxxx#21 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=202: vxxxxx#21 nsp=-1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=202: vxxxxx#21 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=202: vxxxxx#21 nsp=-1 mass=400 + -2.321373168788980e-01, 5.158607041753289e-01, // itest=202: vxxxxx#21 nsp=-1 mass=400 + -2.476131380041579e-01, -4.836194101643708e-01, // itest=202: vxxxxx#21 nsp=-1 mass=400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=202: vxxxxx#21 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=203: vxxxxx#21 nsp=-1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=203: vxxxxx#21 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=203: vxxxxx#21 nsp=-1 mass=-400 + -2.321373168788980e-01, 5.158607041753289e-01, // itest=203: vxxxxx#21 nsp=-1 mass=-400 + -2.476131380041579e-01, -4.836194101643708e-01, // itest=203: vxxxxx#21 nsp=-1 mass=-400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=203: vxxxxx#21 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=204: sxxxxx#21 nsp=-1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=204: sxxxxx#21 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=204: sxxxxx#21 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=204: sxxxxx#21 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=204: sxxxxx#21 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=204: sxxxxx#21 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=205: sxxxxx#21 nsp=-1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=205: sxxxxx#21 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=205: sxxxxx#21 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=205: sxxxxx#21 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=205: sxxxxx#21 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=205: sxxxxx#21 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=206: oxxxxx#21 nsp=-1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=206: oxxxxx#21 nsp=-1 mass=400 + -4.931969619160719e+00, -5.260767593771432e+00, // itest=206: oxxxxx#21 nsp=-1 mass=400 + 1.216552506059644e+01, 0.000000000000000e+00, // itest=206: oxxxxx#21 nsp=-1 mass=400 + 9.863939238321439e+00, 1.052153518754287e+01, // itest=206: oxxxxx#21 nsp=-1 mass=400 + -2.433105012119288e+01, -0.000000000000000e+00 } ); // itest=206: oxxxxx#21 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=207: oxxxxx#21 nsp=-1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=207: oxxxxx#21 nsp=-1 mass=-400 + 4.931969619160719e+00, 5.260767593771432e+00, // itest=207: oxxxxx#21 nsp=-1 mass=-400 + -1.216552506059644e+01, -0.000000000000000e+00, // itest=207: oxxxxx#21 nsp=-1 mass=-400 + 9.863939238321439e+00, 1.052153518754287e+01, // itest=207: oxxxxx#21 nsp=-1 mass=-400 + -2.433105012119288e+01, -0.000000000000000e+00 } ); // itest=207: oxxxxx#21 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=208: ixxxxx#22 nsp=-1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=208: ixxxxx#22 nsp=-1 mass=400 + 1.664100588675688e+01, -1.775040627920733e+01, // itest=208: ixxxxx#22 nsp=-1 mass=400 + -1.442220510185596e+01, -0.000000000000000e+00, // itest=208: ixxxxx#22 nsp=-1 mass=400 + -8.320502943378436e+00, 8.875203139603666e+00, // itest=208: ixxxxx#22 nsp=-1 mass=400 + 7.211102550927978e+00, 0.000000000000000e+00 } ); // itest=208: ixxxxx#22 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=209: ixxxxx#22 nsp=-1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=209: ixxxxx#22 nsp=-1 mass=-400 + 1.664100588675688e+01, -1.775040627920733e+01, // itest=209: ixxxxx#22 nsp=-1 mass=-400 + -1.442220510185596e+01, -0.000000000000000e+00, // itest=209: ixxxxx#22 nsp=-1 mass=-400 + 8.320502943378436e+00, -8.875203139603666e+00, // itest=209: ixxxxx#22 nsp=-1 mass=-400 + -7.211102550927978e+00, -0.000000000000000e+00 } ); // itest=209: ixxxxx#22 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=210: vxxxxx#22 nsp=-1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=210: vxxxxx#22 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=210: vxxxxx#22 nsp=-1 mass=400 + 2.321373168788980e-01, 5.158607041753289e-01, // itest=210: vxxxxx#22 nsp=-1 mass=400 + 2.476131380041579e-01, -4.836194101643708e-01, // itest=210: vxxxxx#22 nsp=-1 mass=400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=210: vxxxxx#22 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=211: vxxxxx#22 nsp=-1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=211: vxxxxx#22 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=211: vxxxxx#22 nsp=-1 mass=-400 + 2.321373168788980e-01, 5.158607041753289e-01, // itest=211: vxxxxx#22 nsp=-1 mass=-400 + 2.476131380041579e-01, -4.836194101643708e-01, // itest=211: vxxxxx#22 nsp=-1 mass=-400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=211: vxxxxx#22 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=212: sxxxxx#22 nsp=-1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=212: sxxxxx#22 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=212: sxxxxx#22 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=212: sxxxxx#22 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=212: sxxxxx#22 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=212: sxxxxx#22 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=213: sxxxxx#22 nsp=-1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=213: sxxxxx#22 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=213: sxxxxx#22 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=213: sxxxxx#22 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=213: sxxxxx#22 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=213: sxxxxx#22 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=214: oxxxxx#22 nsp=-1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=214: oxxxxx#22 nsp=-1 mass=400 + -8.320502943378436e+00, -8.875203139603666e+00, // itest=214: oxxxxx#22 nsp=-1 mass=400 + 7.211102550927978e+00, 0.000000000000000e+00, // itest=214: oxxxxx#22 nsp=-1 mass=400 + 1.664100588675688e+01, 1.775040627920733e+01, // itest=214: oxxxxx#22 nsp=-1 mass=400 + -1.442220510185596e+01, -0.000000000000000e+00 } ); // itest=214: oxxxxx#22 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=215: oxxxxx#22 nsp=-1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=215: oxxxxx#22 nsp=-1 mass=-400 + 8.320502943378436e+00, 8.875203139603666e+00, // itest=215: oxxxxx#22 nsp=-1 mass=-400 + -7.211102550927978e+00, -0.000000000000000e+00, // itest=215: oxxxxx#22 nsp=-1 mass=-400 + 1.664100588675688e+01, 1.775040627920733e+01, // itest=215: oxxxxx#22 nsp=-1 mass=-400 + -1.442220510185596e+01, -0.000000000000000e+00 } ); // itest=215: oxxxxx#22 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=216: ixxxxx#23 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=216: ixxxxx#23 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=216: ixxxxx#23 nsp=-1 mass=500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=216: ixxxxx#23 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=216: ixxxxx#23 nsp=-1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=216: ixxxxx#23 nsp=-1 mass=500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=217: ixxxxx#23 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=217: ixxxxx#23 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=217: ixxxxx#23 nsp=-1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=217: ixxxxx#23 nsp=-1 mass=-500 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=217: ixxxxx#23 nsp=-1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=217: ixxxxx#23 nsp=-1 mass=-500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=218: vxxxxx#23 nsp=-1 mass=500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=218: vxxxxx#23 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=218: vxxxxx#23 nsp=-1 mass=500 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=218: vxxxxx#23 nsp=-1 mass=500 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=218: vxxxxx#23 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=218: vxxxxx#23 nsp=-1 mass=500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=219: vxxxxx#23 nsp=-1 mass=-500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=219: vxxxxx#23 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=219: vxxxxx#23 nsp=-1 mass=-500 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=219: vxxxxx#23 nsp=-1 mass=-500 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=219: vxxxxx#23 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=219: vxxxxx#23 nsp=-1 mass=-500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=220: sxxxxx#23 nsp=-1 mass=500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=220: sxxxxx#23 nsp=-1 mass=500 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=220: sxxxxx#23 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=220: sxxxxx#23 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=220: sxxxxx#23 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=220: sxxxxx#23 nsp=-1 mass=500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=221: sxxxxx#23 nsp=-1 mass=-500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=221: sxxxxx#23 nsp=-1 mass=-500 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=221: sxxxxx#23 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=221: sxxxxx#23 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=221: sxxxxx#23 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=221: sxxxxx#23 nsp=-1 mass=-500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=222: oxxxxx#23 nsp=-1 mass=500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=222: oxxxxx#23 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=222: oxxxxx#23 nsp=-1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=222: oxxxxx#23 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=222: oxxxxx#23 nsp=-1 mass=500 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=222: oxxxxx#23 nsp=-1 mass=500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=223: oxxxxx#23 nsp=-1 mass=-500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=223: oxxxxx#23 nsp=-1 mass=-500 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=223: oxxxxx#23 nsp=-1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=223: oxxxxx#23 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=223: oxxxxx#23 nsp=-1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=223: oxxxxx#23 nsp=-1 mass=-500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=224: ixxxxx#24 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=224: ixxxxx#24 nsp=-1 mass=400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=224: ixxxxx#24 nsp=-1 mass=400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=224: ixxxxx#24 nsp=-1 mass=400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=224: ixxxxx#24 nsp=-1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00 } ); // itest=224: ixxxxx#24 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=225: ixxxxx#24 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=225: ixxxxx#24 nsp=-1 mass=-400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=225: ixxxxx#24 nsp=-1 mass=-400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=225: ixxxxx#24 nsp=-1 mass=-400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=225: ixxxxx#24 nsp=-1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00 } ); // itest=225: ixxxxx#24 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=226: vxxxxx#24 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=226: vxxxxx#24 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=226: vxxxxx#24 nsp=-1 mass=400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=226: vxxxxx#24 nsp=-1 mass=400 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=226: vxxxxx#24 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=226: vxxxxx#24 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=227: vxxxxx#24 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=227: vxxxxx#24 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=227: vxxxxx#24 nsp=-1 mass=-400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=227: vxxxxx#24 nsp=-1 mass=-400 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=227: vxxxxx#24 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=227: vxxxxx#24 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=228: sxxxxx#24 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=228: sxxxxx#24 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=228: sxxxxx#24 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=228: sxxxxx#24 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=228: sxxxxx#24 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=228: sxxxxx#24 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=229: sxxxxx#24 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=229: sxxxxx#24 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=229: sxxxxx#24 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=229: sxxxxx#24 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=229: sxxxxx#24 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=229: sxxxxx#24 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=230: oxxxxx#24 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=230: oxxxxx#24 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=230: oxxxxx#24 nsp=-1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=230: oxxxxx#24 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=230: oxxxxx#24 nsp=-1 mass=400 + -2.828427124746190e+01, -0.000000000000000e+00 } ); // itest=230: oxxxxx#24 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=231: oxxxxx#24 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=231: oxxxxx#24 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=231: oxxxxx#24 nsp=-1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=231: oxxxxx#24 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=231: oxxxxx#24 nsp=-1 mass=-400 + -2.828427124746190e+01, -0.000000000000000e+00 } ); // itest=231: oxxxxx#24 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=232: ixxxxx#25 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=232: ixxxxx#25 nsp=-1 mass=400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=232: ixxxxx#25 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=232: ixxxxx#25 nsp=-1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=232: ixxxxx#25 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=232: ixxxxx#25 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=233: ixxxxx#25 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=233: ixxxxx#25 nsp=-1 mass=-400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=233: ixxxxx#25 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=233: ixxxxx#25 nsp=-1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=233: ixxxxx#25 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=233: ixxxxx#25 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=234: vxxxxx#25 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=234: vxxxxx#25 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=234: vxxxxx#25 nsp=-1 mass=400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=234: vxxxxx#25 nsp=-1 mass=400 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=234: vxxxxx#25 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=234: vxxxxx#25 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=235: vxxxxx#25 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=235: vxxxxx#25 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=235: vxxxxx#25 nsp=-1 mass=-400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=235: vxxxxx#25 nsp=-1 mass=-400 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=235: vxxxxx#25 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=235: vxxxxx#25 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=236: sxxxxx#25 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=236: sxxxxx#25 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=236: sxxxxx#25 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=236: sxxxxx#25 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=236: sxxxxx#25 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=236: sxxxxx#25 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=237: sxxxxx#25 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=237: sxxxxx#25 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=237: sxxxxx#25 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=237: sxxxxx#25 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=237: sxxxxx#25 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=237: sxxxxx#25 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=238: oxxxxx#25 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=238: oxxxxx#25 nsp=-1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=238: oxxxxx#25 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=238: oxxxxx#25 nsp=-1 mass=400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=238: oxxxxx#25 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=238: oxxxxx#25 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=239: oxxxxx#25 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=239: oxxxxx#25 nsp=-1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=239: oxxxxx#25 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=239: oxxxxx#25 nsp=-1 mass=-400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=239: oxxxxx#25 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=239: oxxxxx#25 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=240: ixxxxx#26 nsp=-1 mass=400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=240: ixxxxx#26 nsp=-1 mass=400 + 1.200000000000000e+01, -1.600000000000000e+01, // itest=240: ixxxxx#26 nsp=-1 mass=400 + -2.000000000000000e+01, -0.000000000000000e+00, // itest=240: ixxxxx#26 nsp=-1 mass=400 + -5.999999999999999e+00, 7.999999999999999e+00, // itest=240: ixxxxx#26 nsp=-1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=240: ixxxxx#26 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=241: ixxxxx#26 nsp=-1 mass=-400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=241: ixxxxx#26 nsp=-1 mass=-400 + 1.200000000000000e+01, -1.600000000000000e+01, // itest=241: ixxxxx#26 nsp=-1 mass=-400 + -2.000000000000000e+01, -0.000000000000000e+00, // itest=241: ixxxxx#26 nsp=-1 mass=-400 + 5.999999999999999e+00, -7.999999999999999e+00, // itest=241: ixxxxx#26 nsp=-1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00 } ); // itest=241: ixxxxx#26 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=242: vxxxxx#26 nsp=-1 mass=400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=242: vxxxxx#26 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=242: vxxxxx#26 nsp=-1 mass=400 + 0.000000000000000e+00, 5.656854249492381e-01, // itest=242: vxxxxx#26 nsp=-1 mass=400 + 0.000000000000000e+00, -4.242640687119285e-01, // itest=242: vxxxxx#26 nsp=-1 mass=400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=242: vxxxxx#26 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=243: vxxxxx#26 nsp=-1 mass=-400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=243: vxxxxx#26 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=243: vxxxxx#26 nsp=-1 mass=-400 + -0.000000000000000e+00, 5.656854249492381e-01, // itest=243: vxxxxx#26 nsp=-1 mass=-400 + -0.000000000000000e+00, -4.242640687119285e-01, // itest=243: vxxxxx#26 nsp=-1 mass=-400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=243: vxxxxx#26 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=244: sxxxxx#26 nsp=-1 mass=400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=244: sxxxxx#26 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=244: sxxxxx#26 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=244: sxxxxx#26 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=244: sxxxxx#26 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=244: sxxxxx#26 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=245: sxxxxx#26 nsp=-1 mass=-400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=245: sxxxxx#26 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=245: sxxxxx#26 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=245: sxxxxx#26 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=245: sxxxxx#26 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=245: sxxxxx#26 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=246: oxxxxx#26 nsp=-1 mass=400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=246: oxxxxx#26 nsp=-1 mass=400 + -5.999999999999999e+00, -7.999999999999999e+00, // itest=246: oxxxxx#26 nsp=-1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=246: oxxxxx#26 nsp=-1 mass=400 + 1.200000000000000e+01, 1.600000000000000e+01, // itest=246: oxxxxx#26 nsp=-1 mass=400 + -2.000000000000000e+01, -0.000000000000000e+00 } ); // itest=246: oxxxxx#26 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=247: oxxxxx#26 nsp=-1 mass=-400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=247: oxxxxx#26 nsp=-1 mass=-400 + 5.999999999999999e+00, 7.999999999999999e+00, // itest=247: oxxxxx#26 nsp=-1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00, // itest=247: oxxxxx#26 nsp=-1 mass=-400 + 1.200000000000000e+01, 1.600000000000000e+01, // itest=247: oxxxxx#26 nsp=-1 mass=-400 + -2.000000000000000e+01, -0.000000000000000e+00 } ); // itest=247: oxxxxx#26 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=248: ixxxxx#27 nsp=-1 mass=400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=248: ixxxxx#27 nsp=-1 mass=400 + -1.600000000000000e+01, 1.200000000000000e+01, // itest=248: ixxxxx#27 nsp=-1 mass=400 + -2.000000000000000e+01, -0.000000000000000e+00, // itest=248: ixxxxx#27 nsp=-1 mass=400 + 7.999999999999999e+00, -5.999999999999999e+00, // itest=248: ixxxxx#27 nsp=-1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=248: ixxxxx#27 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=249: ixxxxx#27 nsp=-1 mass=-400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=249: ixxxxx#27 nsp=-1 mass=-400 + -1.600000000000000e+01, 1.200000000000000e+01, // itest=249: ixxxxx#27 nsp=-1 mass=-400 + -2.000000000000000e+01, -0.000000000000000e+00, // itest=249: ixxxxx#27 nsp=-1 mass=-400 + -7.999999999999999e+00, 5.999999999999999e+00, // itest=249: ixxxxx#27 nsp=-1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00 } ); // itest=249: ixxxxx#27 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=250: vxxxxx#27 nsp=-1 mass=400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=250: vxxxxx#27 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=250: vxxxxx#27 nsp=-1 mass=400 + 0.000000000000000e+00, -4.242640687119285e-01, // itest=250: vxxxxx#27 nsp=-1 mass=400 + 0.000000000000000e+00, 5.656854249492381e-01, // itest=250: vxxxxx#27 nsp=-1 mass=400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=250: vxxxxx#27 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=251: vxxxxx#27 nsp=-1 mass=-400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=251: vxxxxx#27 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=251: vxxxxx#27 nsp=-1 mass=-400 + 0.000000000000000e+00, -4.242640687119285e-01, // itest=251: vxxxxx#27 nsp=-1 mass=-400 + 0.000000000000000e+00, 5.656854249492381e-01, // itest=251: vxxxxx#27 nsp=-1 mass=-400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=251: vxxxxx#27 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=252: sxxxxx#27 nsp=-1 mass=400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=252: sxxxxx#27 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=252: sxxxxx#27 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=252: sxxxxx#27 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=252: sxxxxx#27 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=252: sxxxxx#27 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=253: sxxxxx#27 nsp=-1 mass=-400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=253: sxxxxx#27 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=253: sxxxxx#27 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=253: sxxxxx#27 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=253: sxxxxx#27 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=253: sxxxxx#27 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=254: oxxxxx#27 nsp=-1 mass=400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=254: oxxxxx#27 nsp=-1 mass=400 + 7.999999999999999e+00, 5.999999999999999e+00, // itest=254: oxxxxx#27 nsp=-1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=254: oxxxxx#27 nsp=-1 mass=400 + -1.600000000000000e+01, -1.200000000000000e+01, // itest=254: oxxxxx#27 nsp=-1 mass=400 + -2.000000000000000e+01, -0.000000000000000e+00 } ); // itest=254: oxxxxx#27 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=255: oxxxxx#27 nsp=-1 mass=-400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=255: oxxxxx#27 nsp=-1 mass=-400 + -7.999999999999999e+00, -5.999999999999999e+00, // itest=255: oxxxxx#27 nsp=-1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00, // itest=255: oxxxxx#27 nsp=-1 mass=-400 + -1.600000000000000e+01, -1.200000000000000e+01, // itest=255: oxxxxx#27 nsp=-1 mass=-400 + -2.000000000000000e+01, -0.000000000000000e+00 } ); // itest=255: oxxxxx#27 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=256: ixxxxx#28 nsp=-1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=256: ixxxxx#28 nsp=-1 mass=400 + 9.863939238321439e+00, -1.052153518754287e+01, // itest=256: ixxxxx#28 nsp=-1 mass=400 + -2.433105012119288e+01, -0.000000000000000e+00, // itest=256: ixxxxx#28 nsp=-1 mass=400 + -4.931969619160719e+00, 5.260767593771432e+00, // itest=256: ixxxxx#28 nsp=-1 mass=400 + 1.216552506059644e+01, 0.000000000000000e+00 } ); // itest=256: ixxxxx#28 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=257: ixxxxx#28 nsp=-1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=257: ixxxxx#28 nsp=-1 mass=-400 + 9.863939238321439e+00, -1.052153518754287e+01, // itest=257: ixxxxx#28 nsp=-1 mass=-400 + -2.433105012119288e+01, -0.000000000000000e+00, // itest=257: ixxxxx#28 nsp=-1 mass=-400 + 4.931969619160719e+00, -5.260767593771432e+00, // itest=257: ixxxxx#28 nsp=-1 mass=-400 + -1.216552506059644e+01, -0.000000000000000e+00 } ); // itest=257: ixxxxx#28 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=258: vxxxxx#28 nsp=-1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=258: vxxxxx#28 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=258: vxxxxx#28 nsp=-1 mass=400 + -2.321373168788980e-01, 5.158607041753289e-01, // itest=258: vxxxxx#28 nsp=-1 mass=400 + -2.476131380041579e-01, -4.836194101643708e-01, // itest=258: vxxxxx#28 nsp=-1 mass=400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=258: vxxxxx#28 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=259: vxxxxx#28 nsp=-1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=259: vxxxxx#28 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=259: vxxxxx#28 nsp=-1 mass=-400 + -2.321373168788980e-01, 5.158607041753289e-01, // itest=259: vxxxxx#28 nsp=-1 mass=-400 + -2.476131380041579e-01, -4.836194101643708e-01, // itest=259: vxxxxx#28 nsp=-1 mass=-400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=259: vxxxxx#28 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=260: sxxxxx#28 nsp=-1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=260: sxxxxx#28 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=260: sxxxxx#28 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=260: sxxxxx#28 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=260: sxxxxx#28 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=260: sxxxxx#28 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=261: sxxxxx#28 nsp=-1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=261: sxxxxx#28 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=261: sxxxxx#28 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=261: sxxxxx#28 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=261: sxxxxx#28 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=261: sxxxxx#28 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=262: oxxxxx#28 nsp=-1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=262: oxxxxx#28 nsp=-1 mass=400 + -4.931969619160719e+00, -5.260767593771432e+00, // itest=262: oxxxxx#28 nsp=-1 mass=400 + 1.216552506059644e+01, 0.000000000000000e+00, // itest=262: oxxxxx#28 nsp=-1 mass=400 + 9.863939238321439e+00, 1.052153518754287e+01, // itest=262: oxxxxx#28 nsp=-1 mass=400 + -2.433105012119288e+01, -0.000000000000000e+00 } ); // itest=262: oxxxxx#28 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=263: oxxxxx#28 nsp=-1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=263: oxxxxx#28 nsp=-1 mass=-400 + 4.931969619160719e+00, 5.260767593771432e+00, // itest=263: oxxxxx#28 nsp=-1 mass=-400 + -1.216552506059644e+01, -0.000000000000000e+00, // itest=263: oxxxxx#28 nsp=-1 mass=-400 + 9.863939238321439e+00, 1.052153518754287e+01, // itest=263: oxxxxx#28 nsp=-1 mass=-400 + -2.433105012119288e+01, -0.000000000000000e+00 } ); // itest=263: oxxxxx#28 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=264: ixxxxx#29 nsp=-1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=264: ixxxxx#29 nsp=-1 mass=400 + 1.664100588675688e+01, -1.775040627920733e+01, // itest=264: ixxxxx#29 nsp=-1 mass=400 + -1.442220510185596e+01, -0.000000000000000e+00, // itest=264: ixxxxx#29 nsp=-1 mass=400 + -8.320502943378436e+00, 8.875203139603666e+00, // itest=264: ixxxxx#29 nsp=-1 mass=400 + 7.211102550927978e+00, 0.000000000000000e+00 } ); // itest=264: ixxxxx#29 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=265: ixxxxx#29 nsp=-1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=265: ixxxxx#29 nsp=-1 mass=-400 + 1.664100588675688e+01, -1.775040627920733e+01, // itest=265: ixxxxx#29 nsp=-1 mass=-400 + -1.442220510185596e+01, -0.000000000000000e+00, // itest=265: ixxxxx#29 nsp=-1 mass=-400 + 8.320502943378436e+00, -8.875203139603666e+00, // itest=265: ixxxxx#29 nsp=-1 mass=-400 + -7.211102550927978e+00, -0.000000000000000e+00 } ); // itest=265: ixxxxx#29 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=266: vxxxxx#29 nsp=-1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=266: vxxxxx#29 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=266: vxxxxx#29 nsp=-1 mass=400 + 2.321373168788980e-01, 5.158607041753289e-01, // itest=266: vxxxxx#29 nsp=-1 mass=400 + 2.476131380041579e-01, -4.836194101643708e-01, // itest=266: vxxxxx#29 nsp=-1 mass=400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=266: vxxxxx#29 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=267: vxxxxx#29 nsp=-1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=267: vxxxxx#29 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=267: vxxxxx#29 nsp=-1 mass=-400 + 2.321373168788980e-01, 5.158607041753289e-01, // itest=267: vxxxxx#29 nsp=-1 mass=-400 + 2.476131380041579e-01, -4.836194101643708e-01, // itest=267: vxxxxx#29 nsp=-1 mass=-400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=267: vxxxxx#29 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=268: sxxxxx#29 nsp=-1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=268: sxxxxx#29 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=268: sxxxxx#29 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=268: sxxxxx#29 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=268: sxxxxx#29 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=268: sxxxxx#29 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=269: sxxxxx#29 nsp=-1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=269: sxxxxx#29 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=269: sxxxxx#29 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=269: sxxxxx#29 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=269: sxxxxx#29 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=269: sxxxxx#29 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=270: oxxxxx#29 nsp=-1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=270: oxxxxx#29 nsp=-1 mass=400 + -8.320502943378436e+00, -8.875203139603666e+00, // itest=270: oxxxxx#29 nsp=-1 mass=400 + 7.211102550927978e+00, 0.000000000000000e+00, // itest=270: oxxxxx#29 nsp=-1 mass=400 + 1.664100588675688e+01, 1.775040627920733e+01, // itest=270: oxxxxx#29 nsp=-1 mass=400 + -1.442220510185596e+01, -0.000000000000000e+00 } ); // itest=270: oxxxxx#29 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=271: oxxxxx#29 nsp=-1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=271: oxxxxx#29 nsp=-1 mass=-400 + 8.320502943378436e+00, 8.875203139603666e+00, // itest=271: oxxxxx#29 nsp=-1 mass=-400 + -7.211102550927978e+00, -0.000000000000000e+00, // itest=271: oxxxxx#29 nsp=-1 mass=-400 + 1.664100588675688e+01, 1.775040627920733e+01, // itest=271: oxxxxx#29 nsp=-1 mass=-400 + -1.442220510185596e+01, -0.000000000000000e+00 } ); // itest=271: oxxxxx#29 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=272: ixxxxx#30 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=272: ixxxxx#30 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=272: ixxxxx#30 nsp=-1 mass=500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=272: ixxxxx#30 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=272: ixxxxx#30 nsp=-1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=272: ixxxxx#30 nsp=-1 mass=500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=273: ixxxxx#30 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=273: ixxxxx#30 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=273: ixxxxx#30 nsp=-1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=273: ixxxxx#30 nsp=-1 mass=-500 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=273: ixxxxx#30 nsp=-1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=273: ixxxxx#30 nsp=-1 mass=-500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=274: vxxxxx#30 nsp=-1 mass=500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=274: vxxxxx#30 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=274: vxxxxx#30 nsp=-1 mass=500 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=274: vxxxxx#30 nsp=-1 mass=500 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=274: vxxxxx#30 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=274: vxxxxx#30 nsp=-1 mass=500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=275: vxxxxx#30 nsp=-1 mass=-500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=275: vxxxxx#30 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=275: vxxxxx#30 nsp=-1 mass=-500 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=275: vxxxxx#30 nsp=-1 mass=-500 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=275: vxxxxx#30 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=275: vxxxxx#30 nsp=-1 mass=-500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=276: sxxxxx#30 nsp=-1 mass=500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=276: sxxxxx#30 nsp=-1 mass=500 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=276: sxxxxx#30 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=276: sxxxxx#30 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=276: sxxxxx#30 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=276: sxxxxx#30 nsp=-1 mass=500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=277: sxxxxx#30 nsp=-1 mass=-500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=277: sxxxxx#30 nsp=-1 mass=-500 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=277: sxxxxx#30 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=277: sxxxxx#30 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=277: sxxxxx#30 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=277: sxxxxx#30 nsp=-1 mass=-500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=278: oxxxxx#30 nsp=-1 mass=500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=278: oxxxxx#30 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=278: oxxxxx#30 nsp=-1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=278: oxxxxx#30 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=278: oxxxxx#30 nsp=-1 mass=500 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=278: oxxxxx#30 nsp=-1 mass=500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=279: oxxxxx#30 nsp=-1 mass=-500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=279: oxxxxx#30 nsp=-1 mass=-500 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=279: oxxxxx#30 nsp=-1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=279: oxxxxx#30 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=279: oxxxxx#30 nsp=-1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=279: oxxxxx#30 nsp=-1 mass=-500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=280: ixxxxx#31 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=280: ixxxxx#31 nsp=-1 mass=400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=280: ixxxxx#31 nsp=-1 mass=400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=280: ixxxxx#31 nsp=-1 mass=400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=280: ixxxxx#31 nsp=-1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00 } ); // itest=280: ixxxxx#31 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=281: ixxxxx#31 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=281: ixxxxx#31 nsp=-1 mass=-400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=281: ixxxxx#31 nsp=-1 mass=-400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=281: ixxxxx#31 nsp=-1 mass=-400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=281: ixxxxx#31 nsp=-1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00 } ); // itest=281: ixxxxx#31 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=282: vxxxxx#31 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=282: vxxxxx#31 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=282: vxxxxx#31 nsp=-1 mass=400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=282: vxxxxx#31 nsp=-1 mass=400 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=282: vxxxxx#31 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=282: vxxxxx#31 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=283: vxxxxx#31 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=283: vxxxxx#31 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=283: vxxxxx#31 nsp=-1 mass=-400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=283: vxxxxx#31 nsp=-1 mass=-400 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=283: vxxxxx#31 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=283: vxxxxx#31 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=284: sxxxxx#31 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=284: sxxxxx#31 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=284: sxxxxx#31 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=284: sxxxxx#31 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=284: sxxxxx#31 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=284: sxxxxx#31 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=285: sxxxxx#31 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=285: sxxxxx#31 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=285: sxxxxx#31 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=285: sxxxxx#31 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=285: sxxxxx#31 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=285: sxxxxx#31 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=286: oxxxxx#31 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=286: oxxxxx#31 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=286: oxxxxx#31 nsp=-1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=286: oxxxxx#31 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=286: oxxxxx#31 nsp=-1 mass=400 + -2.828427124746190e+01, -0.000000000000000e+00 } ); // itest=286: oxxxxx#31 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=287: oxxxxx#31 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=287: oxxxxx#31 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=287: oxxxxx#31 nsp=-1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=287: oxxxxx#31 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=287: oxxxxx#31 nsp=-1 mass=-400 + -2.828427124746190e+01, -0.000000000000000e+00 } ); // itest=287: oxxxxx#31 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=288: ixxxxx#0 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=288: ixxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=288: ixxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=288: ixxxxx#0 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=288: ixxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=288: ixxxxx#0 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=289: ixxxxx#0 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=289: ixxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=289: ixxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=289: ixxxxx#0 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=289: ixxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=289: ixxxxx#0 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=290: ipzxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=290: ipzxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=290: ipzxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=290: ipzxxx#0 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=290: ipzxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=290: ipzxxx#0 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=291: vxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=291: vxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=291: vxxxxx#0 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=291: vxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=291: vxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=291: vxxxxx#0 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=292: vxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=292: vxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=292: vxxxxx#0 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=292: vxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=292: vxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=292: vxxxxx#0 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=293: sxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=293: sxxxxx#0 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=293: sxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=293: sxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=293: sxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=293: sxxxxx#0 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=294: sxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=294: sxxxxx#0 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=294: sxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=294: sxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=294: sxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=294: sxxxxx#0 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=295: oxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=295: oxxxxx#0 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=295: oxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=295: oxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=295: oxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=295: oxxxxx#0 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=296: oxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=296: oxxxxx#0 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=296: oxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=296: oxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=296: oxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=296: oxxxxx#0 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=297: opzxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=297: opzxxx#0 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=297: opzxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=297: opzxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=297: opzxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=297: opzxxx#0 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=298: ixxxxx#1 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=298: ixxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=298: ixxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=298: ixxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=298: ixxxxx#1 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=298: ixxxxx#1 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=299: ixxxxx#1 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=299: ixxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=299: ixxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=299: ixxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=299: ixxxxx#1 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=299: ixxxxx#1 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=300: imzxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=300: imzxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=300: imzxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=300: imzxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=300: imzxxx#1 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=300: imzxxx#1 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=301: vxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=301: vxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=301: vxxxxx#1 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=301: vxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=301: vxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=301: vxxxxx#1 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=302: vxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=302: vxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=302: vxxxxx#1 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=302: vxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=302: vxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=302: vxxxxx#1 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=303: sxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=303: sxxxxx#1 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=303: sxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=303: sxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=303: sxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=303: sxxxxx#1 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=304: sxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=304: sxxxxx#1 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=304: sxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=304: sxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=304: sxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=304: sxxxxx#1 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=305: oxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=305: oxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=305: oxxxxx#1 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=305: oxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=305: oxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=305: oxxxxx#1 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=306: oxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=306: oxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=306: oxxxxx#1 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=306: oxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=306: oxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=306: oxxxxx#1 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=307: omzxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=307: omzxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=307: omzxxx#1 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=307: omzxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=307: omzxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=307: omzxxx#1 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=308: ixxxxx#2 nsp=1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=308: ixxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=308: ixxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=308: ixxxxx#2 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=308: ixxxxx#2 nsp=1 mass=0 + 1.341640786499874e+01, 1.788854381999831e+01 } ); // itest=308: ixxxxx#2 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=309: ixxxxx#2 nsp=1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=309: ixxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=309: ixxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=309: ixxxxx#2 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=309: ixxxxx#2 nsp=1 mass=0 + 1.341640786499874e+01, 1.788854381999831e+01 } ); // itest=309: ixxxxx#2 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=310: ixzxxx#2 nsp=1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=310: ixzxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=310: ixzxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=310: ixzxxx#2 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=310: ixzxxx#2 nsp=1 mass=0 + 1.341640786499874e+01, 1.788854381999832e+01 } ); // itest=310: ixzxxx#2 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=311: vxxxxx#2 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=311: vxxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=311: vxxxxx#2 nsp=1 mass=0 + -0.000000000000000e+00, -5.656854249492381e-01, // itest=311: vxxxxx#2 nsp=1 mass=0 + -0.000000000000000e+00, 4.242640687119285e-01, // itest=311: vxxxxx#2 nsp=1 mass=0 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=311: vxxxxx#2 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=312: vxxxxx#2 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=312: vxxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=312: vxxxxx#2 nsp=1 mass=0 + -0.000000000000000e+00, -5.656854249492381e-01, // itest=312: vxxxxx#2 nsp=1 mass=0 + -0.000000000000000e+00, 4.242640687119285e-01, // itest=312: vxxxxx#2 nsp=1 mass=0 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=312: vxxxxx#2 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=313: sxxxxx#2 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=313: sxxxxx#2 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=313: sxxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=313: sxxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=313: sxxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=313: sxxxxx#2 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=314: sxxxxx#2 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=314: sxxxxx#2 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=314: sxxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=314: sxxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=314: sxxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=314: sxxxxx#2 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=315: oxxxxx#2 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=315: oxxxxx#2 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=315: oxxxxx#2 nsp=1 mass=0 + 1.341640786499874e+01, -1.788854381999831e+01, // itest=315: oxxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=315: oxxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=315: oxxxxx#2 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=316: oxxxxx#2 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=316: oxxxxx#2 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=316: oxxxxx#2 nsp=1 mass=0 + 1.341640786499874e+01, -1.788854381999831e+01, // itest=316: oxxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=316: oxxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=316: oxxxxx#2 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=317: oxzxxx#2 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=317: oxzxxx#2 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=317: oxzxxx#2 nsp=1 mass=0 + 1.341640786499874e+01, -1.788854381999832e+01, // itest=317: oxzxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=317: oxzxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=317: oxzxxx#2 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=318: ixxxxx#3 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=318: ixxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=318: ixxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=318: ixxxxx#3 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=318: ixxxxx#3 nsp=1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=318: ixxxxx#3 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=319: ixxxxx#3 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=319: ixxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=319: ixxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=319: ixxxxx#3 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=319: ixxxxx#3 nsp=1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=319: ixxxxx#3 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=320: ixzxxx#3 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=320: ixzxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=320: ixzxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=320: ixzxxx#3 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=320: ixzxxx#3 nsp=1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=320: ixzxxx#3 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=321: vxxxxx#3 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=321: vxxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=321: vxxxxx#3 nsp=1 mass=0 + -3.394112549695428e-01, -5.656854249492381e-01, // itest=321: vxxxxx#3 nsp=1 mass=0 + -4.525483399593904e-01, 4.242640687119285e-01, // itest=321: vxxxxx#3 nsp=1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=321: vxxxxx#3 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=322: vxxxxx#3 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=322: vxxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=322: vxxxxx#3 nsp=1 mass=0 + -3.394112549695428e-01, -5.656854249492381e-01, // itest=322: vxxxxx#3 nsp=1 mass=0 + -4.525483399593904e-01, 4.242640687119285e-01, // itest=322: vxxxxx#3 nsp=1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=322: vxxxxx#3 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=323: sxxxxx#3 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=323: sxxxxx#3 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=323: sxxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=323: sxxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=323: sxxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=323: sxxxxx#3 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=324: sxxxxx#3 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=324: sxxxxx#3 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=324: sxxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=324: sxxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=324: sxxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=324: sxxxxx#3 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=325: oxxxxx#3 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=325: oxxxxx#3 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=325: oxxxxx#3 nsp=1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=325: oxxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=325: oxxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=325: oxxxxx#3 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=326: oxxxxx#3 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=326: oxxxxx#3 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=326: oxxxxx#3 nsp=1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=326: oxxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=326: oxxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=326: oxxxxx#3 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=327: oxzxxx#3 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=327: oxzxxx#3 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=327: oxzxxx#3 nsp=1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=327: oxzxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=327: oxzxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=327: oxzxxx#3 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=328: ixxxxx#4 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=328: ixxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=328: ixxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=328: ixxxxx#4 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=328: ixxxxx#4 nsp=1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01 } ); // itest=328: ixxxxx#4 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=329: ixxxxx#4 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=329: ixxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=329: ixxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=329: ixxxxx#4 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=329: ixxxxx#4 nsp=1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01 } ); // itest=329: ixxxxx#4 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=330: ixzxxx#4 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=330: ixzxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=330: ixzxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=330: ixzxxx#4 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=330: ixzxxx#4 nsp=1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01 } ); // itest=330: ixzxxx#4 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=331: vxxxxx#4 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=331: vxxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=331: vxxxxx#4 nsp=1 mass=0 + 3.394112549695428e-01, -5.656854249492381e-01, // itest=331: vxxxxx#4 nsp=1 mass=0 + 4.525483399593904e-01, 4.242640687119285e-01, // itest=331: vxxxxx#4 nsp=1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=331: vxxxxx#4 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=332: vxxxxx#4 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=332: vxxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=332: vxxxxx#4 nsp=1 mass=0 + 3.394112549695428e-01, -5.656854249492381e-01, // itest=332: vxxxxx#4 nsp=1 mass=0 + 4.525483399593904e-01, 4.242640687119285e-01, // itest=332: vxxxxx#4 nsp=1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=332: vxxxxx#4 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=333: sxxxxx#4 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=333: sxxxxx#4 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=333: sxxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=333: sxxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=333: sxxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=333: sxxxxx#4 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=334: sxxxxx#4 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=334: sxxxxx#4 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=334: sxxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=334: sxxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=334: sxxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=334: sxxxxx#4 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=335: oxxxxx#4 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=335: oxxxxx#4 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=335: oxxxxx#4 nsp=1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=335: oxxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=335: oxxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=335: oxxxxx#4 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=336: oxxxxx#4 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=336: oxxxxx#4 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=336: oxxxxx#4 nsp=1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=336: oxxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=336: oxxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=336: oxxxxx#4 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=337: oxzxxx#4 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=337: oxzxxx#4 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=337: oxzxxx#4 nsp=1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=337: oxzxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=337: oxzxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=337: oxzxxx#4 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=338: ixxxxx#5 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=338: ixxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=338: ixxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=338: ixxxxx#5 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=338: ixxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=338: ixxxxx#5 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=339: ixxxxx#5 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=339: ixxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=339: ixxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=339: ixxxxx#5 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=339: ixxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=339: ixxxxx#5 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=340: ipzxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=340: ipzxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=340: ipzxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=340: ipzxxx#5 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=340: ipzxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=340: ipzxxx#5 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=341: vxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=341: vxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=341: vxxxxx#5 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=341: vxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=341: vxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=341: vxxxxx#5 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=342: vxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=342: vxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=342: vxxxxx#5 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=342: vxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=342: vxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=342: vxxxxx#5 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=343: sxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=343: sxxxxx#5 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=343: sxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=343: sxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=343: sxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=343: sxxxxx#5 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=344: sxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=344: sxxxxx#5 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=344: sxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=344: sxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=344: sxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=344: sxxxxx#5 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=345: oxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=345: oxxxxx#5 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=345: oxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=345: oxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=345: oxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=345: oxxxxx#5 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=346: oxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=346: oxxxxx#5 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=346: oxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=346: oxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=346: oxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=346: oxxxxx#5 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=347: opzxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=347: opzxxx#5 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=347: opzxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=347: opzxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=347: opzxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=347: opzxxx#5 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=348: ixxxxx#6 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=348: ixxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=348: ixxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=348: ixxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=348: ixxxxx#6 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=348: ixxxxx#6 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=349: ixxxxx#6 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=349: ixxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=349: ixxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=349: ixxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=349: ixxxxx#6 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=349: ixxxxx#6 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=350: imzxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=350: imzxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=350: imzxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=350: imzxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=350: imzxxx#6 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=350: imzxxx#6 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=351: vxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=351: vxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=351: vxxxxx#6 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=351: vxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=351: vxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=351: vxxxxx#6 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=352: vxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=352: vxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=352: vxxxxx#6 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=352: vxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=352: vxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=352: vxxxxx#6 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=353: sxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=353: sxxxxx#6 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=353: sxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=353: sxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=353: sxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=353: sxxxxx#6 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=354: sxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=354: sxxxxx#6 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=354: sxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=354: sxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=354: sxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=354: sxxxxx#6 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=355: oxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=355: oxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=355: oxxxxx#6 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=355: oxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=355: oxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=355: oxxxxx#6 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=356: oxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=356: oxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=356: oxxxxx#6 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=356: oxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=356: oxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=356: oxxxxx#6 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=357: omzxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=357: omzxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=357: omzxxx#6 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=357: omzxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=357: omzxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=357: omzxxx#6 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=358: ixxxxx#7 nsp=1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=358: ixxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=358: ixxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=358: ixxxxx#7 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=358: ixxxxx#7 nsp=1 mass=0 + 1.341640786499874e+01, 1.788854381999831e+01 } ); // itest=358: ixxxxx#7 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=359: ixxxxx#7 nsp=1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=359: ixxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=359: ixxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=359: ixxxxx#7 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=359: ixxxxx#7 nsp=1 mass=0 + 1.341640786499874e+01, 1.788854381999831e+01 } ); // itest=359: ixxxxx#7 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=360: ixzxxx#7 nsp=1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=360: ixzxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=360: ixzxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=360: ixzxxx#7 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=360: ixzxxx#7 nsp=1 mass=0 + 1.341640786499874e+01, 1.788854381999832e+01 } ); // itest=360: ixzxxx#7 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=361: vxxxxx#7 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=361: vxxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=361: vxxxxx#7 nsp=1 mass=0 + -0.000000000000000e+00, -5.656854249492381e-01, // itest=361: vxxxxx#7 nsp=1 mass=0 + -0.000000000000000e+00, 4.242640687119285e-01, // itest=361: vxxxxx#7 nsp=1 mass=0 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=361: vxxxxx#7 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=362: vxxxxx#7 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=362: vxxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=362: vxxxxx#7 nsp=1 mass=0 + -0.000000000000000e+00, -5.656854249492381e-01, // itest=362: vxxxxx#7 nsp=1 mass=0 + -0.000000000000000e+00, 4.242640687119285e-01, // itest=362: vxxxxx#7 nsp=1 mass=0 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=362: vxxxxx#7 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=363: sxxxxx#7 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=363: sxxxxx#7 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=363: sxxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=363: sxxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=363: sxxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=363: sxxxxx#7 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=364: sxxxxx#7 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=364: sxxxxx#7 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=364: sxxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=364: sxxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=364: sxxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=364: sxxxxx#7 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=365: oxxxxx#7 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=365: oxxxxx#7 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=365: oxxxxx#7 nsp=1 mass=0 + 1.341640786499874e+01, -1.788854381999831e+01, // itest=365: oxxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=365: oxxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=365: oxxxxx#7 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=366: oxxxxx#7 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=366: oxxxxx#7 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=366: oxxxxx#7 nsp=1 mass=0 + 1.341640786499874e+01, -1.788854381999831e+01, // itest=366: oxxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=366: oxxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=366: oxxxxx#7 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=367: oxzxxx#7 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=367: oxzxxx#7 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=367: oxzxxx#7 nsp=1 mass=0 + 1.341640786499874e+01, -1.788854381999832e+01, // itest=367: oxzxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=367: oxzxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=367: oxzxxx#7 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=368: ixxxxx#8 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=368: ixxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=368: ixxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=368: ixxxxx#8 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=368: ixxxxx#8 nsp=1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=368: ixxxxx#8 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=369: ixxxxx#8 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=369: ixxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=369: ixxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=369: ixxxxx#8 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=369: ixxxxx#8 nsp=1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=369: ixxxxx#8 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=370: ixzxxx#8 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=370: ixzxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=370: ixzxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=370: ixzxxx#8 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=370: ixzxxx#8 nsp=1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=370: ixzxxx#8 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=371: vxxxxx#8 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=371: vxxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=371: vxxxxx#8 nsp=1 mass=0 + -3.394112549695428e-01, -5.656854249492381e-01, // itest=371: vxxxxx#8 nsp=1 mass=0 + -4.525483399593904e-01, 4.242640687119285e-01, // itest=371: vxxxxx#8 nsp=1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=371: vxxxxx#8 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=372: vxxxxx#8 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=372: vxxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=372: vxxxxx#8 nsp=1 mass=0 + -3.394112549695428e-01, -5.656854249492381e-01, // itest=372: vxxxxx#8 nsp=1 mass=0 + -4.525483399593904e-01, 4.242640687119285e-01, // itest=372: vxxxxx#8 nsp=1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=372: vxxxxx#8 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=373: sxxxxx#8 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=373: sxxxxx#8 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=373: sxxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=373: sxxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=373: sxxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=373: sxxxxx#8 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=374: sxxxxx#8 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=374: sxxxxx#8 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=374: sxxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=374: sxxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=374: sxxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=374: sxxxxx#8 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=375: oxxxxx#8 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=375: oxxxxx#8 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=375: oxxxxx#8 nsp=1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=375: oxxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=375: oxxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=375: oxxxxx#8 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=376: oxxxxx#8 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=376: oxxxxx#8 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=376: oxxxxx#8 nsp=1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=376: oxxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=376: oxxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=376: oxxxxx#8 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=377: oxzxxx#8 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=377: oxzxxx#8 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=377: oxzxxx#8 nsp=1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=377: oxzxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=377: oxzxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=377: oxzxxx#8 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=378: ixxxxx#9 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=378: ixxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=378: ixxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=378: ixxxxx#9 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=378: ixxxxx#9 nsp=1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01 } ); // itest=378: ixxxxx#9 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=379: ixxxxx#9 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=379: ixxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=379: ixxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=379: ixxxxx#9 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=379: ixxxxx#9 nsp=1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01 } ); // itest=379: ixxxxx#9 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=380: ixzxxx#9 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=380: ixzxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=380: ixzxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=380: ixzxxx#9 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=380: ixzxxx#9 nsp=1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01 } ); // itest=380: ixzxxx#9 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=381: vxxxxx#9 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=381: vxxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=381: vxxxxx#9 nsp=1 mass=0 + 3.394112549695428e-01, -5.656854249492381e-01, // itest=381: vxxxxx#9 nsp=1 mass=0 + 4.525483399593904e-01, 4.242640687119285e-01, // itest=381: vxxxxx#9 nsp=1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=381: vxxxxx#9 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=382: vxxxxx#9 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=382: vxxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=382: vxxxxx#9 nsp=1 mass=0 + 3.394112549695428e-01, -5.656854249492381e-01, // itest=382: vxxxxx#9 nsp=1 mass=0 + 4.525483399593904e-01, 4.242640687119285e-01, // itest=382: vxxxxx#9 nsp=1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=382: vxxxxx#9 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=383: sxxxxx#9 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=383: sxxxxx#9 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=383: sxxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=383: sxxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=383: sxxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=383: sxxxxx#9 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=384: sxxxxx#9 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=384: sxxxxx#9 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=384: sxxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=384: sxxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=384: sxxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=384: sxxxxx#9 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=385: oxxxxx#9 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=385: oxxxxx#9 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=385: oxxxxx#9 nsp=1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=385: oxxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=385: oxxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=385: oxxxxx#9 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=386: oxxxxx#9 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=386: oxxxxx#9 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=386: oxxxxx#9 nsp=1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=386: oxxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=386: oxxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=386: oxxxxx#9 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=387: oxzxxx#9 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=387: oxzxxx#9 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=387: oxzxxx#9 nsp=1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=387: oxzxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=387: oxzxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=387: oxzxxx#9 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=388: ixxxxx#10 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=388: ixxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=388: ixxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=388: ixxxxx#10 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=388: ixxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=388: ixxxxx#10 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=389: ixxxxx#10 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=389: ixxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=389: ixxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=389: ixxxxx#10 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=389: ixxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=389: ixxxxx#10 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=390: ipzxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=390: ipzxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=390: ipzxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=390: ipzxxx#10 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=390: ipzxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=390: ipzxxx#10 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=391: vxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=391: vxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=391: vxxxxx#10 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=391: vxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=391: vxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=391: vxxxxx#10 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=392: vxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=392: vxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=392: vxxxxx#10 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=392: vxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=392: vxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=392: vxxxxx#10 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=393: sxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=393: sxxxxx#10 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=393: sxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=393: sxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=393: sxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=393: sxxxxx#10 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=394: sxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=394: sxxxxx#10 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=394: sxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=394: sxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=394: sxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=394: sxxxxx#10 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=395: oxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=395: oxxxxx#10 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=395: oxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=395: oxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=395: oxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=395: oxxxxx#10 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=396: oxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=396: oxxxxx#10 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=396: oxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=396: oxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=396: oxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=396: oxxxxx#10 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=397: opzxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=397: opzxxx#10 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=397: opzxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=397: opzxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=397: opzxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=397: opzxxx#10 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=398: ixxxxx#11 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=398: ixxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=398: ixxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=398: ixxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=398: ixxxxx#11 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=398: ixxxxx#11 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=399: ixxxxx#11 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=399: ixxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=399: ixxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=399: ixxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=399: ixxxxx#11 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=399: ixxxxx#11 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=400: imzxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=400: imzxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=400: imzxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=400: imzxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=400: imzxxx#11 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=400: imzxxx#11 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=401: vxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=401: vxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=401: vxxxxx#11 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=401: vxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=401: vxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=401: vxxxxx#11 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=402: vxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=402: vxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=402: vxxxxx#11 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=402: vxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=402: vxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=402: vxxxxx#11 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=403: sxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=403: sxxxxx#11 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=403: sxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=403: sxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=403: sxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=403: sxxxxx#11 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=404: sxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=404: sxxxxx#11 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=404: sxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=404: sxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=404: sxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=404: sxxxxx#11 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=405: oxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=405: oxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=405: oxxxxx#11 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=405: oxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=405: oxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=405: oxxxxx#11 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=406: oxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=406: oxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=406: oxxxxx#11 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=406: oxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=406: oxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=406: oxxxxx#11 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=407: omzxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=407: omzxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=407: omzxxx#11 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=407: omzxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=407: omzxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=407: omzxxx#11 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=408: ixxxxx#12 nsp=1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=408: ixxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=408: ixxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=408: ixxxxx#12 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=408: ixxxxx#12 nsp=1 mass=0 + 1.341640786499874e+01, 1.788854381999831e+01 } ); // itest=408: ixxxxx#12 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=409: ixxxxx#12 nsp=1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=409: ixxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=409: ixxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=409: ixxxxx#12 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=409: ixxxxx#12 nsp=1 mass=0 + 1.341640786499874e+01, 1.788854381999831e+01 } ); // itest=409: ixxxxx#12 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=410: ixzxxx#12 nsp=1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=410: ixzxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=410: ixzxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=410: ixzxxx#12 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=410: ixzxxx#12 nsp=1 mass=0 + 1.341640786499874e+01, 1.788854381999832e+01 } ); // itest=410: ixzxxx#12 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=411: vxxxxx#12 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=411: vxxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=411: vxxxxx#12 nsp=1 mass=0 + -0.000000000000000e+00, -5.656854249492381e-01, // itest=411: vxxxxx#12 nsp=1 mass=0 + -0.000000000000000e+00, 4.242640687119285e-01, // itest=411: vxxxxx#12 nsp=1 mass=0 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=411: vxxxxx#12 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=412: vxxxxx#12 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=412: vxxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=412: vxxxxx#12 nsp=1 mass=0 + -0.000000000000000e+00, -5.656854249492381e-01, // itest=412: vxxxxx#12 nsp=1 mass=0 + -0.000000000000000e+00, 4.242640687119285e-01, // itest=412: vxxxxx#12 nsp=1 mass=0 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=412: vxxxxx#12 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=413: sxxxxx#12 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=413: sxxxxx#12 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=413: sxxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=413: sxxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=413: sxxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=413: sxxxxx#12 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=414: sxxxxx#12 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=414: sxxxxx#12 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=414: sxxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=414: sxxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=414: sxxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=414: sxxxxx#12 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=415: oxxxxx#12 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=415: oxxxxx#12 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=415: oxxxxx#12 nsp=1 mass=0 + 1.341640786499874e+01, -1.788854381999831e+01, // itest=415: oxxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=415: oxxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=415: oxxxxx#12 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=416: oxxxxx#12 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=416: oxxxxx#12 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=416: oxxxxx#12 nsp=1 mass=0 + 1.341640786499874e+01, -1.788854381999831e+01, // itest=416: oxxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=416: oxxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=416: oxxxxx#12 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=417: oxzxxx#12 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=417: oxzxxx#12 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=417: oxzxxx#12 nsp=1 mass=0 + 1.341640786499874e+01, -1.788854381999832e+01, // itest=417: oxzxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=417: oxzxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=417: oxzxxx#12 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=418: ixxxxx#13 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=418: ixxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=418: ixxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=418: ixxxxx#13 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=418: ixxxxx#13 nsp=1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=418: ixxxxx#13 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=419: ixxxxx#13 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=419: ixxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=419: ixxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=419: ixxxxx#13 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=419: ixxxxx#13 nsp=1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=419: ixxxxx#13 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=420: ixzxxx#13 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=420: ixzxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=420: ixzxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=420: ixzxxx#13 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=420: ixzxxx#13 nsp=1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=420: ixzxxx#13 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=421: vxxxxx#13 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=421: vxxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=421: vxxxxx#13 nsp=1 mass=0 + -3.394112549695428e-01, -5.656854249492381e-01, // itest=421: vxxxxx#13 nsp=1 mass=0 + -4.525483399593904e-01, 4.242640687119285e-01, // itest=421: vxxxxx#13 nsp=1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=421: vxxxxx#13 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=422: vxxxxx#13 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=422: vxxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=422: vxxxxx#13 nsp=1 mass=0 + -3.394112549695428e-01, -5.656854249492381e-01, // itest=422: vxxxxx#13 nsp=1 mass=0 + -4.525483399593904e-01, 4.242640687119285e-01, // itest=422: vxxxxx#13 nsp=1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=422: vxxxxx#13 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=423: sxxxxx#13 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=423: sxxxxx#13 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=423: sxxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=423: sxxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=423: sxxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=423: sxxxxx#13 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=424: sxxxxx#13 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=424: sxxxxx#13 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=424: sxxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=424: sxxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=424: sxxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=424: sxxxxx#13 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=425: oxxxxx#13 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=425: oxxxxx#13 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=425: oxxxxx#13 nsp=1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=425: oxxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=425: oxxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=425: oxxxxx#13 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=426: oxxxxx#13 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=426: oxxxxx#13 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=426: oxxxxx#13 nsp=1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=426: oxxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=426: oxxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=426: oxxxxx#13 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=427: oxzxxx#13 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=427: oxzxxx#13 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=427: oxzxxx#13 nsp=1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=427: oxzxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=427: oxzxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=427: oxzxxx#13 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=428: ixxxxx#14 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=428: ixxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=428: ixxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=428: ixxxxx#14 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=428: ixxxxx#14 nsp=1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01 } ); // itest=428: ixxxxx#14 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=429: ixxxxx#14 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=429: ixxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=429: ixxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=429: ixxxxx#14 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=429: ixxxxx#14 nsp=1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01 } ); // itest=429: ixxxxx#14 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=430: ixzxxx#14 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=430: ixzxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=430: ixzxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=430: ixzxxx#14 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=430: ixzxxx#14 nsp=1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01 } ); // itest=430: ixzxxx#14 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=431: vxxxxx#14 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=431: vxxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=431: vxxxxx#14 nsp=1 mass=0 + 3.394112549695428e-01, -5.656854249492381e-01, // itest=431: vxxxxx#14 nsp=1 mass=0 + 4.525483399593904e-01, 4.242640687119285e-01, // itest=431: vxxxxx#14 nsp=1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=431: vxxxxx#14 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=432: vxxxxx#14 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=432: vxxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=432: vxxxxx#14 nsp=1 mass=0 + 3.394112549695428e-01, -5.656854249492381e-01, // itest=432: vxxxxx#14 nsp=1 mass=0 + 4.525483399593904e-01, 4.242640687119285e-01, // itest=432: vxxxxx#14 nsp=1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=432: vxxxxx#14 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=433: sxxxxx#14 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=433: sxxxxx#14 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=433: sxxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=433: sxxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=433: sxxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=433: sxxxxx#14 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=434: sxxxxx#14 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=434: sxxxxx#14 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=434: sxxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=434: sxxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=434: sxxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=434: sxxxxx#14 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=435: oxxxxx#14 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=435: oxxxxx#14 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=435: oxxxxx#14 nsp=1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=435: oxxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=435: oxxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=435: oxxxxx#14 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=436: oxxxxx#14 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=436: oxxxxx#14 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=436: oxxxxx#14 nsp=1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=436: oxxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=436: oxxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=436: oxxxxx#14 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=437: oxzxxx#14 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=437: oxzxxx#14 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=437: oxzxxx#14 nsp=1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=437: oxzxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=437: oxzxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=437: oxzxxx#14 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=438: ixxxxx#15 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=438: ixxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=438: ixxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=438: ixxxxx#15 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=438: ixxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=438: ixxxxx#15 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=439: ixxxxx#15 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=439: ixxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=439: ixxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=439: ixxxxx#15 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=439: ixxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=439: ixxxxx#15 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=440: ipzxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=440: ipzxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=440: ipzxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=440: ipzxxx#15 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=440: ipzxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=440: ipzxxx#15 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=441: vxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=441: vxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=441: vxxxxx#15 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=441: vxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=441: vxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=441: vxxxxx#15 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=442: vxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=442: vxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=442: vxxxxx#15 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=442: vxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=442: vxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=442: vxxxxx#15 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=443: sxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=443: sxxxxx#15 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=443: sxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=443: sxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=443: sxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=443: sxxxxx#15 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=444: sxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=444: sxxxxx#15 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=444: sxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=444: sxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=444: sxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=444: sxxxxx#15 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=445: oxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=445: oxxxxx#15 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=445: oxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=445: oxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=445: oxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=445: oxxxxx#15 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=446: oxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=446: oxxxxx#15 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=446: oxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=446: oxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=446: oxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=446: oxxxxx#15 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=447: opzxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=447: opzxxx#15 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=447: opzxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=447: opzxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=447: opzxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=447: opzxxx#15 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=448: ixxxxx#16 nsp=1 mass=500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=448: ixxxxx#16 nsp=1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=448: ixxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=448: ixxxxx#16 nsp=1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=448: ixxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=448: ixxxxx#16 nsp=1 mass=500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=449: ixxxxx#16 nsp=1 mass=-500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=449: ixxxxx#16 nsp=1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=449: ixxxxx#16 nsp=1 mass=-500 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=449: ixxxxx#16 nsp=1 mass=-500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=449: ixxxxx#16 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=449: ixxxxx#16 nsp=1 mass=-500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=450: vxxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=450: vxxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=450: vxxxxx#16 nsp=1 mass=500 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=450: vxxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=450: vxxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=450: vxxxxx#16 nsp=1 mass=500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=451: vxxxxx#16 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=451: vxxxxx#16 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=451: vxxxxx#16 nsp=1 mass=-500 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=451: vxxxxx#16 nsp=1 mass=-500 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=451: vxxxxx#16 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=451: vxxxxx#16 nsp=1 mass=-500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=452: sxxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=452: sxxxxx#16 nsp=1 mass=500 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=452: sxxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=452: sxxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=452: sxxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=452: sxxxxx#16 nsp=1 mass=500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=453: sxxxxx#16 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=453: sxxxxx#16 nsp=1 mass=-500 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=453: sxxxxx#16 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=453: sxxxxx#16 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=453: sxxxxx#16 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=453: sxxxxx#16 nsp=1 mass=-500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=454: oxxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=454: oxxxxx#16 nsp=1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=454: oxxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=454: oxxxxx#16 nsp=1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=454: oxxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=454: oxxxxx#16 nsp=1 mass=500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=455: oxxxxx#16 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=455: oxxxxx#16 nsp=1 mass=-500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=455: oxxxxx#16 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=455: oxxxxx#16 nsp=1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=455: oxxxxx#16 nsp=1 mass=-500 + -0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=455: oxxxxx#16 nsp=1 mass=-500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=456: ixxxxx#17 nsp=1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=456: ixxxxx#17 nsp=1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=456: ixxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=456: ixxxxx#17 nsp=1 mass=400 + 2.828427124746190e+01, 0.000000000000000e+00, // itest=456: ixxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=456: ixxxxx#17 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=457: ixxxxx#17 nsp=1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=457: ixxxxx#17 nsp=1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=457: ixxxxx#17 nsp=1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=457: ixxxxx#17 nsp=1 mass=-400 + 2.828427124746190e+01, 0.000000000000000e+00, // itest=457: ixxxxx#17 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=457: ixxxxx#17 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=458: vxxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=458: vxxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=458: vxxxxx#17 nsp=1 mass=400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=458: vxxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=458: vxxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=458: vxxxxx#17 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=459: vxxxxx#17 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=459: vxxxxx#17 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=459: vxxxxx#17 nsp=1 mass=-400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=459: vxxxxx#17 nsp=1 mass=-400 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=459: vxxxxx#17 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=459: vxxxxx#17 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=460: sxxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=460: sxxxxx#17 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=460: sxxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=460: sxxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=460: sxxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=460: sxxxxx#17 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=461: sxxxxx#17 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=461: sxxxxx#17 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=461: sxxxxx#17 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=461: sxxxxx#17 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=461: sxxxxx#17 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=461: sxxxxx#17 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=462: oxxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=462: oxxxxx#17 nsp=1 mass=400 + 2.828427124746190e+01, 0.000000000000000e+00, // itest=462: oxxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=462: oxxxxx#17 nsp=1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=462: oxxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=462: oxxxxx#17 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=463: oxxxxx#17 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=463: oxxxxx#17 nsp=1 mass=-400 + 2.828427124746190e+01, 0.000000000000000e+00, // itest=463: oxxxxx#17 nsp=1 mass=-400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=463: oxxxxx#17 nsp=1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=463: oxxxxx#17 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=463: oxxxxx#17 nsp=1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=464: ixxxxx#18 nsp=1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=464: ixxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=464: ixxxxx#18 nsp=1 mass=400 + -1.414213562373095e+01, 0.000000000000000e+00, // itest=464: ixxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=464: ixxxxx#18 nsp=1 mass=400 + -2.828427124746190e+01, 0.000000000000000e+00 } ); // itest=464: ixxxxx#18 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=465: ixxxxx#18 nsp=1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=465: ixxxxx#18 nsp=1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=465: ixxxxx#18 nsp=1 mass=-400 + 1.414213562373095e+01, -0.000000000000000e+00, // itest=465: ixxxxx#18 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=465: ixxxxx#18 nsp=1 mass=-400 + -2.828427124746190e+01, 0.000000000000000e+00 } ); // itest=465: ixxxxx#18 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=466: vxxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=466: vxxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=466: vxxxxx#18 nsp=1 mass=400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=466: vxxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=466: vxxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=466: vxxxxx#18 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=467: vxxxxx#18 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=467: vxxxxx#18 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=467: vxxxxx#18 nsp=1 mass=-400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=467: vxxxxx#18 nsp=1 mass=-400 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=467: vxxxxx#18 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=467: vxxxxx#18 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=468: sxxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=468: sxxxxx#18 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=468: sxxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=468: sxxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=468: sxxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=468: sxxxxx#18 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=469: sxxxxx#18 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=469: sxxxxx#18 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=469: sxxxxx#18 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=469: sxxxxx#18 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=469: sxxxxx#18 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=469: sxxxxx#18 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=470: oxxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=470: oxxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=470: oxxxxx#18 nsp=1 mass=400 + -2.828427124746190e+01, 0.000000000000000e+00, // itest=470: oxxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=470: oxxxxx#18 nsp=1 mass=400 + -1.414213562373095e+01, 0.000000000000000e+00 } ); // itest=470: oxxxxx#18 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=471: oxxxxx#18 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=471: oxxxxx#18 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=471: oxxxxx#18 nsp=1 mass=-400 + -2.828427124746190e+01, 0.000000000000000e+00, // itest=471: oxxxxx#18 nsp=1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=471: oxxxxx#18 nsp=1 mass=-400 + 1.414213562373095e+01, -0.000000000000000e+00 } ); // itest=471: oxxxxx#18 nsp=1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=472: ixxxxx#19 nsp=1 mass=400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=472: ixxxxx#19 nsp=1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=472: ixxxxx#19 nsp=1 mass=400 + 5.999999999999999e+00, 7.999999999999999e+00, // itest=472: ixxxxx#19 nsp=1 mass=400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=472: ixxxxx#19 nsp=1 mass=400 + 1.200000000000000e+01, 1.600000000000000e+01 } ); // itest=472: ixxxxx#19 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=473: ixxxxx#19 nsp=1 mass=-400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=473: ixxxxx#19 nsp=1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00, // itest=473: ixxxxx#19 nsp=1 mass=-400 + -5.999999999999999e+00, -7.999999999999999e+00, // itest=473: ixxxxx#19 nsp=1 mass=-400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=473: ixxxxx#19 nsp=1 mass=-400 + 1.200000000000000e+01, 1.600000000000000e+01 } ); // itest=473: ixxxxx#19 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=474: vxxxxx#19 nsp=1 mass=400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=474: vxxxxx#19 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=474: vxxxxx#19 nsp=1 mass=400 + 0.000000000000000e+00, -5.656854249492381e-01, // itest=474: vxxxxx#19 nsp=1 mass=400 + 0.000000000000000e+00, 4.242640687119285e-01, // itest=474: vxxxxx#19 nsp=1 mass=400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=474: vxxxxx#19 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=475: vxxxxx#19 nsp=1 mass=-400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=475: vxxxxx#19 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=475: vxxxxx#19 nsp=1 mass=-400 + -0.000000000000000e+00, -5.656854249492381e-01, // itest=475: vxxxxx#19 nsp=1 mass=-400 + -0.000000000000000e+00, 4.242640687119285e-01, // itest=475: vxxxxx#19 nsp=1 mass=-400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=475: vxxxxx#19 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=476: sxxxxx#19 nsp=1 mass=400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=476: sxxxxx#19 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=476: sxxxxx#19 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=476: sxxxxx#19 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=476: sxxxxx#19 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=476: sxxxxx#19 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=477: sxxxxx#19 nsp=1 mass=-400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=477: sxxxxx#19 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=477: sxxxxx#19 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=477: sxxxxx#19 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=477: sxxxxx#19 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=477: sxxxxx#19 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=478: oxxxxx#19 nsp=1 mass=400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=478: oxxxxx#19 nsp=1 mass=400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=478: oxxxxx#19 nsp=1 mass=400 + 1.200000000000000e+01, -1.600000000000000e+01, // itest=478: oxxxxx#19 nsp=1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=478: oxxxxx#19 nsp=1 mass=400 + 5.999999999999999e+00, -7.999999999999999e+00 } ); // itest=478: oxxxxx#19 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=479: oxxxxx#19 nsp=1 mass=-400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=479: oxxxxx#19 nsp=1 mass=-400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=479: oxxxxx#19 nsp=1 mass=-400 + 1.200000000000000e+01, -1.600000000000000e+01, // itest=479: oxxxxx#19 nsp=1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00, // itest=479: oxxxxx#19 nsp=1 mass=-400 + -5.999999999999999e+00, 7.999999999999999e+00 } ); // itest=479: oxxxxx#19 nsp=1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=480: ixxxxx#20 nsp=1 mass=400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=480: ixxxxx#20 nsp=1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=480: ixxxxx#20 nsp=1 mass=400 + -7.999999999999999e+00, -5.999999999999999e+00, // itest=480: ixxxxx#20 nsp=1 mass=400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=480: ixxxxx#20 nsp=1 mass=400 + -1.600000000000000e+01, -1.200000000000000e+01 } ); // itest=480: ixxxxx#20 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=481: ixxxxx#20 nsp=1 mass=-400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=481: ixxxxx#20 nsp=1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00, // itest=481: ixxxxx#20 nsp=1 mass=-400 + 7.999999999999999e+00, 5.999999999999999e+00, // itest=481: ixxxxx#20 nsp=1 mass=-400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=481: ixxxxx#20 nsp=1 mass=-400 + -1.600000000000000e+01, -1.200000000000000e+01 } ); // itest=481: ixxxxx#20 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=482: vxxxxx#20 nsp=1 mass=400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=482: vxxxxx#20 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=482: vxxxxx#20 nsp=1 mass=400 + 0.000000000000000e+00, 4.242640687119285e-01, // itest=482: vxxxxx#20 nsp=1 mass=400 + 0.000000000000000e+00, -5.656854249492381e-01, // itest=482: vxxxxx#20 nsp=1 mass=400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=482: vxxxxx#20 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=483: vxxxxx#20 nsp=1 mass=-400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=483: vxxxxx#20 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=483: vxxxxx#20 nsp=1 mass=-400 + 0.000000000000000e+00, 4.242640687119285e-01, // itest=483: vxxxxx#20 nsp=1 mass=-400 + 0.000000000000000e+00, -5.656854249492381e-01, // itest=483: vxxxxx#20 nsp=1 mass=-400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=483: vxxxxx#20 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=484: sxxxxx#20 nsp=1 mass=400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=484: sxxxxx#20 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=484: sxxxxx#20 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=484: sxxxxx#20 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=484: sxxxxx#20 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=484: sxxxxx#20 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=485: sxxxxx#20 nsp=1 mass=-400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=485: sxxxxx#20 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=485: sxxxxx#20 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=485: sxxxxx#20 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=485: sxxxxx#20 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=485: sxxxxx#20 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=486: oxxxxx#20 nsp=1 mass=400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=486: oxxxxx#20 nsp=1 mass=400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=486: oxxxxx#20 nsp=1 mass=400 + -1.600000000000000e+01, 1.200000000000000e+01, // itest=486: oxxxxx#20 nsp=1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=486: oxxxxx#20 nsp=1 mass=400 + -7.999999999999999e+00, 5.999999999999999e+00 } ); // itest=486: oxxxxx#20 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=487: oxxxxx#20 nsp=1 mass=-400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=487: oxxxxx#20 nsp=1 mass=-400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=487: oxxxxx#20 nsp=1 mass=-400 + -1.600000000000000e+01, 1.200000000000000e+01, // itest=487: oxxxxx#20 nsp=1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00, // itest=487: oxxxxx#20 nsp=1 mass=-400 + 7.999999999999999e+00, -5.999999999999999e+00 } ); // itest=487: oxxxxx#20 nsp=1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=488: ixxxxx#21 nsp=1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=488: ixxxxx#21 nsp=1 mass=400 + 1.216552506059644e+01, 0.000000000000000e+00, // itest=488: ixxxxx#21 nsp=1 mass=400 + 4.931969619160719e+00, 5.260767593771432e+00, // itest=488: ixxxxx#21 nsp=1 mass=400 + 2.433105012119288e+01, 0.000000000000000e+00, // itest=488: ixxxxx#21 nsp=1 mass=400 + 9.863939238321439e+00, 1.052153518754287e+01 } ); // itest=488: ixxxxx#21 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=489: ixxxxx#21 nsp=1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=489: ixxxxx#21 nsp=1 mass=-400 + -1.216552506059644e+01, -0.000000000000000e+00, // itest=489: ixxxxx#21 nsp=1 mass=-400 + -4.931969619160719e+00, -5.260767593771432e+00, // itest=489: ixxxxx#21 nsp=1 mass=-400 + 2.433105012119288e+01, 0.000000000000000e+00, // itest=489: ixxxxx#21 nsp=1 mass=-400 + 9.863939238321439e+00, 1.052153518754287e+01 } ); // itest=489: ixxxxx#21 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=490: vxxxxx#21 nsp=1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=490: vxxxxx#21 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=490: vxxxxx#21 nsp=1 mass=400 + -2.321373168788980e-01, -5.158607041753289e-01, // itest=490: vxxxxx#21 nsp=1 mass=400 + -2.476131380041579e-01, 4.836194101643708e-01, // itest=490: vxxxxx#21 nsp=1 mass=400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=490: vxxxxx#21 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=491: vxxxxx#21 nsp=1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=491: vxxxxx#21 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=491: vxxxxx#21 nsp=1 mass=-400 + -2.321373168788980e-01, -5.158607041753289e-01, // itest=491: vxxxxx#21 nsp=1 mass=-400 + -2.476131380041579e-01, 4.836194101643708e-01, // itest=491: vxxxxx#21 nsp=1 mass=-400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=491: vxxxxx#21 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=492: sxxxxx#21 nsp=1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=492: sxxxxx#21 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=492: sxxxxx#21 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=492: sxxxxx#21 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=492: sxxxxx#21 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=492: sxxxxx#21 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=493: sxxxxx#21 nsp=1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=493: sxxxxx#21 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=493: sxxxxx#21 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=493: sxxxxx#21 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=493: sxxxxx#21 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=493: sxxxxx#21 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=494: oxxxxx#21 nsp=1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=494: oxxxxx#21 nsp=1 mass=400 + 2.433105012119288e+01, 0.000000000000000e+00, // itest=494: oxxxxx#21 nsp=1 mass=400 + 9.863939238321439e+00, -1.052153518754287e+01, // itest=494: oxxxxx#21 nsp=1 mass=400 + 1.216552506059644e+01, 0.000000000000000e+00, // itest=494: oxxxxx#21 nsp=1 mass=400 + 4.931969619160719e+00, -5.260767593771432e+00 } ); // itest=494: oxxxxx#21 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=495: oxxxxx#21 nsp=1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=495: oxxxxx#21 nsp=1 mass=-400 + 2.433105012119288e+01, 0.000000000000000e+00, // itest=495: oxxxxx#21 nsp=1 mass=-400 + 9.863939238321439e+00, -1.052153518754287e+01, // itest=495: oxxxxx#21 nsp=1 mass=-400 + -1.216552506059644e+01, -0.000000000000000e+00, // itest=495: oxxxxx#21 nsp=1 mass=-400 + -4.931969619160719e+00, 5.260767593771432e+00 } ); // itest=495: oxxxxx#21 nsp=1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=496: ixxxxx#22 nsp=1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=496: ixxxxx#22 nsp=1 mass=400 + 7.211102550927978e+00, 0.000000000000000e+00, // itest=496: ixxxxx#22 nsp=1 mass=400 + 8.320502943378436e+00, 8.875203139603666e+00, // itest=496: ixxxxx#22 nsp=1 mass=400 + 1.442220510185596e+01, 0.000000000000000e+00, // itest=496: ixxxxx#22 nsp=1 mass=400 + 1.664100588675688e+01, 1.775040627920733e+01 } ); // itest=496: ixxxxx#22 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=497: ixxxxx#22 nsp=1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=497: ixxxxx#22 nsp=1 mass=-400 + -7.211102550927978e+00, -0.000000000000000e+00, // itest=497: ixxxxx#22 nsp=1 mass=-400 + -8.320502943378436e+00, -8.875203139603666e+00, // itest=497: ixxxxx#22 nsp=1 mass=-400 + 1.442220510185596e+01, 0.000000000000000e+00, // itest=497: ixxxxx#22 nsp=1 mass=-400 + 1.664100588675688e+01, 1.775040627920733e+01 } ); // itest=497: ixxxxx#22 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=498: vxxxxx#22 nsp=1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=498: vxxxxx#22 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=498: vxxxxx#22 nsp=1 mass=400 + 2.321373168788980e-01, -5.158607041753289e-01, // itest=498: vxxxxx#22 nsp=1 mass=400 + 2.476131380041579e-01, 4.836194101643708e-01, // itest=498: vxxxxx#22 nsp=1 mass=400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=498: vxxxxx#22 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=499: vxxxxx#22 nsp=1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=499: vxxxxx#22 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=499: vxxxxx#22 nsp=1 mass=-400 + 2.321373168788980e-01, -5.158607041753289e-01, // itest=499: vxxxxx#22 nsp=1 mass=-400 + 2.476131380041579e-01, 4.836194101643708e-01, // itest=499: vxxxxx#22 nsp=1 mass=-400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=499: vxxxxx#22 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=500: sxxxxx#22 nsp=1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=500: sxxxxx#22 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=500: sxxxxx#22 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=500: sxxxxx#22 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=500: sxxxxx#22 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=500: sxxxxx#22 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=501: sxxxxx#22 nsp=1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=501: sxxxxx#22 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=501: sxxxxx#22 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=501: sxxxxx#22 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=501: sxxxxx#22 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=501: sxxxxx#22 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=502: oxxxxx#22 nsp=1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=502: oxxxxx#22 nsp=1 mass=400 + 1.442220510185596e+01, 0.000000000000000e+00, // itest=502: oxxxxx#22 nsp=1 mass=400 + 1.664100588675688e+01, -1.775040627920733e+01, // itest=502: oxxxxx#22 nsp=1 mass=400 + 7.211102550927978e+00, 0.000000000000000e+00, // itest=502: oxxxxx#22 nsp=1 mass=400 + 8.320502943378436e+00, -8.875203139603666e+00 } ); // itest=502: oxxxxx#22 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=503: oxxxxx#22 nsp=1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=503: oxxxxx#22 nsp=1 mass=-400 + 1.442220510185596e+01, 0.000000000000000e+00, // itest=503: oxxxxx#22 nsp=1 mass=-400 + 1.664100588675688e+01, -1.775040627920733e+01, // itest=503: oxxxxx#22 nsp=1 mass=-400 + -7.211102550927978e+00, -0.000000000000000e+00, // itest=503: oxxxxx#22 nsp=1 mass=-400 + -8.320502943378436e+00, 8.875203139603666e+00 } ); // itest=503: oxxxxx#22 nsp=1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=504: ixxxxx#23 nsp=1 mass=500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=504: ixxxxx#23 nsp=1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=504: ixxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=504: ixxxxx#23 nsp=1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=504: ixxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=504: ixxxxx#23 nsp=1 mass=500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=505: ixxxxx#23 nsp=1 mass=-500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=505: ixxxxx#23 nsp=1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=505: ixxxxx#23 nsp=1 mass=-500 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=505: ixxxxx#23 nsp=1 mass=-500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=505: ixxxxx#23 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=505: ixxxxx#23 nsp=1 mass=-500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=506: vxxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=506: vxxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=506: vxxxxx#23 nsp=1 mass=500 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=506: vxxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=506: vxxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=506: vxxxxx#23 nsp=1 mass=500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=507: vxxxxx#23 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=507: vxxxxx#23 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=507: vxxxxx#23 nsp=1 mass=-500 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=507: vxxxxx#23 nsp=1 mass=-500 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=507: vxxxxx#23 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=507: vxxxxx#23 nsp=1 mass=-500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=508: sxxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=508: sxxxxx#23 nsp=1 mass=500 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=508: sxxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=508: sxxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=508: sxxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=508: sxxxxx#23 nsp=1 mass=500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=509: sxxxxx#23 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=509: sxxxxx#23 nsp=1 mass=-500 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=509: sxxxxx#23 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=509: sxxxxx#23 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=509: sxxxxx#23 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=509: sxxxxx#23 nsp=1 mass=-500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=510: oxxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=510: oxxxxx#23 nsp=1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=510: oxxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=510: oxxxxx#23 nsp=1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=510: oxxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=510: oxxxxx#23 nsp=1 mass=500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=511: oxxxxx#23 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=511: oxxxxx#23 nsp=1 mass=-500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=511: oxxxxx#23 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=511: oxxxxx#23 nsp=1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=511: oxxxxx#23 nsp=1 mass=-500 + -0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=511: oxxxxx#23 nsp=1 mass=-500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=512: ixxxxx#24 nsp=1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=512: ixxxxx#24 nsp=1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=512: ixxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=512: ixxxxx#24 nsp=1 mass=400 + 2.828427124746190e+01, 0.000000000000000e+00, // itest=512: ixxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=512: ixxxxx#24 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=513: ixxxxx#24 nsp=1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=513: ixxxxx#24 nsp=1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=513: ixxxxx#24 nsp=1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=513: ixxxxx#24 nsp=1 mass=-400 + 2.828427124746190e+01, 0.000000000000000e+00, // itest=513: ixxxxx#24 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=513: ixxxxx#24 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=514: vxxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=514: vxxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=514: vxxxxx#24 nsp=1 mass=400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=514: vxxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=514: vxxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=514: vxxxxx#24 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=515: vxxxxx#24 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=515: vxxxxx#24 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=515: vxxxxx#24 nsp=1 mass=-400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=515: vxxxxx#24 nsp=1 mass=-400 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=515: vxxxxx#24 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=515: vxxxxx#24 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=516: sxxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=516: sxxxxx#24 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=516: sxxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=516: sxxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=516: sxxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=516: sxxxxx#24 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=517: sxxxxx#24 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=517: sxxxxx#24 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=517: sxxxxx#24 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=517: sxxxxx#24 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=517: sxxxxx#24 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=517: sxxxxx#24 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=518: oxxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=518: oxxxxx#24 nsp=1 mass=400 + 2.828427124746190e+01, 0.000000000000000e+00, // itest=518: oxxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=518: oxxxxx#24 nsp=1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=518: oxxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=518: oxxxxx#24 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=519: oxxxxx#24 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=519: oxxxxx#24 nsp=1 mass=-400 + 2.828427124746190e+01, 0.000000000000000e+00, // itest=519: oxxxxx#24 nsp=1 mass=-400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=519: oxxxxx#24 nsp=1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=519: oxxxxx#24 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=519: oxxxxx#24 nsp=1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=520: ixxxxx#25 nsp=1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=520: ixxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=520: ixxxxx#25 nsp=1 mass=400 + -1.414213562373095e+01, 0.000000000000000e+00, // itest=520: ixxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=520: ixxxxx#25 nsp=1 mass=400 + -2.828427124746190e+01, 0.000000000000000e+00 } ); // itest=520: ixxxxx#25 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=521: ixxxxx#25 nsp=1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=521: ixxxxx#25 nsp=1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=521: ixxxxx#25 nsp=1 mass=-400 + 1.414213562373095e+01, -0.000000000000000e+00, // itest=521: ixxxxx#25 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=521: ixxxxx#25 nsp=1 mass=-400 + -2.828427124746190e+01, 0.000000000000000e+00 } ); // itest=521: ixxxxx#25 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=522: vxxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=522: vxxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=522: vxxxxx#25 nsp=1 mass=400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=522: vxxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=522: vxxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=522: vxxxxx#25 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=523: vxxxxx#25 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=523: vxxxxx#25 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=523: vxxxxx#25 nsp=1 mass=-400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=523: vxxxxx#25 nsp=1 mass=-400 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=523: vxxxxx#25 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=523: vxxxxx#25 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=524: sxxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=524: sxxxxx#25 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=524: sxxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=524: sxxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=524: sxxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=524: sxxxxx#25 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=525: sxxxxx#25 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=525: sxxxxx#25 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=525: sxxxxx#25 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=525: sxxxxx#25 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=525: sxxxxx#25 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=525: sxxxxx#25 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=526: oxxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=526: oxxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=526: oxxxxx#25 nsp=1 mass=400 + -2.828427124746190e+01, 0.000000000000000e+00, // itest=526: oxxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=526: oxxxxx#25 nsp=1 mass=400 + -1.414213562373095e+01, 0.000000000000000e+00 } ); // itest=526: oxxxxx#25 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=527: oxxxxx#25 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=527: oxxxxx#25 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=527: oxxxxx#25 nsp=1 mass=-400 + -2.828427124746190e+01, 0.000000000000000e+00, // itest=527: oxxxxx#25 nsp=1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=527: oxxxxx#25 nsp=1 mass=-400 + 1.414213562373095e+01, -0.000000000000000e+00 } ); // itest=527: oxxxxx#25 nsp=1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=528: ixxxxx#26 nsp=1 mass=400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=528: ixxxxx#26 nsp=1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=528: ixxxxx#26 nsp=1 mass=400 + 5.999999999999999e+00, 7.999999999999999e+00, // itest=528: ixxxxx#26 nsp=1 mass=400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=528: ixxxxx#26 nsp=1 mass=400 + 1.200000000000000e+01, 1.600000000000000e+01 } ); // itest=528: ixxxxx#26 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=529: ixxxxx#26 nsp=1 mass=-400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=529: ixxxxx#26 nsp=1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00, // itest=529: ixxxxx#26 nsp=1 mass=-400 + -5.999999999999999e+00, -7.999999999999999e+00, // itest=529: ixxxxx#26 nsp=1 mass=-400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=529: ixxxxx#26 nsp=1 mass=-400 + 1.200000000000000e+01, 1.600000000000000e+01 } ); // itest=529: ixxxxx#26 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=530: vxxxxx#26 nsp=1 mass=400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=530: vxxxxx#26 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=530: vxxxxx#26 nsp=1 mass=400 + 0.000000000000000e+00, -5.656854249492381e-01, // itest=530: vxxxxx#26 nsp=1 mass=400 + 0.000000000000000e+00, 4.242640687119285e-01, // itest=530: vxxxxx#26 nsp=1 mass=400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=530: vxxxxx#26 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=531: vxxxxx#26 nsp=1 mass=-400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=531: vxxxxx#26 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=531: vxxxxx#26 nsp=1 mass=-400 + -0.000000000000000e+00, -5.656854249492381e-01, // itest=531: vxxxxx#26 nsp=1 mass=-400 + -0.000000000000000e+00, 4.242640687119285e-01, // itest=531: vxxxxx#26 nsp=1 mass=-400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=531: vxxxxx#26 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=532: sxxxxx#26 nsp=1 mass=400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=532: sxxxxx#26 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=532: sxxxxx#26 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=532: sxxxxx#26 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=532: sxxxxx#26 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=532: sxxxxx#26 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=533: sxxxxx#26 nsp=1 mass=-400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=533: sxxxxx#26 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=533: sxxxxx#26 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=533: sxxxxx#26 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=533: sxxxxx#26 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=533: sxxxxx#26 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=534: oxxxxx#26 nsp=1 mass=400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=534: oxxxxx#26 nsp=1 mass=400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=534: oxxxxx#26 nsp=1 mass=400 + 1.200000000000000e+01, -1.600000000000000e+01, // itest=534: oxxxxx#26 nsp=1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=534: oxxxxx#26 nsp=1 mass=400 + 5.999999999999999e+00, -7.999999999999999e+00 } ); // itest=534: oxxxxx#26 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=535: oxxxxx#26 nsp=1 mass=-400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=535: oxxxxx#26 nsp=1 mass=-400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=535: oxxxxx#26 nsp=1 mass=-400 + 1.200000000000000e+01, -1.600000000000000e+01, // itest=535: oxxxxx#26 nsp=1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00, // itest=535: oxxxxx#26 nsp=1 mass=-400 + -5.999999999999999e+00, 7.999999999999999e+00 } ); // itest=535: oxxxxx#26 nsp=1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=536: ixxxxx#27 nsp=1 mass=400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=536: ixxxxx#27 nsp=1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=536: ixxxxx#27 nsp=1 mass=400 + -7.999999999999999e+00, -5.999999999999999e+00, // itest=536: ixxxxx#27 nsp=1 mass=400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=536: ixxxxx#27 nsp=1 mass=400 + -1.600000000000000e+01, -1.200000000000000e+01 } ); // itest=536: ixxxxx#27 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=537: ixxxxx#27 nsp=1 mass=-400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=537: ixxxxx#27 nsp=1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00, // itest=537: ixxxxx#27 nsp=1 mass=-400 + 7.999999999999999e+00, 5.999999999999999e+00, // itest=537: ixxxxx#27 nsp=1 mass=-400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=537: ixxxxx#27 nsp=1 mass=-400 + -1.600000000000000e+01, -1.200000000000000e+01 } ); // itest=537: ixxxxx#27 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=538: vxxxxx#27 nsp=1 mass=400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=538: vxxxxx#27 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=538: vxxxxx#27 nsp=1 mass=400 + 0.000000000000000e+00, 4.242640687119285e-01, // itest=538: vxxxxx#27 nsp=1 mass=400 + 0.000000000000000e+00, -5.656854249492381e-01, // itest=538: vxxxxx#27 nsp=1 mass=400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=538: vxxxxx#27 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=539: vxxxxx#27 nsp=1 mass=-400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=539: vxxxxx#27 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=539: vxxxxx#27 nsp=1 mass=-400 + 0.000000000000000e+00, 4.242640687119285e-01, // itest=539: vxxxxx#27 nsp=1 mass=-400 + 0.000000000000000e+00, -5.656854249492381e-01, // itest=539: vxxxxx#27 nsp=1 mass=-400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=539: vxxxxx#27 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=540: sxxxxx#27 nsp=1 mass=400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=540: sxxxxx#27 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=540: sxxxxx#27 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=540: sxxxxx#27 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=540: sxxxxx#27 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=540: sxxxxx#27 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=541: sxxxxx#27 nsp=1 mass=-400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=541: sxxxxx#27 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=541: sxxxxx#27 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=541: sxxxxx#27 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=541: sxxxxx#27 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=541: sxxxxx#27 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=542: oxxxxx#27 nsp=1 mass=400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=542: oxxxxx#27 nsp=1 mass=400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=542: oxxxxx#27 nsp=1 mass=400 + -1.600000000000000e+01, 1.200000000000000e+01, // itest=542: oxxxxx#27 nsp=1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=542: oxxxxx#27 nsp=1 mass=400 + -7.999999999999999e+00, 5.999999999999999e+00 } ); // itest=542: oxxxxx#27 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=543: oxxxxx#27 nsp=1 mass=-400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=543: oxxxxx#27 nsp=1 mass=-400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=543: oxxxxx#27 nsp=1 mass=-400 + -1.600000000000000e+01, 1.200000000000000e+01, // itest=543: oxxxxx#27 nsp=1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00, // itest=543: oxxxxx#27 nsp=1 mass=-400 + 7.999999999999999e+00, -5.999999999999999e+00 } ); // itest=543: oxxxxx#27 nsp=1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=544: ixxxxx#28 nsp=1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=544: ixxxxx#28 nsp=1 mass=400 + 1.216552506059644e+01, 0.000000000000000e+00, // itest=544: ixxxxx#28 nsp=1 mass=400 + 4.931969619160719e+00, 5.260767593771432e+00, // itest=544: ixxxxx#28 nsp=1 mass=400 + 2.433105012119288e+01, 0.000000000000000e+00, // itest=544: ixxxxx#28 nsp=1 mass=400 + 9.863939238321439e+00, 1.052153518754287e+01 } ); // itest=544: ixxxxx#28 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=545: ixxxxx#28 nsp=1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=545: ixxxxx#28 nsp=1 mass=-400 + -1.216552506059644e+01, -0.000000000000000e+00, // itest=545: ixxxxx#28 nsp=1 mass=-400 + -4.931969619160719e+00, -5.260767593771432e+00, // itest=545: ixxxxx#28 nsp=1 mass=-400 + 2.433105012119288e+01, 0.000000000000000e+00, // itest=545: ixxxxx#28 nsp=1 mass=-400 + 9.863939238321439e+00, 1.052153518754287e+01 } ); // itest=545: ixxxxx#28 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=546: vxxxxx#28 nsp=1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=546: vxxxxx#28 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=546: vxxxxx#28 nsp=1 mass=400 + -2.321373168788980e-01, -5.158607041753289e-01, // itest=546: vxxxxx#28 nsp=1 mass=400 + -2.476131380041579e-01, 4.836194101643708e-01, // itest=546: vxxxxx#28 nsp=1 mass=400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=546: vxxxxx#28 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=547: vxxxxx#28 nsp=1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=547: vxxxxx#28 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=547: vxxxxx#28 nsp=1 mass=-400 + -2.321373168788980e-01, -5.158607041753289e-01, // itest=547: vxxxxx#28 nsp=1 mass=-400 + -2.476131380041579e-01, 4.836194101643708e-01, // itest=547: vxxxxx#28 nsp=1 mass=-400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=547: vxxxxx#28 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=548: sxxxxx#28 nsp=1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=548: sxxxxx#28 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=548: sxxxxx#28 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=548: sxxxxx#28 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=548: sxxxxx#28 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=548: sxxxxx#28 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=549: sxxxxx#28 nsp=1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=549: sxxxxx#28 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=549: sxxxxx#28 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=549: sxxxxx#28 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=549: sxxxxx#28 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=549: sxxxxx#28 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=550: oxxxxx#28 nsp=1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=550: oxxxxx#28 nsp=1 mass=400 + 2.433105012119288e+01, 0.000000000000000e+00, // itest=550: oxxxxx#28 nsp=1 mass=400 + 9.863939238321439e+00, -1.052153518754287e+01, // itest=550: oxxxxx#28 nsp=1 mass=400 + 1.216552506059644e+01, 0.000000000000000e+00, // itest=550: oxxxxx#28 nsp=1 mass=400 + 4.931969619160719e+00, -5.260767593771432e+00 } ); // itest=550: oxxxxx#28 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=551: oxxxxx#28 nsp=1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=551: oxxxxx#28 nsp=1 mass=-400 + 2.433105012119288e+01, 0.000000000000000e+00, // itest=551: oxxxxx#28 nsp=1 mass=-400 + 9.863939238321439e+00, -1.052153518754287e+01, // itest=551: oxxxxx#28 nsp=1 mass=-400 + -1.216552506059644e+01, -0.000000000000000e+00, // itest=551: oxxxxx#28 nsp=1 mass=-400 + -4.931969619160719e+00, 5.260767593771432e+00 } ); // itest=551: oxxxxx#28 nsp=1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=552: ixxxxx#29 nsp=1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=552: ixxxxx#29 nsp=1 mass=400 + 7.211102550927978e+00, 0.000000000000000e+00, // itest=552: ixxxxx#29 nsp=1 mass=400 + 8.320502943378436e+00, 8.875203139603666e+00, // itest=552: ixxxxx#29 nsp=1 mass=400 + 1.442220510185596e+01, 0.000000000000000e+00, // itest=552: ixxxxx#29 nsp=1 mass=400 + 1.664100588675688e+01, 1.775040627920733e+01 } ); // itest=552: ixxxxx#29 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=553: ixxxxx#29 nsp=1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=553: ixxxxx#29 nsp=1 mass=-400 + -7.211102550927978e+00, -0.000000000000000e+00, // itest=553: ixxxxx#29 nsp=1 mass=-400 + -8.320502943378436e+00, -8.875203139603666e+00, // itest=553: ixxxxx#29 nsp=1 mass=-400 + 1.442220510185596e+01, 0.000000000000000e+00, // itest=553: ixxxxx#29 nsp=1 mass=-400 + 1.664100588675688e+01, 1.775040627920733e+01 } ); // itest=553: ixxxxx#29 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=554: vxxxxx#29 nsp=1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=554: vxxxxx#29 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=554: vxxxxx#29 nsp=1 mass=400 + 2.321373168788980e-01, -5.158607041753289e-01, // itest=554: vxxxxx#29 nsp=1 mass=400 + 2.476131380041579e-01, 4.836194101643708e-01, // itest=554: vxxxxx#29 nsp=1 mass=400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=554: vxxxxx#29 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=555: vxxxxx#29 nsp=1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=555: vxxxxx#29 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=555: vxxxxx#29 nsp=1 mass=-400 + 2.321373168788980e-01, -5.158607041753289e-01, // itest=555: vxxxxx#29 nsp=1 mass=-400 + 2.476131380041579e-01, 4.836194101643708e-01, // itest=555: vxxxxx#29 nsp=1 mass=-400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=555: vxxxxx#29 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=556: sxxxxx#29 nsp=1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=556: sxxxxx#29 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=556: sxxxxx#29 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=556: sxxxxx#29 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=556: sxxxxx#29 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=556: sxxxxx#29 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=557: sxxxxx#29 nsp=1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=557: sxxxxx#29 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=557: sxxxxx#29 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=557: sxxxxx#29 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=557: sxxxxx#29 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=557: sxxxxx#29 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=558: oxxxxx#29 nsp=1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=558: oxxxxx#29 nsp=1 mass=400 + 1.442220510185596e+01, 0.000000000000000e+00, // itest=558: oxxxxx#29 nsp=1 mass=400 + 1.664100588675688e+01, -1.775040627920733e+01, // itest=558: oxxxxx#29 nsp=1 mass=400 + 7.211102550927978e+00, 0.000000000000000e+00, // itest=558: oxxxxx#29 nsp=1 mass=400 + 8.320502943378436e+00, -8.875203139603666e+00 } ); // itest=558: oxxxxx#29 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=559: oxxxxx#29 nsp=1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=559: oxxxxx#29 nsp=1 mass=-400 + 1.442220510185596e+01, 0.000000000000000e+00, // itest=559: oxxxxx#29 nsp=1 mass=-400 + 1.664100588675688e+01, -1.775040627920733e+01, // itest=559: oxxxxx#29 nsp=1 mass=-400 + -7.211102550927978e+00, -0.000000000000000e+00, // itest=559: oxxxxx#29 nsp=1 mass=-400 + -8.320502943378436e+00, 8.875203139603666e+00 } ); // itest=559: oxxxxx#29 nsp=1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=560: ixxxxx#30 nsp=1 mass=500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=560: ixxxxx#30 nsp=1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=560: ixxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=560: ixxxxx#30 nsp=1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=560: ixxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=560: ixxxxx#30 nsp=1 mass=500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=561: ixxxxx#30 nsp=1 mass=-500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=561: ixxxxx#30 nsp=1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=561: ixxxxx#30 nsp=1 mass=-500 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=561: ixxxxx#30 nsp=1 mass=-500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=561: ixxxxx#30 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=561: ixxxxx#30 nsp=1 mass=-500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=562: vxxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=562: vxxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=562: vxxxxx#30 nsp=1 mass=500 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=562: vxxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=562: vxxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=562: vxxxxx#30 nsp=1 mass=500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=563: vxxxxx#30 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=563: vxxxxx#30 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=563: vxxxxx#30 nsp=1 mass=-500 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=563: vxxxxx#30 nsp=1 mass=-500 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=563: vxxxxx#30 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=563: vxxxxx#30 nsp=1 mass=-500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=564: sxxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=564: sxxxxx#30 nsp=1 mass=500 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=564: sxxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=564: sxxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=564: sxxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=564: sxxxxx#30 nsp=1 mass=500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=565: sxxxxx#30 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=565: sxxxxx#30 nsp=1 mass=-500 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=565: sxxxxx#30 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=565: sxxxxx#30 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=565: sxxxxx#30 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=565: sxxxxx#30 nsp=1 mass=-500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=566: oxxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=566: oxxxxx#30 nsp=1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=566: oxxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=566: oxxxxx#30 nsp=1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=566: oxxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=566: oxxxxx#30 nsp=1 mass=500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=567: oxxxxx#30 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=567: oxxxxx#30 nsp=1 mass=-500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=567: oxxxxx#30 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=567: oxxxxx#30 nsp=1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=567: oxxxxx#30 nsp=1 mass=-500 + -0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=567: oxxxxx#30 nsp=1 mass=-500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=568: ixxxxx#31 nsp=1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=568: ixxxxx#31 nsp=1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=568: ixxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=568: ixxxxx#31 nsp=1 mass=400 + 2.828427124746190e+01, 0.000000000000000e+00, // itest=568: ixxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=568: ixxxxx#31 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=569: ixxxxx#31 nsp=1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=569: ixxxxx#31 nsp=1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=569: ixxxxx#31 nsp=1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=569: ixxxxx#31 nsp=1 mass=-400 + 2.828427124746190e+01, 0.000000000000000e+00, // itest=569: ixxxxx#31 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=569: ixxxxx#31 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=570: vxxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=570: vxxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=570: vxxxxx#31 nsp=1 mass=400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=570: vxxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=570: vxxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=570: vxxxxx#31 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=571: vxxxxx#31 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=571: vxxxxx#31 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=571: vxxxxx#31 nsp=1 mass=-400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=571: vxxxxx#31 nsp=1 mass=-400 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=571: vxxxxx#31 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=571: vxxxxx#31 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=572: sxxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=572: sxxxxx#31 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=572: sxxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=572: sxxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=572: sxxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=572: sxxxxx#31 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=573: sxxxxx#31 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=573: sxxxxx#31 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=573: sxxxxx#31 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=573: sxxxxx#31 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=573: sxxxxx#31 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=573: sxxxxx#31 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=574: oxxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=574: oxxxxx#31 nsp=1 mass=400 + 2.828427124746190e+01, 0.000000000000000e+00, // itest=574: oxxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=574: oxxxxx#31 nsp=1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=574: oxxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=574: oxxxxx#31 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=575: oxxxxx#31 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=575: oxxxxx#31 nsp=1 mass=-400 + 2.828427124746190e+01, 0.000000000000000e+00, // itest=575: oxxxxx#31 nsp=1 mass=-400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=575: oxxxxx#31 nsp=1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=575: oxxxxx#31 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=575: oxxxxx#31 nsp=1 mass=-400 diff --git a/epochX/cudacpp/gq_ttq.mad/src/HelAmps_sm.h b/epochX/cudacpp/gq_ttq.mad/src/HelAmps_sm.h index e15ce959e9..2e914de002 100644 --- a/epochX/cudacpp/gq_ttq.mad/src/HelAmps_sm.h +++ b/epochX/cudacpp/gq_ttq.mad/src/HelAmps_sm.h @@ -1,3 +1,4 @@ +// Copyright (C) 2010 The ALOHA Development team and Contributors. // Copyright (C) 2010 The MadGraph5_aMC@NLO development team and contributors. // Created by: J. Alwall (Sep 2010) for the MG5aMC backend. //========================================================================== @@ -21,6 +22,7 @@ #include "Parameters_sm.h" +#include //#include //#include //#include @@ -190,6 +192,9 @@ namespace mg5amcCpu const int ipar ) // input: particle# out of npar { mgDebug( 0, __FUNCTION__ ); + // NEW IMPLEMENTATION FIXING FLOATING POINT EXCEPTIONS IN SIMD CODE (#701) + // Variables xxxDENOM are a hack to avoid division-by-0 FPE while preserving speed (#701 and #727) + // Variables xxxDENOM are declared as 'volatile' to make sure they are not optimized away on clang! (#724) const fptype_sv& pvec0 = M_ACCESS::kernelAccessIp4IparConst( momenta, 0, ipar ); const fptype_sv& pvec1 = M_ACCESS::kernelAccessIp4IparConst( momenta, 1, ipar ); const fptype_sv& pvec2 = M_ACCESS::kernelAccessIp4IparConst( momenta, 2, ipar ); @@ -201,6 +206,11 @@ namespace mg5amcCpu if( fmass != 0. ) { const fptype_sv pp = fpmin( pvec0, fpsqrt( pvec1 * pvec1 + pvec2 * pvec2 + pvec3 * pvec3 ) ); + // In C++ ixxxxx, use a single ip/im numbering that is valid both for pp==0 and pp>0, which have two numbering schemes in Fortran ixxxxx: + // for pp==0, Fortran sqm(0:1) has indexes 0,1 as in C++; but for Fortran pp>0, omega(2) has indexes 1,2 and not 0,1 + // NB: this is only possible in ixxxx, but in oxxxxx two different numbering schemes must be used + const int ip = ( 1 + nh ) / 2; // NB: same as in Fortran pp==0, differs from Fortran pp>0, which is (3+nh)/2 because omega(2) has indexes 1,2 + const int im = ( 1 - nh ) / 2; // NB: same as in Fortran pp==0, differs from Fortran pp>0, which is (3-nh)/2 because omega(2) has indexes 1,2 #ifndef MGONGPU_CPPSIMD if( pp == 0. ) { @@ -208,8 +218,6 @@ namespace mg5amcCpu fptype sqm[2] = { fpsqrt( std::abs( fmass ) ), 0. }; // possibility of negative fermion masses //sqm[1] = ( fmass < 0. ? -abs( sqm[0] ) : abs( sqm[0] ) ); // AV: why abs here? sqm[1] = ( fmass < 0. ? -sqm[0] : sqm[0] ); // AV: removed an abs here - const int ip = ( 1 + nh ) / 2; // NB: Fortran sqm(0:1) also has indexes 0,1 as in C++ - const int im = ( 1 - nh ) / 2; // NB: Fortran sqm(0:1) also has indexes 0,1 as in C++ fi[2] = cxmake( ip * sqm[ip], 0 ); fi[3] = cxmake( im * nsf * sqm[ip], 0 ); fi[4] = cxmake( ip * nsf * sqm[im], 0 ); @@ -221,8 +229,6 @@ namespace mg5amcCpu fptype( 1 + nsf - ( 1 - nsf ) * nh ) * (fptype)0.5 }; fptype omega[2] = { fpsqrt( pvec0 + pp ), 0. }; omega[1] = fmass / omega[0]; - const int ip = ( 1 + nh ) / 2; // NB: Fortran is (3+nh)/2 because omega(2) has indexes 1,2 and not 0,1 - const int im = ( 1 - nh ) / 2; // NB: Fortran is (3-nh)/2 because omega(2) has indexes 1,2 and not 0,1 const fptype sfomega[2] = { sf[0] * omega[ip], sf[1] * omega[im] }; const fptype pp3 = fpmax( pp + pvec3, 0. ); const cxtype chi[2] = { cxmake( fpsqrt( pp3 * (fptype)0.5 / pp ), 0. ), @@ -233,8 +239,6 @@ namespace mg5amcCpu fi[5] = sfomega[1] * chi[ip]; } #else - const int ip = ( 1 + nh ) / 2; - const int im = ( 1 - nh ) / 2; // Branch A: pp == 0. // NB: Do not use "abs" for floats! It returns an integer with no build warning! Use std::abs! fptype sqm[2] = { fpsqrt( std::abs( fmass ) ), 0 }; // possibility of negative fermion masses (NB: SCALAR!) @@ -250,10 +254,12 @@ namespace mg5amcCpu omega[1] = fmass / omega[0]; const fptype_v sfomega[2] = { sf[0] * omega[ip], sf[1] * omega[im] }; const fptype_v pp3 = fpmax( pp + pvec3, 0 ); - const cxtype_v chi[2] = { cxmake( fpsqrt( pp3 * 0.5 / pp ), 0 ), + volatile fptype_v ppDENOM = fpternary( pp != 0, pp, 1. ); // hack: ppDENOM[ieppV]=1 if pp[ieppV]==0 + volatile fptype_v pp3DENOM = fpternary( pp3 != 0, pp3, 1. ); // hack: pp3DENOM[ieppV]=1 if pp3[ieppV]==0 + const cxtype_v chi[2] = { cxmake( fpsqrt( pp3 * 0.5 / ppDENOM ), 0 ), // hack: dummy[ieppV] is not used if pp[ieppV]==0 cxternary( ( pp3 == 0. ), cxmake( -nh, 0 ), - cxmake( (fptype)nh * pvec1, pvec2 ) / fpsqrt( 2. * pp * pp3 ) ) }; + cxmake( (fptype)nh * pvec1, pvec2 ) / fpsqrt( 2. * ppDENOM * pp3DENOM ) ) }; // hack: dummy[ieppV] is not used if pp[ieppV]==0 const cxtype_v fiB_2 = sfomega[0] * chi[im]; const cxtype_v fiB_3 = sfomega[0] * chi[ip]; const cxtype_v fiB_4 = sfomega[1] * chi[im]; @@ -271,7 +277,16 @@ namespace mg5amcCpu const fptype_sv sqp0p3 = fpternary( ( pvec1 == 0. and pvec2 == 0. and pvec3 < 0. ), fptype_sv{ 0 }, fpsqrt( fpmax( pvec0 + pvec3, 0. ) ) * (fptype)nsf ); - const cxtype_sv chi[2] = { cxmake( sqp0p3, 0. ), cxternary( ( sqp0p3 == 0. ), cxmake( -(fptype)nhel * fpsqrt( 2. * pvec0 ), 0. ), cxmake( (fptype)nh * pvec1, pvec2 ) / sqp0p3 ) }; +#ifdef MGONGPU_CPPSIMD + volatile fptype_v sqp0p3DENOM = fpternary( sqp0p3 != 0, sqp0p3, 1. ); // hack: dummy sqp0p3DENOM[ieppV]=1 if sqp0p3[ieppV]==0 + cxtype_sv chi[2] = { cxmake( sqp0p3, 0. ), + cxternary( sqp0p3 == 0, + cxmake( -(fptype)nhel * fpsqrt( 2. * pvec0 ), 0. ), + cxmake( (fptype)nh * pvec1, pvec2 ) / (const fptype_v)sqp0p3DENOM ) }; // hack: dummy[ieppV] is not used if sqp0p3[ieppV]==0 +#else + const cxtype_sv chi[2] = { cxmake( sqp0p3, 0. ), + ( sqp0p3 == 0. ? cxmake( -(fptype)nhel * fpsqrt( 2. * pvec0 ), 0. ) : cxmake( (fptype)nh * pvec1, pvec2 ) / sqp0p3 ) }; +#endif if( nh == 1 ) { fi[2] = cxzero_sv(); @@ -422,6 +437,9 @@ namespace mg5amcCpu const int ipar ) // input: particle# out of npar { mgDebug( 0, __FUNCTION__ ); + // NEW IMPLEMENTATION FIXING FLOATING POINT EXCEPTIONS IN SIMD CODE (#701) + // Variables xxxDENOM are a hack to avoid division-by-0 FPE while preserving speed (#701 and #727) + // Variables xxxDENOM are declared as 'volatile' to make sure they are not optimized away on clang! (#724) const fptype_sv& pvec0 = M_ACCESS::kernelAccessIp4IparConst( momenta, 0, ipar ); const fptype_sv& pvec1 = M_ACCESS::kernelAccessIp4IparConst( momenta, 1, ipar ); const fptype_sv& pvec2 = M_ACCESS::kernelAccessIp4IparConst( momenta, 2, ipar ); @@ -472,13 +490,15 @@ namespace mg5amcCpu const cxtype vcA_4 = cxmake( 0, nsvahl * sqh ); const cxtype vcA_5 = cxmake( hel0, 0 ); // Branch B: pp != 0. - const fptype_v emp = pvec0 / ( vmass * pp ); + volatile fptype_v ppDENOM = fpternary( pp != 0, pp, 1. ); // hack: ppDENOM[ieppV]=1 if pp[ieppV]==0 + const fptype_v emp = pvec0 / ( vmass * ppDENOM ); // hack: dummy[ieppV] is not used if pp[ieppV]==0 const cxtype_v vcB_2 = cxmake( hel0 * pp / vmass, 0 ); - const cxtype_v vcB_5 = cxmake( hel0 * pvec3 * emp + hel * pt / pp * sqh, 0 ); + const cxtype_v vcB_5 = cxmake( hel0 * pvec3 * emp + hel * pt / ppDENOM * sqh, 0 ); // hack: dummy[ieppV] is not used if pp[ieppV]==0 // Branch B1: pp != 0. and pt != 0. - const fptype_v pzpt = pvec3 / ( pp * pt ) * sqh * hel; - const cxtype_v vcB1_3 = cxmake( hel0 * pvec1 * emp - pvec1 * pzpt, -(fptype)nsvahl * pvec2 / pt * sqh ); - const cxtype_v vcB1_4 = cxmake( hel0 * pvec2 * emp - pvec2 * pzpt, (fptype)nsvahl * pvec1 / pt * sqh ); + volatile fptype_v ptDENOM = fpternary( pt != 0, pt, 1. ); // hack: ptDENOM[ieppV]=1 if pt[ieppV]==0 + const fptype_v pzpt = pvec3 / ( ppDENOM * ptDENOM ) * sqh * hel; // hack: dummy[ieppV] is not used if pp[ieppV]==0 + const cxtype_v vcB1_3 = cxmake( hel0 * pvec1 * emp - pvec1 * pzpt, -(fptype)nsvahl * pvec2 / ptDENOM * sqh ); // hack: dummy[ieppV] is not used if pt[ieppV]==0 + const cxtype_v vcB1_4 = cxmake( hel0 * pvec2 * emp - pvec2 * pzpt, (fptype)nsvahl * pvec1 / ptDENOM * sqh ); // hack: dummy[ieppV] is not used if pt[ieppV]==0 // Branch B2: pp != 0. and pt == 0. const cxtype vcB2_3 = cxmake( -hel * sqh, 0. ); const cxtype_v vcB2_4 = cxmake( 0., (fptype)nsvahl * fpternary( ( pvec3 < 0 ), -sqh, sqh ) ); // AV: removed an abs here @@ -513,9 +533,10 @@ namespace mg5amcCpu } #else // Branch A: pt != 0. - const fptype_v pzpt = pvec3 / ( pp * pt ) * sqh * hel; - const cxtype_v vcA_3 = cxmake( -pvec1 * pzpt, -(fptype)nsv * pvec2 / pt * sqh ); - const cxtype_v vcA_4 = cxmake( -pvec2 * pzpt, (fptype)nsv * pvec1 / pt * sqh ); + volatile fptype_v ptDENOM = fpternary( pt != 0, pt, 1. ); // hack: ptDENOM[ieppV]=1 if pt[ieppV]==0 + const fptype_v pzpt = pvec3 / ( pp * ptDENOM ) * sqh * hel; // hack: dummy[ieppV] is not used if pt[ieppV]==0 + const cxtype_v vcA_3 = cxmake( -pvec1 * pzpt, -(fptype)nsv * pvec2 / ptDENOM * sqh ); // hack: dummy[ieppV] is not used if pt[ieppV]==0 + const cxtype_v vcA_4 = cxmake( -pvec2 * pzpt, (fptype)nsv * pvec1 / ptDENOM * sqh ); // hack: dummy[ieppV] is not used if pt[ieppV]==0 // Branch B: pt == 0. const cxtype vcB_3 = cxmake( -(fptype)hel * sqh, 0 ); const cxtype_v vcB_4 = cxmake( 0, (fptype)nsv * fpternary( ( pvec3 < 0 ), -sqh, sqh ) ); // AV: removed an abs here @@ -567,6 +588,9 @@ namespace mg5amcCpu const int ipar ) // input: particle# out of npar { mgDebug( 0, __FUNCTION__ ); + // NEW IMPLEMENTATION FIXING FLOATING POINT EXCEPTIONS IN SIMD CODE (#701) + // Variables xxxDENOM are a hack to avoid division-by-0 FPE while preserving speed (#701 and #727) + // Variables xxxDENOM are declared as 'volatile' to make sure they are not optimized away on clang! (#724) const fptype_sv& pvec0 = M_ACCESS::kernelAccessIp4IparConst( momenta, 0, ipar ); const fptype_sv& pvec1 = M_ACCESS::kernelAccessIp4IparConst( momenta, 1, ipar ); const fptype_sv& pvec2 = M_ACCESS::kernelAccessIp4IparConst( momenta, 2, ipar ); @@ -630,10 +654,12 @@ namespace mg5amcCpu const int imB = ( 1 - nh ) / 2; const fptype_v sfomeg[2] = { sf[0] * omega[ipB], sf[1] * omega[imB] }; const fptype_v pp3 = fpmax( pp + pvec3, 0. ); - const cxtype_v chi[2] = { cxmake( fpsqrt( pp3 * 0.5 / pp ), 0. ), + volatile fptype_v ppDENOM = fpternary( pp != 0, pp, 1. ); // hack: ppDENOM[ieppV]=1 if pp[ieppV]==0 + volatile fptype_v pp3DENOM = fpternary( pp3 != 0, pp3, 1. ); // hack: pp3DENOM[ieppV]=1 if pp3[ieppV]==0 + const cxtype_v chi[2] = { cxmake( fpsqrt( pp3 * 0.5 / ppDENOM ), 0. ), // hack: dummy[ieppV] is not used if pp[ieppV]==0 ( cxternary( ( pp3 == 0. ), cxmake( -nh, 0. ), - cxmake( (fptype)nh * pvec1, -pvec2 ) / fpsqrt( 2. * pp * pp3 ) ) ) }; + cxmake( (fptype)nh * pvec1, -pvec2 ) / fpsqrt( 2. * ppDENOM * pp3DENOM ) ) ) }; // hack: dummy[ieppV] is not used if pp[ieppV]==0 const cxtype_v foB_2 = sfomeg[1] * chi[imB]; const cxtype_v foB_3 = sfomeg[1] * chi[ipB]; const cxtype_v foB_4 = sfomeg[0] * chi[imB]; @@ -651,10 +677,16 @@ namespace mg5amcCpu const fptype_sv sqp0p3 = fpternary( ( pvec1 == 0. ) and ( pvec2 == 0. ) and ( pvec3 < 0. ), 0, fpsqrt( fpmax( pvec0 + pvec3, 0. ) ) * (fptype)nsf ); +#ifdef MGONGPU_CPPSIMD + volatile fptype_v sqp0p3DENOM = fpternary( sqp0p3 != 0, sqp0p3, 1. ); // hack: sqp0p3DENOM[ieppV]=1 if sqp0p3[ieppV]==0 + const cxtype_v chi[2] = { cxmake( sqp0p3, 0. ), + cxternary( ( sqp0p3 == 0. ), + cxmake( -nhel, 0. ) * fpsqrt( 2. * pvec0 ), + cxmake( (fptype)nh * pvec1, -pvec2 ) / (const fptype_sv)sqp0p3DENOM ) }; // hack: dummy[ieppV] is not used if sqp0p3[ieppV]==0 +#else const cxtype_sv chi[2] = { cxmake( sqp0p3, 0. ), - cxternary( ( sqp0p3 == 0. ), - cxmake( -nhel, 0. ) * fpsqrt( 2. * pvec0 ), - cxmake( (fptype)nh * pvec1, -pvec2 ) / sqp0p3 ) }; + ( sqp0p3 == 0. ? cxmake( -nhel, 0. ) * fpsqrt( 2. * pvec0 ) : cxmake( (fptype)nh * pvec1, -pvec2 ) / sqp0p3 ) }; +#endif if( nh == 1 ) { fo[2] = chi[0]; diff --git a/epochX/cudacpp/gq_ttq.mad/src/Parameters_sm.cc b/epochX/cudacpp/gq_ttq.mad/src/Parameters_sm.cc index 7255e49119..b9668e2a87 100644 --- a/epochX/cudacpp/gq_ttq.mad/src/Parameters_sm.cc +++ b/epochX/cudacpp/gq_ttq.mad/src/Parameters_sm.cc @@ -17,6 +17,12 @@ #include #include +#ifdef __CUDACC__ +using namespace mg5amcGpu; +#else +using namespace mg5amcCpu; +#endif + #ifndef MGONGPU_HARDCODE_PARAM // Initialize static instance diff --git a/epochX/cudacpp/gq_ttq.mad/src/Parameters_sm.h b/epochX/cudacpp/gq_ttq.mad/src/Parameters_sm.h index c935779eb3..69241c2b3b 100644 --- a/epochX/cudacpp/gq_ttq.mad/src/Parameters_sm.h +++ b/epochX/cudacpp/gq_ttq.mad/src/Parameters_sm.h @@ -26,188 +26,213 @@ #include "read_slha.h" -class Parameters_sm +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { -public: + class Parameters_sm + { + public: - static Parameters_sm* getInstance(); + static Parameters_sm* getInstance(); - // Define "zero" - double zero, ZERO; + // Define "zero" + double zero, ZERO; - // Model parameters independent of aS - //double aS; // now retrieved event-by-event (as G) from Fortran (running alphas #373) - double mdl_WH, mdl_WW, mdl_WZ, mdl_WT, mdl_ymtau, mdl_ymt, mdl_ymb, mdl_Gf, aEWM1, mdl_MH, mdl_MZ, mdl_MTA, mdl_MT, mdl_MB, mdl_conjg__CKM3x3, mdl_conjg__CKM1x1, mdl_CKM3x3, mdl_MZ__exp__2, mdl_MZ__exp__4, mdl_sqrt__2, mdl_MH__exp__2, mdl_aEW, mdl_MW, mdl_sqrt__aEW, mdl_ee, mdl_MW__exp__2, mdl_sw2, mdl_cw, mdl_sqrt__sw2, mdl_sw, mdl_g1, mdl_gw, mdl_vev, mdl_vev__exp__2, mdl_lam, mdl_yb, mdl_yt, mdl_ytau, mdl_muH, mdl_ee__exp__2, mdl_sw__exp__2, mdl_cw__exp__2; - cxsmpl mdl_complexi, mdl_I1x33, mdl_I2x33, mdl_I3x33, mdl_I4x33; + // Model parameters independent of aS + //double aS; // now retrieved event-by-event (as G) from Fortran (running alphas #373) + double mdl_WH, mdl_WW, mdl_WZ, mdl_WT, mdl_ymtau, mdl_ymt, mdl_ymb, mdl_Gf, aEWM1, mdl_MH, mdl_MZ, mdl_MTA, mdl_MT, mdl_MB, mdl_conjg__CKM3x3, mdl_conjg__CKM1x1, mdl_CKM3x3, mdl_MZ__exp__2, mdl_MZ__exp__4, mdl_sqrt__2, mdl_MH__exp__2, mdl_aEW, mdl_MW, mdl_sqrt__aEW, mdl_ee, mdl_MW__exp__2, mdl_sw2, mdl_cw, mdl_sqrt__sw2, mdl_sw, mdl_g1, mdl_gw, mdl_vev, mdl_vev__exp__2, mdl_lam, mdl_yb, mdl_yt, mdl_ytau, mdl_muH, mdl_ee__exp__2, mdl_sw__exp__2, mdl_cw__exp__2; + cxsmpl mdl_complexi, mdl_I1x33, mdl_I2x33, mdl_I3x33, mdl_I4x33; - // Model couplings independent of aS - // (none) + // Model couplings independent of aS + // (none) - // Model parameters dependent on aS - //double mdl_sqrt__aS, G, mdl_G__exp__2; // now computed event-by-event (running alphas #373) + // Model parameters dependent on aS + //double mdl_sqrt__aS, G, mdl_G__exp__2; // now computed event-by-event (running alphas #373) - // Model couplings dependent on aS - //cxsmpl GC_10, GC_11; // now computed event-by-event (running alphas #373) + // Model couplings dependent on aS + //cxsmpl GC_10, GC_11; // now computed event-by-event (running alphas #373) - // Set parameters that are unchanged during the run - void setIndependentParameters( SLHAReader& slha ); + // Set parameters that are unchanged during the run + void setIndependentParameters( SLHAReader& slha ); - // Set couplings that are unchanged during the run - void setIndependentCouplings(); + // Set couplings that are unchanged during the run + void setIndependentCouplings(); - // Set parameters that are changed event by event - //void setDependentParameters(); // now computed event-by-event (running alphas #373) + // Set parameters that are changed event by event + //void setDependentParameters(); // now computed event-by-event (running alphas #373) - // Set couplings that are changed event by event - //void setDependentCouplings(); // now computed event-by-event (running alphas #373) + // Set couplings that are changed event by event + //void setDependentCouplings(); // now computed event-by-event (running alphas #373) - // Print parameters that are unchanged during the run - void printIndependentParameters(); + // Print parameters that are unchanged during the run + void printIndependentParameters(); - // Print couplings that are unchanged during the run - void printIndependentCouplings(); + // Print couplings that are unchanged during the run + void printIndependentCouplings(); - // Print parameters that are changed event by event - //void printDependentParameters(); // now computed event-by-event (running alphas #373) + // Print parameters that are changed event by event + //void printDependentParameters(); // now computed event-by-event (running alphas #373) - // Print couplings that are changed event by event - //void printDependentCouplings(); // now computed event-by-event (running alphas #373) + // Print couplings that are changed event by event + //void printDependentCouplings(); // now computed event-by-event (running alphas #373) -private: + private: - static Parameters_sm* instance; -}; + static Parameters_sm* instance; + }; + +} // end namespace mg5amcGpu/mg5amcCpu #else #include #include -// Hardcoded constexpr physics parameters -namespace Parameters_sm // keep the same name rather than HardcodedParameters_sm for simplicity +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { - // Constexpr implementation of sqrt (see https://stackoverflow.com/a/34134071) - double constexpr sqrtNewtonRaphson( double x, double curr, double prev ) + // Hardcoded constexpr physics parameters + namespace Parameters_sm // keep the same name rather than HardcodedParameters_sm for simplicity { - return curr == prev ? curr : sqrtNewtonRaphson( x, 0.5 * ( curr + x / curr ), curr ); - } - double constexpr constexpr_sqrt( double x ) - { - return x >= 0 // && x < std::numeric_limits::infinity() // avoid -Wtautological-constant-compare warning in fast math - ? sqrtNewtonRaphson( x, x, 0 ) - : std::numeric_limits::quiet_NaN(); - } + // Constexpr implementation of sqrt (see https://stackoverflow.com/a/34134071) + double constexpr sqrtNewtonRaphson( double x, double curr, double prev ) + { + return curr == prev ? curr : sqrtNewtonRaphson( x, 0.5 * ( curr + x / curr ), curr ); + } + double constexpr constexpr_sqrt( double x ) + { + return x >= 0 // && x < std::numeric_limits::infinity() // avoid -Wtautological-constant-compare warning in fast math + ? sqrtNewtonRaphson( x, x, 0 ) + : std::numeric_limits::quiet_NaN(); + } - // Constexpr implementation of floor (see https://stackoverflow.com/a/66146159) - constexpr int constexpr_floor( double d ) - { - const int i = static_cast( d ); - return d < i ? i - 1 : i; - } + // Constexpr implementation of floor (see https://stackoverflow.com/a/66146159) + constexpr int constexpr_floor( double d ) + { + const int i = static_cast( d ); + return d < i ? i - 1 : i; + } - // Constexpr implementation of pow - constexpr double constexpr_pow( double base, double exp ) - { - // NB(1): this implementation of constexpr_pow requires exponent >= 0 - assert( exp >= 0 ); // NB would fail at compile time with "error: call to non-‘constexpr’ function ‘void __assert_fail'" - // NB(2): this implementation of constexpr_pow requires an integer exponent - const int iexp = constexpr_floor( exp ); - assert( static_cast( iexp ) == exp ); // NB would fail at compile time with "error: call to non-‘constexpr’ function ‘void __assert_fail'" - // Iterative implementation of pow if exp is a non negative integer - return iexp == 0 ? 1 : base * constexpr_pow( base, iexp - 1 ); + // Constexpr implementation of pow + constexpr double constexpr_pow( double base, double exp ) + { + // NB(1): this implementation of constexpr_pow requires exponent >= 0 + assert( exp >= 0 ); // NB would fail at compile time with "error: call to non-‘constexpr’ function ‘void __assert_fail'" + // NB(2): this implementation of constexpr_pow requires an integer exponent + const int iexp = constexpr_floor( exp ); + assert( static_cast( iexp ) == exp ); // NB would fail at compile time with "error: call to non-‘constexpr’ function ‘void __assert_fail'" + // Iterative implementation of pow if exp is a non negative integer + return iexp == 0 ? 1 : base * constexpr_pow( base, iexp - 1 ); + } + + // Model parameters independent of aS + constexpr double zero = 0; + constexpr double ZERO = 0; + constexpr double mdl_WH = 6.382339e-03; + constexpr double mdl_WW = 2.047600e+00; + constexpr double mdl_WZ = 2.441404e+00; + constexpr double mdl_WT = 1.491500e+00; + constexpr double mdl_ymtau = 1.777000e+00; + constexpr double mdl_ymt = 1.730000e+02; + constexpr double mdl_ymb = 4.700000e+00; + //constexpr double aS = 1.180000e-01; // now retrieved event-by-event (as G) from Fortran (running alphas #373) + constexpr double mdl_Gf = 1.166390e-05; + constexpr double aEWM1 = 1.325070e+02; + constexpr double mdl_MH = 1.250000e+02; + constexpr double mdl_MZ = 9.118800e+01; + constexpr double mdl_MTA = 1.777000e+00; + constexpr double mdl_MT = 1.730000e+02; + constexpr double mdl_MB = 4.700000e+00; + constexpr double mdl_conjg__CKM3x3 = 1.; + constexpr double mdl_conjg__CKM1x1 = 1.; + constexpr double mdl_CKM3x3 = 1.; + constexpr cxsmpl mdl_complexi = cxsmpl( 0., 1. ); + constexpr double mdl_MZ__exp__2 = ( ( mdl_MZ ) * ( mdl_MZ ) ); + constexpr double mdl_MZ__exp__4 = ( ( mdl_MZ ) * ( mdl_MZ ) * ( mdl_MZ ) * ( mdl_MZ ) ); + constexpr double mdl_sqrt__2 = constexpr_sqrt( 2. ); + constexpr double mdl_MH__exp__2 = ( ( mdl_MH ) * ( mdl_MH ) ); + constexpr double mdl_aEW = 1. / aEWM1; + constexpr double mdl_MW = constexpr_sqrt( mdl_MZ__exp__2 / 2. + constexpr_sqrt( mdl_MZ__exp__4 / 4. - ( mdl_aEW * M_PI * mdl_MZ__exp__2 ) / ( mdl_Gf * mdl_sqrt__2 ) ) ); + constexpr double mdl_sqrt__aEW = constexpr_sqrt( mdl_aEW ); + constexpr double mdl_ee = 2. * mdl_sqrt__aEW * constexpr_sqrt( M_PI ); + constexpr double mdl_MW__exp__2 = ( ( mdl_MW ) * ( mdl_MW ) ); + constexpr double mdl_sw2 = 1. - mdl_MW__exp__2 / mdl_MZ__exp__2; + constexpr double mdl_cw = constexpr_sqrt( 1. - mdl_sw2 ); + constexpr double mdl_sqrt__sw2 = constexpr_sqrt( mdl_sw2 ); + constexpr double mdl_sw = mdl_sqrt__sw2; + constexpr double mdl_g1 = mdl_ee / mdl_cw; + constexpr double mdl_gw = mdl_ee / mdl_sw; + constexpr double mdl_vev = ( 2. * mdl_MW * mdl_sw ) / mdl_ee; + constexpr double mdl_vev__exp__2 = ( ( mdl_vev ) * ( mdl_vev ) ); + constexpr double mdl_lam = mdl_MH__exp__2 / ( 2. * mdl_vev__exp__2 ); + constexpr double mdl_yb = ( mdl_ymb * mdl_sqrt__2 ) / mdl_vev; + constexpr double mdl_yt = ( mdl_ymt * mdl_sqrt__2 ) / mdl_vev; + constexpr double mdl_ytau = ( mdl_ymtau * mdl_sqrt__2 ) / mdl_vev; + constexpr double mdl_muH = constexpr_sqrt( mdl_lam * mdl_vev__exp__2 ); + constexpr cxsmpl mdl_I1x33 = mdl_yb * mdl_conjg__CKM3x3; + constexpr cxsmpl mdl_I2x33 = mdl_yt * mdl_conjg__CKM3x3; + constexpr cxsmpl mdl_I3x33 = mdl_CKM3x3 * mdl_yt; + constexpr cxsmpl mdl_I4x33 = mdl_CKM3x3 * mdl_yb; + constexpr double mdl_ee__exp__2 = ( ( mdl_ee ) * ( mdl_ee ) ); + constexpr double mdl_sw__exp__2 = ( ( mdl_sw ) * ( mdl_sw ) ); + constexpr double mdl_cw__exp__2 = ( ( mdl_cw ) * ( mdl_cw ) ); + + // Model couplings independent of aS + // (none) + + // Model parameters dependent on aS + //constexpr double mdl_sqrt__aS = //constexpr_sqrt( aS ); // now computed event-by-event (running alphas #373) + //constexpr double G = 2. * mdl_sqrt__aS * //constexpr_sqrt( M_PI ); // now computed event-by-event (running alphas #373) + //constexpr double mdl_G__exp__2 = ( ( G ) * ( G ) ); // now computed event-by-event (running alphas #373) + + // Model couplings dependent on aS + //constexpr cxsmpl GC_10 = -G; // now computed event-by-event (running alphas #373) + //constexpr cxsmpl GC_11 = mdl_complexi * G; // now computed event-by-event (running alphas #373) + + // Print parameters that are unchanged during the run + void printIndependentParameters(); + + // Print couplings that are unchanged during the run + void printIndependentCouplings(); + + // Print parameters that are changed event by event + //void printDependentParameters(); // now computed event-by-event (running alphas #373) + + // Print couplings that are changed event by event + //void printDependentCouplings(); // now computed event-by-event (running alphas #373) } - // Model parameters independent of aS - constexpr double zero = 0; - constexpr double ZERO = 0; - constexpr double mdl_WH = 6.382339e-03; - constexpr double mdl_WW = 2.047600e+00; - constexpr double mdl_WZ = 2.441404e+00; - constexpr double mdl_WT = 1.491500e+00; - constexpr double mdl_ymtau = 1.777000e+00; - constexpr double mdl_ymt = 1.730000e+02; - constexpr double mdl_ymb = 4.700000e+00; - //constexpr double aS = 1.180000e-01; // now retrieved event-by-event (as G) from Fortran (running alphas #373) - constexpr double mdl_Gf = 1.166390e-05; - constexpr double aEWM1 = 1.325070e+02; - constexpr double mdl_MH = 1.250000e+02; - constexpr double mdl_MZ = 9.118800e+01; - constexpr double mdl_MTA = 1.777000e+00; - constexpr double mdl_MT = 1.730000e+02; - constexpr double mdl_MB = 4.700000e+00; - constexpr double mdl_conjg__CKM3x3 = 1.; - constexpr double mdl_conjg__CKM1x1 = 1.; - constexpr double mdl_CKM3x3 = 1.; - constexpr cxsmpl mdl_complexi = cxsmpl( 0., 1. ); - constexpr double mdl_MZ__exp__2 = ( ( mdl_MZ ) * ( mdl_MZ ) ); - constexpr double mdl_MZ__exp__4 = ( ( mdl_MZ ) * ( mdl_MZ ) * ( mdl_MZ ) * ( mdl_MZ ) ); - constexpr double mdl_sqrt__2 = constexpr_sqrt( 2. ); - constexpr double mdl_MH__exp__2 = ( ( mdl_MH ) * ( mdl_MH ) ); - constexpr double mdl_aEW = 1. / aEWM1; - constexpr double mdl_MW = constexpr_sqrt( mdl_MZ__exp__2 / 2. + constexpr_sqrt( mdl_MZ__exp__4 / 4. - ( mdl_aEW * M_PI * mdl_MZ__exp__2 ) / ( mdl_Gf * mdl_sqrt__2 ) ) ); - constexpr double mdl_sqrt__aEW = constexpr_sqrt( mdl_aEW ); - constexpr double mdl_ee = 2. * mdl_sqrt__aEW * constexpr_sqrt( M_PI ); - constexpr double mdl_MW__exp__2 = ( ( mdl_MW ) * ( mdl_MW ) ); - constexpr double mdl_sw2 = 1. - mdl_MW__exp__2 / mdl_MZ__exp__2; - constexpr double mdl_cw = constexpr_sqrt( 1. - mdl_sw2 ); - constexpr double mdl_sqrt__sw2 = constexpr_sqrt( mdl_sw2 ); - constexpr double mdl_sw = mdl_sqrt__sw2; - constexpr double mdl_g1 = mdl_ee / mdl_cw; - constexpr double mdl_gw = mdl_ee / mdl_sw; - constexpr double mdl_vev = ( 2. * mdl_MW * mdl_sw ) / mdl_ee; - constexpr double mdl_vev__exp__2 = ( ( mdl_vev ) * ( mdl_vev ) ); - constexpr double mdl_lam = mdl_MH__exp__2 / ( 2. * mdl_vev__exp__2 ); - constexpr double mdl_yb = ( mdl_ymb * mdl_sqrt__2 ) / mdl_vev; - constexpr double mdl_yt = ( mdl_ymt * mdl_sqrt__2 ) / mdl_vev; - constexpr double mdl_ytau = ( mdl_ymtau * mdl_sqrt__2 ) / mdl_vev; - constexpr double mdl_muH = constexpr_sqrt( mdl_lam * mdl_vev__exp__2 ); - constexpr cxsmpl mdl_I1x33 = mdl_yb * mdl_conjg__CKM3x3; - constexpr cxsmpl mdl_I2x33 = mdl_yt * mdl_conjg__CKM3x3; - constexpr cxsmpl mdl_I3x33 = mdl_CKM3x3 * mdl_yt; - constexpr cxsmpl mdl_I4x33 = mdl_CKM3x3 * mdl_yb; - constexpr double mdl_ee__exp__2 = ( ( mdl_ee ) * ( mdl_ee ) ); - constexpr double mdl_sw__exp__2 = ( ( mdl_sw ) * ( mdl_sw ) ); - constexpr double mdl_cw__exp__2 = ( ( mdl_cw ) * ( mdl_cw ) ); - - // Model couplings independent of aS - // (none) - - // Model parameters dependent on aS - //constexpr double mdl_sqrt__aS = //constexpr_sqrt( aS ); // now computed event-by-event (running alphas #373) - //constexpr double G = 2. * mdl_sqrt__aS * //constexpr_sqrt( M_PI ); // now computed event-by-event (running alphas #373) - //constexpr double mdl_G__exp__2 = ( ( G ) * ( G ) ); // now computed event-by-event (running alphas #373) - - // Model couplings dependent on aS - //constexpr cxsmpl GC_10 = -G; // now computed event-by-event (running alphas #373) - //constexpr cxsmpl GC_11 = mdl_complexi * G; // now computed event-by-event (running alphas #373) - - // Print parameters that are unchanged during the run - void printIndependentParameters(); - - // Print couplings that are unchanged during the run - void printIndependentCouplings(); - - // Print parameters that are changed event by event - //void printDependentParameters(); // now computed event-by-event (running alphas #373) - - // Print couplings that are changed event by event - //void printDependentCouplings(); // now computed event-by-event (running alphas #373) -} +} // end namespace mg5amcGpu/mg5amcCpu #endif //========================================================================== -namespace Parameters_sm_dependentCouplings +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { - constexpr size_t ndcoup = 2; // #couplings that vary event by event because they depend on the running alphas QCD - constexpr size_t idcoup_GC_10 = 0; - constexpr size_t idcoup_GC_11 = 1; - struct DependentCouplings_sv + namespace Parameters_sm_dependentCouplings { - cxtype_sv GC_10; - cxtype_sv GC_11; - }; + constexpr size_t ndcoup = 2; // #couplings that vary event by event because they depend on the running alphas QCD + constexpr size_t idcoup_GC_10 = 0; + constexpr size_t idcoup_GC_11 = 1; + struct DependentCouplings_sv + { + cxtype_sv GC_10; + cxtype_sv GC_11; + }; #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wunused-variable" // e.g. <> #pragma GCC diagnostic ignored "-Wunused-parameter" // e.g. <> @@ -215,51 +240,45 @@ namespace Parameters_sm_dependentCouplings #pragma nv_diagnostic push #pragma nv_diag_suppress 177 // e.g. <> #endif - __host__ __device__ inline const DependentCouplings_sv computeDependentCouplings_fromG( const fptype_sv& G_sv ) - { + __host__ __device__ inline const DependentCouplings_sv computeDependentCouplings_fromG( const fptype_sv& G_sv ) + { #ifdef MGONGPU_HARDCODE_PARAM - using namespace Parameters_sm; + using namespace Parameters_sm; #endif - // NB: hardcode cxtype cI(0,1) instead of cxtype (or hardcoded cxsmpl) mdl_complexi (which exists in Parameters_sm) because: - // (1) mdl_complexi is always (0,1); (2) mdl_complexi is undefined in device code; (3) need cxsmpl conversion to cxtype in code below - const cxtype cI( 0., 1. ); - DependentCouplings_sv out; - // Begin SM implementation - no special handling of vectors of floats as in EFT (#439) - { - const fptype_sv& G = G_sv; - // Model parameters dependent on aS - //const fptype_sv mdl_sqrt__aS = constexpr_sqrt( aS ); - //const fptype_sv G = 2. * mdl_sqrt__aS * constexpr_sqrt( M_PI ); - const fptype_sv mdl_G__exp__2 = ( ( G ) * ( G ) ); - // Model couplings dependent on aS - out.GC_10 = -G; - out.GC_11 = cI * G; + // NB: hardcode cxtype cI(0,1) instead of cxtype (or hardcoded cxsmpl) mdl_complexi (which exists in Parameters_sm) because: + // (1) mdl_complexi is always (0,1); (2) mdl_complexi is undefined in device code; (3) need cxsmpl conversion to cxtype in code below + const cxtype cI( 0., 1. ); + DependentCouplings_sv out; + // Begin SM implementation - no special handling of vectors of floats as in EFT (#439) + { + const fptype_sv& G = G_sv; + // Model parameters dependent on aS + //const fptype_sv mdl_sqrt__aS = constexpr_sqrt( aS ); + //const fptype_sv G = 2. * mdl_sqrt__aS * constexpr_sqrt( M_PI ); + const fptype_sv mdl_G__exp__2 = ( ( G ) * ( G ) ); + // Model couplings dependent on aS + out.GC_10 = -G; + out.GC_11 = cI * G; + } + // End SM implementation - no special handling of vectors of floats as in EFT (#439) + return out; } - // End SM implementation - no special handling of vectors of floats as in EFT (#439) - return out; - } #ifdef __CUDACC__ #pragma GCC diagnostic pop #pragma nv_diagnostic pop #endif -} + } -//========================================================================== + //========================================================================== -namespace Parameters_sm_independentCouplings -{ - constexpr size_t nicoup = 0; // #couplings that are fixed for all events because they do not depend on the running alphas QCD - // NB: there are no aS-independent couplings in this physics process -} + namespace Parameters_sm_independentCouplings + { + constexpr size_t nicoup = 0; // #couplings that are fixed for all events because they do not depend on the running alphas QCD + // NB: there are no aS-independent couplings in this physics process + } -//========================================================================== + //========================================================================== -#ifdef __CUDACC__ -namespace mg5amcGpu -#else -namespace mg5amcCpu -#endif -{ #pragma GCC diagnostic push #ifndef __clang__ #pragma GCC diagnostic ignored "-Wunused-but-set-variable" // e.g. <> @@ -284,7 +303,8 @@ namespace mg5amcCpu return; } #pragma GCC diagnostic pop -} + +} // end namespace mg5amcGpu/mg5amcCpu //========================================================================== diff --git a/epochX/cudacpp/gq_ttq.mad/src/cudacpp_src.mk b/epochX/cudacpp/gq_ttq.mad/src/cudacpp_src.mk index 21b6d924ff..554d7a704c 100644 --- a/epochX/cudacpp/gq_ttq.mad/src/cudacpp_src.mk +++ b/epochX/cudacpp/gq_ttq.mad/src/cudacpp_src.mk @@ -38,7 +38,13 @@ endif #------------------------------------------------------------------------------- -#=== Configure ccache for CUDA and C++ builds +#=== Configure the CUDA compiler (note: NVCC is already exported including ccache) + +###$(info NVCC=$(NVCC)) + +#------------------------------------------------------------------------------- + +#=== Configure ccache for C++ builds (note: NVCC is already exported including ccache) # Enable ccache if USECCACHE=1 ifeq ($(USECCACHE)$(shell echo $(CXX) | grep ccache),1) @@ -47,11 +53,6 @@ endif #ifeq ($(USECCACHE)$(shell echo $(AR) | grep ccache),1) # override AR:=ccache $(AR) #endif -#ifneq ($(NVCC),) -# ifeq ($(USECCACHE)$(shell echo $(NVCC) | grep ccache),1) -# override NVCC:=ccache $(NVCC) -# endif -#endif #------------------------------------------------------------------------------- @@ -115,7 +116,9 @@ else ifneq ($(shell $(CXX) --version | grep ^nvc++),) # support nvc++ #531 $(error Unknown AVX='$(AVX)': only 'none', 'sse4', 'avx2', '512y' and '512z' are supported) endif else - ifeq ($(AVX),sse4) + ifeq ($(AVX),none) + override AVXFLAGS = -march=x86-64 # no SIMD (see #588) + else ifeq ($(AVX),sse4) override AVXFLAGS = -march=nehalem # SSE4.2 with 128 width (xmm registers) else ifeq ($(AVX),avx2) override AVXFLAGS = -march=haswell # AVX2 with 256 width (ymm registers) [DEFAULT for clang] @@ -216,7 +219,7 @@ MG5AMC_COMMONLIB = mg5amc_common all.$(TAG): $(BUILDDIR)/.build.$(TAG) $(LIBDIR)/.build.$(TAG) $(LIBDIR)/lib$(MG5AMC_COMMONLIB).so # Target (and build options): debug -debug: OPTFLAGS = -g -O0 -DDEBUG2 +debug: OPTFLAGS = -g -O0 debug: all.$(TAG) # Target: tag-specific build lockfiles @@ -237,17 +240,31 @@ $(LIBDIR)/.build.$(TAG): # Generic target and build rules: objects from C++ compilation $(BUILDDIR)/%.o : %.cc *.h $(BUILDDIR)/.build.$(TAG) - @if [ ! -d $(BUILDDIR) ]; then mkdir -p $(BUILDDIR); fi - $(CXX) $(CPPFLAGS) $(CXXFLAGS) -c $< -o $@ + @if [ ! -d $(BUILDDIR) ]; then echo "mkdir -p $(BUILDDIR)"; mkdir -p $(BUILDDIR); fi + $(CXX) $(CPPFLAGS) $(CXXFLAGS) -fPIC -c $< -o $@ + +# Generic target and build rules: objects from CUDA compilation +$(BUILDDIR)/%_cu.o : %.cc *.h $(BUILDDIR)/.build.$(TAG) + @if [ ! -d $(BUILDDIR) ]; then echo "mkdir -p $(BUILDDIR)"; mkdir -p $(BUILDDIR); fi + $(NVCC) $(CPPFLAGS) $(CUFLAGS) -Xcompiler -fPIC -c -x cu $< -o $@ #------------------------------------------------------------------------------- cxx_objects=$(addprefix $(BUILDDIR)/, Parameters_sm.o read_slha.o) +ifneq ($(NVCC),) +cu_objects=$(addprefix $(BUILDDIR)/, Parameters_sm_cu.o) +endif # Target (and build rules): common (src) library +ifneq ($(NVCC),) +$(LIBDIR)/lib$(MG5AMC_COMMONLIB).so : $(cxx_objects) $(cu_objects) + @if [ ! -d $(LIBDIR) ]; then echo "mkdir -p $(LIBDIR)"; mkdir -p $(LIBDIR); fi + $(NVCC) -shared -o $@ $(cxx_objects) $(cu_objects) +else $(LIBDIR)/lib$(MG5AMC_COMMONLIB).so : $(cxx_objects) @if [ ! -d $(LIBDIR) ]; then echo "mkdir -p $(LIBDIR)"; mkdir -p $(LIBDIR); fi - $(CXX) -shared -o$@ $(cxx_objects) + $(CXX) -shared -o $@ $(cxx_objects) +endif #------------------------------------------------------------------------------- diff --git a/epochX/cudacpp/gq_ttq.mad/src/mgOnGpuConfig.h b/epochX/cudacpp/gq_ttq.mad/src/mgOnGpuConfig.h index 881353abac..cacab1031a 100644 --- a/epochX/cudacpp/gq_ttq.mad/src/mgOnGpuConfig.h +++ b/epochX/cudacpp/gq_ttq.mad/src/mgOnGpuConfig.h @@ -98,6 +98,7 @@ #endif #endif +// NB: namespace mgOnGpu includes types which are defined in exactly the same way for CPU and GPU builds (see #318 and #725) namespace mgOnGpu { diff --git a/epochX/cudacpp/gq_ttq.mad/src/mgOnGpuCxtypes.h b/epochX/cudacpp/gq_ttq.mad/src/mgOnGpuCxtypes.h index 0cb2f1db7e..b56348bc58 100644 --- a/epochX/cudacpp/gq_ttq.mad/src/mgOnGpuCxtypes.h +++ b/epochX/cudacpp/gq_ttq.mad/src/mgOnGpuCxtypes.h @@ -43,8 +43,12 @@ // COMPLEX TYPES: SIMPLE COMPLEX CLASS (cxsmpl) //========================================================================== +// NB: namespace mgOnGpu includes types which are defined in exactly the same way for CPU and GPU builds (see #318 and #725) namespace mgOnGpu /* clang-format off */ { + // The number of floating point types in a complex type (real, imaginary) + constexpr int nx2 = 2; + // --- Type definition (simple complex type derived from cxtype_v) template class cxsmpl @@ -78,128 +82,139 @@ namespace mgOnGpu /* clang-format off */ using mgOnGpu::cxsmpl; // Printout to stream for user defined types -template -inline __host__ __device__ std::ostream& -operator<<( std::ostream& out, const cxsmpl& c ) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { - out << std::complex( c.real(), c.imag() ); - return out; -} + template + inline __host__ std::ostream& + operator<<( std::ostream& out, const cxsmpl& c ) + { + out << std::complex( c.real(), c.imag() ); + return out; + } -// Operators for cxsmpl -template -inline __host__ __device__ constexpr cxsmpl -operator+( const cxsmpl a ) -{ - return a; -} + // Operators for cxsmpl + template + inline __host__ __device__ constexpr cxsmpl + operator+( const cxsmpl a ) + { + return a; + } -template -inline __host__ __device__ constexpr cxsmpl -operator-( const cxsmpl& a ) -{ - return cxsmpl( -a.real(), -a.imag() ); -} + template + inline __host__ __device__ constexpr cxsmpl + operator-( const cxsmpl& a ) + { + return cxsmpl( -a.real(), -a.imag() ); + } -template -inline __host__ __device__ constexpr cxsmpl -operator+( const cxsmpl& a, const cxsmpl& b ) -{ - return cxsmpl( a.real() + b.real(), a.imag() + b.imag() ); -} + template + inline __host__ __device__ constexpr cxsmpl + operator+( const cxsmpl& a, const cxsmpl& b ) + { + return cxsmpl( a.real() + b.real(), a.imag() + b.imag() ); + } -template -inline __host__ __device__ constexpr cxsmpl -operator+( const FP& a, const cxsmpl& b ) -{ - return cxsmpl( a, 0 ) + b; -} + template + inline __host__ __device__ constexpr cxsmpl + operator+( const FP& a, const cxsmpl& b ) + { + return cxsmpl( a, 0 ) + b; + } -template -inline __host__ __device__ constexpr cxsmpl -operator-( const cxsmpl& a, const cxsmpl& b ) -{ - return cxsmpl( a.real() - b.real(), a.imag() - b.imag() ); -} + template + inline __host__ __device__ constexpr cxsmpl + operator-( const cxsmpl& a, const cxsmpl& b ) + { + return cxsmpl( a.real() - b.real(), a.imag() - b.imag() ); + } -template -inline __host__ __device__ constexpr cxsmpl -operator-( const FP& a, const cxsmpl& b ) -{ - return cxsmpl( a, 0 ) - b; -} + template + inline __host__ __device__ constexpr cxsmpl + operator-( const FP& a, const cxsmpl& b ) + { + return cxsmpl( a, 0 ) - b; + } -template -inline __host__ __device__ constexpr cxsmpl -operator*( const cxsmpl& a, const cxsmpl& b ) -{ - return cxsmpl( a.real() * b.real() - a.imag() * b.imag(), a.imag() * b.real() + a.real() * b.imag() ); -} + template + inline __host__ __device__ constexpr cxsmpl + operator*( const cxsmpl& a, const cxsmpl& b ) + { + return cxsmpl( a.real() * b.real() - a.imag() * b.imag(), a.imag() * b.real() + a.real() * b.imag() ); + } -template -inline __host__ __device__ constexpr cxsmpl -operator*( const FP& a, const cxsmpl& b ) -{ - return cxsmpl( a, 0 ) * b; -} + template + inline __host__ __device__ constexpr cxsmpl + operator*( const FP& a, const cxsmpl& b ) + { + return cxsmpl( a, 0 ) * b; + } -inline __host__ __device__ constexpr cxsmpl -operator*( const double& a, const cxsmpl& b ) -{ - return cxsmpl( a, 0 ) * b; -} + inline __host__ __device__ constexpr cxsmpl + operator*( const double& a, const cxsmpl& b ) + { + return cxsmpl( a, 0 ) * b; + } -template -inline __host__ __device__ constexpr cxsmpl -operator/( const cxsmpl& a, const cxsmpl& b ) -{ - FP bnorm = b.real() * b.real() + b.imag() * b.imag(); - return cxsmpl( ( a.real() * b.real() + a.imag() * b.imag() ) / bnorm, - ( a.imag() * b.real() - a.real() * b.imag() ) / bnorm ); -} + template + inline __host__ __device__ constexpr cxsmpl + operator/( const cxsmpl& a, const cxsmpl& b ) + { + FP bnorm = b.real() * b.real() + b.imag() * b.imag(); + return cxsmpl( ( a.real() * b.real() + a.imag() * b.imag() ) / bnorm, + ( a.imag() * b.real() - a.real() * b.imag() ) / bnorm ); + } -template -inline __host__ __device__ constexpr cxsmpl -operator/( const FP& a, const cxsmpl& b ) -{ - return cxsmpl( a, 0 ) / b; -} + template + inline __host__ __device__ constexpr cxsmpl + operator/( const FP& a, const cxsmpl& b ) + { + return cxsmpl( a, 0 ) / b; + } -template -inline __host__ __device__ constexpr cxsmpl -operator+( const cxsmpl& a, const FP& b ) -{ - return a + cxsmpl( b, 0 ); -} + template + inline __host__ __device__ constexpr cxsmpl + operator+( const cxsmpl& a, const FP& b ) + { + return a + cxsmpl( b, 0 ); + } -template -inline __host__ __device__ constexpr cxsmpl -operator-( const cxsmpl& a, const FP& b ) -{ - return a - cxsmpl( b, 0 ); -} + template + inline __host__ __device__ constexpr cxsmpl + operator-( const cxsmpl& a, const FP& b ) + { + return a - cxsmpl( b, 0 ); + } -template -inline __host__ __device__ constexpr cxsmpl -operator*( const cxsmpl& a, const FP& b ) -{ - return a * cxsmpl( b, 0 ); -} + template + inline __host__ __device__ constexpr cxsmpl + operator*( const cxsmpl& a, const FP& b ) + { + return a * cxsmpl( b, 0 ); + } -template -inline __host__ __device__ constexpr cxsmpl -operator/( const cxsmpl& a, const FP& b ) -{ - return a / cxsmpl( b, 0 ); + template + inline __host__ __device__ constexpr cxsmpl + operator/( const cxsmpl& a, const FP& b ) + { + return a / cxsmpl( b, 0 ); + } } //========================================================================== // COMPLEX TYPES: (PLATFORM-SPECIFIC) TYPEDEFS //========================================================================== -namespace mgOnGpu +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { - // --- Type definitions (complex type: cxtype) #ifdef __CUDACC__ // cuda #if defined MGONGPU_CUCXTYPE_THRUST @@ -221,390 +236,402 @@ namespace mgOnGpu #endif #endif - // The number of floating point types in a complex type (real, imaginary) - constexpr int nx2 = 2; - // SANITY CHECK: memory access may be based on casts of fptype[2] to cxtype (e.g. for wavefunctions) - static_assert( sizeof( cxtype ) == nx2 * sizeof( fptype ), "sizeof(cxtype) is not 2*sizeof(fptype)" ); + static_assert( sizeof( cxtype ) == mgOnGpu::nx2 * sizeof( fptype ), "sizeof(cxtype) is not 2*sizeof(fptype)" ); } -// Expose typedefs and operators outside the namespace -using mgOnGpu::cxtype; +// DANGEROUS! this was mixing different cxtype definitions for CPU and GPU builds (see #318 and #725) +// DO NOT expose typedefs and operators outside the namespace +//using mgOnGpu::cxtype; //========================================================================== // COMPLEX TYPES: (PLATFORM-SPECIFIC) FUNCTIONS AND OPERATORS //========================================================================== +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif +{ #if defined MGONGPU_CUCXTYPE_CXSMPL or defined MGONGPU_CPPCXTYPE_CXSMPL -//------------------------------ -// CUDA or C++ - using cxsmpl -//------------------------------ + //------------------------------ + // CUDA or C++ - using cxsmpl + //------------------------------ -inline __host__ __device__ cxtype -cxmake( const fptype& r, const fptype& i ) -{ - return cxtype( r, i ); // cxsmpl constructor -} + inline __host__ __device__ cxtype + cxmake( const fptype& r, const fptype& i ) + { + return cxtype( r, i ); // cxsmpl constructor + } -inline __host__ __device__ fptype -cxreal( const cxtype& c ) -{ - return c.real(); // cxsmpl::real() -} + inline __host__ __device__ fptype + cxreal( const cxtype& c ) + { + return c.real(); // cxsmpl::real() + } -inline __host__ __device__ fptype -cximag( const cxtype& c ) -{ - return c.imag(); // cxsmpl::imag() -} + inline __host__ __device__ fptype + cximag( const cxtype& c ) + { + return c.imag(); // cxsmpl::imag() + } -inline __host__ __device__ cxtype -cxconj( const cxtype& c ) -{ - return conj( c ); // conj( cxsmpl ) -} + inline __host__ __device__ cxtype + cxconj( const cxtype& c ) + { + return conj( c ); // conj( cxsmpl ) + } -inline __host__ cxtype // NOT __device__ -cxmake( const std::complex& c ) // std::complex to cxsmpl (float-to-float or float-to-double) -{ - return cxmake( c.real(), c.imag() ); -} + inline __host__ cxtype // NOT __device__ + cxmake( const std::complex& c ) // std::complex to cxsmpl (float-to-float or float-to-double) + { + return cxmake( c.real(), c.imag() ); + } -inline __host__ cxtype // NOT __device__ -cxmake( const std::complex& c ) // std::complex to cxsmpl (double-to-float or double-to-double) -{ - return cxmake( c.real(), c.imag() ); -} + inline __host__ cxtype // NOT __device__ + cxmake( const std::complex& c ) // std::complex to cxsmpl (double-to-float or double-to-double) + { + return cxmake( c.real(), c.imag() ); + } #endif // #if defined MGONGPU_CUCXTYPE_CXSMPL or defined MGONGPU_CPPCXTYPE_CXSMPL -//========================================================================== + //========================================================================== #if defined __CUDACC__ and defined MGONGPU_CUCXTYPE_THRUST // cuda + thrust -//------------------------------ -// CUDA - using thrust::complex -//------------------------------ + //------------------------------ + // CUDA - using thrust::complex + //------------------------------ -inline __host__ __device__ cxtype -cxmake( const fptype& r, const fptype& i ) -{ - return cxtype( r, i ); // thrust::complex constructor -} + inline __host__ __device__ cxtype + cxmake( const fptype& r, const fptype& i ) + { + return cxtype( r, i ); // thrust::complex constructor + } -inline __host__ __device__ fptype -cxreal( const cxtype& c ) -{ - return c.real(); // thrust::complex::real() -} + inline __host__ __device__ fptype + cxreal( const cxtype& c ) + { + return c.real(); // thrust::complex::real() + } -inline __host__ __device__ fptype -cximag( const cxtype& c ) -{ - return c.imag(); // thrust::complex::imag() -} + inline __host__ __device__ fptype + cximag( const cxtype& c ) + { + return c.imag(); // thrust::complex::imag() + } -inline __host__ __device__ cxtype -cxconj( const cxtype& c ) -{ - return conj( c ); // conj( thrust::complex ) -} + inline __host__ __device__ cxtype + cxconj( const cxtype& c ) + { + return conj( c ); // conj( thrust::complex ) + } -inline __host__ __device__ const cxtype& -cxmake( const cxtype& c ) -{ - return c; -} + inline __host__ __device__ const cxtype& + cxmake( const cxtype& c ) + { + return c; + } #endif // #if defined __CUDACC__ and defined MGONGPU_CUCXTYPE_THRUST -//========================================================================== + //========================================================================== #if defined __CUDACC__ and defined MGONGPU_CUCXTYPE_CUCOMPLEX // cuda + cucomplex -//------------------------------ -// CUDA - using cuComplex -//------------------------------ + //------------------------------ + // CUDA - using cuComplex + //------------------------------ #if defined MGONGPU_FPTYPE_DOUBLE // cuda + cucomplex + double -//+++++++++++++++++++++++++ -// cuDoubleComplex ONLY -//+++++++++++++++++++++++++ + //+++++++++++++++++++++++++ + // cuDoubleComplex ONLY + //+++++++++++++++++++++++++ -inline __host__ __device__ cxtype -cxmake( const fptype& r, const fptype& i ) -{ - return make_cuDoubleComplex( r, i ); -} + inline __host__ __device__ cxtype + cxmake( const fptype& r, const fptype& i ) + { + return make_cuDoubleComplex( r, i ); + } -inline __host__ __device__ fptype -cxreal( const cxtype& c ) -{ - return cuCreal( c ); // returns by value -} + inline __host__ __device__ fptype + cxreal( const cxtype& c ) + { + return cuCreal( c ); // returns by value + } -inline __host__ __device__ fptype -cximag( const cxtype& c ) -{ - return cuCimag( c ); // returns by value -} + inline __host__ __device__ fptype + cximag( const cxtype& c ) + { + return cuCimag( c ); // returns by value + } -inline __host__ __device__ cxtype -operator+( const cxtype& a, const cxtype& b ) -{ - return cuCadd( a, b ); -} + inline __host__ __device__ cxtype + operator+( const cxtype& a, const cxtype& b ) + { + return cuCadd( a, b ); + } -inline __host__ __device__ cxtype& -operator+=( cxtype& a, const cxtype& b ) -{ - a = cuCadd( a, b ); - return a; -} + inline __host__ __device__ cxtype& + operator+=( cxtype& a, const cxtype& b ) + { + a = cuCadd( a, b ); + return a; + } -inline __host__ __device__ cxtype -operator-( const cxtype& a, const cxtype& b ) -{ - return cuCsub( a, b ); -} + inline __host__ __device__ cxtype + operator-( const cxtype& a, const cxtype& b ) + { + return cuCsub( a, b ); + } -inline __host__ __device__ cxtype& -operator-=( cxtype& a, const cxtype& b ) -{ - a = cuCsub( a, b ); - return a; -} + inline __host__ __device__ cxtype& + operator-=( cxtype& a, const cxtype& b ) + { + a = cuCsub( a, b ); + return a; + } -inline __host__ __device__ cxtype -operator*( const cxtype& a, const cxtype& b ) -{ - return cuCmul( a, b ); -} + inline __host__ __device__ cxtype + operator*( const cxtype& a, const cxtype& b ) + { + return cuCmul( a, b ); + } -inline __host__ __device__ cxtype -operator/( const cxtype& a, const cxtype& b ) -{ - return cuCdiv( a, b ); -} + inline __host__ __device__ cxtype + operator/( const cxtype& a, const cxtype& b ) + { + return cuCdiv( a, b ); + } #elif defined MGONGPU_FPTYPE_FLOAT // cuda + cucomplex + float -//+++++++++++++++++++++++++ -// cuFloatComplex ONLY -//+++++++++++++++++++++++++ + //+++++++++++++++++++++++++ + // cuFloatComplex ONLY + //+++++++++++++++++++++++++ -inline __host__ __device__ cxtype -cxmake( const fptype& r, const fptype& i ) -{ - return make_cuFloatComplex( r, i ); -} + inline __host__ __device__ cxtype + cxmake( const fptype& r, const fptype& i ) + { + return make_cuFloatComplex( r, i ); + } -inline __host__ __device__ fptype -cxreal( const cxtype& c ) -{ - return cuCrealf( c ); // returns by value -} + inline __host__ __device__ fptype + cxreal( const cxtype& c ) + { + return cuCrealf( c ); // returns by value + } -inline __host__ __device__ fptype -cximag( const cxtype& c ) -{ - return cuCimagf( c ); // returns by value -} + inline __host__ __device__ fptype + cximag( const cxtype& c ) + { + return cuCimagf( c ); // returns by value + } -inline __host__ __device__ cxtype -operator+( const cxtype& a, const cxtype& b ) -{ - return cuCaddf( a, b ); -} + inline __host__ __device__ cxtype + operator+( const cxtype& a, const cxtype& b ) + { + return cuCaddf( a, b ); + } -inline __host__ __device__ cxtype& -operator+=( cxtype& a, const cxtype& b ) -{ - a = cuCaddf( a, b ); - return a; -} + inline __host__ __device__ cxtype& + operator+=( cxtype& a, const cxtype& b ) + { + a = cuCaddf( a, b ); + return a; + } -inline __host__ __device__ cxtype -operator-( const cxtype& a, const cxtype& b ) -{ - return cuCsubf( a, b ); -} + inline __host__ __device__ cxtype + operator-( const cxtype& a, const cxtype& b ) + { + return cuCsubf( a, b ); + } -inline __host__ __device__ cxtype& -operator-=( cxtype& a, const cxtype& b ) -{ - a = cuCsubf( a, b ); - return a; -} + inline __host__ __device__ cxtype& + operator-=( cxtype& a, const cxtype& b ) + { + a = cuCsubf( a, b ); + return a; + } -inline __host__ __device__ cxtype -operator*( const cxtype& a, const cxtype& b ) -{ - return cuCmulf( a, b ); -} + inline __host__ __device__ cxtype + operator*( const cxtype& a, const cxtype& b ) + { + return cuCmulf( a, b ); + } -inline __host__ __device__ cxtype -operator/( const cxtype& a, const cxtype& b ) -{ - return cuCdivf( a, b ); -} + inline __host__ __device__ cxtype + operator/( const cxtype& a, const cxtype& b ) + { + return cuCdivf( a, b ); + } -inline __host__ cxtype // NOT __device__ -cxmake( const std::complex& c ) // std::complex to cucomplex (cast double-to-float) -{ - return cxmake( (fptype)c.real(), (fptype)c.imag() ); -} + inline __host__ cxtype // NOT __device__ + cxmake( const std::complex& c ) // std::complex to cucomplex (cast double-to-float) + { + return cxmake( (fptype)c.real(), (fptype)c.imag() ); + } #endif -//+++++++++++++++++++++++++ -// cuDoubleComplex OR -// cuFloatComplex -//+++++++++++++++++++++++++ + //+++++++++++++++++++++++++ + // cuDoubleComplex OR + // cuFloatComplex + //+++++++++++++++++++++++++ -inline __host__ __device__ cxtype -operator+( const cxtype a ) -{ - return a; -} + inline __host__ __device__ cxtype + operator+( const cxtype a ) + { + return a; + } -inline __host__ __device__ cxtype -operator-( const cxtype& a ) -{ - return cxmake( -cxreal( a ), -cximag( a ) ); -} + inline __host__ __device__ cxtype + operator-( const cxtype& a ) + { + return cxmake( -cxreal( a ), -cximag( a ) ); + } -inline __host__ __device__ cxtype -operator+( const fptype& a, const cxtype& b ) -{ - return cxmake( a, 0 ) + b; -} + inline __host__ __device__ cxtype + operator+( const fptype& a, const cxtype& b ) + { + return cxmake( a, 0 ) + b; + } -inline __host__ __device__ cxtype -operator-( const fptype& a, const cxtype& b ) -{ - return cxmake( a, 0 ) - b; -} + inline __host__ __device__ cxtype + operator-( const fptype& a, const cxtype& b ) + { + return cxmake( a, 0 ) - b; + } -inline __host__ __device__ cxtype -operator*( const fptype& a, const cxtype& b ) -{ - return cxmake( a, 0 ) * b; -} + inline __host__ __device__ cxtype + operator*( const fptype& a, const cxtype& b ) + { + return cxmake( a, 0 ) * b; + } -inline __host__ __device__ cxtype -operator/( const fptype& a, const cxtype& b ) -{ - return cxmake( a, 0 ) / b; -} + inline __host__ __device__ cxtype + operator/( const fptype& a, const cxtype& b ) + { + return cxmake( a, 0 ) / b; + } -inline __host__ __device__ cxtype -operator+( const cxtype& a, const fptype& b ) -{ - return a + cxmake( b, 0 ); -} + inline __host__ __device__ cxtype + operator+( const cxtype& a, const fptype& b ) + { + return a + cxmake( b, 0 ); + } -inline __host__ __device__ cxtype -operator-( const cxtype& a, const fptype& b ) -{ - return a - cxmake( b, 0 ); -} + inline __host__ __device__ cxtype + operator-( const cxtype& a, const fptype& b ) + { + return a - cxmake( b, 0 ); + } -inline __host__ __device__ cxtype -operator*( const cxtype& a, const fptype& b ) -{ - return a * cxmake( b, 0 ); -} + inline __host__ __device__ cxtype + operator*( const cxtype& a, const fptype& b ) + { + return a * cxmake( b, 0 ); + } -inline __host__ __device__ cxtype -operator/( const cxtype& a, const fptype& b ) -{ - return a / cxmake( b, 0 ); -} + inline __host__ __device__ cxtype + operator/( const cxtype& a, const fptype& b ) + { + return a / cxmake( b, 0 ); + } -inline __host__ __device__ cxtype -cxconj( const cxtype& c ) -{ - return cxmake( cxreal( c ), -cximag( c ) ); -} + inline __host__ __device__ cxtype + cxconj( const cxtype& c ) + { + return cxmake( cxreal( c ), -cximag( c ) ); + } -inline __host__ cxtype // NOT __device__ -cxmake( const std::complex& c ) // std::complex to cucomplex (float-to-float or double-to-double) -{ - return cxmake( c.real(), c.imag() ); -} + inline __host__ cxtype // NOT __device__ + cxmake( const std::complex& c ) // std::complex to cucomplex (float-to-float or double-to-double) + { + return cxmake( c.real(), c.imag() ); + } #endif // #if defined __CUDACC__ and defined MGONGPU_CUCXTYPE_CUCOMPLEX -//========================================================================== + //========================================================================== #if not defined __CUDACC__ and defined MGONGPU_CPPCXTYPE_STDCOMPLEX // c++ + stdcomplex -//------------------------------ -// C++ - using std::complex -//------------------------------ + //------------------------------ + // C++ - using std::complex + //------------------------------ -inline cxtype -cxmake( const fptype& r, const fptype& i ) -{ - return cxtype( r, i ); // std::complex constructor -} + inline cxtype + cxmake( const fptype& r, const fptype& i ) + { + return cxtype( r, i ); // std::complex constructor + } -inline fptype -cxreal( const cxtype& c ) -{ - return c.real(); // std::complex::real() -} + inline fptype + cxreal( const cxtype& c ) + { + return c.real(); // std::complex::real() + } -inline fptype -cximag( const cxtype& c ) -{ - return c.imag(); // std::complex::imag() -} + inline fptype + cximag( const cxtype& c ) + { + return c.imag(); // std::complex::imag() + } -inline cxtype -cxconj( const cxtype& c ) -{ - return conj( c ); // conj( std::complex ) -} + inline cxtype + cxconj( const cxtype& c ) + { + return conj( c ); // conj( std::complex ) + } -inline const cxtype& -cxmake( const cxtype& c ) // std::complex to std::complex (float-to-float or double-to-double) -{ - return c; -} + inline const cxtype& + cxmake( const cxtype& c ) // std::complex to std::complex (float-to-float or double-to-double) + { + return c; + } #if defined MGONGPU_FPTYPE_FLOAT -inline cxtype -cxmake( const std::complex& c ) // std::complex to std::complex (cast double-to-float) -{ - return cxmake( (fptype)c.real(), (fptype)c.imag() ); -} + inline cxtype + cxmake( const std::complex& c ) // std::complex to std::complex (cast double-to-float) + { + return cxmake( (fptype)c.real(), (fptype)c.imag() ); + } #endif #endif // #if not defined __CUDACC__ and defined MGONGPU_CPPCXTYPE_STDCOMPLEX -//========================================================================== + //========================================================================== -inline __host__ __device__ const cxtype -cxmake( const cxsmpl& c ) // cxsmpl to cxtype (float-to-float or float-to-double) -{ - return cxmake( c.real(), c.imag() ); -} + inline __host__ __device__ const cxtype + cxmake( const cxsmpl& c ) // cxsmpl to cxtype (float-to-float or float-to-double) + { + return cxmake( c.real(), c.imag() ); + } -inline __host__ __device__ const cxtype -cxmake( const cxsmpl& c ) // cxsmpl to cxtype (double-to-float or double-to-double) -{ - return cxmake( c.real(), c.imag() ); -} + inline __host__ __device__ const cxtype + cxmake( const cxsmpl& c ) // cxsmpl to cxtype (double-to-float or double-to-double) + { + return cxmake( c.real(), c.imag() ); + } + +} // end namespace mg5amcGpu/mg5amcCpu //========================================================================== // COMPLEX TYPES: WRAPPER OVER RI FLOATING POINT PAIR (cxtype_ref) //========================================================================== -namespace mgOnGpu /* clang-format off */ +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { // The cxtype_ref class (a non-const reference to two fp variables) was originally designed for cxtype_v::operator[] // It used to be included in the code only when MGONGPU_HAS_CPPCXTYPEV_BRK (originally MGONGPU_HAS_CPPCXTYPE_REF) is defined @@ -615,23 +642,30 @@ namespace mgOnGpu /* clang-format off */ cxtype_ref() = delete; cxtype_ref( const cxtype_ref& ) = delete; cxtype_ref( cxtype_ref&& ) = default; // copy refs - __host__ __device__ cxtype_ref( fptype& r, fptype& i ) : m_preal( &r ), m_pimag( &i ) {} // copy refs + __host__ __device__ cxtype_ref( fptype& r, fptype& i ) + : m_preal( &r ), m_pimag( &i ) {} // copy refs cxtype_ref& operator=( const cxtype_ref& ) = delete; //__host__ __device__ cxtype_ref& operator=( cxtype_ref&& c ) {...} // REMOVED! Should copy refs or copy values? No longer needed in cxternary - __host__ __device__ cxtype_ref& operator=( const cxtype& c ) { *m_preal = cxreal( c ); *m_pimag = cximag( c ); return *this; } // copy values + __host__ __device__ cxtype_ref& operator=( const cxtype& c ) + { + *m_preal = cxreal( c ); + *m_pimag = cximag( c ); + return *this; + } // copy values __host__ __device__ operator cxtype() const { return cxmake( *m_preal, *m_pimag ); } private: fptype *m_preal, *m_pimag; // RI }; -} /* clang-format on */ -// Printout to stream for user defined types -inline __host__ __device__ std::ostream& -operator<<( std::ostream& out, const mgOnGpu::cxtype_ref& c ) -{ - out << (cxtype)c; - return out; -} + // Printout to stream for user defined types + inline __host__ __device__ std::ostream& + operator<<( std::ostream& out, const cxtype_ref& c ) + { + out << (cxtype)c; + return out; + } + +} // end namespace mg5amcGpu/mg5amcCpu //========================================================================== diff --git a/epochX/cudacpp/gq_ttq.mad/src/mgOnGpuFptypes.h b/epochX/cudacpp/gq_ttq.mad/src/mgOnGpuFptypes.h index a1cde16a67..905c97d700 100644 --- a/epochX/cudacpp/gq_ttq.mad/src/mgOnGpuFptypes.h +++ b/epochX/cudacpp/gq_ttq.mad/src/mgOnGpuFptypes.h @@ -11,82 +11,91 @@ #include #include -//========================================================================== - -#ifdef __CUDACC__ // cuda - -//------------------------------ -// Floating point types - Cuda -//------------------------------ - -/* -inline __host__ __device__ fptype -fpmax( const fptype& a, const fptype& b ) -{ - return max( a, b ); -} - -inline __host__ __device__ fptype -fpmin( const fptype& a, const fptype& b ) -{ - return min( a, b ); -} -*/ - -inline __host__ __device__ const fptype& -fpmax( const fptype& a, const fptype& b ) +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { - return ( ( b < a ) ? a : b ); -} + //========================================================================== -inline __host__ __device__ const fptype& -fpmin( const fptype& a, const fptype& b ) -{ - return ( ( a < b ) ? a : b ); -} +#ifdef __CUDACC__ // cuda -inline __host__ __device__ fptype -fpsqrt( const fptype& f ) -{ + //------------------------------ + // Floating point types - Cuda + //------------------------------ + + /* + inline __host__ __device__ fptype + fpmax( const fptype& a, const fptype& b ) + { + return max( a, b ); + } + + inline __host__ __device__ fptype + fpmin( const fptype& a, const fptype& b ) + { + return min( a, b ); + } + */ + + inline __host__ __device__ const fptype& + fpmax( const fptype& a, const fptype& b ) + { + return ( ( b < a ) ? a : b ); + } + + inline __host__ __device__ const fptype& + fpmin( const fptype& a, const fptype& b ) + { + return ( ( a < b ) ? a : b ); + } + + inline __host__ __device__ fptype + fpsqrt( const fptype& f ) + { #if defined MGONGPU_FPTYPE_FLOAT - // See https://docs.nvidia.com/cuda/cuda-math-api/group__CUDA__MATH__SINGLE.html - return sqrtf( f ); + // See https://docs.nvidia.com/cuda/cuda-math-api/group__CUDA__MATH__SINGLE.html + return sqrtf( f ); #else - // See https://docs.nvidia.com/cuda/cuda-math-api/group__CUDA__MATH__DOUBLE.html - return sqrt( f ); + // See https://docs.nvidia.com/cuda/cuda-math-api/group__CUDA__MATH__DOUBLE.html + return sqrt( f ); #endif -} + } #endif // #ifdef __CUDACC__ -//========================================================================== + //========================================================================== #ifndef __CUDACC__ -//------------------------------ -// Floating point types - C++ -//------------------------------ + //------------------------------ + // Floating point types - C++ + //------------------------------ -inline const fptype& -fpmax( const fptype& a, const fptype& b ) -{ - return std::max( a, b ); -} + inline const fptype& + fpmax( const fptype& a, const fptype& b ) + { + return std::max( a, b ); + } -inline const fptype& -fpmin( const fptype& a, const fptype& b ) -{ - return std::min( a, b ); -} + inline const fptype& + fpmin( const fptype& a, const fptype& b ) + { + return std::min( a, b ); + } -inline fptype -fpsqrt( const fptype& f ) -{ - return std::sqrt( f ); -} + inline fptype + fpsqrt( const fptype& f ) + { + return std::sqrt( f ); + } #endif // #ifndef __CUDACC__ -//========================================================================== + //========================================================================== + +} // end namespace mg5amcGpu/mg5amcCpu #endif // MGONGPUFPTYPES_H diff --git a/epochX/cudacpp/gq_ttq.mad/src/mgOnGpuVectors.h b/epochX/cudacpp/gq_ttq.mad/src/mgOnGpuVectors.h index 9d3e82b1e3..0d3892d026 100644 --- a/epochX/cudacpp/gq_ttq.mad/src/mgOnGpuVectors.h +++ b/epochX/cudacpp/gq_ttq.mad/src/mgOnGpuVectors.h @@ -31,7 +31,12 @@ //#undef MGONGPU_HAS_CPPCXTYPEV_BRK // gcc test (very slightly slower? issue #172) #endif -namespace mgOnGpu /* clang-format off */ +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { #ifdef MGONGPU_CPPSIMD @@ -72,22 +77,40 @@ namespace mgOnGpu /* clang-format off */ public: // Array initialization: zero-out as "{0}" (C and C++) or as "{}" (C++ only) // See https://en.cppreference.com/w/c/language/array_initialization#Notes - cxtype_v() : m_real{ 0 }, m_imag{ 0 } {} // RRRR=0000 IIII=0000 + cxtype_v() + : m_real{ 0 }, m_imag{ 0 } {} // RRRR=0000 IIII=0000 cxtype_v( const cxtype_v& ) = default; cxtype_v( cxtype_v&& ) = default; - cxtype_v( const fptype_v& r, const fptype_v& i ) : m_real( r ), m_imag( i ) {} - cxtype_v( const fptype_v& r ) : m_real( r ), m_imag{ 0 } {} // IIII=0000 + cxtype_v( const fptype_v& r, const fptype_v& i ) + : m_real( r ), m_imag( i ) {} + cxtype_v( const fptype_v& r ) + : m_real( r ), m_imag{ 0 } {} // IIII=0000 + cxtype_v( const fptype& r ) + : m_real( fptype_v{} + r ), m_imag{ 0 } {} // IIII=0000 cxtype_v& operator=( const cxtype_v& ) = default; cxtype_v& operator=( cxtype_v&& ) = default; - cxtype_v& operator+=( const cxtype_v& c ) { m_real += c.real(); m_imag += c.imag(); return *this; } - cxtype_v& operator-=( const cxtype_v& c ) { m_real -= c.real(); m_imag -= c.imag(); return *this; } + cxtype_v& operator+=( const cxtype_v& c ) + { + m_real += c.real(); + m_imag += c.imag(); + return *this; + } + cxtype_v& operator-=( const cxtype_v& c ) + { + m_real -= c.real(); + m_imag -= c.imag(); + return *this; + } #ifdef MGONGPU_HAS_CPPCXTYPEV_BRK // NB: THIS IS THE FUNDAMENTAL DIFFERENCE BETWEEN MGONGPU_HAS_CPPCXTYPEV_BRK DEFINED AND NOT DEFINED // NB: the alternative "clang" implementation is simpler: it simply does not have any bracket operator[] // NB: ** do NOT implement operator[] to return a value: it does not fail the build (why?) and gives unexpected results! ** cxtype_ref operator[]( size_t i ) const { return cxtype_ref( m_real[i], m_imag[i] ); } #endif - const fptype_v& real() const { return m_real; } + const fptype_v& real() const + { + return m_real; + } const fptype_v& imag() const { return m_imag; } private: fptype_v m_real, m_imag; // RRRRIIII @@ -98,7 +121,7 @@ namespace mgOnGpu /* clang-format off */ #if defined MGONGPU_FPTYPE_DOUBLE typedef long int bool_v __attribute__( ( ext_vector_type( neppV ) ) ); // bbbb #elif defined MGONGPU_FPTYPE_FLOAT - typedef int bool_v __attribute__( ( ext_vector_type( neppV ) ) ); // bbbb + typedef int bool_v __attribute__( ( ext_vector_type( neppV ) ) ); // bbbb #endif #else // gcc #if defined MGONGPU_FPTYPE_DOUBLE @@ -113,532 +136,551 @@ namespace mgOnGpu /* clang-format off */ const int neppV = 1; #endif // #ifdef MGONGPU_CPPSIMD - -} /* clang-format on */ +} //-------------------------------------------------------------------------- -// Expose typedefs outside the namespace -using mgOnGpu::neppV; -#ifdef MGONGPU_CPPSIMD -using mgOnGpu::fptype_v; -using mgOnGpu::fptype2_v; -using mgOnGpu::cxtype_v; -using mgOnGpu::bool_v; -#endif +// DANGEROUS! this was mixing different cxtype definitions for CPU and GPU builds (see #318 and #725) +// DO NOT expose typedefs outside the namespace +//using mgOnGpu::neppV; +//#ifdef MGONGPU_CPPSIMD +//using mgOnGpu::fptype_v; +//using mgOnGpu::fptype2_v; +//using mgOnGpu::cxtype_v; +//using mgOnGpu::bool_v; +//#endif -//-------------------------------------------------------------------------- +//========================================================================== +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif +{ #ifndef __CUDACC__ -// Printout to stream for user defined types + // Printout to stream for user defined types #ifndef MGONGPU_CPPCXTYPE_CXSMPL // operator<< for cxsmpl has already been defined! -inline std::ostream& -operator<<( std::ostream& out, const cxtype& c ) -{ - out << "[" << cxreal( c ) << "," << cximag( c ) << "]"; - //out << cxreal(c) << "+i" << cximag(c); - return out; -} + inline std::ostream& + operator<<( std::ostream& out, const cxtype& c ) + { + out << "[" << cxreal( c ) << "," << cximag( c ) << "]"; + //out << cxreal(c) << "+i" << cximag(c); + return out; + } #endif -/* + /* #ifdef MGONGPU_CPPSIMD -inline std::ostream& -operator<<( std::ostream& out, const bool_v& v ) -{ - out << "{ " << v[0]; - for ( int i=1; i t t~ q INFO: load particles INFO: load vertices -DEBUG: model prefixing takes 0.0045931339263916016  +DEBUG: model prefixing takes 0.004664897918701172  INFO: Restrict model sm with file models/sm/restrict_default.dat . DEBUG: Simplifying conditional expressions  DEBUG: remove interactions: u s w+ at order: QED=1  @@ -169,7 +169,7 @@ INFO: Crossed process found for g u~ > t t~ u~, reuse diagrams. INFO: Crossed process found for g c~ > t t~ c~, reuse diagrams. INFO: Crossed process found for g d~ > t t~ d~, reuse diagrams. INFO: Crossed process found for g s~ > t t~ s~, reuse diagrams. -8 processes with 40 diagrams generated in 0.070 s +8 processes with 40 diagrams generated in 0.072 s Total: 8 processes with 40 diagrams output standalone_cudacpp CODEGEN_cudacpp_gq_ttq Load PLUGIN.CUDACPP_SA_OUTPUT @@ -193,70 +193,70 @@ INFO: Combined process g s~ > t t~ s~ WEIGHTED<=3 @1 with process g u~ > t t~ u~ DEBUG: type(subproc_group)= [output.py at line 187]  DEBUG: type(fortran_model)= [output.py at line 188]  DEBUG: type(me)= me=0 [output.py at line 189]  -DEBUG: Entering PLUGIN_OneProcessExporter.__init__ [model_handling.py at line 1028]  -DEBUG: proc_id =  0 [model_handling.py at line 1034]  +DEBUG: Entering PLUGIN_OneProcessExporter.__init__ [model_handling.py at line 1039]  +DEBUG: proc_id =  0 [model_handling.py at line 1045]  INFO: Creating files in directory /data/avalassi/GPU2023/MG5aMC/ghav-mg5amcnlo/CODEGEN_cudacpp_gq_ttq/SubProcesses/P1_Sigma_sm_gu_ttxu -DEBUG: Entering PLUGIN_OneProcessExporter.generate_process_files [model_handling.py at line 1286]  -DEBUG: self.include_multi_channel is not yet defined: this is standalone_cudacpp mode [model_handling.py at line 1290]  +DEBUG: Entering PLUGIN_OneProcessExporter.generate_process_files [model_handling.py at line 1297]  +DEBUG: self.include_multi_channel is not yet defined: this is standalone_cudacpp mode [model_handling.py at line 1301]  FileWriter for /data/avalassi/GPU2023/MG5aMC/ghav-mg5amcnlo/CODEGEN_cudacpp_gq_ttq/SubProcesses/P1_Sigma_sm_gu_ttxu/./CPPProcess.h -DEBUG: Entering PLUGIN_OneProcessExporter.write_process_h_file [model_handling.py at line 1442]  +DEBUG: Entering PLUGIN_OneProcessExporter.write_process_h_file [model_handling.py at line 1453]  FileWriter for /data/avalassi/GPU2023/MG5aMC/ghav-mg5amcnlo/CODEGEN_cudacpp_gq_ttq/SubProcesses/P1_Sigma_sm_gu_ttxu/./CPPProcess.cc -DEBUG: Entering PLUGIN_OneProcessExporter.write_process_cc_file [model_handling.py at line 1464]  -DEBUG: Entering PLUGIN_OneProcessExporter.get_sigmaKin_lines [model_handling.py at line 1132]  -DEBUG: self.include_multi_channel =  False [model_handling.py at line 1133]  -DEBUG: self.support_multichannel =  True [model_handling.py at line 1134]  -DEBUG: type(self.helas_call_writer) =  [model_handling.py at line 1151]  -DEBUG: self.support_multichannel, self.include_multi_channel =  True False [model_handling.py at line 1152]  -DEBUG: multi_channel_map =  None [model_handling.py at line 1643]  -DEBUG: diag_to_config =  {} [model_handling.py at line 1698]  -DEBUG: call =  vxxxxx( momenta,m_pars->%s, cHel[ihel][%d],%+d, w_sv[%d], %d ); [model_handling.py at line 1810]  -DEBUG: ('ZERO', 0, -1, 0, 0) [model_handling.py at line 1811]  +DEBUG: Entering PLUGIN_OneProcessExporter.write_process_cc_file [model_handling.py at line 1475]  +DEBUG: Entering PLUGIN_OneProcessExporter.get_sigmaKin_lines [model_handling.py at line 1143]  +DEBUG: self.include_multi_channel =  False [model_handling.py at line 1144]  +DEBUG: self.support_multichannel =  True [model_handling.py at line 1145]  +DEBUG: type(self.helas_call_writer) =  [model_handling.py at line 1162]  +DEBUG: self.support_multichannel, self.include_multi_channel =  True False [model_handling.py at line 1163]  +DEBUG: multi_channel_map =  None [model_handling.py at line 1654]  +DEBUG: diag_to_config =  {} [model_handling.py at line 1709]  +DEBUG: call =  vxxxxx( momenta,m_pars->%s, cHel[ihel][%d],%+d, w_sv[%d], %d ); [model_handling.py at line 1821]  +DEBUG: ('ZERO', 0, -1, 0, 0) [model_handling.py at line 1822]  INFO: Created files CPPProcess.h and CPPProcess.cc in directory /data/avalassi/GPU2023/MG5aMC/ghav-mg5amcnlo/CODEGEN_cudacpp_gq_ttq/SubProcesses/P1_Sigma_sm_gu_ttxu/. -DEBUG: Entering PLUGIN_OneProcessExporter.edit_CMakeLists [model_handling.py at line 1332]  -DEBUG: Entering PLUGIN_OneProcessExporter.edit_check_sa [model_handling.py at line 1341]  -DEBUG: Entering PLUGIN_OneProcessExporter.edit_mgonGPU [model_handling.py at line 1358]  -DEBUG: Entering PLUGIN_OneProcessExporter.edit_processidfile [model_handling.py at line 1378]  -DEBUG: Entering PLUGIN_OneProcessExporter.edit_testxxx [model_handling.py at line 1408]  -DEBUG: Entering PLUGIN_OneProcessExporter.edit_memorybuffers [model_handling.py at line 1419]  -DEBUG: Entering PLUGIN_OneProcessExporter.edit_memoryaccesscouplings [model_handling.py at line 1430]  -DEBUG: 'Test reference file does not exist and will not be copied: ', template_ref =  Test reference file does not exist and will not be copied: /data/avalassi/GPU2023/MG5aMC/ghav-mg5amcnlo/PLUGIN/CUDACPP_SA_OUTPUT/madgraph/iolibs/template_files/../../../test/ref/dump_CPUTest.Sigma_sm_gu_ttxu.txt [model_handling.py at line 1327]  +DEBUG: Entering PLUGIN_OneProcessExporter.edit_CMakeLists [model_handling.py at line 1343]  +DEBUG: Entering PLUGIN_OneProcessExporter.edit_check_sa [model_handling.py at line 1352]  +DEBUG: Entering PLUGIN_OneProcessExporter.edit_mgonGPU [model_handling.py at line 1369]  +DEBUG: Entering PLUGIN_OneProcessExporter.edit_processidfile [model_handling.py at line 1389]  +DEBUG: Entering PLUGIN_OneProcessExporter.edit_testxxx [model_handling.py at line 1419]  +DEBUG: Entering PLUGIN_OneProcessExporter.edit_memorybuffers [model_handling.py at line 1430]  +DEBUG: Entering PLUGIN_OneProcessExporter.edit_memoryaccesscouplings [model_handling.py at line 1441]  +DEBUG: 'Test reference file does not exist and will not be copied: ', template_ref =  Test reference file does not exist and will not be copied: /data/avalassi/GPU2023/MG5aMC/ghav-mg5amcnlo/PLUGIN/CUDACPP_SA_OUTPUT/madgraph/iolibs/template_files/../../../test/ref/dump_CPUTest.Sigma_sm_gu_ttxu.txt [model_handling.py at line 1338]  DEBUG: Entering PLUGIN_ProcessExporter.generate_subprocess_directory (create the directory) [output.py at line 186]  DEBUG: type(subproc_group)= [output.py at line 187]  DEBUG: type(fortran_model)= [output.py at line 188]  DEBUG: type(me)= me=1 [output.py at line 189]  -DEBUG: Entering PLUGIN_OneProcessExporter.__init__ [model_handling.py at line 1028]  -DEBUG: proc_id =  0 [model_handling.py at line 1034]  +DEBUG: Entering PLUGIN_OneProcessExporter.__init__ [model_handling.py at line 1039]  +DEBUG: proc_id =  0 [model_handling.py at line 1045]  INFO: Creating files in directory /data/avalassi/GPU2023/MG5aMC/ghav-mg5amcnlo/CODEGEN_cudacpp_gq_ttq/SubProcesses/P1_Sigma_sm_gux_ttxux -DEBUG: Entering PLUGIN_OneProcessExporter.generate_process_files [model_handling.py at line 1286]  -DEBUG: self.include_multi_channel is not yet defined: this is standalone_cudacpp mode [model_handling.py at line 1290]  +DEBUG: Entering PLUGIN_OneProcessExporter.generate_process_files [model_handling.py at line 1297]  +DEBUG: self.include_multi_channel is not yet defined: this is standalone_cudacpp mode [model_handling.py at line 1301]  FileWriter for /data/avalassi/GPU2023/MG5aMC/ghav-mg5amcnlo/CODEGEN_cudacpp_gq_ttq/SubProcesses/P1_Sigma_sm_gux_ttxux/./CPPProcess.h -DEBUG: Entering PLUGIN_OneProcessExporter.write_process_h_file [model_handling.py at line 1442]  +DEBUG: Entering PLUGIN_OneProcessExporter.write_process_h_file [model_handling.py at line 1453]  FileWriter for /data/avalassi/GPU2023/MG5aMC/ghav-mg5amcnlo/CODEGEN_cudacpp_gq_ttq/SubProcesses/P1_Sigma_sm_gux_ttxux/./CPPProcess.cc -DEBUG: Entering PLUGIN_OneProcessExporter.write_process_cc_file [model_handling.py at line 1464]  -DEBUG: Entering PLUGIN_OneProcessExporter.get_sigmaKin_lines [model_handling.py at line 1132]  -DEBUG: self.include_multi_channel =  False [model_handling.py at line 1133]  -DEBUG: self.support_multichannel =  True [model_handling.py at line 1134]  -DEBUG: type(self.helas_call_writer) =  [model_handling.py at line 1151]  -DEBUG: self.support_multichannel, self.include_multi_channel =  True False [model_handling.py at line 1152]  -DEBUG: multi_channel_map =  None [model_handling.py at line 1643]  -DEBUG: diag_to_config =  {} [model_handling.py at line 1698]  -DEBUG: call =  vxxxxx( momenta,m_pars->%s, cHel[ihel][%d],%+d, w_sv[%d], %d ); [model_handling.py at line 1810]  -DEBUG: ('ZERO', 0, -1, 0, 0) [model_handling.py at line 1811]  +DEBUG: Entering PLUGIN_OneProcessExporter.write_process_cc_file [model_handling.py at line 1475]  +DEBUG: Entering PLUGIN_OneProcessExporter.get_sigmaKin_lines [model_handling.py at line 1143]  +DEBUG: self.include_multi_channel =  False [model_handling.py at line 1144]  +DEBUG: self.support_multichannel =  True [model_handling.py at line 1145]  +DEBUG: type(self.helas_call_writer) =  [model_handling.py at line 1162]  +DEBUG: self.support_multichannel, self.include_multi_channel =  True False [model_handling.py at line 1163]  +DEBUG: multi_channel_map =  None [model_handling.py at line 1654]  +DEBUG: diag_to_config =  {} [model_handling.py at line 1709]  +DEBUG: call =  vxxxxx( momenta,m_pars->%s, cHel[ihel][%d],%+d, w_sv[%d], %d ); [model_handling.py at line 1821]  +DEBUG: ('ZERO', 0, -1, 0, 0) [model_handling.py at line 1822]  INFO: Created files CPPProcess.h and CPPProcess.cc in directory /data/avalassi/GPU2023/MG5aMC/ghav-mg5amcnlo/CODEGEN_cudacpp_gq_ttq/SubProcesses/P1_Sigma_sm_gux_ttxux/. -DEBUG: Entering PLUGIN_OneProcessExporter.edit_CMakeLists [model_handling.py at line 1332]  -DEBUG: Entering PLUGIN_OneProcessExporter.edit_check_sa [model_handling.py at line 1341]  -DEBUG: Entering PLUGIN_OneProcessExporter.edit_mgonGPU [model_handling.py at line 1358]  -DEBUG: Entering PLUGIN_OneProcessExporter.edit_processidfile [model_handling.py at line 1378]  -DEBUG: Entering PLUGIN_OneProcessExporter.edit_testxxx [model_handling.py at line 1408]  -DEBUG: Entering PLUGIN_OneProcessExporter.edit_memorybuffers [model_handling.py at line 1419]  -DEBUG: Entering PLUGIN_OneProcessExporter.edit_memoryaccesscouplings [model_handling.py at line 1430]  -DEBUG: 'Copying test reference file: ', template_ref =  Copying test reference file: /data/avalassi/GPU2023/MG5aMC/ghav-mg5amcnlo/PLUGIN/CUDACPP_SA_OUTPUT/madgraph/iolibs/template_files/../../../test/ref/dump_CPUTest.Sigma_sm_gux_ttxux.txt [model_handling.py at line 1324]  +DEBUG: Entering PLUGIN_OneProcessExporter.edit_CMakeLists [model_handling.py at line 1343]  +DEBUG: Entering PLUGIN_OneProcessExporter.edit_check_sa [model_handling.py at line 1352]  +DEBUG: Entering PLUGIN_OneProcessExporter.edit_mgonGPU [model_handling.py at line 1369]  +DEBUG: Entering PLUGIN_OneProcessExporter.edit_processidfile [model_handling.py at line 1389]  +DEBUG: Entering PLUGIN_OneProcessExporter.edit_testxxx [model_handling.py at line 1419]  +DEBUG: Entering PLUGIN_OneProcessExporter.edit_memorybuffers [model_handling.py at line 1430]  +DEBUG: Entering PLUGIN_OneProcessExporter.edit_memoryaccesscouplings [model_handling.py at line 1441]  +DEBUG: 'Copying test reference file: ', template_ref =  Copying test reference file: /data/avalassi/GPU2023/MG5aMC/ghav-mg5amcnlo/PLUGIN/CUDACPP_SA_OUTPUT/madgraph/iolibs/template_files/../../../test/ref/dump_CPUTest.Sigma_sm_gux_ttxux.txt [model_handling.py at line 1335]  Generated helas calls for 2 subprocesses (10 diagrams) in 0.027 s DEBUG: Entering PLUGIN_ProcessExporter.convert_model (create the model) [output.py at line 194]  ALOHA: aloha starts to compute helicity amplitudes ALOHA: aloha creates FFV1 routines ALOHA: aloha creates VVV1 routines -ALOHA: aloha creates 2 routines in 0.124 s +ALOHA: aloha creates 2 routines in 0.123 s FFV1 FFV1 FFV1 @@ -265,25 +265,13 @@ ALOHA: aloha creates 2 routines in 0.124 s FileWriter for /data/avalassi/GPU2023/MG5aMC/ghav-mg5amcnlo/CODEGEN_cudacpp_gq_ttq/src/./HelAmps_sm.h INFO: Created file HelAmps_sm.h in directory /data/avalassi/GPU2023/MG5aMC/ghav-mg5amcnlo/CODEGEN_cudacpp_gq_ttq/src/. super_write_set_parameters_onlyfixMajorana (hardcoded=False) -DEBUG: 'pardef_lines size =', len(pardef_lines), ', keys size =', len(pardef_lines.keys()) =  pardef_lines size = 48 , keys size = 48 [model_handling.py at line 724]  -DEBUG: 'parset_pars size =', len(parset_pars) =  parset_pars size = 48 [model_handling.py at line 740]  -DEBUG: 'parset_lines size =', len(parset_lines), ', keys size =', len(parset_lines.keys()) =  parset_lines size = 48 , keys size = 48 [model_handling.py at line 741]  +DEBUG: 'pardef_lines size =', len(pardef_lines), ', keys size =', len(pardef_lines.keys()) =  pardef_lines size = 48 , keys size = 48 [model_handling.py at line 729]  super_write_set_parameters_onlyfixMajorana (hardcoded=True) -DEBUG: 'pardef_lines size =', len(pardef_lines), ', keys size =', len(pardef_lines.keys()) =  pardef_lines size = 3 , keys size = 3 [model_handling.py at line 724]  -DEBUG: 'parset_pars size =', len(parset_pars) =  parset_pars size = 3 [model_handling.py at line 740]  -DEBUG: 'parset_lines size =', len(parset_lines), ', keys size =', len(parset_lines.keys()) =  parset_lines size = 3 , keys size = 3 [model_handling.py at line 741]  -DEBUG: 'pardef_lines size =', len(pardef_lines), ', keys size =', len(pardef_lines.keys()) =  pardef_lines size = 2 , keys size = 2 [model_handling.py at line 724]  -DEBUG: 'parset_pars size =', len(parset_pars) =  parset_pars size = 2 [model_handling.py at line 740]  -DEBUG: 'parset_lines size =', len(parset_lines), ', keys size =', len(parset_lines.keys()) =  parset_lines size = 2 , keys size = 2 [model_handling.py at line 741]  -DEBUG: 'pardef_lines size =', len(pardef_lines), ', keys size =', len(pardef_lines.keys()) =  pardef_lines size = 3 , keys size = 3 [model_handling.py at line 724]  -DEBUG: 'parset_pars size =', len(parset_pars) =  parset_pars size = 3 [model_handling.py at line 740]  -DEBUG: 'parset_lines size =', len(parset_lines), ', keys size =', len(parset_lines.keys()) =  parset_lines size = 3 , keys size = 3 [model_handling.py at line 741]  -DEBUG: 'pardef_lines size =', len(pardef_lines), ', keys size =', len(pardef_lines.keys()) =  pardef_lines size = 2 , keys size = 2 [model_handling.py at line 724]  -DEBUG: 'parset_pars size =', len(parset_pars) =  parset_pars size = 2 [model_handling.py at line 740]  -DEBUG: 'parset_lines size =', len(parset_lines), ', keys size =', len(parset_lines.keys()) =  parset_lines size = 2 , keys size = 2 [model_handling.py at line 741]  -DEBUG: 'pardef_lines size =', len(pardef_lines), ', keys size =', len(pardef_lines.keys()) =  pardef_lines size = 2 , keys size = 2 [model_handling.py at line 724]  -DEBUG: 'parset_pars size =', len(parset_pars) =  parset_pars size = 2 [model_handling.py at line 740]  -DEBUG: 'parset_lines size =', len(parset_lines), ', keys size =', len(parset_lines.keys()) =  parset_lines size = 2 , keys size = 2 [model_handling.py at line 741]  +DEBUG: 'pardef_lines size =', len(pardef_lines), ', keys size =', len(pardef_lines.keys()) =  pardef_lines size = 3 , keys size = 3 [model_handling.py at line 729]  +DEBUG: 'pardef_lines size =', len(pardef_lines), ', keys size =', len(pardef_lines.keys()) =  pardef_lines size = 2 , keys size = 2 [model_handling.py at line 729]  +DEBUG: 'pardef_lines size =', len(pardef_lines), ', keys size =', len(pardef_lines.keys()) =  pardef_lines size = 3 , keys size = 3 [model_handling.py at line 729]  +DEBUG: 'pardef_lines size =', len(pardef_lines), ', keys size =', len(pardef_lines.keys()) =  pardef_lines size = 2 , keys size = 2 [model_handling.py at line 729]  +DEBUG: 'pardef_lines size =', len(pardef_lines), ', keys size =', len(pardef_lines.keys()) =  pardef_lines size = 2 , keys size = 2 [model_handling.py at line 729]  FileWriter for /data/avalassi/GPU2023/MG5aMC/ghav-mg5amcnlo/CODEGEN_cudacpp_gq_ttq/src/./Parameters_sm.h FileWriter for /data/avalassi/GPU2023/MG5aMC/ghav-mg5amcnlo/CODEGEN_cudacpp_gq_ttq/src/./Parameters_sm.cc INFO: Created files Parameters_sm.h and Parameters_sm.cc in directory @@ -291,6 +279,6 @@ INFO: /data/avalassi/GPU2023/MG5aMC/ghav-mg5amcnlo/CODEGEN_cudacpp_gq_ttq/src/. DEBUG: Entering PLUGIN_ProcessExporter.finalize [output.py at line 203]  quit -real 0m0.705s -user 0m0.639s -sys 0m0.059s +real 0m0.678s +user 0m0.612s +sys 0m0.060s diff --git a/epochX/cudacpp/gq_ttq.sa/SubProcesses/Bridge.h b/epochX/cudacpp/gq_ttq.sa/SubProcesses/Bridge.h index 4cafe0c997..d7e629cacd 100644 --- a/epochX/cudacpp/gq_ttq.sa/SubProcesses/Bridge.h +++ b/epochX/cudacpp/gq_ttq.sa/SubProcesses/Bridge.h @@ -152,32 +152,32 @@ namespace mg5amcCpu #ifdef __CUDACC__ int m_gputhreads; // number of gpu threads (default set from number of events, can be modified) int m_gpublocks; // number of gpu blocks (default set from number of events, can be modified) - mg5amcGpu::DeviceBuffer m_devMomentaF; - mg5amcGpu::DeviceBufferMomenta m_devMomentaC; - mg5amcGpu::DeviceBufferGs m_devGs; - mg5amcGpu::DeviceBufferRndNumHelicity m_devRndHel; - mg5amcGpu::DeviceBufferRndNumColor m_devRndCol; - mg5amcGpu::DeviceBufferMatrixElements m_devMEs; - mg5amcGpu::DeviceBufferSelectedHelicity m_devSelHel; - mg5amcGpu::DeviceBufferSelectedColor m_devSelCol; - mg5amcGpu::PinnedHostBufferGs m_hstGs; - mg5amcGpu::PinnedHostBufferRndNumHelicity m_hstRndHel; - mg5amcGpu::PinnedHostBufferRndNumColor m_hstRndCol; - mg5amcGpu::PinnedHostBufferMatrixElements m_hstMEs; - mg5amcGpu::PinnedHostBufferSelectedHelicity m_hstSelHel; - mg5amcGpu::PinnedHostBufferSelectedColor m_hstSelCol; - std::unique_ptr m_pmek; + DeviceBuffer m_devMomentaF; + DeviceBufferMomenta m_devMomentaC; + DeviceBufferGs m_devGs; + DeviceBufferRndNumHelicity m_devRndHel; + DeviceBufferRndNumColor m_devRndCol; + DeviceBufferMatrixElements m_devMEs; + DeviceBufferSelectedHelicity m_devSelHel; + DeviceBufferSelectedColor m_devSelCol; + PinnedHostBufferGs m_hstGs; + PinnedHostBufferRndNumHelicity m_hstRndHel; + PinnedHostBufferRndNumColor m_hstRndCol; + PinnedHostBufferMatrixElements m_hstMEs; + PinnedHostBufferSelectedHelicity m_hstSelHel; + PinnedHostBufferSelectedColor m_hstSelCol; + std::unique_ptr m_pmek; //static constexpr int s_gputhreadsmin = 16; // minimum number of gpu threads (TEST VALUE FOR MADEVENT) static constexpr int s_gputhreadsmin = 32; // minimum number of gpu threads (DEFAULT) #else - mg5amcCpu::HostBufferMomenta m_hstMomentaC; - mg5amcCpu::HostBufferGs m_hstGs; - mg5amcCpu::HostBufferRndNumHelicity m_hstRndHel; - mg5amcCpu::HostBufferRndNumColor m_hstRndCol; - mg5amcCpu::HostBufferMatrixElements m_hstMEs; - mg5amcCpu::HostBufferSelectedHelicity m_hstSelHel; - mg5amcCpu::HostBufferSelectedColor m_hstSelCol; - std::unique_ptr m_pmek; + HostBufferMomenta m_hstMomentaC; + HostBufferGs m_hstGs; + HostBufferRndNumHelicity m_hstRndHel; + HostBufferRndNumColor m_hstRndCol; + HostBufferMatrixElements m_hstMEs; + HostBufferSelectedHelicity m_hstSelHel; + HostBufferSelectedColor m_hstSelCol; + std::unique_ptr m_pmek; #endif }; @@ -244,12 +244,12 @@ namespace mg5amcCpu } std::cout << "WARNING! Instantiate device Bridge (nevt=" << m_nevt << ", gpublocks=" << m_gpublocks << ", gputhreads=" << m_gputhreads << ", gpublocks*gputhreads=" << m_gpublocks * m_gputhreads << ")" << std::endl; - mg5amcGpu::CPPProcess process( /*verbose=*/false ); - m_pmek.reset( new mg5amcGpu::MatrixElementKernelDevice( m_devMomentaC, m_devGs, m_devRndHel, m_devRndCol, m_devMEs, m_devSelHel, m_devSelCol, m_gpublocks, m_gputhreads ) ); + CPPProcess process( /*verbose=*/false ); + m_pmek.reset( new MatrixElementKernelDevice( m_devMomentaC, m_devGs, m_devRndHel, m_devRndCol, m_devMEs, m_devSelHel, m_devSelCol, m_gpublocks, m_gputhreads ) ); #else std::cout << "WARNING! Instantiate host Bridge (nevt=" << m_nevt << ")" << std::endl; - mg5amcCpu::CPPProcess process( /*verbose=*/false ); - m_pmek.reset( new mg5amcCpu::MatrixElementKernelHost( m_hstMomentaC, m_hstGs, m_hstRndHel, m_hstRndCol, m_hstMEs, m_hstSelHel, m_hstSelCol, m_nevt ) ); + CPPProcess process( /*verbose=*/false ); + m_pmek.reset( new MatrixElementKernelHost( m_hstMomentaC, m_hstGs, m_hstRndHel, m_hstRndCol, m_hstMEs, m_hstSelHel, m_hstSelCol, m_nevt ) ); #endif // __CUDACC__ process.initProc( "../../Cards/param_card.dat" ); } diff --git a/epochX/cudacpp/gq_ttq.sa/SubProcesses/BridgeKernels.cc b/epochX/cudacpp/gq_ttq.sa/SubProcesses/BridgeKernels.cc index cef4cb3c71..d58066c9c1 100644 --- a/epochX/cudacpp/gq_ttq.sa/SubProcesses/BridgeKernels.cc +++ b/epochX/cudacpp/gq_ttq.sa/SubProcesses/BridgeKernels.cc @@ -9,9 +9,6 @@ #include -constexpr int np4 = CPPProcess::np4; // dimensions of 4-momenta (E,px,py,pz) -constexpr int npar = CPPProcess::npar; // #particles in total (external = initial + final): e.g. 4 for e+ e- -> mu+ mu- - //============================================================================ #ifdef __CUDACC__ @@ -20,6 +17,9 @@ namespace mg5amcGpu namespace mg5amcCpu #endif { + constexpr int np4 = CPPProcess::np4; // dimensions of 4-momenta (E,px,py,pz) + constexpr int npar = CPPProcess::npar; // #particles in total (external = initial + final): e.g. 4 for e+ e- -> mu+ mu- + //-------------------------------------------------------------------------- BridgeKernelBase::BridgeKernelBase( const BufferMomenta& momenta, // input: momenta diff --git a/epochX/cudacpp/gq_ttq.sa/SubProcesses/MemoryAccessAmplitudes.h b/epochX/cudacpp/gq_ttq.sa/SubProcesses/MemoryAccessAmplitudes.h index 68f6838b5c..573b3bbbc9 100644 --- a/epochX/cudacpp/gq_ttq.sa/SubProcesses/MemoryAccessAmplitudes.h +++ b/epochX/cudacpp/gq_ttq.sa/SubProcesses/MemoryAccessAmplitudes.h @@ -14,142 +14,151 @@ #define MGONGPU_TRIVIAL_AMPLITUDES 1 -//---------------------------------------------------------------------------- - -#ifndef MGONGPU_TRIVIAL_AMPLITUDES - -// A class describing the internal layout of memory buffers for amplitudes -// This implementation uses an AOSOA[npagA][nx2][neppA] where nevt=npagA*neppA -// [If many implementations are used, a suffix _AOSOAv1 should be appended to the class name] -class MemoryAccessAmplitudesBase //_AOSOAv1 +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { -public: - - // Number of Events Per Page in the amplitude AOSOA memory buffer layout - static constexpr int neppA = 1; // AOS (just a test...) + //---------------------------------------------------------------------------- -private: - - friend class MemoryAccessHelper; - friend class KernelAccessHelper; - friend class KernelAccessHelper; - - // The number of floating point components of a complex number - static constexpr int nx2 = mgOnGpu::nx2; - - //-------------------------------------------------------------------------- - // NB all KernelLaunchers assume that memory access can be decomposed as "accessField = decodeRecord( accessRecord )" - // (in other words: first locate the event record for a given event, then locate an element in that record) - //-------------------------------------------------------------------------- +#ifndef MGONGPU_TRIVIAL_AMPLITUDES - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] - static __host__ __device__ inline fptype* - ieventAccessRecord( fptype* buffer, - const int ievt ) + // A class describing the internal layout of memory buffers for amplitudes + // This implementation uses an AOSOA[npagA][nx2][neppA] where nevt=npagA*neppA + // [If many implementations are used, a suffix _AOSOAv1 should be appended to the class name] + class MemoryAccessAmplitudesBase //_AOSOAv1 { - const int ipagA = ievt / neppA; // #event "A-page" - const int ieppA = ievt % neppA; // #event in the current event A-page - constexpr int ix2 = 0; - return &( buffer[ipagA * nx2 * neppA + ix2 * neppA + ieppA] ); // AOSOA[ipagA][ix2][ieppA] - } - - //-------------------------------------------------------------------------- - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, Ts... args ) <===] - // [NB: expand variadic template "Ts... args" to "const int ix2" and rename "Field" as "Ix2"] - static __host__ __device__ inline fptype& - decodeRecord( fptype* buffer, - const int ix2 ) + public: + + // Number of Events Per Page in the amplitude AOSOA memory buffer layout + static constexpr int neppA = 1; // AOS (just a test...) + + private: + + friend class MemoryAccessHelper; + friend class KernelAccessHelper; + friend class KernelAccessHelper; + + // The number of floating point components of a complex number + static constexpr int nx2 = mgOnGpu::nx2; + + //-------------------------------------------------------------------------- + // NB all KernelLaunchers assume that memory access can be decomposed as "accessField = decodeRecord( accessRecord )" + // (in other words: first locate the event record for a given event, then locate an element in that record) + //-------------------------------------------------------------------------- + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] + static __host__ __device__ inline fptype* + ieventAccessRecord( fptype* buffer, + const int ievt ) + { + const int ipagA = ievt / neppA; // #event "A-page" + const int ieppA = ievt % neppA; // #event in the current event A-page + constexpr int ix2 = 0; + return &( buffer[ipagA * nx2 * neppA + ix2 * neppA + ieppA] ); // AOSOA[ipagA][ix2][ieppA] + } + + //-------------------------------------------------------------------------- + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, Ts... args ) <===] + // [NB: expand variadic template "Ts... args" to "const int ix2" and rename "Field" as "Ix2"] + static __host__ __device__ inline fptype& + decodeRecord( fptype* buffer, + const int ix2 ) + { + constexpr int ipagA = 0; + constexpr int ieppA = 0; + return buffer[ipagA * nx2 * neppA + ix2 * neppA + ieppA]; // AOSOA[ipagA][ix2][ieppA] + } + }; + + //---------------------------------------------------------------------------- + + // A class providing access to memory buffers for a given event, based on explicit event numbers + // Its methods use the MemoryAccessHelper templates - note the use of the template keyword in template function instantiations + class MemoryAccessAmplitudes : public MemoryAccessAmplitudesBase { - constexpr int ipagA = 0; - constexpr int ieppA = 0; - return buffer[ipagA * nx2 * neppA + ix2 * neppA + ieppA]; // AOSOA[ipagA][ix2][ieppA] - } -}; + public: -//---------------------------------------------------------------------------- + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] + static constexpr auto ieventAccessRecord = MemoryAccessHelper::ieventAccessRecord; -// A class providing access to memory buffers for a given event, based on explicit event numbers -// Its methods use the MemoryAccessHelper templates - note the use of the template keyword in template function instantiations -class MemoryAccessAmplitudes : public MemoryAccessAmplitudesBase -{ -public: - - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] - static constexpr auto ieventAccessRecord = MemoryAccessHelper::ieventAccessRecord; + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (const) ===> const fptype* ieventAccessRecordConst( const fptype* buffer, const int ievt ) <===] + static constexpr auto ieventAccessRecordConst = MemoryAccessHelper::ieventAccessRecordConst; - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (const) ===> const fptype* ieventAccessRecordConst( const fptype* buffer, const int ievt ) <===] - static constexpr auto ieventAccessRecordConst = MemoryAccessHelper::ieventAccessRecordConst; + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, const int ix2 ) <===] + static constexpr auto decodeRecordIx2 = MemoryAccessHelper::decodeRecord; - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, const int ix2 ) <===] - static constexpr auto decodeRecordIx2 = MemoryAccessHelper::decodeRecord; + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (const) ===> const fptype& decodeRecordConst( const fptype* buffer, const int ix2 ) <===] + static constexpr auto decodeRecordIx2Const = + MemoryAccessHelper::template decodeRecordConst; - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (const) ===> const fptype& decodeRecordConst( const fptype* buffer, const int ix2 ) <===] - static constexpr auto decodeRecordIx2Const = - MemoryAccessHelper::template decodeRecordConst; + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (non-const) ===> fptype& ieventAccessIx2( fptype* buffer, const ievt, const int ix2 ) <===] + static constexpr auto ieventAccessIx2 = + MemoryAccessHelper::template ieventAccessField; - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (non-const) ===> fptype& ieventAccessIx2( fptype* buffer, const ievt, const int ix2 ) <===] - static constexpr auto ieventAccessIx2 = - MemoryAccessHelper::template ieventAccessField; - - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (const) ===> const fptype& ieventAccessIx2Const( const fptype* buffer, const ievt, const int ix2 ) <===] - static constexpr auto ieventAccessIx2Const = - MemoryAccessHelper::template ieventAccessFieldConst; -}; + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (const) ===> const fptype& ieventAccessIx2Const( const fptype* buffer, const ievt, const int ix2 ) <===] + static constexpr auto ieventAccessIx2Const = + MemoryAccessHelper::template ieventAccessFieldConst; + }; #endif // #ifndef MGONGPU_TRIVIAL_AMPLITUDES -//---------------------------------------------------------------------------- + //---------------------------------------------------------------------------- -// A class providing access to memory buffers for a given event, based on implicit kernel rules -// Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations -template -class KernelAccessAmplitudes -{ -public: + // A class providing access to memory buffers for a given event, based on implicit kernel rules + // Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations + template + class KernelAccessAmplitudes + { + public: #ifndef MGONGPU_TRIVIAL_AMPLITUDES - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (non-const) ===> fptype& kernelAccessIx2( fptype* buffer, const int ix2 ) <===] - static constexpr auto kernelAccessIx2 = - KernelAccessHelper::template kernelAccessField; + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (non-const) ===> fptype& kernelAccessIx2( fptype* buffer, const int ix2 ) <===] + static constexpr auto kernelAccessIx2 = + KernelAccessHelper::template kernelAccessField; - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (const) ===> const fptype& kernelAccessIx2Const( const fptype* buffer, const int ix2 ) <===] - static constexpr auto kernelAccessIx2Const = - KernelAccessHelper::template kernelAccessFieldConst; + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (const) ===> const fptype& kernelAccessIx2Const( const fptype* buffer, const int ix2 ) <===] + static constexpr auto kernelAccessIx2Const = + KernelAccessHelper::template kernelAccessFieldConst; #else - static __host__ __device__ inline cxtype_sv* - kernelAccess( fptype* buffer ) - { - return reinterpret_cast( buffer ); - } + static __host__ __device__ inline cxtype_sv* + kernelAccess( fptype* buffer ) + { + return reinterpret_cast( buffer ); + } - static __host__ __device__ inline const cxtype_sv* - kernelAccessConst( const fptype* buffer ) - { - return reinterpret_cast( buffer ); - } + static __host__ __device__ inline const cxtype_sv* + kernelAccessConst( const fptype* buffer ) + { + return reinterpret_cast( buffer ); + } #endif // #ifndef MGONGPU_TRIVIAL_AMPLITUDES -}; + }; + + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- + typedef KernelAccessAmplitudes HostAccessAmplitudes; + typedef KernelAccessAmplitudes DeviceAccessAmplitudes; -typedef KernelAccessAmplitudes HostAccessAmplitudes; -typedef KernelAccessAmplitudes DeviceAccessAmplitudes; + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- +} // end namespace mg5amcGpu/mg5amcCpu #endif // MemoryAccessAmplitudes_H diff --git a/epochX/cudacpp/gq_ttq.sa/SubProcesses/MemoryAccessCouplings.h b/epochX/cudacpp/gq_ttq.sa/SubProcesses/MemoryAccessCouplings.h index 15793bbec3..35a3af42e0 100644 --- a/epochX/cudacpp/gq_ttq.sa/SubProcesses/MemoryAccessCouplings.h +++ b/epochX/cudacpp/gq_ttq.sa/SubProcesses/MemoryAccessCouplings.h @@ -14,248 +14,257 @@ #include "MemoryAccessMomenta.h" // for MemoryAccessMomentaBase::neppM #include "MemoryBuffers.h" // for HostBufferCouplings::isaligned -//---------------------------------------------------------------------------- - -// A class describing the internal layout of memory buffers for couplings -// This implementation uses an AOSOA[npagC][ndcoup][nx2][neppC] "super-buffer" where nevt=npagC*neppC -// From the "super-buffer" for ndcoup different couplings, use idcoupAccessBuffer to access the buffer for one specific coupling -// [If many implementations are used, a suffix _AOSOAv1 should be appended to the class name] -class MemoryAccessCouplingsBase //_AOSOAv1 +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { -public: - - // Number of Events Per Page in the coupling AOSOA memory buffer layout - static constexpr int neppC = MemoryAccessMomentaBase::neppM; // use the same AOSOA striding as for momenta - - // SANITY CHECK: check that neppC is a power of two - static_assert( ispoweroftwo( neppC ), "neppC is not a power of 2" ); - - //-------------------------------------------------------------------------- - // ** NB! A single super-buffer AOSOA[npagC][ndcoup][nx2][neppC] includes data for ndcoup different couplings ** - // ** NB! The ieventAccessRecord and kernelAccess functions refer to the buffer for one individual coupling ** - // ** NB! Use idcoupAccessBuffer to add a fixed offset and locate the buffer for one given individual coupling ** - //-------------------------------------------------------------------------- - - // Locate the buffer for a single coupling (output) in a memory super-buffer (input) from the given coupling index (input) - // [Signature (non-const) ===> fptype* idcoupAccessBuffer( fptype* buffer, const int idcoup ) <===] - // NB: keep this in public even if exposed through KernelAccessCouplings: nvcc says it is inaccesible otherwise? - static __host__ __device__ inline fptype* - idcoupAccessBuffer( fptype* buffer, // input "super-buffer" - const int idcoup ) - { - constexpr int ipagC = 0; - constexpr int ieppC = 0; - constexpr int ix2 = 0; - // NB! this effectively adds an offset "idcoup * nx2 * neppC" - return &( buffer[ipagC * ndcoup * nx2 * neppC + idcoup * nx2 * neppC + ix2 * neppC + ieppC] ); // AOSOA[ipagC][idcoup][ix2][ieppC] - } - - // Locate the buffer for a single coupling (output) in a memory super-buffer (input) from the given coupling index (input) - // [Signature (const) ===> const fptype* idcoupAccessBufferConst( const fptype* buffer, const int idcoup ) <===] - // NB: keep this in public even if exposed through KernelAccessCouplings: nvcc says it is inaccesible otherwise? - static __host__ __device__ inline const fptype* - idcoupAccessBufferConst( const fptype* buffer, // input "super-buffer" - const int idcoup ) - { - return idcoupAccessBuffer( const_cast( buffer ), idcoup ); - } - -private: + //---------------------------------------------------------------------------- - friend class MemoryAccessHelper; - friend class KernelAccessHelper; - friend class KernelAccessHelper; - - // The number of couplings that dependent on the running alphas QCD in this specific process - static constexpr size_t ndcoup = Parameters_sm_dependentCouplings::ndcoup; - - // The number of floating point components of a complex number - static constexpr int nx2 = mgOnGpu::nx2; - - //-------------------------------------------------------------------------- - // NB all KernelLaunchers assume that memory access can be decomposed as "accessField = decodeRecord( accessRecord )" - // (in other words: first locate the event record for a given event, then locate an element in that record) - //-------------------------------------------------------------------------- - - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] - static __host__ __device__ inline fptype* - ieventAccessRecord( fptype* buffer, - const int ievt ) + // A class describing the internal layout of memory buffers for couplings + // This implementation uses an AOSOA[npagC][ndcoup][nx2][neppC] "super-buffer" where nevt=npagC*neppC + // From the "super-buffer" for ndcoup different couplings, use idcoupAccessBuffer to access the buffer for one specific coupling + // [If many implementations are used, a suffix _AOSOAv1 should be appended to the class name] + class MemoryAccessCouplingsBase //_AOSOAv1 { - const int ipagC = ievt / neppC; // #event "C-page" - const int ieppC = ievt % neppC; // #event in the current event C-page - constexpr int idcoup = 0; - constexpr int ix2 = 0; - return &( buffer[ipagC * ndcoup * nx2 * neppC + idcoup * nx2 * neppC + ix2 * neppC + ieppC] ); // AOSOA[ipagC][idcoup][ix2][ieppC] - } - - //-------------------------------------------------------------------------- - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, Ts... args ) <===] - // [NB: expand variadic template "Ts... args" to "const int ix2" and rename "Field" as "Ix2"] - static __host__ __device__ inline fptype& - decodeRecord( fptype* buffer, - const int ix2 ) + public: + + // Number of Events Per Page in the coupling AOSOA memory buffer layout + static constexpr int neppC = MemoryAccessMomentaBase::neppM; // use the same AOSOA striding as for momenta + + // SANITY CHECK: check that neppC is a power of two + static_assert( ispoweroftwo( neppC ), "neppC is not a power of 2" ); + + //-------------------------------------------------------------------------- + // ** NB! A single super-buffer AOSOA[npagC][ndcoup][nx2][neppC] includes data for ndcoup different couplings ** + // ** NB! The ieventAccessRecord and kernelAccess functions refer to the buffer for one individual coupling ** + // ** NB! Use idcoupAccessBuffer to add a fixed offset and locate the buffer for one given individual coupling ** + //-------------------------------------------------------------------------- + + // Locate the buffer for a single coupling (output) in a memory super-buffer (input) from the given coupling index (input) + // [Signature (non-const) ===> fptype* idcoupAccessBuffer( fptype* buffer, const int idcoup ) <===] + // NB: keep this in public even if exposed through KernelAccessCouplings: nvcc says it is inaccesible otherwise? + static __host__ __device__ inline fptype* + idcoupAccessBuffer( fptype* buffer, // input "super-buffer" + const int idcoup ) + { + constexpr int ipagC = 0; + constexpr int ieppC = 0; + constexpr int ix2 = 0; + // NB! this effectively adds an offset "idcoup * nx2 * neppC" + return &( buffer[ipagC * ndcoup * nx2 * neppC + idcoup * nx2 * neppC + ix2 * neppC + ieppC] ); // AOSOA[ipagC][idcoup][ix2][ieppC] + } + + // Locate the buffer for a single coupling (output) in a memory super-buffer (input) from the given coupling index (input) + // [Signature (const) ===> const fptype* idcoupAccessBufferConst( const fptype* buffer, const int idcoup ) <===] + // NB: keep this in public even if exposed through KernelAccessCouplings: nvcc says it is inaccesible otherwise? + static __host__ __device__ inline const fptype* + idcoupAccessBufferConst( const fptype* buffer, // input "super-buffer" + const int idcoup ) + { + return idcoupAccessBuffer( const_cast( buffer ), idcoup ); + } + + private: + + friend class MemoryAccessHelper; + friend class KernelAccessHelper; + friend class KernelAccessHelper; + + // The number of couplings that dependent on the running alphas QCD in this specific process + static constexpr size_t ndcoup = Parameters_sm_dependentCouplings::ndcoup; + + // The number of floating point components of a complex number + static constexpr int nx2 = mgOnGpu::nx2; + + //-------------------------------------------------------------------------- + // NB all KernelLaunchers assume that memory access can be decomposed as "accessField = decodeRecord( accessRecord )" + // (in other words: first locate the event record for a given event, then locate an element in that record) + //-------------------------------------------------------------------------- + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] + static __host__ __device__ inline fptype* + ieventAccessRecord( fptype* buffer, + const int ievt ) + { + const int ipagC = ievt / neppC; // #event "C-page" + const int ieppC = ievt % neppC; // #event in the current event C-page + constexpr int idcoup = 0; + constexpr int ix2 = 0; + return &( buffer[ipagC * ndcoup * nx2 * neppC + idcoup * nx2 * neppC + ix2 * neppC + ieppC] ); // AOSOA[ipagC][idcoup][ix2][ieppC] + } + + //-------------------------------------------------------------------------- + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, Ts... args ) <===] + // [NB: expand variadic template "Ts... args" to "const int ix2" and rename "Field" as "Ix2"] + static __host__ __device__ inline fptype& + decodeRecord( fptype* buffer, + const int ix2 ) + { + constexpr int ipagC = 0; + constexpr int ieppC = 0; + // NB! the offset "idcoup * nx2 * neppC" has been added in idcoupAccessBuffer + constexpr int idcoup = 0; + return buffer[ipagC * ndcoup * nx2 * neppC + idcoup * nx2 * neppC + ix2 * neppC + ieppC]; // AOSOA[ipagC][idcoup][ix2][ieppC] + } + }; + + //---------------------------------------------------------------------------- + + // A class providing access to memory buffers for a given event, based on explicit event numbers + // Its methods use the MemoryAccessHelper templates - note the use of the template keyword in template function instantiations + class MemoryAccessCouplings : public MemoryAccessCouplingsBase { - constexpr int ipagC = 0; - constexpr int ieppC = 0; - // NB! the offset "idcoup * nx2 * neppC" has been added in idcoupAccessBuffer - constexpr int idcoup = 0; - return buffer[ipagC * ndcoup * nx2 * neppC + idcoup * nx2 * neppC + ix2 * neppC + ieppC]; // AOSOA[ipagC][idcoup][ix2][ieppC] - } -}; - -//---------------------------------------------------------------------------- - -// A class providing access to memory buffers for a given event, based on explicit event numbers -// Its methods use the MemoryAccessHelper templates - note the use of the template keyword in template function instantiations -class MemoryAccessCouplings : public MemoryAccessCouplingsBase -{ -public: - - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] - static constexpr auto ieventAccessRecord = MemoryAccessHelper::ieventAccessRecord; - - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (const) ===> const fptype* ieventAccessRecordConst( const fptype* buffer, const int ievt ) <===] - static constexpr auto ieventAccessRecordConst = MemoryAccessHelper::ieventAccessRecordConst; - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, const int ix2 ) <===] - static constexpr auto decodeRecordIx2 = MemoryAccessHelper::decodeRecord; - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (const) ===> const fptype& decodeRecordConst( const fptype* buffer, const int ix2 ) <===] - static constexpr auto decodeRecordIx2Const = - MemoryAccessHelper::template decodeRecordConst; - - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (non-const) ===> fptype& ieventAccessIx2( fptype* buffer, const ievt, const int ix2 ) <===] - static constexpr auto ieventAccessIx2 = - MemoryAccessHelper::template ieventAccessField; - - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (const) ===> const fptype& ieventAccessIx2Const( const fptype* buffer, const ievt, const int ix2 ) <===] - static constexpr auto ieventAccessIx2Const = - MemoryAccessHelper::template ieventAccessFieldConst; -}; - -//---------------------------------------------------------------------------- - -// A class providing access to memory buffers for a given event, based on implicit kernel rules -// Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations -template -class KernelAccessCouplings -{ -public: - - // Expose selected functions from MemoryAccessCouplingsBase - static constexpr auto idcoupAccessBuffer = MemoryAccessCouplingsBase::idcoupAccessBuffer; - static constexpr auto idcoupAccessBufferConst = MemoryAccessCouplingsBase::idcoupAccessBufferConst; - - // Expose selected functions from MemoryAccessCouplings - static constexpr auto ieventAccessRecordConst = MemoryAccessCouplings::ieventAccessRecordConst; - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (non-const, SCALAR) ===> fptype& kernelAccessIx2( fptype* buffer, const int ix2 ) <===] - static constexpr auto kernelAccessIx2_s = - KernelAccessHelper::template kernelAccessField; - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (const, SCALAR) ===> const fptype& kernelAccessIx2Const( const fptype* buffer, const int ix2 ) <===] - static constexpr auto kernelAccessIx2Const_s = - KernelAccessHelper::template kernelAccessFieldConst; - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (non const, SCALAR OR VECTOR) ===> fptype_sv& kernelAccessIx2( fptype* buffer, const int ix2 ) <===] - static __host__ __device__ inline fptype_sv& - kernelAccessIx2( fptype* buffer, - const int ix2 ) + public: + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] + static constexpr auto ieventAccessRecord = MemoryAccessHelper::ieventAccessRecord; + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (const) ===> const fptype* ieventAccessRecordConst( const fptype* buffer, const int ievt ) <===] + static constexpr auto ieventAccessRecordConst = MemoryAccessHelper::ieventAccessRecordConst; + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, const int ix2 ) <===] + static constexpr auto decodeRecordIx2 = MemoryAccessHelper::decodeRecord; + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (const) ===> const fptype& decodeRecordConst( const fptype* buffer, const int ix2 ) <===] + static constexpr auto decodeRecordIx2Const = + MemoryAccessHelper::template decodeRecordConst; + + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (non-const) ===> fptype& ieventAccessIx2( fptype* buffer, const ievt, const int ix2 ) <===] + static constexpr auto ieventAccessIx2 = + MemoryAccessHelper::template ieventAccessField; + + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (const) ===> const fptype& ieventAccessIx2Const( const fptype* buffer, const ievt, const int ix2 ) <===] + static constexpr auto ieventAccessIx2Const = + MemoryAccessHelper::template ieventAccessFieldConst; + }; + + //---------------------------------------------------------------------------- + + // A class providing access to memory buffers for a given event, based on implicit kernel rules + // Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations + template + class KernelAccessCouplings { - fptype& out = kernelAccessIx2_s( buffer, ix2 ); + public: + + // Expose selected functions from MemoryAccessCouplingsBase + static constexpr auto idcoupAccessBuffer = MemoryAccessCouplingsBase::idcoupAccessBuffer; + static constexpr auto idcoupAccessBufferConst = MemoryAccessCouplingsBase::idcoupAccessBufferConst; + + // Expose selected functions from MemoryAccessCouplings + static constexpr auto ieventAccessRecordConst = MemoryAccessCouplings::ieventAccessRecordConst; + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (non-const, SCALAR) ===> fptype& kernelAccessIx2( fptype* buffer, const int ix2 ) <===] + static constexpr auto kernelAccessIx2_s = + KernelAccessHelper::template kernelAccessField; + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (const, SCALAR) ===> const fptype& kernelAccessIx2Const( const fptype* buffer, const int ix2 ) <===] + static constexpr auto kernelAccessIx2Const_s = + KernelAccessHelper::template kernelAccessFieldConst; + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (non const, SCALAR OR VECTOR) ===> fptype_sv& kernelAccessIx2( fptype* buffer, const int ix2 ) <===] + static __host__ __device__ inline fptype_sv& + kernelAccessIx2( fptype* buffer, + const int ix2 ) + { + fptype& out = kernelAccessIx2_s( buffer, ix2 ); #ifndef MGONGPU_CPPSIMD - return out; + return out; #else - // NB: derived from MemoryAccessMomenta, restricting the implementation to contiguous aligned arrays - constexpr int neppC = MemoryAccessCouplingsBase::neppC; - static_assert( neppC >= neppV ); // ASSUME CONTIGUOUS ARRAYS - static_assert( neppC % neppV == 0 ); // ASSUME CONTIGUOUS ARRAYS - static_assert( mg5amcCpu::HostBufferCouplings::isaligned() ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) - //assert( (size_t)( buffer ) % mgOnGpu::cppAlign == 0 ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) - return mg5amcCpu::fptypevFromAlignedArray( out ); // SIMD bulk load of neppV, use reinterpret_cast + // NB: derived from MemoryAccessMomenta, restricting the implementation to contiguous aligned arrays + constexpr int neppC = MemoryAccessCouplingsBase::neppC; + static_assert( neppC >= neppV ); // ASSUME CONTIGUOUS ARRAYS + static_assert( neppC % neppV == 0 ); // ASSUME CONTIGUOUS ARRAYS + static_assert( mg5amcCpu::HostBufferCouplings::isaligned() ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) + //assert( (size_t)( buffer ) % mgOnGpu::cppAlign == 0 ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) + return mg5amcCpu::fptypevFromAlignedArray( out ); // SIMD bulk load of neppV, use reinterpret_cast #endif - } + } - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (const, SCALAR OR VECTOR) ===> const fptype_sv& kernelAccessIx2Const( const fptype* buffer, const int ix2 ) <===] - static __host__ __device__ inline const fptype_sv& - kernelAccessIx2Const( const fptype* buffer, - const int ix2 ) - { - return kernelAccessIx2( const_cast( buffer ), ix2 ); - } - - /* - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (const, SCALAR OR VECTOR) ===> const fptype_sv& kernelAccessIx2Const( const fptype* buffer, const int ix2 ) <===] - static __host__ __device__ inline const fptype_sv& - kernelAccessIx2Const( const fptype* buffer, - const int ix2 ) - { - const fptype& out = kernelAccessIx2Const_s( buffer, ix2 ); + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (const, SCALAR OR VECTOR) ===> const fptype_sv& kernelAccessIx2Const( const fptype* buffer, const int ix2 ) <===] + static __host__ __device__ inline const fptype_sv& + kernelAccessIx2Const( const fptype* buffer, + const int ix2 ) + { + return kernelAccessIx2( const_cast( buffer ), ix2 ); + } + + /* + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (const, SCALAR OR VECTOR) ===> const fptype_sv& kernelAccessIx2Const( const fptype* buffer, const int ix2 ) <===] + static __host__ __device__ inline const fptype_sv& + kernelAccessIx2Const( const fptype* buffer, + const int ix2 ) + { + const fptype& out = kernelAccessIx2Const_s( buffer, ix2 ); #ifndef MGONGPU_CPPSIMD - return out; + return out; #else - // NB: derived from MemoryAccessMomenta, restricting the implementation to contiguous aligned arrays - constexpr int neppC = MemoryAccessCouplingsBase::neppC; - static_assert( neppC >= neppV ); // ASSUME CONTIGUOUS ARRAYS - static_assert( neppC % neppV == 0 ); // ASSUME CONTIGUOUS ARRAYS - static_assert( mg5amcCpu::HostBufferCouplings::isaligned() ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) - //assert( (size_t)( buffer ) % mgOnGpu::cppAlign == 0 ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) - return mg5amcCpu::fptypevFromAlignedArray( out ); // SIMD bulk load of neppV, use reinterpret_cast + // NB: derived from MemoryAccessMomenta, restricting the implementation to contiguous aligned arrays + constexpr int neppC = MemoryAccessCouplingsBase::neppC; + static_assert( neppC >= neppV ); // ASSUME CONTIGUOUS ARRAYS + static_assert( neppC % neppV == 0 ); // ASSUME CONTIGUOUS ARRAYS + static_assert( mg5amcCpu::HostBufferCouplings::isaligned() ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) + //assert( (size_t)( buffer ) % mgOnGpu::cppAlign == 0 ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) + return mg5amcCpu::fptypevFromAlignedArray( out ); // SIMD bulk load of neppV, use reinterpret_cast #endif - } - */ - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (non const, SCALAR OR VECTOR) ===> cxtype_sv_ref kernelAccess( fptype* buffer ) <===] - static __host__ __device__ inline cxtype_sv_ref - kernelAccess( fptype* buffer ) - { - /* - fptype_sv& real = kernelAccessIx2( buffer, 0 ); - fptype_sv& imag = kernelAccessIx2( buffer, 1 ); - printf( "C_ACCESS::kernelAccess: pbuffer=%p pr=%p pi=%p\n", buffer, &real, &imag ); - return cxtype_sv_ref( real, imag ); - */ - return cxtype_sv_ref( kernelAccessIx2( buffer, 0 ), - kernelAccessIx2( buffer, 1 ) ); - } - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (const, SCALAR OR VECTOR) ===> cxtype_sv kernelAccessConst( const fptype* buffer ) <===] - static __host__ __device__ inline cxtype_sv - kernelAccessConst( const fptype* buffer ) - { - /* - const fptype_sv& real = kernelAccessIx2Const( buffer, 0 ); - const fptype_sv& imag = kernelAccessIx2Const( buffer, 1 ); - printf( "C_ACCESS::kernelAccessConst: pbuffer=%p pr=%p pi=%p\n", buffer, &real, &imag ); - return cxtype_sv( real, imag ); + } */ - return cxtype_sv( kernelAccessIx2Const( buffer, 0 ), - kernelAccessIx2Const( buffer, 1 ) ); - } -}; - -//---------------------------------------------------------------------------- - -typedef KernelAccessCouplings HostAccessCouplings; -typedef KernelAccessCouplings DeviceAccessCouplings; -//---------------------------------------------------------------------------- + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (non const, SCALAR OR VECTOR) ===> cxtype_sv_ref kernelAccess( fptype* buffer ) <===] + static __host__ __device__ inline cxtype_sv_ref + kernelAccess( fptype* buffer ) + { + /* + fptype_sv& real = kernelAccessIx2( buffer, 0 ); + fptype_sv& imag = kernelAccessIx2( buffer, 1 ); + printf( "C_ACCESS::kernelAccess: pbuffer=%p pr=%p pi=%p\n", buffer, &real, &imag ); + return cxtype_sv_ref( real, imag ); + */ + return cxtype_sv_ref( kernelAccessIx2( buffer, 0 ), + kernelAccessIx2( buffer, 1 ) ); + } + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (const, SCALAR OR VECTOR) ===> cxtype_sv kernelAccessConst( const fptype* buffer ) <===] + static __host__ __device__ inline cxtype_sv + kernelAccessConst( const fptype* buffer ) + { + /* + const fptype_sv& real = kernelAccessIx2Const( buffer, 0 ); + const fptype_sv& imag = kernelAccessIx2Const( buffer, 1 ); + printf( "C_ACCESS::kernelAccessConst: pbuffer=%p pr=%p pi=%p\n", buffer, &real, &imag ); + return cxtype_sv( real, imag ); + */ + return cxtype_sv( kernelAccessIx2Const( buffer, 0 ), + kernelAccessIx2Const( buffer, 1 ) ); + } + }; + + //---------------------------------------------------------------------------- + + typedef KernelAccessCouplings HostAccessCouplings; + typedef KernelAccessCouplings DeviceAccessCouplings; + + //---------------------------------------------------------------------------- + +} // end namespace mg5amcGpu/mg5amcCpu #endif // MemoryAccessCouplings_H diff --git a/epochX/cudacpp/gq_ttq.sa/SubProcesses/MemoryAccessCouplingsFixed.h b/epochX/cudacpp/gq_ttq.sa/SubProcesses/MemoryAccessCouplingsFixed.h index 81193ab261..dc0d93afff 100644 --- a/epochX/cudacpp/gq_ttq.sa/SubProcesses/MemoryAccessCouplingsFixed.h +++ b/epochX/cudacpp/gq_ttq.sa/SubProcesses/MemoryAccessCouplingsFixed.h @@ -13,63 +13,72 @@ //#include "MemoryAccessHelpers.h" -//---------------------------------------------------------------------------- - -// A class describing the internal layout of memory buffers for fixed couplings -// This implementation uses a STRUCT[ndcoup][nx2] "super-buffer" layout: in practice, the cIPC global array -// From the "super-buffer" for ndcoup different couplings, use idcoupAccessBuffer to access the buffer for one specific coupling -// [If many implementations are used, a suffix _Sv1 should be appended to the class name] -class MemoryAccessCouplingsFixedBase //_Sv1 +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { -public: + //---------------------------------------------------------------------------- - // Locate the buffer for a single coupling (output) in a memory super-buffer (input) from the given coupling index (input) - // [Signature (const) ===> const fptype* iicoupAccessBufferConst( const fptype* buffer, const int iicoup ) <===] - static __host__ __device__ inline const fptype* - iicoupAccessBufferConst( const fptype* buffer, // input "super-buffer": in practice, the cIPC global array - const int iicoup ) + // A class describing the internal layout of memory buffers for fixed couplings + // This implementation uses a STRUCT[ndcoup][nx2] "super-buffer" layout: in practice, the cIPC global array + // From the "super-buffer" for ndcoup different couplings, use idcoupAccessBuffer to access the buffer for one specific coupling + // [If many implementations are used, a suffix _Sv1 should be appended to the class name] + class MemoryAccessCouplingsFixedBase //_Sv1 { - constexpr int ix2 = 0; - // NB! this effectively adds an offset "iicoup * nx2" - return &( buffer[iicoup * nx2 + ix2] ); // STRUCT[idcoup][ix2] - } - -private: - - // The number of floating point components of a complex number - static constexpr int nx2 = mgOnGpu::nx2; -}; - -//---------------------------------------------------------------------------- + public: + + // Locate the buffer for a single coupling (output) in a memory super-buffer (input) from the given coupling index (input) + // [Signature (const) ===> const fptype* iicoupAccessBufferConst( const fptype* buffer, const int iicoup ) <===] + static __host__ __device__ inline const fptype* + iicoupAccessBufferConst( const fptype* buffer, // input "super-buffer": in practice, the cIPC global array + const int iicoup ) + { + constexpr int ix2 = 0; + // NB! this effectively adds an offset "iicoup * nx2" + return &( buffer[iicoup * nx2 + ix2] ); // STRUCT[idcoup][ix2] + } + + private: + + // The number of floating point components of a complex number + static constexpr int nx2 = mgOnGpu::nx2; + }; + + //---------------------------------------------------------------------------- + + // A class providing access to memory buffers for a given event, based on implicit kernel rules + // Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations + template + class KernelAccessCouplingsFixed + { + public: -// A class providing access to memory buffers for a given event, based on implicit kernel rules -// Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations -template -class KernelAccessCouplingsFixed -{ -public: + // Expose selected functions from MemoryAccessCouplingsFixedBase + static constexpr auto iicoupAccessBufferConst = MemoryAccessCouplingsFixedBase::iicoupAccessBufferConst; - // Expose selected functions from MemoryAccessCouplingsFixedBase - static constexpr auto iicoupAccessBufferConst = MemoryAccessCouplingsFixedBase::iicoupAccessBufferConst; + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (const, SCALAR OR VECTOR) ===> cxtype_sv kernelAccessConst( const fptype* buffer ) <===] + static __host__ __device__ inline const cxtype_sv + kernelAccessConst( const fptype* buffer ) + { + // TRIVIAL ACCESS to fixed-couplings buffers! + //return cxmake( fptype_sv{ buffer[0] }, fptype_sv{ buffer[1] } ); // NO! BUG #339! + const fptype_sv r_sv = fptype_sv{ 0 } + buffer[0]; + const fptype_sv i_sv = fptype_sv{ 0 } + buffer[1]; + return cxmake( r_sv, i_sv ); // ugly but effective + } + }; - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (const, SCALAR OR VECTOR) ===> cxtype_sv kernelAccessConst( const fptype* buffer ) <===] - static __host__ __device__ inline const cxtype_sv - kernelAccessConst( const fptype* buffer ) - { - // TRIVIAL ACCESS to fixed-couplings buffers! - //return cxmake( fptype_sv{ buffer[0] }, fptype_sv{ buffer[1] } ); // NO! BUG #339! - const fptype_sv r_sv = fptype_sv{ 0 } + buffer[0]; - const fptype_sv i_sv = fptype_sv{ 0 } + buffer[1]; - return cxmake( r_sv, i_sv ); // ugly but effective - } -}; + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- + typedef KernelAccessCouplingsFixed HostAccessCouplingsFixed; + typedef KernelAccessCouplingsFixed DeviceAccessCouplingsFixed; -typedef KernelAccessCouplingsFixed HostAccessCouplingsFixed; -typedef KernelAccessCouplingsFixed DeviceAccessCouplingsFixed; + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- +} // end namespace mg5amcGpu/mg5amcCpu #endif // MemoryAccessCouplingsFixed_H diff --git a/epochX/cudacpp/gq_ttq.sa/SubProcesses/MemoryAccessDenominators.h b/epochX/cudacpp/gq_ttq.sa/SubProcesses/MemoryAccessDenominators.h index e76ae65ff9..3bce635718 100644 --- a/epochX/cudacpp/gq_ttq.sa/SubProcesses/MemoryAccessDenominators.h +++ b/epochX/cudacpp/gq_ttq.sa/SubProcesses/MemoryAccessDenominators.h @@ -9,15 +9,24 @@ #include "MemoryAccessGs.h" -//---------------------------------------------------------------------------- +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif +{ + //---------------------------------------------------------------------------- + + // A class describing the internal layout of memory buffers for denominators + // This implementation reuses the plain ARRAY[nevt] implementation of MemoryAccessGs -// A class describing the internal layout of memory buffers for denominators -// This implementation reuses the plain ARRAY[nevt] implementation of MemoryAccessGs + typedef KernelAccessGs HostAccessDenominators; + typedef KernelAccessGs DeviceAccessDenominators; -typedef KernelAccessGs HostAccessDenominators; -typedef KernelAccessGs DeviceAccessDenominators; + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- +} // end namespace mg5amcGpu/mg5amcCpu #endif #endif // MemoryAccessDenominators_H diff --git a/epochX/cudacpp/gq_ttq.sa/SubProcesses/MemoryAccessGs.h b/epochX/cudacpp/gq_ttq.sa/SubProcesses/MemoryAccessGs.h index 8996c0554c..31311aa375 100644 --- a/epochX/cudacpp/gq_ttq.sa/SubProcesses/MemoryAccessGs.h +++ b/epochX/cudacpp/gq_ttq.sa/SubProcesses/MemoryAccessGs.h @@ -12,142 +12,151 @@ #include "MemoryAccessVectors.h" #include "MemoryBuffers.h" // for HostBufferMatrixElements::isaligned -//---------------------------------------------------------------------------- - -// A class describing the internal layout of memory buffers for Gs -// This implementation uses a plain ARRAY[nevt] -// [If many implementations are used, a suffix _ARRAYv1 should be appended to the class name] -class MemoryAccessGsBase //_ARRAYv1 +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { -private: - - friend class MemoryAccessHelper; - friend class KernelAccessHelper; - friend class KernelAccessHelper; - - //-------------------------------------------------------------------------- - // NB all KernelLaunchers assume that memory access can be decomposed as "accessField = decodeRecord( accessRecord )" - // (in other words: first locate the event record for a given event, then locate an element in that record) - //-------------------------------------------------------------------------- - - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] - static __host__ __device__ inline fptype* - ieventAccessRecord( fptype* buffer, - const int ievt ) - { - return &( buffer[ievt] ); // ARRAY[nevt] - } - - //-------------------------------------------------------------------------- + //---------------------------------------------------------------------------- - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, Ts... args ) <===] - // [NB: expand variadic template "Ts... args" to empty and rename "Field" as empty] - static __host__ __device__ inline fptype& - decodeRecord( fptype* buffer ) + // A class describing the internal layout of memory buffers for Gs + // This implementation uses a plain ARRAY[nevt] + // [If many implementations are used, a suffix _ARRAYv1 should be appended to the class name] + class MemoryAccessGsBase //_ARRAYv1 { - constexpr int ievt = 0; - return buffer[ievt]; // ARRAY[nevt] - } -}; - -//---------------------------------------------------------------------------- - -// A class providing access to memory buffers for a given event, based on explicit event numbers -// Its methods use the MemoryAccessHelper templates - note the use of the template keyword in template function instantiations -class MemoryAccessGs : public MemoryAccessGsBase -{ -public: - - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] - static constexpr auto ieventAccessRecord = MemoryAccessHelper::ieventAccessRecord; - - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (const) ===> const fptype* ieventAccessRecordConst( const fptype* buffer, const int ievt ) <===] - static constexpr auto ieventAccessRecordConst = MemoryAccessHelper::ieventAccessRecordConst; - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer ) <===] - static constexpr auto decodeRecord = MemoryAccessHelper::decodeRecord; - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (const) ===> const fptype& decodeRecordConst( const fptype* buffer ) <===] - static constexpr auto decodeRecordConst = - MemoryAccessHelper::template decodeRecordConst<>; - - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (non-const) ===> fptype& ieventAccess( fptype* buffer, const ievt ) <===] - static constexpr auto ieventAccess = - MemoryAccessHelper::template ieventAccessField<>; - - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (const) ===> const fptype& ieventAccessConst( const fptype* buffer, const ievt ) <===] - static constexpr auto ieventAccessConst = - MemoryAccessHelper::template ieventAccessFieldConst<>; -}; - -//---------------------------------------------------------------------------- - -// A class providing access to memory buffers for a given event, based on implicit kernel rules -// Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations -template -class KernelAccessGs -{ -public: - - // Expose selected functions from MemoryAccessGs - static constexpr auto ieventAccessRecord = MemoryAccessGs::ieventAccessRecord; - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (non-const, SCALAR) ===> fptype& kernelAccess( fptype* buffer ) <===] - static constexpr auto kernelAccess_s = - KernelAccessHelper::template kernelAccessField<>; // requires cuda 11.4 - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) - // [Signature (non-const, SCALAR OR VECTOR) ===> fptype_sv& kernelAccess( fptype* buffer ) <===] - static __host__ __device__ inline fptype_sv& - kernelAccess( fptype* buffer ) + private: + + friend class MemoryAccessHelper; + friend class KernelAccessHelper; + friend class KernelAccessHelper; + + //-------------------------------------------------------------------------- + // NB all KernelLaunchers assume that memory access can be decomposed as "accessField = decodeRecord( accessRecord )" + // (in other words: first locate the event record for a given event, then locate an element in that record) + //-------------------------------------------------------------------------- + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] + static __host__ __device__ inline fptype* + ieventAccessRecord( fptype* buffer, + const int ievt ) + { + return &( buffer[ievt] ); // ARRAY[nevt] + } + + //-------------------------------------------------------------------------- + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, Ts... args ) <===] + // [NB: expand variadic template "Ts... args" to empty and rename "Field" as empty] + static __host__ __device__ inline fptype& + decodeRecord( fptype* buffer ) + { + constexpr int ievt = 0; + return buffer[ievt]; // ARRAY[nevt] + } + }; + + //---------------------------------------------------------------------------- + + // A class providing access to memory buffers for a given event, based on explicit event numbers + // Its methods use the MemoryAccessHelper templates - note the use of the template keyword in template function instantiations + class MemoryAccessGs : public MemoryAccessGsBase + { + public: + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] + static constexpr auto ieventAccessRecord = MemoryAccessHelper::ieventAccessRecord; + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (const) ===> const fptype* ieventAccessRecordConst( const fptype* buffer, const int ievt ) <===] + static constexpr auto ieventAccessRecordConst = MemoryAccessHelper::ieventAccessRecordConst; + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer ) <===] + static constexpr auto decodeRecord = MemoryAccessHelper::decodeRecord; + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (const) ===> const fptype& decodeRecordConst( const fptype* buffer ) <===] + static constexpr auto decodeRecordConst = + MemoryAccessHelper::template decodeRecordConst<>; + + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (non-const) ===> fptype& ieventAccess( fptype* buffer, const ievt ) <===] + static constexpr auto ieventAccess = + MemoryAccessHelper::template ieventAccessField<>; + + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (const) ===> const fptype& ieventAccessConst( const fptype* buffer, const ievt ) <===] + static constexpr auto ieventAccessConst = + MemoryAccessHelper::template ieventAccessFieldConst<>; + }; + + //---------------------------------------------------------------------------- + + // A class providing access to memory buffers for a given event, based on implicit kernel rules + // Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations + template + class KernelAccessGs { - fptype& out = kernelAccess_s( buffer ); + public: + + // Expose selected functions from MemoryAccessGs + static constexpr auto ieventAccessRecord = MemoryAccessGs::ieventAccessRecord; + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (non-const, SCALAR) ===> fptype& kernelAccess( fptype* buffer ) <===] + static constexpr auto kernelAccess_s = + KernelAccessHelper::template kernelAccessField<>; // requires cuda 11.4 + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) + // [Signature (non-const, SCALAR OR VECTOR) ===> fptype_sv& kernelAccess( fptype* buffer ) <===] + static __host__ __device__ inline fptype_sv& + kernelAccess( fptype* buffer ) + { + fptype& out = kernelAccess_s( buffer ); #ifndef MGONGPU_CPPSIMD - return out; + return out; #else - // NB: derived from MemoryAccessMomenta, restricting the implementation to contiguous aligned arrays (#435) - static_assert( mg5amcCpu::HostBufferGs::isaligned() ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) - //assert( (size_t)( buffer ) % mgOnGpu::cppAlign == 0 ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) - return mg5amcCpu::fptypevFromAlignedArray( out ); // SIMD bulk load of neppV, use reinterpret_cast + // NB: derived from MemoryAccessMomenta, restricting the implementation to contiguous aligned arrays (#435) + static_assert( mg5amcCpu::HostBufferGs::isaligned() ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) + //assert( (size_t)( buffer ) % mgOnGpu::cppAlign == 0 ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) + return mg5amcCpu::fptypevFromAlignedArray( out ); // SIMD bulk load of neppV, use reinterpret_cast #endif - } - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (const, SCALAR) ===> const fptype& kernelAccessConst( const fptype* buffer ) <===] - static constexpr auto kernelAccessConst_s = - KernelAccessHelper::template kernelAccessFieldConst<>; // requires cuda 11.4 - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) - // [Signature (const, SCALAR OR VECTOR) ===> const fptype_sv& kernelAccess( const fptype* buffer ) <===] - static __host__ __device__ inline const fptype_sv& - kernelAccessConst( const fptype* buffer ) - { - const fptype& out = kernelAccessConst_s( buffer ); + } + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (const, SCALAR) ===> const fptype& kernelAccessConst( const fptype* buffer ) <===] + static constexpr auto kernelAccessConst_s = + KernelAccessHelper::template kernelAccessFieldConst<>; // requires cuda 11.4 + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) + // [Signature (const, SCALAR OR VECTOR) ===> const fptype_sv& kernelAccess( const fptype* buffer ) <===] + static __host__ __device__ inline const fptype_sv& + kernelAccessConst( const fptype* buffer ) + { + const fptype& out = kernelAccessConst_s( buffer ); #ifndef MGONGPU_CPPSIMD - return out; + return out; #else - // NB: derived from MemoryAccessMomenta, restricting the implementation to contiguous aligned arrays (#435) - static_assert( mg5amcCpu::HostBufferGs::isaligned() ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) - //assert( (size_t)( buffer ) % mgOnGpu::cppAlign == 0 ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) - return mg5amcCpu::fptypevFromAlignedArray( out ); // SIMD bulk load of neppV, use reinterpret_cast + // NB: derived from MemoryAccessMomenta, restricting the implementation to contiguous aligned arrays (#435) + static_assert( mg5amcCpu::HostBufferGs::isaligned() ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) + //assert( (size_t)( buffer ) % mgOnGpu::cppAlign == 0 ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) + return mg5amcCpu::fptypevFromAlignedArray( out ); // SIMD bulk load of neppV, use reinterpret_cast #endif - } -}; + } + }; + + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- + typedef KernelAccessGs HostAccessGs; + typedef KernelAccessGs DeviceAccessGs; -typedef KernelAccessGs HostAccessGs; -typedef KernelAccessGs DeviceAccessGs; + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- +} // end namespace mg5amcGpu/mg5amcCpu #endif // MemoryAccessGs_H diff --git a/epochX/cudacpp/gq_ttq.sa/SubProcesses/MemoryAccessMatrixElements.h b/epochX/cudacpp/gq_ttq.sa/SubProcesses/MemoryAccessMatrixElements.h index b2a82d9acf..f32e6fea5b 100644 --- a/epochX/cudacpp/gq_ttq.sa/SubProcesses/MemoryAccessMatrixElements.h +++ b/epochX/cudacpp/gq_ttq.sa/SubProcesses/MemoryAccessMatrixElements.h @@ -12,126 +12,135 @@ #include "MemoryAccessVectors.h" #include "MemoryBuffers.h" // for HostBufferMatrixElements::isaligned -//---------------------------------------------------------------------------- - -// A class describing the internal layout of memory buffers for matrix elements -// This implementation uses a plain ARRAY[nevt] -// [If many implementations are used, a suffix _ARRAYv1 should be appended to the class name] -class MemoryAccessMatrixElementsBase //_ARRAYv1 +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { -private: - - friend class MemoryAccessHelper; - friend class KernelAccessHelper; - friend class KernelAccessHelper; - - //-------------------------------------------------------------------------- - // NB all KernelLaunchers assume that memory access can be decomposed as "accessField = decodeRecord( accessRecord )" - // (in other words: first locate the event record for a given event, then locate an element in that record) - //-------------------------------------------------------------------------- - - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] - static __host__ __device__ inline fptype* - ieventAccessRecord( fptype* buffer, - const int ievt ) - { - return &( buffer[ievt] ); // ARRAY[nevt] - } + //---------------------------------------------------------------------------- - //-------------------------------------------------------------------------- - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, Ts... args ) <===] - // [NB: expand variadic template "Ts... args" to empty and rename "Field" as empty] - static __host__ __device__ inline fptype& - decodeRecord( fptype* buffer ) + // A class describing the internal layout of memory buffers for matrix elements + // This implementation uses a plain ARRAY[nevt] + // [If many implementations are used, a suffix _ARRAYv1 should be appended to the class name] + class MemoryAccessMatrixElementsBase //_ARRAYv1 { - constexpr int ievt = 0; - return buffer[ievt]; // ARRAY[nevt] - } -}; - -//---------------------------------------------------------------------------- - -// A class providing access to memory buffers for a given event, based on explicit event numbers -// Its methods use the MemoryAccessHelper templates - note the use of the template keyword in template function instantiations -class MemoryAccessMatrixElements : public MemoryAccessMatrixElementsBase -{ -public: - - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] - static constexpr auto ieventAccessRecord = MemoryAccessHelper::ieventAccessRecord; - - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (const) ===> const fptype* ieventAccessRecordConst( const fptype* buffer, const int ievt ) <===] - static constexpr auto ieventAccessRecordConst = MemoryAccessHelper::ieventAccessRecordConst; - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer ) <===] - static constexpr auto decodeRecord = MemoryAccessHelper::decodeRecord; - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (const) ===> const fptype& decodeRecordConst( const fptype* buffer ) <===] - static constexpr auto decodeRecordConst = - MemoryAccessHelper::template decodeRecordConst<>; - - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (non-const) ===> fptype& ieventAccess( fptype* buffer, const ievt ) <===] - static constexpr auto ieventAccess = - MemoryAccessHelper::template ieventAccessField<>; - - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (const) ===> const fptype& ieventAccessConst( const fptype* buffer, const ievt ) <===] - static constexpr auto ieventAccessConst = - MemoryAccessHelper::template ieventAccessFieldConst<>; -}; - -//---------------------------------------------------------------------------- - -// A class providing access to memory buffers for a given event, based on implicit kernel rules -// Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations -template -class KernelAccessMatrixElements -{ -public: - - // Expose selected functions from MemoryAccessMatrixElements - static constexpr auto ieventAccessRecord = MemoryAccessMatrixElements::ieventAccessRecord; - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (non-const, SCALAR) ===> fptype& kernelAccess_s( fptype* buffer ) <===] - static constexpr auto kernelAccess_s = - KernelAccessHelper::template kernelAccessField<>; // requires cuda 11.4 - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) - // [Signature (non const, SCALAR OR VECTOR) ===> fptype_sv& kernelAccess( const fptype* buffer ) <===] - static __host__ __device__ inline fptype_sv& - kernelAccess( fptype* buffer ) + private: + + friend class MemoryAccessHelper; + friend class KernelAccessHelper; + friend class KernelAccessHelper; + + //-------------------------------------------------------------------------- + // NB all KernelLaunchers assume that memory access can be decomposed as "accessField = decodeRecord( accessRecord )" + // (in other words: first locate the event record for a given event, then locate an element in that record) + //-------------------------------------------------------------------------- + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] + static __host__ __device__ inline fptype* + ieventAccessRecord( fptype* buffer, + const int ievt ) + { + return &( buffer[ievt] ); // ARRAY[nevt] + } + + //-------------------------------------------------------------------------- + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, Ts... args ) <===] + // [NB: expand variadic template "Ts... args" to empty and rename "Field" as empty] + static __host__ __device__ inline fptype& + decodeRecord( fptype* buffer ) + { + constexpr int ievt = 0; + return buffer[ievt]; // ARRAY[nevt] + } + }; + + //---------------------------------------------------------------------------- + + // A class providing access to memory buffers for a given event, based on explicit event numbers + // Its methods use the MemoryAccessHelper templates - note the use of the template keyword in template function instantiations + class MemoryAccessMatrixElements : public MemoryAccessMatrixElementsBase + { + public: + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] + static constexpr auto ieventAccessRecord = MemoryAccessHelper::ieventAccessRecord; + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (const) ===> const fptype* ieventAccessRecordConst( const fptype* buffer, const int ievt ) <===] + static constexpr auto ieventAccessRecordConst = MemoryAccessHelper::ieventAccessRecordConst; + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer ) <===] + static constexpr auto decodeRecord = MemoryAccessHelper::decodeRecord; + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (const) ===> const fptype& decodeRecordConst( const fptype* buffer ) <===] + static constexpr auto decodeRecordConst = + MemoryAccessHelper::template decodeRecordConst<>; + + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (non-const) ===> fptype& ieventAccess( fptype* buffer, const ievt ) <===] + static constexpr auto ieventAccess = + MemoryAccessHelper::template ieventAccessField<>; + + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (const) ===> const fptype& ieventAccessConst( const fptype* buffer, const ievt ) <===] + static constexpr auto ieventAccessConst = + MemoryAccessHelper::template ieventAccessFieldConst<>; + }; + + //---------------------------------------------------------------------------- + + // A class providing access to memory buffers for a given event, based on implicit kernel rules + // Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations + template + class KernelAccessMatrixElements { - fptype& out = kernelAccess_s( buffer ); + public: + + // Expose selected functions from MemoryAccessMatrixElements + static constexpr auto ieventAccessRecord = MemoryAccessMatrixElements::ieventAccessRecord; + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (non-const, SCALAR) ===> fptype& kernelAccess_s( fptype* buffer ) <===] + static constexpr auto kernelAccess_s = + KernelAccessHelper::template kernelAccessField<>; // requires cuda 11.4 + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) + // [Signature (non const, SCALAR OR VECTOR) ===> fptype_sv& kernelAccess( const fptype* buffer ) <===] + static __host__ __device__ inline fptype_sv& + kernelAccess( fptype* buffer ) + { + fptype& out = kernelAccess_s( buffer ); #ifndef MGONGPU_CPPSIMD - return out; + return out; #else - // NB: derived from MemoryAccessMomenta, restricting the implementation to contiguous aligned arrays (#435) - static_assert( mg5amcCpu::HostBufferMatrixElements::isaligned() ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) - //assert( (size_t)( buffer ) % mgOnGpu::cppAlign == 0 ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) - return mg5amcCpu::fptypevFromAlignedArray( out ); // SIMD bulk load of neppV, use reinterpret_cast + // NB: derived from MemoryAccessMomenta, restricting the implementation to contiguous aligned arrays (#435) + static_assert( mg5amcCpu::HostBufferMatrixElements::isaligned() ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) + //assert( (size_t)( buffer ) % mgOnGpu::cppAlign == 0 ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) + return mg5amcCpu::fptypevFromAlignedArray( out ); // SIMD bulk load of neppV, use reinterpret_cast #endif - } + } + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (const) ===> const fptype& kernelAccessConst( const fptype* buffer ) <===] + static constexpr auto kernelAccessConst = + KernelAccessHelper::template kernelAccessFieldConst<>; // requires cuda 11.4 + }; - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (const) ===> const fptype& kernelAccessConst( const fptype* buffer ) <===] - static constexpr auto kernelAccessConst = - KernelAccessHelper::template kernelAccessFieldConst<>; // requires cuda 11.4 -}; + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- + typedef KernelAccessMatrixElements HostAccessMatrixElements; + typedef KernelAccessMatrixElements DeviceAccessMatrixElements; -typedef KernelAccessMatrixElements HostAccessMatrixElements; -typedef KernelAccessMatrixElements DeviceAccessMatrixElements; + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- +} // end namespace mg5amcGpu/mg5amcCpu #endif // MemoryAccessMatrixElements_H diff --git a/epochX/cudacpp/gq_ttq.sa/SubProcesses/MemoryAccessMomenta.h b/epochX/cudacpp/gq_ttq.sa/SubProcesses/MemoryAccessMomenta.h index 0ac4faa3c7..29266de32c 100644 --- a/epochX/cudacpp/gq_ttq.sa/SubProcesses/MemoryAccessMomenta.h +++ b/epochX/cudacpp/gq_ttq.sa/SubProcesses/MemoryAccessMomenta.h @@ -12,261 +12,264 @@ #include "MemoryAccessHelpers.h" #include "MemoryAccessVectors.h" +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) #ifdef __CUDACC__ -using mg5amcGpu::CPPProcess; +namespace mg5amcGpu #else -using mg5amcCpu::CPPProcess; +namespace mg5amcCpu #endif - -//---------------------------------------------------------------------------- - -// A class describing the internal layout of memory buffers for momenta -// This implementation uses an AOSOA[npagM][npar][np4][neppM] where nevt=npagM*neppM -// [If many implementations are used, a suffix _AOSOAv1 should be appended to the class name] -class MemoryAccessMomentaBase //_AOSOAv1 { -public: + //---------------------------------------------------------------------------- + + // A class describing the internal layout of memory buffers for momenta + // This implementation uses an AOSOA[npagM][npar][np4][neppM] where nevt=npagM*neppM + // [If many implementations are used, a suffix _AOSOAv1 should be appended to the class name] + class MemoryAccessMomentaBase //_AOSOAv1 + { + public: - // Number of Events Per Page in the momenta AOSOA memory buffer layout - // (these are all best kept as a compile-time constants: see issue #23) + // Number of Events Per Page in the momenta AOSOA memory buffer layout + // (these are all best kept as a compile-time constants: see issue #23) #ifdef __CUDACC__ /* clang-format off */ - // ----------------------------------------------------------------------------------------------- - // --- GPUs: neppM is best set to a power of 2 times the number of fptype's in a 32-byte cacheline - // --- This is relevant to ensure coalesced access to momenta in global memory - // --- Note that neppR is hardcoded and may differ from neppM and neppV on some platforms - // ----------------------------------------------------------------------------------------------- - //static constexpr int neppM = 64/sizeof(fptype); // 2x 32-byte GPU cache lines (512 bits): 8 (DOUBLE) or 16 (FLOAT) - static constexpr int neppM = 32/sizeof(fptype); // (DEFAULT) 32-byte GPU cache line (256 bits): 4 (DOUBLE) or 8 (FLOAT) - //static constexpr int neppM = 1; // *** NB: this is equivalent to AOS *** (slower: 1.03E9 instead of 1.11E9 in eemumu) + // ----------------------------------------------------------------------------------------------- + // --- GPUs: neppM is best set to a power of 2 times the number of fptype's in a 32-byte cacheline + // --- This is relevant to ensure coalesced access to momenta in global memory + // --- Note that neppR is hardcoded and may differ from neppM and neppV on some platforms + // ----------------------------------------------------------------------------------------------- + //static constexpr int neppM = 64/sizeof(fptype); // 2x 32-byte GPU cache lines (512 bits): 8 (DOUBLE) or 16 (FLOAT) + static constexpr int neppM = 32/sizeof(fptype); // (DEFAULT) 32-byte GPU cache line (256 bits): 4 (DOUBLE) or 8 (FLOAT) + //static constexpr int neppM = 1; // *** NB: this is equivalent to AOS *** (slower: 1.03E9 instead of 1.11E9 in eemumu) #else - // ----------------------------------------------------------------------------------------------- - // --- CPUs: neppM is best set equal to the number of fptype's (neppV) in a vector register - // --- This is relevant to ensure faster access to momenta from C++ memory cache lines - // --- However, neppM is now decoupled from neppV (issue #176) and can be separately hardcoded - // --- In practice, neppR, neppM and neppV could now (in principle) all be different - // ----------------------------------------------------------------------------------------------- + // ----------------------------------------------------------------------------------------------- + // --- CPUs: neppM is best set equal to the number of fptype's (neppV) in a vector register + // --- This is relevant to ensure faster access to momenta from C++ memory cache lines + // --- However, neppM is now decoupled from neppV (issue #176) and can be separately hardcoded + // --- In practice, neppR, neppM and neppV could now (in principle) all be different + // ----------------------------------------------------------------------------------------------- #ifdef MGONGPU_CPPSIMD - static constexpr int neppM = MGONGPU_CPPSIMD; // (DEFAULT) neppM=neppV for optimal performance - //static constexpr int neppM = 64/sizeof(fptype); // maximum CPU vector width (512 bits): 8 (DOUBLE) or 16 (FLOAT) - //static constexpr int neppM = 32/sizeof(fptype); // lower CPU vector width (256 bits): 4 (DOUBLE) or 8 (FLOAT) - //static constexpr int neppM = 1; // *** NB: this is equivalent to AOS *** (slower: 4.66E6 instead of 5.09E9 in eemumu) - //static constexpr int neppM = MGONGPU_CPPSIMD*2; // FOR TESTS + static constexpr int neppM = MGONGPU_CPPSIMD; // (DEFAULT) neppM=neppV for optimal performance + //static constexpr int neppM = 64/sizeof(fptype); // maximum CPU vector width (512 bits): 8 (DOUBLE) or 16 (FLOAT) + //static constexpr int neppM = 32/sizeof(fptype); // lower CPU vector width (256 bits): 4 (DOUBLE) or 8 (FLOAT) + //static constexpr int neppM = 1; // *** NB: this is equivalent to AOS *** (slower: 4.66E6 instead of 5.09E9 in eemumu) + //static constexpr int neppM = MGONGPU_CPPSIMD*2; // FOR TESTS #else - static constexpr int neppM = 1; // (DEFAULT) neppM=neppV for optimal performance (NB: this is equivalent to AOS) + static constexpr int neppM = 1; // (DEFAULT) neppM=neppV for optimal performance (NB: this is equivalent to AOS) #endif #endif /* clang-format on */ - // SANITY CHECK: check that neppM is a power of two - static_assert( ispoweroftwo( neppM ), "neppM is not a power of 2" ); + // SANITY CHECK: check that neppM is a power of two + static_assert( ispoweroftwo( neppM ), "neppM is not a power of 2" ); -private: + private: - friend class MemoryAccessHelper; - friend class KernelAccessHelper; - friend class KernelAccessHelper; + friend class MemoryAccessHelper; + friend class KernelAccessHelper; + friend class KernelAccessHelper; - // The number of components of a 4-momentum - static constexpr int np4 = CPPProcess::np4; + // The number of components of a 4-momentum + static constexpr int np4 = CPPProcess::np4; - // The number of particles in this physics process - static constexpr int npar = CPPProcess::npar; + // The number of particles in this physics process + static constexpr int npar = CPPProcess::npar; - //-------------------------------------------------------------------------- - // NB all KernelLaunchers assume that memory access can be decomposed as "accessField = decodeRecord( accessRecord )" - // (in other words: first locate the event record for a given event, then locate an element in that record) - //-------------------------------------------------------------------------- + //-------------------------------------------------------------------------- + // NB all KernelLaunchers assume that memory access can be decomposed as "accessField = decodeRecord( accessRecord )" + // (in other words: first locate the event record for a given event, then locate an element in that record) + //-------------------------------------------------------------------------- - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] - static __host__ __device__ inline fptype* - ieventAccessRecord( fptype* buffer, - const int ievt ) - { - const int ipagM = ievt / neppM; // #event "M-page" - const int ieppM = ievt % neppM; // #event in the current event M-page - constexpr int ip4 = 0; - constexpr int ipar = 0; - return &( buffer[ipagM * npar * np4 * neppM + ipar * np4 * neppM + ip4 * neppM + ieppM] ); // AOSOA[ipagM][ipar][ip4][ieppM] - } - - //-------------------------------------------------------------------------- - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, Ts... args ) <===] - // [NB: expand variadic template "Ts... args" to "const int ip4, const int ipar" and rename "Field" as "Ip4Ipar"] - static __host__ __device__ inline fptype& - decodeRecord( fptype* buffer, - const int ip4, - const int ipar ) + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] + static __host__ __device__ inline fptype* + ieventAccessRecord( fptype* buffer, + const int ievt ) + { + const int ipagM = ievt / neppM; // #event "M-page" + const int ieppM = ievt % neppM; // #event in the current event M-page + constexpr int ip4 = 0; + constexpr int ipar = 0; + return &( buffer[ipagM * npar * np4 * neppM + ipar * np4 * neppM + ip4 * neppM + ieppM] ); // AOSOA[ipagM][ipar][ip4][ieppM] + } + + //-------------------------------------------------------------------------- + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, Ts... args ) <===] + // [NB: expand variadic template "Ts... args" to "const int ip4, const int ipar" and rename "Field" as "Ip4Ipar"] + static __host__ __device__ inline fptype& + decodeRecord( fptype* buffer, + const int ip4, + const int ipar ) + { + constexpr int ipagM = 0; + constexpr int ieppM = 0; + return buffer[ipagM * npar * np4 * neppM + ipar * np4 * neppM + ip4 * neppM + ieppM]; // AOSOA[ipagM][ipar][ip4][ieppM] + } + }; + + //---------------------------------------------------------------------------- + + // A class providing access to memory buffers for a given event, based on explicit event numbers + // Its methods use the MemoryAccessHelper templates - note the use of the template keyword in template function instantiations + class MemoryAccessMomenta : public MemoryAccessMomentaBase { - constexpr int ipagM = 0; - constexpr int ieppM = 0; - return buffer[ipagM * npar * np4 * neppM + ipar * np4 * neppM + ip4 * neppM + ieppM]; // AOSOA[ipagM][ipar][ip4][ieppM] - } -}; + public: + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] + static constexpr auto ieventAccessRecord = MemoryAccessHelper::ieventAccessRecord; + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (const) ===> const fptype* ieventAccessRecordConst( const fptype* buffer, const int ievt ) <===] + static constexpr auto ieventAccessRecordConst = MemoryAccessHelper::ieventAccessRecordConst; + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, const int ipar, const int ipar ) <===] + static constexpr auto decodeRecordIp4Ipar = MemoryAccessHelper::decodeRecord; + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (const) ===> const fptype& decodeRecordConst( const fptype* buffer, const int ipar, const int ipar ) <===] + static constexpr auto decodeRecordIp4IparConst = + MemoryAccessHelper::template decodeRecordConst; + + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (non-const) ===> fptype& ieventAccessIp4Ipar( fptype* buffer, const ievt, const int ipar, const int ipar ) <===] + static constexpr auto ieventAccessIp4Ipar = + MemoryAccessHelper::template ieventAccessField; + + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (const) ===> const fptype& ieventAccessIp4IparConst( const fptype* buffer, const ievt, const int ipar, const int ipar ) <===] + // DEFAULT VERSION + static constexpr auto ieventAccessIp4IparConst = + MemoryAccessHelper::template ieventAccessFieldConst; + + /* + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (const) ===> const fptype& ieventAccessIp4IparConst( const fptype* buffer, const ievt, const int ipar, const int ipar ) <===] + // DEBUG VERSION WITH PRINTOUTS + static __host__ __device__ inline const fptype& + ieventAccessIp4IparConst( const fptype* buffer, + const int ievt, + const int ip4, + const int ipar ) + { + const fptype& out = MemoryAccessHelper::template ieventAccessFieldConst( buffer, ievt, ip4, ipar ); + printf( "ipar=%2d ip4=%2d ievt=%8d out=%8.3f\n", ipar, ip4, ievt, out ); + return out; + } + */ + }; -//---------------------------------------------------------------------------- + //---------------------------------------------------------------------------- -// A class providing access to memory buffers for a given event, based on explicit event numbers -// Its methods use the MemoryAccessHelper templates - note the use of the template keyword in template function instantiations -class MemoryAccessMomenta : public MemoryAccessMomentaBase -{ -public: - - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] - static constexpr auto ieventAccessRecord = MemoryAccessHelper::ieventAccessRecord; - - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (const) ===> const fptype* ieventAccessRecordConst( const fptype* buffer, const int ievt ) <===] - static constexpr auto ieventAccessRecordConst = MemoryAccessHelper::ieventAccessRecordConst; - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, const int ipar, const int ipar ) <===] - static constexpr auto decodeRecordIp4Ipar = MemoryAccessHelper::decodeRecord; - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (const) ===> const fptype& decodeRecordConst( const fptype* buffer, const int ipar, const int ipar ) <===] - static constexpr auto decodeRecordIp4IparConst = - MemoryAccessHelper::template decodeRecordConst; - - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (non-const) ===> fptype& ieventAccessIp4Ipar( fptype* buffer, const ievt, const int ipar, const int ipar ) <===] - static constexpr auto ieventAccessIp4Ipar = - MemoryAccessHelper::template ieventAccessField; - - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (const) ===> const fptype& ieventAccessIp4IparConst( const fptype* buffer, const ievt, const int ipar, const int ipar ) <===] - // DEFAULT VERSION - static constexpr auto ieventAccessIp4IparConst = - MemoryAccessHelper::template ieventAccessFieldConst; - - /* - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (const) ===> const fptype& ieventAccessIp4IparConst( const fptype* buffer, const ievt, const int ipar, const int ipar ) <===] - // DEBUG VERSION WITH PRINTOUTS - static __host__ __device__ inline const fptype& - ieventAccessIp4IparConst( const fptype* buffer, - const int ievt, - const int ip4, - const int ipar ) + // A class providing access to memory buffers for a given event, based on implicit kernel rules + // Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations + template + class KernelAccessMomenta { - const fptype& out = MemoryAccessHelper::template ieventAccessFieldConst( buffer, ievt, ip4, ipar ); - printf( "ipar=%2d ip4=%2d ievt=%8d out=%8.3f\n", ipar, ip4, ievt, out ); - return out; - } - */ -}; - -//---------------------------------------------------------------------------- - -// A class providing access to memory buffers for a given event, based on implicit kernel rules -// Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations -template -class KernelAccessMomenta -{ -public: - - // Expose selected functions from MemoryAccessMomenta - static constexpr auto ieventAccessRecordConst = MemoryAccessMomenta::ieventAccessRecordConst; - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (non-const, SCALAR) ===> fptype& kernelAccessIp4Ipar( fptype* buffer, const int ipar, const int ipar ) <===] - static constexpr auto kernelAccessIp4Ipar = - KernelAccessHelper::template kernelAccessField; - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (const, SCALAR) ===> const fptype& kernelAccessIp4IparConst( const fptype* buffer, const int ipar, const int ipar ) <===] - // DEFAULT VERSION - static constexpr auto kernelAccessIp4IparConst_s = - KernelAccessHelper::template kernelAccessFieldConst; - - /* - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (const, SCALAR) ===> const fptype& kernelAccessIp4IparConst( const fptype* buffer, const int ipar, const int ipar ) <===] - // DEBUG VERSION WITH PRINTOUTS - static __host__ __device__ inline const fptype& - kernelAccessIp4IparConst_s( const fptype* buffer, + public: + + // Expose selected functions from MemoryAccessMomenta + static constexpr auto ieventAccessRecordConst = MemoryAccessMomenta::ieventAccessRecordConst; + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (non-const, SCALAR) ===> fptype& kernelAccessIp4Ipar( fptype* buffer, const int ipar, const int ipar ) <===] + static constexpr auto kernelAccessIp4Ipar = + KernelAccessHelper::template kernelAccessField; + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (const, SCALAR) ===> const fptype& kernelAccessIp4IparConst( const fptype* buffer, const int ipar, const int ipar ) <===] + // DEFAULT VERSION + static constexpr auto kernelAccessIp4IparConst_s = + KernelAccessHelper::template kernelAccessFieldConst; + + /* + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (const, SCALAR) ===> const fptype& kernelAccessIp4IparConst( const fptype* buffer, const int ipar, const int ipar ) <===] + // DEBUG VERSION WITH PRINTOUTS + static __host__ __device__ inline const fptype& + kernelAccessIp4IparConst_s( const fptype* buffer, + const int ip4, + const int ipar ) + { + const fptype& out = KernelAccessHelper::template kernelAccessFieldConst( buffer, ip4, ipar ); + printf( "ipar=%2d ip4=%2d ievt='kernel' out=%8.3f\n", ipar, ip4, out ); + return out; + } + */ + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (const, SCALAR OR VECTOR) ===> fptype_sv kernelAccessIp4IparConst( const fptype* buffer, const int ipar, const int ipar ) <===] + // FIXME? Eventually return by const reference and support aligned arrays only? + // FIXME? Currently return by value to support also unaligned and arbitrary arrays + static __host__ __device__ inline fptype_sv + kernelAccessIp4IparConst( const fptype* buffer, const int ip4, const int ipar ) - { - const fptype& out = KernelAccessHelper::template kernelAccessFieldConst( buffer, ip4, ipar ); - printf( "ipar=%2d ip4=%2d ievt='kernel' out=%8.3f\n", ipar, ip4, out ); - return out; - } - */ - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (const, SCALAR OR VECTOR) ===> fptype_sv kernelAccessIp4IparConst( const fptype* buffer, const int ipar, const int ipar ) <===] - // FIXME? Eventually return by const reference and support aligned arrays only? - // FIXME? Currently return by value to support also unaligned and arbitrary arrays - static __host__ __device__ inline fptype_sv - kernelAccessIp4IparConst( const fptype* buffer, - const int ip4, - const int ipar ) - { - const fptype& out = kernelAccessIp4IparConst_s( buffer, ip4, ipar ); + { + const fptype& out = kernelAccessIp4IparConst_s( buffer, ip4, ipar ); #ifndef MGONGPU_CPPSIMD - return out; + return out; #else - constexpr int neppM = MemoryAccessMomentaBase::neppM; - constexpr bool useContiguousEventsIfPossible = true; // DEFAULT - //constexpr bool useContiguousEventsIfPossible = false; // FOR PERFORMANCE TESTS (treat as arbitrary array even if it is an AOSOA) - // Use c++17 "if constexpr": compile-time branching - if constexpr( useContiguousEventsIfPossible && ( neppM >= neppV ) && ( neppM % neppV == 0 ) ) - { - //constexpr bool skipAlignmentCheck = true; // FASTEST (SEGFAULTS IF MISALIGNED ACCESS, NEEDS A SANITY CHECK ELSEWHERE!) - constexpr bool skipAlignmentCheck = false; // DEFAULT: A BIT SLOWER BUT SAFER [ALLOWS MISALIGNED ACCESS] - if constexpr( skipAlignmentCheck ) - { - //static bool first=true; if( first ){ std::cout << "WARNING! assume aligned AOSOA, skip check" << std::endl; first=false; } // SLOWER (5.06E6) - // FASTEST? (5.09E6 in eemumu 512y) - // This assumes alignment for momenta1d without checking - causes segmentation fault in reinterpret_cast if not aligned! - return mg5amcCpu::fptypevFromAlignedArray( out ); // use reinterpret_cast - } - else if( (size_t)( buffer ) % mgOnGpu::cppAlign == 0 ) + constexpr int neppM = MemoryAccessMomentaBase::neppM; + constexpr bool useContiguousEventsIfPossible = true; // DEFAULT + //constexpr bool useContiguousEventsIfPossible = false; // FOR PERFORMANCE TESTS (treat as arbitrary array even if it is an AOSOA) + // Use c++17 "if constexpr": compile-time branching + if constexpr( useContiguousEventsIfPossible && ( neppM >= neppV ) && ( neppM % neppV == 0 ) ) { - //static bool first=true; if( first ){ std::cout << "WARNING! aligned AOSOA, reinterpret cast" << std::endl; first=false; } // SLOWER (5.00E6) - // DEFAULT! A tiny bit (<1%) slower because of the alignment check (5.07E6 in eemumu 512y) - // This explicitly checks buffer alignment to avoid segmentation faults in reinterpret_cast - return mg5amcCpu::fptypevFromAlignedArray( out ); // SIMD bulk load of neppV, use reinterpret_cast + //constexpr bool skipAlignmentCheck = true; // FASTEST (SEGFAULTS IF MISALIGNED ACCESS, NEEDS A SANITY CHECK ELSEWHERE!) + constexpr bool skipAlignmentCheck = false; // DEFAULT: A BIT SLOWER BUT SAFER [ALLOWS MISALIGNED ACCESS] + if constexpr( skipAlignmentCheck ) + { + //static bool first=true; if( first ){ std::cout << "WARNING! assume aligned AOSOA, skip check" << std::endl; first=false; } // SLOWER (5.06E6) + // FASTEST? (5.09E6 in eemumu 512y) + // This assumes alignment for momenta1d without checking - causes segmentation fault in reinterpret_cast if not aligned! + return mg5amcCpu::fptypevFromAlignedArray( out ); // use reinterpret_cast + } + else if( (size_t)( buffer ) % mgOnGpu::cppAlign == 0 ) + { + //static bool first=true; if( first ){ std::cout << "WARNING! aligned AOSOA, reinterpret cast" << std::endl; first=false; } // SLOWER (5.00E6) + // DEFAULT! A tiny bit (<1%) slower because of the alignment check (5.07E6 in eemumu 512y) + // This explicitly checks buffer alignment to avoid segmentation faults in reinterpret_cast + return mg5amcCpu::fptypevFromAlignedArray( out ); // SIMD bulk load of neppV, use reinterpret_cast + } + else + { + //static bool first=true; if( first ){ std::cout << "WARNING! AOSOA but no reinterpret cast" << std::endl; first=false; } // SLOWER (4.93E6) + // A bit (1%) slower (5.05E6 in eemumu 512y) + // This does not require buffer alignment, but it requires AOSOA with neppM>=neppV and neppM%neppV==0 + return mg5amcCpu::fptypevFromUnalignedArray( out ); // SIMD bulk load of neppV, do not use reinterpret_cast (fewer SIMD operations) + } } else { - //static bool first=true; if( first ){ std::cout << "WARNING! AOSOA but no reinterpret cast" << std::endl; first=false; } // SLOWER (4.93E6) - // A bit (1%) slower (5.05E6 in eemumu 512y) - // This does not require buffer alignment, but it requires AOSOA with neppM>=neppV and neppM%neppV==0 - return mg5amcCpu::fptypevFromUnalignedArray( out ); // SIMD bulk load of neppV, do not use reinterpret_cast (fewer SIMD operations) + //static bool first=true; if( first ){ std::cout << "WARNING! arbitrary array" << std::endl; first=false; } // SLOWER (5.08E6) + // ?!Used to be much slower, now a tiny bit faster for AOSOA?! (5.11E6 for AOSOA, 4.64E6 for AOS in eemumu 512y) + // This does not even require AOSOA with neppM>=neppV and neppM%neppV==0 (e.g. can be used with AOS neppM==1) + constexpr int ievt0 = 0; // just make it explicit in the code that buffer refers to a given ievt0 and decoderIeppV fetches event ievt0+ieppV + auto decoderIeppv = [buffer, ip4, ipar]( int ieppV ) + -> const fptype& + { return MemoryAccessMomenta::ieventAccessIp4IparConst( buffer, ievt0 + ieppV, ip4, ipar ); }; + return mg5amcCpu::fptypevFromArbitraryArray( decoderIeppv ); // iterate over ieppV in neppV (no SIMD) } +#endif } - else + + // Is this a HostAccess or DeviceAccess class? + // [this is only needed for a warning printout in rambo.h for nparf==1 #358] + static __host__ __device__ inline constexpr bool + isOnDevice() { - //static bool first=true; if( first ){ std::cout << "WARNING! arbitrary array" << std::endl; first=false; } // SLOWER (5.08E6) - // ?!Used to be much slower, now a tiny bit faster for AOSOA?! (5.11E6 for AOSOA, 4.64E6 for AOS in eemumu 512y) - // This does not even require AOSOA with neppM>=neppV and neppM%neppV==0 (e.g. can be used with AOS neppM==1) - constexpr int ievt0 = 0; // just make it explicit in the code that buffer refers to a given ievt0 and decoderIeppV fetches event ievt0+ieppV - auto decoderIeppv = [buffer, ip4, ipar]( int ieppV ) - -> const fptype& - { return MemoryAccessMomenta::ieventAccessIp4IparConst( buffer, ievt0 + ieppV, ip4, ipar ); }; - return mg5amcCpu::fptypevFromArbitraryArray( decoderIeppv ); // iterate over ieppV in neppV (no SIMD) + return onDevice; } -#endif - } + }; - // Is this a HostAccess or DeviceAccess class? - // [this is only needed for a warning printout in rambo.h for nparf==1 #358] - static __host__ __device__ inline constexpr bool - isOnDevice() - { - return onDevice; - } -}; + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- + typedef KernelAccessMomenta HostAccessMomenta; + typedef KernelAccessMomenta DeviceAccessMomenta; -typedef KernelAccessMomenta HostAccessMomenta; -typedef KernelAccessMomenta DeviceAccessMomenta; + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- +} // end namespace mg5amcGpu/mg5amcCpu #endif // MemoryAccessMomenta_H diff --git a/epochX/cudacpp/gq_ttq.sa/SubProcesses/MemoryAccessNumerators.h b/epochX/cudacpp/gq_ttq.sa/SubProcesses/MemoryAccessNumerators.h index b373fd6048..b152183b28 100644 --- a/epochX/cudacpp/gq_ttq.sa/SubProcesses/MemoryAccessNumerators.h +++ b/epochX/cudacpp/gq_ttq.sa/SubProcesses/MemoryAccessNumerators.h @@ -9,15 +9,24 @@ #include "MemoryAccessGs.h" -//---------------------------------------------------------------------------- +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif +{ + //---------------------------------------------------------------------------- + + // A class describing the internal layout of memory buffers for numerators + // This implementation reuses the plain ARRAY[nevt] implementation of MemoryAccessGs -// A class describing the internal layout of memory buffers for numerators -// This implementation reuses the plain ARRAY[nevt] implementation of MemoryAccessGs + typedef KernelAccessGs HostAccessNumerators; + typedef KernelAccessGs DeviceAccessNumerators; -typedef KernelAccessGs HostAccessNumerators; -typedef KernelAccessGs DeviceAccessNumerators; + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- +} // end namespace mg5amcGpu/mg5amcCpu #endif #endif // MemoryAccessNumerators_H diff --git a/epochX/cudacpp/gq_ttq.sa/SubProcesses/MemoryAccessWavefunctions.h b/epochX/cudacpp/gq_ttq.sa/SubProcesses/MemoryAccessWavefunctions.h index f42f0d34ed..5428aaf933 100644 --- a/epochX/cudacpp/gq_ttq.sa/SubProcesses/MemoryAccessWavefunctions.h +++ b/epochX/cudacpp/gq_ttq.sa/SubProcesses/MemoryAccessWavefunctions.h @@ -14,147 +14,156 @@ #define MGONGPU_TRIVIAL_WAVEFUNCTIONS 1 -//---------------------------------------------------------------------------- - -#ifndef MGONGPU_TRIVIAL_WAVEFUNCTIONS - -// A class describing the internal layout of memory buffers for wavefunctions -// This implementation uses an AOSOA[npagW][nw6][nx2][neppW] where nevt=npagW*neppW -// [If many implementations are used, a suffix _AOSOAv1 should be appended to the class name] -class MemoryAccessWavefunctionsBase //_AOSOAv1 +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { -public: - - // Number of Events Per Page in the wavefunction AOSOA memory buffer layout - static constexpr int neppW = 1; // AOS (just a test...) - -private: - - friend class MemoryAccessHelper; - friend class KernelAccessHelper; - friend class KernelAccessHelper; - - // The number of components of a (fermion or vector) wavefunction - static constexpr int nw6 = mgOnGpu::nw6; - - // The number of floating point components of a complex number - static constexpr int nx2 = mgOnGpu::nx2; + //---------------------------------------------------------------------------- - //-------------------------------------------------------------------------- - // NB all KernelLaunchers assume that memory access can be decomposed as "accessField = decodeRecord( accessRecord )" - // (in other words: first locate the event record for a given event, then locate an element in that record) - //-------------------------------------------------------------------------- +#ifndef MGONGPU_TRIVIAL_WAVEFUNCTIONS - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] - static __host__ __device__ inline fptype* - ieventAccessRecord( fptype* buffer, - const int ievt ) + // A class describing the internal layout of memory buffers for wavefunctions + // This implementation uses an AOSOA[npagW][nw6][nx2][neppW] where nevt=npagW*neppW + // [If many implementations are used, a suffix _AOSOAv1 should be appended to the class name] + class MemoryAccessWavefunctionsBase //_AOSOAv1 { - const int ipagW = ievt / neppW; // #event "W-page" - const int ieppW = ievt % neppW; // #event in the current event W-page - constexpr int iw6 = 0; - constexpr int ix2 = 0; - return &( buffer[ipagW * nw6 * nx2 * neppW + iw6 * nx2 * neppW + ix2 * neppW + ieppW] ); // AOSOA[ipagW][iw6][ix2][ieppW] - } - - //-------------------------------------------------------------------------- - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, Ts... args ) <===] - // [NB: expand variadic template "Ts... args" to "const int iw6, const int ix2" and rename "Field" as "Iw6Ix2"] - static __host__ __device__ inline fptype& - decodeRecord( fptype* buffer, - const int iw6, - const int ix2 ) + public: + + // Number of Events Per Page in the wavefunction AOSOA memory buffer layout + static constexpr int neppW = 1; // AOS (just a test...) + + private: + + friend class MemoryAccessHelper; + friend class KernelAccessHelper; + friend class KernelAccessHelper; + + // The number of components of a (fermion or vector) wavefunction + static constexpr int nw6 = mgOnGpu::nw6; + + // The number of floating point components of a complex number + static constexpr int nx2 = mgOnGpu::nx2; + + //-------------------------------------------------------------------------- + // NB all KernelLaunchers assume that memory access can be decomposed as "accessField = decodeRecord( accessRecord )" + // (in other words: first locate the event record for a given event, then locate an element in that record) + //-------------------------------------------------------------------------- + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] + static __host__ __device__ inline fptype* + ieventAccessRecord( fptype* buffer, + const int ievt ) + { + const int ipagW = ievt / neppW; // #event "W-page" + const int ieppW = ievt % neppW; // #event in the current event W-page + constexpr int iw6 = 0; + constexpr int ix2 = 0; + return &( buffer[ipagW * nw6 * nx2 * neppW + iw6 * nx2 * neppW + ix2 * neppW + ieppW] ); // AOSOA[ipagW][iw6][ix2][ieppW] + } + + //-------------------------------------------------------------------------- + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, Ts... args ) <===] + // [NB: expand variadic template "Ts... args" to "const int iw6, const int ix2" and rename "Field" as "Iw6Ix2"] + static __host__ __device__ inline fptype& + decodeRecord( fptype* buffer, + const int iw6, + const int ix2 ) + { + constexpr int ipagW = 0; + constexpr int ieppW = 0; + return buffer[ipagW * nw6 * nx2 * neppW + iw6 * nx2 * neppW + ix2 * neppW + ieppW]; // AOSOA[ipagW][iw6][ix2][ieppW] + } + }; + + //---------------------------------------------------------------------------- + + // A class providing access to memory buffers for a given event, based on explicit event numbers + // Its methods use the MemoryAccessHelper templates - note the use of the template keyword in template function instantiations + class MemoryAccessWavefunctions : public MemoryAccessWavefunctionsBase { - constexpr int ipagW = 0; - constexpr int ieppW = 0; - return buffer[ipagW * nw6 * nx2 * neppW + iw6 * nx2 * neppW + ix2 * neppW + ieppW]; // AOSOA[ipagW][iw6][ix2][ieppW] - } -}; - -//---------------------------------------------------------------------------- + public: -// A class providing access to memory buffers for a given event, based on explicit event numbers -// Its methods use the MemoryAccessHelper templates - note the use of the template keyword in template function instantiations -class MemoryAccessWavefunctions : public MemoryAccessWavefunctionsBase -{ -public: + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] + static constexpr auto ieventAccessRecord = MemoryAccessHelper::ieventAccessRecord; - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] - static constexpr auto ieventAccessRecord = MemoryAccessHelper::ieventAccessRecord; + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (const) ===> const fptype* ieventAccessRecordConst( const fptype* buffer, const int ievt ) <===] + static constexpr auto ieventAccessRecordConst = MemoryAccessHelper::ieventAccessRecordConst; - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (const) ===> const fptype* ieventAccessRecordConst( const fptype* buffer, const int ievt ) <===] - static constexpr auto ieventAccessRecordConst = MemoryAccessHelper::ieventAccessRecordConst; + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, const int iw6, const int ix2 ) <===] + static constexpr auto decodeRecordIw6Ix2 = MemoryAccessHelper::decodeRecord; - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, const int iw6, const int ix2 ) <===] - static constexpr auto decodeRecordIw6Ix2 = MemoryAccessHelper::decodeRecord; + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (const) ===> const fptype& decodeRecordConst( const fptype* buffer, const int iw6, const int ix2 ) <===] + static constexpr auto decodeRecordIw6Ix2Const = + MemoryAccessHelper::template decodeRecordConst; - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (const) ===> const fptype& decodeRecordConst( const fptype* buffer, const int iw6, const int ix2 ) <===] - static constexpr auto decodeRecordIw6Ix2Const = - MemoryAccessHelper::template decodeRecordConst; + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (non-const) ===> fptype& ieventAccessIw6Ix2( fptype* buffer, const ievt, const int iw6, const int ix2 ) <===] + static constexpr auto ieventAccessIw6Ix2 = + MemoryAccessHelper::template ieventAccessField; - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (non-const) ===> fptype& ieventAccessIw6Ix2( fptype* buffer, const ievt, const int iw6, const int ix2 ) <===] - static constexpr auto ieventAccessIw6Ix2 = - MemoryAccessHelper::template ieventAccessField; - - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (const) ===> const fptype& ieventAccessIw6Ix2Const( const fptype* buffer, const ievt, const int iw6, const int ix2 ) <===] - static constexpr auto ieventAccessIw6Ix2Const = - MemoryAccessHelper::template ieventAccessFieldConst; -}; + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (const) ===> const fptype& ieventAccessIw6Ix2Const( const fptype* buffer, const ievt, const int iw6, const int ix2 ) <===] + static constexpr auto ieventAccessIw6Ix2Const = + MemoryAccessHelper::template ieventAccessFieldConst; + }; #endif // #ifndef MGONGPU_TRIVIAL_WAVEFUNCTIONS -//---------------------------------------------------------------------------- + //---------------------------------------------------------------------------- -// A class providing access to memory buffers for a given event, based on implicit kernel rules -// Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations -template -class KernelAccessWavefunctions -{ -public: + // A class providing access to memory buffers for a given event, based on implicit kernel rules + // Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations + template + class KernelAccessWavefunctions + { + public: #ifndef MGONGPU_TRIVIAL_WAVEFUNCTIONS - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (non-const) ===> fptype& kernelAccessIw6Ix2( fptype* buffer, const int iw6, const int ix2 ) <===] - static constexpr auto kernelAccessIw6Ix2 = - KernelAccessHelper::template kernelAccessField; + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (non-const) ===> fptype& kernelAccessIw6Ix2( fptype* buffer, const int iw6, const int ix2 ) <===] + static constexpr auto kernelAccessIw6Ix2 = + KernelAccessHelper::template kernelAccessField; - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (const) ===> const fptype& kernelAccessIw6Ix2Const( const fptype* buffer, const int iw6, const int ix2 ) <===] - static constexpr auto kernelAccessIw6Ix2Const = - KernelAccessHelper::template kernelAccessFieldConst; + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (const) ===> const fptype& kernelAccessIw6Ix2Const( const fptype* buffer, const int iw6, const int ix2 ) <===] + static constexpr auto kernelAccessIw6Ix2Const = + KernelAccessHelper::template kernelAccessFieldConst; #else - static __host__ __device__ inline cxtype_sv* - kernelAccess( fptype* buffer ) - { - return reinterpret_cast( buffer ); - } + static __host__ __device__ inline cxtype_sv* + kernelAccess( fptype* buffer ) + { + return reinterpret_cast( buffer ); + } - static __host__ __device__ inline const cxtype_sv* - kernelAccessConst( const fptype* buffer ) - { - return reinterpret_cast( buffer ); - } + static __host__ __device__ inline const cxtype_sv* + kernelAccessConst( const fptype* buffer ) + { + return reinterpret_cast( buffer ); + } #endif // #ifndef MGONGPU_TRIVIAL_WAVEFUNCTIONS -}; + }; + + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- + typedef KernelAccessWavefunctions HostAccessWavefunctions; + typedef KernelAccessWavefunctions DeviceAccessWavefunctions; -typedef KernelAccessWavefunctions HostAccessWavefunctions; -typedef KernelAccessWavefunctions DeviceAccessWavefunctions; + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- +} // end namespace mg5amcGpu/mg5amcCpu #endif // MemoryAccessWavefunctions_H diff --git a/epochX/cudacpp/gq_ttq.sa/SubProcesses/cudacpp.mk b/epochX/cudacpp/gq_ttq.sa/SubProcesses/cudacpp.mk index a0397e9ecc..c2f7b8e0f6 100644 --- a/epochX/cudacpp/gq_ttq.sa/SubProcesses/cudacpp.mk +++ b/epochX/cudacpp/gq_ttq.sa/SubProcesses/cudacpp.mk @@ -76,7 +76,7 @@ endif CXXFLAGS = $(OPTFLAGS) -std=c++17 $(INCFLAGS) -Wall -Wshadow -Wextra ifeq ($(shell $(CXX) --version | grep ^nvc++),) -CXXFLAGS+= -ffast-math # see issue #117 +CXXFLAGS += -ffast-math # see issue #117 endif ###CXXFLAGS+= -Ofast # performance is not different from --fast-math ###CXXFLAGS+= -g # FOR DEBUGGING ONLY @@ -122,7 +122,7 @@ ifneq ($(wildcard $(CUDA_HOME)/bin/nvcc),) CUINC = -I$(CUDA_HOME)/include/ CURANDLIBFLAGS = -L$(CUDA_HOME)/lib64/ -lcurand # NB: -lcuda is not needed here! CUOPTFLAGS = -lineinfo - CUFLAGS = $(OPTFLAGS) $(CUOPTFLAGS) $(INCFLAGS) $(CUINC) $(USE_NVTX) $(CUARCHFLAGS) -use_fast_math + CUFLAGS = $(foreach opt, $(OPTFLAGS), -Xcompiler $(opt)) $(CUOPTFLAGS) $(INCFLAGS) $(CUINC) $(USE_NVTX) $(CUARCHFLAGS) -use_fast_math ###CUFLAGS += -Xcompiler -Wall -Xcompiler -Wextra -Xcompiler -Wshadow ###NVCC_VERSION = $(shell $(NVCC) --version | grep 'Cuda compilation tools' | cut -d' ' -f5 | cut -d, -f1) CUFLAGS += -std=c++17 # need CUDA >= 11.2 (see #333): this is enforced in mgOnGpuConfig.h @@ -142,6 +142,8 @@ else override CUINC= override CURANDLIBFLAGS= endif +export NVCC +export CUFLAGS # Set the host C++ compiler for nvcc via "-ccbin " # (NB issue #505: this must be a single word, "clang++ --gcc-toolchain..." is not supported) @@ -439,7 +441,7 @@ endif # Target (and build options): debug MAKEDEBUG= -debug: OPTFLAGS = -g -O0 -DDEBUG2 +debug: OPTFLAGS = -g -O0 debug: CUOPTFLAGS = -G debug: MAKEDEBUG := debug debug: all.$(TAG) @@ -468,9 +470,9 @@ $(BUILDDIR)/%.o : %.cc *.h ../../src/*.h $(BUILDDIR)/.build.$(TAG) @if [ ! -d $(BUILDDIR) ]; then echo "mkdir -p $(BUILDDIR)"; mkdir -p $(BUILDDIR); fi $(CXX) $(CPPFLAGS) $(CXXFLAGS) -fPIC -c $< -o $@ -# Apply special build flags only to CrossSectionKernel.cc and gCrossSectionKernel.cu (no fast math, see #117) +# Apply special build flags only to CrossSectionKernel.cc and gCrossSectionKernel.cu (no fast math, see #117 and #516) ifeq ($(shell $(CXX) --version | grep ^nvc++),) -$(BUILDDIR)/CrossSectionKernels.o: CXXFLAGS += -fno-fast-math +$(BUILDDIR)/CrossSectionKernels.o: CXXFLAGS := $(filter-out -ffast-math,$(CXXFLAGS)) $(BUILDDIR)/CrossSectionKernels.o: CXXFLAGS += -fno-fast-math ifneq ($(NVCC),) $(BUILDDIR)/gCrossSectionKernels.o: CUFLAGS += -Xcompiler -fno-fast-math diff --git a/epochX/cudacpp/gq_ttq.sa/SubProcesses/runTest.cc b/epochX/cudacpp/gq_ttq.sa/SubProcesses/runTest.cc index 572e28aaea..df7488178e 100644 --- a/epochX/cudacpp/gq_ttq.sa/SubProcesses/runTest.cc +++ b/epochX/cudacpp/gq_ttq.sa/SubProcesses/runTest.cc @@ -2,6 +2,9 @@ // Licensed under the GNU Lesser General Public License (version 3 or later). // Created by: S. Hageboeck (Nov 2020) for the MG5aMC CUDACPP plugin. // Further modified by: S. Hageboeck, O. Mattelaer, S. Roiser, A. Valassi (2020-2023) for the MG5aMC CUDACPP plugin. +//---------------------------------------------------------------------------- +// Use ./runTest.exe --gtest_filter=*xxx to run only testxxx.cc tests +//---------------------------------------------------------------------------- #include "mgOnGpuConfig.h" diff --git a/epochX/cudacpp/gq_ttq.sa/SubProcesses/testmisc.cc b/epochX/cudacpp/gq_ttq.sa/SubProcesses/testmisc.cc index 989aba1fdc..895d6eeb56 100644 --- a/epochX/cudacpp/gq_ttq.sa/SubProcesses/testmisc.cc +++ b/epochX/cudacpp/gq_ttq.sa/SubProcesses/testmisc.cc @@ -3,7 +3,7 @@ // Created by: A. Valassi (Jan 2022) for the MG5aMC CUDACPP plugin. // Further modified by: A. Valassi (2022-2023) for the MG5aMC CUDACPP plugin. //---------------------------------------------------------------------------- -// Use ./runTest.exe --gtest_filter=*misc to run only this test +// Use ./runTest.exe --gtest_filter=*misc to run only testmisc.cc tests //---------------------------------------------------------------------------- #include "mgOnGpuConfig.h" @@ -25,33 +25,48 @@ #define XTESTID( s ) TESTID( s ) +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif +{ #ifdef MGONGPU_CPPSIMD /* clang-format off */ -bool maskand( const bool_v& mask ){ bool out = true; for ( int i=0; i #include +#include // debug #701 (see https://stackoverflow.com/a/17473528) #include #include #include @@ -28,16 +32,47 @@ #define XTESTID( s ) TESTID( s ) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif +{ + std::string FPEhandlerMessage = "unknown"; + int FPEhandlerIevt = -1; + inline void FPEhandler( int sig ) + { +#ifdef __CUDACC__ + std::cerr << "Floating Point Exception (GPU): '" << FPEhandlerMessage << "' ievt=" << FPEhandlerIevt << std::endl; +#else + std::cerr << "Floating Point Exception (CPU neppV=" << neppV << "): '" << FPEhandlerMessage << "' ievt=" << FPEhandlerIevt << std::endl; +#endif + exit( 0 ); + } +} + TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) { +#ifdef __CUDACC__ + using namespace mg5amcGpu; +#else + using namespace mg5amcCpu; +#endif +#ifndef __APPLE__ // test #701 (except on MacOS where feenableexcept is not defined #730) + const bool enableFPE = !getenv( "CUDACPP_RUNTIME_DISABLEFPE" ); + if( enableFPE ) + { + feenableexcept( FE_INVALID | FE_DIVBYZERO | FE_OVERFLOW | FE_UNDERFLOW ); // debug #701 + signal( SIGFPE, FPEhandler ); + } +#endif constexpr bool dumpEvents = false; // dump the expected output of the test? constexpr bool testEvents = !dumpEvents; // run the test? constexpr fptype toleranceXXXs = std::is_same::value ? 1.E-15 : 1.E-5; // Constant parameters constexpr int neppM = MemoryAccessMomenta::neppM; // AOSOA layout - using mgOnGpu::neppV; constexpr int np4 = CPPProcess::np4; - const int nevt = 16; // 12 independent tests plus 4 duplicates (need a multiple of 8 for floats or for '512z') + const int nevt = 32; // 12 independent tests plus 20 duplicates (need a multiple of 16 for floats '512z') assert( nevt % neppM == 0 ); // nevt must be a multiple of neppM assert( nevt % neppV == 0 ); // nevt must be a multiple of neppV // Fill in the input momenta @@ -46,24 +81,41 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) #else mg5amcCpu::HostBufferMomenta hstMomenta( nevt ); // AOSOA[npagM][npar=4][np4=4][neppM] #endif /* clang-format off */ + // NB NEW TESTS FOR DEBUGGING #701: KEEP TWO SEPARATE SETS (16-SIMD-VECTORS!) OF TESTS FOR M==0 AND M!=0! const fptype par0[np4 * nevt] = // AOS[nevt][np4] { - 500, 0, 0, 500, // #0 (m=0 pT=0 E=pz>0) - 500, 0, 0, -500, // #1 (m=0 pT=0 -E=pz<0) - 500, 300, 400, 0, // #2 (m=0 pT>0 pz=0) - 500, 180, 240, 400, // #3 (m=0 pT>0 pz>0) - 500, 180, 240, -400, // #4 (m=0 pT>0 pz<0) - 500, 0, 0, 0, // #5 (m=50>0 pT=0 pz=0) - 500, 0, 0, 300, // #6 (m=40>0 pT=0 pz>0) - 500, 0, 0, -300, // #7 (m=40>0 pT=0 pz<0) - 500, 180, 240, 0, // #8 (m=40>0 pT>0 pz=0) - 500, -240, -180, 0, // #9 (m=40>0 pT>0 pz=0) - 500, 180, 192, 144, // #10 (m=40>0 pT>0 pz>0) - 500, 180, 192, -144, // #11 (m=40>0 pT>0 pz<0) - 500, 0, 0, 500, // DUPLICATE #12 == #0 (m=0 pT=0 E=pz>0) - 500, 0, 0, -500, // DUPLICATE #13 == #1 (m=0 pT=0 -E=pz<0) - 500, 300, 400, 0, // DUPLICATE #14 == #2 (m=0 pT>0 pz=0) - 500, 180, 240, 400 // DUPLICATE #15 == #3 (m=0 pT>0 pz>0) + 500, 0, 0, 500, // #0 (m=0 pT=0 E=pz>0) + 500, 0, 0, -500, // #1 (m=0 pT=0 -E=pz<0) + 500, 300, 400, 0, // #2 (m=0 pT>0 pz=0) + 500, 180, 240, 400, // #3 (m=0 pT>0 pz>0) + 500, 180, 240, -400, // #4 (m=0 pT>0 pz<0) + 500, 0, 0, 500, // #5 DUPLICATE == #0 (m=0 pT=0 E=pz>0) + 500, 0, 0, -500, // #6 DUPLICATE == #1 (m=0 pT=0 -E=pz<0) + 500, 300, 400, 0, // #7 DUPLICATE == #2 (m=0 pT>0 pz=0) + 500, 180, 240, 400, // #8 DUPLICATE == #3 (m=0 pT>0 pz>0) + 500, 180, 240, -400, // #9 DUPLICATE == #4 (m=0 pT>0 pz<0) + 500, 0, 0, 500, // #10 DUPLICATE == #0 (m=0 pT=0 E=pz>0) + 500, 0, 0, -500, // #11 DUPLICATE == #1 (m=0 pT=0 -E=pz<0) + 500, 300, 400, 0, // #12 DUPLICATE == #2 (m=0 pT>0 pz=0) + 500, 180, 240, 400, // #13 DUPLICATE == #3 (m=0 pT>0 pz>0) + 500, 180, 240, -400, // #14 DUPLICATE == #4 (m=0 pT>0 pz<0) + 500, 0, 0, 500, // #15 DUPLICATE == #0 (m=0 pT=0 E=pz>0) + 500, 0, 0, 0, // #16 (m=50>0 pT=0 pz=0) + 500, 0, 0, 300, // #17 (m=40>0 pT=0 pz>0) + 500, 0, 0, -300, // #18 (m=40>0 pT=0 pz<0) + 500, 180, 240, 0, // #19 (m=40>0 pT>0 pz=0) + 500, -240, -180, 0, // #20 (m=40>0 pT>0 pz=0) + 500, 180, 192, 144, // #21 (m=40>0 pT>0 pz>0) + 500, 180, 192, -144, // #22 (m=40>0 pT>0 pz<0) + 500, 0, 0, 0, // #23 DUPLICATE == #16 (m=50>0 pT=0 pz=0) + 500, 0, 0, 300, // #24 DUPLICATE == #17 (m=40>0 pT=0 pz>0) + 500, 0, 0, -300, // #25 DUPLICATE == #18 (m=40>0 pT=0 pz<0) + 500, 180, 240, 0, // #26 DUPLICATE == #19 (m=40>0 pT>0 pz=0) + 500, -240, -180, 0, // #27 DUPLICATE == #20 (m=40>0 pT>0 pz=0) + 500, 180, 192, 144, // #28 DUPLICATE == #21 (m=40>0 pT>0 pz>0) + 500, 180, 192, -144, // #29 DUPLICATE == #22 (m=40>0 pT>0 pz<0) + 500, 0, 0, 0, // #30 DUPLICATE == #16 (m=50>0 pT=0 pz=0) + 500, 0, 0, 300 // #31 DUPLICATE == #17 (m=40>0 pT=0 pz>0) }; /* clang-format on */ // Array initialization: zero-out as "{0}" (C and C++) or as "{}" (C++ only) // See https://en.cppreference.com/w/c/language/array_initialization#Notes @@ -99,7 +151,15 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) constexpr int nw6 = CPPProcess::nw6; // dimensions of each wavefunction (HELAS KEK 91-11): e.g. 6 for e+ e- -> mu+ mu- (fermions and vectors) int itest = 0; // index on the expected output vector std::ofstream dumpFile; - if( dumpEvents ) dumpFile.open( dumpFileName, std::ios::trunc ); + if( dumpEvents ) + { + dumpFile.open( dumpFileName, std::ios::trunc ); + dumpFile << " // Copyright (C) 2020-2023 CERN and UCLouvain." << std::endl + << " // Licensed under the GNU Lesser General Public License (version 3 or later)." << std::endl + << " // Created by: A. Valassi (Apr 2021) for the MG5aMC CUDACPP plugin." << std::endl + << " // Further modified by: A. Valassi (2021-2023) for the MG5aMC CUDACPP plugin." << std::endl; + } + // Lambda function for dumping wavefunctions auto dumpwf6 = [&]( std::ostream& out, const cxtype_sv wf[6], const char* xxx, int ievt, int nsp, fptype mass ) { out << std::setprecision( 15 ) << std::scientific; @@ -129,6 +189,7 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) } out << std::defaultfloat; }; + // Lambda function for testing wavefunctions (1) auto testwf6 = [&]( const cxtype_sv wf[6], const char* xxx, int ievt, int nsp, fptype mass ) { if( dumpEvents ) dumpwf6( dumpFile, wf, xxx, ievt, nsp, mass ); @@ -170,6 +231,7 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) } itest++; }; + // Lambda function for testing wavefunctions (2) auto testwf6two = [&]( const cxtype_sv wf[6], const cxtype_sv expwf[6], const char* xxx, int ievt ) { if( testEvents ) @@ -213,6 +275,32 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) } } }; + // Lambda function for resetting hstMomenta to the values of par0 + // This is needed in each test because hstMomenta may have been modified to ensure a function like ipzxxx can be used (#701) + auto resetHstMomentaToPar0 = [&]() + { + for( int ievt = 0; ievt < nevt; ievt++ ) + for( int ip4 = 0; ip4 < np4; ip4++ ) + MemoryAccessMomenta::ieventAccessIp4Ipar( hstMomenta.data(), ievt, ip4, ipar0 ) = par0[ievt * np4 + ip4]; // AOS to AOSOA + }; + // Lambda function for preparing the test of one specific function + const bool debug = false; + auto prepareTest = [&]( const char* xxx, int ievt ) + { + if( debug ) std::cout << "Prepare test " << xxx << " ievt=" << ievt << std::endl; + resetHstMomentaToPar0(); + FPEhandlerMessage = xxx; + FPEhandlerIevt = ievt; + if( std::string( xxx ) == "ipzxxx" || std::string( xxx ) == "opzxxx" || std::string( xxx ) == "imzxxx" || std::string( xxx ) == "omzxxx" || std::string( xxx ) == "ixzxxx" || std::string( xxx ) == "oxzxxx" ) + { + // Modify hstMomenta so that ALL events have the momenta of a single ievt + // This ensures that a function like ipzxxx (which assumes pZ>0) can be used without triggering FPEs (#701) + // This is done by filling the full SIMD vector with the value of ievt, which was already tested to respect the relevant assumptions + for( int jevt = 0; jevt < nevt; jevt++ ) + for( int ip4 = 0; ip4 < np4; ip4++ ) + MemoryAccessMomenta::ieventAccessIp4Ipar( hstMomenta.data(), jevt, ip4, ipar0 ) = par0[ievt * np4 + ip4]; // AOS to AOSOA + } + }; // Array initialization: zero-out as "{0}" (C and C++) or as "{}" (C++ only) // See https://en.cppreference.com/w/c/language/array_initialization#Notes cxtype_sv outwfI[6] = {}; // last result of ixxxxx (mass==0) @@ -224,6 +312,7 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) fptype* fp_outwf = reinterpret_cast( outwf ); // proof of concept for using fptype* in the interface fptype* fp_outwf3 = reinterpret_cast( outwf3 ); // proof of concept for using fptype* in the interface const int nhel = 1; + // *** START OF TESTING LOOP for( auto nsp: { -1, +1 } ) // antifermion/fermion (or initial/final for scalar and vector) { for( int ievt = 0; ievt < nevt; ievt++ ) @@ -233,9 +322,10 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) #else using namespace mg5amcCpu; #endif - if( false ) + if( debug ) { std::cout << std::endl; + std::cout << "nsp=" << nsp << " ievt=" << ievt << ": "; for( int ip4 = 0; ip4 < np4; ip4++ ) std::cout << par0[ievt * np4 + ip4] << ", "; std::cout << std::endl; } @@ -243,6 +333,7 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) const fptype* ievt0Momenta = MemoryAccessMomenta::ieventAccessRecordConst( hstMomenta.data(), ipagV * neppV ); // Test ixxxxx - NO ASSUMPTIONS { + prepareTest( "ixxxxx", ievt ); const fptype fmass = mass0[ievt]; ixxxxx( ievt0Momenta, fmass, nhel, nsp, fp_outwfI, ipar0 ); testwf6( outwfI, "ixxxxx", ievt, nsp, fmass ); @@ -252,6 +343,7 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) // Test ipzxxx - ASSUMPTIONS: (FMASS == 0) and (PX == PY == 0 and E == +PZ > 0) if( mass0[ievt] == 0 && !isptgt0[ievt] && ispzgt0[ievt] ) { + prepareTest( "ipzxxx", ievt ); ipzxxx( ievt0Momenta, nhel, nsp, fp_outwf, ipar0 ); testwf6two( outwf, outwfI, "ipzxxx", ievt ); testwf6( outwf, "ipzxxx", ievt, nsp, 0 ); @@ -259,6 +351,7 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) // Test imzxxx - ASSUMPTIONS: (FMASS == 0) and (PX == PY == 0 and E == -PZ > 0) if( mass0[ievt] == 0 && !isptgt0[ievt] && ispzlt0[ievt] ) { + prepareTest( "imzxxx", ievt ); imzxxx( ievt0Momenta, nhel, nsp, fp_outwf, ipar0 ); testwf6two( outwf, outwfI, "imzxxx", ievt ); testwf6( outwf, "imzxxx", ievt, nsp, 0 ); @@ -266,12 +359,14 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) // Test ixzxxx - ASSUMPTIONS: (FMASS == 0) and (PT > 0) if( mass0[ievt] == 0 && isptgt0[ievt] ) { + prepareTest( "ixzxxx", ievt ); ixzxxx( ievt0Momenta, nhel, nsp, fp_outwf, ipar0 ); testwf6two( outwf, outwfI, "ixzxxx", ievt ); testwf6( outwf, "ixzxxx", ievt, nsp, 0 ); } // Test vxxxxx - NO ASSUMPTIONS { + prepareTest( "vxxxxx", ievt ); const fptype vmass = mass0[ievt]; vxxxxx( ievt0Momenta, vmass, nhel, nsp, fp_outwf, ipar0 ); testwf6( outwf, "vxxxxx", ievt, nsp, vmass ); @@ -280,6 +375,7 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) } // Test sxxxxx - NO ASSUMPTIONS { + prepareTest( "sxxxxx", ievt ); const fptype smass = mass0[ievt]; sxxxxx( ievt0Momenta, nsp, fp_outwf3, ipar0 ); // no mass, no helicity (was "smass>0") testwf6( outwf3, "sxxxxx", ievt, nsp, smass ); @@ -288,6 +384,7 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) } // Test oxxxxx - NO ASSUMPTIONS { + prepareTest( "oxxxxx", ievt ); const fptype fmass = mass0[ievt]; oxxxxx( ievt0Momenta, fmass, nhel, nsp, fp_outwfO, ipar0 ); testwf6( outwfO, "oxxxxx", ievt, nsp, fmass ); @@ -297,6 +394,7 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) // Test opzxxx - ASSUMPTIONS: (FMASS == 0) and (PX == PY == 0 and E == +PZ > 0) if( mass0[ievt] == 0 && !isptgt0[ievt] && ispzgt0[ievt] ) { + prepareTest( "opzxxx", ievt ); opzxxx( ievt0Momenta, nhel, nsp, fp_outwf, ipar0 ); testwf6two( outwf, outwfO, "opzxxx", ievt ); testwf6( outwf, "opzxxx", ievt, nsp, 0 ); @@ -304,6 +402,7 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) // Test omzxxx - ASSUMPTIONS: (FMASS == 0) and (PX == PY == 0 and E == -PZ > 0) if( mass0[ievt] == 0 && !isptgt0[ievt] && ispzlt0[ievt] ) { + prepareTest( "omzxxx", ievt ); omzxxx( ievt0Momenta, nhel, nsp, fp_outwf, ipar0 ); testwf6two( outwf, outwfO, "omzxxx", ievt ); testwf6( outwf, "omzxxx", ievt, nsp, 0 ); @@ -311,17 +410,25 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) // Test oxzxxx - ASSUMPTIONS: (FMASS == 0) and (PT > 0) if( mass0[ievt] == 0 && isptgt0[ievt] ) { - oxzxxx( ievt0Momenta, nhel, nsp, reinterpret_cast( outwf ), ipar0 ); + prepareTest( "oxzxxx", ievt ); + oxzxxx( ievt0Momenta, nhel, nsp, fp_outwf, ipar0 ); testwf6two( outwf, outwfO, "oxzxxx", ievt ); testwf6( outwf, "oxzxxx", ievt, nsp, 0 ); } } } + // *** END OF TESTING LOOP if( dumpEvents ) { dumpFile.close(); std::cout << "INFO: New reference data dumped to file '" << dumpFileName << "'" << std::endl; } +#ifndef __APPLE__ // test #701 (except on MacOS where fedisableexcept is not defined #730) + if( enableFPE ) + { + fedisableexcept( FE_INVALID | FE_DIVBYZERO | FE_OVERFLOW | FE_UNDERFLOW ); // debug #701 + } +#endif } //========================================================================== diff --git a/epochX/cudacpp/gq_ttq.sa/SubProcesses/testxxx_cc_ref.txt b/epochX/cudacpp/gq_ttq.sa/SubProcesses/testxxx_cc_ref.txt index acb9bde918..637530d1f5 100644 --- a/epochX/cudacpp/gq_ttq.sa/SubProcesses/testxxx_cc_ref.txt +++ b/epochX/cudacpp/gq_ttq.sa/SubProcesses/testxxx_cc_ref.txt @@ -5,14 +5,14 @@ expwfs.push_back( { // --------- 5.000000000000000e+02, 5.000000000000000e+02, // itest=0: ixxxxx#0 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=0: ixxxxx#0 nsp=-1 mass=0 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=0: ixxxxx#0 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=0: ixxxxx#0 nsp=-1 mass=0 -3.162277660168379e+01, 0.000000000000000e+00, // itest=0: ixxxxx#0 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=0: ixxxxx#0 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=0: ixxxxx#0 nsp=-1 mass=0 expwfs.push_back( { // --------- 5.000000000000000e+02, 5.000000000000000e+02, // itest=1: ixxxxx#0 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=1: ixxxxx#0 nsp=-1 mass=0 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=1: ixxxxx#0 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=1: ixxxxx#0 nsp=-1 mass=0 -3.162277660168379e+01, 0.000000000000000e+00, // itest=1: ixxxxx#0 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=1: ixxxxx#0 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=1: ixxxxx#0 nsp=-1 mass=0 @@ -82,8 +82,8 @@ expwfs.push_back( { // --------- 5.000000000000000e+02, -5.000000000000000e+02, // itest=11: ixxxxx#1 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=11: ixxxxx#1 nsp=-1 mass=0 - -3.162277660168379e+01, -0.000000000000000e+00, // itest=11: ixxxxx#1 nsp=-1 mass=0 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=11: ixxxxx#1 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=11: ixxxxx#1 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=11: ixxxxx#1 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=11: ixxxxx#1 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=11: ixxxxx#1 nsp=-1 mass=0 expwfs.push_back( { // --------- @@ -133,8 +133,8 @@ -0.000000000000000e+00, -0.000000000000000e+00, // itest=18: oxxxxx#1 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=18: oxxxxx#1 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=18: oxxxxx#1 nsp=-1 mass=0 - -3.162277660168379e+01, -0.000000000000000e+00, // itest=18: oxxxxx#1 nsp=-1 mass=0 - -0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=18: oxxxxx#1 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=18: oxxxxx#1 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=18: oxxxxx#1 nsp=-1 mass=0 expwfs.push_back( { // --------- -5.000000000000000e+02, 5.000000000000000e+02, // itest=19: omzxxx#1 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=19: omzxxx#1 nsp=-1 mass=0 @@ -145,14 +145,14 @@ expwfs.push_back( { // --------- 5.000000000000000e+02, 0.000000000000000e+00, // itest=20: ixxxxx#2 nsp=-1 mass=0 3.000000000000000e+02, 4.000000000000000e+02, // itest=20: ixxxxx#2 nsp=-1 mass=0 - 1.341640786499874e+01, -1.788854381999832e+01, // itest=20: ixxxxx#2 nsp=-1 mass=0 + 1.341640786499874e+01, -1.788854381999831e+01, // itest=20: ixxxxx#2 nsp=-1 mass=0 -2.236067977499790e+01, 0.000000000000000e+00, // itest=20: ixxxxx#2 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=20: ixxxxx#2 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=20: ixxxxx#2 nsp=-1 mass=0 expwfs.push_back( { // --------- 5.000000000000000e+02, 0.000000000000000e+00, // itest=21: ixxxxx#2 nsp=-1 mass=0 3.000000000000000e+02, 4.000000000000000e+02, // itest=21: ixxxxx#2 nsp=-1 mass=0 - 1.341640786499874e+01, -1.788854381999832e+01, // itest=21: ixxxxx#2 nsp=-1 mass=0 + 1.341640786499874e+01, -1.788854381999831e+01, // itest=21: ixxxxx#2 nsp=-1 mass=0 -2.236067977499790e+01, 0.000000000000000e+00, // itest=21: ixxxxx#2 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=21: ixxxxx#2 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=21: ixxxxx#2 nsp=-1 mass=0 @@ -196,14 +196,14 @@ -3.000000000000000e+02, -4.000000000000000e+02, // itest=27: oxxxxx#2 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=27: oxxxxx#2 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=27: oxxxxx#2 nsp=-1 mass=0 - 1.341640786499874e+01, 1.788854381999832e+01, // itest=27: oxxxxx#2 nsp=-1 mass=0 + 1.341640786499874e+01, 1.788854381999831e+01, // itest=27: oxxxxx#2 nsp=-1 mass=0 -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=27: oxxxxx#2 nsp=-1 mass=0 expwfs.push_back( { // --------- -5.000000000000000e+02, -0.000000000000000e+00, // itest=28: oxxxxx#2 nsp=-1 mass=0 -3.000000000000000e+02, -4.000000000000000e+02, // itest=28: oxxxxx#2 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=28: oxxxxx#2 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=28: oxxxxx#2 nsp=-1 mass=0 - 1.341640786499874e+01, 1.788854381999832e+01, // itest=28: oxxxxx#2 nsp=-1 mass=0 + 1.341640786499874e+01, 1.788854381999831e+01, // itest=28: oxxxxx#2 nsp=-1 mass=0 -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=28: oxxxxx#2 nsp=-1 mass=0 expwfs.push_back( { // --------- -5.000000000000000e+02, -0.000000000000000e+00, // itest=29: oxzxxx#2 nsp=-1 mass=0 @@ -353,1696 +353,3684 @@ 1.800000000000000e+01, 2.400000000000000e+01, // itest=49: oxzxxx#4 nsp=-1 mass=0 -1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=49: oxzxxx#4 nsp=-1 mass=0 expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=50: ixxxxx#5 nsp=-1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=50: ixxxxx#5 nsp=-1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=50: ixxxxx#5 nsp=-1 mass=500 - -2.236067977499790e+01, 0.000000000000000e+00, // itest=50: ixxxxx#5 nsp=-1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=50: ixxxxx#5 nsp=-1 mass=500 - 2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=50: ixxxxx#5 nsp=-1 mass=500 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=51: ixxxxx#5 nsp=-1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=51: ixxxxx#5 nsp=-1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=51: ixxxxx#5 nsp=-1 mass=-500 - -2.236067977499790e+01, 0.000000000000000e+00, // itest=51: ixxxxx#5 nsp=-1 mass=-500 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=51: ixxxxx#5 nsp=-1 mass=-500 - -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=51: ixxxxx#5 nsp=-1 mass=-500 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=52: vxxxxx#5 nsp=-1 mass=500 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=52: vxxxxx#5 nsp=-1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=52: vxxxxx#5 nsp=-1 mass=500 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=52: vxxxxx#5 nsp=-1 mass=500 - 0.000000000000000e+00, -7.071067811865476e-01, // itest=52: vxxxxx#5 nsp=-1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=52: vxxxxx#5 nsp=-1 mass=500 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=53: vxxxxx#5 nsp=-1 mass=-500 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=53: vxxxxx#5 nsp=-1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=53: vxxxxx#5 nsp=-1 mass=-500 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=53: vxxxxx#5 nsp=-1 mass=-500 - 0.000000000000000e+00, -7.071067811865476e-01, // itest=53: vxxxxx#5 nsp=-1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=53: vxxxxx#5 nsp=-1 mass=-500 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=54: sxxxxx#5 nsp=-1 mass=500 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=54: sxxxxx#5 nsp=-1 mass=500 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=54: sxxxxx#5 nsp=-1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=54: sxxxxx#5 nsp=-1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=54: sxxxxx#5 nsp=-1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=54: sxxxxx#5 nsp=-1 mass=500 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=55: sxxxxx#5 nsp=-1 mass=-500 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=55: sxxxxx#5 nsp=-1 mass=-500 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=55: sxxxxx#5 nsp=-1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=55: sxxxxx#5 nsp=-1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=55: sxxxxx#5 nsp=-1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=55: sxxxxx#5 nsp=-1 mass=-500 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=56: oxxxxx#5 nsp=-1 mass=500 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=56: oxxxxx#5 nsp=-1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=56: oxxxxx#5 nsp=-1 mass=500 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=56: oxxxxx#5 nsp=-1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=56: oxxxxx#5 nsp=-1 mass=500 - -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=56: oxxxxx#5 nsp=-1 mass=500 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=57: oxxxxx#5 nsp=-1 mass=-500 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=57: oxxxxx#5 nsp=-1 mass=-500 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=57: oxxxxx#5 nsp=-1 mass=-500 - -2.236067977499790e+01, 0.000000000000000e+00, // itest=57: oxxxxx#5 nsp=-1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=57: oxxxxx#5 nsp=-1 mass=-500 - -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=57: oxxxxx#5 nsp=-1 mass=-500 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 3.000000000000000e+02, // itest=58: ixxxxx#6 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=58: ixxxxx#6 nsp=-1 mass=400 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=58: ixxxxx#6 nsp=-1 mass=400 - -2.828427124746190e+01, -0.000000000000000e+00, // itest=58: ixxxxx#6 nsp=-1 mass=400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=58: ixxxxx#6 nsp=-1 mass=400 - 1.414213562373095e+01, 0.000000000000000e+00 } ); // itest=58: ixxxxx#6 nsp=-1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 3.000000000000000e+02, // itest=59: ixxxxx#6 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=59: ixxxxx#6 nsp=-1 mass=-400 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=59: ixxxxx#6 nsp=-1 mass=-400 - -2.828427124746190e+01, -0.000000000000000e+00, // itest=59: ixxxxx#6 nsp=-1 mass=-400 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=59: ixxxxx#6 nsp=-1 mass=-400 - -1.414213562373095e+01, -0.000000000000000e+00 } ); // itest=59: ixxxxx#6 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -3.000000000000000e+02, // itest=60: vxxxxx#6 nsp=-1 mass=400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=60: vxxxxx#6 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=60: vxxxxx#6 nsp=-1 mass=400 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=60: vxxxxx#6 nsp=-1 mass=400 - 0.000000000000000e+00, -7.071067811865476e-01, // itest=60: vxxxxx#6 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=60: vxxxxx#6 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -3.000000000000000e+02, // itest=61: vxxxxx#6 nsp=-1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=61: vxxxxx#6 nsp=-1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=61: vxxxxx#6 nsp=-1 mass=-400 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=61: vxxxxx#6 nsp=-1 mass=-400 - 0.000000000000000e+00, -7.071067811865476e-01, // itest=61: vxxxxx#6 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=61: vxxxxx#6 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -3.000000000000000e+02, // itest=62: sxxxxx#6 nsp=-1 mass=400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=62: sxxxxx#6 nsp=-1 mass=400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=62: sxxxxx#6 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=62: sxxxxx#6 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=62: sxxxxx#6 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=62: sxxxxx#6 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -3.000000000000000e+02, // itest=63: sxxxxx#6 nsp=-1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=63: sxxxxx#6 nsp=-1 mass=-400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=63: sxxxxx#6 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=63: sxxxxx#6 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=63: sxxxxx#6 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=63: sxxxxx#6 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -3.000000000000000e+02, // itest=64: oxxxxx#6 nsp=-1 mass=400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=64: oxxxxx#6 nsp=-1 mass=400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=64: oxxxxx#6 nsp=-1 mass=400 - 1.414213562373095e+01, 0.000000000000000e+00, // itest=64: oxxxxx#6 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=64: oxxxxx#6 nsp=-1 mass=400 - -2.828427124746190e+01, -0.000000000000000e+00 } ); // itest=64: oxxxxx#6 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -3.000000000000000e+02, // itest=65: oxxxxx#6 nsp=-1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=65: oxxxxx#6 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=65: oxxxxx#6 nsp=-1 mass=-400 - -1.414213562373095e+01, -0.000000000000000e+00, // itest=65: oxxxxx#6 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=65: oxxxxx#6 nsp=-1 mass=-400 - -2.828427124746190e+01, -0.000000000000000e+00 } ); // itest=65: oxxxxx#6 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -3.000000000000000e+02, // itest=66: ixxxxx#7 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=66: ixxxxx#7 nsp=-1 mass=400 - -2.828427124746190e+01, -0.000000000000000e+00, // itest=66: ixxxxx#7 nsp=-1 mass=400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=66: ixxxxx#7 nsp=-1 mass=400 - 1.414213562373095e+01, 0.000000000000000e+00, // itest=66: ixxxxx#7 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=66: ixxxxx#7 nsp=-1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -3.000000000000000e+02, // itest=67: ixxxxx#7 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=67: ixxxxx#7 nsp=-1 mass=-400 - -2.828427124746190e+01, -0.000000000000000e+00, // itest=67: ixxxxx#7 nsp=-1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=67: ixxxxx#7 nsp=-1 mass=-400 - -1.414213562373095e+01, -0.000000000000000e+00, // itest=67: ixxxxx#7 nsp=-1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=67: ixxxxx#7 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 3.000000000000000e+02, // itest=68: vxxxxx#7 nsp=-1 mass=400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=68: vxxxxx#7 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=68: vxxxxx#7 nsp=-1 mass=400 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=68: vxxxxx#7 nsp=-1 mass=400 - 0.000000000000000e+00, 7.071067811865476e-01, // itest=68: vxxxxx#7 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=68: vxxxxx#7 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 3.000000000000000e+02, // itest=69: vxxxxx#7 nsp=-1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=69: vxxxxx#7 nsp=-1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=69: vxxxxx#7 nsp=-1 mass=-400 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=69: vxxxxx#7 nsp=-1 mass=-400 - 0.000000000000000e+00, 7.071067811865476e-01, // itest=69: vxxxxx#7 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=69: vxxxxx#7 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 3.000000000000000e+02, // itest=70: sxxxxx#7 nsp=-1 mass=400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=70: sxxxxx#7 nsp=-1 mass=400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=70: sxxxxx#7 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=70: sxxxxx#7 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=70: sxxxxx#7 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=70: sxxxxx#7 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 3.000000000000000e+02, // itest=71: sxxxxx#7 nsp=-1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=71: sxxxxx#7 nsp=-1 mass=-400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=71: sxxxxx#7 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=71: sxxxxx#7 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=71: sxxxxx#7 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=71: sxxxxx#7 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 3.000000000000000e+02, // itest=72: oxxxxx#7 nsp=-1 mass=400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=72: oxxxxx#7 nsp=-1 mass=400 - 1.414213562373095e+01, 0.000000000000000e+00, // itest=72: oxxxxx#7 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=72: oxxxxx#7 nsp=-1 mass=400 - -2.828427124746190e+01, -0.000000000000000e+00, // itest=72: oxxxxx#7 nsp=-1 mass=400 - -0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=72: oxxxxx#7 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 3.000000000000000e+02, // itest=73: oxxxxx#7 nsp=-1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=73: oxxxxx#7 nsp=-1 mass=-400 - -1.414213562373095e+01, -0.000000000000000e+00, // itest=73: oxxxxx#7 nsp=-1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=73: oxxxxx#7 nsp=-1 mass=-400 - -2.828427124746190e+01, -0.000000000000000e+00, // itest=73: oxxxxx#7 nsp=-1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=73: oxxxxx#7 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=74: ixxxxx#8 nsp=-1 mass=400 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=74: ixxxxx#8 nsp=-1 mass=400 - 1.200000000000000e+01, -1.600000000000000e+01, // itest=74: ixxxxx#8 nsp=-1 mass=400 - -2.000000000000000e+01, -0.000000000000000e+00, // itest=74: ixxxxx#8 nsp=-1 mass=400 - -5.999999999999999e+00, 7.999999999999999e+00, // itest=74: ixxxxx#8 nsp=-1 mass=400 - 1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=74: ixxxxx#8 nsp=-1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=75: ixxxxx#8 nsp=-1 mass=-400 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=75: ixxxxx#8 nsp=-1 mass=-400 - 1.200000000000000e+01, -1.600000000000000e+01, // itest=75: ixxxxx#8 nsp=-1 mass=-400 - -2.000000000000000e+01, -0.000000000000000e+00, // itest=75: ixxxxx#8 nsp=-1 mass=-400 - 5.999999999999999e+00, -7.999999999999999e+00, // itest=75: ixxxxx#8 nsp=-1 mass=-400 - -1.000000000000000e+01, -0.000000000000000e+00 } ); // itest=75: ixxxxx#8 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=76: vxxxxx#8 nsp=-1 mass=400 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=76: vxxxxx#8 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=76: vxxxxx#8 nsp=-1 mass=400 - 0.000000000000000e+00, 5.656854249492381e-01, // itest=76: vxxxxx#8 nsp=-1 mass=400 - 0.000000000000000e+00, -4.242640687119285e-01, // itest=76: vxxxxx#8 nsp=-1 mass=400 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=76: vxxxxx#8 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=77: vxxxxx#8 nsp=-1 mass=-400 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=77: vxxxxx#8 nsp=-1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=77: vxxxxx#8 nsp=-1 mass=-400 - -0.000000000000000e+00, 5.656854249492381e-01, // itest=77: vxxxxx#8 nsp=-1 mass=-400 - -0.000000000000000e+00, -4.242640687119285e-01, // itest=77: vxxxxx#8 nsp=-1 mass=-400 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=77: vxxxxx#8 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=78: sxxxxx#8 nsp=-1 mass=400 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=78: sxxxxx#8 nsp=-1 mass=400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=78: sxxxxx#8 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=78: sxxxxx#8 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=78: sxxxxx#8 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=78: sxxxxx#8 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=79: sxxxxx#8 nsp=-1 mass=-400 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=79: sxxxxx#8 nsp=-1 mass=-400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=79: sxxxxx#8 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=79: sxxxxx#8 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=79: sxxxxx#8 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=79: sxxxxx#8 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=80: oxxxxx#8 nsp=-1 mass=400 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=80: oxxxxx#8 nsp=-1 mass=400 - -5.999999999999999e+00, -7.999999999999999e+00, // itest=80: oxxxxx#8 nsp=-1 mass=400 - 1.000000000000000e+01, 0.000000000000000e+00, // itest=80: oxxxxx#8 nsp=-1 mass=400 - 1.200000000000000e+01, 1.600000000000000e+01, // itest=80: oxxxxx#8 nsp=-1 mass=400 - -2.000000000000000e+01, -0.000000000000000e+00 } ); // itest=80: oxxxxx#8 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=81: oxxxxx#8 nsp=-1 mass=-400 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=81: oxxxxx#8 nsp=-1 mass=-400 - 5.999999999999999e+00, 7.999999999999999e+00, // itest=81: oxxxxx#8 nsp=-1 mass=-400 - -1.000000000000000e+01, -0.000000000000000e+00, // itest=81: oxxxxx#8 nsp=-1 mass=-400 - 1.200000000000000e+01, 1.600000000000000e+01, // itest=81: oxxxxx#8 nsp=-1 mass=-400 - -2.000000000000000e+01, -0.000000000000000e+00 } ); // itest=81: oxxxxx#8 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=82: ixxxxx#9 nsp=-1 mass=400 - -2.400000000000000e+02, -1.800000000000000e+02, // itest=82: ixxxxx#9 nsp=-1 mass=400 - -1.600000000000000e+01, 1.200000000000000e+01, // itest=82: ixxxxx#9 nsp=-1 mass=400 - -2.000000000000000e+01, -0.000000000000000e+00, // itest=82: ixxxxx#9 nsp=-1 mass=400 - 7.999999999999999e+00, -5.999999999999999e+00, // itest=82: ixxxxx#9 nsp=-1 mass=400 - 1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=82: ixxxxx#9 nsp=-1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=83: ixxxxx#9 nsp=-1 mass=-400 - -2.400000000000000e+02, -1.800000000000000e+02, // itest=83: ixxxxx#9 nsp=-1 mass=-400 - -1.600000000000000e+01, 1.200000000000000e+01, // itest=83: ixxxxx#9 nsp=-1 mass=-400 - -2.000000000000000e+01, -0.000000000000000e+00, // itest=83: ixxxxx#9 nsp=-1 mass=-400 - -7.999999999999999e+00, 5.999999999999999e+00, // itest=83: ixxxxx#9 nsp=-1 mass=-400 - -1.000000000000000e+01, -0.000000000000000e+00 } ); // itest=83: ixxxxx#9 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=84: vxxxxx#9 nsp=-1 mass=400 - 2.400000000000000e+02, 1.800000000000000e+02, // itest=84: vxxxxx#9 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=84: vxxxxx#9 nsp=-1 mass=400 - 0.000000000000000e+00, -4.242640687119285e-01, // itest=84: vxxxxx#9 nsp=-1 mass=400 - 0.000000000000000e+00, 5.656854249492381e-01, // itest=84: vxxxxx#9 nsp=-1 mass=400 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=84: vxxxxx#9 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=85: vxxxxx#9 nsp=-1 mass=-400 - 2.400000000000000e+02, 1.800000000000000e+02, // itest=85: vxxxxx#9 nsp=-1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=85: vxxxxx#9 nsp=-1 mass=-400 - 0.000000000000000e+00, -4.242640687119285e-01, // itest=85: vxxxxx#9 nsp=-1 mass=-400 - 0.000000000000000e+00, 5.656854249492381e-01, // itest=85: vxxxxx#9 nsp=-1 mass=-400 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=85: vxxxxx#9 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=86: sxxxxx#9 nsp=-1 mass=400 - 2.400000000000000e+02, 1.800000000000000e+02, // itest=86: sxxxxx#9 nsp=-1 mass=400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=86: sxxxxx#9 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=86: sxxxxx#9 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=86: sxxxxx#9 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=86: sxxxxx#9 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=87: sxxxxx#9 nsp=-1 mass=-400 - 2.400000000000000e+02, 1.800000000000000e+02, // itest=87: sxxxxx#9 nsp=-1 mass=-400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=87: sxxxxx#9 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=87: sxxxxx#9 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=87: sxxxxx#9 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=87: sxxxxx#9 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=88: oxxxxx#9 nsp=-1 mass=400 - 2.400000000000000e+02, 1.800000000000000e+02, // itest=88: oxxxxx#9 nsp=-1 mass=400 - 7.999999999999999e+00, 5.999999999999999e+00, // itest=88: oxxxxx#9 nsp=-1 mass=400 - 1.000000000000000e+01, 0.000000000000000e+00, // itest=88: oxxxxx#9 nsp=-1 mass=400 - -1.600000000000000e+01, -1.200000000000000e+01, // itest=88: oxxxxx#9 nsp=-1 mass=400 - -2.000000000000000e+01, -0.000000000000000e+00 } ); // itest=88: oxxxxx#9 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=89: oxxxxx#9 nsp=-1 mass=-400 - 2.400000000000000e+02, 1.800000000000000e+02, // itest=89: oxxxxx#9 nsp=-1 mass=-400 - -7.999999999999999e+00, -5.999999999999999e+00, // itest=89: oxxxxx#9 nsp=-1 mass=-400 - -1.000000000000000e+01, -0.000000000000000e+00, // itest=89: oxxxxx#9 nsp=-1 mass=-400 - -1.600000000000000e+01, -1.200000000000000e+01, // itest=89: oxxxxx#9 nsp=-1 mass=-400 - -2.000000000000000e+01, -0.000000000000000e+00 } ); // itest=89: oxxxxx#9 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 1.440000000000000e+02, // itest=90: ixxxxx#10 nsp=-1 mass=400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=90: ixxxxx#10 nsp=-1 mass=400 - 9.863939238321439e+00, -1.052153518754287e+01, // itest=90: ixxxxx#10 nsp=-1 mass=400 - -2.433105012119288e+01, -0.000000000000000e+00, // itest=90: ixxxxx#10 nsp=-1 mass=400 - -4.931969619160719e+00, 5.260767593771432e+00, // itest=90: ixxxxx#10 nsp=-1 mass=400 - 1.216552506059644e+01, 0.000000000000000e+00 } ); // itest=90: ixxxxx#10 nsp=-1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 1.440000000000000e+02, // itest=91: ixxxxx#10 nsp=-1 mass=-400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=91: ixxxxx#10 nsp=-1 mass=-400 - 9.863939238321439e+00, -1.052153518754287e+01, // itest=91: ixxxxx#10 nsp=-1 mass=-400 - -2.433105012119288e+01, -0.000000000000000e+00, // itest=91: ixxxxx#10 nsp=-1 mass=-400 - 4.931969619160719e+00, -5.260767593771432e+00, // itest=91: ixxxxx#10 nsp=-1 mass=-400 - -1.216552506059644e+01, -0.000000000000000e+00 } ); // itest=91: ixxxxx#10 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -1.440000000000000e+02, // itest=92: vxxxxx#10 nsp=-1 mass=400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=92: vxxxxx#10 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=92: vxxxxx#10 nsp=-1 mass=400 - -2.321373168788980e-01, 5.158607041753289e-01, // itest=92: vxxxxx#10 nsp=-1 mass=400 - -2.476131380041579e-01, -4.836194101643708e-01, // itest=92: vxxxxx#10 nsp=-1 mass=400 - 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=92: vxxxxx#10 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -1.440000000000000e+02, // itest=93: vxxxxx#10 nsp=-1 mass=-400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=93: vxxxxx#10 nsp=-1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=93: vxxxxx#10 nsp=-1 mass=-400 - -2.321373168788980e-01, 5.158607041753289e-01, // itest=93: vxxxxx#10 nsp=-1 mass=-400 - -2.476131380041579e-01, -4.836194101643708e-01, // itest=93: vxxxxx#10 nsp=-1 mass=-400 - 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=93: vxxxxx#10 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -1.440000000000000e+02, // itest=94: sxxxxx#10 nsp=-1 mass=400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=94: sxxxxx#10 nsp=-1 mass=400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=94: sxxxxx#10 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=94: sxxxxx#10 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=94: sxxxxx#10 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=94: sxxxxx#10 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -1.440000000000000e+02, // itest=95: sxxxxx#10 nsp=-1 mass=-400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=95: sxxxxx#10 nsp=-1 mass=-400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=95: sxxxxx#10 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=95: sxxxxx#10 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=95: sxxxxx#10 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=95: sxxxxx#10 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -1.440000000000000e+02, // itest=96: oxxxxx#10 nsp=-1 mass=400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=96: oxxxxx#10 nsp=-1 mass=400 - -4.931969619160719e+00, -5.260767593771432e+00, // itest=96: oxxxxx#10 nsp=-1 mass=400 - 1.216552506059644e+01, 0.000000000000000e+00, // itest=96: oxxxxx#10 nsp=-1 mass=400 - 9.863939238321439e+00, 1.052153518754287e+01, // itest=96: oxxxxx#10 nsp=-1 mass=400 - -2.433105012119288e+01, -0.000000000000000e+00 } ); // itest=96: oxxxxx#10 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -1.440000000000000e+02, // itest=97: oxxxxx#10 nsp=-1 mass=-400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=97: oxxxxx#10 nsp=-1 mass=-400 - 4.931969619160719e+00, 5.260767593771432e+00, // itest=97: oxxxxx#10 nsp=-1 mass=-400 - -1.216552506059644e+01, -0.000000000000000e+00, // itest=97: oxxxxx#10 nsp=-1 mass=-400 - 9.863939238321439e+00, 1.052153518754287e+01, // itest=97: oxxxxx#10 nsp=-1 mass=-400 - -2.433105012119288e+01, -0.000000000000000e+00 } ); // itest=97: oxxxxx#10 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -1.440000000000000e+02, // itest=98: ixxxxx#11 nsp=-1 mass=400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=98: ixxxxx#11 nsp=-1 mass=400 - 1.664100588675688e+01, -1.775040627920733e+01, // itest=98: ixxxxx#11 nsp=-1 mass=400 - -1.442220510185596e+01, -0.000000000000000e+00, // itest=98: ixxxxx#11 nsp=-1 mass=400 - -8.320502943378436e+00, 8.875203139603666e+00, // itest=98: ixxxxx#11 nsp=-1 mass=400 - 7.211102550927978e+00, 0.000000000000000e+00 } ); // itest=98: ixxxxx#11 nsp=-1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -1.440000000000000e+02, // itest=99: ixxxxx#11 nsp=-1 mass=-400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=99: ixxxxx#11 nsp=-1 mass=-400 - 1.664100588675688e+01, -1.775040627920733e+01, // itest=99: ixxxxx#11 nsp=-1 mass=-400 - -1.442220510185596e+01, -0.000000000000000e+00, // itest=99: ixxxxx#11 nsp=-1 mass=-400 - 8.320502943378436e+00, -8.875203139603666e+00, // itest=99: ixxxxx#11 nsp=-1 mass=-400 - -7.211102550927978e+00, -0.000000000000000e+00 } ); // itest=99: ixxxxx#11 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 1.440000000000000e+02, // itest=100: vxxxxx#11 nsp=-1 mass=400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=100: vxxxxx#11 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=100: vxxxxx#11 nsp=-1 mass=400 - 2.321373168788980e-01, 5.158607041753289e-01, // itest=100: vxxxxx#11 nsp=-1 mass=400 - 2.476131380041579e-01, -4.836194101643708e-01, // itest=100: vxxxxx#11 nsp=-1 mass=400 - 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=100: vxxxxx#11 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 1.440000000000000e+02, // itest=101: vxxxxx#11 nsp=-1 mass=-400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=101: vxxxxx#11 nsp=-1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=101: vxxxxx#11 nsp=-1 mass=-400 - 2.321373168788980e-01, 5.158607041753289e-01, // itest=101: vxxxxx#11 nsp=-1 mass=-400 - 2.476131380041579e-01, -4.836194101643708e-01, // itest=101: vxxxxx#11 nsp=-1 mass=-400 - 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=101: vxxxxx#11 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 1.440000000000000e+02, // itest=102: sxxxxx#11 nsp=-1 mass=400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=102: sxxxxx#11 nsp=-1 mass=400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=102: sxxxxx#11 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=102: sxxxxx#11 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=102: sxxxxx#11 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=102: sxxxxx#11 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 1.440000000000000e+02, // itest=103: sxxxxx#11 nsp=-1 mass=-400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=103: sxxxxx#11 nsp=-1 mass=-400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=103: sxxxxx#11 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=103: sxxxxx#11 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=103: sxxxxx#11 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=103: sxxxxx#11 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 1.440000000000000e+02, // itest=104: oxxxxx#11 nsp=-1 mass=400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=104: oxxxxx#11 nsp=-1 mass=400 - -8.320502943378436e+00, -8.875203139603666e+00, // itest=104: oxxxxx#11 nsp=-1 mass=400 - 7.211102550927978e+00, 0.000000000000000e+00, // itest=104: oxxxxx#11 nsp=-1 mass=400 - 1.664100588675688e+01, 1.775040627920733e+01, // itest=104: oxxxxx#11 nsp=-1 mass=400 - -1.442220510185596e+01, -0.000000000000000e+00 } ); // itest=104: oxxxxx#11 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 1.440000000000000e+02, // itest=105: oxxxxx#11 nsp=-1 mass=-400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=105: oxxxxx#11 nsp=-1 mass=-400 - 8.320502943378436e+00, 8.875203139603666e+00, // itest=105: oxxxxx#11 nsp=-1 mass=-400 - -7.211102550927978e+00, -0.000000000000000e+00, // itest=105: oxxxxx#11 nsp=-1 mass=-400 - 1.664100588675688e+01, 1.775040627920733e+01, // itest=105: oxxxxx#11 nsp=-1 mass=-400 - -1.442220510185596e+01, -0.000000000000000e+00 } ); // itest=105: oxxxxx#11 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=106: ixxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=106: ixxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=106: ixxxxx#12 nsp=-1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00, // itest=106: ixxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=106: ixxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=106: ixxxxx#12 nsp=-1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=107: ixxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=107: ixxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=107: ixxxxx#12 nsp=-1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00, // itest=107: ixxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=107: ixxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=107: ixxxxx#12 nsp=-1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=108: ipzxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=108: ipzxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=108: ipzxxx#12 nsp=-1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00, // itest=108: ipzxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=108: ipzxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=108: ipzxxx#12 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=109: vxxxxx#12 nsp=-1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=109: vxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=109: vxxxxx#12 nsp=-1 mass=0 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=109: vxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, -7.071067811865476e-01, // itest=109: vxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=109: vxxxxx#12 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=110: vxxxxx#12 nsp=-1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=110: vxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=110: vxxxxx#12 nsp=-1 mass=0 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=110: vxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, -7.071067811865476e-01, // itest=110: vxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=110: vxxxxx#12 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=111: sxxxxx#12 nsp=-1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=111: sxxxxx#12 nsp=-1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=111: sxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=111: sxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=111: sxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=111: sxxxxx#12 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=112: sxxxxx#12 nsp=-1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=112: sxxxxx#12 nsp=-1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=112: sxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=112: sxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=112: sxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=112: sxxxxx#12 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=113: oxxxxx#12 nsp=-1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=113: oxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=113: oxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=113: oxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=113: oxxxxx#12 nsp=-1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=113: oxxxxx#12 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=114: oxxxxx#12 nsp=-1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=114: oxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=114: oxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=114: oxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=114: oxxxxx#12 nsp=-1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=114: oxxxxx#12 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=115: opzxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=115: opzxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=115: opzxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=115: opzxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=115: opzxxx#12 nsp=-1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=115: opzxxx#12 nsp=-1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=116: ixxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=116: ixxxxx#13 nsp=-1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00, // itest=116: ixxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=116: ixxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=116: ixxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=116: ixxxxx#13 nsp=-1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=117: ixxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=117: ixxxxx#13 nsp=-1 mass=0 - -3.162277660168379e+01, -0.000000000000000e+00, // itest=117: ixxxxx#13 nsp=-1 mass=0 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=117: ixxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=117: ixxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=117: ixxxxx#13 nsp=-1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=118: imzxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=118: imzxxx#13 nsp=-1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00, // itest=118: imzxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=118: imzxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=118: imzxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=118: imzxxx#13 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=119: vxxxxx#13 nsp=-1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=119: vxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=119: vxxxxx#13 nsp=-1 mass=0 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=119: vxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 7.071067811865476e-01, // itest=119: vxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=119: vxxxxx#13 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=120: vxxxxx#13 nsp=-1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=120: vxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=120: vxxxxx#13 nsp=-1 mass=0 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=120: vxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 7.071067811865476e-01, // itest=120: vxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=120: vxxxxx#13 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=121: sxxxxx#13 nsp=-1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=121: sxxxxx#13 nsp=-1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=121: sxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=121: sxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=121: sxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=121: sxxxxx#13 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=122: sxxxxx#13 nsp=-1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=122: sxxxxx#13 nsp=-1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=122: sxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=122: sxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=122: sxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=122: sxxxxx#13 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=123: oxxxxx#13 nsp=-1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=123: oxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=123: oxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=123: oxxxxx#13 nsp=-1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00, // itest=123: oxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=123: oxxxxx#13 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=124: oxxxxx#13 nsp=-1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=124: oxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=124: oxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=124: oxxxxx#13 nsp=-1 mass=0 - -3.162277660168379e+01, -0.000000000000000e+00, // itest=124: oxxxxx#13 nsp=-1 mass=0 - -0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=124: oxxxxx#13 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=125: omzxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=125: omzxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=125: omzxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=125: omzxxx#13 nsp=-1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00, // itest=125: omzxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=125: omzxxx#13 nsp=-1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=126: ixxxxx#14 nsp=-1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=126: ixxxxx#14 nsp=-1 mass=0 - 1.341640786499874e+01, -1.788854381999832e+01, // itest=126: ixxxxx#14 nsp=-1 mass=0 - -2.236067977499790e+01, 0.000000000000000e+00, // itest=126: ixxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=126: ixxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=126: ixxxxx#14 nsp=-1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=127: ixxxxx#14 nsp=-1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=127: ixxxxx#14 nsp=-1 mass=0 - 1.341640786499874e+01, -1.788854381999832e+01, // itest=127: ixxxxx#14 nsp=-1 mass=0 - -2.236067977499790e+01, 0.000000000000000e+00, // itest=127: ixxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=127: ixxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=127: ixxxxx#14 nsp=-1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=128: ixzxxx#14 nsp=-1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=128: ixzxxx#14 nsp=-1 mass=0 - 1.341640786499874e+01, -1.788854381999832e+01, // itest=128: ixzxxx#14 nsp=-1 mass=0 - -2.236067977499790e+01, 0.000000000000000e+00, // itest=128: ixzxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=128: ixzxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=128: ixzxxx#14 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=129: vxxxxx#14 nsp=-1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=129: vxxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=129: vxxxxx#14 nsp=-1 mass=0 - -0.000000000000000e+00, 5.656854249492381e-01, // itest=129: vxxxxx#14 nsp=-1 mass=0 - -0.000000000000000e+00, -4.242640687119285e-01, // itest=129: vxxxxx#14 nsp=-1 mass=0 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=129: vxxxxx#14 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=130: vxxxxx#14 nsp=-1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=130: vxxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=130: vxxxxx#14 nsp=-1 mass=0 - -0.000000000000000e+00, 5.656854249492381e-01, // itest=130: vxxxxx#14 nsp=-1 mass=0 - -0.000000000000000e+00, -4.242640687119285e-01, // itest=130: vxxxxx#14 nsp=-1 mass=0 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=130: vxxxxx#14 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=131: sxxxxx#14 nsp=-1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=131: sxxxxx#14 nsp=-1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=131: sxxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=131: sxxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=131: sxxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=131: sxxxxx#14 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=132: sxxxxx#14 nsp=-1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=132: sxxxxx#14 nsp=-1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=132: sxxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=132: sxxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=132: sxxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=132: sxxxxx#14 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=133: oxxxxx#14 nsp=-1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=133: oxxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=133: oxxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=133: oxxxxx#14 nsp=-1 mass=0 - 1.341640786499874e+01, 1.788854381999832e+01, // itest=133: oxxxxx#14 nsp=-1 mass=0 - -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=133: oxxxxx#14 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=134: oxxxxx#14 nsp=-1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=134: oxxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=134: oxxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=134: oxxxxx#14 nsp=-1 mass=0 - 1.341640786499874e+01, 1.788854381999832e+01, // itest=134: oxxxxx#14 nsp=-1 mass=0 - -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=134: oxxxxx#14 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=135: oxzxxx#14 nsp=-1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=135: oxzxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=135: oxzxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=135: oxzxxx#14 nsp=-1 mass=0 - 1.341640786499874e+01, 1.788854381999832e+01, // itest=135: oxzxxx#14 nsp=-1 mass=0 - -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=135: oxzxxx#14 nsp=-1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=136: ixxxxx#15 nsp=-1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=136: ixxxxx#15 nsp=-1 mass=0 - 6.000000000000000e+00, -8.000000000000000e+00, // itest=136: ixxxxx#15 nsp=-1 mass=0 - -3.000000000000000e+01, 0.000000000000000e+00, // itest=136: ixxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=136: ixxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=136: ixxxxx#15 nsp=-1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=137: ixxxxx#15 nsp=-1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=137: ixxxxx#15 nsp=-1 mass=0 - 6.000000000000000e+00, -8.000000000000000e+00, // itest=137: ixxxxx#15 nsp=-1 mass=0 - -3.000000000000000e+01, 0.000000000000000e+00, // itest=137: ixxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=137: ixxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=137: ixxxxx#15 nsp=-1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=138: ixzxxx#15 nsp=-1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=138: ixzxxx#15 nsp=-1 mass=0 - 6.000000000000000e+00, -8.000000000000000e+00, // itest=138: ixzxxx#15 nsp=-1 mass=0 - -3.000000000000000e+01, 0.000000000000000e+00, // itest=138: ixzxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=138: ixzxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=138: ixzxxx#15 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=139: vxxxxx#15 nsp=-1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=139: vxxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=139: vxxxxx#15 nsp=-1 mass=0 - -3.394112549695428e-01, 5.656854249492381e-01, // itest=139: vxxxxx#15 nsp=-1 mass=0 - -4.525483399593904e-01, -4.242640687119285e-01, // itest=139: vxxxxx#15 nsp=-1 mass=0 - 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=139: vxxxxx#15 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=140: vxxxxx#15 nsp=-1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=140: vxxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=140: vxxxxx#15 nsp=-1 mass=0 - -3.394112549695428e-01, 5.656854249492381e-01, // itest=140: vxxxxx#15 nsp=-1 mass=0 - -4.525483399593904e-01, -4.242640687119285e-01, // itest=140: vxxxxx#15 nsp=-1 mass=0 - 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=140: vxxxxx#15 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=141: sxxxxx#15 nsp=-1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=141: sxxxxx#15 nsp=-1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=141: sxxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=141: sxxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=141: sxxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=141: sxxxxx#15 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=142: sxxxxx#15 nsp=-1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=142: sxxxxx#15 nsp=-1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=142: sxxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=142: sxxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=142: sxxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=142: sxxxxx#15 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=143: oxxxxx#15 nsp=-1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=143: oxxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=143: oxxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=143: oxxxxx#15 nsp=-1 mass=0 - 6.000000000000000e+00, 8.000000000000000e+00, // itest=143: oxxxxx#15 nsp=-1 mass=0 - -3.000000000000000e+01, 0.000000000000000e+00 } ); // itest=143: oxxxxx#15 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=144: oxxxxx#15 nsp=-1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=144: oxxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=144: oxxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=144: oxxxxx#15 nsp=-1 mass=0 - 6.000000000000000e+00, 8.000000000000000e+00, // itest=144: oxxxxx#15 nsp=-1 mass=0 - -3.000000000000000e+01, 0.000000000000000e+00 } ); // itest=144: oxxxxx#15 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=145: oxzxxx#15 nsp=-1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=145: oxzxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=145: oxzxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=145: oxzxxx#15 nsp=-1 mass=0 - 6.000000000000000e+00, 8.000000000000000e+00, // itest=145: oxzxxx#15 nsp=-1 mass=0 - -3.000000000000000e+01, 0.000000000000000e+00 } ); // itest=145: oxzxxx#15 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=146: ixxxxx#0 nsp=1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=146: ixxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=146: ixxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=146: ixxxxx#0 nsp=1 mass=0 - 3.162277660168379e+01, 0.000000000000000e+00, // itest=146: ixxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=146: ixxxxx#0 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=147: ixxxxx#0 nsp=1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=147: ixxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=147: ixxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=147: ixxxxx#0 nsp=1 mass=0 - 3.162277660168379e+01, 0.000000000000000e+00, // itest=147: ixxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=147: ixxxxx#0 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=148: ipzxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=148: ipzxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=148: ipzxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=148: ipzxxx#0 nsp=1 mass=0 - 3.162277660168379e+01, 0.000000000000000e+00, // itest=148: ipzxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=148: ipzxxx#0 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=149: vxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=149: vxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=149: vxxxxx#0 nsp=1 mass=0 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=149: vxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 7.071067811865476e-01, // itest=149: vxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=149: vxxxxx#0 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=150: vxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=150: vxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=150: vxxxxx#0 nsp=1 mass=0 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=150: vxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 7.071067811865476e-01, // itest=150: vxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=150: vxxxxx#0 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=151: sxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=151: sxxxxx#0 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=151: sxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=151: sxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=151: sxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=151: sxxxxx#0 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=152: sxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=152: sxxxxx#0 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=152: sxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=152: sxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=152: sxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=152: sxxxxx#0 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=153: oxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=153: oxxxxx#0 nsp=1 mass=0 - 3.162277660168379e+01, 0.000000000000000e+00, // itest=153: oxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=153: oxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=153: oxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=153: oxxxxx#0 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=154: oxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=154: oxxxxx#0 nsp=1 mass=0 - 3.162277660168379e+01, 0.000000000000000e+00, // itest=154: oxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=154: oxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=154: oxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=154: oxxxxx#0 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=155: opzxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=155: opzxxx#0 nsp=1 mass=0 - 3.162277660168379e+01, 0.000000000000000e+00, // itest=155: opzxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=155: opzxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=155: opzxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=155: opzxxx#0 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=156: ixxxxx#1 nsp=1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=156: ixxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=156: ixxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=156: ixxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=156: ixxxxx#1 nsp=1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=156: ixxxxx#1 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=157: ixxxxx#1 nsp=1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=157: ixxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=157: ixxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=157: ixxxxx#1 nsp=1 mass=0 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=157: ixxxxx#1 nsp=1 mass=0 - -3.162277660168379e+01, -0.000000000000000e+00 } ); // itest=157: ixxxxx#1 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=158: imzxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=158: imzxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=158: imzxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=158: imzxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=158: imzxxx#1 nsp=1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=158: imzxxx#1 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=159: vxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=159: vxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=159: vxxxxx#1 nsp=1 mass=0 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=159: vxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, -7.071067811865476e-01, // itest=159: vxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=159: vxxxxx#1 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=160: vxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=160: vxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=160: vxxxxx#1 nsp=1 mass=0 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=160: vxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, -7.071067811865476e-01, // itest=160: vxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=160: vxxxxx#1 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=161: sxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=161: sxxxxx#1 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=161: sxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=161: sxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=161: sxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=161: sxxxxx#1 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=162: sxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=162: sxxxxx#1 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=162: sxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=162: sxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=162: sxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=162: sxxxxx#1 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=163: oxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=163: oxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=163: oxxxxx#1 nsp=1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00, // itest=163: oxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=163: oxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=163: oxxxxx#1 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=164: oxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=164: oxxxxx#1 nsp=1 mass=0 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=164: oxxxxx#1 nsp=1 mass=0 - -3.162277660168379e+01, -0.000000000000000e+00, // itest=164: oxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=164: oxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=164: oxxxxx#1 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=165: omzxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=165: omzxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=165: omzxxx#1 nsp=1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00, // itest=165: omzxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=165: omzxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=165: omzxxx#1 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=166: ixxxxx#2 nsp=1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=166: ixxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=166: ixxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=166: ixxxxx#2 nsp=1 mass=0 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=166: ixxxxx#2 nsp=1 mass=0 - 1.341640786499874e+01, 1.788854381999832e+01 } ); // itest=166: ixxxxx#2 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=167: ixxxxx#2 nsp=1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=167: ixxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=167: ixxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=167: ixxxxx#2 nsp=1 mass=0 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=167: ixxxxx#2 nsp=1 mass=0 - 1.341640786499874e+01, 1.788854381999832e+01 } ); // itest=167: ixxxxx#2 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=168: ixzxxx#2 nsp=1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=168: ixzxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=168: ixzxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=168: ixzxxx#2 nsp=1 mass=0 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=168: ixzxxx#2 nsp=1 mass=0 - 1.341640786499874e+01, 1.788854381999832e+01 } ); // itest=168: ixzxxx#2 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=169: vxxxxx#2 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=169: vxxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=169: vxxxxx#2 nsp=1 mass=0 - -0.000000000000000e+00, -5.656854249492381e-01, // itest=169: vxxxxx#2 nsp=1 mass=0 - -0.000000000000000e+00, 4.242640687119285e-01, // itest=169: vxxxxx#2 nsp=1 mass=0 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=169: vxxxxx#2 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=170: vxxxxx#2 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=170: vxxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=170: vxxxxx#2 nsp=1 mass=0 - -0.000000000000000e+00, -5.656854249492381e-01, // itest=170: vxxxxx#2 nsp=1 mass=0 - -0.000000000000000e+00, 4.242640687119285e-01, // itest=170: vxxxxx#2 nsp=1 mass=0 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=170: vxxxxx#2 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=171: sxxxxx#2 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=171: sxxxxx#2 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=171: sxxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=171: sxxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=171: sxxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=171: sxxxxx#2 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=172: sxxxxx#2 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=172: sxxxxx#2 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=172: sxxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=172: sxxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=172: sxxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=172: sxxxxx#2 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=173: oxxxxx#2 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=173: oxxxxx#2 nsp=1 mass=0 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=173: oxxxxx#2 nsp=1 mass=0 - 1.341640786499874e+01, -1.788854381999832e+01, // itest=173: oxxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=173: oxxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=173: oxxxxx#2 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=174: oxxxxx#2 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=174: oxxxxx#2 nsp=1 mass=0 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=174: oxxxxx#2 nsp=1 mass=0 - 1.341640786499874e+01, -1.788854381999832e+01, // itest=174: oxxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=174: oxxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=174: oxxxxx#2 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=175: oxzxxx#2 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=175: oxzxxx#2 nsp=1 mass=0 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=175: oxzxxx#2 nsp=1 mass=0 - 1.341640786499874e+01, -1.788854381999832e+01, // itest=175: oxzxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=175: oxzxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=175: oxzxxx#2 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=176: ixxxxx#3 nsp=1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=176: ixxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=176: ixxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=176: ixxxxx#3 nsp=1 mass=0 - 3.000000000000000e+01, 0.000000000000000e+00, // itest=176: ixxxxx#3 nsp=1 mass=0 - 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=176: ixxxxx#3 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=177: ixxxxx#3 nsp=1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=177: ixxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=177: ixxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=177: ixxxxx#3 nsp=1 mass=0 - 3.000000000000000e+01, 0.000000000000000e+00, // itest=177: ixxxxx#3 nsp=1 mass=0 - 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=177: ixxxxx#3 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=178: ixzxxx#3 nsp=1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=178: ixzxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=178: ixzxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=178: ixzxxx#3 nsp=1 mass=0 - 3.000000000000000e+01, 0.000000000000000e+00, // itest=178: ixzxxx#3 nsp=1 mass=0 - 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=178: ixzxxx#3 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=179: vxxxxx#3 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=179: vxxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=179: vxxxxx#3 nsp=1 mass=0 - -3.394112549695428e-01, -5.656854249492381e-01, // itest=179: vxxxxx#3 nsp=1 mass=0 - -4.525483399593904e-01, 4.242640687119285e-01, // itest=179: vxxxxx#3 nsp=1 mass=0 - 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=179: vxxxxx#3 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=180: vxxxxx#3 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=180: vxxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=180: vxxxxx#3 nsp=1 mass=0 - -3.394112549695428e-01, -5.656854249492381e-01, // itest=180: vxxxxx#3 nsp=1 mass=0 - -4.525483399593904e-01, 4.242640687119285e-01, // itest=180: vxxxxx#3 nsp=1 mass=0 - 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=180: vxxxxx#3 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=181: sxxxxx#3 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=181: sxxxxx#3 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=181: sxxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=181: sxxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=181: sxxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=181: sxxxxx#3 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=182: sxxxxx#3 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=182: sxxxxx#3 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=182: sxxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=182: sxxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=182: sxxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=182: sxxxxx#3 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=183: oxxxxx#3 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=183: oxxxxx#3 nsp=1 mass=0 - 3.000000000000000e+01, 0.000000000000000e+00, // itest=183: oxxxxx#3 nsp=1 mass=0 - 6.000000000000000e+00, -8.000000000000000e+00, // itest=183: oxxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=183: oxxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=183: oxxxxx#3 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=184: oxxxxx#3 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=184: oxxxxx#3 nsp=1 mass=0 - 3.000000000000000e+01, 0.000000000000000e+00, // itest=184: oxxxxx#3 nsp=1 mass=0 - 6.000000000000000e+00, -8.000000000000000e+00, // itest=184: oxxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=184: oxxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=184: oxxxxx#3 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=185: oxzxxx#3 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=185: oxzxxx#3 nsp=1 mass=0 - 3.000000000000000e+01, 0.000000000000000e+00, // itest=185: oxzxxx#3 nsp=1 mass=0 - 6.000000000000000e+00, -8.000000000000000e+00, // itest=185: oxzxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=185: oxzxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=185: oxzxxx#3 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 4.000000000000000e+02, // itest=186: ixxxxx#4 nsp=1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=186: ixxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=186: ixxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=186: ixxxxx#4 nsp=1 mass=0 - 1.000000000000000e+01, 0.000000000000000e+00, // itest=186: ixxxxx#4 nsp=1 mass=0 - 1.800000000000000e+01, 2.400000000000000e+01 } ); // itest=186: ixxxxx#4 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 4.000000000000000e+02, // itest=187: ixxxxx#4 nsp=1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=187: ixxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=187: ixxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=187: ixxxxx#4 nsp=1 mass=0 - 1.000000000000000e+01, 0.000000000000000e+00, // itest=187: ixxxxx#4 nsp=1 mass=0 - 1.800000000000000e+01, 2.400000000000000e+01 } ); // itest=187: ixxxxx#4 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 4.000000000000000e+02, // itest=188: ixzxxx#4 nsp=1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=188: ixzxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=188: ixzxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=188: ixzxxx#4 nsp=1 mass=0 - 1.000000000000000e+01, 0.000000000000000e+00, // itest=188: ixzxxx#4 nsp=1 mass=0 - 1.800000000000000e+01, 2.400000000000000e+01 } ); // itest=188: ixzxxx#4 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -4.000000000000000e+02, // itest=189: vxxxxx#4 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=189: vxxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=189: vxxxxx#4 nsp=1 mass=0 - 3.394112549695428e-01, -5.656854249492381e-01, // itest=189: vxxxxx#4 nsp=1 mass=0 - 4.525483399593904e-01, 4.242640687119285e-01, // itest=189: vxxxxx#4 nsp=1 mass=0 - 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=189: vxxxxx#4 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -4.000000000000000e+02, // itest=190: vxxxxx#4 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=190: vxxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=190: vxxxxx#4 nsp=1 mass=0 - 3.394112549695428e-01, -5.656854249492381e-01, // itest=190: vxxxxx#4 nsp=1 mass=0 - 4.525483399593904e-01, 4.242640687119285e-01, // itest=190: vxxxxx#4 nsp=1 mass=0 - 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=190: vxxxxx#4 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -4.000000000000000e+02, // itest=191: sxxxxx#4 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=191: sxxxxx#4 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=191: sxxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=191: sxxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=191: sxxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=191: sxxxxx#4 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -4.000000000000000e+02, // itest=192: sxxxxx#4 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=192: sxxxxx#4 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=192: sxxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=192: sxxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=192: sxxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=192: sxxxxx#4 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -4.000000000000000e+02, // itest=193: oxxxxx#4 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=193: oxxxxx#4 nsp=1 mass=0 - 1.000000000000000e+01, 0.000000000000000e+00, // itest=193: oxxxxx#4 nsp=1 mass=0 - 1.800000000000000e+01, -2.400000000000000e+01, // itest=193: oxxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=193: oxxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=193: oxxxxx#4 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -4.000000000000000e+02, // itest=194: oxxxxx#4 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=194: oxxxxx#4 nsp=1 mass=0 - 1.000000000000000e+01, 0.000000000000000e+00, // itest=194: oxxxxx#4 nsp=1 mass=0 - 1.800000000000000e+01, -2.400000000000000e+01, // itest=194: oxxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=194: oxxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=194: oxxxxx#4 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -4.000000000000000e+02, // itest=195: oxzxxx#4 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=195: oxzxxx#4 nsp=1 mass=0 - 1.000000000000000e+01, 0.000000000000000e+00, // itest=195: oxzxxx#4 nsp=1 mass=0 - 1.800000000000000e+01, -2.400000000000000e+01, // itest=195: oxzxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=195: oxzxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=195: oxzxxx#4 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=196: ixxxxx#5 nsp=1 mass=500 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=196: ixxxxx#5 nsp=1 mass=500 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=196: ixxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=196: ixxxxx#5 nsp=1 mass=500 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=196: ixxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=196: ixxxxx#5 nsp=1 mass=500 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=197: ixxxxx#5 nsp=1 mass=-500 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=197: ixxxxx#5 nsp=1 mass=-500 - -2.236067977499790e+01, 0.000000000000000e+00, // itest=197: ixxxxx#5 nsp=1 mass=-500 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=197: ixxxxx#5 nsp=1 mass=-500 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=197: ixxxxx#5 nsp=1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=197: ixxxxx#5 nsp=1 mass=-500 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=198: vxxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=198: vxxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=198: vxxxxx#5 nsp=1 mass=500 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=198: vxxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 7.071067811865476e-01, // itest=198: vxxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=198: vxxxxx#5 nsp=1 mass=500 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=199: vxxxxx#5 nsp=1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=199: vxxxxx#5 nsp=1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=199: vxxxxx#5 nsp=1 mass=-500 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=199: vxxxxx#5 nsp=1 mass=-500 - 0.000000000000000e+00, 7.071067811865476e-01, // itest=199: vxxxxx#5 nsp=1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=199: vxxxxx#5 nsp=1 mass=-500 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=200: sxxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=200: sxxxxx#5 nsp=1 mass=500 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=200: sxxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=200: sxxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=200: sxxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=200: sxxxxx#5 nsp=1 mass=500 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=201: sxxxxx#5 nsp=1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=201: sxxxxx#5 nsp=1 mass=-500 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=201: sxxxxx#5 nsp=1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=201: sxxxxx#5 nsp=1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=201: sxxxxx#5 nsp=1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=201: sxxxxx#5 nsp=1 mass=-500 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=202: oxxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=202: oxxxxx#5 nsp=1 mass=500 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=202: oxxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=202: oxxxxx#5 nsp=1 mass=500 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=202: oxxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=202: oxxxxx#5 nsp=1 mass=500 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=203: oxxxxx#5 nsp=1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=203: oxxxxx#5 nsp=1 mass=-500 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=203: oxxxxx#5 nsp=1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=203: oxxxxx#5 nsp=1 mass=-500 - -2.236067977499790e+01, 0.000000000000000e+00, // itest=203: oxxxxx#5 nsp=1 mass=-500 - -0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=203: oxxxxx#5 nsp=1 mass=-500 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -3.000000000000000e+02, // itest=204: ixxxxx#6 nsp=1 mass=400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=204: ixxxxx#6 nsp=1 mass=400 - 1.414213562373095e+01, 0.000000000000000e+00, // itest=204: ixxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=204: ixxxxx#6 nsp=1 mass=400 - 2.828427124746190e+01, 0.000000000000000e+00, // itest=204: ixxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=204: ixxxxx#6 nsp=1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -3.000000000000000e+02, // itest=205: ixxxxx#6 nsp=1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=205: ixxxxx#6 nsp=1 mass=-400 - -1.414213562373095e+01, -0.000000000000000e+00, // itest=205: ixxxxx#6 nsp=1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=205: ixxxxx#6 nsp=1 mass=-400 - 2.828427124746190e+01, 0.000000000000000e+00, // itest=205: ixxxxx#6 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=205: ixxxxx#6 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 3.000000000000000e+02, // itest=206: vxxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=206: vxxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=206: vxxxxx#6 nsp=1 mass=400 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=206: vxxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, 7.071067811865476e-01, // itest=206: vxxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=206: vxxxxx#6 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 3.000000000000000e+02, // itest=207: vxxxxx#6 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=207: vxxxxx#6 nsp=1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=207: vxxxxx#6 nsp=1 mass=-400 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=207: vxxxxx#6 nsp=1 mass=-400 - 0.000000000000000e+00, 7.071067811865476e-01, // itest=207: vxxxxx#6 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=207: vxxxxx#6 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 3.000000000000000e+02, // itest=208: sxxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=208: sxxxxx#6 nsp=1 mass=400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=208: sxxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=208: sxxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=208: sxxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=208: sxxxxx#6 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 3.000000000000000e+02, // itest=209: sxxxxx#6 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=209: sxxxxx#6 nsp=1 mass=-400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=209: sxxxxx#6 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=209: sxxxxx#6 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=209: sxxxxx#6 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=209: sxxxxx#6 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 3.000000000000000e+02, // itest=210: oxxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=210: oxxxxx#6 nsp=1 mass=400 - 2.828427124746190e+01, 0.000000000000000e+00, // itest=210: oxxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=210: oxxxxx#6 nsp=1 mass=400 - 1.414213562373095e+01, 0.000000000000000e+00, // itest=210: oxxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=210: oxxxxx#6 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 3.000000000000000e+02, // itest=211: oxxxxx#6 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=211: oxxxxx#6 nsp=1 mass=-400 - 2.828427124746190e+01, 0.000000000000000e+00, // itest=211: oxxxxx#6 nsp=1 mass=-400 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=211: oxxxxx#6 nsp=1 mass=-400 - -1.414213562373095e+01, -0.000000000000000e+00, // itest=211: oxxxxx#6 nsp=1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=211: oxxxxx#6 nsp=1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 3.000000000000000e+02, // itest=212: ixxxxx#7 nsp=1 mass=400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=212: ixxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=212: ixxxxx#7 nsp=1 mass=400 - -1.414213562373095e+01, 0.000000000000000e+00, // itest=212: ixxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=212: ixxxxx#7 nsp=1 mass=400 - -2.828427124746190e+01, 0.000000000000000e+00 } ); // itest=212: ixxxxx#7 nsp=1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 3.000000000000000e+02, // itest=213: ixxxxx#7 nsp=1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=213: ixxxxx#7 nsp=1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=213: ixxxxx#7 nsp=1 mass=-400 - 1.414213562373095e+01, -0.000000000000000e+00, // itest=213: ixxxxx#7 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=213: ixxxxx#7 nsp=1 mass=-400 - -2.828427124746190e+01, 0.000000000000000e+00 } ); // itest=213: ixxxxx#7 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -3.000000000000000e+02, // itest=214: vxxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=214: vxxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=214: vxxxxx#7 nsp=1 mass=400 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=214: vxxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, -7.071067811865476e-01, // itest=214: vxxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=214: vxxxxx#7 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -3.000000000000000e+02, // itest=215: vxxxxx#7 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=215: vxxxxx#7 nsp=1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=215: vxxxxx#7 nsp=1 mass=-400 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=215: vxxxxx#7 nsp=1 mass=-400 - 0.000000000000000e+00, -7.071067811865476e-01, // itest=215: vxxxxx#7 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=215: vxxxxx#7 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -3.000000000000000e+02, // itest=216: sxxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=216: sxxxxx#7 nsp=1 mass=400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=216: sxxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=216: sxxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=216: sxxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=216: sxxxxx#7 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -3.000000000000000e+02, // itest=217: sxxxxx#7 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=217: sxxxxx#7 nsp=1 mass=-400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=217: sxxxxx#7 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=217: sxxxxx#7 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=217: sxxxxx#7 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=217: sxxxxx#7 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -3.000000000000000e+02, // itest=218: oxxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=218: oxxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=218: oxxxxx#7 nsp=1 mass=400 - -2.828427124746190e+01, 0.000000000000000e+00, // itest=218: oxxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=218: oxxxxx#7 nsp=1 mass=400 - -1.414213562373095e+01, 0.000000000000000e+00 } ); // itest=218: oxxxxx#7 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -3.000000000000000e+02, // itest=219: oxxxxx#7 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=219: oxxxxx#7 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=219: oxxxxx#7 nsp=1 mass=-400 - -2.828427124746190e+01, 0.000000000000000e+00, // itest=219: oxxxxx#7 nsp=1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=219: oxxxxx#7 nsp=1 mass=-400 - 1.414213562373095e+01, -0.000000000000000e+00 } ); // itest=219: oxxxxx#7 nsp=1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=220: ixxxxx#8 nsp=1 mass=400 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=220: ixxxxx#8 nsp=1 mass=400 - 1.000000000000000e+01, 0.000000000000000e+00, // itest=220: ixxxxx#8 nsp=1 mass=400 - 5.999999999999999e+00, 7.999999999999999e+00, // itest=220: ixxxxx#8 nsp=1 mass=400 - 2.000000000000000e+01, 0.000000000000000e+00, // itest=220: ixxxxx#8 nsp=1 mass=400 - 1.200000000000000e+01, 1.600000000000000e+01 } ); // itest=220: ixxxxx#8 nsp=1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=221: ixxxxx#8 nsp=1 mass=-400 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=221: ixxxxx#8 nsp=1 mass=-400 - -1.000000000000000e+01, -0.000000000000000e+00, // itest=221: ixxxxx#8 nsp=1 mass=-400 - -5.999999999999999e+00, -7.999999999999999e+00, // itest=221: ixxxxx#8 nsp=1 mass=-400 - 2.000000000000000e+01, 0.000000000000000e+00, // itest=221: ixxxxx#8 nsp=1 mass=-400 - 1.200000000000000e+01, 1.600000000000000e+01 } ); // itest=221: ixxxxx#8 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=222: vxxxxx#8 nsp=1 mass=400 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=222: vxxxxx#8 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=222: vxxxxx#8 nsp=1 mass=400 - 0.000000000000000e+00, -5.656854249492381e-01, // itest=222: vxxxxx#8 nsp=1 mass=400 - 0.000000000000000e+00, 4.242640687119285e-01, // itest=222: vxxxxx#8 nsp=1 mass=400 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=222: vxxxxx#8 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=223: vxxxxx#8 nsp=1 mass=-400 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=223: vxxxxx#8 nsp=1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=223: vxxxxx#8 nsp=1 mass=-400 - -0.000000000000000e+00, -5.656854249492381e-01, // itest=223: vxxxxx#8 nsp=1 mass=-400 - -0.000000000000000e+00, 4.242640687119285e-01, // itest=223: vxxxxx#8 nsp=1 mass=-400 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=223: vxxxxx#8 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=224: sxxxxx#8 nsp=1 mass=400 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=224: sxxxxx#8 nsp=1 mass=400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=224: sxxxxx#8 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=224: sxxxxx#8 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=224: sxxxxx#8 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=224: sxxxxx#8 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=225: sxxxxx#8 nsp=1 mass=-400 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=225: sxxxxx#8 nsp=1 mass=-400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=225: sxxxxx#8 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=225: sxxxxx#8 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=225: sxxxxx#8 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=225: sxxxxx#8 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=226: oxxxxx#8 nsp=1 mass=400 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=226: oxxxxx#8 nsp=1 mass=400 - 2.000000000000000e+01, 0.000000000000000e+00, // itest=226: oxxxxx#8 nsp=1 mass=400 - 1.200000000000000e+01, -1.600000000000000e+01, // itest=226: oxxxxx#8 nsp=1 mass=400 - 1.000000000000000e+01, 0.000000000000000e+00, // itest=226: oxxxxx#8 nsp=1 mass=400 - 5.999999999999999e+00, -7.999999999999999e+00 } ); // itest=226: oxxxxx#8 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=227: oxxxxx#8 nsp=1 mass=-400 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=227: oxxxxx#8 nsp=1 mass=-400 - 2.000000000000000e+01, 0.000000000000000e+00, // itest=227: oxxxxx#8 nsp=1 mass=-400 - 1.200000000000000e+01, -1.600000000000000e+01, // itest=227: oxxxxx#8 nsp=1 mass=-400 - -1.000000000000000e+01, -0.000000000000000e+00, // itest=227: oxxxxx#8 nsp=1 mass=-400 - -5.999999999999999e+00, 7.999999999999999e+00 } ); // itest=227: oxxxxx#8 nsp=1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=228: ixxxxx#9 nsp=1 mass=400 - 2.400000000000000e+02, 1.800000000000000e+02, // itest=228: ixxxxx#9 nsp=1 mass=400 - 1.000000000000000e+01, 0.000000000000000e+00, // itest=228: ixxxxx#9 nsp=1 mass=400 - -7.999999999999999e+00, -5.999999999999999e+00, // itest=228: ixxxxx#9 nsp=1 mass=400 - 2.000000000000000e+01, 0.000000000000000e+00, // itest=228: ixxxxx#9 nsp=1 mass=400 - -1.600000000000000e+01, -1.200000000000000e+01 } ); // itest=228: ixxxxx#9 nsp=1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=229: ixxxxx#9 nsp=1 mass=-400 - 2.400000000000000e+02, 1.800000000000000e+02, // itest=229: ixxxxx#9 nsp=1 mass=-400 - -1.000000000000000e+01, -0.000000000000000e+00, // itest=229: ixxxxx#9 nsp=1 mass=-400 - 7.999999999999999e+00, 5.999999999999999e+00, // itest=229: ixxxxx#9 nsp=1 mass=-400 - 2.000000000000000e+01, 0.000000000000000e+00, // itest=229: ixxxxx#9 nsp=1 mass=-400 - -1.600000000000000e+01, -1.200000000000000e+01 } ); // itest=229: ixxxxx#9 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=230: vxxxxx#9 nsp=1 mass=400 - -2.400000000000000e+02, -1.800000000000000e+02, // itest=230: vxxxxx#9 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=230: vxxxxx#9 nsp=1 mass=400 - 0.000000000000000e+00, 4.242640687119285e-01, // itest=230: vxxxxx#9 nsp=1 mass=400 - 0.000000000000000e+00, -5.656854249492381e-01, // itest=230: vxxxxx#9 nsp=1 mass=400 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=230: vxxxxx#9 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=231: vxxxxx#9 nsp=1 mass=-400 - -2.400000000000000e+02, -1.800000000000000e+02, // itest=231: vxxxxx#9 nsp=1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=231: vxxxxx#9 nsp=1 mass=-400 - 0.000000000000000e+00, 4.242640687119285e-01, // itest=231: vxxxxx#9 nsp=1 mass=-400 - 0.000000000000000e+00, -5.656854249492381e-01, // itest=231: vxxxxx#9 nsp=1 mass=-400 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=231: vxxxxx#9 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=232: sxxxxx#9 nsp=1 mass=400 - -2.400000000000000e+02, -1.800000000000000e+02, // itest=232: sxxxxx#9 nsp=1 mass=400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=232: sxxxxx#9 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=232: sxxxxx#9 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=232: sxxxxx#9 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=232: sxxxxx#9 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=233: sxxxxx#9 nsp=1 mass=-400 - -2.400000000000000e+02, -1.800000000000000e+02, // itest=233: sxxxxx#9 nsp=1 mass=-400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=233: sxxxxx#9 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=233: sxxxxx#9 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=233: sxxxxx#9 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=233: sxxxxx#9 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=234: oxxxxx#9 nsp=1 mass=400 - -2.400000000000000e+02, -1.800000000000000e+02, // itest=234: oxxxxx#9 nsp=1 mass=400 - 2.000000000000000e+01, 0.000000000000000e+00, // itest=234: oxxxxx#9 nsp=1 mass=400 - -1.600000000000000e+01, 1.200000000000000e+01, // itest=234: oxxxxx#9 nsp=1 mass=400 - 1.000000000000000e+01, 0.000000000000000e+00, // itest=234: oxxxxx#9 nsp=1 mass=400 - -7.999999999999999e+00, 5.999999999999999e+00 } ); // itest=234: oxxxxx#9 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=235: oxxxxx#9 nsp=1 mass=-400 - -2.400000000000000e+02, -1.800000000000000e+02, // itest=235: oxxxxx#9 nsp=1 mass=-400 - 2.000000000000000e+01, 0.000000000000000e+00, // itest=235: oxxxxx#9 nsp=1 mass=-400 - -1.600000000000000e+01, 1.200000000000000e+01, // itest=235: oxxxxx#9 nsp=1 mass=-400 - -1.000000000000000e+01, -0.000000000000000e+00, // itest=235: oxxxxx#9 nsp=1 mass=-400 - 7.999999999999999e+00, -5.999999999999999e+00 } ); // itest=235: oxxxxx#9 nsp=1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -1.440000000000000e+02, // itest=236: ixxxxx#10 nsp=1 mass=400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=236: ixxxxx#10 nsp=1 mass=400 - 1.216552506059644e+01, 0.000000000000000e+00, // itest=236: ixxxxx#10 nsp=1 mass=400 - 4.931969619160719e+00, 5.260767593771432e+00, // itest=236: ixxxxx#10 nsp=1 mass=400 - 2.433105012119288e+01, 0.000000000000000e+00, // itest=236: ixxxxx#10 nsp=1 mass=400 - 9.863939238321439e+00, 1.052153518754287e+01 } ); // itest=236: ixxxxx#10 nsp=1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -1.440000000000000e+02, // itest=237: ixxxxx#10 nsp=1 mass=-400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=237: ixxxxx#10 nsp=1 mass=-400 - -1.216552506059644e+01, -0.000000000000000e+00, // itest=237: ixxxxx#10 nsp=1 mass=-400 - -4.931969619160719e+00, -5.260767593771432e+00, // itest=237: ixxxxx#10 nsp=1 mass=-400 - 2.433105012119288e+01, 0.000000000000000e+00, // itest=237: ixxxxx#10 nsp=1 mass=-400 - 9.863939238321439e+00, 1.052153518754287e+01 } ); // itest=237: ixxxxx#10 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 1.440000000000000e+02, // itest=238: vxxxxx#10 nsp=1 mass=400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=238: vxxxxx#10 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=238: vxxxxx#10 nsp=1 mass=400 - -2.321373168788980e-01, -5.158607041753289e-01, // itest=238: vxxxxx#10 nsp=1 mass=400 - -2.476131380041579e-01, 4.836194101643708e-01, // itest=238: vxxxxx#10 nsp=1 mass=400 - 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=238: vxxxxx#10 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 1.440000000000000e+02, // itest=239: vxxxxx#10 nsp=1 mass=-400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=239: vxxxxx#10 nsp=1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=239: vxxxxx#10 nsp=1 mass=-400 - -2.321373168788980e-01, -5.158607041753289e-01, // itest=239: vxxxxx#10 nsp=1 mass=-400 - -2.476131380041579e-01, 4.836194101643708e-01, // itest=239: vxxxxx#10 nsp=1 mass=-400 - 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=239: vxxxxx#10 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 1.440000000000000e+02, // itest=240: sxxxxx#10 nsp=1 mass=400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=240: sxxxxx#10 nsp=1 mass=400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=240: sxxxxx#10 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=240: sxxxxx#10 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=240: sxxxxx#10 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=240: sxxxxx#10 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 1.440000000000000e+02, // itest=241: sxxxxx#10 nsp=1 mass=-400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=241: sxxxxx#10 nsp=1 mass=-400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=241: sxxxxx#10 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=241: sxxxxx#10 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=241: sxxxxx#10 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=241: sxxxxx#10 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 1.440000000000000e+02, // itest=242: oxxxxx#10 nsp=1 mass=400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=242: oxxxxx#10 nsp=1 mass=400 - 2.433105012119288e+01, 0.000000000000000e+00, // itest=242: oxxxxx#10 nsp=1 mass=400 - 9.863939238321439e+00, -1.052153518754287e+01, // itest=242: oxxxxx#10 nsp=1 mass=400 - 1.216552506059644e+01, 0.000000000000000e+00, // itest=242: oxxxxx#10 nsp=1 mass=400 - 4.931969619160719e+00, -5.260767593771432e+00 } ); // itest=242: oxxxxx#10 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 1.440000000000000e+02, // itest=243: oxxxxx#10 nsp=1 mass=-400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=243: oxxxxx#10 nsp=1 mass=-400 - 2.433105012119288e+01, 0.000000000000000e+00, // itest=243: oxxxxx#10 nsp=1 mass=-400 - 9.863939238321439e+00, -1.052153518754287e+01, // itest=243: oxxxxx#10 nsp=1 mass=-400 - -1.216552506059644e+01, -0.000000000000000e+00, // itest=243: oxxxxx#10 nsp=1 mass=-400 - -4.931969619160719e+00, 5.260767593771432e+00 } ); // itest=243: oxxxxx#10 nsp=1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 1.440000000000000e+02, // itest=244: ixxxxx#11 nsp=1 mass=400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=244: ixxxxx#11 nsp=1 mass=400 - 7.211102550927978e+00, 0.000000000000000e+00, // itest=244: ixxxxx#11 nsp=1 mass=400 - 8.320502943378436e+00, 8.875203139603666e+00, // itest=244: ixxxxx#11 nsp=1 mass=400 - 1.442220510185596e+01, 0.000000000000000e+00, // itest=244: ixxxxx#11 nsp=1 mass=400 - 1.664100588675688e+01, 1.775040627920733e+01 } ); // itest=244: ixxxxx#11 nsp=1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 1.440000000000000e+02, // itest=245: ixxxxx#11 nsp=1 mass=-400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=245: ixxxxx#11 nsp=1 mass=-400 - -7.211102550927978e+00, -0.000000000000000e+00, // itest=245: ixxxxx#11 nsp=1 mass=-400 - -8.320502943378436e+00, -8.875203139603666e+00, // itest=245: ixxxxx#11 nsp=1 mass=-400 - 1.442220510185596e+01, 0.000000000000000e+00, // itest=245: ixxxxx#11 nsp=1 mass=-400 - 1.664100588675688e+01, 1.775040627920733e+01 } ); // itest=245: ixxxxx#11 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -1.440000000000000e+02, // itest=246: vxxxxx#11 nsp=1 mass=400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=246: vxxxxx#11 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=246: vxxxxx#11 nsp=1 mass=400 - 2.321373168788980e-01, -5.158607041753289e-01, // itest=246: vxxxxx#11 nsp=1 mass=400 - 2.476131380041579e-01, 4.836194101643708e-01, // itest=246: vxxxxx#11 nsp=1 mass=400 - 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=246: vxxxxx#11 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -1.440000000000000e+02, // itest=247: vxxxxx#11 nsp=1 mass=-400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=247: vxxxxx#11 nsp=1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=247: vxxxxx#11 nsp=1 mass=-400 - 2.321373168788980e-01, -5.158607041753289e-01, // itest=247: vxxxxx#11 nsp=1 mass=-400 - 2.476131380041579e-01, 4.836194101643708e-01, // itest=247: vxxxxx#11 nsp=1 mass=-400 - 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=247: vxxxxx#11 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -1.440000000000000e+02, // itest=248: sxxxxx#11 nsp=1 mass=400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=248: sxxxxx#11 nsp=1 mass=400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=248: sxxxxx#11 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=248: sxxxxx#11 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=248: sxxxxx#11 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=248: sxxxxx#11 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -1.440000000000000e+02, // itest=249: sxxxxx#11 nsp=1 mass=-400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=249: sxxxxx#11 nsp=1 mass=-400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=249: sxxxxx#11 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=249: sxxxxx#11 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=249: sxxxxx#11 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=249: sxxxxx#11 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -1.440000000000000e+02, // itest=250: oxxxxx#11 nsp=1 mass=400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=250: oxxxxx#11 nsp=1 mass=400 - 1.442220510185596e+01, 0.000000000000000e+00, // itest=250: oxxxxx#11 nsp=1 mass=400 - 1.664100588675688e+01, -1.775040627920733e+01, // itest=250: oxxxxx#11 nsp=1 mass=400 - 7.211102550927978e+00, 0.000000000000000e+00, // itest=250: oxxxxx#11 nsp=1 mass=400 - 8.320502943378436e+00, -8.875203139603666e+00 } ); // itest=250: oxxxxx#11 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -1.440000000000000e+02, // itest=251: oxxxxx#11 nsp=1 mass=-400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=251: oxxxxx#11 nsp=1 mass=-400 - 1.442220510185596e+01, 0.000000000000000e+00, // itest=251: oxxxxx#11 nsp=1 mass=-400 - 1.664100588675688e+01, -1.775040627920733e+01, // itest=251: oxxxxx#11 nsp=1 mass=-400 - -7.211102550927978e+00, -0.000000000000000e+00, // itest=251: oxxxxx#11 nsp=1 mass=-400 - -8.320502943378436e+00, 8.875203139603666e+00 } ); // itest=251: oxxxxx#11 nsp=1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=252: ixxxxx#12 nsp=1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=252: ixxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=252: ixxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=252: ixxxxx#12 nsp=1 mass=0 - 3.162277660168379e+01, 0.000000000000000e+00, // itest=252: ixxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=252: ixxxxx#12 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=253: ixxxxx#12 nsp=1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=253: ixxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=253: ixxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=253: ixxxxx#12 nsp=1 mass=0 - 3.162277660168379e+01, 0.000000000000000e+00, // itest=253: ixxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=253: ixxxxx#12 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=254: ipzxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=254: ipzxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=254: ipzxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=254: ipzxxx#12 nsp=1 mass=0 - 3.162277660168379e+01, 0.000000000000000e+00, // itest=254: ipzxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=254: ipzxxx#12 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=255: vxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=255: vxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=255: vxxxxx#12 nsp=1 mass=0 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=255: vxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 7.071067811865476e-01, // itest=255: vxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=255: vxxxxx#12 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=256: vxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=256: vxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=256: vxxxxx#12 nsp=1 mass=0 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=256: vxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 7.071067811865476e-01, // itest=256: vxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=256: vxxxxx#12 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=257: sxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=257: sxxxxx#12 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=257: sxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=257: sxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=257: sxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=257: sxxxxx#12 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=258: sxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=258: sxxxxx#12 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=258: sxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=258: sxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=258: sxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=258: sxxxxx#12 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=259: oxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=259: oxxxxx#12 nsp=1 mass=0 - 3.162277660168379e+01, 0.000000000000000e+00, // itest=259: oxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=259: oxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=259: oxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=259: oxxxxx#12 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=260: oxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=260: oxxxxx#12 nsp=1 mass=0 - 3.162277660168379e+01, 0.000000000000000e+00, // itest=260: oxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=260: oxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=260: oxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=260: oxxxxx#12 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=261: opzxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=261: opzxxx#12 nsp=1 mass=0 - 3.162277660168379e+01, 0.000000000000000e+00, // itest=261: opzxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=261: opzxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=261: opzxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=261: opzxxx#12 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=262: ixxxxx#13 nsp=1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=262: ixxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=262: ixxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=262: ixxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=262: ixxxxx#13 nsp=1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=262: ixxxxx#13 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=263: ixxxxx#13 nsp=1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=263: ixxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=263: ixxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=263: ixxxxx#13 nsp=1 mass=0 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=263: ixxxxx#13 nsp=1 mass=0 - -3.162277660168379e+01, -0.000000000000000e+00 } ); // itest=263: ixxxxx#13 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=264: imzxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=264: imzxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=264: imzxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=264: imzxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=264: imzxxx#13 nsp=1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=264: imzxxx#13 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=265: vxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=265: vxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=265: vxxxxx#13 nsp=1 mass=0 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=265: vxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, -7.071067811865476e-01, // itest=265: vxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=265: vxxxxx#13 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=266: vxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=266: vxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=266: vxxxxx#13 nsp=1 mass=0 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=266: vxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, -7.071067811865476e-01, // itest=266: vxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=266: vxxxxx#13 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=267: sxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=267: sxxxxx#13 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=267: sxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=267: sxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=267: sxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=267: sxxxxx#13 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=268: sxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=268: sxxxxx#13 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=268: sxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=268: sxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=268: sxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=268: sxxxxx#13 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=269: oxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=269: oxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=269: oxxxxx#13 nsp=1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00, // itest=269: oxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=269: oxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=269: oxxxxx#13 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=270: oxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=270: oxxxxx#13 nsp=1 mass=0 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=270: oxxxxx#13 nsp=1 mass=0 - -3.162277660168379e+01, -0.000000000000000e+00, // itest=270: oxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=270: oxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=270: oxxxxx#13 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=271: omzxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=271: omzxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=271: omzxxx#13 nsp=1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00, // itest=271: omzxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=271: omzxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=271: omzxxx#13 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=272: ixxxxx#14 nsp=1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=272: ixxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=272: ixxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=272: ixxxxx#14 nsp=1 mass=0 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=272: ixxxxx#14 nsp=1 mass=0 - 1.341640786499874e+01, 1.788854381999832e+01 } ); // itest=272: ixxxxx#14 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=273: ixxxxx#14 nsp=1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=273: ixxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=273: ixxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=273: ixxxxx#14 nsp=1 mass=0 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=273: ixxxxx#14 nsp=1 mass=0 - 1.341640786499874e+01, 1.788854381999832e+01 } ); // itest=273: ixxxxx#14 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=274: ixzxxx#14 nsp=1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=274: ixzxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=274: ixzxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=274: ixzxxx#14 nsp=1 mass=0 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=274: ixzxxx#14 nsp=1 mass=0 - 1.341640786499874e+01, 1.788854381999832e+01 } ); // itest=274: ixzxxx#14 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=275: vxxxxx#14 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=275: vxxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=275: vxxxxx#14 nsp=1 mass=0 - -0.000000000000000e+00, -5.656854249492381e-01, // itest=275: vxxxxx#14 nsp=1 mass=0 - -0.000000000000000e+00, 4.242640687119285e-01, // itest=275: vxxxxx#14 nsp=1 mass=0 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=275: vxxxxx#14 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=276: vxxxxx#14 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=276: vxxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=276: vxxxxx#14 nsp=1 mass=0 - -0.000000000000000e+00, -5.656854249492381e-01, // itest=276: vxxxxx#14 nsp=1 mass=0 - -0.000000000000000e+00, 4.242640687119285e-01, // itest=276: vxxxxx#14 nsp=1 mass=0 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=276: vxxxxx#14 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=277: sxxxxx#14 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=277: sxxxxx#14 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=277: sxxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=277: sxxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=277: sxxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=277: sxxxxx#14 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=278: sxxxxx#14 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=278: sxxxxx#14 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=278: sxxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=278: sxxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=278: sxxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=278: sxxxxx#14 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=279: oxxxxx#14 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=279: oxxxxx#14 nsp=1 mass=0 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=279: oxxxxx#14 nsp=1 mass=0 - 1.341640786499874e+01, -1.788854381999832e+01, // itest=279: oxxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=279: oxxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=279: oxxxxx#14 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=280: oxxxxx#14 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=280: oxxxxx#14 nsp=1 mass=0 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=280: oxxxxx#14 nsp=1 mass=0 - 1.341640786499874e+01, -1.788854381999832e+01, // itest=280: oxxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=280: oxxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=280: oxxxxx#14 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=281: oxzxxx#14 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=281: oxzxxx#14 nsp=1 mass=0 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=281: oxzxxx#14 nsp=1 mass=0 - 1.341640786499874e+01, -1.788854381999832e+01, // itest=281: oxzxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=281: oxzxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=281: oxzxxx#14 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=282: ixxxxx#15 nsp=1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=282: ixxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=282: ixxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=282: ixxxxx#15 nsp=1 mass=0 - 3.000000000000000e+01, 0.000000000000000e+00, // itest=282: ixxxxx#15 nsp=1 mass=0 - 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=282: ixxxxx#15 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=283: ixxxxx#15 nsp=1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=283: ixxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=283: ixxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=283: ixxxxx#15 nsp=1 mass=0 - 3.000000000000000e+01, 0.000000000000000e+00, // itest=283: ixxxxx#15 nsp=1 mass=0 - 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=283: ixxxxx#15 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=284: ixzxxx#15 nsp=1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=284: ixzxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=284: ixzxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=284: ixzxxx#15 nsp=1 mass=0 - 3.000000000000000e+01, 0.000000000000000e+00, // itest=284: ixzxxx#15 nsp=1 mass=0 - 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=284: ixzxxx#15 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=285: vxxxxx#15 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=285: vxxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=285: vxxxxx#15 nsp=1 mass=0 - -3.394112549695428e-01, -5.656854249492381e-01, // itest=285: vxxxxx#15 nsp=1 mass=0 - -4.525483399593904e-01, 4.242640687119285e-01, // itest=285: vxxxxx#15 nsp=1 mass=0 - 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=285: vxxxxx#15 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=286: vxxxxx#15 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=286: vxxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=286: vxxxxx#15 nsp=1 mass=0 - -3.394112549695428e-01, -5.656854249492381e-01, // itest=286: vxxxxx#15 nsp=1 mass=0 - -4.525483399593904e-01, 4.242640687119285e-01, // itest=286: vxxxxx#15 nsp=1 mass=0 - 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=286: vxxxxx#15 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=287: sxxxxx#15 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=287: sxxxxx#15 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=287: sxxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=287: sxxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=287: sxxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=287: sxxxxx#15 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=288: sxxxxx#15 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=288: sxxxxx#15 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=288: sxxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=288: sxxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=288: sxxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=288: sxxxxx#15 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=289: oxxxxx#15 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=289: oxxxxx#15 nsp=1 mass=0 - 3.000000000000000e+01, 0.000000000000000e+00, // itest=289: oxxxxx#15 nsp=1 mass=0 - 6.000000000000000e+00, -8.000000000000000e+00, // itest=289: oxxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=289: oxxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=289: oxxxxx#15 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=290: oxxxxx#15 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=290: oxxxxx#15 nsp=1 mass=0 - 3.000000000000000e+01, 0.000000000000000e+00, // itest=290: oxxxxx#15 nsp=1 mass=0 - 6.000000000000000e+00, -8.000000000000000e+00, // itest=290: oxxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=290: oxxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=290: oxxxxx#15 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=291: oxzxxx#15 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=291: oxzxxx#15 nsp=1 mass=0 - 3.000000000000000e+01, 0.000000000000000e+00, // itest=291: oxzxxx#15 nsp=1 mass=0 - 6.000000000000000e+00, -8.000000000000000e+00, // itest=291: oxzxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=291: oxzxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=291: oxzxxx#15 nsp=1 mass=0 + 5.000000000000000e+02, 5.000000000000000e+02, // itest=50: ixxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=50: ixxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=50: ixxxxx#5 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=50: ixxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=50: ixxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=50: ixxxxx#5 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=51: ixxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=51: ixxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=51: ixxxxx#5 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=51: ixxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=51: ixxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=51: ixxxxx#5 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=52: ipzxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=52: ipzxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=52: ipzxxx#5 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=52: ipzxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=52: ipzxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=52: ipzxxx#5 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=53: vxxxxx#5 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=53: vxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=53: vxxxxx#5 nsp=-1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=53: vxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=53: vxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=53: vxxxxx#5 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=54: vxxxxx#5 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=54: vxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=54: vxxxxx#5 nsp=-1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=54: vxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=54: vxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=54: vxxxxx#5 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=55: sxxxxx#5 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=55: sxxxxx#5 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=55: sxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=55: sxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=55: sxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=55: sxxxxx#5 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=56: sxxxxx#5 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=56: sxxxxx#5 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=56: sxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=56: sxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=56: sxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=56: sxxxxx#5 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=57: oxxxxx#5 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=57: oxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=57: oxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=57: oxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=57: oxxxxx#5 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=57: oxxxxx#5 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=58: oxxxxx#5 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=58: oxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=58: oxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=58: oxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=58: oxxxxx#5 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=58: oxxxxx#5 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=59: opzxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=59: opzxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=59: opzxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=59: opzxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=59: opzxxx#5 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=59: opzxxx#5 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=60: ixxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=60: ixxxxx#6 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=60: ixxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=60: ixxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=60: ixxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=60: ixxxxx#6 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=61: ixxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=61: ixxxxx#6 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=61: ixxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=61: ixxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=61: ixxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=61: ixxxxx#6 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=62: imzxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=62: imzxxx#6 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=62: imzxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=62: imzxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=62: imzxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=62: imzxxx#6 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=63: vxxxxx#6 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=63: vxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=63: vxxxxx#6 nsp=-1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=63: vxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=63: vxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=63: vxxxxx#6 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=64: vxxxxx#6 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=64: vxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=64: vxxxxx#6 nsp=-1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=64: vxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=64: vxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=64: vxxxxx#6 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=65: sxxxxx#6 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=65: sxxxxx#6 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=65: sxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=65: sxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=65: sxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=65: sxxxxx#6 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=66: sxxxxx#6 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=66: sxxxxx#6 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=66: sxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=66: sxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=66: sxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=66: sxxxxx#6 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=67: oxxxxx#6 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=67: oxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=67: oxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=67: oxxxxx#6 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=67: oxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=67: oxxxxx#6 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=68: oxxxxx#6 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=68: oxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=68: oxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=68: oxxxxx#6 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=68: oxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=68: oxxxxx#6 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=69: omzxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=69: omzxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=69: omzxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=69: omzxxx#6 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=69: omzxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=69: omzxxx#6 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=70: ixxxxx#7 nsp=-1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=70: ixxxxx#7 nsp=-1 mass=0 + 1.341640786499874e+01, -1.788854381999831e+01, // itest=70: ixxxxx#7 nsp=-1 mass=0 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=70: ixxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=70: ixxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=70: ixxxxx#7 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=71: ixxxxx#7 nsp=-1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=71: ixxxxx#7 nsp=-1 mass=0 + 1.341640786499874e+01, -1.788854381999831e+01, // itest=71: ixxxxx#7 nsp=-1 mass=0 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=71: ixxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=71: ixxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=71: ixxxxx#7 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=72: ixzxxx#7 nsp=-1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=72: ixzxxx#7 nsp=-1 mass=0 + 1.341640786499874e+01, -1.788854381999832e+01, // itest=72: ixzxxx#7 nsp=-1 mass=0 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=72: ixzxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=72: ixzxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=72: ixzxxx#7 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=73: vxxxxx#7 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=73: vxxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=73: vxxxxx#7 nsp=-1 mass=0 + -0.000000000000000e+00, 5.656854249492381e-01, // itest=73: vxxxxx#7 nsp=-1 mass=0 + -0.000000000000000e+00, -4.242640687119285e-01, // itest=73: vxxxxx#7 nsp=-1 mass=0 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=73: vxxxxx#7 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=74: vxxxxx#7 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=74: vxxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=74: vxxxxx#7 nsp=-1 mass=0 + -0.000000000000000e+00, 5.656854249492381e-01, // itest=74: vxxxxx#7 nsp=-1 mass=0 + -0.000000000000000e+00, -4.242640687119285e-01, // itest=74: vxxxxx#7 nsp=-1 mass=0 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=74: vxxxxx#7 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=75: sxxxxx#7 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=75: sxxxxx#7 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=75: sxxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=75: sxxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=75: sxxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=75: sxxxxx#7 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=76: sxxxxx#7 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=76: sxxxxx#7 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=76: sxxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=76: sxxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=76: sxxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=76: sxxxxx#7 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=77: oxxxxx#7 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=77: oxxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=77: oxxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=77: oxxxxx#7 nsp=-1 mass=0 + 1.341640786499874e+01, 1.788854381999831e+01, // itest=77: oxxxxx#7 nsp=-1 mass=0 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=77: oxxxxx#7 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=78: oxxxxx#7 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=78: oxxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=78: oxxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=78: oxxxxx#7 nsp=-1 mass=0 + 1.341640786499874e+01, 1.788854381999831e+01, // itest=78: oxxxxx#7 nsp=-1 mass=0 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=78: oxxxxx#7 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=79: oxzxxx#7 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=79: oxzxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=79: oxzxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=79: oxzxxx#7 nsp=-1 mass=0 + 1.341640786499874e+01, 1.788854381999832e+01, // itest=79: oxzxxx#7 nsp=-1 mass=0 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=79: oxzxxx#7 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=80: ixxxxx#8 nsp=-1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=80: ixxxxx#8 nsp=-1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=80: ixxxxx#8 nsp=-1 mass=0 + -3.000000000000000e+01, 0.000000000000000e+00, // itest=80: ixxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=80: ixxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=80: ixxxxx#8 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=81: ixxxxx#8 nsp=-1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=81: ixxxxx#8 nsp=-1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=81: ixxxxx#8 nsp=-1 mass=0 + -3.000000000000000e+01, 0.000000000000000e+00, // itest=81: ixxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=81: ixxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=81: ixxxxx#8 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=82: ixzxxx#8 nsp=-1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=82: ixzxxx#8 nsp=-1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=82: ixzxxx#8 nsp=-1 mass=0 + -3.000000000000000e+01, 0.000000000000000e+00, // itest=82: ixzxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=82: ixzxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=82: ixzxxx#8 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=83: vxxxxx#8 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=83: vxxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=83: vxxxxx#8 nsp=-1 mass=0 + -3.394112549695428e-01, 5.656854249492381e-01, // itest=83: vxxxxx#8 nsp=-1 mass=0 + -4.525483399593904e-01, -4.242640687119285e-01, // itest=83: vxxxxx#8 nsp=-1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=83: vxxxxx#8 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=84: vxxxxx#8 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=84: vxxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=84: vxxxxx#8 nsp=-1 mass=0 + -3.394112549695428e-01, 5.656854249492381e-01, // itest=84: vxxxxx#8 nsp=-1 mass=0 + -4.525483399593904e-01, -4.242640687119285e-01, // itest=84: vxxxxx#8 nsp=-1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=84: vxxxxx#8 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=85: sxxxxx#8 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=85: sxxxxx#8 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=85: sxxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=85: sxxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=85: sxxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=85: sxxxxx#8 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=86: sxxxxx#8 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=86: sxxxxx#8 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=86: sxxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=86: sxxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=86: sxxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=86: sxxxxx#8 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=87: oxxxxx#8 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=87: oxxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=87: oxxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=87: oxxxxx#8 nsp=-1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00, // itest=87: oxxxxx#8 nsp=-1 mass=0 + -3.000000000000000e+01, 0.000000000000000e+00 } ); // itest=87: oxxxxx#8 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=88: oxxxxx#8 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=88: oxxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=88: oxxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=88: oxxxxx#8 nsp=-1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00, // itest=88: oxxxxx#8 nsp=-1 mass=0 + -3.000000000000000e+01, 0.000000000000000e+00 } ); // itest=88: oxxxxx#8 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=89: oxzxxx#8 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=89: oxzxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=89: oxzxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=89: oxzxxx#8 nsp=-1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00, // itest=89: oxzxxx#8 nsp=-1 mass=0 + -3.000000000000000e+01, 0.000000000000000e+00 } ); // itest=89: oxzxxx#8 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=90: ixxxxx#9 nsp=-1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=90: ixxxxx#9 nsp=-1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=90: ixxxxx#9 nsp=-1 mass=0 + -1.000000000000000e+01, 0.000000000000000e+00, // itest=90: ixxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=90: ixxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=90: ixxxxx#9 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=91: ixxxxx#9 nsp=-1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=91: ixxxxx#9 nsp=-1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=91: ixxxxx#9 nsp=-1 mass=0 + -1.000000000000000e+01, 0.000000000000000e+00, // itest=91: ixxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=91: ixxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=91: ixxxxx#9 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=92: ixzxxx#9 nsp=-1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=92: ixzxxx#9 nsp=-1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=92: ixzxxx#9 nsp=-1 mass=0 + -1.000000000000000e+01, 0.000000000000000e+00, // itest=92: ixzxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=92: ixzxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=92: ixzxxx#9 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=93: vxxxxx#9 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=93: vxxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=93: vxxxxx#9 nsp=-1 mass=0 + 3.394112549695428e-01, 5.656854249492381e-01, // itest=93: vxxxxx#9 nsp=-1 mass=0 + 4.525483399593904e-01, -4.242640687119285e-01, // itest=93: vxxxxx#9 nsp=-1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=93: vxxxxx#9 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=94: vxxxxx#9 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=94: vxxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=94: vxxxxx#9 nsp=-1 mass=0 + 3.394112549695428e-01, 5.656854249492381e-01, // itest=94: vxxxxx#9 nsp=-1 mass=0 + 4.525483399593904e-01, -4.242640687119285e-01, // itest=94: vxxxxx#9 nsp=-1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=94: vxxxxx#9 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=95: sxxxxx#9 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=95: sxxxxx#9 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=95: sxxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=95: sxxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=95: sxxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=95: sxxxxx#9 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=96: sxxxxx#9 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=96: sxxxxx#9 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=96: sxxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=96: sxxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=96: sxxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=96: sxxxxx#9 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=97: oxxxxx#9 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=97: oxxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=97: oxxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=97: oxxxxx#9 nsp=-1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01, // itest=97: oxxxxx#9 nsp=-1 mass=0 + -1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=97: oxxxxx#9 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=98: oxxxxx#9 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=98: oxxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=98: oxxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=98: oxxxxx#9 nsp=-1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01, // itest=98: oxxxxx#9 nsp=-1 mass=0 + -1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=98: oxxxxx#9 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=99: oxzxxx#9 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=99: oxzxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=99: oxzxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=99: oxzxxx#9 nsp=-1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01, // itest=99: oxzxxx#9 nsp=-1 mass=0 + -1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=99: oxzxxx#9 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=100: ixxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=100: ixxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=100: ixxxxx#10 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=100: ixxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=100: ixxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=100: ixxxxx#10 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=101: ixxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=101: ixxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=101: ixxxxx#10 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=101: ixxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=101: ixxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=101: ixxxxx#10 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=102: ipzxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=102: ipzxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=102: ipzxxx#10 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=102: ipzxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=102: ipzxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=102: ipzxxx#10 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=103: vxxxxx#10 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=103: vxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=103: vxxxxx#10 nsp=-1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=103: vxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=103: vxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=103: vxxxxx#10 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=104: vxxxxx#10 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=104: vxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=104: vxxxxx#10 nsp=-1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=104: vxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=104: vxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=104: vxxxxx#10 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=105: sxxxxx#10 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=105: sxxxxx#10 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=105: sxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=105: sxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=105: sxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=105: sxxxxx#10 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=106: sxxxxx#10 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=106: sxxxxx#10 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=106: sxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=106: sxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=106: sxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=106: sxxxxx#10 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=107: oxxxxx#10 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=107: oxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=107: oxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=107: oxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=107: oxxxxx#10 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=107: oxxxxx#10 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=108: oxxxxx#10 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=108: oxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=108: oxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=108: oxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=108: oxxxxx#10 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=108: oxxxxx#10 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=109: opzxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=109: opzxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=109: opzxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=109: opzxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=109: opzxxx#10 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=109: opzxxx#10 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=110: ixxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=110: ixxxxx#11 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=110: ixxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=110: ixxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=110: ixxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=110: ixxxxx#11 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=111: ixxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=111: ixxxxx#11 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=111: ixxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=111: ixxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=111: ixxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=111: ixxxxx#11 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=112: imzxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=112: imzxxx#11 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=112: imzxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=112: imzxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=112: imzxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=112: imzxxx#11 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=113: vxxxxx#11 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=113: vxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=113: vxxxxx#11 nsp=-1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=113: vxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=113: vxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=113: vxxxxx#11 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=114: vxxxxx#11 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=114: vxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=114: vxxxxx#11 nsp=-1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=114: vxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=114: vxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=114: vxxxxx#11 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=115: sxxxxx#11 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=115: sxxxxx#11 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=115: sxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=115: sxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=115: sxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=115: sxxxxx#11 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=116: sxxxxx#11 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=116: sxxxxx#11 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=116: sxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=116: sxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=116: sxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=116: sxxxxx#11 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=117: oxxxxx#11 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=117: oxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=117: oxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=117: oxxxxx#11 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=117: oxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=117: oxxxxx#11 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=118: oxxxxx#11 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=118: oxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=118: oxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=118: oxxxxx#11 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=118: oxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=118: oxxxxx#11 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=119: omzxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=119: omzxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=119: omzxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=119: omzxxx#11 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=119: omzxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=119: omzxxx#11 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=120: ixxxxx#12 nsp=-1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=120: ixxxxx#12 nsp=-1 mass=0 + 1.341640786499874e+01, -1.788854381999831e+01, // itest=120: ixxxxx#12 nsp=-1 mass=0 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=120: ixxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=120: ixxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=120: ixxxxx#12 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=121: ixxxxx#12 nsp=-1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=121: ixxxxx#12 nsp=-1 mass=0 + 1.341640786499874e+01, -1.788854381999831e+01, // itest=121: ixxxxx#12 nsp=-1 mass=0 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=121: ixxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=121: ixxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=121: ixxxxx#12 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=122: ixzxxx#12 nsp=-1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=122: ixzxxx#12 nsp=-1 mass=0 + 1.341640786499874e+01, -1.788854381999832e+01, // itest=122: ixzxxx#12 nsp=-1 mass=0 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=122: ixzxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=122: ixzxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=122: ixzxxx#12 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=123: vxxxxx#12 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=123: vxxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=123: vxxxxx#12 nsp=-1 mass=0 + -0.000000000000000e+00, 5.656854249492381e-01, // itest=123: vxxxxx#12 nsp=-1 mass=0 + -0.000000000000000e+00, -4.242640687119285e-01, // itest=123: vxxxxx#12 nsp=-1 mass=0 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=123: vxxxxx#12 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=124: vxxxxx#12 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=124: vxxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=124: vxxxxx#12 nsp=-1 mass=0 + -0.000000000000000e+00, 5.656854249492381e-01, // itest=124: vxxxxx#12 nsp=-1 mass=0 + -0.000000000000000e+00, -4.242640687119285e-01, // itest=124: vxxxxx#12 nsp=-1 mass=0 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=124: vxxxxx#12 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=125: sxxxxx#12 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=125: sxxxxx#12 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=125: sxxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=125: sxxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=125: sxxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=125: sxxxxx#12 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=126: sxxxxx#12 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=126: sxxxxx#12 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=126: sxxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=126: sxxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=126: sxxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=126: sxxxxx#12 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=127: oxxxxx#12 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=127: oxxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=127: oxxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=127: oxxxxx#12 nsp=-1 mass=0 + 1.341640786499874e+01, 1.788854381999831e+01, // itest=127: oxxxxx#12 nsp=-1 mass=0 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=127: oxxxxx#12 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=128: oxxxxx#12 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=128: oxxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=128: oxxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=128: oxxxxx#12 nsp=-1 mass=0 + 1.341640786499874e+01, 1.788854381999831e+01, // itest=128: oxxxxx#12 nsp=-1 mass=0 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=128: oxxxxx#12 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=129: oxzxxx#12 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=129: oxzxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=129: oxzxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=129: oxzxxx#12 nsp=-1 mass=0 + 1.341640786499874e+01, 1.788854381999832e+01, // itest=129: oxzxxx#12 nsp=-1 mass=0 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=129: oxzxxx#12 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=130: ixxxxx#13 nsp=-1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=130: ixxxxx#13 nsp=-1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=130: ixxxxx#13 nsp=-1 mass=0 + -3.000000000000000e+01, 0.000000000000000e+00, // itest=130: ixxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=130: ixxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=130: ixxxxx#13 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=131: ixxxxx#13 nsp=-1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=131: ixxxxx#13 nsp=-1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=131: ixxxxx#13 nsp=-1 mass=0 + -3.000000000000000e+01, 0.000000000000000e+00, // itest=131: ixxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=131: ixxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=131: ixxxxx#13 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=132: ixzxxx#13 nsp=-1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=132: ixzxxx#13 nsp=-1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=132: ixzxxx#13 nsp=-1 mass=0 + -3.000000000000000e+01, 0.000000000000000e+00, // itest=132: ixzxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=132: ixzxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=132: ixzxxx#13 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=133: vxxxxx#13 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=133: vxxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=133: vxxxxx#13 nsp=-1 mass=0 + -3.394112549695428e-01, 5.656854249492381e-01, // itest=133: vxxxxx#13 nsp=-1 mass=0 + -4.525483399593904e-01, -4.242640687119285e-01, // itest=133: vxxxxx#13 nsp=-1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=133: vxxxxx#13 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=134: vxxxxx#13 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=134: vxxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=134: vxxxxx#13 nsp=-1 mass=0 + -3.394112549695428e-01, 5.656854249492381e-01, // itest=134: vxxxxx#13 nsp=-1 mass=0 + -4.525483399593904e-01, -4.242640687119285e-01, // itest=134: vxxxxx#13 nsp=-1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=134: vxxxxx#13 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=135: sxxxxx#13 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=135: sxxxxx#13 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=135: sxxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=135: sxxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=135: sxxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=135: sxxxxx#13 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=136: sxxxxx#13 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=136: sxxxxx#13 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=136: sxxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=136: sxxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=136: sxxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=136: sxxxxx#13 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=137: oxxxxx#13 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=137: oxxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=137: oxxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=137: oxxxxx#13 nsp=-1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00, // itest=137: oxxxxx#13 nsp=-1 mass=0 + -3.000000000000000e+01, 0.000000000000000e+00 } ); // itest=137: oxxxxx#13 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=138: oxxxxx#13 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=138: oxxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=138: oxxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=138: oxxxxx#13 nsp=-1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00, // itest=138: oxxxxx#13 nsp=-1 mass=0 + -3.000000000000000e+01, 0.000000000000000e+00 } ); // itest=138: oxxxxx#13 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=139: oxzxxx#13 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=139: oxzxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=139: oxzxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=139: oxzxxx#13 nsp=-1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00, // itest=139: oxzxxx#13 nsp=-1 mass=0 + -3.000000000000000e+01, 0.000000000000000e+00 } ); // itest=139: oxzxxx#13 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=140: ixxxxx#14 nsp=-1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=140: ixxxxx#14 nsp=-1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=140: ixxxxx#14 nsp=-1 mass=0 + -1.000000000000000e+01, 0.000000000000000e+00, // itest=140: ixxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=140: ixxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=140: ixxxxx#14 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=141: ixxxxx#14 nsp=-1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=141: ixxxxx#14 nsp=-1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=141: ixxxxx#14 nsp=-1 mass=0 + -1.000000000000000e+01, 0.000000000000000e+00, // itest=141: ixxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=141: ixxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=141: ixxxxx#14 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=142: ixzxxx#14 nsp=-1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=142: ixzxxx#14 nsp=-1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=142: ixzxxx#14 nsp=-1 mass=0 + -1.000000000000000e+01, 0.000000000000000e+00, // itest=142: ixzxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=142: ixzxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=142: ixzxxx#14 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=143: vxxxxx#14 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=143: vxxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=143: vxxxxx#14 nsp=-1 mass=0 + 3.394112549695428e-01, 5.656854249492381e-01, // itest=143: vxxxxx#14 nsp=-1 mass=0 + 4.525483399593904e-01, -4.242640687119285e-01, // itest=143: vxxxxx#14 nsp=-1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=143: vxxxxx#14 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=144: vxxxxx#14 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=144: vxxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=144: vxxxxx#14 nsp=-1 mass=0 + 3.394112549695428e-01, 5.656854249492381e-01, // itest=144: vxxxxx#14 nsp=-1 mass=0 + 4.525483399593904e-01, -4.242640687119285e-01, // itest=144: vxxxxx#14 nsp=-1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=144: vxxxxx#14 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=145: sxxxxx#14 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=145: sxxxxx#14 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=145: sxxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=145: sxxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=145: sxxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=145: sxxxxx#14 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=146: sxxxxx#14 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=146: sxxxxx#14 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=146: sxxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=146: sxxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=146: sxxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=146: sxxxxx#14 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=147: oxxxxx#14 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=147: oxxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=147: oxxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=147: oxxxxx#14 nsp=-1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01, // itest=147: oxxxxx#14 nsp=-1 mass=0 + -1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=147: oxxxxx#14 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=148: oxxxxx#14 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=148: oxxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=148: oxxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=148: oxxxxx#14 nsp=-1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01, // itest=148: oxxxxx#14 nsp=-1 mass=0 + -1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=148: oxxxxx#14 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=149: oxzxxx#14 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=149: oxzxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=149: oxzxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=149: oxzxxx#14 nsp=-1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01, // itest=149: oxzxxx#14 nsp=-1 mass=0 + -1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=149: oxzxxx#14 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=150: ixxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=150: ixxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=150: ixxxxx#15 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=150: ixxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=150: ixxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=150: ixxxxx#15 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=151: ixxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=151: ixxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=151: ixxxxx#15 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=151: ixxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=151: ixxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=151: ixxxxx#15 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=152: ipzxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=152: ipzxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=152: ipzxxx#15 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=152: ipzxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=152: ipzxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=152: ipzxxx#15 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=153: vxxxxx#15 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=153: vxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=153: vxxxxx#15 nsp=-1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=153: vxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=153: vxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=153: vxxxxx#15 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=154: vxxxxx#15 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=154: vxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=154: vxxxxx#15 nsp=-1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=154: vxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=154: vxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=154: vxxxxx#15 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=155: sxxxxx#15 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=155: sxxxxx#15 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=155: sxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=155: sxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=155: sxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=155: sxxxxx#15 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=156: sxxxxx#15 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=156: sxxxxx#15 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=156: sxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=156: sxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=156: sxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=156: sxxxxx#15 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=157: oxxxxx#15 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=157: oxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=157: oxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=157: oxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=157: oxxxxx#15 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=157: oxxxxx#15 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=158: oxxxxx#15 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=158: oxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=158: oxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=158: oxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=158: oxxxxx#15 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=158: oxxxxx#15 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=159: opzxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=159: opzxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=159: opzxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=159: opzxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=159: opzxxx#15 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=159: opzxxx#15 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=160: ixxxxx#16 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=160: ixxxxx#16 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=160: ixxxxx#16 nsp=-1 mass=500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=160: ixxxxx#16 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=160: ixxxxx#16 nsp=-1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=160: ixxxxx#16 nsp=-1 mass=500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=161: ixxxxx#16 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=161: ixxxxx#16 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=161: ixxxxx#16 nsp=-1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=161: ixxxxx#16 nsp=-1 mass=-500 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=161: ixxxxx#16 nsp=-1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=161: ixxxxx#16 nsp=-1 mass=-500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=162: vxxxxx#16 nsp=-1 mass=500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=162: vxxxxx#16 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=162: vxxxxx#16 nsp=-1 mass=500 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=162: vxxxxx#16 nsp=-1 mass=500 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=162: vxxxxx#16 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=162: vxxxxx#16 nsp=-1 mass=500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=163: vxxxxx#16 nsp=-1 mass=-500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=163: vxxxxx#16 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=163: vxxxxx#16 nsp=-1 mass=-500 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=163: vxxxxx#16 nsp=-1 mass=-500 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=163: vxxxxx#16 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=163: vxxxxx#16 nsp=-1 mass=-500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=164: sxxxxx#16 nsp=-1 mass=500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=164: sxxxxx#16 nsp=-1 mass=500 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=164: sxxxxx#16 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=164: sxxxxx#16 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=164: sxxxxx#16 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=164: sxxxxx#16 nsp=-1 mass=500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=165: sxxxxx#16 nsp=-1 mass=-500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=165: sxxxxx#16 nsp=-1 mass=-500 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=165: sxxxxx#16 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=165: sxxxxx#16 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=165: sxxxxx#16 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=165: sxxxxx#16 nsp=-1 mass=-500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=166: oxxxxx#16 nsp=-1 mass=500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=166: oxxxxx#16 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=166: oxxxxx#16 nsp=-1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=166: oxxxxx#16 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=166: oxxxxx#16 nsp=-1 mass=500 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=166: oxxxxx#16 nsp=-1 mass=500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=167: oxxxxx#16 nsp=-1 mass=-500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=167: oxxxxx#16 nsp=-1 mass=-500 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=167: oxxxxx#16 nsp=-1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=167: oxxxxx#16 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=167: oxxxxx#16 nsp=-1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=167: oxxxxx#16 nsp=-1 mass=-500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=168: ixxxxx#17 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=168: ixxxxx#17 nsp=-1 mass=400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=168: ixxxxx#17 nsp=-1 mass=400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=168: ixxxxx#17 nsp=-1 mass=400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=168: ixxxxx#17 nsp=-1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00 } ); // itest=168: ixxxxx#17 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=169: ixxxxx#17 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=169: ixxxxx#17 nsp=-1 mass=-400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=169: ixxxxx#17 nsp=-1 mass=-400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=169: ixxxxx#17 nsp=-1 mass=-400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=169: ixxxxx#17 nsp=-1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00 } ); // itest=169: ixxxxx#17 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=170: vxxxxx#17 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=170: vxxxxx#17 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=170: vxxxxx#17 nsp=-1 mass=400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=170: vxxxxx#17 nsp=-1 mass=400 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=170: vxxxxx#17 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=170: vxxxxx#17 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=171: vxxxxx#17 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=171: vxxxxx#17 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=171: vxxxxx#17 nsp=-1 mass=-400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=171: vxxxxx#17 nsp=-1 mass=-400 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=171: vxxxxx#17 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=171: vxxxxx#17 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=172: sxxxxx#17 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=172: sxxxxx#17 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=172: sxxxxx#17 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=172: sxxxxx#17 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=172: sxxxxx#17 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=172: sxxxxx#17 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=173: sxxxxx#17 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=173: sxxxxx#17 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=173: sxxxxx#17 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=173: sxxxxx#17 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=173: sxxxxx#17 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=173: sxxxxx#17 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=174: oxxxxx#17 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=174: oxxxxx#17 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=174: oxxxxx#17 nsp=-1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=174: oxxxxx#17 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=174: oxxxxx#17 nsp=-1 mass=400 + -2.828427124746190e+01, -0.000000000000000e+00 } ); // itest=174: oxxxxx#17 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=175: oxxxxx#17 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=175: oxxxxx#17 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=175: oxxxxx#17 nsp=-1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=175: oxxxxx#17 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=175: oxxxxx#17 nsp=-1 mass=-400 + -2.828427124746190e+01, -0.000000000000000e+00 } ); // itest=175: oxxxxx#17 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=176: ixxxxx#18 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=176: ixxxxx#18 nsp=-1 mass=400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=176: ixxxxx#18 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=176: ixxxxx#18 nsp=-1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=176: ixxxxx#18 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=176: ixxxxx#18 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=177: ixxxxx#18 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=177: ixxxxx#18 nsp=-1 mass=-400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=177: ixxxxx#18 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=177: ixxxxx#18 nsp=-1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=177: ixxxxx#18 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=177: ixxxxx#18 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=178: vxxxxx#18 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=178: vxxxxx#18 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=178: vxxxxx#18 nsp=-1 mass=400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=178: vxxxxx#18 nsp=-1 mass=400 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=178: vxxxxx#18 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=178: vxxxxx#18 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=179: vxxxxx#18 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=179: vxxxxx#18 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=179: vxxxxx#18 nsp=-1 mass=-400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=179: vxxxxx#18 nsp=-1 mass=-400 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=179: vxxxxx#18 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=179: vxxxxx#18 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=180: sxxxxx#18 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=180: sxxxxx#18 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=180: sxxxxx#18 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=180: sxxxxx#18 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=180: sxxxxx#18 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=180: sxxxxx#18 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=181: sxxxxx#18 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=181: sxxxxx#18 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=181: sxxxxx#18 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=181: sxxxxx#18 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=181: sxxxxx#18 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=181: sxxxxx#18 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=182: oxxxxx#18 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=182: oxxxxx#18 nsp=-1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=182: oxxxxx#18 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=182: oxxxxx#18 nsp=-1 mass=400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=182: oxxxxx#18 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=182: oxxxxx#18 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=183: oxxxxx#18 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=183: oxxxxx#18 nsp=-1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=183: oxxxxx#18 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=183: oxxxxx#18 nsp=-1 mass=-400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=183: oxxxxx#18 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=183: oxxxxx#18 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=184: ixxxxx#19 nsp=-1 mass=400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=184: ixxxxx#19 nsp=-1 mass=400 + 1.200000000000000e+01, -1.600000000000000e+01, // itest=184: ixxxxx#19 nsp=-1 mass=400 + -2.000000000000000e+01, -0.000000000000000e+00, // itest=184: ixxxxx#19 nsp=-1 mass=400 + -5.999999999999999e+00, 7.999999999999999e+00, // itest=184: ixxxxx#19 nsp=-1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=184: ixxxxx#19 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=185: ixxxxx#19 nsp=-1 mass=-400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=185: ixxxxx#19 nsp=-1 mass=-400 + 1.200000000000000e+01, -1.600000000000000e+01, // itest=185: ixxxxx#19 nsp=-1 mass=-400 + -2.000000000000000e+01, -0.000000000000000e+00, // itest=185: ixxxxx#19 nsp=-1 mass=-400 + 5.999999999999999e+00, -7.999999999999999e+00, // itest=185: ixxxxx#19 nsp=-1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00 } ); // itest=185: ixxxxx#19 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=186: vxxxxx#19 nsp=-1 mass=400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=186: vxxxxx#19 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=186: vxxxxx#19 nsp=-1 mass=400 + 0.000000000000000e+00, 5.656854249492381e-01, // itest=186: vxxxxx#19 nsp=-1 mass=400 + 0.000000000000000e+00, -4.242640687119285e-01, // itest=186: vxxxxx#19 nsp=-1 mass=400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=186: vxxxxx#19 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=187: vxxxxx#19 nsp=-1 mass=-400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=187: vxxxxx#19 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=187: vxxxxx#19 nsp=-1 mass=-400 + -0.000000000000000e+00, 5.656854249492381e-01, // itest=187: vxxxxx#19 nsp=-1 mass=-400 + -0.000000000000000e+00, -4.242640687119285e-01, // itest=187: vxxxxx#19 nsp=-1 mass=-400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=187: vxxxxx#19 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=188: sxxxxx#19 nsp=-1 mass=400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=188: sxxxxx#19 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=188: sxxxxx#19 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=188: sxxxxx#19 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=188: sxxxxx#19 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=188: sxxxxx#19 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=189: sxxxxx#19 nsp=-1 mass=-400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=189: sxxxxx#19 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=189: sxxxxx#19 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=189: sxxxxx#19 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=189: sxxxxx#19 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=189: sxxxxx#19 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=190: oxxxxx#19 nsp=-1 mass=400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=190: oxxxxx#19 nsp=-1 mass=400 + -5.999999999999999e+00, -7.999999999999999e+00, // itest=190: oxxxxx#19 nsp=-1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=190: oxxxxx#19 nsp=-1 mass=400 + 1.200000000000000e+01, 1.600000000000000e+01, // itest=190: oxxxxx#19 nsp=-1 mass=400 + -2.000000000000000e+01, -0.000000000000000e+00 } ); // itest=190: oxxxxx#19 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=191: oxxxxx#19 nsp=-1 mass=-400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=191: oxxxxx#19 nsp=-1 mass=-400 + 5.999999999999999e+00, 7.999999999999999e+00, // itest=191: oxxxxx#19 nsp=-1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00, // itest=191: oxxxxx#19 nsp=-1 mass=-400 + 1.200000000000000e+01, 1.600000000000000e+01, // itest=191: oxxxxx#19 nsp=-1 mass=-400 + -2.000000000000000e+01, -0.000000000000000e+00 } ); // itest=191: oxxxxx#19 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=192: ixxxxx#20 nsp=-1 mass=400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=192: ixxxxx#20 nsp=-1 mass=400 + -1.600000000000000e+01, 1.200000000000000e+01, // itest=192: ixxxxx#20 nsp=-1 mass=400 + -2.000000000000000e+01, -0.000000000000000e+00, // itest=192: ixxxxx#20 nsp=-1 mass=400 + 7.999999999999999e+00, -5.999999999999999e+00, // itest=192: ixxxxx#20 nsp=-1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=192: ixxxxx#20 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=193: ixxxxx#20 nsp=-1 mass=-400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=193: ixxxxx#20 nsp=-1 mass=-400 + -1.600000000000000e+01, 1.200000000000000e+01, // itest=193: ixxxxx#20 nsp=-1 mass=-400 + -2.000000000000000e+01, -0.000000000000000e+00, // itest=193: ixxxxx#20 nsp=-1 mass=-400 + -7.999999999999999e+00, 5.999999999999999e+00, // itest=193: ixxxxx#20 nsp=-1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00 } ); // itest=193: ixxxxx#20 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=194: vxxxxx#20 nsp=-1 mass=400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=194: vxxxxx#20 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=194: vxxxxx#20 nsp=-1 mass=400 + 0.000000000000000e+00, -4.242640687119285e-01, // itest=194: vxxxxx#20 nsp=-1 mass=400 + 0.000000000000000e+00, 5.656854249492381e-01, // itest=194: vxxxxx#20 nsp=-1 mass=400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=194: vxxxxx#20 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=195: vxxxxx#20 nsp=-1 mass=-400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=195: vxxxxx#20 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=195: vxxxxx#20 nsp=-1 mass=-400 + 0.000000000000000e+00, -4.242640687119285e-01, // itest=195: vxxxxx#20 nsp=-1 mass=-400 + 0.000000000000000e+00, 5.656854249492381e-01, // itest=195: vxxxxx#20 nsp=-1 mass=-400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=195: vxxxxx#20 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=196: sxxxxx#20 nsp=-1 mass=400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=196: sxxxxx#20 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=196: sxxxxx#20 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=196: sxxxxx#20 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=196: sxxxxx#20 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=196: sxxxxx#20 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=197: sxxxxx#20 nsp=-1 mass=-400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=197: sxxxxx#20 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=197: sxxxxx#20 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=197: sxxxxx#20 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=197: sxxxxx#20 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=197: sxxxxx#20 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=198: oxxxxx#20 nsp=-1 mass=400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=198: oxxxxx#20 nsp=-1 mass=400 + 7.999999999999999e+00, 5.999999999999999e+00, // itest=198: oxxxxx#20 nsp=-1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=198: oxxxxx#20 nsp=-1 mass=400 + -1.600000000000000e+01, -1.200000000000000e+01, // itest=198: oxxxxx#20 nsp=-1 mass=400 + -2.000000000000000e+01, -0.000000000000000e+00 } ); // itest=198: oxxxxx#20 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=199: oxxxxx#20 nsp=-1 mass=-400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=199: oxxxxx#20 nsp=-1 mass=-400 + -7.999999999999999e+00, -5.999999999999999e+00, // itest=199: oxxxxx#20 nsp=-1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00, // itest=199: oxxxxx#20 nsp=-1 mass=-400 + -1.600000000000000e+01, -1.200000000000000e+01, // itest=199: oxxxxx#20 nsp=-1 mass=-400 + -2.000000000000000e+01, -0.000000000000000e+00 } ); // itest=199: oxxxxx#20 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=200: ixxxxx#21 nsp=-1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=200: ixxxxx#21 nsp=-1 mass=400 + 9.863939238321439e+00, -1.052153518754287e+01, // itest=200: ixxxxx#21 nsp=-1 mass=400 + -2.433105012119288e+01, -0.000000000000000e+00, // itest=200: ixxxxx#21 nsp=-1 mass=400 + -4.931969619160719e+00, 5.260767593771432e+00, // itest=200: ixxxxx#21 nsp=-1 mass=400 + 1.216552506059644e+01, 0.000000000000000e+00 } ); // itest=200: ixxxxx#21 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=201: ixxxxx#21 nsp=-1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=201: ixxxxx#21 nsp=-1 mass=-400 + 9.863939238321439e+00, -1.052153518754287e+01, // itest=201: ixxxxx#21 nsp=-1 mass=-400 + -2.433105012119288e+01, -0.000000000000000e+00, // itest=201: ixxxxx#21 nsp=-1 mass=-400 + 4.931969619160719e+00, -5.260767593771432e+00, // itest=201: ixxxxx#21 nsp=-1 mass=-400 + -1.216552506059644e+01, -0.000000000000000e+00 } ); // itest=201: ixxxxx#21 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=202: vxxxxx#21 nsp=-1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=202: vxxxxx#21 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=202: vxxxxx#21 nsp=-1 mass=400 + -2.321373168788980e-01, 5.158607041753289e-01, // itest=202: vxxxxx#21 nsp=-1 mass=400 + -2.476131380041579e-01, -4.836194101643708e-01, // itest=202: vxxxxx#21 nsp=-1 mass=400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=202: vxxxxx#21 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=203: vxxxxx#21 nsp=-1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=203: vxxxxx#21 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=203: vxxxxx#21 nsp=-1 mass=-400 + -2.321373168788980e-01, 5.158607041753289e-01, // itest=203: vxxxxx#21 nsp=-1 mass=-400 + -2.476131380041579e-01, -4.836194101643708e-01, // itest=203: vxxxxx#21 nsp=-1 mass=-400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=203: vxxxxx#21 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=204: sxxxxx#21 nsp=-1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=204: sxxxxx#21 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=204: sxxxxx#21 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=204: sxxxxx#21 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=204: sxxxxx#21 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=204: sxxxxx#21 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=205: sxxxxx#21 nsp=-1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=205: sxxxxx#21 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=205: sxxxxx#21 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=205: sxxxxx#21 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=205: sxxxxx#21 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=205: sxxxxx#21 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=206: oxxxxx#21 nsp=-1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=206: oxxxxx#21 nsp=-1 mass=400 + -4.931969619160719e+00, -5.260767593771432e+00, // itest=206: oxxxxx#21 nsp=-1 mass=400 + 1.216552506059644e+01, 0.000000000000000e+00, // itest=206: oxxxxx#21 nsp=-1 mass=400 + 9.863939238321439e+00, 1.052153518754287e+01, // itest=206: oxxxxx#21 nsp=-1 mass=400 + -2.433105012119288e+01, -0.000000000000000e+00 } ); // itest=206: oxxxxx#21 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=207: oxxxxx#21 nsp=-1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=207: oxxxxx#21 nsp=-1 mass=-400 + 4.931969619160719e+00, 5.260767593771432e+00, // itest=207: oxxxxx#21 nsp=-1 mass=-400 + -1.216552506059644e+01, -0.000000000000000e+00, // itest=207: oxxxxx#21 nsp=-1 mass=-400 + 9.863939238321439e+00, 1.052153518754287e+01, // itest=207: oxxxxx#21 nsp=-1 mass=-400 + -2.433105012119288e+01, -0.000000000000000e+00 } ); // itest=207: oxxxxx#21 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=208: ixxxxx#22 nsp=-1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=208: ixxxxx#22 nsp=-1 mass=400 + 1.664100588675688e+01, -1.775040627920733e+01, // itest=208: ixxxxx#22 nsp=-1 mass=400 + -1.442220510185596e+01, -0.000000000000000e+00, // itest=208: ixxxxx#22 nsp=-1 mass=400 + -8.320502943378436e+00, 8.875203139603666e+00, // itest=208: ixxxxx#22 nsp=-1 mass=400 + 7.211102550927978e+00, 0.000000000000000e+00 } ); // itest=208: ixxxxx#22 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=209: ixxxxx#22 nsp=-1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=209: ixxxxx#22 nsp=-1 mass=-400 + 1.664100588675688e+01, -1.775040627920733e+01, // itest=209: ixxxxx#22 nsp=-1 mass=-400 + -1.442220510185596e+01, -0.000000000000000e+00, // itest=209: ixxxxx#22 nsp=-1 mass=-400 + 8.320502943378436e+00, -8.875203139603666e+00, // itest=209: ixxxxx#22 nsp=-1 mass=-400 + -7.211102550927978e+00, -0.000000000000000e+00 } ); // itest=209: ixxxxx#22 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=210: vxxxxx#22 nsp=-1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=210: vxxxxx#22 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=210: vxxxxx#22 nsp=-1 mass=400 + 2.321373168788980e-01, 5.158607041753289e-01, // itest=210: vxxxxx#22 nsp=-1 mass=400 + 2.476131380041579e-01, -4.836194101643708e-01, // itest=210: vxxxxx#22 nsp=-1 mass=400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=210: vxxxxx#22 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=211: vxxxxx#22 nsp=-1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=211: vxxxxx#22 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=211: vxxxxx#22 nsp=-1 mass=-400 + 2.321373168788980e-01, 5.158607041753289e-01, // itest=211: vxxxxx#22 nsp=-1 mass=-400 + 2.476131380041579e-01, -4.836194101643708e-01, // itest=211: vxxxxx#22 nsp=-1 mass=-400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=211: vxxxxx#22 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=212: sxxxxx#22 nsp=-1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=212: sxxxxx#22 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=212: sxxxxx#22 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=212: sxxxxx#22 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=212: sxxxxx#22 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=212: sxxxxx#22 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=213: sxxxxx#22 nsp=-1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=213: sxxxxx#22 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=213: sxxxxx#22 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=213: sxxxxx#22 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=213: sxxxxx#22 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=213: sxxxxx#22 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=214: oxxxxx#22 nsp=-1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=214: oxxxxx#22 nsp=-1 mass=400 + -8.320502943378436e+00, -8.875203139603666e+00, // itest=214: oxxxxx#22 nsp=-1 mass=400 + 7.211102550927978e+00, 0.000000000000000e+00, // itest=214: oxxxxx#22 nsp=-1 mass=400 + 1.664100588675688e+01, 1.775040627920733e+01, // itest=214: oxxxxx#22 nsp=-1 mass=400 + -1.442220510185596e+01, -0.000000000000000e+00 } ); // itest=214: oxxxxx#22 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=215: oxxxxx#22 nsp=-1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=215: oxxxxx#22 nsp=-1 mass=-400 + 8.320502943378436e+00, 8.875203139603666e+00, // itest=215: oxxxxx#22 nsp=-1 mass=-400 + -7.211102550927978e+00, -0.000000000000000e+00, // itest=215: oxxxxx#22 nsp=-1 mass=-400 + 1.664100588675688e+01, 1.775040627920733e+01, // itest=215: oxxxxx#22 nsp=-1 mass=-400 + -1.442220510185596e+01, -0.000000000000000e+00 } ); // itest=215: oxxxxx#22 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=216: ixxxxx#23 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=216: ixxxxx#23 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=216: ixxxxx#23 nsp=-1 mass=500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=216: ixxxxx#23 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=216: ixxxxx#23 nsp=-1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=216: ixxxxx#23 nsp=-1 mass=500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=217: ixxxxx#23 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=217: ixxxxx#23 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=217: ixxxxx#23 nsp=-1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=217: ixxxxx#23 nsp=-1 mass=-500 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=217: ixxxxx#23 nsp=-1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=217: ixxxxx#23 nsp=-1 mass=-500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=218: vxxxxx#23 nsp=-1 mass=500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=218: vxxxxx#23 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=218: vxxxxx#23 nsp=-1 mass=500 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=218: vxxxxx#23 nsp=-1 mass=500 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=218: vxxxxx#23 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=218: vxxxxx#23 nsp=-1 mass=500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=219: vxxxxx#23 nsp=-1 mass=-500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=219: vxxxxx#23 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=219: vxxxxx#23 nsp=-1 mass=-500 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=219: vxxxxx#23 nsp=-1 mass=-500 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=219: vxxxxx#23 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=219: vxxxxx#23 nsp=-1 mass=-500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=220: sxxxxx#23 nsp=-1 mass=500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=220: sxxxxx#23 nsp=-1 mass=500 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=220: sxxxxx#23 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=220: sxxxxx#23 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=220: sxxxxx#23 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=220: sxxxxx#23 nsp=-1 mass=500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=221: sxxxxx#23 nsp=-1 mass=-500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=221: sxxxxx#23 nsp=-1 mass=-500 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=221: sxxxxx#23 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=221: sxxxxx#23 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=221: sxxxxx#23 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=221: sxxxxx#23 nsp=-1 mass=-500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=222: oxxxxx#23 nsp=-1 mass=500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=222: oxxxxx#23 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=222: oxxxxx#23 nsp=-1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=222: oxxxxx#23 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=222: oxxxxx#23 nsp=-1 mass=500 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=222: oxxxxx#23 nsp=-1 mass=500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=223: oxxxxx#23 nsp=-1 mass=-500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=223: oxxxxx#23 nsp=-1 mass=-500 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=223: oxxxxx#23 nsp=-1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=223: oxxxxx#23 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=223: oxxxxx#23 nsp=-1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=223: oxxxxx#23 nsp=-1 mass=-500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=224: ixxxxx#24 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=224: ixxxxx#24 nsp=-1 mass=400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=224: ixxxxx#24 nsp=-1 mass=400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=224: ixxxxx#24 nsp=-1 mass=400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=224: ixxxxx#24 nsp=-1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00 } ); // itest=224: ixxxxx#24 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=225: ixxxxx#24 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=225: ixxxxx#24 nsp=-1 mass=-400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=225: ixxxxx#24 nsp=-1 mass=-400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=225: ixxxxx#24 nsp=-1 mass=-400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=225: ixxxxx#24 nsp=-1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00 } ); // itest=225: ixxxxx#24 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=226: vxxxxx#24 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=226: vxxxxx#24 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=226: vxxxxx#24 nsp=-1 mass=400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=226: vxxxxx#24 nsp=-1 mass=400 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=226: vxxxxx#24 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=226: vxxxxx#24 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=227: vxxxxx#24 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=227: vxxxxx#24 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=227: vxxxxx#24 nsp=-1 mass=-400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=227: vxxxxx#24 nsp=-1 mass=-400 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=227: vxxxxx#24 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=227: vxxxxx#24 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=228: sxxxxx#24 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=228: sxxxxx#24 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=228: sxxxxx#24 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=228: sxxxxx#24 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=228: sxxxxx#24 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=228: sxxxxx#24 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=229: sxxxxx#24 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=229: sxxxxx#24 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=229: sxxxxx#24 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=229: sxxxxx#24 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=229: sxxxxx#24 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=229: sxxxxx#24 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=230: oxxxxx#24 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=230: oxxxxx#24 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=230: oxxxxx#24 nsp=-1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=230: oxxxxx#24 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=230: oxxxxx#24 nsp=-1 mass=400 + -2.828427124746190e+01, -0.000000000000000e+00 } ); // itest=230: oxxxxx#24 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=231: oxxxxx#24 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=231: oxxxxx#24 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=231: oxxxxx#24 nsp=-1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=231: oxxxxx#24 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=231: oxxxxx#24 nsp=-1 mass=-400 + -2.828427124746190e+01, -0.000000000000000e+00 } ); // itest=231: oxxxxx#24 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=232: ixxxxx#25 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=232: ixxxxx#25 nsp=-1 mass=400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=232: ixxxxx#25 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=232: ixxxxx#25 nsp=-1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=232: ixxxxx#25 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=232: ixxxxx#25 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=233: ixxxxx#25 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=233: ixxxxx#25 nsp=-1 mass=-400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=233: ixxxxx#25 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=233: ixxxxx#25 nsp=-1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=233: ixxxxx#25 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=233: ixxxxx#25 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=234: vxxxxx#25 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=234: vxxxxx#25 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=234: vxxxxx#25 nsp=-1 mass=400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=234: vxxxxx#25 nsp=-1 mass=400 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=234: vxxxxx#25 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=234: vxxxxx#25 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=235: vxxxxx#25 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=235: vxxxxx#25 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=235: vxxxxx#25 nsp=-1 mass=-400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=235: vxxxxx#25 nsp=-1 mass=-400 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=235: vxxxxx#25 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=235: vxxxxx#25 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=236: sxxxxx#25 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=236: sxxxxx#25 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=236: sxxxxx#25 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=236: sxxxxx#25 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=236: sxxxxx#25 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=236: sxxxxx#25 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=237: sxxxxx#25 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=237: sxxxxx#25 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=237: sxxxxx#25 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=237: sxxxxx#25 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=237: sxxxxx#25 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=237: sxxxxx#25 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=238: oxxxxx#25 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=238: oxxxxx#25 nsp=-1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=238: oxxxxx#25 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=238: oxxxxx#25 nsp=-1 mass=400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=238: oxxxxx#25 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=238: oxxxxx#25 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=239: oxxxxx#25 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=239: oxxxxx#25 nsp=-1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=239: oxxxxx#25 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=239: oxxxxx#25 nsp=-1 mass=-400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=239: oxxxxx#25 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=239: oxxxxx#25 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=240: ixxxxx#26 nsp=-1 mass=400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=240: ixxxxx#26 nsp=-1 mass=400 + 1.200000000000000e+01, -1.600000000000000e+01, // itest=240: ixxxxx#26 nsp=-1 mass=400 + -2.000000000000000e+01, -0.000000000000000e+00, // itest=240: ixxxxx#26 nsp=-1 mass=400 + -5.999999999999999e+00, 7.999999999999999e+00, // itest=240: ixxxxx#26 nsp=-1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=240: ixxxxx#26 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=241: ixxxxx#26 nsp=-1 mass=-400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=241: ixxxxx#26 nsp=-1 mass=-400 + 1.200000000000000e+01, -1.600000000000000e+01, // itest=241: ixxxxx#26 nsp=-1 mass=-400 + -2.000000000000000e+01, -0.000000000000000e+00, // itest=241: ixxxxx#26 nsp=-1 mass=-400 + 5.999999999999999e+00, -7.999999999999999e+00, // itest=241: ixxxxx#26 nsp=-1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00 } ); // itest=241: ixxxxx#26 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=242: vxxxxx#26 nsp=-1 mass=400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=242: vxxxxx#26 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=242: vxxxxx#26 nsp=-1 mass=400 + 0.000000000000000e+00, 5.656854249492381e-01, // itest=242: vxxxxx#26 nsp=-1 mass=400 + 0.000000000000000e+00, -4.242640687119285e-01, // itest=242: vxxxxx#26 nsp=-1 mass=400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=242: vxxxxx#26 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=243: vxxxxx#26 nsp=-1 mass=-400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=243: vxxxxx#26 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=243: vxxxxx#26 nsp=-1 mass=-400 + -0.000000000000000e+00, 5.656854249492381e-01, // itest=243: vxxxxx#26 nsp=-1 mass=-400 + -0.000000000000000e+00, -4.242640687119285e-01, // itest=243: vxxxxx#26 nsp=-1 mass=-400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=243: vxxxxx#26 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=244: sxxxxx#26 nsp=-1 mass=400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=244: sxxxxx#26 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=244: sxxxxx#26 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=244: sxxxxx#26 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=244: sxxxxx#26 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=244: sxxxxx#26 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=245: sxxxxx#26 nsp=-1 mass=-400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=245: sxxxxx#26 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=245: sxxxxx#26 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=245: sxxxxx#26 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=245: sxxxxx#26 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=245: sxxxxx#26 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=246: oxxxxx#26 nsp=-1 mass=400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=246: oxxxxx#26 nsp=-1 mass=400 + -5.999999999999999e+00, -7.999999999999999e+00, // itest=246: oxxxxx#26 nsp=-1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=246: oxxxxx#26 nsp=-1 mass=400 + 1.200000000000000e+01, 1.600000000000000e+01, // itest=246: oxxxxx#26 nsp=-1 mass=400 + -2.000000000000000e+01, -0.000000000000000e+00 } ); // itest=246: oxxxxx#26 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=247: oxxxxx#26 nsp=-1 mass=-400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=247: oxxxxx#26 nsp=-1 mass=-400 + 5.999999999999999e+00, 7.999999999999999e+00, // itest=247: oxxxxx#26 nsp=-1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00, // itest=247: oxxxxx#26 nsp=-1 mass=-400 + 1.200000000000000e+01, 1.600000000000000e+01, // itest=247: oxxxxx#26 nsp=-1 mass=-400 + -2.000000000000000e+01, -0.000000000000000e+00 } ); // itest=247: oxxxxx#26 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=248: ixxxxx#27 nsp=-1 mass=400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=248: ixxxxx#27 nsp=-1 mass=400 + -1.600000000000000e+01, 1.200000000000000e+01, // itest=248: ixxxxx#27 nsp=-1 mass=400 + -2.000000000000000e+01, -0.000000000000000e+00, // itest=248: ixxxxx#27 nsp=-1 mass=400 + 7.999999999999999e+00, -5.999999999999999e+00, // itest=248: ixxxxx#27 nsp=-1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=248: ixxxxx#27 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=249: ixxxxx#27 nsp=-1 mass=-400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=249: ixxxxx#27 nsp=-1 mass=-400 + -1.600000000000000e+01, 1.200000000000000e+01, // itest=249: ixxxxx#27 nsp=-1 mass=-400 + -2.000000000000000e+01, -0.000000000000000e+00, // itest=249: ixxxxx#27 nsp=-1 mass=-400 + -7.999999999999999e+00, 5.999999999999999e+00, // itest=249: ixxxxx#27 nsp=-1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00 } ); // itest=249: ixxxxx#27 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=250: vxxxxx#27 nsp=-1 mass=400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=250: vxxxxx#27 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=250: vxxxxx#27 nsp=-1 mass=400 + 0.000000000000000e+00, -4.242640687119285e-01, // itest=250: vxxxxx#27 nsp=-1 mass=400 + 0.000000000000000e+00, 5.656854249492381e-01, // itest=250: vxxxxx#27 nsp=-1 mass=400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=250: vxxxxx#27 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=251: vxxxxx#27 nsp=-1 mass=-400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=251: vxxxxx#27 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=251: vxxxxx#27 nsp=-1 mass=-400 + 0.000000000000000e+00, -4.242640687119285e-01, // itest=251: vxxxxx#27 nsp=-1 mass=-400 + 0.000000000000000e+00, 5.656854249492381e-01, // itest=251: vxxxxx#27 nsp=-1 mass=-400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=251: vxxxxx#27 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=252: sxxxxx#27 nsp=-1 mass=400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=252: sxxxxx#27 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=252: sxxxxx#27 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=252: sxxxxx#27 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=252: sxxxxx#27 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=252: sxxxxx#27 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=253: sxxxxx#27 nsp=-1 mass=-400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=253: sxxxxx#27 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=253: sxxxxx#27 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=253: sxxxxx#27 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=253: sxxxxx#27 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=253: sxxxxx#27 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=254: oxxxxx#27 nsp=-1 mass=400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=254: oxxxxx#27 nsp=-1 mass=400 + 7.999999999999999e+00, 5.999999999999999e+00, // itest=254: oxxxxx#27 nsp=-1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=254: oxxxxx#27 nsp=-1 mass=400 + -1.600000000000000e+01, -1.200000000000000e+01, // itest=254: oxxxxx#27 nsp=-1 mass=400 + -2.000000000000000e+01, -0.000000000000000e+00 } ); // itest=254: oxxxxx#27 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=255: oxxxxx#27 nsp=-1 mass=-400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=255: oxxxxx#27 nsp=-1 mass=-400 + -7.999999999999999e+00, -5.999999999999999e+00, // itest=255: oxxxxx#27 nsp=-1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00, // itest=255: oxxxxx#27 nsp=-1 mass=-400 + -1.600000000000000e+01, -1.200000000000000e+01, // itest=255: oxxxxx#27 nsp=-1 mass=-400 + -2.000000000000000e+01, -0.000000000000000e+00 } ); // itest=255: oxxxxx#27 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=256: ixxxxx#28 nsp=-1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=256: ixxxxx#28 nsp=-1 mass=400 + 9.863939238321439e+00, -1.052153518754287e+01, // itest=256: ixxxxx#28 nsp=-1 mass=400 + -2.433105012119288e+01, -0.000000000000000e+00, // itest=256: ixxxxx#28 nsp=-1 mass=400 + -4.931969619160719e+00, 5.260767593771432e+00, // itest=256: ixxxxx#28 nsp=-1 mass=400 + 1.216552506059644e+01, 0.000000000000000e+00 } ); // itest=256: ixxxxx#28 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=257: ixxxxx#28 nsp=-1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=257: ixxxxx#28 nsp=-1 mass=-400 + 9.863939238321439e+00, -1.052153518754287e+01, // itest=257: ixxxxx#28 nsp=-1 mass=-400 + -2.433105012119288e+01, -0.000000000000000e+00, // itest=257: ixxxxx#28 nsp=-1 mass=-400 + 4.931969619160719e+00, -5.260767593771432e+00, // itest=257: ixxxxx#28 nsp=-1 mass=-400 + -1.216552506059644e+01, -0.000000000000000e+00 } ); // itest=257: ixxxxx#28 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=258: vxxxxx#28 nsp=-1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=258: vxxxxx#28 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=258: vxxxxx#28 nsp=-1 mass=400 + -2.321373168788980e-01, 5.158607041753289e-01, // itest=258: vxxxxx#28 nsp=-1 mass=400 + -2.476131380041579e-01, -4.836194101643708e-01, // itest=258: vxxxxx#28 nsp=-1 mass=400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=258: vxxxxx#28 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=259: vxxxxx#28 nsp=-1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=259: vxxxxx#28 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=259: vxxxxx#28 nsp=-1 mass=-400 + -2.321373168788980e-01, 5.158607041753289e-01, // itest=259: vxxxxx#28 nsp=-1 mass=-400 + -2.476131380041579e-01, -4.836194101643708e-01, // itest=259: vxxxxx#28 nsp=-1 mass=-400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=259: vxxxxx#28 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=260: sxxxxx#28 nsp=-1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=260: sxxxxx#28 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=260: sxxxxx#28 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=260: sxxxxx#28 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=260: sxxxxx#28 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=260: sxxxxx#28 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=261: sxxxxx#28 nsp=-1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=261: sxxxxx#28 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=261: sxxxxx#28 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=261: sxxxxx#28 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=261: sxxxxx#28 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=261: sxxxxx#28 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=262: oxxxxx#28 nsp=-1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=262: oxxxxx#28 nsp=-1 mass=400 + -4.931969619160719e+00, -5.260767593771432e+00, // itest=262: oxxxxx#28 nsp=-1 mass=400 + 1.216552506059644e+01, 0.000000000000000e+00, // itest=262: oxxxxx#28 nsp=-1 mass=400 + 9.863939238321439e+00, 1.052153518754287e+01, // itest=262: oxxxxx#28 nsp=-1 mass=400 + -2.433105012119288e+01, -0.000000000000000e+00 } ); // itest=262: oxxxxx#28 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=263: oxxxxx#28 nsp=-1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=263: oxxxxx#28 nsp=-1 mass=-400 + 4.931969619160719e+00, 5.260767593771432e+00, // itest=263: oxxxxx#28 nsp=-1 mass=-400 + -1.216552506059644e+01, -0.000000000000000e+00, // itest=263: oxxxxx#28 nsp=-1 mass=-400 + 9.863939238321439e+00, 1.052153518754287e+01, // itest=263: oxxxxx#28 nsp=-1 mass=-400 + -2.433105012119288e+01, -0.000000000000000e+00 } ); // itest=263: oxxxxx#28 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=264: ixxxxx#29 nsp=-1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=264: ixxxxx#29 nsp=-1 mass=400 + 1.664100588675688e+01, -1.775040627920733e+01, // itest=264: ixxxxx#29 nsp=-1 mass=400 + -1.442220510185596e+01, -0.000000000000000e+00, // itest=264: ixxxxx#29 nsp=-1 mass=400 + -8.320502943378436e+00, 8.875203139603666e+00, // itest=264: ixxxxx#29 nsp=-1 mass=400 + 7.211102550927978e+00, 0.000000000000000e+00 } ); // itest=264: ixxxxx#29 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=265: ixxxxx#29 nsp=-1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=265: ixxxxx#29 nsp=-1 mass=-400 + 1.664100588675688e+01, -1.775040627920733e+01, // itest=265: ixxxxx#29 nsp=-1 mass=-400 + -1.442220510185596e+01, -0.000000000000000e+00, // itest=265: ixxxxx#29 nsp=-1 mass=-400 + 8.320502943378436e+00, -8.875203139603666e+00, // itest=265: ixxxxx#29 nsp=-1 mass=-400 + -7.211102550927978e+00, -0.000000000000000e+00 } ); // itest=265: ixxxxx#29 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=266: vxxxxx#29 nsp=-1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=266: vxxxxx#29 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=266: vxxxxx#29 nsp=-1 mass=400 + 2.321373168788980e-01, 5.158607041753289e-01, // itest=266: vxxxxx#29 nsp=-1 mass=400 + 2.476131380041579e-01, -4.836194101643708e-01, // itest=266: vxxxxx#29 nsp=-1 mass=400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=266: vxxxxx#29 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=267: vxxxxx#29 nsp=-1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=267: vxxxxx#29 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=267: vxxxxx#29 nsp=-1 mass=-400 + 2.321373168788980e-01, 5.158607041753289e-01, // itest=267: vxxxxx#29 nsp=-1 mass=-400 + 2.476131380041579e-01, -4.836194101643708e-01, // itest=267: vxxxxx#29 nsp=-1 mass=-400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=267: vxxxxx#29 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=268: sxxxxx#29 nsp=-1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=268: sxxxxx#29 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=268: sxxxxx#29 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=268: sxxxxx#29 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=268: sxxxxx#29 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=268: sxxxxx#29 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=269: sxxxxx#29 nsp=-1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=269: sxxxxx#29 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=269: sxxxxx#29 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=269: sxxxxx#29 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=269: sxxxxx#29 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=269: sxxxxx#29 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=270: oxxxxx#29 nsp=-1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=270: oxxxxx#29 nsp=-1 mass=400 + -8.320502943378436e+00, -8.875203139603666e+00, // itest=270: oxxxxx#29 nsp=-1 mass=400 + 7.211102550927978e+00, 0.000000000000000e+00, // itest=270: oxxxxx#29 nsp=-1 mass=400 + 1.664100588675688e+01, 1.775040627920733e+01, // itest=270: oxxxxx#29 nsp=-1 mass=400 + -1.442220510185596e+01, -0.000000000000000e+00 } ); // itest=270: oxxxxx#29 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=271: oxxxxx#29 nsp=-1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=271: oxxxxx#29 nsp=-1 mass=-400 + 8.320502943378436e+00, 8.875203139603666e+00, // itest=271: oxxxxx#29 nsp=-1 mass=-400 + -7.211102550927978e+00, -0.000000000000000e+00, // itest=271: oxxxxx#29 nsp=-1 mass=-400 + 1.664100588675688e+01, 1.775040627920733e+01, // itest=271: oxxxxx#29 nsp=-1 mass=-400 + -1.442220510185596e+01, -0.000000000000000e+00 } ); // itest=271: oxxxxx#29 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=272: ixxxxx#30 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=272: ixxxxx#30 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=272: ixxxxx#30 nsp=-1 mass=500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=272: ixxxxx#30 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=272: ixxxxx#30 nsp=-1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=272: ixxxxx#30 nsp=-1 mass=500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=273: ixxxxx#30 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=273: ixxxxx#30 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=273: ixxxxx#30 nsp=-1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=273: ixxxxx#30 nsp=-1 mass=-500 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=273: ixxxxx#30 nsp=-1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=273: ixxxxx#30 nsp=-1 mass=-500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=274: vxxxxx#30 nsp=-1 mass=500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=274: vxxxxx#30 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=274: vxxxxx#30 nsp=-1 mass=500 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=274: vxxxxx#30 nsp=-1 mass=500 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=274: vxxxxx#30 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=274: vxxxxx#30 nsp=-1 mass=500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=275: vxxxxx#30 nsp=-1 mass=-500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=275: vxxxxx#30 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=275: vxxxxx#30 nsp=-1 mass=-500 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=275: vxxxxx#30 nsp=-1 mass=-500 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=275: vxxxxx#30 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=275: vxxxxx#30 nsp=-1 mass=-500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=276: sxxxxx#30 nsp=-1 mass=500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=276: sxxxxx#30 nsp=-1 mass=500 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=276: sxxxxx#30 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=276: sxxxxx#30 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=276: sxxxxx#30 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=276: sxxxxx#30 nsp=-1 mass=500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=277: sxxxxx#30 nsp=-1 mass=-500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=277: sxxxxx#30 nsp=-1 mass=-500 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=277: sxxxxx#30 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=277: sxxxxx#30 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=277: sxxxxx#30 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=277: sxxxxx#30 nsp=-1 mass=-500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=278: oxxxxx#30 nsp=-1 mass=500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=278: oxxxxx#30 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=278: oxxxxx#30 nsp=-1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=278: oxxxxx#30 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=278: oxxxxx#30 nsp=-1 mass=500 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=278: oxxxxx#30 nsp=-1 mass=500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=279: oxxxxx#30 nsp=-1 mass=-500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=279: oxxxxx#30 nsp=-1 mass=-500 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=279: oxxxxx#30 nsp=-1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=279: oxxxxx#30 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=279: oxxxxx#30 nsp=-1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=279: oxxxxx#30 nsp=-1 mass=-500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=280: ixxxxx#31 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=280: ixxxxx#31 nsp=-1 mass=400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=280: ixxxxx#31 nsp=-1 mass=400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=280: ixxxxx#31 nsp=-1 mass=400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=280: ixxxxx#31 nsp=-1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00 } ); // itest=280: ixxxxx#31 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=281: ixxxxx#31 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=281: ixxxxx#31 nsp=-1 mass=-400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=281: ixxxxx#31 nsp=-1 mass=-400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=281: ixxxxx#31 nsp=-1 mass=-400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=281: ixxxxx#31 nsp=-1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00 } ); // itest=281: ixxxxx#31 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=282: vxxxxx#31 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=282: vxxxxx#31 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=282: vxxxxx#31 nsp=-1 mass=400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=282: vxxxxx#31 nsp=-1 mass=400 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=282: vxxxxx#31 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=282: vxxxxx#31 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=283: vxxxxx#31 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=283: vxxxxx#31 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=283: vxxxxx#31 nsp=-1 mass=-400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=283: vxxxxx#31 nsp=-1 mass=-400 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=283: vxxxxx#31 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=283: vxxxxx#31 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=284: sxxxxx#31 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=284: sxxxxx#31 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=284: sxxxxx#31 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=284: sxxxxx#31 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=284: sxxxxx#31 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=284: sxxxxx#31 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=285: sxxxxx#31 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=285: sxxxxx#31 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=285: sxxxxx#31 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=285: sxxxxx#31 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=285: sxxxxx#31 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=285: sxxxxx#31 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=286: oxxxxx#31 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=286: oxxxxx#31 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=286: oxxxxx#31 nsp=-1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=286: oxxxxx#31 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=286: oxxxxx#31 nsp=-1 mass=400 + -2.828427124746190e+01, -0.000000000000000e+00 } ); // itest=286: oxxxxx#31 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=287: oxxxxx#31 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=287: oxxxxx#31 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=287: oxxxxx#31 nsp=-1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=287: oxxxxx#31 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=287: oxxxxx#31 nsp=-1 mass=-400 + -2.828427124746190e+01, -0.000000000000000e+00 } ); // itest=287: oxxxxx#31 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=288: ixxxxx#0 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=288: ixxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=288: ixxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=288: ixxxxx#0 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=288: ixxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=288: ixxxxx#0 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=289: ixxxxx#0 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=289: ixxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=289: ixxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=289: ixxxxx#0 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=289: ixxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=289: ixxxxx#0 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=290: ipzxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=290: ipzxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=290: ipzxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=290: ipzxxx#0 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=290: ipzxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=290: ipzxxx#0 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=291: vxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=291: vxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=291: vxxxxx#0 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=291: vxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=291: vxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=291: vxxxxx#0 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=292: vxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=292: vxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=292: vxxxxx#0 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=292: vxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=292: vxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=292: vxxxxx#0 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=293: sxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=293: sxxxxx#0 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=293: sxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=293: sxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=293: sxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=293: sxxxxx#0 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=294: sxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=294: sxxxxx#0 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=294: sxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=294: sxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=294: sxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=294: sxxxxx#0 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=295: oxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=295: oxxxxx#0 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=295: oxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=295: oxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=295: oxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=295: oxxxxx#0 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=296: oxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=296: oxxxxx#0 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=296: oxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=296: oxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=296: oxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=296: oxxxxx#0 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=297: opzxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=297: opzxxx#0 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=297: opzxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=297: opzxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=297: opzxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=297: opzxxx#0 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=298: ixxxxx#1 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=298: ixxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=298: ixxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=298: ixxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=298: ixxxxx#1 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=298: ixxxxx#1 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=299: ixxxxx#1 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=299: ixxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=299: ixxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=299: ixxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=299: ixxxxx#1 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=299: ixxxxx#1 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=300: imzxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=300: imzxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=300: imzxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=300: imzxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=300: imzxxx#1 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=300: imzxxx#1 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=301: vxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=301: vxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=301: vxxxxx#1 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=301: vxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=301: vxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=301: vxxxxx#1 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=302: vxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=302: vxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=302: vxxxxx#1 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=302: vxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=302: vxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=302: vxxxxx#1 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=303: sxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=303: sxxxxx#1 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=303: sxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=303: sxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=303: sxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=303: sxxxxx#1 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=304: sxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=304: sxxxxx#1 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=304: sxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=304: sxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=304: sxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=304: sxxxxx#1 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=305: oxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=305: oxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=305: oxxxxx#1 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=305: oxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=305: oxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=305: oxxxxx#1 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=306: oxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=306: oxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=306: oxxxxx#1 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=306: oxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=306: oxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=306: oxxxxx#1 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=307: omzxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=307: omzxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=307: omzxxx#1 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=307: omzxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=307: omzxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=307: omzxxx#1 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=308: ixxxxx#2 nsp=1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=308: ixxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=308: ixxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=308: ixxxxx#2 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=308: ixxxxx#2 nsp=1 mass=0 + 1.341640786499874e+01, 1.788854381999831e+01 } ); // itest=308: ixxxxx#2 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=309: ixxxxx#2 nsp=1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=309: ixxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=309: ixxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=309: ixxxxx#2 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=309: ixxxxx#2 nsp=1 mass=0 + 1.341640786499874e+01, 1.788854381999831e+01 } ); // itest=309: ixxxxx#2 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=310: ixzxxx#2 nsp=1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=310: ixzxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=310: ixzxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=310: ixzxxx#2 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=310: ixzxxx#2 nsp=1 mass=0 + 1.341640786499874e+01, 1.788854381999832e+01 } ); // itest=310: ixzxxx#2 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=311: vxxxxx#2 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=311: vxxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=311: vxxxxx#2 nsp=1 mass=0 + -0.000000000000000e+00, -5.656854249492381e-01, // itest=311: vxxxxx#2 nsp=1 mass=0 + -0.000000000000000e+00, 4.242640687119285e-01, // itest=311: vxxxxx#2 nsp=1 mass=0 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=311: vxxxxx#2 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=312: vxxxxx#2 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=312: vxxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=312: vxxxxx#2 nsp=1 mass=0 + -0.000000000000000e+00, -5.656854249492381e-01, // itest=312: vxxxxx#2 nsp=1 mass=0 + -0.000000000000000e+00, 4.242640687119285e-01, // itest=312: vxxxxx#2 nsp=1 mass=0 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=312: vxxxxx#2 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=313: sxxxxx#2 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=313: sxxxxx#2 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=313: sxxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=313: sxxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=313: sxxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=313: sxxxxx#2 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=314: sxxxxx#2 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=314: sxxxxx#2 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=314: sxxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=314: sxxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=314: sxxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=314: sxxxxx#2 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=315: oxxxxx#2 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=315: oxxxxx#2 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=315: oxxxxx#2 nsp=1 mass=0 + 1.341640786499874e+01, -1.788854381999831e+01, // itest=315: oxxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=315: oxxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=315: oxxxxx#2 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=316: oxxxxx#2 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=316: oxxxxx#2 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=316: oxxxxx#2 nsp=1 mass=0 + 1.341640786499874e+01, -1.788854381999831e+01, // itest=316: oxxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=316: oxxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=316: oxxxxx#2 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=317: oxzxxx#2 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=317: oxzxxx#2 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=317: oxzxxx#2 nsp=1 mass=0 + 1.341640786499874e+01, -1.788854381999832e+01, // itest=317: oxzxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=317: oxzxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=317: oxzxxx#2 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=318: ixxxxx#3 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=318: ixxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=318: ixxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=318: ixxxxx#3 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=318: ixxxxx#3 nsp=1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=318: ixxxxx#3 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=319: ixxxxx#3 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=319: ixxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=319: ixxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=319: ixxxxx#3 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=319: ixxxxx#3 nsp=1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=319: ixxxxx#3 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=320: ixzxxx#3 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=320: ixzxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=320: ixzxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=320: ixzxxx#3 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=320: ixzxxx#3 nsp=1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=320: ixzxxx#3 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=321: vxxxxx#3 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=321: vxxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=321: vxxxxx#3 nsp=1 mass=0 + -3.394112549695428e-01, -5.656854249492381e-01, // itest=321: vxxxxx#3 nsp=1 mass=0 + -4.525483399593904e-01, 4.242640687119285e-01, // itest=321: vxxxxx#3 nsp=1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=321: vxxxxx#3 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=322: vxxxxx#3 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=322: vxxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=322: vxxxxx#3 nsp=1 mass=0 + -3.394112549695428e-01, -5.656854249492381e-01, // itest=322: vxxxxx#3 nsp=1 mass=0 + -4.525483399593904e-01, 4.242640687119285e-01, // itest=322: vxxxxx#3 nsp=1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=322: vxxxxx#3 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=323: sxxxxx#3 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=323: sxxxxx#3 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=323: sxxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=323: sxxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=323: sxxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=323: sxxxxx#3 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=324: sxxxxx#3 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=324: sxxxxx#3 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=324: sxxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=324: sxxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=324: sxxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=324: sxxxxx#3 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=325: oxxxxx#3 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=325: oxxxxx#3 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=325: oxxxxx#3 nsp=1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=325: oxxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=325: oxxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=325: oxxxxx#3 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=326: oxxxxx#3 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=326: oxxxxx#3 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=326: oxxxxx#3 nsp=1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=326: oxxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=326: oxxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=326: oxxxxx#3 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=327: oxzxxx#3 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=327: oxzxxx#3 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=327: oxzxxx#3 nsp=1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=327: oxzxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=327: oxzxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=327: oxzxxx#3 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=328: ixxxxx#4 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=328: ixxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=328: ixxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=328: ixxxxx#4 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=328: ixxxxx#4 nsp=1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01 } ); // itest=328: ixxxxx#4 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=329: ixxxxx#4 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=329: ixxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=329: ixxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=329: ixxxxx#4 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=329: ixxxxx#4 nsp=1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01 } ); // itest=329: ixxxxx#4 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=330: ixzxxx#4 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=330: ixzxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=330: ixzxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=330: ixzxxx#4 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=330: ixzxxx#4 nsp=1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01 } ); // itest=330: ixzxxx#4 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=331: vxxxxx#4 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=331: vxxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=331: vxxxxx#4 nsp=1 mass=0 + 3.394112549695428e-01, -5.656854249492381e-01, // itest=331: vxxxxx#4 nsp=1 mass=0 + 4.525483399593904e-01, 4.242640687119285e-01, // itest=331: vxxxxx#4 nsp=1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=331: vxxxxx#4 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=332: vxxxxx#4 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=332: vxxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=332: vxxxxx#4 nsp=1 mass=0 + 3.394112549695428e-01, -5.656854249492381e-01, // itest=332: vxxxxx#4 nsp=1 mass=0 + 4.525483399593904e-01, 4.242640687119285e-01, // itest=332: vxxxxx#4 nsp=1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=332: vxxxxx#4 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=333: sxxxxx#4 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=333: sxxxxx#4 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=333: sxxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=333: sxxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=333: sxxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=333: sxxxxx#4 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=334: sxxxxx#4 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=334: sxxxxx#4 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=334: sxxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=334: sxxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=334: sxxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=334: sxxxxx#4 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=335: oxxxxx#4 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=335: oxxxxx#4 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=335: oxxxxx#4 nsp=1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=335: oxxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=335: oxxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=335: oxxxxx#4 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=336: oxxxxx#4 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=336: oxxxxx#4 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=336: oxxxxx#4 nsp=1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=336: oxxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=336: oxxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=336: oxxxxx#4 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=337: oxzxxx#4 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=337: oxzxxx#4 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=337: oxzxxx#4 nsp=1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=337: oxzxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=337: oxzxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=337: oxzxxx#4 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=338: ixxxxx#5 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=338: ixxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=338: ixxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=338: ixxxxx#5 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=338: ixxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=338: ixxxxx#5 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=339: ixxxxx#5 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=339: ixxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=339: ixxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=339: ixxxxx#5 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=339: ixxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=339: ixxxxx#5 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=340: ipzxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=340: ipzxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=340: ipzxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=340: ipzxxx#5 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=340: ipzxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=340: ipzxxx#5 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=341: vxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=341: vxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=341: vxxxxx#5 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=341: vxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=341: vxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=341: vxxxxx#5 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=342: vxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=342: vxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=342: vxxxxx#5 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=342: vxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=342: vxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=342: vxxxxx#5 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=343: sxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=343: sxxxxx#5 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=343: sxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=343: sxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=343: sxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=343: sxxxxx#5 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=344: sxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=344: sxxxxx#5 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=344: sxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=344: sxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=344: sxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=344: sxxxxx#5 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=345: oxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=345: oxxxxx#5 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=345: oxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=345: oxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=345: oxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=345: oxxxxx#5 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=346: oxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=346: oxxxxx#5 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=346: oxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=346: oxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=346: oxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=346: oxxxxx#5 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=347: opzxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=347: opzxxx#5 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=347: opzxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=347: opzxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=347: opzxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=347: opzxxx#5 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=348: ixxxxx#6 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=348: ixxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=348: ixxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=348: ixxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=348: ixxxxx#6 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=348: ixxxxx#6 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=349: ixxxxx#6 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=349: ixxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=349: ixxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=349: ixxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=349: ixxxxx#6 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=349: ixxxxx#6 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=350: imzxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=350: imzxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=350: imzxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=350: imzxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=350: imzxxx#6 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=350: imzxxx#6 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=351: vxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=351: vxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=351: vxxxxx#6 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=351: vxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=351: vxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=351: vxxxxx#6 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=352: vxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=352: vxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=352: vxxxxx#6 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=352: vxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=352: vxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=352: vxxxxx#6 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=353: sxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=353: sxxxxx#6 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=353: sxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=353: sxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=353: sxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=353: sxxxxx#6 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=354: sxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=354: sxxxxx#6 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=354: sxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=354: sxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=354: sxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=354: sxxxxx#6 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=355: oxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=355: oxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=355: oxxxxx#6 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=355: oxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=355: oxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=355: oxxxxx#6 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=356: oxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=356: oxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=356: oxxxxx#6 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=356: oxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=356: oxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=356: oxxxxx#6 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=357: omzxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=357: omzxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=357: omzxxx#6 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=357: omzxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=357: omzxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=357: omzxxx#6 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=358: ixxxxx#7 nsp=1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=358: ixxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=358: ixxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=358: ixxxxx#7 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=358: ixxxxx#7 nsp=1 mass=0 + 1.341640786499874e+01, 1.788854381999831e+01 } ); // itest=358: ixxxxx#7 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=359: ixxxxx#7 nsp=1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=359: ixxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=359: ixxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=359: ixxxxx#7 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=359: ixxxxx#7 nsp=1 mass=0 + 1.341640786499874e+01, 1.788854381999831e+01 } ); // itest=359: ixxxxx#7 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=360: ixzxxx#7 nsp=1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=360: ixzxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=360: ixzxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=360: ixzxxx#7 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=360: ixzxxx#7 nsp=1 mass=0 + 1.341640786499874e+01, 1.788854381999832e+01 } ); // itest=360: ixzxxx#7 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=361: vxxxxx#7 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=361: vxxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=361: vxxxxx#7 nsp=1 mass=0 + -0.000000000000000e+00, -5.656854249492381e-01, // itest=361: vxxxxx#7 nsp=1 mass=0 + -0.000000000000000e+00, 4.242640687119285e-01, // itest=361: vxxxxx#7 nsp=1 mass=0 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=361: vxxxxx#7 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=362: vxxxxx#7 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=362: vxxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=362: vxxxxx#7 nsp=1 mass=0 + -0.000000000000000e+00, -5.656854249492381e-01, // itest=362: vxxxxx#7 nsp=1 mass=0 + -0.000000000000000e+00, 4.242640687119285e-01, // itest=362: vxxxxx#7 nsp=1 mass=0 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=362: vxxxxx#7 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=363: sxxxxx#7 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=363: sxxxxx#7 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=363: sxxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=363: sxxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=363: sxxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=363: sxxxxx#7 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=364: sxxxxx#7 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=364: sxxxxx#7 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=364: sxxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=364: sxxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=364: sxxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=364: sxxxxx#7 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=365: oxxxxx#7 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=365: oxxxxx#7 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=365: oxxxxx#7 nsp=1 mass=0 + 1.341640786499874e+01, -1.788854381999831e+01, // itest=365: oxxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=365: oxxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=365: oxxxxx#7 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=366: oxxxxx#7 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=366: oxxxxx#7 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=366: oxxxxx#7 nsp=1 mass=0 + 1.341640786499874e+01, -1.788854381999831e+01, // itest=366: oxxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=366: oxxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=366: oxxxxx#7 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=367: oxzxxx#7 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=367: oxzxxx#7 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=367: oxzxxx#7 nsp=1 mass=0 + 1.341640786499874e+01, -1.788854381999832e+01, // itest=367: oxzxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=367: oxzxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=367: oxzxxx#7 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=368: ixxxxx#8 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=368: ixxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=368: ixxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=368: ixxxxx#8 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=368: ixxxxx#8 nsp=1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=368: ixxxxx#8 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=369: ixxxxx#8 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=369: ixxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=369: ixxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=369: ixxxxx#8 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=369: ixxxxx#8 nsp=1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=369: ixxxxx#8 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=370: ixzxxx#8 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=370: ixzxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=370: ixzxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=370: ixzxxx#8 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=370: ixzxxx#8 nsp=1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=370: ixzxxx#8 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=371: vxxxxx#8 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=371: vxxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=371: vxxxxx#8 nsp=1 mass=0 + -3.394112549695428e-01, -5.656854249492381e-01, // itest=371: vxxxxx#8 nsp=1 mass=0 + -4.525483399593904e-01, 4.242640687119285e-01, // itest=371: vxxxxx#8 nsp=1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=371: vxxxxx#8 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=372: vxxxxx#8 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=372: vxxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=372: vxxxxx#8 nsp=1 mass=0 + -3.394112549695428e-01, -5.656854249492381e-01, // itest=372: vxxxxx#8 nsp=1 mass=0 + -4.525483399593904e-01, 4.242640687119285e-01, // itest=372: vxxxxx#8 nsp=1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=372: vxxxxx#8 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=373: sxxxxx#8 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=373: sxxxxx#8 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=373: sxxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=373: sxxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=373: sxxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=373: sxxxxx#8 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=374: sxxxxx#8 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=374: sxxxxx#8 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=374: sxxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=374: sxxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=374: sxxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=374: sxxxxx#8 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=375: oxxxxx#8 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=375: oxxxxx#8 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=375: oxxxxx#8 nsp=1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=375: oxxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=375: oxxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=375: oxxxxx#8 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=376: oxxxxx#8 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=376: oxxxxx#8 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=376: oxxxxx#8 nsp=1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=376: oxxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=376: oxxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=376: oxxxxx#8 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=377: oxzxxx#8 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=377: oxzxxx#8 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=377: oxzxxx#8 nsp=1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=377: oxzxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=377: oxzxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=377: oxzxxx#8 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=378: ixxxxx#9 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=378: ixxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=378: ixxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=378: ixxxxx#9 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=378: ixxxxx#9 nsp=1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01 } ); // itest=378: ixxxxx#9 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=379: ixxxxx#9 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=379: ixxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=379: ixxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=379: ixxxxx#9 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=379: ixxxxx#9 nsp=1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01 } ); // itest=379: ixxxxx#9 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=380: ixzxxx#9 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=380: ixzxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=380: ixzxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=380: ixzxxx#9 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=380: ixzxxx#9 nsp=1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01 } ); // itest=380: ixzxxx#9 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=381: vxxxxx#9 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=381: vxxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=381: vxxxxx#9 nsp=1 mass=0 + 3.394112549695428e-01, -5.656854249492381e-01, // itest=381: vxxxxx#9 nsp=1 mass=0 + 4.525483399593904e-01, 4.242640687119285e-01, // itest=381: vxxxxx#9 nsp=1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=381: vxxxxx#9 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=382: vxxxxx#9 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=382: vxxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=382: vxxxxx#9 nsp=1 mass=0 + 3.394112549695428e-01, -5.656854249492381e-01, // itest=382: vxxxxx#9 nsp=1 mass=0 + 4.525483399593904e-01, 4.242640687119285e-01, // itest=382: vxxxxx#9 nsp=1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=382: vxxxxx#9 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=383: sxxxxx#9 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=383: sxxxxx#9 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=383: sxxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=383: sxxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=383: sxxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=383: sxxxxx#9 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=384: sxxxxx#9 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=384: sxxxxx#9 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=384: sxxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=384: sxxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=384: sxxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=384: sxxxxx#9 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=385: oxxxxx#9 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=385: oxxxxx#9 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=385: oxxxxx#9 nsp=1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=385: oxxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=385: oxxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=385: oxxxxx#9 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=386: oxxxxx#9 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=386: oxxxxx#9 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=386: oxxxxx#9 nsp=1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=386: oxxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=386: oxxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=386: oxxxxx#9 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=387: oxzxxx#9 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=387: oxzxxx#9 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=387: oxzxxx#9 nsp=1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=387: oxzxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=387: oxzxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=387: oxzxxx#9 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=388: ixxxxx#10 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=388: ixxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=388: ixxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=388: ixxxxx#10 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=388: ixxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=388: ixxxxx#10 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=389: ixxxxx#10 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=389: ixxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=389: ixxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=389: ixxxxx#10 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=389: ixxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=389: ixxxxx#10 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=390: ipzxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=390: ipzxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=390: ipzxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=390: ipzxxx#10 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=390: ipzxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=390: ipzxxx#10 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=391: vxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=391: vxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=391: vxxxxx#10 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=391: vxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=391: vxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=391: vxxxxx#10 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=392: vxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=392: vxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=392: vxxxxx#10 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=392: vxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=392: vxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=392: vxxxxx#10 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=393: sxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=393: sxxxxx#10 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=393: sxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=393: sxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=393: sxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=393: sxxxxx#10 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=394: sxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=394: sxxxxx#10 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=394: sxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=394: sxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=394: sxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=394: sxxxxx#10 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=395: oxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=395: oxxxxx#10 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=395: oxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=395: oxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=395: oxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=395: oxxxxx#10 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=396: oxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=396: oxxxxx#10 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=396: oxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=396: oxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=396: oxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=396: oxxxxx#10 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=397: opzxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=397: opzxxx#10 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=397: opzxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=397: opzxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=397: opzxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=397: opzxxx#10 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=398: ixxxxx#11 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=398: ixxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=398: ixxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=398: ixxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=398: ixxxxx#11 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=398: ixxxxx#11 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=399: ixxxxx#11 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=399: ixxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=399: ixxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=399: ixxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=399: ixxxxx#11 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=399: ixxxxx#11 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=400: imzxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=400: imzxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=400: imzxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=400: imzxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=400: imzxxx#11 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=400: imzxxx#11 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=401: vxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=401: vxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=401: vxxxxx#11 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=401: vxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=401: vxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=401: vxxxxx#11 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=402: vxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=402: vxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=402: vxxxxx#11 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=402: vxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=402: vxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=402: vxxxxx#11 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=403: sxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=403: sxxxxx#11 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=403: sxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=403: sxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=403: sxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=403: sxxxxx#11 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=404: sxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=404: sxxxxx#11 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=404: sxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=404: sxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=404: sxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=404: sxxxxx#11 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=405: oxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=405: oxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=405: oxxxxx#11 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=405: oxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=405: oxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=405: oxxxxx#11 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=406: oxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=406: oxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=406: oxxxxx#11 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=406: oxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=406: oxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=406: oxxxxx#11 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=407: omzxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=407: omzxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=407: omzxxx#11 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=407: omzxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=407: omzxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=407: omzxxx#11 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=408: ixxxxx#12 nsp=1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=408: ixxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=408: ixxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=408: ixxxxx#12 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=408: ixxxxx#12 nsp=1 mass=0 + 1.341640786499874e+01, 1.788854381999831e+01 } ); // itest=408: ixxxxx#12 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=409: ixxxxx#12 nsp=1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=409: ixxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=409: ixxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=409: ixxxxx#12 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=409: ixxxxx#12 nsp=1 mass=0 + 1.341640786499874e+01, 1.788854381999831e+01 } ); // itest=409: ixxxxx#12 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=410: ixzxxx#12 nsp=1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=410: ixzxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=410: ixzxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=410: ixzxxx#12 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=410: ixzxxx#12 nsp=1 mass=0 + 1.341640786499874e+01, 1.788854381999832e+01 } ); // itest=410: ixzxxx#12 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=411: vxxxxx#12 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=411: vxxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=411: vxxxxx#12 nsp=1 mass=0 + -0.000000000000000e+00, -5.656854249492381e-01, // itest=411: vxxxxx#12 nsp=1 mass=0 + -0.000000000000000e+00, 4.242640687119285e-01, // itest=411: vxxxxx#12 nsp=1 mass=0 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=411: vxxxxx#12 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=412: vxxxxx#12 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=412: vxxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=412: vxxxxx#12 nsp=1 mass=0 + -0.000000000000000e+00, -5.656854249492381e-01, // itest=412: vxxxxx#12 nsp=1 mass=0 + -0.000000000000000e+00, 4.242640687119285e-01, // itest=412: vxxxxx#12 nsp=1 mass=0 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=412: vxxxxx#12 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=413: sxxxxx#12 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=413: sxxxxx#12 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=413: sxxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=413: sxxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=413: sxxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=413: sxxxxx#12 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=414: sxxxxx#12 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=414: sxxxxx#12 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=414: sxxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=414: sxxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=414: sxxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=414: sxxxxx#12 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=415: oxxxxx#12 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=415: oxxxxx#12 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=415: oxxxxx#12 nsp=1 mass=0 + 1.341640786499874e+01, -1.788854381999831e+01, // itest=415: oxxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=415: oxxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=415: oxxxxx#12 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=416: oxxxxx#12 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=416: oxxxxx#12 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=416: oxxxxx#12 nsp=1 mass=0 + 1.341640786499874e+01, -1.788854381999831e+01, // itest=416: oxxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=416: oxxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=416: oxxxxx#12 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=417: oxzxxx#12 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=417: oxzxxx#12 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=417: oxzxxx#12 nsp=1 mass=0 + 1.341640786499874e+01, -1.788854381999832e+01, // itest=417: oxzxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=417: oxzxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=417: oxzxxx#12 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=418: ixxxxx#13 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=418: ixxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=418: ixxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=418: ixxxxx#13 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=418: ixxxxx#13 nsp=1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=418: ixxxxx#13 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=419: ixxxxx#13 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=419: ixxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=419: ixxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=419: ixxxxx#13 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=419: ixxxxx#13 nsp=1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=419: ixxxxx#13 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=420: ixzxxx#13 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=420: ixzxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=420: ixzxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=420: ixzxxx#13 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=420: ixzxxx#13 nsp=1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=420: ixzxxx#13 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=421: vxxxxx#13 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=421: vxxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=421: vxxxxx#13 nsp=1 mass=0 + -3.394112549695428e-01, -5.656854249492381e-01, // itest=421: vxxxxx#13 nsp=1 mass=0 + -4.525483399593904e-01, 4.242640687119285e-01, // itest=421: vxxxxx#13 nsp=1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=421: vxxxxx#13 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=422: vxxxxx#13 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=422: vxxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=422: vxxxxx#13 nsp=1 mass=0 + -3.394112549695428e-01, -5.656854249492381e-01, // itest=422: vxxxxx#13 nsp=1 mass=0 + -4.525483399593904e-01, 4.242640687119285e-01, // itest=422: vxxxxx#13 nsp=1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=422: vxxxxx#13 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=423: sxxxxx#13 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=423: sxxxxx#13 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=423: sxxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=423: sxxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=423: sxxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=423: sxxxxx#13 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=424: sxxxxx#13 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=424: sxxxxx#13 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=424: sxxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=424: sxxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=424: sxxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=424: sxxxxx#13 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=425: oxxxxx#13 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=425: oxxxxx#13 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=425: oxxxxx#13 nsp=1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=425: oxxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=425: oxxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=425: oxxxxx#13 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=426: oxxxxx#13 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=426: oxxxxx#13 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=426: oxxxxx#13 nsp=1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=426: oxxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=426: oxxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=426: oxxxxx#13 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=427: oxzxxx#13 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=427: oxzxxx#13 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=427: oxzxxx#13 nsp=1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=427: oxzxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=427: oxzxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=427: oxzxxx#13 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=428: ixxxxx#14 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=428: ixxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=428: ixxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=428: ixxxxx#14 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=428: ixxxxx#14 nsp=1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01 } ); // itest=428: ixxxxx#14 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=429: ixxxxx#14 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=429: ixxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=429: ixxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=429: ixxxxx#14 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=429: ixxxxx#14 nsp=1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01 } ); // itest=429: ixxxxx#14 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=430: ixzxxx#14 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=430: ixzxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=430: ixzxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=430: ixzxxx#14 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=430: ixzxxx#14 nsp=1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01 } ); // itest=430: ixzxxx#14 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=431: vxxxxx#14 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=431: vxxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=431: vxxxxx#14 nsp=1 mass=0 + 3.394112549695428e-01, -5.656854249492381e-01, // itest=431: vxxxxx#14 nsp=1 mass=0 + 4.525483399593904e-01, 4.242640687119285e-01, // itest=431: vxxxxx#14 nsp=1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=431: vxxxxx#14 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=432: vxxxxx#14 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=432: vxxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=432: vxxxxx#14 nsp=1 mass=0 + 3.394112549695428e-01, -5.656854249492381e-01, // itest=432: vxxxxx#14 nsp=1 mass=0 + 4.525483399593904e-01, 4.242640687119285e-01, // itest=432: vxxxxx#14 nsp=1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=432: vxxxxx#14 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=433: sxxxxx#14 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=433: sxxxxx#14 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=433: sxxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=433: sxxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=433: sxxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=433: sxxxxx#14 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=434: sxxxxx#14 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=434: sxxxxx#14 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=434: sxxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=434: sxxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=434: sxxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=434: sxxxxx#14 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=435: oxxxxx#14 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=435: oxxxxx#14 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=435: oxxxxx#14 nsp=1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=435: oxxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=435: oxxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=435: oxxxxx#14 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=436: oxxxxx#14 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=436: oxxxxx#14 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=436: oxxxxx#14 nsp=1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=436: oxxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=436: oxxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=436: oxxxxx#14 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=437: oxzxxx#14 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=437: oxzxxx#14 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=437: oxzxxx#14 nsp=1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=437: oxzxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=437: oxzxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=437: oxzxxx#14 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=438: ixxxxx#15 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=438: ixxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=438: ixxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=438: ixxxxx#15 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=438: ixxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=438: ixxxxx#15 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=439: ixxxxx#15 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=439: ixxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=439: ixxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=439: ixxxxx#15 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=439: ixxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=439: ixxxxx#15 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=440: ipzxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=440: ipzxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=440: ipzxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=440: ipzxxx#15 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=440: ipzxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=440: ipzxxx#15 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=441: vxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=441: vxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=441: vxxxxx#15 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=441: vxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=441: vxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=441: vxxxxx#15 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=442: vxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=442: vxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=442: vxxxxx#15 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=442: vxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=442: vxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=442: vxxxxx#15 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=443: sxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=443: sxxxxx#15 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=443: sxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=443: sxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=443: sxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=443: sxxxxx#15 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=444: sxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=444: sxxxxx#15 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=444: sxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=444: sxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=444: sxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=444: sxxxxx#15 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=445: oxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=445: oxxxxx#15 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=445: oxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=445: oxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=445: oxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=445: oxxxxx#15 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=446: oxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=446: oxxxxx#15 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=446: oxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=446: oxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=446: oxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=446: oxxxxx#15 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=447: opzxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=447: opzxxx#15 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=447: opzxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=447: opzxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=447: opzxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=447: opzxxx#15 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=448: ixxxxx#16 nsp=1 mass=500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=448: ixxxxx#16 nsp=1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=448: ixxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=448: ixxxxx#16 nsp=1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=448: ixxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=448: ixxxxx#16 nsp=1 mass=500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=449: ixxxxx#16 nsp=1 mass=-500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=449: ixxxxx#16 nsp=1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=449: ixxxxx#16 nsp=1 mass=-500 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=449: ixxxxx#16 nsp=1 mass=-500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=449: ixxxxx#16 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=449: ixxxxx#16 nsp=1 mass=-500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=450: vxxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=450: vxxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=450: vxxxxx#16 nsp=1 mass=500 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=450: vxxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=450: vxxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=450: vxxxxx#16 nsp=1 mass=500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=451: vxxxxx#16 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=451: vxxxxx#16 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=451: vxxxxx#16 nsp=1 mass=-500 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=451: vxxxxx#16 nsp=1 mass=-500 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=451: vxxxxx#16 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=451: vxxxxx#16 nsp=1 mass=-500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=452: sxxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=452: sxxxxx#16 nsp=1 mass=500 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=452: sxxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=452: sxxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=452: sxxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=452: sxxxxx#16 nsp=1 mass=500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=453: sxxxxx#16 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=453: sxxxxx#16 nsp=1 mass=-500 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=453: sxxxxx#16 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=453: sxxxxx#16 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=453: sxxxxx#16 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=453: sxxxxx#16 nsp=1 mass=-500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=454: oxxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=454: oxxxxx#16 nsp=1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=454: oxxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=454: oxxxxx#16 nsp=1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=454: oxxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=454: oxxxxx#16 nsp=1 mass=500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=455: oxxxxx#16 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=455: oxxxxx#16 nsp=1 mass=-500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=455: oxxxxx#16 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=455: oxxxxx#16 nsp=1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=455: oxxxxx#16 nsp=1 mass=-500 + -0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=455: oxxxxx#16 nsp=1 mass=-500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=456: ixxxxx#17 nsp=1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=456: ixxxxx#17 nsp=1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=456: ixxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=456: ixxxxx#17 nsp=1 mass=400 + 2.828427124746190e+01, 0.000000000000000e+00, // itest=456: ixxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=456: ixxxxx#17 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=457: ixxxxx#17 nsp=1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=457: ixxxxx#17 nsp=1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=457: ixxxxx#17 nsp=1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=457: ixxxxx#17 nsp=1 mass=-400 + 2.828427124746190e+01, 0.000000000000000e+00, // itest=457: ixxxxx#17 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=457: ixxxxx#17 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=458: vxxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=458: vxxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=458: vxxxxx#17 nsp=1 mass=400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=458: vxxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=458: vxxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=458: vxxxxx#17 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=459: vxxxxx#17 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=459: vxxxxx#17 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=459: vxxxxx#17 nsp=1 mass=-400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=459: vxxxxx#17 nsp=1 mass=-400 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=459: vxxxxx#17 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=459: vxxxxx#17 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=460: sxxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=460: sxxxxx#17 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=460: sxxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=460: sxxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=460: sxxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=460: sxxxxx#17 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=461: sxxxxx#17 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=461: sxxxxx#17 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=461: sxxxxx#17 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=461: sxxxxx#17 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=461: sxxxxx#17 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=461: sxxxxx#17 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=462: oxxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=462: oxxxxx#17 nsp=1 mass=400 + 2.828427124746190e+01, 0.000000000000000e+00, // itest=462: oxxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=462: oxxxxx#17 nsp=1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=462: oxxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=462: oxxxxx#17 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=463: oxxxxx#17 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=463: oxxxxx#17 nsp=1 mass=-400 + 2.828427124746190e+01, 0.000000000000000e+00, // itest=463: oxxxxx#17 nsp=1 mass=-400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=463: oxxxxx#17 nsp=1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=463: oxxxxx#17 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=463: oxxxxx#17 nsp=1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=464: ixxxxx#18 nsp=1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=464: ixxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=464: ixxxxx#18 nsp=1 mass=400 + -1.414213562373095e+01, 0.000000000000000e+00, // itest=464: ixxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=464: ixxxxx#18 nsp=1 mass=400 + -2.828427124746190e+01, 0.000000000000000e+00 } ); // itest=464: ixxxxx#18 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=465: ixxxxx#18 nsp=1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=465: ixxxxx#18 nsp=1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=465: ixxxxx#18 nsp=1 mass=-400 + 1.414213562373095e+01, -0.000000000000000e+00, // itest=465: ixxxxx#18 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=465: ixxxxx#18 nsp=1 mass=-400 + -2.828427124746190e+01, 0.000000000000000e+00 } ); // itest=465: ixxxxx#18 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=466: vxxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=466: vxxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=466: vxxxxx#18 nsp=1 mass=400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=466: vxxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=466: vxxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=466: vxxxxx#18 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=467: vxxxxx#18 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=467: vxxxxx#18 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=467: vxxxxx#18 nsp=1 mass=-400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=467: vxxxxx#18 nsp=1 mass=-400 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=467: vxxxxx#18 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=467: vxxxxx#18 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=468: sxxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=468: sxxxxx#18 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=468: sxxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=468: sxxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=468: sxxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=468: sxxxxx#18 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=469: sxxxxx#18 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=469: sxxxxx#18 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=469: sxxxxx#18 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=469: sxxxxx#18 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=469: sxxxxx#18 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=469: sxxxxx#18 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=470: oxxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=470: oxxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=470: oxxxxx#18 nsp=1 mass=400 + -2.828427124746190e+01, 0.000000000000000e+00, // itest=470: oxxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=470: oxxxxx#18 nsp=1 mass=400 + -1.414213562373095e+01, 0.000000000000000e+00 } ); // itest=470: oxxxxx#18 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=471: oxxxxx#18 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=471: oxxxxx#18 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=471: oxxxxx#18 nsp=1 mass=-400 + -2.828427124746190e+01, 0.000000000000000e+00, // itest=471: oxxxxx#18 nsp=1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=471: oxxxxx#18 nsp=1 mass=-400 + 1.414213562373095e+01, -0.000000000000000e+00 } ); // itest=471: oxxxxx#18 nsp=1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=472: ixxxxx#19 nsp=1 mass=400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=472: ixxxxx#19 nsp=1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=472: ixxxxx#19 nsp=1 mass=400 + 5.999999999999999e+00, 7.999999999999999e+00, // itest=472: ixxxxx#19 nsp=1 mass=400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=472: ixxxxx#19 nsp=1 mass=400 + 1.200000000000000e+01, 1.600000000000000e+01 } ); // itest=472: ixxxxx#19 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=473: ixxxxx#19 nsp=1 mass=-400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=473: ixxxxx#19 nsp=1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00, // itest=473: ixxxxx#19 nsp=1 mass=-400 + -5.999999999999999e+00, -7.999999999999999e+00, // itest=473: ixxxxx#19 nsp=1 mass=-400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=473: ixxxxx#19 nsp=1 mass=-400 + 1.200000000000000e+01, 1.600000000000000e+01 } ); // itest=473: ixxxxx#19 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=474: vxxxxx#19 nsp=1 mass=400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=474: vxxxxx#19 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=474: vxxxxx#19 nsp=1 mass=400 + 0.000000000000000e+00, -5.656854249492381e-01, // itest=474: vxxxxx#19 nsp=1 mass=400 + 0.000000000000000e+00, 4.242640687119285e-01, // itest=474: vxxxxx#19 nsp=1 mass=400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=474: vxxxxx#19 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=475: vxxxxx#19 nsp=1 mass=-400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=475: vxxxxx#19 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=475: vxxxxx#19 nsp=1 mass=-400 + -0.000000000000000e+00, -5.656854249492381e-01, // itest=475: vxxxxx#19 nsp=1 mass=-400 + -0.000000000000000e+00, 4.242640687119285e-01, // itest=475: vxxxxx#19 nsp=1 mass=-400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=475: vxxxxx#19 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=476: sxxxxx#19 nsp=1 mass=400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=476: sxxxxx#19 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=476: sxxxxx#19 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=476: sxxxxx#19 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=476: sxxxxx#19 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=476: sxxxxx#19 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=477: sxxxxx#19 nsp=1 mass=-400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=477: sxxxxx#19 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=477: sxxxxx#19 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=477: sxxxxx#19 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=477: sxxxxx#19 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=477: sxxxxx#19 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=478: oxxxxx#19 nsp=1 mass=400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=478: oxxxxx#19 nsp=1 mass=400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=478: oxxxxx#19 nsp=1 mass=400 + 1.200000000000000e+01, -1.600000000000000e+01, // itest=478: oxxxxx#19 nsp=1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=478: oxxxxx#19 nsp=1 mass=400 + 5.999999999999999e+00, -7.999999999999999e+00 } ); // itest=478: oxxxxx#19 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=479: oxxxxx#19 nsp=1 mass=-400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=479: oxxxxx#19 nsp=1 mass=-400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=479: oxxxxx#19 nsp=1 mass=-400 + 1.200000000000000e+01, -1.600000000000000e+01, // itest=479: oxxxxx#19 nsp=1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00, // itest=479: oxxxxx#19 nsp=1 mass=-400 + -5.999999999999999e+00, 7.999999999999999e+00 } ); // itest=479: oxxxxx#19 nsp=1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=480: ixxxxx#20 nsp=1 mass=400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=480: ixxxxx#20 nsp=1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=480: ixxxxx#20 nsp=1 mass=400 + -7.999999999999999e+00, -5.999999999999999e+00, // itest=480: ixxxxx#20 nsp=1 mass=400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=480: ixxxxx#20 nsp=1 mass=400 + -1.600000000000000e+01, -1.200000000000000e+01 } ); // itest=480: ixxxxx#20 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=481: ixxxxx#20 nsp=1 mass=-400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=481: ixxxxx#20 nsp=1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00, // itest=481: ixxxxx#20 nsp=1 mass=-400 + 7.999999999999999e+00, 5.999999999999999e+00, // itest=481: ixxxxx#20 nsp=1 mass=-400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=481: ixxxxx#20 nsp=1 mass=-400 + -1.600000000000000e+01, -1.200000000000000e+01 } ); // itest=481: ixxxxx#20 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=482: vxxxxx#20 nsp=1 mass=400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=482: vxxxxx#20 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=482: vxxxxx#20 nsp=1 mass=400 + 0.000000000000000e+00, 4.242640687119285e-01, // itest=482: vxxxxx#20 nsp=1 mass=400 + 0.000000000000000e+00, -5.656854249492381e-01, // itest=482: vxxxxx#20 nsp=1 mass=400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=482: vxxxxx#20 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=483: vxxxxx#20 nsp=1 mass=-400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=483: vxxxxx#20 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=483: vxxxxx#20 nsp=1 mass=-400 + 0.000000000000000e+00, 4.242640687119285e-01, // itest=483: vxxxxx#20 nsp=1 mass=-400 + 0.000000000000000e+00, -5.656854249492381e-01, // itest=483: vxxxxx#20 nsp=1 mass=-400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=483: vxxxxx#20 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=484: sxxxxx#20 nsp=1 mass=400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=484: sxxxxx#20 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=484: sxxxxx#20 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=484: sxxxxx#20 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=484: sxxxxx#20 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=484: sxxxxx#20 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=485: sxxxxx#20 nsp=1 mass=-400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=485: sxxxxx#20 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=485: sxxxxx#20 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=485: sxxxxx#20 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=485: sxxxxx#20 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=485: sxxxxx#20 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=486: oxxxxx#20 nsp=1 mass=400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=486: oxxxxx#20 nsp=1 mass=400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=486: oxxxxx#20 nsp=1 mass=400 + -1.600000000000000e+01, 1.200000000000000e+01, // itest=486: oxxxxx#20 nsp=1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=486: oxxxxx#20 nsp=1 mass=400 + -7.999999999999999e+00, 5.999999999999999e+00 } ); // itest=486: oxxxxx#20 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=487: oxxxxx#20 nsp=1 mass=-400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=487: oxxxxx#20 nsp=1 mass=-400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=487: oxxxxx#20 nsp=1 mass=-400 + -1.600000000000000e+01, 1.200000000000000e+01, // itest=487: oxxxxx#20 nsp=1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00, // itest=487: oxxxxx#20 nsp=1 mass=-400 + 7.999999999999999e+00, -5.999999999999999e+00 } ); // itest=487: oxxxxx#20 nsp=1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=488: ixxxxx#21 nsp=1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=488: ixxxxx#21 nsp=1 mass=400 + 1.216552506059644e+01, 0.000000000000000e+00, // itest=488: ixxxxx#21 nsp=1 mass=400 + 4.931969619160719e+00, 5.260767593771432e+00, // itest=488: ixxxxx#21 nsp=1 mass=400 + 2.433105012119288e+01, 0.000000000000000e+00, // itest=488: ixxxxx#21 nsp=1 mass=400 + 9.863939238321439e+00, 1.052153518754287e+01 } ); // itest=488: ixxxxx#21 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=489: ixxxxx#21 nsp=1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=489: ixxxxx#21 nsp=1 mass=-400 + -1.216552506059644e+01, -0.000000000000000e+00, // itest=489: ixxxxx#21 nsp=1 mass=-400 + -4.931969619160719e+00, -5.260767593771432e+00, // itest=489: ixxxxx#21 nsp=1 mass=-400 + 2.433105012119288e+01, 0.000000000000000e+00, // itest=489: ixxxxx#21 nsp=1 mass=-400 + 9.863939238321439e+00, 1.052153518754287e+01 } ); // itest=489: ixxxxx#21 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=490: vxxxxx#21 nsp=1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=490: vxxxxx#21 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=490: vxxxxx#21 nsp=1 mass=400 + -2.321373168788980e-01, -5.158607041753289e-01, // itest=490: vxxxxx#21 nsp=1 mass=400 + -2.476131380041579e-01, 4.836194101643708e-01, // itest=490: vxxxxx#21 nsp=1 mass=400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=490: vxxxxx#21 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=491: vxxxxx#21 nsp=1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=491: vxxxxx#21 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=491: vxxxxx#21 nsp=1 mass=-400 + -2.321373168788980e-01, -5.158607041753289e-01, // itest=491: vxxxxx#21 nsp=1 mass=-400 + -2.476131380041579e-01, 4.836194101643708e-01, // itest=491: vxxxxx#21 nsp=1 mass=-400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=491: vxxxxx#21 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=492: sxxxxx#21 nsp=1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=492: sxxxxx#21 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=492: sxxxxx#21 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=492: sxxxxx#21 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=492: sxxxxx#21 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=492: sxxxxx#21 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=493: sxxxxx#21 nsp=1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=493: sxxxxx#21 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=493: sxxxxx#21 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=493: sxxxxx#21 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=493: sxxxxx#21 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=493: sxxxxx#21 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=494: oxxxxx#21 nsp=1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=494: oxxxxx#21 nsp=1 mass=400 + 2.433105012119288e+01, 0.000000000000000e+00, // itest=494: oxxxxx#21 nsp=1 mass=400 + 9.863939238321439e+00, -1.052153518754287e+01, // itest=494: oxxxxx#21 nsp=1 mass=400 + 1.216552506059644e+01, 0.000000000000000e+00, // itest=494: oxxxxx#21 nsp=1 mass=400 + 4.931969619160719e+00, -5.260767593771432e+00 } ); // itest=494: oxxxxx#21 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=495: oxxxxx#21 nsp=1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=495: oxxxxx#21 nsp=1 mass=-400 + 2.433105012119288e+01, 0.000000000000000e+00, // itest=495: oxxxxx#21 nsp=1 mass=-400 + 9.863939238321439e+00, -1.052153518754287e+01, // itest=495: oxxxxx#21 nsp=1 mass=-400 + -1.216552506059644e+01, -0.000000000000000e+00, // itest=495: oxxxxx#21 nsp=1 mass=-400 + -4.931969619160719e+00, 5.260767593771432e+00 } ); // itest=495: oxxxxx#21 nsp=1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=496: ixxxxx#22 nsp=1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=496: ixxxxx#22 nsp=1 mass=400 + 7.211102550927978e+00, 0.000000000000000e+00, // itest=496: ixxxxx#22 nsp=1 mass=400 + 8.320502943378436e+00, 8.875203139603666e+00, // itest=496: ixxxxx#22 nsp=1 mass=400 + 1.442220510185596e+01, 0.000000000000000e+00, // itest=496: ixxxxx#22 nsp=1 mass=400 + 1.664100588675688e+01, 1.775040627920733e+01 } ); // itest=496: ixxxxx#22 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=497: ixxxxx#22 nsp=1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=497: ixxxxx#22 nsp=1 mass=-400 + -7.211102550927978e+00, -0.000000000000000e+00, // itest=497: ixxxxx#22 nsp=1 mass=-400 + -8.320502943378436e+00, -8.875203139603666e+00, // itest=497: ixxxxx#22 nsp=1 mass=-400 + 1.442220510185596e+01, 0.000000000000000e+00, // itest=497: ixxxxx#22 nsp=1 mass=-400 + 1.664100588675688e+01, 1.775040627920733e+01 } ); // itest=497: ixxxxx#22 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=498: vxxxxx#22 nsp=1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=498: vxxxxx#22 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=498: vxxxxx#22 nsp=1 mass=400 + 2.321373168788980e-01, -5.158607041753289e-01, // itest=498: vxxxxx#22 nsp=1 mass=400 + 2.476131380041579e-01, 4.836194101643708e-01, // itest=498: vxxxxx#22 nsp=1 mass=400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=498: vxxxxx#22 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=499: vxxxxx#22 nsp=1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=499: vxxxxx#22 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=499: vxxxxx#22 nsp=1 mass=-400 + 2.321373168788980e-01, -5.158607041753289e-01, // itest=499: vxxxxx#22 nsp=1 mass=-400 + 2.476131380041579e-01, 4.836194101643708e-01, // itest=499: vxxxxx#22 nsp=1 mass=-400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=499: vxxxxx#22 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=500: sxxxxx#22 nsp=1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=500: sxxxxx#22 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=500: sxxxxx#22 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=500: sxxxxx#22 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=500: sxxxxx#22 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=500: sxxxxx#22 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=501: sxxxxx#22 nsp=1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=501: sxxxxx#22 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=501: sxxxxx#22 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=501: sxxxxx#22 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=501: sxxxxx#22 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=501: sxxxxx#22 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=502: oxxxxx#22 nsp=1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=502: oxxxxx#22 nsp=1 mass=400 + 1.442220510185596e+01, 0.000000000000000e+00, // itest=502: oxxxxx#22 nsp=1 mass=400 + 1.664100588675688e+01, -1.775040627920733e+01, // itest=502: oxxxxx#22 nsp=1 mass=400 + 7.211102550927978e+00, 0.000000000000000e+00, // itest=502: oxxxxx#22 nsp=1 mass=400 + 8.320502943378436e+00, -8.875203139603666e+00 } ); // itest=502: oxxxxx#22 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=503: oxxxxx#22 nsp=1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=503: oxxxxx#22 nsp=1 mass=-400 + 1.442220510185596e+01, 0.000000000000000e+00, // itest=503: oxxxxx#22 nsp=1 mass=-400 + 1.664100588675688e+01, -1.775040627920733e+01, // itest=503: oxxxxx#22 nsp=1 mass=-400 + -7.211102550927978e+00, -0.000000000000000e+00, // itest=503: oxxxxx#22 nsp=1 mass=-400 + -8.320502943378436e+00, 8.875203139603666e+00 } ); // itest=503: oxxxxx#22 nsp=1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=504: ixxxxx#23 nsp=1 mass=500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=504: ixxxxx#23 nsp=1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=504: ixxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=504: ixxxxx#23 nsp=1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=504: ixxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=504: ixxxxx#23 nsp=1 mass=500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=505: ixxxxx#23 nsp=1 mass=-500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=505: ixxxxx#23 nsp=1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=505: ixxxxx#23 nsp=1 mass=-500 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=505: ixxxxx#23 nsp=1 mass=-500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=505: ixxxxx#23 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=505: ixxxxx#23 nsp=1 mass=-500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=506: vxxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=506: vxxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=506: vxxxxx#23 nsp=1 mass=500 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=506: vxxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=506: vxxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=506: vxxxxx#23 nsp=1 mass=500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=507: vxxxxx#23 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=507: vxxxxx#23 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=507: vxxxxx#23 nsp=1 mass=-500 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=507: vxxxxx#23 nsp=1 mass=-500 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=507: vxxxxx#23 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=507: vxxxxx#23 nsp=1 mass=-500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=508: sxxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=508: sxxxxx#23 nsp=1 mass=500 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=508: sxxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=508: sxxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=508: sxxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=508: sxxxxx#23 nsp=1 mass=500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=509: sxxxxx#23 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=509: sxxxxx#23 nsp=1 mass=-500 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=509: sxxxxx#23 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=509: sxxxxx#23 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=509: sxxxxx#23 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=509: sxxxxx#23 nsp=1 mass=-500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=510: oxxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=510: oxxxxx#23 nsp=1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=510: oxxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=510: oxxxxx#23 nsp=1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=510: oxxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=510: oxxxxx#23 nsp=1 mass=500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=511: oxxxxx#23 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=511: oxxxxx#23 nsp=1 mass=-500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=511: oxxxxx#23 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=511: oxxxxx#23 nsp=1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=511: oxxxxx#23 nsp=1 mass=-500 + -0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=511: oxxxxx#23 nsp=1 mass=-500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=512: ixxxxx#24 nsp=1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=512: ixxxxx#24 nsp=1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=512: ixxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=512: ixxxxx#24 nsp=1 mass=400 + 2.828427124746190e+01, 0.000000000000000e+00, // itest=512: ixxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=512: ixxxxx#24 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=513: ixxxxx#24 nsp=1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=513: ixxxxx#24 nsp=1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=513: ixxxxx#24 nsp=1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=513: ixxxxx#24 nsp=1 mass=-400 + 2.828427124746190e+01, 0.000000000000000e+00, // itest=513: ixxxxx#24 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=513: ixxxxx#24 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=514: vxxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=514: vxxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=514: vxxxxx#24 nsp=1 mass=400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=514: vxxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=514: vxxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=514: vxxxxx#24 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=515: vxxxxx#24 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=515: vxxxxx#24 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=515: vxxxxx#24 nsp=1 mass=-400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=515: vxxxxx#24 nsp=1 mass=-400 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=515: vxxxxx#24 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=515: vxxxxx#24 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=516: sxxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=516: sxxxxx#24 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=516: sxxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=516: sxxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=516: sxxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=516: sxxxxx#24 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=517: sxxxxx#24 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=517: sxxxxx#24 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=517: sxxxxx#24 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=517: sxxxxx#24 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=517: sxxxxx#24 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=517: sxxxxx#24 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=518: oxxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=518: oxxxxx#24 nsp=1 mass=400 + 2.828427124746190e+01, 0.000000000000000e+00, // itest=518: oxxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=518: oxxxxx#24 nsp=1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=518: oxxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=518: oxxxxx#24 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=519: oxxxxx#24 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=519: oxxxxx#24 nsp=1 mass=-400 + 2.828427124746190e+01, 0.000000000000000e+00, // itest=519: oxxxxx#24 nsp=1 mass=-400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=519: oxxxxx#24 nsp=1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=519: oxxxxx#24 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=519: oxxxxx#24 nsp=1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=520: ixxxxx#25 nsp=1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=520: ixxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=520: ixxxxx#25 nsp=1 mass=400 + -1.414213562373095e+01, 0.000000000000000e+00, // itest=520: ixxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=520: ixxxxx#25 nsp=1 mass=400 + -2.828427124746190e+01, 0.000000000000000e+00 } ); // itest=520: ixxxxx#25 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=521: ixxxxx#25 nsp=1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=521: ixxxxx#25 nsp=1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=521: ixxxxx#25 nsp=1 mass=-400 + 1.414213562373095e+01, -0.000000000000000e+00, // itest=521: ixxxxx#25 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=521: ixxxxx#25 nsp=1 mass=-400 + -2.828427124746190e+01, 0.000000000000000e+00 } ); // itest=521: ixxxxx#25 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=522: vxxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=522: vxxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=522: vxxxxx#25 nsp=1 mass=400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=522: vxxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=522: vxxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=522: vxxxxx#25 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=523: vxxxxx#25 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=523: vxxxxx#25 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=523: vxxxxx#25 nsp=1 mass=-400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=523: vxxxxx#25 nsp=1 mass=-400 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=523: vxxxxx#25 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=523: vxxxxx#25 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=524: sxxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=524: sxxxxx#25 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=524: sxxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=524: sxxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=524: sxxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=524: sxxxxx#25 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=525: sxxxxx#25 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=525: sxxxxx#25 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=525: sxxxxx#25 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=525: sxxxxx#25 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=525: sxxxxx#25 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=525: sxxxxx#25 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=526: oxxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=526: oxxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=526: oxxxxx#25 nsp=1 mass=400 + -2.828427124746190e+01, 0.000000000000000e+00, // itest=526: oxxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=526: oxxxxx#25 nsp=1 mass=400 + -1.414213562373095e+01, 0.000000000000000e+00 } ); // itest=526: oxxxxx#25 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=527: oxxxxx#25 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=527: oxxxxx#25 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=527: oxxxxx#25 nsp=1 mass=-400 + -2.828427124746190e+01, 0.000000000000000e+00, // itest=527: oxxxxx#25 nsp=1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=527: oxxxxx#25 nsp=1 mass=-400 + 1.414213562373095e+01, -0.000000000000000e+00 } ); // itest=527: oxxxxx#25 nsp=1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=528: ixxxxx#26 nsp=1 mass=400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=528: ixxxxx#26 nsp=1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=528: ixxxxx#26 nsp=1 mass=400 + 5.999999999999999e+00, 7.999999999999999e+00, // itest=528: ixxxxx#26 nsp=1 mass=400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=528: ixxxxx#26 nsp=1 mass=400 + 1.200000000000000e+01, 1.600000000000000e+01 } ); // itest=528: ixxxxx#26 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=529: ixxxxx#26 nsp=1 mass=-400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=529: ixxxxx#26 nsp=1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00, // itest=529: ixxxxx#26 nsp=1 mass=-400 + -5.999999999999999e+00, -7.999999999999999e+00, // itest=529: ixxxxx#26 nsp=1 mass=-400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=529: ixxxxx#26 nsp=1 mass=-400 + 1.200000000000000e+01, 1.600000000000000e+01 } ); // itest=529: ixxxxx#26 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=530: vxxxxx#26 nsp=1 mass=400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=530: vxxxxx#26 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=530: vxxxxx#26 nsp=1 mass=400 + 0.000000000000000e+00, -5.656854249492381e-01, // itest=530: vxxxxx#26 nsp=1 mass=400 + 0.000000000000000e+00, 4.242640687119285e-01, // itest=530: vxxxxx#26 nsp=1 mass=400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=530: vxxxxx#26 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=531: vxxxxx#26 nsp=1 mass=-400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=531: vxxxxx#26 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=531: vxxxxx#26 nsp=1 mass=-400 + -0.000000000000000e+00, -5.656854249492381e-01, // itest=531: vxxxxx#26 nsp=1 mass=-400 + -0.000000000000000e+00, 4.242640687119285e-01, // itest=531: vxxxxx#26 nsp=1 mass=-400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=531: vxxxxx#26 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=532: sxxxxx#26 nsp=1 mass=400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=532: sxxxxx#26 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=532: sxxxxx#26 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=532: sxxxxx#26 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=532: sxxxxx#26 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=532: sxxxxx#26 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=533: sxxxxx#26 nsp=1 mass=-400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=533: sxxxxx#26 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=533: sxxxxx#26 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=533: sxxxxx#26 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=533: sxxxxx#26 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=533: sxxxxx#26 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=534: oxxxxx#26 nsp=1 mass=400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=534: oxxxxx#26 nsp=1 mass=400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=534: oxxxxx#26 nsp=1 mass=400 + 1.200000000000000e+01, -1.600000000000000e+01, // itest=534: oxxxxx#26 nsp=1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=534: oxxxxx#26 nsp=1 mass=400 + 5.999999999999999e+00, -7.999999999999999e+00 } ); // itest=534: oxxxxx#26 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=535: oxxxxx#26 nsp=1 mass=-400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=535: oxxxxx#26 nsp=1 mass=-400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=535: oxxxxx#26 nsp=1 mass=-400 + 1.200000000000000e+01, -1.600000000000000e+01, // itest=535: oxxxxx#26 nsp=1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00, // itest=535: oxxxxx#26 nsp=1 mass=-400 + -5.999999999999999e+00, 7.999999999999999e+00 } ); // itest=535: oxxxxx#26 nsp=1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=536: ixxxxx#27 nsp=1 mass=400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=536: ixxxxx#27 nsp=1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=536: ixxxxx#27 nsp=1 mass=400 + -7.999999999999999e+00, -5.999999999999999e+00, // itest=536: ixxxxx#27 nsp=1 mass=400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=536: ixxxxx#27 nsp=1 mass=400 + -1.600000000000000e+01, -1.200000000000000e+01 } ); // itest=536: ixxxxx#27 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=537: ixxxxx#27 nsp=1 mass=-400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=537: ixxxxx#27 nsp=1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00, // itest=537: ixxxxx#27 nsp=1 mass=-400 + 7.999999999999999e+00, 5.999999999999999e+00, // itest=537: ixxxxx#27 nsp=1 mass=-400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=537: ixxxxx#27 nsp=1 mass=-400 + -1.600000000000000e+01, -1.200000000000000e+01 } ); // itest=537: ixxxxx#27 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=538: vxxxxx#27 nsp=1 mass=400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=538: vxxxxx#27 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=538: vxxxxx#27 nsp=1 mass=400 + 0.000000000000000e+00, 4.242640687119285e-01, // itest=538: vxxxxx#27 nsp=1 mass=400 + 0.000000000000000e+00, -5.656854249492381e-01, // itest=538: vxxxxx#27 nsp=1 mass=400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=538: vxxxxx#27 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=539: vxxxxx#27 nsp=1 mass=-400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=539: vxxxxx#27 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=539: vxxxxx#27 nsp=1 mass=-400 + 0.000000000000000e+00, 4.242640687119285e-01, // itest=539: vxxxxx#27 nsp=1 mass=-400 + 0.000000000000000e+00, -5.656854249492381e-01, // itest=539: vxxxxx#27 nsp=1 mass=-400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=539: vxxxxx#27 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=540: sxxxxx#27 nsp=1 mass=400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=540: sxxxxx#27 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=540: sxxxxx#27 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=540: sxxxxx#27 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=540: sxxxxx#27 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=540: sxxxxx#27 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=541: sxxxxx#27 nsp=1 mass=-400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=541: sxxxxx#27 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=541: sxxxxx#27 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=541: sxxxxx#27 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=541: sxxxxx#27 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=541: sxxxxx#27 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=542: oxxxxx#27 nsp=1 mass=400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=542: oxxxxx#27 nsp=1 mass=400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=542: oxxxxx#27 nsp=1 mass=400 + -1.600000000000000e+01, 1.200000000000000e+01, // itest=542: oxxxxx#27 nsp=1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=542: oxxxxx#27 nsp=1 mass=400 + -7.999999999999999e+00, 5.999999999999999e+00 } ); // itest=542: oxxxxx#27 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=543: oxxxxx#27 nsp=1 mass=-400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=543: oxxxxx#27 nsp=1 mass=-400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=543: oxxxxx#27 nsp=1 mass=-400 + -1.600000000000000e+01, 1.200000000000000e+01, // itest=543: oxxxxx#27 nsp=1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00, // itest=543: oxxxxx#27 nsp=1 mass=-400 + 7.999999999999999e+00, -5.999999999999999e+00 } ); // itest=543: oxxxxx#27 nsp=1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=544: ixxxxx#28 nsp=1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=544: ixxxxx#28 nsp=1 mass=400 + 1.216552506059644e+01, 0.000000000000000e+00, // itest=544: ixxxxx#28 nsp=1 mass=400 + 4.931969619160719e+00, 5.260767593771432e+00, // itest=544: ixxxxx#28 nsp=1 mass=400 + 2.433105012119288e+01, 0.000000000000000e+00, // itest=544: ixxxxx#28 nsp=1 mass=400 + 9.863939238321439e+00, 1.052153518754287e+01 } ); // itest=544: ixxxxx#28 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=545: ixxxxx#28 nsp=1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=545: ixxxxx#28 nsp=1 mass=-400 + -1.216552506059644e+01, -0.000000000000000e+00, // itest=545: ixxxxx#28 nsp=1 mass=-400 + -4.931969619160719e+00, -5.260767593771432e+00, // itest=545: ixxxxx#28 nsp=1 mass=-400 + 2.433105012119288e+01, 0.000000000000000e+00, // itest=545: ixxxxx#28 nsp=1 mass=-400 + 9.863939238321439e+00, 1.052153518754287e+01 } ); // itest=545: ixxxxx#28 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=546: vxxxxx#28 nsp=1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=546: vxxxxx#28 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=546: vxxxxx#28 nsp=1 mass=400 + -2.321373168788980e-01, -5.158607041753289e-01, // itest=546: vxxxxx#28 nsp=1 mass=400 + -2.476131380041579e-01, 4.836194101643708e-01, // itest=546: vxxxxx#28 nsp=1 mass=400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=546: vxxxxx#28 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=547: vxxxxx#28 nsp=1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=547: vxxxxx#28 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=547: vxxxxx#28 nsp=1 mass=-400 + -2.321373168788980e-01, -5.158607041753289e-01, // itest=547: vxxxxx#28 nsp=1 mass=-400 + -2.476131380041579e-01, 4.836194101643708e-01, // itest=547: vxxxxx#28 nsp=1 mass=-400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=547: vxxxxx#28 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=548: sxxxxx#28 nsp=1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=548: sxxxxx#28 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=548: sxxxxx#28 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=548: sxxxxx#28 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=548: sxxxxx#28 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=548: sxxxxx#28 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=549: sxxxxx#28 nsp=1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=549: sxxxxx#28 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=549: sxxxxx#28 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=549: sxxxxx#28 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=549: sxxxxx#28 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=549: sxxxxx#28 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=550: oxxxxx#28 nsp=1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=550: oxxxxx#28 nsp=1 mass=400 + 2.433105012119288e+01, 0.000000000000000e+00, // itest=550: oxxxxx#28 nsp=1 mass=400 + 9.863939238321439e+00, -1.052153518754287e+01, // itest=550: oxxxxx#28 nsp=1 mass=400 + 1.216552506059644e+01, 0.000000000000000e+00, // itest=550: oxxxxx#28 nsp=1 mass=400 + 4.931969619160719e+00, -5.260767593771432e+00 } ); // itest=550: oxxxxx#28 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=551: oxxxxx#28 nsp=1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=551: oxxxxx#28 nsp=1 mass=-400 + 2.433105012119288e+01, 0.000000000000000e+00, // itest=551: oxxxxx#28 nsp=1 mass=-400 + 9.863939238321439e+00, -1.052153518754287e+01, // itest=551: oxxxxx#28 nsp=1 mass=-400 + -1.216552506059644e+01, -0.000000000000000e+00, // itest=551: oxxxxx#28 nsp=1 mass=-400 + -4.931969619160719e+00, 5.260767593771432e+00 } ); // itest=551: oxxxxx#28 nsp=1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=552: ixxxxx#29 nsp=1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=552: ixxxxx#29 nsp=1 mass=400 + 7.211102550927978e+00, 0.000000000000000e+00, // itest=552: ixxxxx#29 nsp=1 mass=400 + 8.320502943378436e+00, 8.875203139603666e+00, // itest=552: ixxxxx#29 nsp=1 mass=400 + 1.442220510185596e+01, 0.000000000000000e+00, // itest=552: ixxxxx#29 nsp=1 mass=400 + 1.664100588675688e+01, 1.775040627920733e+01 } ); // itest=552: ixxxxx#29 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=553: ixxxxx#29 nsp=1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=553: ixxxxx#29 nsp=1 mass=-400 + -7.211102550927978e+00, -0.000000000000000e+00, // itest=553: ixxxxx#29 nsp=1 mass=-400 + -8.320502943378436e+00, -8.875203139603666e+00, // itest=553: ixxxxx#29 nsp=1 mass=-400 + 1.442220510185596e+01, 0.000000000000000e+00, // itest=553: ixxxxx#29 nsp=1 mass=-400 + 1.664100588675688e+01, 1.775040627920733e+01 } ); // itest=553: ixxxxx#29 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=554: vxxxxx#29 nsp=1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=554: vxxxxx#29 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=554: vxxxxx#29 nsp=1 mass=400 + 2.321373168788980e-01, -5.158607041753289e-01, // itest=554: vxxxxx#29 nsp=1 mass=400 + 2.476131380041579e-01, 4.836194101643708e-01, // itest=554: vxxxxx#29 nsp=1 mass=400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=554: vxxxxx#29 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=555: vxxxxx#29 nsp=1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=555: vxxxxx#29 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=555: vxxxxx#29 nsp=1 mass=-400 + 2.321373168788980e-01, -5.158607041753289e-01, // itest=555: vxxxxx#29 nsp=1 mass=-400 + 2.476131380041579e-01, 4.836194101643708e-01, // itest=555: vxxxxx#29 nsp=1 mass=-400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=555: vxxxxx#29 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=556: sxxxxx#29 nsp=1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=556: sxxxxx#29 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=556: sxxxxx#29 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=556: sxxxxx#29 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=556: sxxxxx#29 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=556: sxxxxx#29 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=557: sxxxxx#29 nsp=1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=557: sxxxxx#29 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=557: sxxxxx#29 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=557: sxxxxx#29 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=557: sxxxxx#29 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=557: sxxxxx#29 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=558: oxxxxx#29 nsp=1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=558: oxxxxx#29 nsp=1 mass=400 + 1.442220510185596e+01, 0.000000000000000e+00, // itest=558: oxxxxx#29 nsp=1 mass=400 + 1.664100588675688e+01, -1.775040627920733e+01, // itest=558: oxxxxx#29 nsp=1 mass=400 + 7.211102550927978e+00, 0.000000000000000e+00, // itest=558: oxxxxx#29 nsp=1 mass=400 + 8.320502943378436e+00, -8.875203139603666e+00 } ); // itest=558: oxxxxx#29 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=559: oxxxxx#29 nsp=1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=559: oxxxxx#29 nsp=1 mass=-400 + 1.442220510185596e+01, 0.000000000000000e+00, // itest=559: oxxxxx#29 nsp=1 mass=-400 + 1.664100588675688e+01, -1.775040627920733e+01, // itest=559: oxxxxx#29 nsp=1 mass=-400 + -7.211102550927978e+00, -0.000000000000000e+00, // itest=559: oxxxxx#29 nsp=1 mass=-400 + -8.320502943378436e+00, 8.875203139603666e+00 } ); // itest=559: oxxxxx#29 nsp=1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=560: ixxxxx#30 nsp=1 mass=500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=560: ixxxxx#30 nsp=1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=560: ixxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=560: ixxxxx#30 nsp=1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=560: ixxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=560: ixxxxx#30 nsp=1 mass=500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=561: ixxxxx#30 nsp=1 mass=-500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=561: ixxxxx#30 nsp=1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=561: ixxxxx#30 nsp=1 mass=-500 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=561: ixxxxx#30 nsp=1 mass=-500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=561: ixxxxx#30 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=561: ixxxxx#30 nsp=1 mass=-500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=562: vxxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=562: vxxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=562: vxxxxx#30 nsp=1 mass=500 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=562: vxxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=562: vxxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=562: vxxxxx#30 nsp=1 mass=500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=563: vxxxxx#30 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=563: vxxxxx#30 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=563: vxxxxx#30 nsp=1 mass=-500 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=563: vxxxxx#30 nsp=1 mass=-500 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=563: vxxxxx#30 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=563: vxxxxx#30 nsp=1 mass=-500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=564: sxxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=564: sxxxxx#30 nsp=1 mass=500 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=564: sxxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=564: sxxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=564: sxxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=564: sxxxxx#30 nsp=1 mass=500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=565: sxxxxx#30 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=565: sxxxxx#30 nsp=1 mass=-500 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=565: sxxxxx#30 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=565: sxxxxx#30 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=565: sxxxxx#30 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=565: sxxxxx#30 nsp=1 mass=-500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=566: oxxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=566: oxxxxx#30 nsp=1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=566: oxxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=566: oxxxxx#30 nsp=1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=566: oxxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=566: oxxxxx#30 nsp=1 mass=500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=567: oxxxxx#30 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=567: oxxxxx#30 nsp=1 mass=-500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=567: oxxxxx#30 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=567: oxxxxx#30 nsp=1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=567: oxxxxx#30 nsp=1 mass=-500 + -0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=567: oxxxxx#30 nsp=1 mass=-500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=568: ixxxxx#31 nsp=1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=568: ixxxxx#31 nsp=1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=568: ixxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=568: ixxxxx#31 nsp=1 mass=400 + 2.828427124746190e+01, 0.000000000000000e+00, // itest=568: ixxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=568: ixxxxx#31 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=569: ixxxxx#31 nsp=1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=569: ixxxxx#31 nsp=1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=569: ixxxxx#31 nsp=1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=569: ixxxxx#31 nsp=1 mass=-400 + 2.828427124746190e+01, 0.000000000000000e+00, // itest=569: ixxxxx#31 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=569: ixxxxx#31 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=570: vxxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=570: vxxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=570: vxxxxx#31 nsp=1 mass=400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=570: vxxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=570: vxxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=570: vxxxxx#31 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=571: vxxxxx#31 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=571: vxxxxx#31 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=571: vxxxxx#31 nsp=1 mass=-400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=571: vxxxxx#31 nsp=1 mass=-400 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=571: vxxxxx#31 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=571: vxxxxx#31 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=572: sxxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=572: sxxxxx#31 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=572: sxxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=572: sxxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=572: sxxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=572: sxxxxx#31 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=573: sxxxxx#31 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=573: sxxxxx#31 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=573: sxxxxx#31 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=573: sxxxxx#31 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=573: sxxxxx#31 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=573: sxxxxx#31 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=574: oxxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=574: oxxxxx#31 nsp=1 mass=400 + 2.828427124746190e+01, 0.000000000000000e+00, // itest=574: oxxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=574: oxxxxx#31 nsp=1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=574: oxxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=574: oxxxxx#31 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=575: oxxxxx#31 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=575: oxxxxx#31 nsp=1 mass=-400 + 2.828427124746190e+01, 0.000000000000000e+00, // itest=575: oxxxxx#31 nsp=1 mass=-400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=575: oxxxxx#31 nsp=1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=575: oxxxxx#31 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=575: oxxxxx#31 nsp=1 mass=-400 diff --git a/epochX/cudacpp/gq_ttq.sa/src/HelAmps_sm.h b/epochX/cudacpp/gq_ttq.sa/src/HelAmps_sm.h index e15ce959e9..2e914de002 100644 --- a/epochX/cudacpp/gq_ttq.sa/src/HelAmps_sm.h +++ b/epochX/cudacpp/gq_ttq.sa/src/HelAmps_sm.h @@ -1,3 +1,4 @@ +// Copyright (C) 2010 The ALOHA Development team and Contributors. // Copyright (C) 2010 The MadGraph5_aMC@NLO development team and contributors. // Created by: J. Alwall (Sep 2010) for the MG5aMC backend. //========================================================================== @@ -21,6 +22,7 @@ #include "Parameters_sm.h" +#include //#include //#include //#include @@ -190,6 +192,9 @@ namespace mg5amcCpu const int ipar ) // input: particle# out of npar { mgDebug( 0, __FUNCTION__ ); + // NEW IMPLEMENTATION FIXING FLOATING POINT EXCEPTIONS IN SIMD CODE (#701) + // Variables xxxDENOM are a hack to avoid division-by-0 FPE while preserving speed (#701 and #727) + // Variables xxxDENOM are declared as 'volatile' to make sure they are not optimized away on clang! (#724) const fptype_sv& pvec0 = M_ACCESS::kernelAccessIp4IparConst( momenta, 0, ipar ); const fptype_sv& pvec1 = M_ACCESS::kernelAccessIp4IparConst( momenta, 1, ipar ); const fptype_sv& pvec2 = M_ACCESS::kernelAccessIp4IparConst( momenta, 2, ipar ); @@ -201,6 +206,11 @@ namespace mg5amcCpu if( fmass != 0. ) { const fptype_sv pp = fpmin( pvec0, fpsqrt( pvec1 * pvec1 + pvec2 * pvec2 + pvec3 * pvec3 ) ); + // In C++ ixxxxx, use a single ip/im numbering that is valid both for pp==0 and pp>0, which have two numbering schemes in Fortran ixxxxx: + // for pp==0, Fortran sqm(0:1) has indexes 0,1 as in C++; but for Fortran pp>0, omega(2) has indexes 1,2 and not 0,1 + // NB: this is only possible in ixxxx, but in oxxxxx two different numbering schemes must be used + const int ip = ( 1 + nh ) / 2; // NB: same as in Fortran pp==0, differs from Fortran pp>0, which is (3+nh)/2 because omega(2) has indexes 1,2 + const int im = ( 1 - nh ) / 2; // NB: same as in Fortran pp==0, differs from Fortran pp>0, which is (3-nh)/2 because omega(2) has indexes 1,2 #ifndef MGONGPU_CPPSIMD if( pp == 0. ) { @@ -208,8 +218,6 @@ namespace mg5amcCpu fptype sqm[2] = { fpsqrt( std::abs( fmass ) ), 0. }; // possibility of negative fermion masses //sqm[1] = ( fmass < 0. ? -abs( sqm[0] ) : abs( sqm[0] ) ); // AV: why abs here? sqm[1] = ( fmass < 0. ? -sqm[0] : sqm[0] ); // AV: removed an abs here - const int ip = ( 1 + nh ) / 2; // NB: Fortran sqm(0:1) also has indexes 0,1 as in C++ - const int im = ( 1 - nh ) / 2; // NB: Fortran sqm(0:1) also has indexes 0,1 as in C++ fi[2] = cxmake( ip * sqm[ip], 0 ); fi[3] = cxmake( im * nsf * sqm[ip], 0 ); fi[4] = cxmake( ip * nsf * sqm[im], 0 ); @@ -221,8 +229,6 @@ namespace mg5amcCpu fptype( 1 + nsf - ( 1 - nsf ) * nh ) * (fptype)0.5 }; fptype omega[2] = { fpsqrt( pvec0 + pp ), 0. }; omega[1] = fmass / omega[0]; - const int ip = ( 1 + nh ) / 2; // NB: Fortran is (3+nh)/2 because omega(2) has indexes 1,2 and not 0,1 - const int im = ( 1 - nh ) / 2; // NB: Fortran is (3-nh)/2 because omega(2) has indexes 1,2 and not 0,1 const fptype sfomega[2] = { sf[0] * omega[ip], sf[1] * omega[im] }; const fptype pp3 = fpmax( pp + pvec3, 0. ); const cxtype chi[2] = { cxmake( fpsqrt( pp3 * (fptype)0.5 / pp ), 0. ), @@ -233,8 +239,6 @@ namespace mg5amcCpu fi[5] = sfomega[1] * chi[ip]; } #else - const int ip = ( 1 + nh ) / 2; - const int im = ( 1 - nh ) / 2; // Branch A: pp == 0. // NB: Do not use "abs" for floats! It returns an integer with no build warning! Use std::abs! fptype sqm[2] = { fpsqrt( std::abs( fmass ) ), 0 }; // possibility of negative fermion masses (NB: SCALAR!) @@ -250,10 +254,12 @@ namespace mg5amcCpu omega[1] = fmass / omega[0]; const fptype_v sfomega[2] = { sf[0] * omega[ip], sf[1] * omega[im] }; const fptype_v pp3 = fpmax( pp + pvec3, 0 ); - const cxtype_v chi[2] = { cxmake( fpsqrt( pp3 * 0.5 / pp ), 0 ), + volatile fptype_v ppDENOM = fpternary( pp != 0, pp, 1. ); // hack: ppDENOM[ieppV]=1 if pp[ieppV]==0 + volatile fptype_v pp3DENOM = fpternary( pp3 != 0, pp3, 1. ); // hack: pp3DENOM[ieppV]=1 if pp3[ieppV]==0 + const cxtype_v chi[2] = { cxmake( fpsqrt( pp3 * 0.5 / ppDENOM ), 0 ), // hack: dummy[ieppV] is not used if pp[ieppV]==0 cxternary( ( pp3 == 0. ), cxmake( -nh, 0 ), - cxmake( (fptype)nh * pvec1, pvec2 ) / fpsqrt( 2. * pp * pp3 ) ) }; + cxmake( (fptype)nh * pvec1, pvec2 ) / fpsqrt( 2. * ppDENOM * pp3DENOM ) ) }; // hack: dummy[ieppV] is not used if pp[ieppV]==0 const cxtype_v fiB_2 = sfomega[0] * chi[im]; const cxtype_v fiB_3 = sfomega[0] * chi[ip]; const cxtype_v fiB_4 = sfomega[1] * chi[im]; @@ -271,7 +277,16 @@ namespace mg5amcCpu const fptype_sv sqp0p3 = fpternary( ( pvec1 == 0. and pvec2 == 0. and pvec3 < 0. ), fptype_sv{ 0 }, fpsqrt( fpmax( pvec0 + pvec3, 0. ) ) * (fptype)nsf ); - const cxtype_sv chi[2] = { cxmake( sqp0p3, 0. ), cxternary( ( sqp0p3 == 0. ), cxmake( -(fptype)nhel * fpsqrt( 2. * pvec0 ), 0. ), cxmake( (fptype)nh * pvec1, pvec2 ) / sqp0p3 ) }; +#ifdef MGONGPU_CPPSIMD + volatile fptype_v sqp0p3DENOM = fpternary( sqp0p3 != 0, sqp0p3, 1. ); // hack: dummy sqp0p3DENOM[ieppV]=1 if sqp0p3[ieppV]==0 + cxtype_sv chi[2] = { cxmake( sqp0p3, 0. ), + cxternary( sqp0p3 == 0, + cxmake( -(fptype)nhel * fpsqrt( 2. * pvec0 ), 0. ), + cxmake( (fptype)nh * pvec1, pvec2 ) / (const fptype_v)sqp0p3DENOM ) }; // hack: dummy[ieppV] is not used if sqp0p3[ieppV]==0 +#else + const cxtype_sv chi[2] = { cxmake( sqp0p3, 0. ), + ( sqp0p3 == 0. ? cxmake( -(fptype)nhel * fpsqrt( 2. * pvec0 ), 0. ) : cxmake( (fptype)nh * pvec1, pvec2 ) / sqp0p3 ) }; +#endif if( nh == 1 ) { fi[2] = cxzero_sv(); @@ -422,6 +437,9 @@ namespace mg5amcCpu const int ipar ) // input: particle# out of npar { mgDebug( 0, __FUNCTION__ ); + // NEW IMPLEMENTATION FIXING FLOATING POINT EXCEPTIONS IN SIMD CODE (#701) + // Variables xxxDENOM are a hack to avoid division-by-0 FPE while preserving speed (#701 and #727) + // Variables xxxDENOM are declared as 'volatile' to make sure they are not optimized away on clang! (#724) const fptype_sv& pvec0 = M_ACCESS::kernelAccessIp4IparConst( momenta, 0, ipar ); const fptype_sv& pvec1 = M_ACCESS::kernelAccessIp4IparConst( momenta, 1, ipar ); const fptype_sv& pvec2 = M_ACCESS::kernelAccessIp4IparConst( momenta, 2, ipar ); @@ -472,13 +490,15 @@ namespace mg5amcCpu const cxtype vcA_4 = cxmake( 0, nsvahl * sqh ); const cxtype vcA_5 = cxmake( hel0, 0 ); // Branch B: pp != 0. - const fptype_v emp = pvec0 / ( vmass * pp ); + volatile fptype_v ppDENOM = fpternary( pp != 0, pp, 1. ); // hack: ppDENOM[ieppV]=1 if pp[ieppV]==0 + const fptype_v emp = pvec0 / ( vmass * ppDENOM ); // hack: dummy[ieppV] is not used if pp[ieppV]==0 const cxtype_v vcB_2 = cxmake( hel0 * pp / vmass, 0 ); - const cxtype_v vcB_5 = cxmake( hel0 * pvec3 * emp + hel * pt / pp * sqh, 0 ); + const cxtype_v vcB_5 = cxmake( hel0 * pvec3 * emp + hel * pt / ppDENOM * sqh, 0 ); // hack: dummy[ieppV] is not used if pp[ieppV]==0 // Branch B1: pp != 0. and pt != 0. - const fptype_v pzpt = pvec3 / ( pp * pt ) * sqh * hel; - const cxtype_v vcB1_3 = cxmake( hel0 * pvec1 * emp - pvec1 * pzpt, -(fptype)nsvahl * pvec2 / pt * sqh ); - const cxtype_v vcB1_4 = cxmake( hel0 * pvec2 * emp - pvec2 * pzpt, (fptype)nsvahl * pvec1 / pt * sqh ); + volatile fptype_v ptDENOM = fpternary( pt != 0, pt, 1. ); // hack: ptDENOM[ieppV]=1 if pt[ieppV]==0 + const fptype_v pzpt = pvec3 / ( ppDENOM * ptDENOM ) * sqh * hel; // hack: dummy[ieppV] is not used if pp[ieppV]==0 + const cxtype_v vcB1_3 = cxmake( hel0 * pvec1 * emp - pvec1 * pzpt, -(fptype)nsvahl * pvec2 / ptDENOM * sqh ); // hack: dummy[ieppV] is not used if pt[ieppV]==0 + const cxtype_v vcB1_4 = cxmake( hel0 * pvec2 * emp - pvec2 * pzpt, (fptype)nsvahl * pvec1 / ptDENOM * sqh ); // hack: dummy[ieppV] is not used if pt[ieppV]==0 // Branch B2: pp != 0. and pt == 0. const cxtype vcB2_3 = cxmake( -hel * sqh, 0. ); const cxtype_v vcB2_4 = cxmake( 0., (fptype)nsvahl * fpternary( ( pvec3 < 0 ), -sqh, sqh ) ); // AV: removed an abs here @@ -513,9 +533,10 @@ namespace mg5amcCpu } #else // Branch A: pt != 0. - const fptype_v pzpt = pvec3 / ( pp * pt ) * sqh * hel; - const cxtype_v vcA_3 = cxmake( -pvec1 * pzpt, -(fptype)nsv * pvec2 / pt * sqh ); - const cxtype_v vcA_4 = cxmake( -pvec2 * pzpt, (fptype)nsv * pvec1 / pt * sqh ); + volatile fptype_v ptDENOM = fpternary( pt != 0, pt, 1. ); // hack: ptDENOM[ieppV]=1 if pt[ieppV]==0 + const fptype_v pzpt = pvec3 / ( pp * ptDENOM ) * sqh * hel; // hack: dummy[ieppV] is not used if pt[ieppV]==0 + const cxtype_v vcA_3 = cxmake( -pvec1 * pzpt, -(fptype)nsv * pvec2 / ptDENOM * sqh ); // hack: dummy[ieppV] is not used if pt[ieppV]==0 + const cxtype_v vcA_4 = cxmake( -pvec2 * pzpt, (fptype)nsv * pvec1 / ptDENOM * sqh ); // hack: dummy[ieppV] is not used if pt[ieppV]==0 // Branch B: pt == 0. const cxtype vcB_3 = cxmake( -(fptype)hel * sqh, 0 ); const cxtype_v vcB_4 = cxmake( 0, (fptype)nsv * fpternary( ( pvec3 < 0 ), -sqh, sqh ) ); // AV: removed an abs here @@ -567,6 +588,9 @@ namespace mg5amcCpu const int ipar ) // input: particle# out of npar { mgDebug( 0, __FUNCTION__ ); + // NEW IMPLEMENTATION FIXING FLOATING POINT EXCEPTIONS IN SIMD CODE (#701) + // Variables xxxDENOM are a hack to avoid division-by-0 FPE while preserving speed (#701 and #727) + // Variables xxxDENOM are declared as 'volatile' to make sure they are not optimized away on clang! (#724) const fptype_sv& pvec0 = M_ACCESS::kernelAccessIp4IparConst( momenta, 0, ipar ); const fptype_sv& pvec1 = M_ACCESS::kernelAccessIp4IparConst( momenta, 1, ipar ); const fptype_sv& pvec2 = M_ACCESS::kernelAccessIp4IparConst( momenta, 2, ipar ); @@ -630,10 +654,12 @@ namespace mg5amcCpu const int imB = ( 1 - nh ) / 2; const fptype_v sfomeg[2] = { sf[0] * omega[ipB], sf[1] * omega[imB] }; const fptype_v pp3 = fpmax( pp + pvec3, 0. ); - const cxtype_v chi[2] = { cxmake( fpsqrt( pp3 * 0.5 / pp ), 0. ), + volatile fptype_v ppDENOM = fpternary( pp != 0, pp, 1. ); // hack: ppDENOM[ieppV]=1 if pp[ieppV]==0 + volatile fptype_v pp3DENOM = fpternary( pp3 != 0, pp3, 1. ); // hack: pp3DENOM[ieppV]=1 if pp3[ieppV]==0 + const cxtype_v chi[2] = { cxmake( fpsqrt( pp3 * 0.5 / ppDENOM ), 0. ), // hack: dummy[ieppV] is not used if pp[ieppV]==0 ( cxternary( ( pp3 == 0. ), cxmake( -nh, 0. ), - cxmake( (fptype)nh * pvec1, -pvec2 ) / fpsqrt( 2. * pp * pp3 ) ) ) }; + cxmake( (fptype)nh * pvec1, -pvec2 ) / fpsqrt( 2. * ppDENOM * pp3DENOM ) ) ) }; // hack: dummy[ieppV] is not used if pp[ieppV]==0 const cxtype_v foB_2 = sfomeg[1] * chi[imB]; const cxtype_v foB_3 = sfomeg[1] * chi[ipB]; const cxtype_v foB_4 = sfomeg[0] * chi[imB]; @@ -651,10 +677,16 @@ namespace mg5amcCpu const fptype_sv sqp0p3 = fpternary( ( pvec1 == 0. ) and ( pvec2 == 0. ) and ( pvec3 < 0. ), 0, fpsqrt( fpmax( pvec0 + pvec3, 0. ) ) * (fptype)nsf ); +#ifdef MGONGPU_CPPSIMD + volatile fptype_v sqp0p3DENOM = fpternary( sqp0p3 != 0, sqp0p3, 1. ); // hack: sqp0p3DENOM[ieppV]=1 if sqp0p3[ieppV]==0 + const cxtype_v chi[2] = { cxmake( sqp0p3, 0. ), + cxternary( ( sqp0p3 == 0. ), + cxmake( -nhel, 0. ) * fpsqrt( 2. * pvec0 ), + cxmake( (fptype)nh * pvec1, -pvec2 ) / (const fptype_sv)sqp0p3DENOM ) }; // hack: dummy[ieppV] is not used if sqp0p3[ieppV]==0 +#else const cxtype_sv chi[2] = { cxmake( sqp0p3, 0. ), - cxternary( ( sqp0p3 == 0. ), - cxmake( -nhel, 0. ) * fpsqrt( 2. * pvec0 ), - cxmake( (fptype)nh * pvec1, -pvec2 ) / sqp0p3 ) }; + ( sqp0p3 == 0. ? cxmake( -nhel, 0. ) * fpsqrt( 2. * pvec0 ) : cxmake( (fptype)nh * pvec1, -pvec2 ) / sqp0p3 ) }; +#endif if( nh == 1 ) { fo[2] = chi[0]; diff --git a/epochX/cudacpp/gq_ttq.sa/src/Parameters_sm.cc b/epochX/cudacpp/gq_ttq.sa/src/Parameters_sm.cc index 7255e49119..b9668e2a87 100644 --- a/epochX/cudacpp/gq_ttq.sa/src/Parameters_sm.cc +++ b/epochX/cudacpp/gq_ttq.sa/src/Parameters_sm.cc @@ -17,6 +17,12 @@ #include #include +#ifdef __CUDACC__ +using namespace mg5amcGpu; +#else +using namespace mg5amcCpu; +#endif + #ifndef MGONGPU_HARDCODE_PARAM // Initialize static instance diff --git a/epochX/cudacpp/gq_ttq.sa/src/Parameters_sm.h b/epochX/cudacpp/gq_ttq.sa/src/Parameters_sm.h index c935779eb3..69241c2b3b 100644 --- a/epochX/cudacpp/gq_ttq.sa/src/Parameters_sm.h +++ b/epochX/cudacpp/gq_ttq.sa/src/Parameters_sm.h @@ -26,188 +26,213 @@ #include "read_slha.h" -class Parameters_sm +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { -public: + class Parameters_sm + { + public: - static Parameters_sm* getInstance(); + static Parameters_sm* getInstance(); - // Define "zero" - double zero, ZERO; + // Define "zero" + double zero, ZERO; - // Model parameters independent of aS - //double aS; // now retrieved event-by-event (as G) from Fortran (running alphas #373) - double mdl_WH, mdl_WW, mdl_WZ, mdl_WT, mdl_ymtau, mdl_ymt, mdl_ymb, mdl_Gf, aEWM1, mdl_MH, mdl_MZ, mdl_MTA, mdl_MT, mdl_MB, mdl_conjg__CKM3x3, mdl_conjg__CKM1x1, mdl_CKM3x3, mdl_MZ__exp__2, mdl_MZ__exp__4, mdl_sqrt__2, mdl_MH__exp__2, mdl_aEW, mdl_MW, mdl_sqrt__aEW, mdl_ee, mdl_MW__exp__2, mdl_sw2, mdl_cw, mdl_sqrt__sw2, mdl_sw, mdl_g1, mdl_gw, mdl_vev, mdl_vev__exp__2, mdl_lam, mdl_yb, mdl_yt, mdl_ytau, mdl_muH, mdl_ee__exp__2, mdl_sw__exp__2, mdl_cw__exp__2; - cxsmpl mdl_complexi, mdl_I1x33, mdl_I2x33, mdl_I3x33, mdl_I4x33; + // Model parameters independent of aS + //double aS; // now retrieved event-by-event (as G) from Fortran (running alphas #373) + double mdl_WH, mdl_WW, mdl_WZ, mdl_WT, mdl_ymtau, mdl_ymt, mdl_ymb, mdl_Gf, aEWM1, mdl_MH, mdl_MZ, mdl_MTA, mdl_MT, mdl_MB, mdl_conjg__CKM3x3, mdl_conjg__CKM1x1, mdl_CKM3x3, mdl_MZ__exp__2, mdl_MZ__exp__4, mdl_sqrt__2, mdl_MH__exp__2, mdl_aEW, mdl_MW, mdl_sqrt__aEW, mdl_ee, mdl_MW__exp__2, mdl_sw2, mdl_cw, mdl_sqrt__sw2, mdl_sw, mdl_g1, mdl_gw, mdl_vev, mdl_vev__exp__2, mdl_lam, mdl_yb, mdl_yt, mdl_ytau, mdl_muH, mdl_ee__exp__2, mdl_sw__exp__2, mdl_cw__exp__2; + cxsmpl mdl_complexi, mdl_I1x33, mdl_I2x33, mdl_I3x33, mdl_I4x33; - // Model couplings independent of aS - // (none) + // Model couplings independent of aS + // (none) - // Model parameters dependent on aS - //double mdl_sqrt__aS, G, mdl_G__exp__2; // now computed event-by-event (running alphas #373) + // Model parameters dependent on aS + //double mdl_sqrt__aS, G, mdl_G__exp__2; // now computed event-by-event (running alphas #373) - // Model couplings dependent on aS - //cxsmpl GC_10, GC_11; // now computed event-by-event (running alphas #373) + // Model couplings dependent on aS + //cxsmpl GC_10, GC_11; // now computed event-by-event (running alphas #373) - // Set parameters that are unchanged during the run - void setIndependentParameters( SLHAReader& slha ); + // Set parameters that are unchanged during the run + void setIndependentParameters( SLHAReader& slha ); - // Set couplings that are unchanged during the run - void setIndependentCouplings(); + // Set couplings that are unchanged during the run + void setIndependentCouplings(); - // Set parameters that are changed event by event - //void setDependentParameters(); // now computed event-by-event (running alphas #373) + // Set parameters that are changed event by event + //void setDependentParameters(); // now computed event-by-event (running alphas #373) - // Set couplings that are changed event by event - //void setDependentCouplings(); // now computed event-by-event (running alphas #373) + // Set couplings that are changed event by event + //void setDependentCouplings(); // now computed event-by-event (running alphas #373) - // Print parameters that are unchanged during the run - void printIndependentParameters(); + // Print parameters that are unchanged during the run + void printIndependentParameters(); - // Print couplings that are unchanged during the run - void printIndependentCouplings(); + // Print couplings that are unchanged during the run + void printIndependentCouplings(); - // Print parameters that are changed event by event - //void printDependentParameters(); // now computed event-by-event (running alphas #373) + // Print parameters that are changed event by event + //void printDependentParameters(); // now computed event-by-event (running alphas #373) - // Print couplings that are changed event by event - //void printDependentCouplings(); // now computed event-by-event (running alphas #373) + // Print couplings that are changed event by event + //void printDependentCouplings(); // now computed event-by-event (running alphas #373) -private: + private: - static Parameters_sm* instance; -}; + static Parameters_sm* instance; + }; + +} // end namespace mg5amcGpu/mg5amcCpu #else #include #include -// Hardcoded constexpr physics parameters -namespace Parameters_sm // keep the same name rather than HardcodedParameters_sm for simplicity +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { - // Constexpr implementation of sqrt (see https://stackoverflow.com/a/34134071) - double constexpr sqrtNewtonRaphson( double x, double curr, double prev ) + // Hardcoded constexpr physics parameters + namespace Parameters_sm // keep the same name rather than HardcodedParameters_sm for simplicity { - return curr == prev ? curr : sqrtNewtonRaphson( x, 0.5 * ( curr + x / curr ), curr ); - } - double constexpr constexpr_sqrt( double x ) - { - return x >= 0 // && x < std::numeric_limits::infinity() // avoid -Wtautological-constant-compare warning in fast math - ? sqrtNewtonRaphson( x, x, 0 ) - : std::numeric_limits::quiet_NaN(); - } + // Constexpr implementation of sqrt (see https://stackoverflow.com/a/34134071) + double constexpr sqrtNewtonRaphson( double x, double curr, double prev ) + { + return curr == prev ? curr : sqrtNewtonRaphson( x, 0.5 * ( curr + x / curr ), curr ); + } + double constexpr constexpr_sqrt( double x ) + { + return x >= 0 // && x < std::numeric_limits::infinity() // avoid -Wtautological-constant-compare warning in fast math + ? sqrtNewtonRaphson( x, x, 0 ) + : std::numeric_limits::quiet_NaN(); + } - // Constexpr implementation of floor (see https://stackoverflow.com/a/66146159) - constexpr int constexpr_floor( double d ) - { - const int i = static_cast( d ); - return d < i ? i - 1 : i; - } + // Constexpr implementation of floor (see https://stackoverflow.com/a/66146159) + constexpr int constexpr_floor( double d ) + { + const int i = static_cast( d ); + return d < i ? i - 1 : i; + } - // Constexpr implementation of pow - constexpr double constexpr_pow( double base, double exp ) - { - // NB(1): this implementation of constexpr_pow requires exponent >= 0 - assert( exp >= 0 ); // NB would fail at compile time with "error: call to non-‘constexpr’ function ‘void __assert_fail'" - // NB(2): this implementation of constexpr_pow requires an integer exponent - const int iexp = constexpr_floor( exp ); - assert( static_cast( iexp ) == exp ); // NB would fail at compile time with "error: call to non-‘constexpr’ function ‘void __assert_fail'" - // Iterative implementation of pow if exp is a non negative integer - return iexp == 0 ? 1 : base * constexpr_pow( base, iexp - 1 ); + // Constexpr implementation of pow + constexpr double constexpr_pow( double base, double exp ) + { + // NB(1): this implementation of constexpr_pow requires exponent >= 0 + assert( exp >= 0 ); // NB would fail at compile time with "error: call to non-‘constexpr’ function ‘void __assert_fail'" + // NB(2): this implementation of constexpr_pow requires an integer exponent + const int iexp = constexpr_floor( exp ); + assert( static_cast( iexp ) == exp ); // NB would fail at compile time with "error: call to non-‘constexpr’ function ‘void __assert_fail'" + // Iterative implementation of pow if exp is a non negative integer + return iexp == 0 ? 1 : base * constexpr_pow( base, iexp - 1 ); + } + + // Model parameters independent of aS + constexpr double zero = 0; + constexpr double ZERO = 0; + constexpr double mdl_WH = 6.382339e-03; + constexpr double mdl_WW = 2.047600e+00; + constexpr double mdl_WZ = 2.441404e+00; + constexpr double mdl_WT = 1.491500e+00; + constexpr double mdl_ymtau = 1.777000e+00; + constexpr double mdl_ymt = 1.730000e+02; + constexpr double mdl_ymb = 4.700000e+00; + //constexpr double aS = 1.180000e-01; // now retrieved event-by-event (as G) from Fortran (running alphas #373) + constexpr double mdl_Gf = 1.166390e-05; + constexpr double aEWM1 = 1.325070e+02; + constexpr double mdl_MH = 1.250000e+02; + constexpr double mdl_MZ = 9.118800e+01; + constexpr double mdl_MTA = 1.777000e+00; + constexpr double mdl_MT = 1.730000e+02; + constexpr double mdl_MB = 4.700000e+00; + constexpr double mdl_conjg__CKM3x3 = 1.; + constexpr double mdl_conjg__CKM1x1 = 1.; + constexpr double mdl_CKM3x3 = 1.; + constexpr cxsmpl mdl_complexi = cxsmpl( 0., 1. ); + constexpr double mdl_MZ__exp__2 = ( ( mdl_MZ ) * ( mdl_MZ ) ); + constexpr double mdl_MZ__exp__4 = ( ( mdl_MZ ) * ( mdl_MZ ) * ( mdl_MZ ) * ( mdl_MZ ) ); + constexpr double mdl_sqrt__2 = constexpr_sqrt( 2. ); + constexpr double mdl_MH__exp__2 = ( ( mdl_MH ) * ( mdl_MH ) ); + constexpr double mdl_aEW = 1. / aEWM1; + constexpr double mdl_MW = constexpr_sqrt( mdl_MZ__exp__2 / 2. + constexpr_sqrt( mdl_MZ__exp__4 / 4. - ( mdl_aEW * M_PI * mdl_MZ__exp__2 ) / ( mdl_Gf * mdl_sqrt__2 ) ) ); + constexpr double mdl_sqrt__aEW = constexpr_sqrt( mdl_aEW ); + constexpr double mdl_ee = 2. * mdl_sqrt__aEW * constexpr_sqrt( M_PI ); + constexpr double mdl_MW__exp__2 = ( ( mdl_MW ) * ( mdl_MW ) ); + constexpr double mdl_sw2 = 1. - mdl_MW__exp__2 / mdl_MZ__exp__2; + constexpr double mdl_cw = constexpr_sqrt( 1. - mdl_sw2 ); + constexpr double mdl_sqrt__sw2 = constexpr_sqrt( mdl_sw2 ); + constexpr double mdl_sw = mdl_sqrt__sw2; + constexpr double mdl_g1 = mdl_ee / mdl_cw; + constexpr double mdl_gw = mdl_ee / mdl_sw; + constexpr double mdl_vev = ( 2. * mdl_MW * mdl_sw ) / mdl_ee; + constexpr double mdl_vev__exp__2 = ( ( mdl_vev ) * ( mdl_vev ) ); + constexpr double mdl_lam = mdl_MH__exp__2 / ( 2. * mdl_vev__exp__2 ); + constexpr double mdl_yb = ( mdl_ymb * mdl_sqrt__2 ) / mdl_vev; + constexpr double mdl_yt = ( mdl_ymt * mdl_sqrt__2 ) / mdl_vev; + constexpr double mdl_ytau = ( mdl_ymtau * mdl_sqrt__2 ) / mdl_vev; + constexpr double mdl_muH = constexpr_sqrt( mdl_lam * mdl_vev__exp__2 ); + constexpr cxsmpl mdl_I1x33 = mdl_yb * mdl_conjg__CKM3x3; + constexpr cxsmpl mdl_I2x33 = mdl_yt * mdl_conjg__CKM3x3; + constexpr cxsmpl mdl_I3x33 = mdl_CKM3x3 * mdl_yt; + constexpr cxsmpl mdl_I4x33 = mdl_CKM3x3 * mdl_yb; + constexpr double mdl_ee__exp__2 = ( ( mdl_ee ) * ( mdl_ee ) ); + constexpr double mdl_sw__exp__2 = ( ( mdl_sw ) * ( mdl_sw ) ); + constexpr double mdl_cw__exp__2 = ( ( mdl_cw ) * ( mdl_cw ) ); + + // Model couplings independent of aS + // (none) + + // Model parameters dependent on aS + //constexpr double mdl_sqrt__aS = //constexpr_sqrt( aS ); // now computed event-by-event (running alphas #373) + //constexpr double G = 2. * mdl_sqrt__aS * //constexpr_sqrt( M_PI ); // now computed event-by-event (running alphas #373) + //constexpr double mdl_G__exp__2 = ( ( G ) * ( G ) ); // now computed event-by-event (running alphas #373) + + // Model couplings dependent on aS + //constexpr cxsmpl GC_10 = -G; // now computed event-by-event (running alphas #373) + //constexpr cxsmpl GC_11 = mdl_complexi * G; // now computed event-by-event (running alphas #373) + + // Print parameters that are unchanged during the run + void printIndependentParameters(); + + // Print couplings that are unchanged during the run + void printIndependentCouplings(); + + // Print parameters that are changed event by event + //void printDependentParameters(); // now computed event-by-event (running alphas #373) + + // Print couplings that are changed event by event + //void printDependentCouplings(); // now computed event-by-event (running alphas #373) } - // Model parameters independent of aS - constexpr double zero = 0; - constexpr double ZERO = 0; - constexpr double mdl_WH = 6.382339e-03; - constexpr double mdl_WW = 2.047600e+00; - constexpr double mdl_WZ = 2.441404e+00; - constexpr double mdl_WT = 1.491500e+00; - constexpr double mdl_ymtau = 1.777000e+00; - constexpr double mdl_ymt = 1.730000e+02; - constexpr double mdl_ymb = 4.700000e+00; - //constexpr double aS = 1.180000e-01; // now retrieved event-by-event (as G) from Fortran (running alphas #373) - constexpr double mdl_Gf = 1.166390e-05; - constexpr double aEWM1 = 1.325070e+02; - constexpr double mdl_MH = 1.250000e+02; - constexpr double mdl_MZ = 9.118800e+01; - constexpr double mdl_MTA = 1.777000e+00; - constexpr double mdl_MT = 1.730000e+02; - constexpr double mdl_MB = 4.700000e+00; - constexpr double mdl_conjg__CKM3x3 = 1.; - constexpr double mdl_conjg__CKM1x1 = 1.; - constexpr double mdl_CKM3x3 = 1.; - constexpr cxsmpl mdl_complexi = cxsmpl( 0., 1. ); - constexpr double mdl_MZ__exp__2 = ( ( mdl_MZ ) * ( mdl_MZ ) ); - constexpr double mdl_MZ__exp__4 = ( ( mdl_MZ ) * ( mdl_MZ ) * ( mdl_MZ ) * ( mdl_MZ ) ); - constexpr double mdl_sqrt__2 = constexpr_sqrt( 2. ); - constexpr double mdl_MH__exp__2 = ( ( mdl_MH ) * ( mdl_MH ) ); - constexpr double mdl_aEW = 1. / aEWM1; - constexpr double mdl_MW = constexpr_sqrt( mdl_MZ__exp__2 / 2. + constexpr_sqrt( mdl_MZ__exp__4 / 4. - ( mdl_aEW * M_PI * mdl_MZ__exp__2 ) / ( mdl_Gf * mdl_sqrt__2 ) ) ); - constexpr double mdl_sqrt__aEW = constexpr_sqrt( mdl_aEW ); - constexpr double mdl_ee = 2. * mdl_sqrt__aEW * constexpr_sqrt( M_PI ); - constexpr double mdl_MW__exp__2 = ( ( mdl_MW ) * ( mdl_MW ) ); - constexpr double mdl_sw2 = 1. - mdl_MW__exp__2 / mdl_MZ__exp__2; - constexpr double mdl_cw = constexpr_sqrt( 1. - mdl_sw2 ); - constexpr double mdl_sqrt__sw2 = constexpr_sqrt( mdl_sw2 ); - constexpr double mdl_sw = mdl_sqrt__sw2; - constexpr double mdl_g1 = mdl_ee / mdl_cw; - constexpr double mdl_gw = mdl_ee / mdl_sw; - constexpr double mdl_vev = ( 2. * mdl_MW * mdl_sw ) / mdl_ee; - constexpr double mdl_vev__exp__2 = ( ( mdl_vev ) * ( mdl_vev ) ); - constexpr double mdl_lam = mdl_MH__exp__2 / ( 2. * mdl_vev__exp__2 ); - constexpr double mdl_yb = ( mdl_ymb * mdl_sqrt__2 ) / mdl_vev; - constexpr double mdl_yt = ( mdl_ymt * mdl_sqrt__2 ) / mdl_vev; - constexpr double mdl_ytau = ( mdl_ymtau * mdl_sqrt__2 ) / mdl_vev; - constexpr double mdl_muH = constexpr_sqrt( mdl_lam * mdl_vev__exp__2 ); - constexpr cxsmpl mdl_I1x33 = mdl_yb * mdl_conjg__CKM3x3; - constexpr cxsmpl mdl_I2x33 = mdl_yt * mdl_conjg__CKM3x3; - constexpr cxsmpl mdl_I3x33 = mdl_CKM3x3 * mdl_yt; - constexpr cxsmpl mdl_I4x33 = mdl_CKM3x3 * mdl_yb; - constexpr double mdl_ee__exp__2 = ( ( mdl_ee ) * ( mdl_ee ) ); - constexpr double mdl_sw__exp__2 = ( ( mdl_sw ) * ( mdl_sw ) ); - constexpr double mdl_cw__exp__2 = ( ( mdl_cw ) * ( mdl_cw ) ); - - // Model couplings independent of aS - // (none) - - // Model parameters dependent on aS - //constexpr double mdl_sqrt__aS = //constexpr_sqrt( aS ); // now computed event-by-event (running alphas #373) - //constexpr double G = 2. * mdl_sqrt__aS * //constexpr_sqrt( M_PI ); // now computed event-by-event (running alphas #373) - //constexpr double mdl_G__exp__2 = ( ( G ) * ( G ) ); // now computed event-by-event (running alphas #373) - - // Model couplings dependent on aS - //constexpr cxsmpl GC_10 = -G; // now computed event-by-event (running alphas #373) - //constexpr cxsmpl GC_11 = mdl_complexi * G; // now computed event-by-event (running alphas #373) - - // Print parameters that are unchanged during the run - void printIndependentParameters(); - - // Print couplings that are unchanged during the run - void printIndependentCouplings(); - - // Print parameters that are changed event by event - //void printDependentParameters(); // now computed event-by-event (running alphas #373) - - // Print couplings that are changed event by event - //void printDependentCouplings(); // now computed event-by-event (running alphas #373) -} +} // end namespace mg5amcGpu/mg5amcCpu #endif //========================================================================== -namespace Parameters_sm_dependentCouplings +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { - constexpr size_t ndcoup = 2; // #couplings that vary event by event because they depend on the running alphas QCD - constexpr size_t idcoup_GC_10 = 0; - constexpr size_t idcoup_GC_11 = 1; - struct DependentCouplings_sv + namespace Parameters_sm_dependentCouplings { - cxtype_sv GC_10; - cxtype_sv GC_11; - }; + constexpr size_t ndcoup = 2; // #couplings that vary event by event because they depend on the running alphas QCD + constexpr size_t idcoup_GC_10 = 0; + constexpr size_t idcoup_GC_11 = 1; + struct DependentCouplings_sv + { + cxtype_sv GC_10; + cxtype_sv GC_11; + }; #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wunused-variable" // e.g. <> #pragma GCC diagnostic ignored "-Wunused-parameter" // e.g. <> @@ -215,51 +240,45 @@ namespace Parameters_sm_dependentCouplings #pragma nv_diagnostic push #pragma nv_diag_suppress 177 // e.g. <> #endif - __host__ __device__ inline const DependentCouplings_sv computeDependentCouplings_fromG( const fptype_sv& G_sv ) - { + __host__ __device__ inline const DependentCouplings_sv computeDependentCouplings_fromG( const fptype_sv& G_sv ) + { #ifdef MGONGPU_HARDCODE_PARAM - using namespace Parameters_sm; + using namespace Parameters_sm; #endif - // NB: hardcode cxtype cI(0,1) instead of cxtype (or hardcoded cxsmpl) mdl_complexi (which exists in Parameters_sm) because: - // (1) mdl_complexi is always (0,1); (2) mdl_complexi is undefined in device code; (3) need cxsmpl conversion to cxtype in code below - const cxtype cI( 0., 1. ); - DependentCouplings_sv out; - // Begin SM implementation - no special handling of vectors of floats as in EFT (#439) - { - const fptype_sv& G = G_sv; - // Model parameters dependent on aS - //const fptype_sv mdl_sqrt__aS = constexpr_sqrt( aS ); - //const fptype_sv G = 2. * mdl_sqrt__aS * constexpr_sqrt( M_PI ); - const fptype_sv mdl_G__exp__2 = ( ( G ) * ( G ) ); - // Model couplings dependent on aS - out.GC_10 = -G; - out.GC_11 = cI * G; + // NB: hardcode cxtype cI(0,1) instead of cxtype (or hardcoded cxsmpl) mdl_complexi (which exists in Parameters_sm) because: + // (1) mdl_complexi is always (0,1); (2) mdl_complexi is undefined in device code; (3) need cxsmpl conversion to cxtype in code below + const cxtype cI( 0., 1. ); + DependentCouplings_sv out; + // Begin SM implementation - no special handling of vectors of floats as in EFT (#439) + { + const fptype_sv& G = G_sv; + // Model parameters dependent on aS + //const fptype_sv mdl_sqrt__aS = constexpr_sqrt( aS ); + //const fptype_sv G = 2. * mdl_sqrt__aS * constexpr_sqrt( M_PI ); + const fptype_sv mdl_G__exp__2 = ( ( G ) * ( G ) ); + // Model couplings dependent on aS + out.GC_10 = -G; + out.GC_11 = cI * G; + } + // End SM implementation - no special handling of vectors of floats as in EFT (#439) + return out; } - // End SM implementation - no special handling of vectors of floats as in EFT (#439) - return out; - } #ifdef __CUDACC__ #pragma GCC diagnostic pop #pragma nv_diagnostic pop #endif -} + } -//========================================================================== + //========================================================================== -namespace Parameters_sm_independentCouplings -{ - constexpr size_t nicoup = 0; // #couplings that are fixed for all events because they do not depend on the running alphas QCD - // NB: there are no aS-independent couplings in this physics process -} + namespace Parameters_sm_independentCouplings + { + constexpr size_t nicoup = 0; // #couplings that are fixed for all events because they do not depend on the running alphas QCD + // NB: there are no aS-independent couplings in this physics process + } -//========================================================================== + //========================================================================== -#ifdef __CUDACC__ -namespace mg5amcGpu -#else -namespace mg5amcCpu -#endif -{ #pragma GCC diagnostic push #ifndef __clang__ #pragma GCC diagnostic ignored "-Wunused-but-set-variable" // e.g. <> @@ -284,7 +303,8 @@ namespace mg5amcCpu return; } #pragma GCC diagnostic pop -} + +} // end namespace mg5amcGpu/mg5amcCpu //========================================================================== diff --git a/epochX/cudacpp/gq_ttq.sa/src/cudacpp_src.mk b/epochX/cudacpp/gq_ttq.sa/src/cudacpp_src.mk index 21b6d924ff..554d7a704c 100644 --- a/epochX/cudacpp/gq_ttq.sa/src/cudacpp_src.mk +++ b/epochX/cudacpp/gq_ttq.sa/src/cudacpp_src.mk @@ -38,7 +38,13 @@ endif #------------------------------------------------------------------------------- -#=== Configure ccache for CUDA and C++ builds +#=== Configure the CUDA compiler (note: NVCC is already exported including ccache) + +###$(info NVCC=$(NVCC)) + +#------------------------------------------------------------------------------- + +#=== Configure ccache for C++ builds (note: NVCC is already exported including ccache) # Enable ccache if USECCACHE=1 ifeq ($(USECCACHE)$(shell echo $(CXX) | grep ccache),1) @@ -47,11 +53,6 @@ endif #ifeq ($(USECCACHE)$(shell echo $(AR) | grep ccache),1) # override AR:=ccache $(AR) #endif -#ifneq ($(NVCC),) -# ifeq ($(USECCACHE)$(shell echo $(NVCC) | grep ccache),1) -# override NVCC:=ccache $(NVCC) -# endif -#endif #------------------------------------------------------------------------------- @@ -115,7 +116,9 @@ else ifneq ($(shell $(CXX) --version | grep ^nvc++),) # support nvc++ #531 $(error Unknown AVX='$(AVX)': only 'none', 'sse4', 'avx2', '512y' and '512z' are supported) endif else - ifeq ($(AVX),sse4) + ifeq ($(AVX),none) + override AVXFLAGS = -march=x86-64 # no SIMD (see #588) + else ifeq ($(AVX),sse4) override AVXFLAGS = -march=nehalem # SSE4.2 with 128 width (xmm registers) else ifeq ($(AVX),avx2) override AVXFLAGS = -march=haswell # AVX2 with 256 width (ymm registers) [DEFAULT for clang] @@ -216,7 +219,7 @@ MG5AMC_COMMONLIB = mg5amc_common all.$(TAG): $(BUILDDIR)/.build.$(TAG) $(LIBDIR)/.build.$(TAG) $(LIBDIR)/lib$(MG5AMC_COMMONLIB).so # Target (and build options): debug -debug: OPTFLAGS = -g -O0 -DDEBUG2 +debug: OPTFLAGS = -g -O0 debug: all.$(TAG) # Target: tag-specific build lockfiles @@ -237,17 +240,31 @@ $(LIBDIR)/.build.$(TAG): # Generic target and build rules: objects from C++ compilation $(BUILDDIR)/%.o : %.cc *.h $(BUILDDIR)/.build.$(TAG) - @if [ ! -d $(BUILDDIR) ]; then mkdir -p $(BUILDDIR); fi - $(CXX) $(CPPFLAGS) $(CXXFLAGS) -c $< -o $@ + @if [ ! -d $(BUILDDIR) ]; then echo "mkdir -p $(BUILDDIR)"; mkdir -p $(BUILDDIR); fi + $(CXX) $(CPPFLAGS) $(CXXFLAGS) -fPIC -c $< -o $@ + +# Generic target and build rules: objects from CUDA compilation +$(BUILDDIR)/%_cu.o : %.cc *.h $(BUILDDIR)/.build.$(TAG) + @if [ ! -d $(BUILDDIR) ]; then echo "mkdir -p $(BUILDDIR)"; mkdir -p $(BUILDDIR); fi + $(NVCC) $(CPPFLAGS) $(CUFLAGS) -Xcompiler -fPIC -c -x cu $< -o $@ #------------------------------------------------------------------------------- cxx_objects=$(addprefix $(BUILDDIR)/, Parameters_sm.o read_slha.o) +ifneq ($(NVCC),) +cu_objects=$(addprefix $(BUILDDIR)/, Parameters_sm_cu.o) +endif # Target (and build rules): common (src) library +ifneq ($(NVCC),) +$(LIBDIR)/lib$(MG5AMC_COMMONLIB).so : $(cxx_objects) $(cu_objects) + @if [ ! -d $(LIBDIR) ]; then echo "mkdir -p $(LIBDIR)"; mkdir -p $(LIBDIR); fi + $(NVCC) -shared -o $@ $(cxx_objects) $(cu_objects) +else $(LIBDIR)/lib$(MG5AMC_COMMONLIB).so : $(cxx_objects) @if [ ! -d $(LIBDIR) ]; then echo "mkdir -p $(LIBDIR)"; mkdir -p $(LIBDIR); fi - $(CXX) -shared -o$@ $(cxx_objects) + $(CXX) -shared -o $@ $(cxx_objects) +endif #------------------------------------------------------------------------------- diff --git a/epochX/cudacpp/gq_ttq.sa/src/mgOnGpuConfig.h b/epochX/cudacpp/gq_ttq.sa/src/mgOnGpuConfig.h index 6c0c4919e9..c0f067f1d8 100644 --- a/epochX/cudacpp/gq_ttq.sa/src/mgOnGpuConfig.h +++ b/epochX/cudacpp/gq_ttq.sa/src/mgOnGpuConfig.h @@ -98,6 +98,7 @@ #endif #endif +// NB: namespace mgOnGpu includes types which are defined in exactly the same way for CPU and GPU builds (see #318 and #725) namespace mgOnGpu { diff --git a/epochX/cudacpp/gq_ttq.sa/src/mgOnGpuCxtypes.h b/epochX/cudacpp/gq_ttq.sa/src/mgOnGpuCxtypes.h index 0cb2f1db7e..b56348bc58 100644 --- a/epochX/cudacpp/gq_ttq.sa/src/mgOnGpuCxtypes.h +++ b/epochX/cudacpp/gq_ttq.sa/src/mgOnGpuCxtypes.h @@ -43,8 +43,12 @@ // COMPLEX TYPES: SIMPLE COMPLEX CLASS (cxsmpl) //========================================================================== +// NB: namespace mgOnGpu includes types which are defined in exactly the same way for CPU and GPU builds (see #318 and #725) namespace mgOnGpu /* clang-format off */ { + // The number of floating point types in a complex type (real, imaginary) + constexpr int nx2 = 2; + // --- Type definition (simple complex type derived from cxtype_v) template class cxsmpl @@ -78,128 +82,139 @@ namespace mgOnGpu /* clang-format off */ using mgOnGpu::cxsmpl; // Printout to stream for user defined types -template -inline __host__ __device__ std::ostream& -operator<<( std::ostream& out, const cxsmpl& c ) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { - out << std::complex( c.real(), c.imag() ); - return out; -} + template + inline __host__ std::ostream& + operator<<( std::ostream& out, const cxsmpl& c ) + { + out << std::complex( c.real(), c.imag() ); + return out; + } -// Operators for cxsmpl -template -inline __host__ __device__ constexpr cxsmpl -operator+( const cxsmpl a ) -{ - return a; -} + // Operators for cxsmpl + template + inline __host__ __device__ constexpr cxsmpl + operator+( const cxsmpl a ) + { + return a; + } -template -inline __host__ __device__ constexpr cxsmpl -operator-( const cxsmpl& a ) -{ - return cxsmpl( -a.real(), -a.imag() ); -} + template + inline __host__ __device__ constexpr cxsmpl + operator-( const cxsmpl& a ) + { + return cxsmpl( -a.real(), -a.imag() ); + } -template -inline __host__ __device__ constexpr cxsmpl -operator+( const cxsmpl& a, const cxsmpl& b ) -{ - return cxsmpl( a.real() + b.real(), a.imag() + b.imag() ); -} + template + inline __host__ __device__ constexpr cxsmpl + operator+( const cxsmpl& a, const cxsmpl& b ) + { + return cxsmpl( a.real() + b.real(), a.imag() + b.imag() ); + } -template -inline __host__ __device__ constexpr cxsmpl -operator+( const FP& a, const cxsmpl& b ) -{ - return cxsmpl( a, 0 ) + b; -} + template + inline __host__ __device__ constexpr cxsmpl + operator+( const FP& a, const cxsmpl& b ) + { + return cxsmpl( a, 0 ) + b; + } -template -inline __host__ __device__ constexpr cxsmpl -operator-( const cxsmpl& a, const cxsmpl& b ) -{ - return cxsmpl( a.real() - b.real(), a.imag() - b.imag() ); -} + template + inline __host__ __device__ constexpr cxsmpl + operator-( const cxsmpl& a, const cxsmpl& b ) + { + return cxsmpl( a.real() - b.real(), a.imag() - b.imag() ); + } -template -inline __host__ __device__ constexpr cxsmpl -operator-( const FP& a, const cxsmpl& b ) -{ - return cxsmpl( a, 0 ) - b; -} + template + inline __host__ __device__ constexpr cxsmpl + operator-( const FP& a, const cxsmpl& b ) + { + return cxsmpl( a, 0 ) - b; + } -template -inline __host__ __device__ constexpr cxsmpl -operator*( const cxsmpl& a, const cxsmpl& b ) -{ - return cxsmpl( a.real() * b.real() - a.imag() * b.imag(), a.imag() * b.real() + a.real() * b.imag() ); -} + template + inline __host__ __device__ constexpr cxsmpl + operator*( const cxsmpl& a, const cxsmpl& b ) + { + return cxsmpl( a.real() * b.real() - a.imag() * b.imag(), a.imag() * b.real() + a.real() * b.imag() ); + } -template -inline __host__ __device__ constexpr cxsmpl -operator*( const FP& a, const cxsmpl& b ) -{ - return cxsmpl( a, 0 ) * b; -} + template + inline __host__ __device__ constexpr cxsmpl + operator*( const FP& a, const cxsmpl& b ) + { + return cxsmpl( a, 0 ) * b; + } -inline __host__ __device__ constexpr cxsmpl -operator*( const double& a, const cxsmpl& b ) -{ - return cxsmpl( a, 0 ) * b; -} + inline __host__ __device__ constexpr cxsmpl + operator*( const double& a, const cxsmpl& b ) + { + return cxsmpl( a, 0 ) * b; + } -template -inline __host__ __device__ constexpr cxsmpl -operator/( const cxsmpl& a, const cxsmpl& b ) -{ - FP bnorm = b.real() * b.real() + b.imag() * b.imag(); - return cxsmpl( ( a.real() * b.real() + a.imag() * b.imag() ) / bnorm, - ( a.imag() * b.real() - a.real() * b.imag() ) / bnorm ); -} + template + inline __host__ __device__ constexpr cxsmpl + operator/( const cxsmpl& a, const cxsmpl& b ) + { + FP bnorm = b.real() * b.real() + b.imag() * b.imag(); + return cxsmpl( ( a.real() * b.real() + a.imag() * b.imag() ) / bnorm, + ( a.imag() * b.real() - a.real() * b.imag() ) / bnorm ); + } -template -inline __host__ __device__ constexpr cxsmpl -operator/( const FP& a, const cxsmpl& b ) -{ - return cxsmpl( a, 0 ) / b; -} + template + inline __host__ __device__ constexpr cxsmpl + operator/( const FP& a, const cxsmpl& b ) + { + return cxsmpl( a, 0 ) / b; + } -template -inline __host__ __device__ constexpr cxsmpl -operator+( const cxsmpl& a, const FP& b ) -{ - return a + cxsmpl( b, 0 ); -} + template + inline __host__ __device__ constexpr cxsmpl + operator+( const cxsmpl& a, const FP& b ) + { + return a + cxsmpl( b, 0 ); + } -template -inline __host__ __device__ constexpr cxsmpl -operator-( const cxsmpl& a, const FP& b ) -{ - return a - cxsmpl( b, 0 ); -} + template + inline __host__ __device__ constexpr cxsmpl + operator-( const cxsmpl& a, const FP& b ) + { + return a - cxsmpl( b, 0 ); + } -template -inline __host__ __device__ constexpr cxsmpl -operator*( const cxsmpl& a, const FP& b ) -{ - return a * cxsmpl( b, 0 ); -} + template + inline __host__ __device__ constexpr cxsmpl + operator*( const cxsmpl& a, const FP& b ) + { + return a * cxsmpl( b, 0 ); + } -template -inline __host__ __device__ constexpr cxsmpl -operator/( const cxsmpl& a, const FP& b ) -{ - return a / cxsmpl( b, 0 ); + template + inline __host__ __device__ constexpr cxsmpl + operator/( const cxsmpl& a, const FP& b ) + { + return a / cxsmpl( b, 0 ); + } } //========================================================================== // COMPLEX TYPES: (PLATFORM-SPECIFIC) TYPEDEFS //========================================================================== -namespace mgOnGpu +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { - // --- Type definitions (complex type: cxtype) #ifdef __CUDACC__ // cuda #if defined MGONGPU_CUCXTYPE_THRUST @@ -221,390 +236,402 @@ namespace mgOnGpu #endif #endif - // The number of floating point types in a complex type (real, imaginary) - constexpr int nx2 = 2; - // SANITY CHECK: memory access may be based on casts of fptype[2] to cxtype (e.g. for wavefunctions) - static_assert( sizeof( cxtype ) == nx2 * sizeof( fptype ), "sizeof(cxtype) is not 2*sizeof(fptype)" ); + static_assert( sizeof( cxtype ) == mgOnGpu::nx2 * sizeof( fptype ), "sizeof(cxtype) is not 2*sizeof(fptype)" ); } -// Expose typedefs and operators outside the namespace -using mgOnGpu::cxtype; +// DANGEROUS! this was mixing different cxtype definitions for CPU and GPU builds (see #318 and #725) +// DO NOT expose typedefs and operators outside the namespace +//using mgOnGpu::cxtype; //========================================================================== // COMPLEX TYPES: (PLATFORM-SPECIFIC) FUNCTIONS AND OPERATORS //========================================================================== +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif +{ #if defined MGONGPU_CUCXTYPE_CXSMPL or defined MGONGPU_CPPCXTYPE_CXSMPL -//------------------------------ -// CUDA or C++ - using cxsmpl -//------------------------------ + //------------------------------ + // CUDA or C++ - using cxsmpl + //------------------------------ -inline __host__ __device__ cxtype -cxmake( const fptype& r, const fptype& i ) -{ - return cxtype( r, i ); // cxsmpl constructor -} + inline __host__ __device__ cxtype + cxmake( const fptype& r, const fptype& i ) + { + return cxtype( r, i ); // cxsmpl constructor + } -inline __host__ __device__ fptype -cxreal( const cxtype& c ) -{ - return c.real(); // cxsmpl::real() -} + inline __host__ __device__ fptype + cxreal( const cxtype& c ) + { + return c.real(); // cxsmpl::real() + } -inline __host__ __device__ fptype -cximag( const cxtype& c ) -{ - return c.imag(); // cxsmpl::imag() -} + inline __host__ __device__ fptype + cximag( const cxtype& c ) + { + return c.imag(); // cxsmpl::imag() + } -inline __host__ __device__ cxtype -cxconj( const cxtype& c ) -{ - return conj( c ); // conj( cxsmpl ) -} + inline __host__ __device__ cxtype + cxconj( const cxtype& c ) + { + return conj( c ); // conj( cxsmpl ) + } -inline __host__ cxtype // NOT __device__ -cxmake( const std::complex& c ) // std::complex to cxsmpl (float-to-float or float-to-double) -{ - return cxmake( c.real(), c.imag() ); -} + inline __host__ cxtype // NOT __device__ + cxmake( const std::complex& c ) // std::complex to cxsmpl (float-to-float or float-to-double) + { + return cxmake( c.real(), c.imag() ); + } -inline __host__ cxtype // NOT __device__ -cxmake( const std::complex& c ) // std::complex to cxsmpl (double-to-float or double-to-double) -{ - return cxmake( c.real(), c.imag() ); -} + inline __host__ cxtype // NOT __device__ + cxmake( const std::complex& c ) // std::complex to cxsmpl (double-to-float or double-to-double) + { + return cxmake( c.real(), c.imag() ); + } #endif // #if defined MGONGPU_CUCXTYPE_CXSMPL or defined MGONGPU_CPPCXTYPE_CXSMPL -//========================================================================== + //========================================================================== #if defined __CUDACC__ and defined MGONGPU_CUCXTYPE_THRUST // cuda + thrust -//------------------------------ -// CUDA - using thrust::complex -//------------------------------ + //------------------------------ + // CUDA - using thrust::complex + //------------------------------ -inline __host__ __device__ cxtype -cxmake( const fptype& r, const fptype& i ) -{ - return cxtype( r, i ); // thrust::complex constructor -} + inline __host__ __device__ cxtype + cxmake( const fptype& r, const fptype& i ) + { + return cxtype( r, i ); // thrust::complex constructor + } -inline __host__ __device__ fptype -cxreal( const cxtype& c ) -{ - return c.real(); // thrust::complex::real() -} + inline __host__ __device__ fptype + cxreal( const cxtype& c ) + { + return c.real(); // thrust::complex::real() + } -inline __host__ __device__ fptype -cximag( const cxtype& c ) -{ - return c.imag(); // thrust::complex::imag() -} + inline __host__ __device__ fptype + cximag( const cxtype& c ) + { + return c.imag(); // thrust::complex::imag() + } -inline __host__ __device__ cxtype -cxconj( const cxtype& c ) -{ - return conj( c ); // conj( thrust::complex ) -} + inline __host__ __device__ cxtype + cxconj( const cxtype& c ) + { + return conj( c ); // conj( thrust::complex ) + } -inline __host__ __device__ const cxtype& -cxmake( const cxtype& c ) -{ - return c; -} + inline __host__ __device__ const cxtype& + cxmake( const cxtype& c ) + { + return c; + } #endif // #if defined __CUDACC__ and defined MGONGPU_CUCXTYPE_THRUST -//========================================================================== + //========================================================================== #if defined __CUDACC__ and defined MGONGPU_CUCXTYPE_CUCOMPLEX // cuda + cucomplex -//------------------------------ -// CUDA - using cuComplex -//------------------------------ + //------------------------------ + // CUDA - using cuComplex + //------------------------------ #if defined MGONGPU_FPTYPE_DOUBLE // cuda + cucomplex + double -//+++++++++++++++++++++++++ -// cuDoubleComplex ONLY -//+++++++++++++++++++++++++ + //+++++++++++++++++++++++++ + // cuDoubleComplex ONLY + //+++++++++++++++++++++++++ -inline __host__ __device__ cxtype -cxmake( const fptype& r, const fptype& i ) -{ - return make_cuDoubleComplex( r, i ); -} + inline __host__ __device__ cxtype + cxmake( const fptype& r, const fptype& i ) + { + return make_cuDoubleComplex( r, i ); + } -inline __host__ __device__ fptype -cxreal( const cxtype& c ) -{ - return cuCreal( c ); // returns by value -} + inline __host__ __device__ fptype + cxreal( const cxtype& c ) + { + return cuCreal( c ); // returns by value + } -inline __host__ __device__ fptype -cximag( const cxtype& c ) -{ - return cuCimag( c ); // returns by value -} + inline __host__ __device__ fptype + cximag( const cxtype& c ) + { + return cuCimag( c ); // returns by value + } -inline __host__ __device__ cxtype -operator+( const cxtype& a, const cxtype& b ) -{ - return cuCadd( a, b ); -} + inline __host__ __device__ cxtype + operator+( const cxtype& a, const cxtype& b ) + { + return cuCadd( a, b ); + } -inline __host__ __device__ cxtype& -operator+=( cxtype& a, const cxtype& b ) -{ - a = cuCadd( a, b ); - return a; -} + inline __host__ __device__ cxtype& + operator+=( cxtype& a, const cxtype& b ) + { + a = cuCadd( a, b ); + return a; + } -inline __host__ __device__ cxtype -operator-( const cxtype& a, const cxtype& b ) -{ - return cuCsub( a, b ); -} + inline __host__ __device__ cxtype + operator-( const cxtype& a, const cxtype& b ) + { + return cuCsub( a, b ); + } -inline __host__ __device__ cxtype& -operator-=( cxtype& a, const cxtype& b ) -{ - a = cuCsub( a, b ); - return a; -} + inline __host__ __device__ cxtype& + operator-=( cxtype& a, const cxtype& b ) + { + a = cuCsub( a, b ); + return a; + } -inline __host__ __device__ cxtype -operator*( const cxtype& a, const cxtype& b ) -{ - return cuCmul( a, b ); -} + inline __host__ __device__ cxtype + operator*( const cxtype& a, const cxtype& b ) + { + return cuCmul( a, b ); + } -inline __host__ __device__ cxtype -operator/( const cxtype& a, const cxtype& b ) -{ - return cuCdiv( a, b ); -} + inline __host__ __device__ cxtype + operator/( const cxtype& a, const cxtype& b ) + { + return cuCdiv( a, b ); + } #elif defined MGONGPU_FPTYPE_FLOAT // cuda + cucomplex + float -//+++++++++++++++++++++++++ -// cuFloatComplex ONLY -//+++++++++++++++++++++++++ + //+++++++++++++++++++++++++ + // cuFloatComplex ONLY + //+++++++++++++++++++++++++ -inline __host__ __device__ cxtype -cxmake( const fptype& r, const fptype& i ) -{ - return make_cuFloatComplex( r, i ); -} + inline __host__ __device__ cxtype + cxmake( const fptype& r, const fptype& i ) + { + return make_cuFloatComplex( r, i ); + } -inline __host__ __device__ fptype -cxreal( const cxtype& c ) -{ - return cuCrealf( c ); // returns by value -} + inline __host__ __device__ fptype + cxreal( const cxtype& c ) + { + return cuCrealf( c ); // returns by value + } -inline __host__ __device__ fptype -cximag( const cxtype& c ) -{ - return cuCimagf( c ); // returns by value -} + inline __host__ __device__ fptype + cximag( const cxtype& c ) + { + return cuCimagf( c ); // returns by value + } -inline __host__ __device__ cxtype -operator+( const cxtype& a, const cxtype& b ) -{ - return cuCaddf( a, b ); -} + inline __host__ __device__ cxtype + operator+( const cxtype& a, const cxtype& b ) + { + return cuCaddf( a, b ); + } -inline __host__ __device__ cxtype& -operator+=( cxtype& a, const cxtype& b ) -{ - a = cuCaddf( a, b ); - return a; -} + inline __host__ __device__ cxtype& + operator+=( cxtype& a, const cxtype& b ) + { + a = cuCaddf( a, b ); + return a; + } -inline __host__ __device__ cxtype -operator-( const cxtype& a, const cxtype& b ) -{ - return cuCsubf( a, b ); -} + inline __host__ __device__ cxtype + operator-( const cxtype& a, const cxtype& b ) + { + return cuCsubf( a, b ); + } -inline __host__ __device__ cxtype& -operator-=( cxtype& a, const cxtype& b ) -{ - a = cuCsubf( a, b ); - return a; -} + inline __host__ __device__ cxtype& + operator-=( cxtype& a, const cxtype& b ) + { + a = cuCsubf( a, b ); + return a; + } -inline __host__ __device__ cxtype -operator*( const cxtype& a, const cxtype& b ) -{ - return cuCmulf( a, b ); -} + inline __host__ __device__ cxtype + operator*( const cxtype& a, const cxtype& b ) + { + return cuCmulf( a, b ); + } -inline __host__ __device__ cxtype -operator/( const cxtype& a, const cxtype& b ) -{ - return cuCdivf( a, b ); -} + inline __host__ __device__ cxtype + operator/( const cxtype& a, const cxtype& b ) + { + return cuCdivf( a, b ); + } -inline __host__ cxtype // NOT __device__ -cxmake( const std::complex& c ) // std::complex to cucomplex (cast double-to-float) -{ - return cxmake( (fptype)c.real(), (fptype)c.imag() ); -} + inline __host__ cxtype // NOT __device__ + cxmake( const std::complex& c ) // std::complex to cucomplex (cast double-to-float) + { + return cxmake( (fptype)c.real(), (fptype)c.imag() ); + } #endif -//+++++++++++++++++++++++++ -// cuDoubleComplex OR -// cuFloatComplex -//+++++++++++++++++++++++++ + //+++++++++++++++++++++++++ + // cuDoubleComplex OR + // cuFloatComplex + //+++++++++++++++++++++++++ -inline __host__ __device__ cxtype -operator+( const cxtype a ) -{ - return a; -} + inline __host__ __device__ cxtype + operator+( const cxtype a ) + { + return a; + } -inline __host__ __device__ cxtype -operator-( const cxtype& a ) -{ - return cxmake( -cxreal( a ), -cximag( a ) ); -} + inline __host__ __device__ cxtype + operator-( const cxtype& a ) + { + return cxmake( -cxreal( a ), -cximag( a ) ); + } -inline __host__ __device__ cxtype -operator+( const fptype& a, const cxtype& b ) -{ - return cxmake( a, 0 ) + b; -} + inline __host__ __device__ cxtype + operator+( const fptype& a, const cxtype& b ) + { + return cxmake( a, 0 ) + b; + } -inline __host__ __device__ cxtype -operator-( const fptype& a, const cxtype& b ) -{ - return cxmake( a, 0 ) - b; -} + inline __host__ __device__ cxtype + operator-( const fptype& a, const cxtype& b ) + { + return cxmake( a, 0 ) - b; + } -inline __host__ __device__ cxtype -operator*( const fptype& a, const cxtype& b ) -{ - return cxmake( a, 0 ) * b; -} + inline __host__ __device__ cxtype + operator*( const fptype& a, const cxtype& b ) + { + return cxmake( a, 0 ) * b; + } -inline __host__ __device__ cxtype -operator/( const fptype& a, const cxtype& b ) -{ - return cxmake( a, 0 ) / b; -} + inline __host__ __device__ cxtype + operator/( const fptype& a, const cxtype& b ) + { + return cxmake( a, 0 ) / b; + } -inline __host__ __device__ cxtype -operator+( const cxtype& a, const fptype& b ) -{ - return a + cxmake( b, 0 ); -} + inline __host__ __device__ cxtype + operator+( const cxtype& a, const fptype& b ) + { + return a + cxmake( b, 0 ); + } -inline __host__ __device__ cxtype -operator-( const cxtype& a, const fptype& b ) -{ - return a - cxmake( b, 0 ); -} + inline __host__ __device__ cxtype + operator-( const cxtype& a, const fptype& b ) + { + return a - cxmake( b, 0 ); + } -inline __host__ __device__ cxtype -operator*( const cxtype& a, const fptype& b ) -{ - return a * cxmake( b, 0 ); -} + inline __host__ __device__ cxtype + operator*( const cxtype& a, const fptype& b ) + { + return a * cxmake( b, 0 ); + } -inline __host__ __device__ cxtype -operator/( const cxtype& a, const fptype& b ) -{ - return a / cxmake( b, 0 ); -} + inline __host__ __device__ cxtype + operator/( const cxtype& a, const fptype& b ) + { + return a / cxmake( b, 0 ); + } -inline __host__ __device__ cxtype -cxconj( const cxtype& c ) -{ - return cxmake( cxreal( c ), -cximag( c ) ); -} + inline __host__ __device__ cxtype + cxconj( const cxtype& c ) + { + return cxmake( cxreal( c ), -cximag( c ) ); + } -inline __host__ cxtype // NOT __device__ -cxmake( const std::complex& c ) // std::complex to cucomplex (float-to-float or double-to-double) -{ - return cxmake( c.real(), c.imag() ); -} + inline __host__ cxtype // NOT __device__ + cxmake( const std::complex& c ) // std::complex to cucomplex (float-to-float or double-to-double) + { + return cxmake( c.real(), c.imag() ); + } #endif // #if defined __CUDACC__ and defined MGONGPU_CUCXTYPE_CUCOMPLEX -//========================================================================== + //========================================================================== #if not defined __CUDACC__ and defined MGONGPU_CPPCXTYPE_STDCOMPLEX // c++ + stdcomplex -//------------------------------ -// C++ - using std::complex -//------------------------------ + //------------------------------ + // C++ - using std::complex + //------------------------------ -inline cxtype -cxmake( const fptype& r, const fptype& i ) -{ - return cxtype( r, i ); // std::complex constructor -} + inline cxtype + cxmake( const fptype& r, const fptype& i ) + { + return cxtype( r, i ); // std::complex constructor + } -inline fptype -cxreal( const cxtype& c ) -{ - return c.real(); // std::complex::real() -} + inline fptype + cxreal( const cxtype& c ) + { + return c.real(); // std::complex::real() + } -inline fptype -cximag( const cxtype& c ) -{ - return c.imag(); // std::complex::imag() -} + inline fptype + cximag( const cxtype& c ) + { + return c.imag(); // std::complex::imag() + } -inline cxtype -cxconj( const cxtype& c ) -{ - return conj( c ); // conj( std::complex ) -} + inline cxtype + cxconj( const cxtype& c ) + { + return conj( c ); // conj( std::complex ) + } -inline const cxtype& -cxmake( const cxtype& c ) // std::complex to std::complex (float-to-float or double-to-double) -{ - return c; -} + inline const cxtype& + cxmake( const cxtype& c ) // std::complex to std::complex (float-to-float or double-to-double) + { + return c; + } #if defined MGONGPU_FPTYPE_FLOAT -inline cxtype -cxmake( const std::complex& c ) // std::complex to std::complex (cast double-to-float) -{ - return cxmake( (fptype)c.real(), (fptype)c.imag() ); -} + inline cxtype + cxmake( const std::complex& c ) // std::complex to std::complex (cast double-to-float) + { + return cxmake( (fptype)c.real(), (fptype)c.imag() ); + } #endif #endif // #if not defined __CUDACC__ and defined MGONGPU_CPPCXTYPE_STDCOMPLEX -//========================================================================== + //========================================================================== -inline __host__ __device__ const cxtype -cxmake( const cxsmpl& c ) // cxsmpl to cxtype (float-to-float or float-to-double) -{ - return cxmake( c.real(), c.imag() ); -} + inline __host__ __device__ const cxtype + cxmake( const cxsmpl& c ) // cxsmpl to cxtype (float-to-float or float-to-double) + { + return cxmake( c.real(), c.imag() ); + } -inline __host__ __device__ const cxtype -cxmake( const cxsmpl& c ) // cxsmpl to cxtype (double-to-float or double-to-double) -{ - return cxmake( c.real(), c.imag() ); -} + inline __host__ __device__ const cxtype + cxmake( const cxsmpl& c ) // cxsmpl to cxtype (double-to-float or double-to-double) + { + return cxmake( c.real(), c.imag() ); + } + +} // end namespace mg5amcGpu/mg5amcCpu //========================================================================== // COMPLEX TYPES: WRAPPER OVER RI FLOATING POINT PAIR (cxtype_ref) //========================================================================== -namespace mgOnGpu /* clang-format off */ +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { // The cxtype_ref class (a non-const reference to two fp variables) was originally designed for cxtype_v::operator[] // It used to be included in the code only when MGONGPU_HAS_CPPCXTYPEV_BRK (originally MGONGPU_HAS_CPPCXTYPE_REF) is defined @@ -615,23 +642,30 @@ namespace mgOnGpu /* clang-format off */ cxtype_ref() = delete; cxtype_ref( const cxtype_ref& ) = delete; cxtype_ref( cxtype_ref&& ) = default; // copy refs - __host__ __device__ cxtype_ref( fptype& r, fptype& i ) : m_preal( &r ), m_pimag( &i ) {} // copy refs + __host__ __device__ cxtype_ref( fptype& r, fptype& i ) + : m_preal( &r ), m_pimag( &i ) {} // copy refs cxtype_ref& operator=( const cxtype_ref& ) = delete; //__host__ __device__ cxtype_ref& operator=( cxtype_ref&& c ) {...} // REMOVED! Should copy refs or copy values? No longer needed in cxternary - __host__ __device__ cxtype_ref& operator=( const cxtype& c ) { *m_preal = cxreal( c ); *m_pimag = cximag( c ); return *this; } // copy values + __host__ __device__ cxtype_ref& operator=( const cxtype& c ) + { + *m_preal = cxreal( c ); + *m_pimag = cximag( c ); + return *this; + } // copy values __host__ __device__ operator cxtype() const { return cxmake( *m_preal, *m_pimag ); } private: fptype *m_preal, *m_pimag; // RI }; -} /* clang-format on */ -// Printout to stream for user defined types -inline __host__ __device__ std::ostream& -operator<<( std::ostream& out, const mgOnGpu::cxtype_ref& c ) -{ - out << (cxtype)c; - return out; -} + // Printout to stream for user defined types + inline __host__ __device__ std::ostream& + operator<<( std::ostream& out, const cxtype_ref& c ) + { + out << (cxtype)c; + return out; + } + +} // end namespace mg5amcGpu/mg5amcCpu //========================================================================== diff --git a/epochX/cudacpp/gq_ttq.sa/src/mgOnGpuFptypes.h b/epochX/cudacpp/gq_ttq.sa/src/mgOnGpuFptypes.h index a1cde16a67..905c97d700 100644 --- a/epochX/cudacpp/gq_ttq.sa/src/mgOnGpuFptypes.h +++ b/epochX/cudacpp/gq_ttq.sa/src/mgOnGpuFptypes.h @@ -11,82 +11,91 @@ #include #include -//========================================================================== - -#ifdef __CUDACC__ // cuda - -//------------------------------ -// Floating point types - Cuda -//------------------------------ - -/* -inline __host__ __device__ fptype -fpmax( const fptype& a, const fptype& b ) -{ - return max( a, b ); -} - -inline __host__ __device__ fptype -fpmin( const fptype& a, const fptype& b ) -{ - return min( a, b ); -} -*/ - -inline __host__ __device__ const fptype& -fpmax( const fptype& a, const fptype& b ) +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { - return ( ( b < a ) ? a : b ); -} + //========================================================================== -inline __host__ __device__ const fptype& -fpmin( const fptype& a, const fptype& b ) -{ - return ( ( a < b ) ? a : b ); -} +#ifdef __CUDACC__ // cuda -inline __host__ __device__ fptype -fpsqrt( const fptype& f ) -{ + //------------------------------ + // Floating point types - Cuda + //------------------------------ + + /* + inline __host__ __device__ fptype + fpmax( const fptype& a, const fptype& b ) + { + return max( a, b ); + } + + inline __host__ __device__ fptype + fpmin( const fptype& a, const fptype& b ) + { + return min( a, b ); + } + */ + + inline __host__ __device__ const fptype& + fpmax( const fptype& a, const fptype& b ) + { + return ( ( b < a ) ? a : b ); + } + + inline __host__ __device__ const fptype& + fpmin( const fptype& a, const fptype& b ) + { + return ( ( a < b ) ? a : b ); + } + + inline __host__ __device__ fptype + fpsqrt( const fptype& f ) + { #if defined MGONGPU_FPTYPE_FLOAT - // See https://docs.nvidia.com/cuda/cuda-math-api/group__CUDA__MATH__SINGLE.html - return sqrtf( f ); + // See https://docs.nvidia.com/cuda/cuda-math-api/group__CUDA__MATH__SINGLE.html + return sqrtf( f ); #else - // See https://docs.nvidia.com/cuda/cuda-math-api/group__CUDA__MATH__DOUBLE.html - return sqrt( f ); + // See https://docs.nvidia.com/cuda/cuda-math-api/group__CUDA__MATH__DOUBLE.html + return sqrt( f ); #endif -} + } #endif // #ifdef __CUDACC__ -//========================================================================== + //========================================================================== #ifndef __CUDACC__ -//------------------------------ -// Floating point types - C++ -//------------------------------ + //------------------------------ + // Floating point types - C++ + //------------------------------ -inline const fptype& -fpmax( const fptype& a, const fptype& b ) -{ - return std::max( a, b ); -} + inline const fptype& + fpmax( const fptype& a, const fptype& b ) + { + return std::max( a, b ); + } -inline const fptype& -fpmin( const fptype& a, const fptype& b ) -{ - return std::min( a, b ); -} + inline const fptype& + fpmin( const fptype& a, const fptype& b ) + { + return std::min( a, b ); + } -inline fptype -fpsqrt( const fptype& f ) -{ - return std::sqrt( f ); -} + inline fptype + fpsqrt( const fptype& f ) + { + return std::sqrt( f ); + } #endif // #ifndef __CUDACC__ -//========================================================================== + //========================================================================== + +} // end namespace mg5amcGpu/mg5amcCpu #endif // MGONGPUFPTYPES_H diff --git a/epochX/cudacpp/gq_ttq.sa/src/mgOnGpuVectors.h b/epochX/cudacpp/gq_ttq.sa/src/mgOnGpuVectors.h index 9d3e82b1e3..0d3892d026 100644 --- a/epochX/cudacpp/gq_ttq.sa/src/mgOnGpuVectors.h +++ b/epochX/cudacpp/gq_ttq.sa/src/mgOnGpuVectors.h @@ -31,7 +31,12 @@ //#undef MGONGPU_HAS_CPPCXTYPEV_BRK // gcc test (very slightly slower? issue #172) #endif -namespace mgOnGpu /* clang-format off */ +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { #ifdef MGONGPU_CPPSIMD @@ -72,22 +77,40 @@ namespace mgOnGpu /* clang-format off */ public: // Array initialization: zero-out as "{0}" (C and C++) or as "{}" (C++ only) // See https://en.cppreference.com/w/c/language/array_initialization#Notes - cxtype_v() : m_real{ 0 }, m_imag{ 0 } {} // RRRR=0000 IIII=0000 + cxtype_v() + : m_real{ 0 }, m_imag{ 0 } {} // RRRR=0000 IIII=0000 cxtype_v( const cxtype_v& ) = default; cxtype_v( cxtype_v&& ) = default; - cxtype_v( const fptype_v& r, const fptype_v& i ) : m_real( r ), m_imag( i ) {} - cxtype_v( const fptype_v& r ) : m_real( r ), m_imag{ 0 } {} // IIII=0000 + cxtype_v( const fptype_v& r, const fptype_v& i ) + : m_real( r ), m_imag( i ) {} + cxtype_v( const fptype_v& r ) + : m_real( r ), m_imag{ 0 } {} // IIII=0000 + cxtype_v( const fptype& r ) + : m_real( fptype_v{} + r ), m_imag{ 0 } {} // IIII=0000 cxtype_v& operator=( const cxtype_v& ) = default; cxtype_v& operator=( cxtype_v&& ) = default; - cxtype_v& operator+=( const cxtype_v& c ) { m_real += c.real(); m_imag += c.imag(); return *this; } - cxtype_v& operator-=( const cxtype_v& c ) { m_real -= c.real(); m_imag -= c.imag(); return *this; } + cxtype_v& operator+=( const cxtype_v& c ) + { + m_real += c.real(); + m_imag += c.imag(); + return *this; + } + cxtype_v& operator-=( const cxtype_v& c ) + { + m_real -= c.real(); + m_imag -= c.imag(); + return *this; + } #ifdef MGONGPU_HAS_CPPCXTYPEV_BRK // NB: THIS IS THE FUNDAMENTAL DIFFERENCE BETWEEN MGONGPU_HAS_CPPCXTYPEV_BRK DEFINED AND NOT DEFINED // NB: the alternative "clang" implementation is simpler: it simply does not have any bracket operator[] // NB: ** do NOT implement operator[] to return a value: it does not fail the build (why?) and gives unexpected results! ** cxtype_ref operator[]( size_t i ) const { return cxtype_ref( m_real[i], m_imag[i] ); } #endif - const fptype_v& real() const { return m_real; } + const fptype_v& real() const + { + return m_real; + } const fptype_v& imag() const { return m_imag; } private: fptype_v m_real, m_imag; // RRRRIIII @@ -98,7 +121,7 @@ namespace mgOnGpu /* clang-format off */ #if defined MGONGPU_FPTYPE_DOUBLE typedef long int bool_v __attribute__( ( ext_vector_type( neppV ) ) ); // bbbb #elif defined MGONGPU_FPTYPE_FLOAT - typedef int bool_v __attribute__( ( ext_vector_type( neppV ) ) ); // bbbb + typedef int bool_v __attribute__( ( ext_vector_type( neppV ) ) ); // bbbb #endif #else // gcc #if defined MGONGPU_FPTYPE_DOUBLE @@ -113,532 +136,551 @@ namespace mgOnGpu /* clang-format off */ const int neppV = 1; #endif // #ifdef MGONGPU_CPPSIMD - -} /* clang-format on */ +} //-------------------------------------------------------------------------- -// Expose typedefs outside the namespace -using mgOnGpu::neppV; -#ifdef MGONGPU_CPPSIMD -using mgOnGpu::fptype_v; -using mgOnGpu::fptype2_v; -using mgOnGpu::cxtype_v; -using mgOnGpu::bool_v; -#endif +// DANGEROUS! this was mixing different cxtype definitions for CPU and GPU builds (see #318 and #725) +// DO NOT expose typedefs outside the namespace +//using mgOnGpu::neppV; +//#ifdef MGONGPU_CPPSIMD +//using mgOnGpu::fptype_v; +//using mgOnGpu::fptype2_v; +//using mgOnGpu::cxtype_v; +//using mgOnGpu::bool_v; +//#endif -//-------------------------------------------------------------------------- +//========================================================================== +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif +{ #ifndef __CUDACC__ -// Printout to stream for user defined types + // Printout to stream for user defined types #ifndef MGONGPU_CPPCXTYPE_CXSMPL // operator<< for cxsmpl has already been defined! -inline std::ostream& -operator<<( std::ostream& out, const cxtype& c ) -{ - out << "[" << cxreal( c ) << "," << cximag( c ) << "]"; - //out << cxreal(c) << "+i" << cximag(c); - return out; -} + inline std::ostream& + operator<<( std::ostream& out, const cxtype& c ) + { + out << "[" << cxreal( c ) << "," << cximag( c ) << "]"; + //out << cxreal(c) << "+i" << cximag(c); + return out; + } #endif -/* + /* #ifdef MGONGPU_CPPSIMD -inline std::ostream& -operator<<( std::ostream& out, const bool_v& v ) -{ - out << "{ " << v[0]; - for ( int i=1; i h HIG<=1 HIW<=1 WEIGHTED<=2 @1 INFO: Process has 1 diagrams -1 processes with 1 diagrams generated in 0.003 s +1 processes with 1 diagrams generated in 0.004 s Total: 1 processes with 1 diagrams output standalone_cudacpp CODEGEN_cudacpp_heft_gg_h Load PLUGIN.CUDACPP_SA_OUTPUT @@ -143,35 +143,35 @@ INFO: Processing color information for process: g g > h HIG<=1 HIW<=1 @1 DEBUG: type(subproc_group)= [output.py at line 187]  DEBUG: type(fortran_model)= [output.py at line 188]  DEBUG: type(me)= me=0 [output.py at line 189]  -DEBUG: Entering PLUGIN_OneProcessExporter.__init__ [model_handling.py at line 1028]  -DEBUG: proc_id =  0 [model_handling.py at line 1034]  +DEBUG: Entering PLUGIN_OneProcessExporter.__init__ [model_handling.py at line 1039]  +DEBUG: proc_id =  0 [model_handling.py at line 1045]  INFO: Creating files in directory /data/avalassi/GPU2023/MG5aMC/ghav-mg5amcnlo/CODEGEN_cudacpp_heft_gg_h/SubProcesses/P1_Sigma_heft_gg_h -DEBUG: Entering PLUGIN_OneProcessExporter.generate_process_files [model_handling.py at line 1286]  -DEBUG: self.include_multi_channel is not yet defined: this is standalone_cudacpp mode [model_handling.py at line 1290]  +DEBUG: Entering PLUGIN_OneProcessExporter.generate_process_files [model_handling.py at line 1297]  +DEBUG: self.include_multi_channel is not yet defined: this is standalone_cudacpp mode [model_handling.py at line 1301]  FileWriter for /data/avalassi/GPU2023/MG5aMC/ghav-mg5amcnlo/CODEGEN_cudacpp_heft_gg_h/SubProcesses/P1_Sigma_heft_gg_h/./CPPProcess.h -DEBUG: Entering PLUGIN_OneProcessExporter.write_process_h_file [model_handling.py at line 1442]  +DEBUG: Entering PLUGIN_OneProcessExporter.write_process_h_file [model_handling.py at line 1453]  FileWriter for /data/avalassi/GPU2023/MG5aMC/ghav-mg5amcnlo/CODEGEN_cudacpp_heft_gg_h/SubProcesses/P1_Sigma_heft_gg_h/./CPPProcess.cc -DEBUG: Entering PLUGIN_OneProcessExporter.write_process_cc_file [model_handling.py at line 1464]  -DEBUG: Entering PLUGIN_OneProcessExporter.get_sigmaKin_lines [model_handling.py at line 1132]  -DEBUG: self.include_multi_channel =  False [model_handling.py at line 1133]  -DEBUG: self.support_multichannel =  True [model_handling.py at line 1134]  -DEBUG: type(self.helas_call_writer) =  [model_handling.py at line 1151]  -DEBUG: self.support_multichannel, self.include_multi_channel =  True False [model_handling.py at line 1152]  -DEBUG: multi_channel_map =  None [model_handling.py at line 1643]  -DEBUG: diag_to_config =  {} [model_handling.py at line 1698]  -DEBUG: call =  vxxxxx( momenta,m_pars->%s, cHel[ihel][%d],%+d, w_sv[%d], %d ); [model_handling.py at line 1810]  -DEBUG: ('ZERO', 0, -1, 0, 0) [model_handling.py at line 1811]  -DEBUG: call =  vxxxxx( momenta,m_pars->%s, cHel[ihel][%d],%+d, w_sv[%d], %d ); [model_handling.py at line 1810]  -DEBUG: ('ZERO', 1, -1, 1, 1) [model_handling.py at line 1811]  +DEBUG: Entering PLUGIN_OneProcessExporter.write_process_cc_file [model_handling.py at line 1475]  +DEBUG: Entering PLUGIN_OneProcessExporter.get_sigmaKin_lines [model_handling.py at line 1143]  +DEBUG: self.include_multi_channel =  False [model_handling.py at line 1144]  +DEBUG: self.support_multichannel =  True [model_handling.py at line 1145]  +DEBUG: type(self.helas_call_writer) =  [model_handling.py at line 1162]  +DEBUG: self.support_multichannel, self.include_multi_channel =  True False [model_handling.py at line 1163]  +DEBUG: multi_channel_map =  None [model_handling.py at line 1654]  +DEBUG: diag_to_config =  {} [model_handling.py at line 1709]  +DEBUG: call =  vxxxxx( momenta,m_pars->%s, cHel[ihel][%d],%+d, w_sv[%d], %d ); [model_handling.py at line 1821]  +DEBUG: ('ZERO', 0, -1, 0, 0) [model_handling.py at line 1822]  +DEBUG: call =  vxxxxx( momenta,m_pars->%s, cHel[ihel][%d],%+d, w_sv[%d], %d ); [model_handling.py at line 1821]  +DEBUG: ('ZERO', 1, -1, 1, 1) [model_handling.py at line 1822]  INFO: Created files CPPProcess.h and CPPProcess.cc in directory /data/avalassi/GPU2023/MG5aMC/ghav-mg5amcnlo/CODEGEN_cudacpp_heft_gg_h/SubProcesses/P1_Sigma_heft_gg_h/. -DEBUG: Entering PLUGIN_OneProcessExporter.edit_CMakeLists [model_handling.py at line 1332]  -DEBUG: Entering PLUGIN_OneProcessExporter.edit_check_sa [model_handling.py at line 1341]  -DEBUG: Entering PLUGIN_OneProcessExporter.edit_mgonGPU [model_handling.py at line 1358]  -DEBUG: Entering PLUGIN_OneProcessExporter.edit_processidfile [model_handling.py at line 1378]  -DEBUG: Entering PLUGIN_OneProcessExporter.edit_testxxx [model_handling.py at line 1408]  -DEBUG: Entering PLUGIN_OneProcessExporter.edit_memorybuffers [model_handling.py at line 1419]  -DEBUG: Entering PLUGIN_OneProcessExporter.edit_memoryaccesscouplings [model_handling.py at line 1430]  -DEBUG: 'Copying test reference file: ', template_ref =  Copying test reference file: /data/avalassi/GPU2023/MG5aMC/ghav-mg5amcnlo/PLUGIN/CUDACPP_SA_OUTPUT/madgraph/iolibs/template_files/../../../test/ref/dump_CPUTest.Sigma_heft_gg_h.txt [model_handling.py at line 1324]  +DEBUG: Entering PLUGIN_OneProcessExporter.edit_CMakeLists [model_handling.py at line 1343]  +DEBUG: Entering PLUGIN_OneProcessExporter.edit_check_sa [model_handling.py at line 1352]  +DEBUG: Entering PLUGIN_OneProcessExporter.edit_mgonGPU [model_handling.py at line 1369]  +DEBUG: Entering PLUGIN_OneProcessExporter.edit_processidfile [model_handling.py at line 1389]  +DEBUG: Entering PLUGIN_OneProcessExporter.edit_testxxx [model_handling.py at line 1419]  +DEBUG: Entering PLUGIN_OneProcessExporter.edit_memorybuffers [model_handling.py at line 1430]  +DEBUG: Entering PLUGIN_OneProcessExporter.edit_memoryaccesscouplings [model_handling.py at line 1441]  +DEBUG: 'Copying test reference file: ', template_ref =  Copying test reference file: /data/avalassi/GPU2023/MG5aMC/ghav-mg5amcnlo/PLUGIN/CUDACPP_SA_OUTPUT/madgraph/iolibs/template_files/../../../test/ref/dump_CPUTest.Sigma_heft_gg_h.txt [model_handling.py at line 1335]  Generated helas calls for 1 subprocesses (1 diagrams) in 0.002 s DEBUG: Entering PLUGIN_ProcessExporter.convert_model (create the model) [output.py at line 194]  ALOHA: aloha starts to compute helicity amplitudes @@ -181,25 +181,13 @@ ALOHA: aloha creates 1 routines in 0.053 s FileWriter for /data/avalassi/GPU2023/MG5aMC/ghav-mg5amcnlo/CODEGEN_cudacpp_heft_gg_h/src/./HelAmps_heft.h INFO: Created file HelAmps_heft.h in directory /data/avalassi/GPU2023/MG5aMC/ghav-mg5amcnlo/CODEGEN_cudacpp_heft_gg_h/src/. super_write_set_parameters_onlyfixMajorana (hardcoded=False) -DEBUG: 'pardef_lines size =', len(pardef_lines), ', keys size =', len(pardef_lines.keys()) =  pardef_lines size = 59 , keys size = 59 [model_handling.py at line 724]  -DEBUG: 'parset_pars size =', len(parset_pars) =  parset_pars size = 59 [model_handling.py at line 740]  -DEBUG: 'parset_lines size =', len(parset_lines), ', keys size =', len(parset_lines.keys()) =  parset_lines size = 59 , keys size = 59 [model_handling.py at line 741]  +DEBUG: 'pardef_lines size =', len(pardef_lines), ', keys size =', len(pardef_lines.keys()) =  pardef_lines size = 59 , keys size = 59 [model_handling.py at line 729]  super_write_set_parameters_onlyfixMajorana (hardcoded=True) -DEBUG: 'pardef_lines size =', len(pardef_lines), ', keys size =', len(pardef_lines.keys()) =  pardef_lines size = 5 , keys size = 5 [model_handling.py at line 724]  -DEBUG: 'parset_pars size =', len(parset_pars) =  parset_pars size = 5 [model_handling.py at line 740]  -DEBUG: 'parset_lines size =', len(parset_lines), ', keys size =', len(parset_lines.keys()) =  parset_lines size = 5 , keys size = 5 [model_handling.py at line 741]  -DEBUG: 'pardef_lines size =', len(pardef_lines), ', keys size =', len(pardef_lines.keys()) =  pardef_lines size = 1 , keys size = 1 [model_handling.py at line 724]  -DEBUG: 'parset_pars size =', len(parset_pars) =  parset_pars size = 1 [model_handling.py at line 740]  -DEBUG: 'parset_lines size =', len(parset_lines), ', keys size =', len(parset_lines.keys()) =  parset_lines size = 1 , keys size = 1 [model_handling.py at line 741]  -DEBUG: 'pardef_lines size =', len(pardef_lines), ', keys size =', len(pardef_lines.keys()) =  pardef_lines size = 5 , keys size = 5 [model_handling.py at line 724]  -DEBUG: 'parset_pars size =', len(parset_pars) =  parset_pars size = 5 [model_handling.py at line 740]  -DEBUG: 'parset_lines size =', len(parset_lines), ', keys size =', len(parset_lines.keys()) =  parset_lines size = 5 , keys size = 5 [model_handling.py at line 741]  -DEBUG: 'pardef_lines size =', len(pardef_lines), ', keys size =', len(pardef_lines.keys()) =  pardef_lines size = 1 , keys size = 1 [model_handling.py at line 724]  -DEBUG: 'parset_pars size =', len(parset_pars) =  parset_pars size = 1 [model_handling.py at line 740]  -DEBUG: 'parset_lines size =', len(parset_lines), ', keys size =', len(parset_lines.keys()) =  parset_lines size = 1 , keys size = 1 [model_handling.py at line 741]  -DEBUG: 'pardef_lines size =', len(pardef_lines), ', keys size =', len(pardef_lines.keys()) =  pardef_lines size = 1 , keys size = 1 [model_handling.py at line 724]  -DEBUG: 'parset_pars size =', len(parset_pars) =  parset_pars size = 1 [model_handling.py at line 740]  -DEBUG: 'parset_lines size =', len(parset_lines), ', keys size =', len(parset_lines.keys()) =  parset_lines size = 1 , keys size = 1 [model_handling.py at line 741]  +DEBUG: 'pardef_lines size =', len(pardef_lines), ', keys size =', len(pardef_lines.keys()) =  pardef_lines size = 5 , keys size = 5 [model_handling.py at line 729]  +DEBUG: 'pardef_lines size =', len(pardef_lines), ', keys size =', len(pardef_lines.keys()) =  pardef_lines size = 1 , keys size = 1 [model_handling.py at line 729]  +DEBUG: 'pardef_lines size =', len(pardef_lines), ', keys size =', len(pardef_lines.keys()) =  pardef_lines size = 5 , keys size = 5 [model_handling.py at line 729]  +DEBUG: 'pardef_lines size =', len(pardef_lines), ', keys size =', len(pardef_lines.keys()) =  pardef_lines size = 1 , keys size = 1 [model_handling.py at line 729]  +DEBUG: 'pardef_lines size =', len(pardef_lines), ', keys size =', len(pardef_lines.keys()) =  pardef_lines size = 1 , keys size = 1 [model_handling.py at line 729]  FileWriter for /data/avalassi/GPU2023/MG5aMC/ghav-mg5amcnlo/CODEGEN_cudacpp_heft_gg_h/src/./Parameters_heft.h FileWriter for /data/avalassi/GPU2023/MG5aMC/ghav-mg5amcnlo/CODEGEN_cudacpp_heft_gg_h/src/./Parameters_heft.cc INFO: Created files Parameters_heft.h and Parameters_heft.cc in directory @@ -207,6 +195,6 @@ INFO: /data/avalassi/GPU2023/MG5aMC/ghav-mg5amcnlo/CODEGEN_cudacpp_heft_gg_h/src DEBUG: Entering PLUGIN_ProcessExporter.finalize [output.py at line 203]  quit -real 0m0.806s -user 0m0.424s -sys 0m0.052s +real 0m0.872s +user 0m0.396s +sys 0m0.057s diff --git a/epochX/cudacpp/heft_gg_h.sa/SubProcesses/Bridge.h b/epochX/cudacpp/heft_gg_h.sa/SubProcesses/Bridge.h index 4cafe0c997..d7e629cacd 100644 --- a/epochX/cudacpp/heft_gg_h.sa/SubProcesses/Bridge.h +++ b/epochX/cudacpp/heft_gg_h.sa/SubProcesses/Bridge.h @@ -152,32 +152,32 @@ namespace mg5amcCpu #ifdef __CUDACC__ int m_gputhreads; // number of gpu threads (default set from number of events, can be modified) int m_gpublocks; // number of gpu blocks (default set from number of events, can be modified) - mg5amcGpu::DeviceBuffer m_devMomentaF; - mg5amcGpu::DeviceBufferMomenta m_devMomentaC; - mg5amcGpu::DeviceBufferGs m_devGs; - mg5amcGpu::DeviceBufferRndNumHelicity m_devRndHel; - mg5amcGpu::DeviceBufferRndNumColor m_devRndCol; - mg5amcGpu::DeviceBufferMatrixElements m_devMEs; - mg5amcGpu::DeviceBufferSelectedHelicity m_devSelHel; - mg5amcGpu::DeviceBufferSelectedColor m_devSelCol; - mg5amcGpu::PinnedHostBufferGs m_hstGs; - mg5amcGpu::PinnedHostBufferRndNumHelicity m_hstRndHel; - mg5amcGpu::PinnedHostBufferRndNumColor m_hstRndCol; - mg5amcGpu::PinnedHostBufferMatrixElements m_hstMEs; - mg5amcGpu::PinnedHostBufferSelectedHelicity m_hstSelHel; - mg5amcGpu::PinnedHostBufferSelectedColor m_hstSelCol; - std::unique_ptr m_pmek; + DeviceBuffer m_devMomentaF; + DeviceBufferMomenta m_devMomentaC; + DeviceBufferGs m_devGs; + DeviceBufferRndNumHelicity m_devRndHel; + DeviceBufferRndNumColor m_devRndCol; + DeviceBufferMatrixElements m_devMEs; + DeviceBufferSelectedHelicity m_devSelHel; + DeviceBufferSelectedColor m_devSelCol; + PinnedHostBufferGs m_hstGs; + PinnedHostBufferRndNumHelicity m_hstRndHel; + PinnedHostBufferRndNumColor m_hstRndCol; + PinnedHostBufferMatrixElements m_hstMEs; + PinnedHostBufferSelectedHelicity m_hstSelHel; + PinnedHostBufferSelectedColor m_hstSelCol; + std::unique_ptr m_pmek; //static constexpr int s_gputhreadsmin = 16; // minimum number of gpu threads (TEST VALUE FOR MADEVENT) static constexpr int s_gputhreadsmin = 32; // minimum number of gpu threads (DEFAULT) #else - mg5amcCpu::HostBufferMomenta m_hstMomentaC; - mg5amcCpu::HostBufferGs m_hstGs; - mg5amcCpu::HostBufferRndNumHelicity m_hstRndHel; - mg5amcCpu::HostBufferRndNumColor m_hstRndCol; - mg5amcCpu::HostBufferMatrixElements m_hstMEs; - mg5amcCpu::HostBufferSelectedHelicity m_hstSelHel; - mg5amcCpu::HostBufferSelectedColor m_hstSelCol; - std::unique_ptr m_pmek; + HostBufferMomenta m_hstMomentaC; + HostBufferGs m_hstGs; + HostBufferRndNumHelicity m_hstRndHel; + HostBufferRndNumColor m_hstRndCol; + HostBufferMatrixElements m_hstMEs; + HostBufferSelectedHelicity m_hstSelHel; + HostBufferSelectedColor m_hstSelCol; + std::unique_ptr m_pmek; #endif }; @@ -244,12 +244,12 @@ namespace mg5amcCpu } std::cout << "WARNING! Instantiate device Bridge (nevt=" << m_nevt << ", gpublocks=" << m_gpublocks << ", gputhreads=" << m_gputhreads << ", gpublocks*gputhreads=" << m_gpublocks * m_gputhreads << ")" << std::endl; - mg5amcGpu::CPPProcess process( /*verbose=*/false ); - m_pmek.reset( new mg5amcGpu::MatrixElementKernelDevice( m_devMomentaC, m_devGs, m_devRndHel, m_devRndCol, m_devMEs, m_devSelHel, m_devSelCol, m_gpublocks, m_gputhreads ) ); + CPPProcess process( /*verbose=*/false ); + m_pmek.reset( new MatrixElementKernelDevice( m_devMomentaC, m_devGs, m_devRndHel, m_devRndCol, m_devMEs, m_devSelHel, m_devSelCol, m_gpublocks, m_gputhreads ) ); #else std::cout << "WARNING! Instantiate host Bridge (nevt=" << m_nevt << ")" << std::endl; - mg5amcCpu::CPPProcess process( /*verbose=*/false ); - m_pmek.reset( new mg5amcCpu::MatrixElementKernelHost( m_hstMomentaC, m_hstGs, m_hstRndHel, m_hstRndCol, m_hstMEs, m_hstSelHel, m_hstSelCol, m_nevt ) ); + CPPProcess process( /*verbose=*/false ); + m_pmek.reset( new MatrixElementKernelHost( m_hstMomentaC, m_hstGs, m_hstRndHel, m_hstRndCol, m_hstMEs, m_hstSelHel, m_hstSelCol, m_nevt ) ); #endif // __CUDACC__ process.initProc( "../../Cards/param_card.dat" ); } diff --git a/epochX/cudacpp/heft_gg_h.sa/SubProcesses/BridgeKernels.cc b/epochX/cudacpp/heft_gg_h.sa/SubProcesses/BridgeKernels.cc index cef4cb3c71..d58066c9c1 100644 --- a/epochX/cudacpp/heft_gg_h.sa/SubProcesses/BridgeKernels.cc +++ b/epochX/cudacpp/heft_gg_h.sa/SubProcesses/BridgeKernels.cc @@ -9,9 +9,6 @@ #include -constexpr int np4 = CPPProcess::np4; // dimensions of 4-momenta (E,px,py,pz) -constexpr int npar = CPPProcess::npar; // #particles in total (external = initial + final): e.g. 4 for e+ e- -> mu+ mu- - //============================================================================ #ifdef __CUDACC__ @@ -20,6 +17,9 @@ namespace mg5amcGpu namespace mg5amcCpu #endif { + constexpr int np4 = CPPProcess::np4; // dimensions of 4-momenta (E,px,py,pz) + constexpr int npar = CPPProcess::npar; // #particles in total (external = initial + final): e.g. 4 for e+ e- -> mu+ mu- + //-------------------------------------------------------------------------- BridgeKernelBase::BridgeKernelBase( const BufferMomenta& momenta, // input: momenta diff --git a/epochX/cudacpp/heft_gg_h.sa/SubProcesses/MemoryAccessAmplitudes.h b/epochX/cudacpp/heft_gg_h.sa/SubProcesses/MemoryAccessAmplitudes.h index 68f6838b5c..573b3bbbc9 100644 --- a/epochX/cudacpp/heft_gg_h.sa/SubProcesses/MemoryAccessAmplitudes.h +++ b/epochX/cudacpp/heft_gg_h.sa/SubProcesses/MemoryAccessAmplitudes.h @@ -14,142 +14,151 @@ #define MGONGPU_TRIVIAL_AMPLITUDES 1 -//---------------------------------------------------------------------------- - -#ifndef MGONGPU_TRIVIAL_AMPLITUDES - -// A class describing the internal layout of memory buffers for amplitudes -// This implementation uses an AOSOA[npagA][nx2][neppA] where nevt=npagA*neppA -// [If many implementations are used, a suffix _AOSOAv1 should be appended to the class name] -class MemoryAccessAmplitudesBase //_AOSOAv1 +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { -public: - - // Number of Events Per Page in the amplitude AOSOA memory buffer layout - static constexpr int neppA = 1; // AOS (just a test...) + //---------------------------------------------------------------------------- -private: - - friend class MemoryAccessHelper; - friend class KernelAccessHelper; - friend class KernelAccessHelper; - - // The number of floating point components of a complex number - static constexpr int nx2 = mgOnGpu::nx2; - - //-------------------------------------------------------------------------- - // NB all KernelLaunchers assume that memory access can be decomposed as "accessField = decodeRecord( accessRecord )" - // (in other words: first locate the event record for a given event, then locate an element in that record) - //-------------------------------------------------------------------------- +#ifndef MGONGPU_TRIVIAL_AMPLITUDES - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] - static __host__ __device__ inline fptype* - ieventAccessRecord( fptype* buffer, - const int ievt ) + // A class describing the internal layout of memory buffers for amplitudes + // This implementation uses an AOSOA[npagA][nx2][neppA] where nevt=npagA*neppA + // [If many implementations are used, a suffix _AOSOAv1 should be appended to the class name] + class MemoryAccessAmplitudesBase //_AOSOAv1 { - const int ipagA = ievt / neppA; // #event "A-page" - const int ieppA = ievt % neppA; // #event in the current event A-page - constexpr int ix2 = 0; - return &( buffer[ipagA * nx2 * neppA + ix2 * neppA + ieppA] ); // AOSOA[ipagA][ix2][ieppA] - } - - //-------------------------------------------------------------------------- - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, Ts... args ) <===] - // [NB: expand variadic template "Ts... args" to "const int ix2" and rename "Field" as "Ix2"] - static __host__ __device__ inline fptype& - decodeRecord( fptype* buffer, - const int ix2 ) + public: + + // Number of Events Per Page in the amplitude AOSOA memory buffer layout + static constexpr int neppA = 1; // AOS (just a test...) + + private: + + friend class MemoryAccessHelper; + friend class KernelAccessHelper; + friend class KernelAccessHelper; + + // The number of floating point components of a complex number + static constexpr int nx2 = mgOnGpu::nx2; + + //-------------------------------------------------------------------------- + // NB all KernelLaunchers assume that memory access can be decomposed as "accessField = decodeRecord( accessRecord )" + // (in other words: first locate the event record for a given event, then locate an element in that record) + //-------------------------------------------------------------------------- + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] + static __host__ __device__ inline fptype* + ieventAccessRecord( fptype* buffer, + const int ievt ) + { + const int ipagA = ievt / neppA; // #event "A-page" + const int ieppA = ievt % neppA; // #event in the current event A-page + constexpr int ix2 = 0; + return &( buffer[ipagA * nx2 * neppA + ix2 * neppA + ieppA] ); // AOSOA[ipagA][ix2][ieppA] + } + + //-------------------------------------------------------------------------- + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, Ts... args ) <===] + // [NB: expand variadic template "Ts... args" to "const int ix2" and rename "Field" as "Ix2"] + static __host__ __device__ inline fptype& + decodeRecord( fptype* buffer, + const int ix2 ) + { + constexpr int ipagA = 0; + constexpr int ieppA = 0; + return buffer[ipagA * nx2 * neppA + ix2 * neppA + ieppA]; // AOSOA[ipagA][ix2][ieppA] + } + }; + + //---------------------------------------------------------------------------- + + // A class providing access to memory buffers for a given event, based on explicit event numbers + // Its methods use the MemoryAccessHelper templates - note the use of the template keyword in template function instantiations + class MemoryAccessAmplitudes : public MemoryAccessAmplitudesBase { - constexpr int ipagA = 0; - constexpr int ieppA = 0; - return buffer[ipagA * nx2 * neppA + ix2 * neppA + ieppA]; // AOSOA[ipagA][ix2][ieppA] - } -}; + public: -//---------------------------------------------------------------------------- + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] + static constexpr auto ieventAccessRecord = MemoryAccessHelper::ieventAccessRecord; -// A class providing access to memory buffers for a given event, based on explicit event numbers -// Its methods use the MemoryAccessHelper templates - note the use of the template keyword in template function instantiations -class MemoryAccessAmplitudes : public MemoryAccessAmplitudesBase -{ -public: - - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] - static constexpr auto ieventAccessRecord = MemoryAccessHelper::ieventAccessRecord; + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (const) ===> const fptype* ieventAccessRecordConst( const fptype* buffer, const int ievt ) <===] + static constexpr auto ieventAccessRecordConst = MemoryAccessHelper::ieventAccessRecordConst; - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (const) ===> const fptype* ieventAccessRecordConst( const fptype* buffer, const int ievt ) <===] - static constexpr auto ieventAccessRecordConst = MemoryAccessHelper::ieventAccessRecordConst; + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, const int ix2 ) <===] + static constexpr auto decodeRecordIx2 = MemoryAccessHelper::decodeRecord; - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, const int ix2 ) <===] - static constexpr auto decodeRecordIx2 = MemoryAccessHelper::decodeRecord; + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (const) ===> const fptype& decodeRecordConst( const fptype* buffer, const int ix2 ) <===] + static constexpr auto decodeRecordIx2Const = + MemoryAccessHelper::template decodeRecordConst; - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (const) ===> const fptype& decodeRecordConst( const fptype* buffer, const int ix2 ) <===] - static constexpr auto decodeRecordIx2Const = - MemoryAccessHelper::template decodeRecordConst; + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (non-const) ===> fptype& ieventAccessIx2( fptype* buffer, const ievt, const int ix2 ) <===] + static constexpr auto ieventAccessIx2 = + MemoryAccessHelper::template ieventAccessField; - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (non-const) ===> fptype& ieventAccessIx2( fptype* buffer, const ievt, const int ix2 ) <===] - static constexpr auto ieventAccessIx2 = - MemoryAccessHelper::template ieventAccessField; - - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (const) ===> const fptype& ieventAccessIx2Const( const fptype* buffer, const ievt, const int ix2 ) <===] - static constexpr auto ieventAccessIx2Const = - MemoryAccessHelper::template ieventAccessFieldConst; -}; + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (const) ===> const fptype& ieventAccessIx2Const( const fptype* buffer, const ievt, const int ix2 ) <===] + static constexpr auto ieventAccessIx2Const = + MemoryAccessHelper::template ieventAccessFieldConst; + }; #endif // #ifndef MGONGPU_TRIVIAL_AMPLITUDES -//---------------------------------------------------------------------------- + //---------------------------------------------------------------------------- -// A class providing access to memory buffers for a given event, based on implicit kernel rules -// Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations -template -class KernelAccessAmplitudes -{ -public: + // A class providing access to memory buffers for a given event, based on implicit kernel rules + // Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations + template + class KernelAccessAmplitudes + { + public: #ifndef MGONGPU_TRIVIAL_AMPLITUDES - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (non-const) ===> fptype& kernelAccessIx2( fptype* buffer, const int ix2 ) <===] - static constexpr auto kernelAccessIx2 = - KernelAccessHelper::template kernelAccessField; + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (non-const) ===> fptype& kernelAccessIx2( fptype* buffer, const int ix2 ) <===] + static constexpr auto kernelAccessIx2 = + KernelAccessHelper::template kernelAccessField; - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (const) ===> const fptype& kernelAccessIx2Const( const fptype* buffer, const int ix2 ) <===] - static constexpr auto kernelAccessIx2Const = - KernelAccessHelper::template kernelAccessFieldConst; + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (const) ===> const fptype& kernelAccessIx2Const( const fptype* buffer, const int ix2 ) <===] + static constexpr auto kernelAccessIx2Const = + KernelAccessHelper::template kernelAccessFieldConst; #else - static __host__ __device__ inline cxtype_sv* - kernelAccess( fptype* buffer ) - { - return reinterpret_cast( buffer ); - } + static __host__ __device__ inline cxtype_sv* + kernelAccess( fptype* buffer ) + { + return reinterpret_cast( buffer ); + } - static __host__ __device__ inline const cxtype_sv* - kernelAccessConst( const fptype* buffer ) - { - return reinterpret_cast( buffer ); - } + static __host__ __device__ inline const cxtype_sv* + kernelAccessConst( const fptype* buffer ) + { + return reinterpret_cast( buffer ); + } #endif // #ifndef MGONGPU_TRIVIAL_AMPLITUDES -}; + }; + + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- + typedef KernelAccessAmplitudes HostAccessAmplitudes; + typedef KernelAccessAmplitudes DeviceAccessAmplitudes; -typedef KernelAccessAmplitudes HostAccessAmplitudes; -typedef KernelAccessAmplitudes DeviceAccessAmplitudes; + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- +} // end namespace mg5amcGpu/mg5amcCpu #endif // MemoryAccessAmplitudes_H diff --git a/epochX/cudacpp/heft_gg_h.sa/SubProcesses/MemoryAccessCouplings.h b/epochX/cudacpp/heft_gg_h.sa/SubProcesses/MemoryAccessCouplings.h index 256d2b4c15..d65c9d6e04 100644 --- a/epochX/cudacpp/heft_gg_h.sa/SubProcesses/MemoryAccessCouplings.h +++ b/epochX/cudacpp/heft_gg_h.sa/SubProcesses/MemoryAccessCouplings.h @@ -14,248 +14,257 @@ #include "MemoryAccessMomenta.h" // for MemoryAccessMomentaBase::neppM #include "MemoryBuffers.h" // for HostBufferCouplings::isaligned -//---------------------------------------------------------------------------- - -// A class describing the internal layout of memory buffers for couplings -// This implementation uses an AOSOA[npagC][ndcoup][nx2][neppC] "super-buffer" where nevt=npagC*neppC -// From the "super-buffer" for ndcoup different couplings, use idcoupAccessBuffer to access the buffer for one specific coupling -// [If many implementations are used, a suffix _AOSOAv1 should be appended to the class name] -class MemoryAccessCouplingsBase //_AOSOAv1 +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { -public: - - // Number of Events Per Page in the coupling AOSOA memory buffer layout - static constexpr int neppC = MemoryAccessMomentaBase::neppM; // use the same AOSOA striding as for momenta - - // SANITY CHECK: check that neppC is a power of two - static_assert( ispoweroftwo( neppC ), "neppC is not a power of 2" ); - - //-------------------------------------------------------------------------- - // ** NB! A single super-buffer AOSOA[npagC][ndcoup][nx2][neppC] includes data for ndcoup different couplings ** - // ** NB! The ieventAccessRecord and kernelAccess functions refer to the buffer for one individual coupling ** - // ** NB! Use idcoupAccessBuffer to add a fixed offset and locate the buffer for one given individual coupling ** - //-------------------------------------------------------------------------- - - // Locate the buffer for a single coupling (output) in a memory super-buffer (input) from the given coupling index (input) - // [Signature (non-const) ===> fptype* idcoupAccessBuffer( fptype* buffer, const int idcoup ) <===] - // NB: keep this in public even if exposed through KernelAccessCouplings: nvcc says it is inaccesible otherwise? - static __host__ __device__ inline fptype* - idcoupAccessBuffer( fptype* buffer, // input "super-buffer" - const int idcoup ) - { - constexpr int ipagC = 0; - constexpr int ieppC = 0; - constexpr int ix2 = 0; - // NB! this effectively adds an offset "idcoup * nx2 * neppC" - return &( buffer[ipagC * ndcoup * nx2 * neppC + idcoup * nx2 * neppC + ix2 * neppC + ieppC] ); // AOSOA[ipagC][idcoup][ix2][ieppC] - } - - // Locate the buffer for a single coupling (output) in a memory super-buffer (input) from the given coupling index (input) - // [Signature (const) ===> const fptype* idcoupAccessBufferConst( const fptype* buffer, const int idcoup ) <===] - // NB: keep this in public even if exposed through KernelAccessCouplings: nvcc says it is inaccesible otherwise? - static __host__ __device__ inline const fptype* - idcoupAccessBufferConst( const fptype* buffer, // input "super-buffer" - const int idcoup ) - { - return idcoupAccessBuffer( const_cast( buffer ), idcoup ); - } - -private: + //---------------------------------------------------------------------------- - friend class MemoryAccessHelper; - friend class KernelAccessHelper; - friend class KernelAccessHelper; - - // The number of couplings that dependent on the running alphas QCD in this specific process - static constexpr size_t ndcoup = Parameters_heft_dependentCouplings::ndcoup; - - // The number of floating point components of a complex number - static constexpr int nx2 = mgOnGpu::nx2; - - //-------------------------------------------------------------------------- - // NB all KernelLaunchers assume that memory access can be decomposed as "accessField = decodeRecord( accessRecord )" - // (in other words: first locate the event record for a given event, then locate an element in that record) - //-------------------------------------------------------------------------- - - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] - static __host__ __device__ inline fptype* - ieventAccessRecord( fptype* buffer, - const int ievt ) + // A class describing the internal layout of memory buffers for couplings + // This implementation uses an AOSOA[npagC][ndcoup][nx2][neppC] "super-buffer" where nevt=npagC*neppC + // From the "super-buffer" for ndcoup different couplings, use idcoupAccessBuffer to access the buffer for one specific coupling + // [If many implementations are used, a suffix _AOSOAv1 should be appended to the class name] + class MemoryAccessCouplingsBase //_AOSOAv1 { - const int ipagC = ievt / neppC; // #event "C-page" - const int ieppC = ievt % neppC; // #event in the current event C-page - constexpr int idcoup = 0; - constexpr int ix2 = 0; - return &( buffer[ipagC * ndcoup * nx2 * neppC + idcoup * nx2 * neppC + ix2 * neppC + ieppC] ); // AOSOA[ipagC][idcoup][ix2][ieppC] - } - - //-------------------------------------------------------------------------- - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, Ts... args ) <===] - // [NB: expand variadic template "Ts... args" to "const int ix2" and rename "Field" as "Ix2"] - static __host__ __device__ inline fptype& - decodeRecord( fptype* buffer, - const int ix2 ) + public: + + // Number of Events Per Page in the coupling AOSOA memory buffer layout + static constexpr int neppC = MemoryAccessMomentaBase::neppM; // use the same AOSOA striding as for momenta + + // SANITY CHECK: check that neppC is a power of two + static_assert( ispoweroftwo( neppC ), "neppC is not a power of 2" ); + + //-------------------------------------------------------------------------- + // ** NB! A single super-buffer AOSOA[npagC][ndcoup][nx2][neppC] includes data for ndcoup different couplings ** + // ** NB! The ieventAccessRecord and kernelAccess functions refer to the buffer for one individual coupling ** + // ** NB! Use idcoupAccessBuffer to add a fixed offset and locate the buffer for one given individual coupling ** + //-------------------------------------------------------------------------- + + // Locate the buffer for a single coupling (output) in a memory super-buffer (input) from the given coupling index (input) + // [Signature (non-const) ===> fptype* idcoupAccessBuffer( fptype* buffer, const int idcoup ) <===] + // NB: keep this in public even if exposed through KernelAccessCouplings: nvcc says it is inaccesible otherwise? + static __host__ __device__ inline fptype* + idcoupAccessBuffer( fptype* buffer, // input "super-buffer" + const int idcoup ) + { + constexpr int ipagC = 0; + constexpr int ieppC = 0; + constexpr int ix2 = 0; + // NB! this effectively adds an offset "idcoup * nx2 * neppC" + return &( buffer[ipagC * ndcoup * nx2 * neppC + idcoup * nx2 * neppC + ix2 * neppC + ieppC] ); // AOSOA[ipagC][idcoup][ix2][ieppC] + } + + // Locate the buffer for a single coupling (output) in a memory super-buffer (input) from the given coupling index (input) + // [Signature (const) ===> const fptype* idcoupAccessBufferConst( const fptype* buffer, const int idcoup ) <===] + // NB: keep this in public even if exposed through KernelAccessCouplings: nvcc says it is inaccesible otherwise? + static __host__ __device__ inline const fptype* + idcoupAccessBufferConst( const fptype* buffer, // input "super-buffer" + const int idcoup ) + { + return idcoupAccessBuffer( const_cast( buffer ), idcoup ); + } + + private: + + friend class MemoryAccessHelper; + friend class KernelAccessHelper; + friend class KernelAccessHelper; + + // The number of couplings that dependent on the running alphas QCD in this specific process + static constexpr size_t ndcoup = Parameters_heft_dependentCouplings::ndcoup; + + // The number of floating point components of a complex number + static constexpr int nx2 = mgOnGpu::nx2; + + //-------------------------------------------------------------------------- + // NB all KernelLaunchers assume that memory access can be decomposed as "accessField = decodeRecord( accessRecord )" + // (in other words: first locate the event record for a given event, then locate an element in that record) + //-------------------------------------------------------------------------- + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] + static __host__ __device__ inline fptype* + ieventAccessRecord( fptype* buffer, + const int ievt ) + { + const int ipagC = ievt / neppC; // #event "C-page" + const int ieppC = ievt % neppC; // #event in the current event C-page + constexpr int idcoup = 0; + constexpr int ix2 = 0; + return &( buffer[ipagC * ndcoup * nx2 * neppC + idcoup * nx2 * neppC + ix2 * neppC + ieppC] ); // AOSOA[ipagC][idcoup][ix2][ieppC] + } + + //-------------------------------------------------------------------------- + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, Ts... args ) <===] + // [NB: expand variadic template "Ts... args" to "const int ix2" and rename "Field" as "Ix2"] + static __host__ __device__ inline fptype& + decodeRecord( fptype* buffer, + const int ix2 ) + { + constexpr int ipagC = 0; + constexpr int ieppC = 0; + // NB! the offset "idcoup * nx2 * neppC" has been added in idcoupAccessBuffer + constexpr int idcoup = 0; + return buffer[ipagC * ndcoup * nx2 * neppC + idcoup * nx2 * neppC + ix2 * neppC + ieppC]; // AOSOA[ipagC][idcoup][ix2][ieppC] + } + }; + + //---------------------------------------------------------------------------- + + // A class providing access to memory buffers for a given event, based on explicit event numbers + // Its methods use the MemoryAccessHelper templates - note the use of the template keyword in template function instantiations + class MemoryAccessCouplings : public MemoryAccessCouplingsBase { - constexpr int ipagC = 0; - constexpr int ieppC = 0; - // NB! the offset "idcoup * nx2 * neppC" has been added in idcoupAccessBuffer - constexpr int idcoup = 0; - return buffer[ipagC * ndcoup * nx2 * neppC + idcoup * nx2 * neppC + ix2 * neppC + ieppC]; // AOSOA[ipagC][idcoup][ix2][ieppC] - } -}; - -//---------------------------------------------------------------------------- - -// A class providing access to memory buffers for a given event, based on explicit event numbers -// Its methods use the MemoryAccessHelper templates - note the use of the template keyword in template function instantiations -class MemoryAccessCouplings : public MemoryAccessCouplingsBase -{ -public: - - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] - static constexpr auto ieventAccessRecord = MemoryAccessHelper::ieventAccessRecord; - - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (const) ===> const fptype* ieventAccessRecordConst( const fptype* buffer, const int ievt ) <===] - static constexpr auto ieventAccessRecordConst = MemoryAccessHelper::ieventAccessRecordConst; - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, const int ix2 ) <===] - static constexpr auto decodeRecordIx2 = MemoryAccessHelper::decodeRecord; - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (const) ===> const fptype& decodeRecordConst( const fptype* buffer, const int ix2 ) <===] - static constexpr auto decodeRecordIx2Const = - MemoryAccessHelper::template decodeRecordConst; - - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (non-const) ===> fptype& ieventAccessIx2( fptype* buffer, const ievt, const int ix2 ) <===] - static constexpr auto ieventAccessIx2 = - MemoryAccessHelper::template ieventAccessField; - - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (const) ===> const fptype& ieventAccessIx2Const( const fptype* buffer, const ievt, const int ix2 ) <===] - static constexpr auto ieventAccessIx2Const = - MemoryAccessHelper::template ieventAccessFieldConst; -}; - -//---------------------------------------------------------------------------- - -// A class providing access to memory buffers for a given event, based on implicit kernel rules -// Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations -template -class KernelAccessCouplings -{ -public: - - // Expose selected functions from MemoryAccessCouplingsBase - static constexpr auto idcoupAccessBuffer = MemoryAccessCouplingsBase::idcoupAccessBuffer; - static constexpr auto idcoupAccessBufferConst = MemoryAccessCouplingsBase::idcoupAccessBufferConst; - - // Expose selected functions from MemoryAccessCouplings - static constexpr auto ieventAccessRecordConst = MemoryAccessCouplings::ieventAccessRecordConst; - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (non-const, SCALAR) ===> fptype& kernelAccessIx2( fptype* buffer, const int ix2 ) <===] - static constexpr auto kernelAccessIx2_s = - KernelAccessHelper::template kernelAccessField; - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (const, SCALAR) ===> const fptype& kernelAccessIx2Const( const fptype* buffer, const int ix2 ) <===] - static constexpr auto kernelAccessIx2Const_s = - KernelAccessHelper::template kernelAccessFieldConst; - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (non const, SCALAR OR VECTOR) ===> fptype_sv& kernelAccessIx2( fptype* buffer, const int ix2 ) <===] - static __host__ __device__ inline fptype_sv& - kernelAccessIx2( fptype* buffer, - const int ix2 ) + public: + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] + static constexpr auto ieventAccessRecord = MemoryAccessHelper::ieventAccessRecord; + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (const) ===> const fptype* ieventAccessRecordConst( const fptype* buffer, const int ievt ) <===] + static constexpr auto ieventAccessRecordConst = MemoryAccessHelper::ieventAccessRecordConst; + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, const int ix2 ) <===] + static constexpr auto decodeRecordIx2 = MemoryAccessHelper::decodeRecord; + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (const) ===> const fptype& decodeRecordConst( const fptype* buffer, const int ix2 ) <===] + static constexpr auto decodeRecordIx2Const = + MemoryAccessHelper::template decodeRecordConst; + + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (non-const) ===> fptype& ieventAccessIx2( fptype* buffer, const ievt, const int ix2 ) <===] + static constexpr auto ieventAccessIx2 = + MemoryAccessHelper::template ieventAccessField; + + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (const) ===> const fptype& ieventAccessIx2Const( const fptype* buffer, const ievt, const int ix2 ) <===] + static constexpr auto ieventAccessIx2Const = + MemoryAccessHelper::template ieventAccessFieldConst; + }; + + //---------------------------------------------------------------------------- + + // A class providing access to memory buffers for a given event, based on implicit kernel rules + // Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations + template + class KernelAccessCouplings { - fptype& out = kernelAccessIx2_s( buffer, ix2 ); + public: + + // Expose selected functions from MemoryAccessCouplingsBase + static constexpr auto idcoupAccessBuffer = MemoryAccessCouplingsBase::idcoupAccessBuffer; + static constexpr auto idcoupAccessBufferConst = MemoryAccessCouplingsBase::idcoupAccessBufferConst; + + // Expose selected functions from MemoryAccessCouplings + static constexpr auto ieventAccessRecordConst = MemoryAccessCouplings::ieventAccessRecordConst; + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (non-const, SCALAR) ===> fptype& kernelAccessIx2( fptype* buffer, const int ix2 ) <===] + static constexpr auto kernelAccessIx2_s = + KernelAccessHelper::template kernelAccessField; + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (const, SCALAR) ===> const fptype& kernelAccessIx2Const( const fptype* buffer, const int ix2 ) <===] + static constexpr auto kernelAccessIx2Const_s = + KernelAccessHelper::template kernelAccessFieldConst; + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (non const, SCALAR OR VECTOR) ===> fptype_sv& kernelAccessIx2( fptype* buffer, const int ix2 ) <===] + static __host__ __device__ inline fptype_sv& + kernelAccessIx2( fptype* buffer, + const int ix2 ) + { + fptype& out = kernelAccessIx2_s( buffer, ix2 ); #ifndef MGONGPU_CPPSIMD - return out; + return out; #else - // NB: derived from MemoryAccessMomenta, restricting the implementation to contiguous aligned arrays - constexpr int neppC = MemoryAccessCouplingsBase::neppC; - static_assert( neppC >= neppV ); // ASSUME CONTIGUOUS ARRAYS - static_assert( neppC % neppV == 0 ); // ASSUME CONTIGUOUS ARRAYS - static_assert( mg5amcCpu::HostBufferCouplings::isaligned() ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) - //assert( (size_t)( buffer ) % mgOnGpu::cppAlign == 0 ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) - return mg5amcCpu::fptypevFromAlignedArray( out ); // SIMD bulk load of neppV, use reinterpret_cast + // NB: derived from MemoryAccessMomenta, restricting the implementation to contiguous aligned arrays + constexpr int neppC = MemoryAccessCouplingsBase::neppC; + static_assert( neppC >= neppV ); // ASSUME CONTIGUOUS ARRAYS + static_assert( neppC % neppV == 0 ); // ASSUME CONTIGUOUS ARRAYS + static_assert( mg5amcCpu::HostBufferCouplings::isaligned() ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) + //assert( (size_t)( buffer ) % mgOnGpu::cppAlign == 0 ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) + return mg5amcCpu::fptypevFromAlignedArray( out ); // SIMD bulk load of neppV, use reinterpret_cast #endif - } + } - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (const, SCALAR OR VECTOR) ===> const fptype_sv& kernelAccessIx2Const( const fptype* buffer, const int ix2 ) <===] - static __host__ __device__ inline const fptype_sv& - kernelAccessIx2Const( const fptype* buffer, - const int ix2 ) - { - return kernelAccessIx2( const_cast( buffer ), ix2 ); - } - - /* - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (const, SCALAR OR VECTOR) ===> const fptype_sv& kernelAccessIx2Const( const fptype* buffer, const int ix2 ) <===] - static __host__ __device__ inline const fptype_sv& - kernelAccessIx2Const( const fptype* buffer, - const int ix2 ) - { - const fptype& out = kernelAccessIx2Const_s( buffer, ix2 ); + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (const, SCALAR OR VECTOR) ===> const fptype_sv& kernelAccessIx2Const( const fptype* buffer, const int ix2 ) <===] + static __host__ __device__ inline const fptype_sv& + kernelAccessIx2Const( const fptype* buffer, + const int ix2 ) + { + return kernelAccessIx2( const_cast( buffer ), ix2 ); + } + + /* + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (const, SCALAR OR VECTOR) ===> const fptype_sv& kernelAccessIx2Const( const fptype* buffer, const int ix2 ) <===] + static __host__ __device__ inline const fptype_sv& + kernelAccessIx2Const( const fptype* buffer, + const int ix2 ) + { + const fptype& out = kernelAccessIx2Const_s( buffer, ix2 ); #ifndef MGONGPU_CPPSIMD - return out; + return out; #else - // NB: derived from MemoryAccessMomenta, restricting the implementation to contiguous aligned arrays - constexpr int neppC = MemoryAccessCouplingsBase::neppC; - static_assert( neppC >= neppV ); // ASSUME CONTIGUOUS ARRAYS - static_assert( neppC % neppV == 0 ); // ASSUME CONTIGUOUS ARRAYS - static_assert( mg5amcCpu::HostBufferCouplings::isaligned() ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) - //assert( (size_t)( buffer ) % mgOnGpu::cppAlign == 0 ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) - return mg5amcCpu::fptypevFromAlignedArray( out ); // SIMD bulk load of neppV, use reinterpret_cast + // NB: derived from MemoryAccessMomenta, restricting the implementation to contiguous aligned arrays + constexpr int neppC = MemoryAccessCouplingsBase::neppC; + static_assert( neppC >= neppV ); // ASSUME CONTIGUOUS ARRAYS + static_assert( neppC % neppV == 0 ); // ASSUME CONTIGUOUS ARRAYS + static_assert( mg5amcCpu::HostBufferCouplings::isaligned() ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) + //assert( (size_t)( buffer ) % mgOnGpu::cppAlign == 0 ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) + return mg5amcCpu::fptypevFromAlignedArray( out ); // SIMD bulk load of neppV, use reinterpret_cast #endif - } - */ - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (non const, SCALAR OR VECTOR) ===> cxtype_sv_ref kernelAccess( fptype* buffer ) <===] - static __host__ __device__ inline cxtype_sv_ref - kernelAccess( fptype* buffer ) - { - /* - fptype_sv& real = kernelAccessIx2( buffer, 0 ); - fptype_sv& imag = kernelAccessIx2( buffer, 1 ); - printf( "C_ACCESS::kernelAccess: pbuffer=%p pr=%p pi=%p\n", buffer, &real, &imag ); - return cxtype_sv_ref( real, imag ); - */ - return cxtype_sv_ref( kernelAccessIx2( buffer, 0 ), - kernelAccessIx2( buffer, 1 ) ); - } - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (const, SCALAR OR VECTOR) ===> cxtype_sv kernelAccessConst( const fptype* buffer ) <===] - static __host__ __device__ inline cxtype_sv - kernelAccessConst( const fptype* buffer ) - { - /* - const fptype_sv& real = kernelAccessIx2Const( buffer, 0 ); - const fptype_sv& imag = kernelAccessIx2Const( buffer, 1 ); - printf( "C_ACCESS::kernelAccessConst: pbuffer=%p pr=%p pi=%p\n", buffer, &real, &imag ); - return cxtype_sv( real, imag ); + } */ - return cxtype_sv( kernelAccessIx2Const( buffer, 0 ), - kernelAccessIx2Const( buffer, 1 ) ); - } -}; - -//---------------------------------------------------------------------------- - -typedef KernelAccessCouplings HostAccessCouplings; -typedef KernelAccessCouplings DeviceAccessCouplings; -//---------------------------------------------------------------------------- + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (non const, SCALAR OR VECTOR) ===> cxtype_sv_ref kernelAccess( fptype* buffer ) <===] + static __host__ __device__ inline cxtype_sv_ref + kernelAccess( fptype* buffer ) + { + /* + fptype_sv& real = kernelAccessIx2( buffer, 0 ); + fptype_sv& imag = kernelAccessIx2( buffer, 1 ); + printf( "C_ACCESS::kernelAccess: pbuffer=%p pr=%p pi=%p\n", buffer, &real, &imag ); + return cxtype_sv_ref( real, imag ); + */ + return cxtype_sv_ref( kernelAccessIx2( buffer, 0 ), + kernelAccessIx2( buffer, 1 ) ); + } + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (const, SCALAR OR VECTOR) ===> cxtype_sv kernelAccessConst( const fptype* buffer ) <===] + static __host__ __device__ inline cxtype_sv + kernelAccessConst( const fptype* buffer ) + { + /* + const fptype_sv& real = kernelAccessIx2Const( buffer, 0 ); + const fptype_sv& imag = kernelAccessIx2Const( buffer, 1 ); + printf( "C_ACCESS::kernelAccessConst: pbuffer=%p pr=%p pi=%p\n", buffer, &real, &imag ); + return cxtype_sv( real, imag ); + */ + return cxtype_sv( kernelAccessIx2Const( buffer, 0 ), + kernelAccessIx2Const( buffer, 1 ) ); + } + }; + + //---------------------------------------------------------------------------- + + typedef KernelAccessCouplings HostAccessCouplings; + typedef KernelAccessCouplings DeviceAccessCouplings; + + //---------------------------------------------------------------------------- + +} // end namespace mg5amcGpu/mg5amcCpu #endif // MemoryAccessCouplings_H diff --git a/epochX/cudacpp/heft_gg_h.sa/SubProcesses/MemoryAccessCouplingsFixed.h b/epochX/cudacpp/heft_gg_h.sa/SubProcesses/MemoryAccessCouplingsFixed.h index 81193ab261..dc0d93afff 100644 --- a/epochX/cudacpp/heft_gg_h.sa/SubProcesses/MemoryAccessCouplingsFixed.h +++ b/epochX/cudacpp/heft_gg_h.sa/SubProcesses/MemoryAccessCouplingsFixed.h @@ -13,63 +13,72 @@ //#include "MemoryAccessHelpers.h" -//---------------------------------------------------------------------------- - -// A class describing the internal layout of memory buffers for fixed couplings -// This implementation uses a STRUCT[ndcoup][nx2] "super-buffer" layout: in practice, the cIPC global array -// From the "super-buffer" for ndcoup different couplings, use idcoupAccessBuffer to access the buffer for one specific coupling -// [If many implementations are used, a suffix _Sv1 should be appended to the class name] -class MemoryAccessCouplingsFixedBase //_Sv1 +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { -public: + //---------------------------------------------------------------------------- - // Locate the buffer for a single coupling (output) in a memory super-buffer (input) from the given coupling index (input) - // [Signature (const) ===> const fptype* iicoupAccessBufferConst( const fptype* buffer, const int iicoup ) <===] - static __host__ __device__ inline const fptype* - iicoupAccessBufferConst( const fptype* buffer, // input "super-buffer": in practice, the cIPC global array - const int iicoup ) + // A class describing the internal layout of memory buffers for fixed couplings + // This implementation uses a STRUCT[ndcoup][nx2] "super-buffer" layout: in practice, the cIPC global array + // From the "super-buffer" for ndcoup different couplings, use idcoupAccessBuffer to access the buffer for one specific coupling + // [If many implementations are used, a suffix _Sv1 should be appended to the class name] + class MemoryAccessCouplingsFixedBase //_Sv1 { - constexpr int ix2 = 0; - // NB! this effectively adds an offset "iicoup * nx2" - return &( buffer[iicoup * nx2 + ix2] ); // STRUCT[idcoup][ix2] - } - -private: - - // The number of floating point components of a complex number - static constexpr int nx2 = mgOnGpu::nx2; -}; - -//---------------------------------------------------------------------------- + public: + + // Locate the buffer for a single coupling (output) in a memory super-buffer (input) from the given coupling index (input) + // [Signature (const) ===> const fptype* iicoupAccessBufferConst( const fptype* buffer, const int iicoup ) <===] + static __host__ __device__ inline const fptype* + iicoupAccessBufferConst( const fptype* buffer, // input "super-buffer": in practice, the cIPC global array + const int iicoup ) + { + constexpr int ix2 = 0; + // NB! this effectively adds an offset "iicoup * nx2" + return &( buffer[iicoup * nx2 + ix2] ); // STRUCT[idcoup][ix2] + } + + private: + + // The number of floating point components of a complex number + static constexpr int nx2 = mgOnGpu::nx2; + }; + + //---------------------------------------------------------------------------- + + // A class providing access to memory buffers for a given event, based on implicit kernel rules + // Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations + template + class KernelAccessCouplingsFixed + { + public: -// A class providing access to memory buffers for a given event, based on implicit kernel rules -// Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations -template -class KernelAccessCouplingsFixed -{ -public: + // Expose selected functions from MemoryAccessCouplingsFixedBase + static constexpr auto iicoupAccessBufferConst = MemoryAccessCouplingsFixedBase::iicoupAccessBufferConst; - // Expose selected functions from MemoryAccessCouplingsFixedBase - static constexpr auto iicoupAccessBufferConst = MemoryAccessCouplingsFixedBase::iicoupAccessBufferConst; + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (const, SCALAR OR VECTOR) ===> cxtype_sv kernelAccessConst( const fptype* buffer ) <===] + static __host__ __device__ inline const cxtype_sv + kernelAccessConst( const fptype* buffer ) + { + // TRIVIAL ACCESS to fixed-couplings buffers! + //return cxmake( fptype_sv{ buffer[0] }, fptype_sv{ buffer[1] } ); // NO! BUG #339! + const fptype_sv r_sv = fptype_sv{ 0 } + buffer[0]; + const fptype_sv i_sv = fptype_sv{ 0 } + buffer[1]; + return cxmake( r_sv, i_sv ); // ugly but effective + } + }; - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (const, SCALAR OR VECTOR) ===> cxtype_sv kernelAccessConst( const fptype* buffer ) <===] - static __host__ __device__ inline const cxtype_sv - kernelAccessConst( const fptype* buffer ) - { - // TRIVIAL ACCESS to fixed-couplings buffers! - //return cxmake( fptype_sv{ buffer[0] }, fptype_sv{ buffer[1] } ); // NO! BUG #339! - const fptype_sv r_sv = fptype_sv{ 0 } + buffer[0]; - const fptype_sv i_sv = fptype_sv{ 0 } + buffer[1]; - return cxmake( r_sv, i_sv ); // ugly but effective - } -}; + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- + typedef KernelAccessCouplingsFixed HostAccessCouplingsFixed; + typedef KernelAccessCouplingsFixed DeviceAccessCouplingsFixed; -typedef KernelAccessCouplingsFixed HostAccessCouplingsFixed; -typedef KernelAccessCouplingsFixed DeviceAccessCouplingsFixed; + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- +} // end namespace mg5amcGpu/mg5amcCpu #endif // MemoryAccessCouplingsFixed_H diff --git a/epochX/cudacpp/heft_gg_h.sa/SubProcesses/MemoryAccessDenominators.h b/epochX/cudacpp/heft_gg_h.sa/SubProcesses/MemoryAccessDenominators.h index e76ae65ff9..3bce635718 100644 --- a/epochX/cudacpp/heft_gg_h.sa/SubProcesses/MemoryAccessDenominators.h +++ b/epochX/cudacpp/heft_gg_h.sa/SubProcesses/MemoryAccessDenominators.h @@ -9,15 +9,24 @@ #include "MemoryAccessGs.h" -//---------------------------------------------------------------------------- +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif +{ + //---------------------------------------------------------------------------- + + // A class describing the internal layout of memory buffers for denominators + // This implementation reuses the plain ARRAY[nevt] implementation of MemoryAccessGs -// A class describing the internal layout of memory buffers for denominators -// This implementation reuses the plain ARRAY[nevt] implementation of MemoryAccessGs + typedef KernelAccessGs HostAccessDenominators; + typedef KernelAccessGs DeviceAccessDenominators; -typedef KernelAccessGs HostAccessDenominators; -typedef KernelAccessGs DeviceAccessDenominators; + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- +} // end namespace mg5amcGpu/mg5amcCpu #endif #endif // MemoryAccessDenominators_H diff --git a/epochX/cudacpp/heft_gg_h.sa/SubProcesses/MemoryAccessGs.h b/epochX/cudacpp/heft_gg_h.sa/SubProcesses/MemoryAccessGs.h index 8996c0554c..31311aa375 100644 --- a/epochX/cudacpp/heft_gg_h.sa/SubProcesses/MemoryAccessGs.h +++ b/epochX/cudacpp/heft_gg_h.sa/SubProcesses/MemoryAccessGs.h @@ -12,142 +12,151 @@ #include "MemoryAccessVectors.h" #include "MemoryBuffers.h" // for HostBufferMatrixElements::isaligned -//---------------------------------------------------------------------------- - -// A class describing the internal layout of memory buffers for Gs -// This implementation uses a plain ARRAY[nevt] -// [If many implementations are used, a suffix _ARRAYv1 should be appended to the class name] -class MemoryAccessGsBase //_ARRAYv1 +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { -private: - - friend class MemoryAccessHelper; - friend class KernelAccessHelper; - friend class KernelAccessHelper; - - //-------------------------------------------------------------------------- - // NB all KernelLaunchers assume that memory access can be decomposed as "accessField = decodeRecord( accessRecord )" - // (in other words: first locate the event record for a given event, then locate an element in that record) - //-------------------------------------------------------------------------- - - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] - static __host__ __device__ inline fptype* - ieventAccessRecord( fptype* buffer, - const int ievt ) - { - return &( buffer[ievt] ); // ARRAY[nevt] - } - - //-------------------------------------------------------------------------- + //---------------------------------------------------------------------------- - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, Ts... args ) <===] - // [NB: expand variadic template "Ts... args" to empty and rename "Field" as empty] - static __host__ __device__ inline fptype& - decodeRecord( fptype* buffer ) + // A class describing the internal layout of memory buffers for Gs + // This implementation uses a plain ARRAY[nevt] + // [If many implementations are used, a suffix _ARRAYv1 should be appended to the class name] + class MemoryAccessGsBase //_ARRAYv1 { - constexpr int ievt = 0; - return buffer[ievt]; // ARRAY[nevt] - } -}; - -//---------------------------------------------------------------------------- - -// A class providing access to memory buffers for a given event, based on explicit event numbers -// Its methods use the MemoryAccessHelper templates - note the use of the template keyword in template function instantiations -class MemoryAccessGs : public MemoryAccessGsBase -{ -public: - - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] - static constexpr auto ieventAccessRecord = MemoryAccessHelper::ieventAccessRecord; - - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (const) ===> const fptype* ieventAccessRecordConst( const fptype* buffer, const int ievt ) <===] - static constexpr auto ieventAccessRecordConst = MemoryAccessHelper::ieventAccessRecordConst; - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer ) <===] - static constexpr auto decodeRecord = MemoryAccessHelper::decodeRecord; - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (const) ===> const fptype& decodeRecordConst( const fptype* buffer ) <===] - static constexpr auto decodeRecordConst = - MemoryAccessHelper::template decodeRecordConst<>; - - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (non-const) ===> fptype& ieventAccess( fptype* buffer, const ievt ) <===] - static constexpr auto ieventAccess = - MemoryAccessHelper::template ieventAccessField<>; - - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (const) ===> const fptype& ieventAccessConst( const fptype* buffer, const ievt ) <===] - static constexpr auto ieventAccessConst = - MemoryAccessHelper::template ieventAccessFieldConst<>; -}; - -//---------------------------------------------------------------------------- - -// A class providing access to memory buffers for a given event, based on implicit kernel rules -// Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations -template -class KernelAccessGs -{ -public: - - // Expose selected functions from MemoryAccessGs - static constexpr auto ieventAccessRecord = MemoryAccessGs::ieventAccessRecord; - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (non-const, SCALAR) ===> fptype& kernelAccess( fptype* buffer ) <===] - static constexpr auto kernelAccess_s = - KernelAccessHelper::template kernelAccessField<>; // requires cuda 11.4 - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) - // [Signature (non-const, SCALAR OR VECTOR) ===> fptype_sv& kernelAccess( fptype* buffer ) <===] - static __host__ __device__ inline fptype_sv& - kernelAccess( fptype* buffer ) + private: + + friend class MemoryAccessHelper; + friend class KernelAccessHelper; + friend class KernelAccessHelper; + + //-------------------------------------------------------------------------- + // NB all KernelLaunchers assume that memory access can be decomposed as "accessField = decodeRecord( accessRecord )" + // (in other words: first locate the event record for a given event, then locate an element in that record) + //-------------------------------------------------------------------------- + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] + static __host__ __device__ inline fptype* + ieventAccessRecord( fptype* buffer, + const int ievt ) + { + return &( buffer[ievt] ); // ARRAY[nevt] + } + + //-------------------------------------------------------------------------- + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, Ts... args ) <===] + // [NB: expand variadic template "Ts... args" to empty and rename "Field" as empty] + static __host__ __device__ inline fptype& + decodeRecord( fptype* buffer ) + { + constexpr int ievt = 0; + return buffer[ievt]; // ARRAY[nevt] + } + }; + + //---------------------------------------------------------------------------- + + // A class providing access to memory buffers for a given event, based on explicit event numbers + // Its methods use the MemoryAccessHelper templates - note the use of the template keyword in template function instantiations + class MemoryAccessGs : public MemoryAccessGsBase + { + public: + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] + static constexpr auto ieventAccessRecord = MemoryAccessHelper::ieventAccessRecord; + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (const) ===> const fptype* ieventAccessRecordConst( const fptype* buffer, const int ievt ) <===] + static constexpr auto ieventAccessRecordConst = MemoryAccessHelper::ieventAccessRecordConst; + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer ) <===] + static constexpr auto decodeRecord = MemoryAccessHelper::decodeRecord; + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (const) ===> const fptype& decodeRecordConst( const fptype* buffer ) <===] + static constexpr auto decodeRecordConst = + MemoryAccessHelper::template decodeRecordConst<>; + + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (non-const) ===> fptype& ieventAccess( fptype* buffer, const ievt ) <===] + static constexpr auto ieventAccess = + MemoryAccessHelper::template ieventAccessField<>; + + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (const) ===> const fptype& ieventAccessConst( const fptype* buffer, const ievt ) <===] + static constexpr auto ieventAccessConst = + MemoryAccessHelper::template ieventAccessFieldConst<>; + }; + + //---------------------------------------------------------------------------- + + // A class providing access to memory buffers for a given event, based on implicit kernel rules + // Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations + template + class KernelAccessGs { - fptype& out = kernelAccess_s( buffer ); + public: + + // Expose selected functions from MemoryAccessGs + static constexpr auto ieventAccessRecord = MemoryAccessGs::ieventAccessRecord; + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (non-const, SCALAR) ===> fptype& kernelAccess( fptype* buffer ) <===] + static constexpr auto kernelAccess_s = + KernelAccessHelper::template kernelAccessField<>; // requires cuda 11.4 + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) + // [Signature (non-const, SCALAR OR VECTOR) ===> fptype_sv& kernelAccess( fptype* buffer ) <===] + static __host__ __device__ inline fptype_sv& + kernelAccess( fptype* buffer ) + { + fptype& out = kernelAccess_s( buffer ); #ifndef MGONGPU_CPPSIMD - return out; + return out; #else - // NB: derived from MemoryAccessMomenta, restricting the implementation to contiguous aligned arrays (#435) - static_assert( mg5amcCpu::HostBufferGs::isaligned() ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) - //assert( (size_t)( buffer ) % mgOnGpu::cppAlign == 0 ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) - return mg5amcCpu::fptypevFromAlignedArray( out ); // SIMD bulk load of neppV, use reinterpret_cast + // NB: derived from MemoryAccessMomenta, restricting the implementation to contiguous aligned arrays (#435) + static_assert( mg5amcCpu::HostBufferGs::isaligned() ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) + //assert( (size_t)( buffer ) % mgOnGpu::cppAlign == 0 ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) + return mg5amcCpu::fptypevFromAlignedArray( out ); // SIMD bulk load of neppV, use reinterpret_cast #endif - } - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (const, SCALAR) ===> const fptype& kernelAccessConst( const fptype* buffer ) <===] - static constexpr auto kernelAccessConst_s = - KernelAccessHelper::template kernelAccessFieldConst<>; // requires cuda 11.4 - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) - // [Signature (const, SCALAR OR VECTOR) ===> const fptype_sv& kernelAccess( const fptype* buffer ) <===] - static __host__ __device__ inline const fptype_sv& - kernelAccessConst( const fptype* buffer ) - { - const fptype& out = kernelAccessConst_s( buffer ); + } + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (const, SCALAR) ===> const fptype& kernelAccessConst( const fptype* buffer ) <===] + static constexpr auto kernelAccessConst_s = + KernelAccessHelper::template kernelAccessFieldConst<>; // requires cuda 11.4 + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) + // [Signature (const, SCALAR OR VECTOR) ===> const fptype_sv& kernelAccess( const fptype* buffer ) <===] + static __host__ __device__ inline const fptype_sv& + kernelAccessConst( const fptype* buffer ) + { + const fptype& out = kernelAccessConst_s( buffer ); #ifndef MGONGPU_CPPSIMD - return out; + return out; #else - // NB: derived from MemoryAccessMomenta, restricting the implementation to contiguous aligned arrays (#435) - static_assert( mg5amcCpu::HostBufferGs::isaligned() ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) - //assert( (size_t)( buffer ) % mgOnGpu::cppAlign == 0 ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) - return mg5amcCpu::fptypevFromAlignedArray( out ); // SIMD bulk load of neppV, use reinterpret_cast + // NB: derived from MemoryAccessMomenta, restricting the implementation to contiguous aligned arrays (#435) + static_assert( mg5amcCpu::HostBufferGs::isaligned() ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) + //assert( (size_t)( buffer ) % mgOnGpu::cppAlign == 0 ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) + return mg5amcCpu::fptypevFromAlignedArray( out ); // SIMD bulk load of neppV, use reinterpret_cast #endif - } -}; + } + }; + + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- + typedef KernelAccessGs HostAccessGs; + typedef KernelAccessGs DeviceAccessGs; -typedef KernelAccessGs HostAccessGs; -typedef KernelAccessGs DeviceAccessGs; + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- +} // end namespace mg5amcGpu/mg5amcCpu #endif // MemoryAccessGs_H diff --git a/epochX/cudacpp/heft_gg_h.sa/SubProcesses/MemoryAccessMatrixElements.h b/epochX/cudacpp/heft_gg_h.sa/SubProcesses/MemoryAccessMatrixElements.h index b2a82d9acf..f32e6fea5b 100644 --- a/epochX/cudacpp/heft_gg_h.sa/SubProcesses/MemoryAccessMatrixElements.h +++ b/epochX/cudacpp/heft_gg_h.sa/SubProcesses/MemoryAccessMatrixElements.h @@ -12,126 +12,135 @@ #include "MemoryAccessVectors.h" #include "MemoryBuffers.h" // for HostBufferMatrixElements::isaligned -//---------------------------------------------------------------------------- - -// A class describing the internal layout of memory buffers for matrix elements -// This implementation uses a plain ARRAY[nevt] -// [If many implementations are used, a suffix _ARRAYv1 should be appended to the class name] -class MemoryAccessMatrixElementsBase //_ARRAYv1 +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { -private: - - friend class MemoryAccessHelper; - friend class KernelAccessHelper; - friend class KernelAccessHelper; - - //-------------------------------------------------------------------------- - // NB all KernelLaunchers assume that memory access can be decomposed as "accessField = decodeRecord( accessRecord )" - // (in other words: first locate the event record for a given event, then locate an element in that record) - //-------------------------------------------------------------------------- - - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] - static __host__ __device__ inline fptype* - ieventAccessRecord( fptype* buffer, - const int ievt ) - { - return &( buffer[ievt] ); // ARRAY[nevt] - } + //---------------------------------------------------------------------------- - //-------------------------------------------------------------------------- - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, Ts... args ) <===] - // [NB: expand variadic template "Ts... args" to empty and rename "Field" as empty] - static __host__ __device__ inline fptype& - decodeRecord( fptype* buffer ) + // A class describing the internal layout of memory buffers for matrix elements + // This implementation uses a plain ARRAY[nevt] + // [If many implementations are used, a suffix _ARRAYv1 should be appended to the class name] + class MemoryAccessMatrixElementsBase //_ARRAYv1 { - constexpr int ievt = 0; - return buffer[ievt]; // ARRAY[nevt] - } -}; - -//---------------------------------------------------------------------------- - -// A class providing access to memory buffers for a given event, based on explicit event numbers -// Its methods use the MemoryAccessHelper templates - note the use of the template keyword in template function instantiations -class MemoryAccessMatrixElements : public MemoryAccessMatrixElementsBase -{ -public: - - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] - static constexpr auto ieventAccessRecord = MemoryAccessHelper::ieventAccessRecord; - - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (const) ===> const fptype* ieventAccessRecordConst( const fptype* buffer, const int ievt ) <===] - static constexpr auto ieventAccessRecordConst = MemoryAccessHelper::ieventAccessRecordConst; - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer ) <===] - static constexpr auto decodeRecord = MemoryAccessHelper::decodeRecord; - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (const) ===> const fptype& decodeRecordConst( const fptype* buffer ) <===] - static constexpr auto decodeRecordConst = - MemoryAccessHelper::template decodeRecordConst<>; - - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (non-const) ===> fptype& ieventAccess( fptype* buffer, const ievt ) <===] - static constexpr auto ieventAccess = - MemoryAccessHelper::template ieventAccessField<>; - - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (const) ===> const fptype& ieventAccessConst( const fptype* buffer, const ievt ) <===] - static constexpr auto ieventAccessConst = - MemoryAccessHelper::template ieventAccessFieldConst<>; -}; - -//---------------------------------------------------------------------------- - -// A class providing access to memory buffers for a given event, based on implicit kernel rules -// Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations -template -class KernelAccessMatrixElements -{ -public: - - // Expose selected functions from MemoryAccessMatrixElements - static constexpr auto ieventAccessRecord = MemoryAccessMatrixElements::ieventAccessRecord; - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (non-const, SCALAR) ===> fptype& kernelAccess_s( fptype* buffer ) <===] - static constexpr auto kernelAccess_s = - KernelAccessHelper::template kernelAccessField<>; // requires cuda 11.4 - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) - // [Signature (non const, SCALAR OR VECTOR) ===> fptype_sv& kernelAccess( const fptype* buffer ) <===] - static __host__ __device__ inline fptype_sv& - kernelAccess( fptype* buffer ) + private: + + friend class MemoryAccessHelper; + friend class KernelAccessHelper; + friend class KernelAccessHelper; + + //-------------------------------------------------------------------------- + // NB all KernelLaunchers assume that memory access can be decomposed as "accessField = decodeRecord( accessRecord )" + // (in other words: first locate the event record for a given event, then locate an element in that record) + //-------------------------------------------------------------------------- + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] + static __host__ __device__ inline fptype* + ieventAccessRecord( fptype* buffer, + const int ievt ) + { + return &( buffer[ievt] ); // ARRAY[nevt] + } + + //-------------------------------------------------------------------------- + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, Ts... args ) <===] + // [NB: expand variadic template "Ts... args" to empty and rename "Field" as empty] + static __host__ __device__ inline fptype& + decodeRecord( fptype* buffer ) + { + constexpr int ievt = 0; + return buffer[ievt]; // ARRAY[nevt] + } + }; + + //---------------------------------------------------------------------------- + + // A class providing access to memory buffers for a given event, based on explicit event numbers + // Its methods use the MemoryAccessHelper templates - note the use of the template keyword in template function instantiations + class MemoryAccessMatrixElements : public MemoryAccessMatrixElementsBase + { + public: + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] + static constexpr auto ieventAccessRecord = MemoryAccessHelper::ieventAccessRecord; + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (const) ===> const fptype* ieventAccessRecordConst( const fptype* buffer, const int ievt ) <===] + static constexpr auto ieventAccessRecordConst = MemoryAccessHelper::ieventAccessRecordConst; + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer ) <===] + static constexpr auto decodeRecord = MemoryAccessHelper::decodeRecord; + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (const) ===> const fptype& decodeRecordConst( const fptype* buffer ) <===] + static constexpr auto decodeRecordConst = + MemoryAccessHelper::template decodeRecordConst<>; + + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (non-const) ===> fptype& ieventAccess( fptype* buffer, const ievt ) <===] + static constexpr auto ieventAccess = + MemoryAccessHelper::template ieventAccessField<>; + + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (const) ===> const fptype& ieventAccessConst( const fptype* buffer, const ievt ) <===] + static constexpr auto ieventAccessConst = + MemoryAccessHelper::template ieventAccessFieldConst<>; + }; + + //---------------------------------------------------------------------------- + + // A class providing access to memory buffers for a given event, based on implicit kernel rules + // Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations + template + class KernelAccessMatrixElements { - fptype& out = kernelAccess_s( buffer ); + public: + + // Expose selected functions from MemoryAccessMatrixElements + static constexpr auto ieventAccessRecord = MemoryAccessMatrixElements::ieventAccessRecord; + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (non-const, SCALAR) ===> fptype& kernelAccess_s( fptype* buffer ) <===] + static constexpr auto kernelAccess_s = + KernelAccessHelper::template kernelAccessField<>; // requires cuda 11.4 + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) + // [Signature (non const, SCALAR OR VECTOR) ===> fptype_sv& kernelAccess( const fptype* buffer ) <===] + static __host__ __device__ inline fptype_sv& + kernelAccess( fptype* buffer ) + { + fptype& out = kernelAccess_s( buffer ); #ifndef MGONGPU_CPPSIMD - return out; + return out; #else - // NB: derived from MemoryAccessMomenta, restricting the implementation to contiguous aligned arrays (#435) - static_assert( mg5amcCpu::HostBufferMatrixElements::isaligned() ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) - //assert( (size_t)( buffer ) % mgOnGpu::cppAlign == 0 ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) - return mg5amcCpu::fptypevFromAlignedArray( out ); // SIMD bulk load of neppV, use reinterpret_cast + // NB: derived from MemoryAccessMomenta, restricting the implementation to contiguous aligned arrays (#435) + static_assert( mg5amcCpu::HostBufferMatrixElements::isaligned() ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) + //assert( (size_t)( buffer ) % mgOnGpu::cppAlign == 0 ); // ASSUME ALIGNED ARRAYS (reinterpret_cast will segfault otherwise!) + return mg5amcCpu::fptypevFromAlignedArray( out ); // SIMD bulk load of neppV, use reinterpret_cast #endif - } + } + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (const) ===> const fptype& kernelAccessConst( const fptype* buffer ) <===] + static constexpr auto kernelAccessConst = + KernelAccessHelper::template kernelAccessFieldConst<>; // requires cuda 11.4 + }; - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (const) ===> const fptype& kernelAccessConst( const fptype* buffer ) <===] - static constexpr auto kernelAccessConst = - KernelAccessHelper::template kernelAccessFieldConst<>; // requires cuda 11.4 -}; + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- + typedef KernelAccessMatrixElements HostAccessMatrixElements; + typedef KernelAccessMatrixElements DeviceAccessMatrixElements; -typedef KernelAccessMatrixElements HostAccessMatrixElements; -typedef KernelAccessMatrixElements DeviceAccessMatrixElements; + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- +} // end namespace mg5amcGpu/mg5amcCpu #endif // MemoryAccessMatrixElements_H diff --git a/epochX/cudacpp/heft_gg_h.sa/SubProcesses/MemoryAccessMomenta.h b/epochX/cudacpp/heft_gg_h.sa/SubProcesses/MemoryAccessMomenta.h index 0ac4faa3c7..29266de32c 100644 --- a/epochX/cudacpp/heft_gg_h.sa/SubProcesses/MemoryAccessMomenta.h +++ b/epochX/cudacpp/heft_gg_h.sa/SubProcesses/MemoryAccessMomenta.h @@ -12,261 +12,264 @@ #include "MemoryAccessHelpers.h" #include "MemoryAccessVectors.h" +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) #ifdef __CUDACC__ -using mg5amcGpu::CPPProcess; +namespace mg5amcGpu #else -using mg5amcCpu::CPPProcess; +namespace mg5amcCpu #endif - -//---------------------------------------------------------------------------- - -// A class describing the internal layout of memory buffers for momenta -// This implementation uses an AOSOA[npagM][npar][np4][neppM] where nevt=npagM*neppM -// [If many implementations are used, a suffix _AOSOAv1 should be appended to the class name] -class MemoryAccessMomentaBase //_AOSOAv1 { -public: + //---------------------------------------------------------------------------- + + // A class describing the internal layout of memory buffers for momenta + // This implementation uses an AOSOA[npagM][npar][np4][neppM] where nevt=npagM*neppM + // [If many implementations are used, a suffix _AOSOAv1 should be appended to the class name] + class MemoryAccessMomentaBase //_AOSOAv1 + { + public: - // Number of Events Per Page in the momenta AOSOA memory buffer layout - // (these are all best kept as a compile-time constants: see issue #23) + // Number of Events Per Page in the momenta AOSOA memory buffer layout + // (these are all best kept as a compile-time constants: see issue #23) #ifdef __CUDACC__ /* clang-format off */ - // ----------------------------------------------------------------------------------------------- - // --- GPUs: neppM is best set to a power of 2 times the number of fptype's in a 32-byte cacheline - // --- This is relevant to ensure coalesced access to momenta in global memory - // --- Note that neppR is hardcoded and may differ from neppM and neppV on some platforms - // ----------------------------------------------------------------------------------------------- - //static constexpr int neppM = 64/sizeof(fptype); // 2x 32-byte GPU cache lines (512 bits): 8 (DOUBLE) or 16 (FLOAT) - static constexpr int neppM = 32/sizeof(fptype); // (DEFAULT) 32-byte GPU cache line (256 bits): 4 (DOUBLE) or 8 (FLOAT) - //static constexpr int neppM = 1; // *** NB: this is equivalent to AOS *** (slower: 1.03E9 instead of 1.11E9 in eemumu) + // ----------------------------------------------------------------------------------------------- + // --- GPUs: neppM is best set to a power of 2 times the number of fptype's in a 32-byte cacheline + // --- This is relevant to ensure coalesced access to momenta in global memory + // --- Note that neppR is hardcoded and may differ from neppM and neppV on some platforms + // ----------------------------------------------------------------------------------------------- + //static constexpr int neppM = 64/sizeof(fptype); // 2x 32-byte GPU cache lines (512 bits): 8 (DOUBLE) or 16 (FLOAT) + static constexpr int neppM = 32/sizeof(fptype); // (DEFAULT) 32-byte GPU cache line (256 bits): 4 (DOUBLE) or 8 (FLOAT) + //static constexpr int neppM = 1; // *** NB: this is equivalent to AOS *** (slower: 1.03E9 instead of 1.11E9 in eemumu) #else - // ----------------------------------------------------------------------------------------------- - // --- CPUs: neppM is best set equal to the number of fptype's (neppV) in a vector register - // --- This is relevant to ensure faster access to momenta from C++ memory cache lines - // --- However, neppM is now decoupled from neppV (issue #176) and can be separately hardcoded - // --- In practice, neppR, neppM and neppV could now (in principle) all be different - // ----------------------------------------------------------------------------------------------- + // ----------------------------------------------------------------------------------------------- + // --- CPUs: neppM is best set equal to the number of fptype's (neppV) in a vector register + // --- This is relevant to ensure faster access to momenta from C++ memory cache lines + // --- However, neppM is now decoupled from neppV (issue #176) and can be separately hardcoded + // --- In practice, neppR, neppM and neppV could now (in principle) all be different + // ----------------------------------------------------------------------------------------------- #ifdef MGONGPU_CPPSIMD - static constexpr int neppM = MGONGPU_CPPSIMD; // (DEFAULT) neppM=neppV for optimal performance - //static constexpr int neppM = 64/sizeof(fptype); // maximum CPU vector width (512 bits): 8 (DOUBLE) or 16 (FLOAT) - //static constexpr int neppM = 32/sizeof(fptype); // lower CPU vector width (256 bits): 4 (DOUBLE) or 8 (FLOAT) - //static constexpr int neppM = 1; // *** NB: this is equivalent to AOS *** (slower: 4.66E6 instead of 5.09E9 in eemumu) - //static constexpr int neppM = MGONGPU_CPPSIMD*2; // FOR TESTS + static constexpr int neppM = MGONGPU_CPPSIMD; // (DEFAULT) neppM=neppV for optimal performance + //static constexpr int neppM = 64/sizeof(fptype); // maximum CPU vector width (512 bits): 8 (DOUBLE) or 16 (FLOAT) + //static constexpr int neppM = 32/sizeof(fptype); // lower CPU vector width (256 bits): 4 (DOUBLE) or 8 (FLOAT) + //static constexpr int neppM = 1; // *** NB: this is equivalent to AOS *** (slower: 4.66E6 instead of 5.09E9 in eemumu) + //static constexpr int neppM = MGONGPU_CPPSIMD*2; // FOR TESTS #else - static constexpr int neppM = 1; // (DEFAULT) neppM=neppV for optimal performance (NB: this is equivalent to AOS) + static constexpr int neppM = 1; // (DEFAULT) neppM=neppV for optimal performance (NB: this is equivalent to AOS) #endif #endif /* clang-format on */ - // SANITY CHECK: check that neppM is a power of two - static_assert( ispoweroftwo( neppM ), "neppM is not a power of 2" ); + // SANITY CHECK: check that neppM is a power of two + static_assert( ispoweroftwo( neppM ), "neppM is not a power of 2" ); -private: + private: - friend class MemoryAccessHelper; - friend class KernelAccessHelper; - friend class KernelAccessHelper; + friend class MemoryAccessHelper; + friend class KernelAccessHelper; + friend class KernelAccessHelper; - // The number of components of a 4-momentum - static constexpr int np4 = CPPProcess::np4; + // The number of components of a 4-momentum + static constexpr int np4 = CPPProcess::np4; - // The number of particles in this physics process - static constexpr int npar = CPPProcess::npar; + // The number of particles in this physics process + static constexpr int npar = CPPProcess::npar; - //-------------------------------------------------------------------------- - // NB all KernelLaunchers assume that memory access can be decomposed as "accessField = decodeRecord( accessRecord )" - // (in other words: first locate the event record for a given event, then locate an element in that record) - //-------------------------------------------------------------------------- + //-------------------------------------------------------------------------- + // NB all KernelLaunchers assume that memory access can be decomposed as "accessField = decodeRecord( accessRecord )" + // (in other words: first locate the event record for a given event, then locate an element in that record) + //-------------------------------------------------------------------------- - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] - static __host__ __device__ inline fptype* - ieventAccessRecord( fptype* buffer, - const int ievt ) - { - const int ipagM = ievt / neppM; // #event "M-page" - const int ieppM = ievt % neppM; // #event in the current event M-page - constexpr int ip4 = 0; - constexpr int ipar = 0; - return &( buffer[ipagM * npar * np4 * neppM + ipar * np4 * neppM + ip4 * neppM + ieppM] ); // AOSOA[ipagM][ipar][ip4][ieppM] - } - - //-------------------------------------------------------------------------- - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, Ts... args ) <===] - // [NB: expand variadic template "Ts... args" to "const int ip4, const int ipar" and rename "Field" as "Ip4Ipar"] - static __host__ __device__ inline fptype& - decodeRecord( fptype* buffer, - const int ip4, - const int ipar ) + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] + static __host__ __device__ inline fptype* + ieventAccessRecord( fptype* buffer, + const int ievt ) + { + const int ipagM = ievt / neppM; // #event "M-page" + const int ieppM = ievt % neppM; // #event in the current event M-page + constexpr int ip4 = 0; + constexpr int ipar = 0; + return &( buffer[ipagM * npar * np4 * neppM + ipar * np4 * neppM + ip4 * neppM + ieppM] ); // AOSOA[ipagM][ipar][ip4][ieppM] + } + + //-------------------------------------------------------------------------- + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, Ts... args ) <===] + // [NB: expand variadic template "Ts... args" to "const int ip4, const int ipar" and rename "Field" as "Ip4Ipar"] + static __host__ __device__ inline fptype& + decodeRecord( fptype* buffer, + const int ip4, + const int ipar ) + { + constexpr int ipagM = 0; + constexpr int ieppM = 0; + return buffer[ipagM * npar * np4 * neppM + ipar * np4 * neppM + ip4 * neppM + ieppM]; // AOSOA[ipagM][ipar][ip4][ieppM] + } + }; + + //---------------------------------------------------------------------------- + + // A class providing access to memory buffers for a given event, based on explicit event numbers + // Its methods use the MemoryAccessHelper templates - note the use of the template keyword in template function instantiations + class MemoryAccessMomenta : public MemoryAccessMomentaBase { - constexpr int ipagM = 0; - constexpr int ieppM = 0; - return buffer[ipagM * npar * np4 * neppM + ipar * np4 * neppM + ip4 * neppM + ieppM]; // AOSOA[ipagM][ipar][ip4][ieppM] - } -}; + public: + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] + static constexpr auto ieventAccessRecord = MemoryAccessHelper::ieventAccessRecord; + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (const) ===> const fptype* ieventAccessRecordConst( const fptype* buffer, const int ievt ) <===] + static constexpr auto ieventAccessRecordConst = MemoryAccessHelper::ieventAccessRecordConst; + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, const int ipar, const int ipar ) <===] + static constexpr auto decodeRecordIp4Ipar = MemoryAccessHelper::decodeRecord; + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (const) ===> const fptype& decodeRecordConst( const fptype* buffer, const int ipar, const int ipar ) <===] + static constexpr auto decodeRecordIp4IparConst = + MemoryAccessHelper::template decodeRecordConst; + + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (non-const) ===> fptype& ieventAccessIp4Ipar( fptype* buffer, const ievt, const int ipar, const int ipar ) <===] + static constexpr auto ieventAccessIp4Ipar = + MemoryAccessHelper::template ieventAccessField; + + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (const) ===> const fptype& ieventAccessIp4IparConst( const fptype* buffer, const ievt, const int ipar, const int ipar ) <===] + // DEFAULT VERSION + static constexpr auto ieventAccessIp4IparConst = + MemoryAccessHelper::template ieventAccessFieldConst; + + /* + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (const) ===> const fptype& ieventAccessIp4IparConst( const fptype* buffer, const ievt, const int ipar, const int ipar ) <===] + // DEBUG VERSION WITH PRINTOUTS + static __host__ __device__ inline const fptype& + ieventAccessIp4IparConst( const fptype* buffer, + const int ievt, + const int ip4, + const int ipar ) + { + const fptype& out = MemoryAccessHelper::template ieventAccessFieldConst( buffer, ievt, ip4, ipar ); + printf( "ipar=%2d ip4=%2d ievt=%8d out=%8.3f\n", ipar, ip4, ievt, out ); + return out; + } + */ + }; -//---------------------------------------------------------------------------- + //---------------------------------------------------------------------------- -// A class providing access to memory buffers for a given event, based on explicit event numbers -// Its methods use the MemoryAccessHelper templates - note the use of the template keyword in template function instantiations -class MemoryAccessMomenta : public MemoryAccessMomentaBase -{ -public: - - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] - static constexpr auto ieventAccessRecord = MemoryAccessHelper::ieventAccessRecord; - - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (const) ===> const fptype* ieventAccessRecordConst( const fptype* buffer, const int ievt ) <===] - static constexpr auto ieventAccessRecordConst = MemoryAccessHelper::ieventAccessRecordConst; - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, const int ipar, const int ipar ) <===] - static constexpr auto decodeRecordIp4Ipar = MemoryAccessHelper::decodeRecord; - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (const) ===> const fptype& decodeRecordConst( const fptype* buffer, const int ipar, const int ipar ) <===] - static constexpr auto decodeRecordIp4IparConst = - MemoryAccessHelper::template decodeRecordConst; - - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (non-const) ===> fptype& ieventAccessIp4Ipar( fptype* buffer, const ievt, const int ipar, const int ipar ) <===] - static constexpr auto ieventAccessIp4Ipar = - MemoryAccessHelper::template ieventAccessField; - - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (const) ===> const fptype& ieventAccessIp4IparConst( const fptype* buffer, const ievt, const int ipar, const int ipar ) <===] - // DEFAULT VERSION - static constexpr auto ieventAccessIp4IparConst = - MemoryAccessHelper::template ieventAccessFieldConst; - - /* - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (const) ===> const fptype& ieventAccessIp4IparConst( const fptype* buffer, const ievt, const int ipar, const int ipar ) <===] - // DEBUG VERSION WITH PRINTOUTS - static __host__ __device__ inline const fptype& - ieventAccessIp4IparConst( const fptype* buffer, - const int ievt, - const int ip4, - const int ipar ) + // A class providing access to memory buffers for a given event, based on implicit kernel rules + // Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations + template + class KernelAccessMomenta { - const fptype& out = MemoryAccessHelper::template ieventAccessFieldConst( buffer, ievt, ip4, ipar ); - printf( "ipar=%2d ip4=%2d ievt=%8d out=%8.3f\n", ipar, ip4, ievt, out ); - return out; - } - */ -}; - -//---------------------------------------------------------------------------- - -// A class providing access to memory buffers for a given event, based on implicit kernel rules -// Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations -template -class KernelAccessMomenta -{ -public: - - // Expose selected functions from MemoryAccessMomenta - static constexpr auto ieventAccessRecordConst = MemoryAccessMomenta::ieventAccessRecordConst; - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (non-const, SCALAR) ===> fptype& kernelAccessIp4Ipar( fptype* buffer, const int ipar, const int ipar ) <===] - static constexpr auto kernelAccessIp4Ipar = - KernelAccessHelper::template kernelAccessField; - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (const, SCALAR) ===> const fptype& kernelAccessIp4IparConst( const fptype* buffer, const int ipar, const int ipar ) <===] - // DEFAULT VERSION - static constexpr auto kernelAccessIp4IparConst_s = - KernelAccessHelper::template kernelAccessFieldConst; - - /* - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (const, SCALAR) ===> const fptype& kernelAccessIp4IparConst( const fptype* buffer, const int ipar, const int ipar ) <===] - // DEBUG VERSION WITH PRINTOUTS - static __host__ __device__ inline const fptype& - kernelAccessIp4IparConst_s( const fptype* buffer, + public: + + // Expose selected functions from MemoryAccessMomenta + static constexpr auto ieventAccessRecordConst = MemoryAccessMomenta::ieventAccessRecordConst; + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (non-const, SCALAR) ===> fptype& kernelAccessIp4Ipar( fptype* buffer, const int ipar, const int ipar ) <===] + static constexpr auto kernelAccessIp4Ipar = + KernelAccessHelper::template kernelAccessField; + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (const, SCALAR) ===> const fptype& kernelAccessIp4IparConst( const fptype* buffer, const int ipar, const int ipar ) <===] + // DEFAULT VERSION + static constexpr auto kernelAccessIp4IparConst_s = + KernelAccessHelper::template kernelAccessFieldConst; + + /* + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (const, SCALAR) ===> const fptype& kernelAccessIp4IparConst( const fptype* buffer, const int ipar, const int ipar ) <===] + // DEBUG VERSION WITH PRINTOUTS + static __host__ __device__ inline const fptype& + kernelAccessIp4IparConst_s( const fptype* buffer, + const int ip4, + const int ipar ) + { + const fptype& out = KernelAccessHelper::template kernelAccessFieldConst( buffer, ip4, ipar ); + printf( "ipar=%2d ip4=%2d ievt='kernel' out=%8.3f\n", ipar, ip4, out ); + return out; + } + */ + + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (const, SCALAR OR VECTOR) ===> fptype_sv kernelAccessIp4IparConst( const fptype* buffer, const int ipar, const int ipar ) <===] + // FIXME? Eventually return by const reference and support aligned arrays only? + // FIXME? Currently return by value to support also unaligned and arbitrary arrays + static __host__ __device__ inline fptype_sv + kernelAccessIp4IparConst( const fptype* buffer, const int ip4, const int ipar ) - { - const fptype& out = KernelAccessHelper::template kernelAccessFieldConst( buffer, ip4, ipar ); - printf( "ipar=%2d ip4=%2d ievt='kernel' out=%8.3f\n", ipar, ip4, out ); - return out; - } - */ - - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (const, SCALAR OR VECTOR) ===> fptype_sv kernelAccessIp4IparConst( const fptype* buffer, const int ipar, const int ipar ) <===] - // FIXME? Eventually return by const reference and support aligned arrays only? - // FIXME? Currently return by value to support also unaligned and arbitrary arrays - static __host__ __device__ inline fptype_sv - kernelAccessIp4IparConst( const fptype* buffer, - const int ip4, - const int ipar ) - { - const fptype& out = kernelAccessIp4IparConst_s( buffer, ip4, ipar ); + { + const fptype& out = kernelAccessIp4IparConst_s( buffer, ip4, ipar ); #ifndef MGONGPU_CPPSIMD - return out; + return out; #else - constexpr int neppM = MemoryAccessMomentaBase::neppM; - constexpr bool useContiguousEventsIfPossible = true; // DEFAULT - //constexpr bool useContiguousEventsIfPossible = false; // FOR PERFORMANCE TESTS (treat as arbitrary array even if it is an AOSOA) - // Use c++17 "if constexpr": compile-time branching - if constexpr( useContiguousEventsIfPossible && ( neppM >= neppV ) && ( neppM % neppV == 0 ) ) - { - //constexpr bool skipAlignmentCheck = true; // FASTEST (SEGFAULTS IF MISALIGNED ACCESS, NEEDS A SANITY CHECK ELSEWHERE!) - constexpr bool skipAlignmentCheck = false; // DEFAULT: A BIT SLOWER BUT SAFER [ALLOWS MISALIGNED ACCESS] - if constexpr( skipAlignmentCheck ) - { - //static bool first=true; if( first ){ std::cout << "WARNING! assume aligned AOSOA, skip check" << std::endl; first=false; } // SLOWER (5.06E6) - // FASTEST? (5.09E6 in eemumu 512y) - // This assumes alignment for momenta1d without checking - causes segmentation fault in reinterpret_cast if not aligned! - return mg5amcCpu::fptypevFromAlignedArray( out ); // use reinterpret_cast - } - else if( (size_t)( buffer ) % mgOnGpu::cppAlign == 0 ) + constexpr int neppM = MemoryAccessMomentaBase::neppM; + constexpr bool useContiguousEventsIfPossible = true; // DEFAULT + //constexpr bool useContiguousEventsIfPossible = false; // FOR PERFORMANCE TESTS (treat as arbitrary array even if it is an AOSOA) + // Use c++17 "if constexpr": compile-time branching + if constexpr( useContiguousEventsIfPossible && ( neppM >= neppV ) && ( neppM % neppV == 0 ) ) { - //static bool first=true; if( first ){ std::cout << "WARNING! aligned AOSOA, reinterpret cast" << std::endl; first=false; } // SLOWER (5.00E6) - // DEFAULT! A tiny bit (<1%) slower because of the alignment check (5.07E6 in eemumu 512y) - // This explicitly checks buffer alignment to avoid segmentation faults in reinterpret_cast - return mg5amcCpu::fptypevFromAlignedArray( out ); // SIMD bulk load of neppV, use reinterpret_cast + //constexpr bool skipAlignmentCheck = true; // FASTEST (SEGFAULTS IF MISALIGNED ACCESS, NEEDS A SANITY CHECK ELSEWHERE!) + constexpr bool skipAlignmentCheck = false; // DEFAULT: A BIT SLOWER BUT SAFER [ALLOWS MISALIGNED ACCESS] + if constexpr( skipAlignmentCheck ) + { + //static bool first=true; if( first ){ std::cout << "WARNING! assume aligned AOSOA, skip check" << std::endl; first=false; } // SLOWER (5.06E6) + // FASTEST? (5.09E6 in eemumu 512y) + // This assumes alignment for momenta1d without checking - causes segmentation fault in reinterpret_cast if not aligned! + return mg5amcCpu::fptypevFromAlignedArray( out ); // use reinterpret_cast + } + else if( (size_t)( buffer ) % mgOnGpu::cppAlign == 0 ) + { + //static bool first=true; if( first ){ std::cout << "WARNING! aligned AOSOA, reinterpret cast" << std::endl; first=false; } // SLOWER (5.00E6) + // DEFAULT! A tiny bit (<1%) slower because of the alignment check (5.07E6 in eemumu 512y) + // This explicitly checks buffer alignment to avoid segmentation faults in reinterpret_cast + return mg5amcCpu::fptypevFromAlignedArray( out ); // SIMD bulk load of neppV, use reinterpret_cast + } + else + { + //static bool first=true; if( first ){ std::cout << "WARNING! AOSOA but no reinterpret cast" << std::endl; first=false; } // SLOWER (4.93E6) + // A bit (1%) slower (5.05E6 in eemumu 512y) + // This does not require buffer alignment, but it requires AOSOA with neppM>=neppV and neppM%neppV==0 + return mg5amcCpu::fptypevFromUnalignedArray( out ); // SIMD bulk load of neppV, do not use reinterpret_cast (fewer SIMD operations) + } } else { - //static bool first=true; if( first ){ std::cout << "WARNING! AOSOA but no reinterpret cast" << std::endl; first=false; } // SLOWER (4.93E6) - // A bit (1%) slower (5.05E6 in eemumu 512y) - // This does not require buffer alignment, but it requires AOSOA with neppM>=neppV and neppM%neppV==0 - return mg5amcCpu::fptypevFromUnalignedArray( out ); // SIMD bulk load of neppV, do not use reinterpret_cast (fewer SIMD operations) + //static bool first=true; if( first ){ std::cout << "WARNING! arbitrary array" << std::endl; first=false; } // SLOWER (5.08E6) + // ?!Used to be much slower, now a tiny bit faster for AOSOA?! (5.11E6 for AOSOA, 4.64E6 for AOS in eemumu 512y) + // This does not even require AOSOA with neppM>=neppV and neppM%neppV==0 (e.g. can be used with AOS neppM==1) + constexpr int ievt0 = 0; // just make it explicit in the code that buffer refers to a given ievt0 and decoderIeppV fetches event ievt0+ieppV + auto decoderIeppv = [buffer, ip4, ipar]( int ieppV ) + -> const fptype& + { return MemoryAccessMomenta::ieventAccessIp4IparConst( buffer, ievt0 + ieppV, ip4, ipar ); }; + return mg5amcCpu::fptypevFromArbitraryArray( decoderIeppv ); // iterate over ieppV in neppV (no SIMD) } +#endif } - else + + // Is this a HostAccess or DeviceAccess class? + // [this is only needed for a warning printout in rambo.h for nparf==1 #358] + static __host__ __device__ inline constexpr bool + isOnDevice() { - //static bool first=true; if( first ){ std::cout << "WARNING! arbitrary array" << std::endl; first=false; } // SLOWER (5.08E6) - // ?!Used to be much slower, now a tiny bit faster for AOSOA?! (5.11E6 for AOSOA, 4.64E6 for AOS in eemumu 512y) - // This does not even require AOSOA with neppM>=neppV and neppM%neppV==0 (e.g. can be used with AOS neppM==1) - constexpr int ievt0 = 0; // just make it explicit in the code that buffer refers to a given ievt0 and decoderIeppV fetches event ievt0+ieppV - auto decoderIeppv = [buffer, ip4, ipar]( int ieppV ) - -> const fptype& - { return MemoryAccessMomenta::ieventAccessIp4IparConst( buffer, ievt0 + ieppV, ip4, ipar ); }; - return mg5amcCpu::fptypevFromArbitraryArray( decoderIeppv ); // iterate over ieppV in neppV (no SIMD) + return onDevice; } -#endif - } + }; - // Is this a HostAccess or DeviceAccess class? - // [this is only needed for a warning printout in rambo.h for nparf==1 #358] - static __host__ __device__ inline constexpr bool - isOnDevice() - { - return onDevice; - } -}; + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- + typedef KernelAccessMomenta HostAccessMomenta; + typedef KernelAccessMomenta DeviceAccessMomenta; -typedef KernelAccessMomenta HostAccessMomenta; -typedef KernelAccessMomenta DeviceAccessMomenta; + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- +} // end namespace mg5amcGpu/mg5amcCpu #endif // MemoryAccessMomenta_H diff --git a/epochX/cudacpp/heft_gg_h.sa/SubProcesses/MemoryAccessNumerators.h b/epochX/cudacpp/heft_gg_h.sa/SubProcesses/MemoryAccessNumerators.h index b373fd6048..b152183b28 100644 --- a/epochX/cudacpp/heft_gg_h.sa/SubProcesses/MemoryAccessNumerators.h +++ b/epochX/cudacpp/heft_gg_h.sa/SubProcesses/MemoryAccessNumerators.h @@ -9,15 +9,24 @@ #include "MemoryAccessGs.h" -//---------------------------------------------------------------------------- +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif +{ + //---------------------------------------------------------------------------- + + // A class describing the internal layout of memory buffers for numerators + // This implementation reuses the plain ARRAY[nevt] implementation of MemoryAccessGs -// A class describing the internal layout of memory buffers for numerators -// This implementation reuses the plain ARRAY[nevt] implementation of MemoryAccessGs + typedef KernelAccessGs HostAccessNumerators; + typedef KernelAccessGs DeviceAccessNumerators; -typedef KernelAccessGs HostAccessNumerators; -typedef KernelAccessGs DeviceAccessNumerators; + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- +} // end namespace mg5amcGpu/mg5amcCpu #endif #endif // MemoryAccessNumerators_H diff --git a/epochX/cudacpp/heft_gg_h.sa/SubProcesses/MemoryAccessWavefunctions.h b/epochX/cudacpp/heft_gg_h.sa/SubProcesses/MemoryAccessWavefunctions.h index f42f0d34ed..5428aaf933 100644 --- a/epochX/cudacpp/heft_gg_h.sa/SubProcesses/MemoryAccessWavefunctions.h +++ b/epochX/cudacpp/heft_gg_h.sa/SubProcesses/MemoryAccessWavefunctions.h @@ -14,147 +14,156 @@ #define MGONGPU_TRIVIAL_WAVEFUNCTIONS 1 -//---------------------------------------------------------------------------- - -#ifndef MGONGPU_TRIVIAL_WAVEFUNCTIONS - -// A class describing the internal layout of memory buffers for wavefunctions -// This implementation uses an AOSOA[npagW][nw6][nx2][neppW] where nevt=npagW*neppW -// [If many implementations are used, a suffix _AOSOAv1 should be appended to the class name] -class MemoryAccessWavefunctionsBase //_AOSOAv1 +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { -public: - - // Number of Events Per Page in the wavefunction AOSOA memory buffer layout - static constexpr int neppW = 1; // AOS (just a test...) - -private: - - friend class MemoryAccessHelper; - friend class KernelAccessHelper; - friend class KernelAccessHelper; - - // The number of components of a (fermion or vector) wavefunction - static constexpr int nw6 = mgOnGpu::nw6; - - // The number of floating point components of a complex number - static constexpr int nx2 = mgOnGpu::nx2; + //---------------------------------------------------------------------------- - //-------------------------------------------------------------------------- - // NB all KernelLaunchers assume that memory access can be decomposed as "accessField = decodeRecord( accessRecord )" - // (in other words: first locate the event record for a given event, then locate an element in that record) - //-------------------------------------------------------------------------- +#ifndef MGONGPU_TRIVIAL_WAVEFUNCTIONS - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] - static __host__ __device__ inline fptype* - ieventAccessRecord( fptype* buffer, - const int ievt ) + // A class describing the internal layout of memory buffers for wavefunctions + // This implementation uses an AOSOA[npagW][nw6][nx2][neppW] where nevt=npagW*neppW + // [If many implementations are used, a suffix _AOSOAv1 should be appended to the class name] + class MemoryAccessWavefunctionsBase //_AOSOAv1 { - const int ipagW = ievt / neppW; // #event "W-page" - const int ieppW = ievt % neppW; // #event in the current event W-page - constexpr int iw6 = 0; - constexpr int ix2 = 0; - return &( buffer[ipagW * nw6 * nx2 * neppW + iw6 * nx2 * neppW + ix2 * neppW + ieppW] ); // AOSOA[ipagW][iw6][ix2][ieppW] - } - - //-------------------------------------------------------------------------- - - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, Ts... args ) <===] - // [NB: expand variadic template "Ts... args" to "const int iw6, const int ix2" and rename "Field" as "Iw6Ix2"] - static __host__ __device__ inline fptype& - decodeRecord( fptype* buffer, - const int iw6, - const int ix2 ) + public: + + // Number of Events Per Page in the wavefunction AOSOA memory buffer layout + static constexpr int neppW = 1; // AOS (just a test...) + + private: + + friend class MemoryAccessHelper; + friend class KernelAccessHelper; + friend class KernelAccessHelper; + + // The number of components of a (fermion or vector) wavefunction + static constexpr int nw6 = mgOnGpu::nw6; + + // The number of floating point components of a complex number + static constexpr int nx2 = mgOnGpu::nx2; + + //-------------------------------------------------------------------------- + // NB all KernelLaunchers assume that memory access can be decomposed as "accessField = decodeRecord( accessRecord )" + // (in other words: first locate the event record for a given event, then locate an element in that record) + //-------------------------------------------------------------------------- + + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] + static __host__ __device__ inline fptype* + ieventAccessRecord( fptype* buffer, + const int ievt ) + { + const int ipagW = ievt / neppW; // #event "W-page" + const int ieppW = ievt % neppW; // #event in the current event W-page + constexpr int iw6 = 0; + constexpr int ix2 = 0; + return &( buffer[ipagW * nw6 * nx2 * neppW + iw6 * nx2 * neppW + ix2 * neppW + ieppW] ); // AOSOA[ipagW][iw6][ix2][ieppW] + } + + //-------------------------------------------------------------------------- + + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, Ts... args ) <===] + // [NB: expand variadic template "Ts... args" to "const int iw6, const int ix2" and rename "Field" as "Iw6Ix2"] + static __host__ __device__ inline fptype& + decodeRecord( fptype* buffer, + const int iw6, + const int ix2 ) + { + constexpr int ipagW = 0; + constexpr int ieppW = 0; + return buffer[ipagW * nw6 * nx2 * neppW + iw6 * nx2 * neppW + ix2 * neppW + ieppW]; // AOSOA[ipagW][iw6][ix2][ieppW] + } + }; + + //---------------------------------------------------------------------------- + + // A class providing access to memory buffers for a given event, based on explicit event numbers + // Its methods use the MemoryAccessHelper templates - note the use of the template keyword in template function instantiations + class MemoryAccessWavefunctions : public MemoryAccessWavefunctionsBase { - constexpr int ipagW = 0; - constexpr int ieppW = 0; - return buffer[ipagW * nw6 * nx2 * neppW + iw6 * nx2 * neppW + ix2 * neppW + ieppW]; // AOSOA[ipagW][iw6][ix2][ieppW] - } -}; - -//---------------------------------------------------------------------------- + public: -// A class providing access to memory buffers for a given event, based on explicit event numbers -// Its methods use the MemoryAccessHelper templates - note the use of the template keyword in template function instantiations -class MemoryAccessWavefunctions : public MemoryAccessWavefunctionsBase -{ -public: + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] + static constexpr auto ieventAccessRecord = MemoryAccessHelper::ieventAccessRecord; - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (non-const) ===> fptype* ieventAccessRecord( fptype* buffer, const int ievt ) <===] - static constexpr auto ieventAccessRecord = MemoryAccessHelper::ieventAccessRecord; + // Locate an event record (output) in a memory buffer (input) from the given event number (input) + // [Signature (const) ===> const fptype* ieventAccessRecordConst( const fptype* buffer, const int ievt ) <===] + static constexpr auto ieventAccessRecordConst = MemoryAccessHelper::ieventAccessRecordConst; - // Locate an event record (output) in a memory buffer (input) from the given event number (input) - // [Signature (const) ===> const fptype* ieventAccessRecordConst( const fptype* buffer, const int ievt ) <===] - static constexpr auto ieventAccessRecordConst = MemoryAccessHelper::ieventAccessRecordConst; + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, const int iw6, const int ix2 ) <===] + static constexpr auto decodeRecordIw6Ix2 = MemoryAccessHelper::decodeRecord; - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (non-const) ===> fptype& decodeRecord( fptype* buffer, const int iw6, const int ix2 ) <===] - static constexpr auto decodeRecordIw6Ix2 = MemoryAccessHelper::decodeRecord; + // Locate a field (output) of an event record (input) from the given field indexes (input) + // [Signature (const) ===> const fptype& decodeRecordConst( const fptype* buffer, const int iw6, const int ix2 ) <===] + static constexpr auto decodeRecordIw6Ix2Const = + MemoryAccessHelper::template decodeRecordConst; - // Locate a field (output) of an event record (input) from the given field indexes (input) - // [Signature (const) ===> const fptype& decodeRecordConst( const fptype* buffer, const int iw6, const int ix2 ) <===] - static constexpr auto decodeRecordIw6Ix2Const = - MemoryAccessHelper::template decodeRecordConst; + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (non-const) ===> fptype& ieventAccessIw6Ix2( fptype* buffer, const ievt, const int iw6, const int ix2 ) <===] + static constexpr auto ieventAccessIw6Ix2 = + MemoryAccessHelper::template ieventAccessField; - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (non-const) ===> fptype& ieventAccessIw6Ix2( fptype* buffer, const ievt, const int iw6, const int ix2 ) <===] - static constexpr auto ieventAccessIw6Ix2 = - MemoryAccessHelper::template ieventAccessField; - - // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) - // [Signature (const) ===> const fptype& ieventAccessIw6Ix2Const( const fptype* buffer, const ievt, const int iw6, const int ix2 ) <===] - static constexpr auto ieventAccessIw6Ix2Const = - MemoryAccessHelper::template ieventAccessFieldConst; -}; + // Locate a field (output) in a memory buffer (input) from the given event number (input) and the given field indexes (input) + // [Signature (const) ===> const fptype& ieventAccessIw6Ix2Const( const fptype* buffer, const ievt, const int iw6, const int ix2 ) <===] + static constexpr auto ieventAccessIw6Ix2Const = + MemoryAccessHelper::template ieventAccessFieldConst; + }; #endif // #ifndef MGONGPU_TRIVIAL_WAVEFUNCTIONS -//---------------------------------------------------------------------------- + //---------------------------------------------------------------------------- -// A class providing access to memory buffers for a given event, based on implicit kernel rules -// Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations -template -class KernelAccessWavefunctions -{ -public: + // A class providing access to memory buffers for a given event, based on implicit kernel rules + // Its methods use the KernelAccessHelper template - note the use of the template keyword in template function instantiations + template + class KernelAccessWavefunctions + { + public: #ifndef MGONGPU_TRIVIAL_WAVEFUNCTIONS - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (non-const) ===> fptype& kernelAccessIw6Ix2( fptype* buffer, const int iw6, const int ix2 ) <===] - static constexpr auto kernelAccessIw6Ix2 = - KernelAccessHelper::template kernelAccessField; + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (non-const) ===> fptype& kernelAccessIw6Ix2( fptype* buffer, const int iw6, const int ix2 ) <===] + static constexpr auto kernelAccessIw6Ix2 = + KernelAccessHelper::template kernelAccessField; - // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) - // [Signature (const) ===> const fptype& kernelAccessIw6Ix2Const( const fptype* buffer, const int iw6, const int ix2 ) <===] - static constexpr auto kernelAccessIw6Ix2Const = - KernelAccessHelper::template kernelAccessFieldConst; + // Locate a field (output) in a memory buffer (input) from a kernel event-indexing mechanism (internal) and the given field indexes (input) + // [Signature (const) ===> const fptype& kernelAccessIw6Ix2Const( const fptype* buffer, const int iw6, const int ix2 ) <===] + static constexpr auto kernelAccessIw6Ix2Const = + KernelAccessHelper::template kernelAccessFieldConst; #else - static __host__ __device__ inline cxtype_sv* - kernelAccess( fptype* buffer ) - { - return reinterpret_cast( buffer ); - } + static __host__ __device__ inline cxtype_sv* + kernelAccess( fptype* buffer ) + { + return reinterpret_cast( buffer ); + } - static __host__ __device__ inline const cxtype_sv* - kernelAccessConst( const fptype* buffer ) - { - return reinterpret_cast( buffer ); - } + static __host__ __device__ inline const cxtype_sv* + kernelAccessConst( const fptype* buffer ) + { + return reinterpret_cast( buffer ); + } #endif // #ifndef MGONGPU_TRIVIAL_WAVEFUNCTIONS -}; + }; + + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- + typedef KernelAccessWavefunctions HostAccessWavefunctions; + typedef KernelAccessWavefunctions DeviceAccessWavefunctions; -typedef KernelAccessWavefunctions HostAccessWavefunctions; -typedef KernelAccessWavefunctions DeviceAccessWavefunctions; + //---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- +} // end namespace mg5amcGpu/mg5amcCpu #endif // MemoryAccessWavefunctions_H diff --git a/epochX/cudacpp/heft_gg_h.sa/SubProcesses/cudacpp.mk b/epochX/cudacpp/heft_gg_h.sa/SubProcesses/cudacpp.mk index a0397e9ecc..c2f7b8e0f6 100644 --- a/epochX/cudacpp/heft_gg_h.sa/SubProcesses/cudacpp.mk +++ b/epochX/cudacpp/heft_gg_h.sa/SubProcesses/cudacpp.mk @@ -76,7 +76,7 @@ endif CXXFLAGS = $(OPTFLAGS) -std=c++17 $(INCFLAGS) -Wall -Wshadow -Wextra ifeq ($(shell $(CXX) --version | grep ^nvc++),) -CXXFLAGS+= -ffast-math # see issue #117 +CXXFLAGS += -ffast-math # see issue #117 endif ###CXXFLAGS+= -Ofast # performance is not different from --fast-math ###CXXFLAGS+= -g # FOR DEBUGGING ONLY @@ -122,7 +122,7 @@ ifneq ($(wildcard $(CUDA_HOME)/bin/nvcc),) CUINC = -I$(CUDA_HOME)/include/ CURANDLIBFLAGS = -L$(CUDA_HOME)/lib64/ -lcurand # NB: -lcuda is not needed here! CUOPTFLAGS = -lineinfo - CUFLAGS = $(OPTFLAGS) $(CUOPTFLAGS) $(INCFLAGS) $(CUINC) $(USE_NVTX) $(CUARCHFLAGS) -use_fast_math + CUFLAGS = $(foreach opt, $(OPTFLAGS), -Xcompiler $(opt)) $(CUOPTFLAGS) $(INCFLAGS) $(CUINC) $(USE_NVTX) $(CUARCHFLAGS) -use_fast_math ###CUFLAGS += -Xcompiler -Wall -Xcompiler -Wextra -Xcompiler -Wshadow ###NVCC_VERSION = $(shell $(NVCC) --version | grep 'Cuda compilation tools' | cut -d' ' -f5 | cut -d, -f1) CUFLAGS += -std=c++17 # need CUDA >= 11.2 (see #333): this is enforced in mgOnGpuConfig.h @@ -142,6 +142,8 @@ else override CUINC= override CURANDLIBFLAGS= endif +export NVCC +export CUFLAGS # Set the host C++ compiler for nvcc via "-ccbin " # (NB issue #505: this must be a single word, "clang++ --gcc-toolchain..." is not supported) @@ -439,7 +441,7 @@ endif # Target (and build options): debug MAKEDEBUG= -debug: OPTFLAGS = -g -O0 -DDEBUG2 +debug: OPTFLAGS = -g -O0 debug: CUOPTFLAGS = -G debug: MAKEDEBUG := debug debug: all.$(TAG) @@ -468,9 +470,9 @@ $(BUILDDIR)/%.o : %.cc *.h ../../src/*.h $(BUILDDIR)/.build.$(TAG) @if [ ! -d $(BUILDDIR) ]; then echo "mkdir -p $(BUILDDIR)"; mkdir -p $(BUILDDIR); fi $(CXX) $(CPPFLAGS) $(CXXFLAGS) -fPIC -c $< -o $@ -# Apply special build flags only to CrossSectionKernel.cc and gCrossSectionKernel.cu (no fast math, see #117) +# Apply special build flags only to CrossSectionKernel.cc and gCrossSectionKernel.cu (no fast math, see #117 and #516) ifeq ($(shell $(CXX) --version | grep ^nvc++),) -$(BUILDDIR)/CrossSectionKernels.o: CXXFLAGS += -fno-fast-math +$(BUILDDIR)/CrossSectionKernels.o: CXXFLAGS := $(filter-out -ffast-math,$(CXXFLAGS)) $(BUILDDIR)/CrossSectionKernels.o: CXXFLAGS += -fno-fast-math ifneq ($(NVCC),) $(BUILDDIR)/gCrossSectionKernels.o: CUFLAGS += -Xcompiler -fno-fast-math diff --git a/epochX/cudacpp/heft_gg_h.sa/SubProcesses/runTest.cc b/epochX/cudacpp/heft_gg_h.sa/SubProcesses/runTest.cc index 572e28aaea..df7488178e 100644 --- a/epochX/cudacpp/heft_gg_h.sa/SubProcesses/runTest.cc +++ b/epochX/cudacpp/heft_gg_h.sa/SubProcesses/runTest.cc @@ -2,6 +2,9 @@ // Licensed under the GNU Lesser General Public License (version 3 or later). // Created by: S. Hageboeck (Nov 2020) for the MG5aMC CUDACPP plugin. // Further modified by: S. Hageboeck, O. Mattelaer, S. Roiser, A. Valassi (2020-2023) for the MG5aMC CUDACPP plugin. +//---------------------------------------------------------------------------- +// Use ./runTest.exe --gtest_filter=*xxx to run only testxxx.cc tests +//---------------------------------------------------------------------------- #include "mgOnGpuConfig.h" diff --git a/epochX/cudacpp/heft_gg_h.sa/SubProcesses/testmisc.cc b/epochX/cudacpp/heft_gg_h.sa/SubProcesses/testmisc.cc index 989aba1fdc..895d6eeb56 100644 --- a/epochX/cudacpp/heft_gg_h.sa/SubProcesses/testmisc.cc +++ b/epochX/cudacpp/heft_gg_h.sa/SubProcesses/testmisc.cc @@ -3,7 +3,7 @@ // Created by: A. Valassi (Jan 2022) for the MG5aMC CUDACPP plugin. // Further modified by: A. Valassi (2022-2023) for the MG5aMC CUDACPP plugin. //---------------------------------------------------------------------------- -// Use ./runTest.exe --gtest_filter=*misc to run only this test +// Use ./runTest.exe --gtest_filter=*misc to run only testmisc.cc tests //---------------------------------------------------------------------------- #include "mgOnGpuConfig.h" @@ -25,33 +25,48 @@ #define XTESTID( s ) TESTID( s ) +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif +{ #ifdef MGONGPU_CPPSIMD /* clang-format off */ -bool maskand( const bool_v& mask ){ bool out = true; for ( int i=0; i #include +#include // debug #701 (see https://stackoverflow.com/a/17473528) #include #include #include @@ -28,16 +32,47 @@ #define XTESTID( s ) TESTID( s ) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif +{ + std::string FPEhandlerMessage = "unknown"; + int FPEhandlerIevt = -1; + inline void FPEhandler( int sig ) + { +#ifdef __CUDACC__ + std::cerr << "Floating Point Exception (GPU): '" << FPEhandlerMessage << "' ievt=" << FPEhandlerIevt << std::endl; +#else + std::cerr << "Floating Point Exception (CPU neppV=" << neppV << "): '" << FPEhandlerMessage << "' ievt=" << FPEhandlerIevt << std::endl; +#endif + exit( 0 ); + } +} + TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) { +#ifdef __CUDACC__ + using namespace mg5amcGpu; +#else + using namespace mg5amcCpu; +#endif +#ifndef __APPLE__ // test #701 (except on MacOS where feenableexcept is not defined #730) + const bool enableFPE = !getenv( "CUDACPP_RUNTIME_DISABLEFPE" ); + if( enableFPE ) + { + feenableexcept( FE_INVALID | FE_DIVBYZERO | FE_OVERFLOW | FE_UNDERFLOW ); // debug #701 + signal( SIGFPE, FPEhandler ); + } +#endif constexpr bool dumpEvents = false; // dump the expected output of the test? constexpr bool testEvents = !dumpEvents; // run the test? constexpr fptype toleranceXXXs = std::is_same::value ? 1.E-15 : 1.E-5; // Constant parameters constexpr int neppM = MemoryAccessMomenta::neppM; // AOSOA layout - using mgOnGpu::neppV; constexpr int np4 = CPPProcess::np4; - const int nevt = 16; // 12 independent tests plus 4 duplicates (need a multiple of 8 for floats or for '512z') + const int nevt = 32; // 12 independent tests plus 20 duplicates (need a multiple of 16 for floats '512z') assert( nevt % neppM == 0 ); // nevt must be a multiple of neppM assert( nevt % neppV == 0 ); // nevt must be a multiple of neppV // Fill in the input momenta @@ -46,24 +81,41 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) #else mg5amcCpu::HostBufferMomenta hstMomenta( nevt ); // AOSOA[npagM][npar=4][np4=4][neppM] #endif /* clang-format off */ + // NB NEW TESTS FOR DEBUGGING #701: KEEP TWO SEPARATE SETS (16-SIMD-VECTORS!) OF TESTS FOR M==0 AND M!=0! const fptype par0[np4 * nevt] = // AOS[nevt][np4] { - 500, 0, 0, 500, // #0 (m=0 pT=0 E=pz>0) - 500, 0, 0, -500, // #1 (m=0 pT=0 -E=pz<0) - 500, 300, 400, 0, // #2 (m=0 pT>0 pz=0) - 500, 180, 240, 400, // #3 (m=0 pT>0 pz>0) - 500, 180, 240, -400, // #4 (m=0 pT>0 pz<0) - 500, 0, 0, 0, // #5 (m=50>0 pT=0 pz=0) - 500, 0, 0, 300, // #6 (m=40>0 pT=0 pz>0) - 500, 0, 0, -300, // #7 (m=40>0 pT=0 pz<0) - 500, 180, 240, 0, // #8 (m=40>0 pT>0 pz=0) - 500, -240, -180, 0, // #9 (m=40>0 pT>0 pz=0) - 500, 180, 192, 144, // #10 (m=40>0 pT>0 pz>0) - 500, 180, 192, -144, // #11 (m=40>0 pT>0 pz<0) - 500, 0, 0, 500, // DUPLICATE #12 == #0 (m=0 pT=0 E=pz>0) - 500, 0, 0, -500, // DUPLICATE #13 == #1 (m=0 pT=0 -E=pz<0) - 500, 300, 400, 0, // DUPLICATE #14 == #2 (m=0 pT>0 pz=0) - 500, 180, 240, 400 // DUPLICATE #15 == #3 (m=0 pT>0 pz>0) + 500, 0, 0, 500, // #0 (m=0 pT=0 E=pz>0) + 500, 0, 0, -500, // #1 (m=0 pT=0 -E=pz<0) + 500, 300, 400, 0, // #2 (m=0 pT>0 pz=0) + 500, 180, 240, 400, // #3 (m=0 pT>0 pz>0) + 500, 180, 240, -400, // #4 (m=0 pT>0 pz<0) + 500, 0, 0, 500, // #5 DUPLICATE == #0 (m=0 pT=0 E=pz>0) + 500, 0, 0, -500, // #6 DUPLICATE == #1 (m=0 pT=0 -E=pz<0) + 500, 300, 400, 0, // #7 DUPLICATE == #2 (m=0 pT>0 pz=0) + 500, 180, 240, 400, // #8 DUPLICATE == #3 (m=0 pT>0 pz>0) + 500, 180, 240, -400, // #9 DUPLICATE == #4 (m=0 pT>0 pz<0) + 500, 0, 0, 500, // #10 DUPLICATE == #0 (m=0 pT=0 E=pz>0) + 500, 0, 0, -500, // #11 DUPLICATE == #1 (m=0 pT=0 -E=pz<0) + 500, 300, 400, 0, // #12 DUPLICATE == #2 (m=0 pT>0 pz=0) + 500, 180, 240, 400, // #13 DUPLICATE == #3 (m=0 pT>0 pz>0) + 500, 180, 240, -400, // #14 DUPLICATE == #4 (m=0 pT>0 pz<0) + 500, 0, 0, 500, // #15 DUPLICATE == #0 (m=0 pT=0 E=pz>0) + 500, 0, 0, 0, // #16 (m=50>0 pT=0 pz=0) + 500, 0, 0, 300, // #17 (m=40>0 pT=0 pz>0) + 500, 0, 0, -300, // #18 (m=40>0 pT=0 pz<0) + 500, 180, 240, 0, // #19 (m=40>0 pT>0 pz=0) + 500, -240, -180, 0, // #20 (m=40>0 pT>0 pz=0) + 500, 180, 192, 144, // #21 (m=40>0 pT>0 pz>0) + 500, 180, 192, -144, // #22 (m=40>0 pT>0 pz<0) + 500, 0, 0, 0, // #23 DUPLICATE == #16 (m=50>0 pT=0 pz=0) + 500, 0, 0, 300, // #24 DUPLICATE == #17 (m=40>0 pT=0 pz>0) + 500, 0, 0, -300, // #25 DUPLICATE == #18 (m=40>0 pT=0 pz<0) + 500, 180, 240, 0, // #26 DUPLICATE == #19 (m=40>0 pT>0 pz=0) + 500, -240, -180, 0, // #27 DUPLICATE == #20 (m=40>0 pT>0 pz=0) + 500, 180, 192, 144, // #28 DUPLICATE == #21 (m=40>0 pT>0 pz>0) + 500, 180, 192, -144, // #29 DUPLICATE == #22 (m=40>0 pT>0 pz<0) + 500, 0, 0, 0, // #30 DUPLICATE == #16 (m=50>0 pT=0 pz=0) + 500, 0, 0, 300 // #31 DUPLICATE == #17 (m=40>0 pT=0 pz>0) }; /* clang-format on */ // Array initialization: zero-out as "{0}" (C and C++) or as "{}" (C++ only) // See https://en.cppreference.com/w/c/language/array_initialization#Notes @@ -99,7 +151,15 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) constexpr int nw6 = CPPProcess::nw6; // dimensions of each wavefunction (HELAS KEK 91-11): e.g. 6 for e+ e- -> mu+ mu- (fermions and vectors) int itest = 0; // index on the expected output vector std::ofstream dumpFile; - if( dumpEvents ) dumpFile.open( dumpFileName, std::ios::trunc ); + if( dumpEvents ) + { + dumpFile.open( dumpFileName, std::ios::trunc ); + dumpFile << " // Copyright (C) 2020-2023 CERN and UCLouvain." << std::endl + << " // Licensed under the GNU Lesser General Public License (version 3 or later)." << std::endl + << " // Created by: A. Valassi (Apr 2021) for the MG5aMC CUDACPP plugin." << std::endl + << " // Further modified by: A. Valassi (2021-2023) for the MG5aMC CUDACPP plugin." << std::endl; + } + // Lambda function for dumping wavefunctions auto dumpwf6 = [&]( std::ostream& out, const cxtype_sv wf[6], const char* xxx, int ievt, int nsp, fptype mass ) { out << std::setprecision( 15 ) << std::scientific; @@ -129,6 +189,7 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) } out << std::defaultfloat; }; + // Lambda function for testing wavefunctions (1) auto testwf6 = [&]( const cxtype_sv wf[6], const char* xxx, int ievt, int nsp, fptype mass ) { if( dumpEvents ) dumpwf6( dumpFile, wf, xxx, ievt, nsp, mass ); @@ -170,6 +231,7 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) } itest++; }; + // Lambda function for testing wavefunctions (2) auto testwf6two = [&]( const cxtype_sv wf[6], const cxtype_sv expwf[6], const char* xxx, int ievt ) { if( testEvents ) @@ -213,6 +275,32 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) } } }; + // Lambda function for resetting hstMomenta to the values of par0 + // This is needed in each test because hstMomenta may have been modified to ensure a function like ipzxxx can be used (#701) + auto resetHstMomentaToPar0 = [&]() + { + for( int ievt = 0; ievt < nevt; ievt++ ) + for( int ip4 = 0; ip4 < np4; ip4++ ) + MemoryAccessMomenta::ieventAccessIp4Ipar( hstMomenta.data(), ievt, ip4, ipar0 ) = par0[ievt * np4 + ip4]; // AOS to AOSOA + }; + // Lambda function for preparing the test of one specific function + const bool debug = false; + auto prepareTest = [&]( const char* xxx, int ievt ) + { + if( debug ) std::cout << "Prepare test " << xxx << " ievt=" << ievt << std::endl; + resetHstMomentaToPar0(); + FPEhandlerMessage = xxx; + FPEhandlerIevt = ievt; + if( std::string( xxx ) == "ipzxxx" || std::string( xxx ) == "opzxxx" || std::string( xxx ) == "imzxxx" || std::string( xxx ) == "omzxxx" || std::string( xxx ) == "ixzxxx" || std::string( xxx ) == "oxzxxx" ) + { + // Modify hstMomenta so that ALL events have the momenta of a single ievt + // This ensures that a function like ipzxxx (which assumes pZ>0) can be used without triggering FPEs (#701) + // This is done by filling the full SIMD vector with the value of ievt, which was already tested to respect the relevant assumptions + for( int jevt = 0; jevt < nevt; jevt++ ) + for( int ip4 = 0; ip4 < np4; ip4++ ) + MemoryAccessMomenta::ieventAccessIp4Ipar( hstMomenta.data(), jevt, ip4, ipar0 ) = par0[ievt * np4 + ip4]; // AOS to AOSOA + } + }; // Array initialization: zero-out as "{0}" (C and C++) or as "{}" (C++ only) // See https://en.cppreference.com/w/c/language/array_initialization#Notes cxtype_sv outwfI[6] = {}; // last result of ixxxxx (mass==0) @@ -224,6 +312,7 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) fptype* fp_outwf = reinterpret_cast( outwf ); // proof of concept for using fptype* in the interface fptype* fp_outwf3 = reinterpret_cast( outwf3 ); // proof of concept for using fptype* in the interface const int nhel = 1; + // *** START OF TESTING LOOP for( auto nsp: { -1, +1 } ) // antifermion/fermion (or initial/final for scalar and vector) { for( int ievt = 0; ievt < nevt; ievt++ ) @@ -233,9 +322,10 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) #else using namespace mg5amcCpu; #endif - if( false ) + if( debug ) { std::cout << std::endl; + std::cout << "nsp=" << nsp << " ievt=" << ievt << ": "; for( int ip4 = 0; ip4 < np4; ip4++ ) std::cout << par0[ievt * np4 + ip4] << ", "; std::cout << std::endl; } @@ -243,6 +333,7 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) const fptype* ievt0Momenta = MemoryAccessMomenta::ieventAccessRecordConst( hstMomenta.data(), ipagV * neppV ); // Test ixxxxx - NO ASSUMPTIONS { + prepareTest( "ixxxxx", ievt ); const fptype fmass = mass0[ievt]; ixxxxx( ievt0Momenta, fmass, nhel, nsp, fp_outwfI, ipar0 ); testwf6( outwfI, "ixxxxx", ievt, nsp, fmass ); @@ -252,6 +343,7 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) // Test ipzxxx - ASSUMPTIONS: (FMASS == 0) and (PX == PY == 0 and E == +PZ > 0) if( mass0[ievt] == 0 && !isptgt0[ievt] && ispzgt0[ievt] ) { + prepareTest( "ipzxxx", ievt ); ipzxxx( ievt0Momenta, nhel, nsp, fp_outwf, ipar0 ); testwf6two( outwf, outwfI, "ipzxxx", ievt ); testwf6( outwf, "ipzxxx", ievt, nsp, 0 ); @@ -259,6 +351,7 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) // Test imzxxx - ASSUMPTIONS: (FMASS == 0) and (PX == PY == 0 and E == -PZ > 0) if( mass0[ievt] == 0 && !isptgt0[ievt] && ispzlt0[ievt] ) { + prepareTest( "imzxxx", ievt ); imzxxx( ievt0Momenta, nhel, nsp, fp_outwf, ipar0 ); testwf6two( outwf, outwfI, "imzxxx", ievt ); testwf6( outwf, "imzxxx", ievt, nsp, 0 ); @@ -266,12 +359,14 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) // Test ixzxxx - ASSUMPTIONS: (FMASS == 0) and (PT > 0) if( mass0[ievt] == 0 && isptgt0[ievt] ) { + prepareTest( "ixzxxx", ievt ); ixzxxx( ievt0Momenta, nhel, nsp, fp_outwf, ipar0 ); testwf6two( outwf, outwfI, "ixzxxx", ievt ); testwf6( outwf, "ixzxxx", ievt, nsp, 0 ); } // Test vxxxxx - NO ASSUMPTIONS { + prepareTest( "vxxxxx", ievt ); const fptype vmass = mass0[ievt]; vxxxxx( ievt0Momenta, vmass, nhel, nsp, fp_outwf, ipar0 ); testwf6( outwf, "vxxxxx", ievt, nsp, vmass ); @@ -280,6 +375,7 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) } // Test sxxxxx - NO ASSUMPTIONS { + prepareTest( "sxxxxx", ievt ); const fptype smass = mass0[ievt]; sxxxxx( ievt0Momenta, nsp, fp_outwf3, ipar0 ); // no mass, no helicity (was "smass>0") testwf6( outwf3, "sxxxxx", ievt, nsp, smass ); @@ -288,6 +384,7 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) } // Test oxxxxx - NO ASSUMPTIONS { + prepareTest( "oxxxxx", ievt ); const fptype fmass = mass0[ievt]; oxxxxx( ievt0Momenta, fmass, nhel, nsp, fp_outwfO, ipar0 ); testwf6( outwfO, "oxxxxx", ievt, nsp, fmass ); @@ -297,6 +394,7 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) // Test opzxxx - ASSUMPTIONS: (FMASS == 0) and (PX == PY == 0 and E == +PZ > 0) if( mass0[ievt] == 0 && !isptgt0[ievt] && ispzgt0[ievt] ) { + prepareTest( "opzxxx", ievt ); opzxxx( ievt0Momenta, nhel, nsp, fp_outwf, ipar0 ); testwf6two( outwf, outwfO, "opzxxx", ievt ); testwf6( outwf, "opzxxx", ievt, nsp, 0 ); @@ -304,6 +402,7 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) // Test omzxxx - ASSUMPTIONS: (FMASS == 0) and (PX == PY == 0 and E == -PZ > 0) if( mass0[ievt] == 0 && !isptgt0[ievt] && ispzlt0[ievt] ) { + prepareTest( "omzxxx", ievt ); omzxxx( ievt0Momenta, nhel, nsp, fp_outwf, ipar0 ); testwf6two( outwf, outwfO, "omzxxx", ievt ); testwf6( outwf, "omzxxx", ievt, nsp, 0 ); @@ -311,17 +410,25 @@ TEST( XTESTID( MG_EPOCH_PROCESS_ID ), testxxx ) // Test oxzxxx - ASSUMPTIONS: (FMASS == 0) and (PT > 0) if( mass0[ievt] == 0 && isptgt0[ievt] ) { - oxzxxx( ievt0Momenta, nhel, nsp, reinterpret_cast( outwf ), ipar0 ); + prepareTest( "oxzxxx", ievt ); + oxzxxx( ievt0Momenta, nhel, nsp, fp_outwf, ipar0 ); testwf6two( outwf, outwfO, "oxzxxx", ievt ); testwf6( outwf, "oxzxxx", ievt, nsp, 0 ); } } } + // *** END OF TESTING LOOP if( dumpEvents ) { dumpFile.close(); std::cout << "INFO: New reference data dumped to file '" << dumpFileName << "'" << std::endl; } +#ifndef __APPLE__ // test #701 (except on MacOS where fedisableexcept is not defined #730) + if( enableFPE ) + { + fedisableexcept( FE_INVALID | FE_DIVBYZERO | FE_OVERFLOW | FE_UNDERFLOW ); // debug #701 + } +#endif } //========================================================================== diff --git a/epochX/cudacpp/heft_gg_h.sa/SubProcesses/testxxx_cc_ref.txt b/epochX/cudacpp/heft_gg_h.sa/SubProcesses/testxxx_cc_ref.txt index acb9bde918..637530d1f5 100644 --- a/epochX/cudacpp/heft_gg_h.sa/SubProcesses/testxxx_cc_ref.txt +++ b/epochX/cudacpp/heft_gg_h.sa/SubProcesses/testxxx_cc_ref.txt @@ -5,14 +5,14 @@ expwfs.push_back( { // --------- 5.000000000000000e+02, 5.000000000000000e+02, // itest=0: ixxxxx#0 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=0: ixxxxx#0 nsp=-1 mass=0 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=0: ixxxxx#0 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=0: ixxxxx#0 nsp=-1 mass=0 -3.162277660168379e+01, 0.000000000000000e+00, // itest=0: ixxxxx#0 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=0: ixxxxx#0 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=0: ixxxxx#0 nsp=-1 mass=0 expwfs.push_back( { // --------- 5.000000000000000e+02, 5.000000000000000e+02, // itest=1: ixxxxx#0 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=1: ixxxxx#0 nsp=-1 mass=0 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=1: ixxxxx#0 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=1: ixxxxx#0 nsp=-1 mass=0 -3.162277660168379e+01, 0.000000000000000e+00, // itest=1: ixxxxx#0 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=1: ixxxxx#0 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=1: ixxxxx#0 nsp=-1 mass=0 @@ -82,8 +82,8 @@ expwfs.push_back( { // --------- 5.000000000000000e+02, -5.000000000000000e+02, // itest=11: ixxxxx#1 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=11: ixxxxx#1 nsp=-1 mass=0 - -3.162277660168379e+01, -0.000000000000000e+00, // itest=11: ixxxxx#1 nsp=-1 mass=0 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=11: ixxxxx#1 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=11: ixxxxx#1 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=11: ixxxxx#1 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=11: ixxxxx#1 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=11: ixxxxx#1 nsp=-1 mass=0 expwfs.push_back( { // --------- @@ -133,8 +133,8 @@ -0.000000000000000e+00, -0.000000000000000e+00, // itest=18: oxxxxx#1 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=18: oxxxxx#1 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=18: oxxxxx#1 nsp=-1 mass=0 - -3.162277660168379e+01, -0.000000000000000e+00, // itest=18: oxxxxx#1 nsp=-1 mass=0 - -0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=18: oxxxxx#1 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=18: oxxxxx#1 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=18: oxxxxx#1 nsp=-1 mass=0 expwfs.push_back( { // --------- -5.000000000000000e+02, 5.000000000000000e+02, // itest=19: omzxxx#1 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=19: omzxxx#1 nsp=-1 mass=0 @@ -145,14 +145,14 @@ expwfs.push_back( { // --------- 5.000000000000000e+02, 0.000000000000000e+00, // itest=20: ixxxxx#2 nsp=-1 mass=0 3.000000000000000e+02, 4.000000000000000e+02, // itest=20: ixxxxx#2 nsp=-1 mass=0 - 1.341640786499874e+01, -1.788854381999832e+01, // itest=20: ixxxxx#2 nsp=-1 mass=0 + 1.341640786499874e+01, -1.788854381999831e+01, // itest=20: ixxxxx#2 nsp=-1 mass=0 -2.236067977499790e+01, 0.000000000000000e+00, // itest=20: ixxxxx#2 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=20: ixxxxx#2 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=20: ixxxxx#2 nsp=-1 mass=0 expwfs.push_back( { // --------- 5.000000000000000e+02, 0.000000000000000e+00, // itest=21: ixxxxx#2 nsp=-1 mass=0 3.000000000000000e+02, 4.000000000000000e+02, // itest=21: ixxxxx#2 nsp=-1 mass=0 - 1.341640786499874e+01, -1.788854381999832e+01, // itest=21: ixxxxx#2 nsp=-1 mass=0 + 1.341640786499874e+01, -1.788854381999831e+01, // itest=21: ixxxxx#2 nsp=-1 mass=0 -2.236067977499790e+01, 0.000000000000000e+00, // itest=21: ixxxxx#2 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=21: ixxxxx#2 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=21: ixxxxx#2 nsp=-1 mass=0 @@ -196,14 +196,14 @@ -3.000000000000000e+02, -4.000000000000000e+02, // itest=27: oxxxxx#2 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=27: oxxxxx#2 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=27: oxxxxx#2 nsp=-1 mass=0 - 1.341640786499874e+01, 1.788854381999832e+01, // itest=27: oxxxxx#2 nsp=-1 mass=0 + 1.341640786499874e+01, 1.788854381999831e+01, // itest=27: oxxxxx#2 nsp=-1 mass=0 -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=27: oxxxxx#2 nsp=-1 mass=0 expwfs.push_back( { // --------- -5.000000000000000e+02, -0.000000000000000e+00, // itest=28: oxxxxx#2 nsp=-1 mass=0 -3.000000000000000e+02, -4.000000000000000e+02, // itest=28: oxxxxx#2 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=28: oxxxxx#2 nsp=-1 mass=0 0.000000000000000e+00, 0.000000000000000e+00, // itest=28: oxxxxx#2 nsp=-1 mass=0 - 1.341640786499874e+01, 1.788854381999832e+01, // itest=28: oxxxxx#2 nsp=-1 mass=0 + 1.341640786499874e+01, 1.788854381999831e+01, // itest=28: oxxxxx#2 nsp=-1 mass=0 -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=28: oxxxxx#2 nsp=-1 mass=0 expwfs.push_back( { // --------- -5.000000000000000e+02, -0.000000000000000e+00, // itest=29: oxzxxx#2 nsp=-1 mass=0 @@ -353,1696 +353,3684 @@ 1.800000000000000e+01, 2.400000000000000e+01, // itest=49: oxzxxx#4 nsp=-1 mass=0 -1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=49: oxzxxx#4 nsp=-1 mass=0 expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=50: ixxxxx#5 nsp=-1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=50: ixxxxx#5 nsp=-1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=50: ixxxxx#5 nsp=-1 mass=500 - -2.236067977499790e+01, 0.000000000000000e+00, // itest=50: ixxxxx#5 nsp=-1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=50: ixxxxx#5 nsp=-1 mass=500 - 2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=50: ixxxxx#5 nsp=-1 mass=500 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=51: ixxxxx#5 nsp=-1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=51: ixxxxx#5 nsp=-1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=51: ixxxxx#5 nsp=-1 mass=-500 - -2.236067977499790e+01, 0.000000000000000e+00, // itest=51: ixxxxx#5 nsp=-1 mass=-500 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=51: ixxxxx#5 nsp=-1 mass=-500 - -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=51: ixxxxx#5 nsp=-1 mass=-500 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=52: vxxxxx#5 nsp=-1 mass=500 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=52: vxxxxx#5 nsp=-1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=52: vxxxxx#5 nsp=-1 mass=500 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=52: vxxxxx#5 nsp=-1 mass=500 - 0.000000000000000e+00, -7.071067811865476e-01, // itest=52: vxxxxx#5 nsp=-1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=52: vxxxxx#5 nsp=-1 mass=500 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=53: vxxxxx#5 nsp=-1 mass=-500 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=53: vxxxxx#5 nsp=-1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=53: vxxxxx#5 nsp=-1 mass=-500 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=53: vxxxxx#5 nsp=-1 mass=-500 - 0.000000000000000e+00, -7.071067811865476e-01, // itest=53: vxxxxx#5 nsp=-1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=53: vxxxxx#5 nsp=-1 mass=-500 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=54: sxxxxx#5 nsp=-1 mass=500 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=54: sxxxxx#5 nsp=-1 mass=500 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=54: sxxxxx#5 nsp=-1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=54: sxxxxx#5 nsp=-1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=54: sxxxxx#5 nsp=-1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=54: sxxxxx#5 nsp=-1 mass=500 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=55: sxxxxx#5 nsp=-1 mass=-500 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=55: sxxxxx#5 nsp=-1 mass=-500 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=55: sxxxxx#5 nsp=-1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=55: sxxxxx#5 nsp=-1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=55: sxxxxx#5 nsp=-1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=55: sxxxxx#5 nsp=-1 mass=-500 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=56: oxxxxx#5 nsp=-1 mass=500 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=56: oxxxxx#5 nsp=-1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=56: oxxxxx#5 nsp=-1 mass=500 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=56: oxxxxx#5 nsp=-1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=56: oxxxxx#5 nsp=-1 mass=500 - -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=56: oxxxxx#5 nsp=-1 mass=500 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=57: oxxxxx#5 nsp=-1 mass=-500 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=57: oxxxxx#5 nsp=-1 mass=-500 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=57: oxxxxx#5 nsp=-1 mass=-500 - -2.236067977499790e+01, 0.000000000000000e+00, // itest=57: oxxxxx#5 nsp=-1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=57: oxxxxx#5 nsp=-1 mass=-500 - -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=57: oxxxxx#5 nsp=-1 mass=-500 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 3.000000000000000e+02, // itest=58: ixxxxx#6 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=58: ixxxxx#6 nsp=-1 mass=400 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=58: ixxxxx#6 nsp=-1 mass=400 - -2.828427124746190e+01, -0.000000000000000e+00, // itest=58: ixxxxx#6 nsp=-1 mass=400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=58: ixxxxx#6 nsp=-1 mass=400 - 1.414213562373095e+01, 0.000000000000000e+00 } ); // itest=58: ixxxxx#6 nsp=-1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 3.000000000000000e+02, // itest=59: ixxxxx#6 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=59: ixxxxx#6 nsp=-1 mass=-400 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=59: ixxxxx#6 nsp=-1 mass=-400 - -2.828427124746190e+01, -0.000000000000000e+00, // itest=59: ixxxxx#6 nsp=-1 mass=-400 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=59: ixxxxx#6 nsp=-1 mass=-400 - -1.414213562373095e+01, -0.000000000000000e+00 } ); // itest=59: ixxxxx#6 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -3.000000000000000e+02, // itest=60: vxxxxx#6 nsp=-1 mass=400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=60: vxxxxx#6 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=60: vxxxxx#6 nsp=-1 mass=400 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=60: vxxxxx#6 nsp=-1 mass=400 - 0.000000000000000e+00, -7.071067811865476e-01, // itest=60: vxxxxx#6 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=60: vxxxxx#6 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -3.000000000000000e+02, // itest=61: vxxxxx#6 nsp=-1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=61: vxxxxx#6 nsp=-1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=61: vxxxxx#6 nsp=-1 mass=-400 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=61: vxxxxx#6 nsp=-1 mass=-400 - 0.000000000000000e+00, -7.071067811865476e-01, // itest=61: vxxxxx#6 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=61: vxxxxx#6 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -3.000000000000000e+02, // itest=62: sxxxxx#6 nsp=-1 mass=400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=62: sxxxxx#6 nsp=-1 mass=400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=62: sxxxxx#6 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=62: sxxxxx#6 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=62: sxxxxx#6 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=62: sxxxxx#6 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -3.000000000000000e+02, // itest=63: sxxxxx#6 nsp=-1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=63: sxxxxx#6 nsp=-1 mass=-400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=63: sxxxxx#6 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=63: sxxxxx#6 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=63: sxxxxx#6 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=63: sxxxxx#6 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -3.000000000000000e+02, // itest=64: oxxxxx#6 nsp=-1 mass=400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=64: oxxxxx#6 nsp=-1 mass=400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=64: oxxxxx#6 nsp=-1 mass=400 - 1.414213562373095e+01, 0.000000000000000e+00, // itest=64: oxxxxx#6 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=64: oxxxxx#6 nsp=-1 mass=400 - -2.828427124746190e+01, -0.000000000000000e+00 } ); // itest=64: oxxxxx#6 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -3.000000000000000e+02, // itest=65: oxxxxx#6 nsp=-1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=65: oxxxxx#6 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=65: oxxxxx#6 nsp=-1 mass=-400 - -1.414213562373095e+01, -0.000000000000000e+00, // itest=65: oxxxxx#6 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=65: oxxxxx#6 nsp=-1 mass=-400 - -2.828427124746190e+01, -0.000000000000000e+00 } ); // itest=65: oxxxxx#6 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -3.000000000000000e+02, // itest=66: ixxxxx#7 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=66: ixxxxx#7 nsp=-1 mass=400 - -2.828427124746190e+01, -0.000000000000000e+00, // itest=66: ixxxxx#7 nsp=-1 mass=400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=66: ixxxxx#7 nsp=-1 mass=400 - 1.414213562373095e+01, 0.000000000000000e+00, // itest=66: ixxxxx#7 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=66: ixxxxx#7 nsp=-1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -3.000000000000000e+02, // itest=67: ixxxxx#7 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=67: ixxxxx#7 nsp=-1 mass=-400 - -2.828427124746190e+01, -0.000000000000000e+00, // itest=67: ixxxxx#7 nsp=-1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=67: ixxxxx#7 nsp=-1 mass=-400 - -1.414213562373095e+01, -0.000000000000000e+00, // itest=67: ixxxxx#7 nsp=-1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=67: ixxxxx#7 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 3.000000000000000e+02, // itest=68: vxxxxx#7 nsp=-1 mass=400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=68: vxxxxx#7 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=68: vxxxxx#7 nsp=-1 mass=400 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=68: vxxxxx#7 nsp=-1 mass=400 - 0.000000000000000e+00, 7.071067811865476e-01, // itest=68: vxxxxx#7 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=68: vxxxxx#7 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 3.000000000000000e+02, // itest=69: vxxxxx#7 nsp=-1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=69: vxxxxx#7 nsp=-1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=69: vxxxxx#7 nsp=-1 mass=-400 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=69: vxxxxx#7 nsp=-1 mass=-400 - 0.000000000000000e+00, 7.071067811865476e-01, // itest=69: vxxxxx#7 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=69: vxxxxx#7 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 3.000000000000000e+02, // itest=70: sxxxxx#7 nsp=-1 mass=400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=70: sxxxxx#7 nsp=-1 mass=400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=70: sxxxxx#7 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=70: sxxxxx#7 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=70: sxxxxx#7 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=70: sxxxxx#7 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 3.000000000000000e+02, // itest=71: sxxxxx#7 nsp=-1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=71: sxxxxx#7 nsp=-1 mass=-400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=71: sxxxxx#7 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=71: sxxxxx#7 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=71: sxxxxx#7 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=71: sxxxxx#7 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 3.000000000000000e+02, // itest=72: oxxxxx#7 nsp=-1 mass=400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=72: oxxxxx#7 nsp=-1 mass=400 - 1.414213562373095e+01, 0.000000000000000e+00, // itest=72: oxxxxx#7 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=72: oxxxxx#7 nsp=-1 mass=400 - -2.828427124746190e+01, -0.000000000000000e+00, // itest=72: oxxxxx#7 nsp=-1 mass=400 - -0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=72: oxxxxx#7 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 3.000000000000000e+02, // itest=73: oxxxxx#7 nsp=-1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=73: oxxxxx#7 nsp=-1 mass=-400 - -1.414213562373095e+01, -0.000000000000000e+00, // itest=73: oxxxxx#7 nsp=-1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=73: oxxxxx#7 nsp=-1 mass=-400 - -2.828427124746190e+01, -0.000000000000000e+00, // itest=73: oxxxxx#7 nsp=-1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=73: oxxxxx#7 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=74: ixxxxx#8 nsp=-1 mass=400 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=74: ixxxxx#8 nsp=-1 mass=400 - 1.200000000000000e+01, -1.600000000000000e+01, // itest=74: ixxxxx#8 nsp=-1 mass=400 - -2.000000000000000e+01, -0.000000000000000e+00, // itest=74: ixxxxx#8 nsp=-1 mass=400 - -5.999999999999999e+00, 7.999999999999999e+00, // itest=74: ixxxxx#8 nsp=-1 mass=400 - 1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=74: ixxxxx#8 nsp=-1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=75: ixxxxx#8 nsp=-1 mass=-400 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=75: ixxxxx#8 nsp=-1 mass=-400 - 1.200000000000000e+01, -1.600000000000000e+01, // itest=75: ixxxxx#8 nsp=-1 mass=-400 - -2.000000000000000e+01, -0.000000000000000e+00, // itest=75: ixxxxx#8 nsp=-1 mass=-400 - 5.999999999999999e+00, -7.999999999999999e+00, // itest=75: ixxxxx#8 nsp=-1 mass=-400 - -1.000000000000000e+01, -0.000000000000000e+00 } ); // itest=75: ixxxxx#8 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=76: vxxxxx#8 nsp=-1 mass=400 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=76: vxxxxx#8 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=76: vxxxxx#8 nsp=-1 mass=400 - 0.000000000000000e+00, 5.656854249492381e-01, // itest=76: vxxxxx#8 nsp=-1 mass=400 - 0.000000000000000e+00, -4.242640687119285e-01, // itest=76: vxxxxx#8 nsp=-1 mass=400 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=76: vxxxxx#8 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=77: vxxxxx#8 nsp=-1 mass=-400 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=77: vxxxxx#8 nsp=-1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=77: vxxxxx#8 nsp=-1 mass=-400 - -0.000000000000000e+00, 5.656854249492381e-01, // itest=77: vxxxxx#8 nsp=-1 mass=-400 - -0.000000000000000e+00, -4.242640687119285e-01, // itest=77: vxxxxx#8 nsp=-1 mass=-400 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=77: vxxxxx#8 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=78: sxxxxx#8 nsp=-1 mass=400 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=78: sxxxxx#8 nsp=-1 mass=400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=78: sxxxxx#8 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=78: sxxxxx#8 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=78: sxxxxx#8 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=78: sxxxxx#8 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=79: sxxxxx#8 nsp=-1 mass=-400 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=79: sxxxxx#8 nsp=-1 mass=-400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=79: sxxxxx#8 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=79: sxxxxx#8 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=79: sxxxxx#8 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=79: sxxxxx#8 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=80: oxxxxx#8 nsp=-1 mass=400 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=80: oxxxxx#8 nsp=-1 mass=400 - -5.999999999999999e+00, -7.999999999999999e+00, // itest=80: oxxxxx#8 nsp=-1 mass=400 - 1.000000000000000e+01, 0.000000000000000e+00, // itest=80: oxxxxx#8 nsp=-1 mass=400 - 1.200000000000000e+01, 1.600000000000000e+01, // itest=80: oxxxxx#8 nsp=-1 mass=400 - -2.000000000000000e+01, -0.000000000000000e+00 } ); // itest=80: oxxxxx#8 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=81: oxxxxx#8 nsp=-1 mass=-400 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=81: oxxxxx#8 nsp=-1 mass=-400 - 5.999999999999999e+00, 7.999999999999999e+00, // itest=81: oxxxxx#8 nsp=-1 mass=-400 - -1.000000000000000e+01, -0.000000000000000e+00, // itest=81: oxxxxx#8 nsp=-1 mass=-400 - 1.200000000000000e+01, 1.600000000000000e+01, // itest=81: oxxxxx#8 nsp=-1 mass=-400 - -2.000000000000000e+01, -0.000000000000000e+00 } ); // itest=81: oxxxxx#8 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=82: ixxxxx#9 nsp=-1 mass=400 - -2.400000000000000e+02, -1.800000000000000e+02, // itest=82: ixxxxx#9 nsp=-1 mass=400 - -1.600000000000000e+01, 1.200000000000000e+01, // itest=82: ixxxxx#9 nsp=-1 mass=400 - -2.000000000000000e+01, -0.000000000000000e+00, // itest=82: ixxxxx#9 nsp=-1 mass=400 - 7.999999999999999e+00, -5.999999999999999e+00, // itest=82: ixxxxx#9 nsp=-1 mass=400 - 1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=82: ixxxxx#9 nsp=-1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=83: ixxxxx#9 nsp=-1 mass=-400 - -2.400000000000000e+02, -1.800000000000000e+02, // itest=83: ixxxxx#9 nsp=-1 mass=-400 - -1.600000000000000e+01, 1.200000000000000e+01, // itest=83: ixxxxx#9 nsp=-1 mass=-400 - -2.000000000000000e+01, -0.000000000000000e+00, // itest=83: ixxxxx#9 nsp=-1 mass=-400 - -7.999999999999999e+00, 5.999999999999999e+00, // itest=83: ixxxxx#9 nsp=-1 mass=-400 - -1.000000000000000e+01, -0.000000000000000e+00 } ); // itest=83: ixxxxx#9 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=84: vxxxxx#9 nsp=-1 mass=400 - 2.400000000000000e+02, 1.800000000000000e+02, // itest=84: vxxxxx#9 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=84: vxxxxx#9 nsp=-1 mass=400 - 0.000000000000000e+00, -4.242640687119285e-01, // itest=84: vxxxxx#9 nsp=-1 mass=400 - 0.000000000000000e+00, 5.656854249492381e-01, // itest=84: vxxxxx#9 nsp=-1 mass=400 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=84: vxxxxx#9 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=85: vxxxxx#9 nsp=-1 mass=-400 - 2.400000000000000e+02, 1.800000000000000e+02, // itest=85: vxxxxx#9 nsp=-1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=85: vxxxxx#9 nsp=-1 mass=-400 - 0.000000000000000e+00, -4.242640687119285e-01, // itest=85: vxxxxx#9 nsp=-1 mass=-400 - 0.000000000000000e+00, 5.656854249492381e-01, // itest=85: vxxxxx#9 nsp=-1 mass=-400 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=85: vxxxxx#9 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=86: sxxxxx#9 nsp=-1 mass=400 - 2.400000000000000e+02, 1.800000000000000e+02, // itest=86: sxxxxx#9 nsp=-1 mass=400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=86: sxxxxx#9 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=86: sxxxxx#9 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=86: sxxxxx#9 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=86: sxxxxx#9 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=87: sxxxxx#9 nsp=-1 mass=-400 - 2.400000000000000e+02, 1.800000000000000e+02, // itest=87: sxxxxx#9 nsp=-1 mass=-400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=87: sxxxxx#9 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=87: sxxxxx#9 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=87: sxxxxx#9 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=87: sxxxxx#9 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=88: oxxxxx#9 nsp=-1 mass=400 - 2.400000000000000e+02, 1.800000000000000e+02, // itest=88: oxxxxx#9 nsp=-1 mass=400 - 7.999999999999999e+00, 5.999999999999999e+00, // itest=88: oxxxxx#9 nsp=-1 mass=400 - 1.000000000000000e+01, 0.000000000000000e+00, // itest=88: oxxxxx#9 nsp=-1 mass=400 - -1.600000000000000e+01, -1.200000000000000e+01, // itest=88: oxxxxx#9 nsp=-1 mass=400 - -2.000000000000000e+01, -0.000000000000000e+00 } ); // itest=88: oxxxxx#9 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=89: oxxxxx#9 nsp=-1 mass=-400 - 2.400000000000000e+02, 1.800000000000000e+02, // itest=89: oxxxxx#9 nsp=-1 mass=-400 - -7.999999999999999e+00, -5.999999999999999e+00, // itest=89: oxxxxx#9 nsp=-1 mass=-400 - -1.000000000000000e+01, -0.000000000000000e+00, // itest=89: oxxxxx#9 nsp=-1 mass=-400 - -1.600000000000000e+01, -1.200000000000000e+01, // itest=89: oxxxxx#9 nsp=-1 mass=-400 - -2.000000000000000e+01, -0.000000000000000e+00 } ); // itest=89: oxxxxx#9 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 1.440000000000000e+02, // itest=90: ixxxxx#10 nsp=-1 mass=400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=90: ixxxxx#10 nsp=-1 mass=400 - 9.863939238321439e+00, -1.052153518754287e+01, // itest=90: ixxxxx#10 nsp=-1 mass=400 - -2.433105012119288e+01, -0.000000000000000e+00, // itest=90: ixxxxx#10 nsp=-1 mass=400 - -4.931969619160719e+00, 5.260767593771432e+00, // itest=90: ixxxxx#10 nsp=-1 mass=400 - 1.216552506059644e+01, 0.000000000000000e+00 } ); // itest=90: ixxxxx#10 nsp=-1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 1.440000000000000e+02, // itest=91: ixxxxx#10 nsp=-1 mass=-400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=91: ixxxxx#10 nsp=-1 mass=-400 - 9.863939238321439e+00, -1.052153518754287e+01, // itest=91: ixxxxx#10 nsp=-1 mass=-400 - -2.433105012119288e+01, -0.000000000000000e+00, // itest=91: ixxxxx#10 nsp=-1 mass=-400 - 4.931969619160719e+00, -5.260767593771432e+00, // itest=91: ixxxxx#10 nsp=-1 mass=-400 - -1.216552506059644e+01, -0.000000000000000e+00 } ); // itest=91: ixxxxx#10 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -1.440000000000000e+02, // itest=92: vxxxxx#10 nsp=-1 mass=400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=92: vxxxxx#10 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=92: vxxxxx#10 nsp=-1 mass=400 - -2.321373168788980e-01, 5.158607041753289e-01, // itest=92: vxxxxx#10 nsp=-1 mass=400 - -2.476131380041579e-01, -4.836194101643708e-01, // itest=92: vxxxxx#10 nsp=-1 mass=400 - 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=92: vxxxxx#10 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -1.440000000000000e+02, // itest=93: vxxxxx#10 nsp=-1 mass=-400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=93: vxxxxx#10 nsp=-1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=93: vxxxxx#10 nsp=-1 mass=-400 - -2.321373168788980e-01, 5.158607041753289e-01, // itest=93: vxxxxx#10 nsp=-1 mass=-400 - -2.476131380041579e-01, -4.836194101643708e-01, // itest=93: vxxxxx#10 nsp=-1 mass=-400 - 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=93: vxxxxx#10 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -1.440000000000000e+02, // itest=94: sxxxxx#10 nsp=-1 mass=400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=94: sxxxxx#10 nsp=-1 mass=400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=94: sxxxxx#10 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=94: sxxxxx#10 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=94: sxxxxx#10 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=94: sxxxxx#10 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -1.440000000000000e+02, // itest=95: sxxxxx#10 nsp=-1 mass=-400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=95: sxxxxx#10 nsp=-1 mass=-400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=95: sxxxxx#10 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=95: sxxxxx#10 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=95: sxxxxx#10 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=95: sxxxxx#10 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -1.440000000000000e+02, // itest=96: oxxxxx#10 nsp=-1 mass=400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=96: oxxxxx#10 nsp=-1 mass=400 - -4.931969619160719e+00, -5.260767593771432e+00, // itest=96: oxxxxx#10 nsp=-1 mass=400 - 1.216552506059644e+01, 0.000000000000000e+00, // itest=96: oxxxxx#10 nsp=-1 mass=400 - 9.863939238321439e+00, 1.052153518754287e+01, // itest=96: oxxxxx#10 nsp=-1 mass=400 - -2.433105012119288e+01, -0.000000000000000e+00 } ); // itest=96: oxxxxx#10 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -1.440000000000000e+02, // itest=97: oxxxxx#10 nsp=-1 mass=-400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=97: oxxxxx#10 nsp=-1 mass=-400 - 4.931969619160719e+00, 5.260767593771432e+00, // itest=97: oxxxxx#10 nsp=-1 mass=-400 - -1.216552506059644e+01, -0.000000000000000e+00, // itest=97: oxxxxx#10 nsp=-1 mass=-400 - 9.863939238321439e+00, 1.052153518754287e+01, // itest=97: oxxxxx#10 nsp=-1 mass=-400 - -2.433105012119288e+01, -0.000000000000000e+00 } ); // itest=97: oxxxxx#10 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -1.440000000000000e+02, // itest=98: ixxxxx#11 nsp=-1 mass=400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=98: ixxxxx#11 nsp=-1 mass=400 - 1.664100588675688e+01, -1.775040627920733e+01, // itest=98: ixxxxx#11 nsp=-1 mass=400 - -1.442220510185596e+01, -0.000000000000000e+00, // itest=98: ixxxxx#11 nsp=-1 mass=400 - -8.320502943378436e+00, 8.875203139603666e+00, // itest=98: ixxxxx#11 nsp=-1 mass=400 - 7.211102550927978e+00, 0.000000000000000e+00 } ); // itest=98: ixxxxx#11 nsp=-1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -1.440000000000000e+02, // itest=99: ixxxxx#11 nsp=-1 mass=-400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=99: ixxxxx#11 nsp=-1 mass=-400 - 1.664100588675688e+01, -1.775040627920733e+01, // itest=99: ixxxxx#11 nsp=-1 mass=-400 - -1.442220510185596e+01, -0.000000000000000e+00, // itest=99: ixxxxx#11 nsp=-1 mass=-400 - 8.320502943378436e+00, -8.875203139603666e+00, // itest=99: ixxxxx#11 nsp=-1 mass=-400 - -7.211102550927978e+00, -0.000000000000000e+00 } ); // itest=99: ixxxxx#11 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 1.440000000000000e+02, // itest=100: vxxxxx#11 nsp=-1 mass=400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=100: vxxxxx#11 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=100: vxxxxx#11 nsp=-1 mass=400 - 2.321373168788980e-01, 5.158607041753289e-01, // itest=100: vxxxxx#11 nsp=-1 mass=400 - 2.476131380041579e-01, -4.836194101643708e-01, // itest=100: vxxxxx#11 nsp=-1 mass=400 - 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=100: vxxxxx#11 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 1.440000000000000e+02, // itest=101: vxxxxx#11 nsp=-1 mass=-400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=101: vxxxxx#11 nsp=-1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=101: vxxxxx#11 nsp=-1 mass=-400 - 2.321373168788980e-01, 5.158607041753289e-01, // itest=101: vxxxxx#11 nsp=-1 mass=-400 - 2.476131380041579e-01, -4.836194101643708e-01, // itest=101: vxxxxx#11 nsp=-1 mass=-400 - 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=101: vxxxxx#11 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 1.440000000000000e+02, // itest=102: sxxxxx#11 nsp=-1 mass=400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=102: sxxxxx#11 nsp=-1 mass=400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=102: sxxxxx#11 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=102: sxxxxx#11 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=102: sxxxxx#11 nsp=-1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=102: sxxxxx#11 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 1.440000000000000e+02, // itest=103: sxxxxx#11 nsp=-1 mass=-400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=103: sxxxxx#11 nsp=-1 mass=-400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=103: sxxxxx#11 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=103: sxxxxx#11 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=103: sxxxxx#11 nsp=-1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=103: sxxxxx#11 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 1.440000000000000e+02, // itest=104: oxxxxx#11 nsp=-1 mass=400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=104: oxxxxx#11 nsp=-1 mass=400 - -8.320502943378436e+00, -8.875203139603666e+00, // itest=104: oxxxxx#11 nsp=-1 mass=400 - 7.211102550927978e+00, 0.000000000000000e+00, // itest=104: oxxxxx#11 nsp=-1 mass=400 - 1.664100588675688e+01, 1.775040627920733e+01, // itest=104: oxxxxx#11 nsp=-1 mass=400 - -1.442220510185596e+01, -0.000000000000000e+00 } ); // itest=104: oxxxxx#11 nsp=-1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 1.440000000000000e+02, // itest=105: oxxxxx#11 nsp=-1 mass=-400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=105: oxxxxx#11 nsp=-1 mass=-400 - 8.320502943378436e+00, 8.875203139603666e+00, // itest=105: oxxxxx#11 nsp=-1 mass=-400 - -7.211102550927978e+00, -0.000000000000000e+00, // itest=105: oxxxxx#11 nsp=-1 mass=-400 - 1.664100588675688e+01, 1.775040627920733e+01, // itest=105: oxxxxx#11 nsp=-1 mass=-400 - -1.442220510185596e+01, -0.000000000000000e+00 } ); // itest=105: oxxxxx#11 nsp=-1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=106: ixxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=106: ixxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=106: ixxxxx#12 nsp=-1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00, // itest=106: ixxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=106: ixxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=106: ixxxxx#12 nsp=-1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=107: ixxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=107: ixxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=107: ixxxxx#12 nsp=-1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00, // itest=107: ixxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=107: ixxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=107: ixxxxx#12 nsp=-1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=108: ipzxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=108: ipzxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=108: ipzxxx#12 nsp=-1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00, // itest=108: ipzxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=108: ipzxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=108: ipzxxx#12 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=109: vxxxxx#12 nsp=-1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=109: vxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=109: vxxxxx#12 nsp=-1 mass=0 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=109: vxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, -7.071067811865476e-01, // itest=109: vxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=109: vxxxxx#12 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=110: vxxxxx#12 nsp=-1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=110: vxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=110: vxxxxx#12 nsp=-1 mass=0 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=110: vxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, -7.071067811865476e-01, // itest=110: vxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=110: vxxxxx#12 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=111: sxxxxx#12 nsp=-1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=111: sxxxxx#12 nsp=-1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=111: sxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=111: sxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=111: sxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=111: sxxxxx#12 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=112: sxxxxx#12 nsp=-1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=112: sxxxxx#12 nsp=-1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=112: sxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=112: sxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=112: sxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=112: sxxxxx#12 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=113: oxxxxx#12 nsp=-1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=113: oxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=113: oxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=113: oxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=113: oxxxxx#12 nsp=-1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=113: oxxxxx#12 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=114: oxxxxx#12 nsp=-1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=114: oxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=114: oxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=114: oxxxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=114: oxxxxx#12 nsp=-1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=114: oxxxxx#12 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=115: opzxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=115: opzxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=115: opzxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=115: opzxxx#12 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=115: opzxxx#12 nsp=-1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=115: opzxxx#12 nsp=-1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=116: ixxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=116: ixxxxx#13 nsp=-1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00, // itest=116: ixxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=116: ixxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=116: ixxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=116: ixxxxx#13 nsp=-1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=117: ixxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=117: ixxxxx#13 nsp=-1 mass=0 - -3.162277660168379e+01, -0.000000000000000e+00, // itest=117: ixxxxx#13 nsp=-1 mass=0 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=117: ixxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=117: ixxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=117: ixxxxx#13 nsp=-1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=118: imzxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=118: imzxxx#13 nsp=-1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00, // itest=118: imzxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=118: imzxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=118: imzxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=118: imzxxx#13 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=119: vxxxxx#13 nsp=-1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=119: vxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=119: vxxxxx#13 nsp=-1 mass=0 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=119: vxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 7.071067811865476e-01, // itest=119: vxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=119: vxxxxx#13 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=120: vxxxxx#13 nsp=-1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=120: vxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=120: vxxxxx#13 nsp=-1 mass=0 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=120: vxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 7.071067811865476e-01, // itest=120: vxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=120: vxxxxx#13 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=121: sxxxxx#13 nsp=-1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=121: sxxxxx#13 nsp=-1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=121: sxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=121: sxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=121: sxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=121: sxxxxx#13 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=122: sxxxxx#13 nsp=-1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=122: sxxxxx#13 nsp=-1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=122: sxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=122: sxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=122: sxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=122: sxxxxx#13 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=123: oxxxxx#13 nsp=-1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=123: oxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=123: oxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=123: oxxxxx#13 nsp=-1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00, // itest=123: oxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=123: oxxxxx#13 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=124: oxxxxx#13 nsp=-1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=124: oxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=124: oxxxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=124: oxxxxx#13 nsp=-1 mass=0 - -3.162277660168379e+01, -0.000000000000000e+00, // itest=124: oxxxxx#13 nsp=-1 mass=0 - -0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=124: oxxxxx#13 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=125: omzxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=125: omzxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=125: omzxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=125: omzxxx#13 nsp=-1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00, // itest=125: omzxxx#13 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=125: omzxxx#13 nsp=-1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=126: ixxxxx#14 nsp=-1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=126: ixxxxx#14 nsp=-1 mass=0 - 1.341640786499874e+01, -1.788854381999832e+01, // itest=126: ixxxxx#14 nsp=-1 mass=0 - -2.236067977499790e+01, 0.000000000000000e+00, // itest=126: ixxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=126: ixxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=126: ixxxxx#14 nsp=-1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=127: ixxxxx#14 nsp=-1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=127: ixxxxx#14 nsp=-1 mass=0 - 1.341640786499874e+01, -1.788854381999832e+01, // itest=127: ixxxxx#14 nsp=-1 mass=0 - -2.236067977499790e+01, 0.000000000000000e+00, // itest=127: ixxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=127: ixxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=127: ixxxxx#14 nsp=-1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=128: ixzxxx#14 nsp=-1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=128: ixzxxx#14 nsp=-1 mass=0 - 1.341640786499874e+01, -1.788854381999832e+01, // itest=128: ixzxxx#14 nsp=-1 mass=0 - -2.236067977499790e+01, 0.000000000000000e+00, // itest=128: ixzxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=128: ixzxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=128: ixzxxx#14 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=129: vxxxxx#14 nsp=-1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=129: vxxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=129: vxxxxx#14 nsp=-1 mass=0 - -0.000000000000000e+00, 5.656854249492381e-01, // itest=129: vxxxxx#14 nsp=-1 mass=0 - -0.000000000000000e+00, -4.242640687119285e-01, // itest=129: vxxxxx#14 nsp=-1 mass=0 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=129: vxxxxx#14 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=130: vxxxxx#14 nsp=-1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=130: vxxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=130: vxxxxx#14 nsp=-1 mass=0 - -0.000000000000000e+00, 5.656854249492381e-01, // itest=130: vxxxxx#14 nsp=-1 mass=0 - -0.000000000000000e+00, -4.242640687119285e-01, // itest=130: vxxxxx#14 nsp=-1 mass=0 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=130: vxxxxx#14 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=131: sxxxxx#14 nsp=-1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=131: sxxxxx#14 nsp=-1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=131: sxxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=131: sxxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=131: sxxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=131: sxxxxx#14 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=132: sxxxxx#14 nsp=-1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=132: sxxxxx#14 nsp=-1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=132: sxxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=132: sxxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=132: sxxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=132: sxxxxx#14 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=133: oxxxxx#14 nsp=-1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=133: oxxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=133: oxxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=133: oxxxxx#14 nsp=-1 mass=0 - 1.341640786499874e+01, 1.788854381999832e+01, // itest=133: oxxxxx#14 nsp=-1 mass=0 - -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=133: oxxxxx#14 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=134: oxxxxx#14 nsp=-1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=134: oxxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=134: oxxxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=134: oxxxxx#14 nsp=-1 mass=0 - 1.341640786499874e+01, 1.788854381999832e+01, // itest=134: oxxxxx#14 nsp=-1 mass=0 - -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=134: oxxxxx#14 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=135: oxzxxx#14 nsp=-1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=135: oxzxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=135: oxzxxx#14 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=135: oxzxxx#14 nsp=-1 mass=0 - 1.341640786499874e+01, 1.788854381999832e+01, // itest=135: oxzxxx#14 nsp=-1 mass=0 - -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=135: oxzxxx#14 nsp=-1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=136: ixxxxx#15 nsp=-1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=136: ixxxxx#15 nsp=-1 mass=0 - 6.000000000000000e+00, -8.000000000000000e+00, // itest=136: ixxxxx#15 nsp=-1 mass=0 - -3.000000000000000e+01, 0.000000000000000e+00, // itest=136: ixxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=136: ixxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=136: ixxxxx#15 nsp=-1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=137: ixxxxx#15 nsp=-1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=137: ixxxxx#15 nsp=-1 mass=0 - 6.000000000000000e+00, -8.000000000000000e+00, // itest=137: ixxxxx#15 nsp=-1 mass=0 - -3.000000000000000e+01, 0.000000000000000e+00, // itest=137: ixxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=137: ixxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=137: ixxxxx#15 nsp=-1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=138: ixzxxx#15 nsp=-1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=138: ixzxxx#15 nsp=-1 mass=0 - 6.000000000000000e+00, -8.000000000000000e+00, // itest=138: ixzxxx#15 nsp=-1 mass=0 - -3.000000000000000e+01, 0.000000000000000e+00, // itest=138: ixzxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=138: ixzxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=138: ixzxxx#15 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=139: vxxxxx#15 nsp=-1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=139: vxxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=139: vxxxxx#15 nsp=-1 mass=0 - -3.394112549695428e-01, 5.656854249492381e-01, // itest=139: vxxxxx#15 nsp=-1 mass=0 - -4.525483399593904e-01, -4.242640687119285e-01, // itest=139: vxxxxx#15 nsp=-1 mass=0 - 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=139: vxxxxx#15 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=140: vxxxxx#15 nsp=-1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=140: vxxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=140: vxxxxx#15 nsp=-1 mass=0 - -3.394112549695428e-01, 5.656854249492381e-01, // itest=140: vxxxxx#15 nsp=-1 mass=0 - -4.525483399593904e-01, -4.242640687119285e-01, // itest=140: vxxxxx#15 nsp=-1 mass=0 - 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=140: vxxxxx#15 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=141: sxxxxx#15 nsp=-1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=141: sxxxxx#15 nsp=-1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=141: sxxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=141: sxxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=141: sxxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=141: sxxxxx#15 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=142: sxxxxx#15 nsp=-1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=142: sxxxxx#15 nsp=-1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=142: sxxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=142: sxxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=142: sxxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=142: sxxxxx#15 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=143: oxxxxx#15 nsp=-1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=143: oxxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=143: oxxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=143: oxxxxx#15 nsp=-1 mass=0 - 6.000000000000000e+00, 8.000000000000000e+00, // itest=143: oxxxxx#15 nsp=-1 mass=0 - -3.000000000000000e+01, 0.000000000000000e+00 } ); // itest=143: oxxxxx#15 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=144: oxxxxx#15 nsp=-1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=144: oxxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=144: oxxxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=144: oxxxxx#15 nsp=-1 mass=0 - 6.000000000000000e+00, 8.000000000000000e+00, // itest=144: oxxxxx#15 nsp=-1 mass=0 - -3.000000000000000e+01, 0.000000000000000e+00 } ); // itest=144: oxxxxx#15 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=145: oxzxxx#15 nsp=-1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=145: oxzxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=145: oxzxxx#15 nsp=-1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=145: oxzxxx#15 nsp=-1 mass=0 - 6.000000000000000e+00, 8.000000000000000e+00, // itest=145: oxzxxx#15 nsp=-1 mass=0 - -3.000000000000000e+01, 0.000000000000000e+00 } ); // itest=145: oxzxxx#15 nsp=-1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=146: ixxxxx#0 nsp=1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=146: ixxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=146: ixxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=146: ixxxxx#0 nsp=1 mass=0 - 3.162277660168379e+01, 0.000000000000000e+00, // itest=146: ixxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=146: ixxxxx#0 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=147: ixxxxx#0 nsp=1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=147: ixxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=147: ixxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=147: ixxxxx#0 nsp=1 mass=0 - 3.162277660168379e+01, 0.000000000000000e+00, // itest=147: ixxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=147: ixxxxx#0 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=148: ipzxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=148: ipzxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=148: ipzxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=148: ipzxxx#0 nsp=1 mass=0 - 3.162277660168379e+01, 0.000000000000000e+00, // itest=148: ipzxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=148: ipzxxx#0 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=149: vxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=149: vxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=149: vxxxxx#0 nsp=1 mass=0 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=149: vxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 7.071067811865476e-01, // itest=149: vxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=149: vxxxxx#0 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=150: vxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=150: vxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=150: vxxxxx#0 nsp=1 mass=0 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=150: vxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 7.071067811865476e-01, // itest=150: vxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=150: vxxxxx#0 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=151: sxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=151: sxxxxx#0 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=151: sxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=151: sxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=151: sxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=151: sxxxxx#0 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=152: sxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=152: sxxxxx#0 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=152: sxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=152: sxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=152: sxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=152: sxxxxx#0 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=153: oxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=153: oxxxxx#0 nsp=1 mass=0 - 3.162277660168379e+01, 0.000000000000000e+00, // itest=153: oxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=153: oxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=153: oxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=153: oxxxxx#0 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=154: oxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=154: oxxxxx#0 nsp=1 mass=0 - 3.162277660168379e+01, 0.000000000000000e+00, // itest=154: oxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=154: oxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=154: oxxxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=154: oxxxxx#0 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=155: opzxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=155: opzxxx#0 nsp=1 mass=0 - 3.162277660168379e+01, 0.000000000000000e+00, // itest=155: opzxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=155: opzxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=155: opzxxx#0 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=155: opzxxx#0 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=156: ixxxxx#1 nsp=1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=156: ixxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=156: ixxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=156: ixxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=156: ixxxxx#1 nsp=1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=156: ixxxxx#1 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=157: ixxxxx#1 nsp=1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=157: ixxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=157: ixxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=157: ixxxxx#1 nsp=1 mass=0 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=157: ixxxxx#1 nsp=1 mass=0 - -3.162277660168379e+01, -0.000000000000000e+00 } ); // itest=157: ixxxxx#1 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=158: imzxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=158: imzxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=158: imzxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=158: imzxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=158: imzxxx#1 nsp=1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=158: imzxxx#1 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=159: vxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=159: vxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=159: vxxxxx#1 nsp=1 mass=0 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=159: vxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, -7.071067811865476e-01, // itest=159: vxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=159: vxxxxx#1 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=160: vxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=160: vxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=160: vxxxxx#1 nsp=1 mass=0 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=160: vxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, -7.071067811865476e-01, // itest=160: vxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=160: vxxxxx#1 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=161: sxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=161: sxxxxx#1 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=161: sxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=161: sxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=161: sxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=161: sxxxxx#1 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=162: sxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=162: sxxxxx#1 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=162: sxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=162: sxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=162: sxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=162: sxxxxx#1 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=163: oxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=163: oxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=163: oxxxxx#1 nsp=1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00, // itest=163: oxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=163: oxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=163: oxxxxx#1 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=164: oxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=164: oxxxxx#1 nsp=1 mass=0 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=164: oxxxxx#1 nsp=1 mass=0 - -3.162277660168379e+01, -0.000000000000000e+00, // itest=164: oxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=164: oxxxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=164: oxxxxx#1 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=165: omzxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=165: omzxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=165: omzxxx#1 nsp=1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00, // itest=165: omzxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=165: omzxxx#1 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=165: omzxxx#1 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=166: ixxxxx#2 nsp=1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=166: ixxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=166: ixxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=166: ixxxxx#2 nsp=1 mass=0 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=166: ixxxxx#2 nsp=1 mass=0 - 1.341640786499874e+01, 1.788854381999832e+01 } ); // itest=166: ixxxxx#2 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=167: ixxxxx#2 nsp=1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=167: ixxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=167: ixxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=167: ixxxxx#2 nsp=1 mass=0 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=167: ixxxxx#2 nsp=1 mass=0 - 1.341640786499874e+01, 1.788854381999832e+01 } ); // itest=167: ixxxxx#2 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=168: ixzxxx#2 nsp=1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=168: ixzxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=168: ixzxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=168: ixzxxx#2 nsp=1 mass=0 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=168: ixzxxx#2 nsp=1 mass=0 - 1.341640786499874e+01, 1.788854381999832e+01 } ); // itest=168: ixzxxx#2 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=169: vxxxxx#2 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=169: vxxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=169: vxxxxx#2 nsp=1 mass=0 - -0.000000000000000e+00, -5.656854249492381e-01, // itest=169: vxxxxx#2 nsp=1 mass=0 - -0.000000000000000e+00, 4.242640687119285e-01, // itest=169: vxxxxx#2 nsp=1 mass=0 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=169: vxxxxx#2 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=170: vxxxxx#2 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=170: vxxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=170: vxxxxx#2 nsp=1 mass=0 - -0.000000000000000e+00, -5.656854249492381e-01, // itest=170: vxxxxx#2 nsp=1 mass=0 - -0.000000000000000e+00, 4.242640687119285e-01, // itest=170: vxxxxx#2 nsp=1 mass=0 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=170: vxxxxx#2 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=171: sxxxxx#2 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=171: sxxxxx#2 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=171: sxxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=171: sxxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=171: sxxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=171: sxxxxx#2 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=172: sxxxxx#2 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=172: sxxxxx#2 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=172: sxxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=172: sxxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=172: sxxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=172: sxxxxx#2 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=173: oxxxxx#2 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=173: oxxxxx#2 nsp=1 mass=0 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=173: oxxxxx#2 nsp=1 mass=0 - 1.341640786499874e+01, -1.788854381999832e+01, // itest=173: oxxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=173: oxxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=173: oxxxxx#2 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=174: oxxxxx#2 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=174: oxxxxx#2 nsp=1 mass=0 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=174: oxxxxx#2 nsp=1 mass=0 - 1.341640786499874e+01, -1.788854381999832e+01, // itest=174: oxxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=174: oxxxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=174: oxxxxx#2 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=175: oxzxxx#2 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=175: oxzxxx#2 nsp=1 mass=0 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=175: oxzxxx#2 nsp=1 mass=0 - 1.341640786499874e+01, -1.788854381999832e+01, // itest=175: oxzxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=175: oxzxxx#2 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=175: oxzxxx#2 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=176: ixxxxx#3 nsp=1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=176: ixxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=176: ixxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=176: ixxxxx#3 nsp=1 mass=0 - 3.000000000000000e+01, 0.000000000000000e+00, // itest=176: ixxxxx#3 nsp=1 mass=0 - 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=176: ixxxxx#3 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=177: ixxxxx#3 nsp=1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=177: ixxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=177: ixxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=177: ixxxxx#3 nsp=1 mass=0 - 3.000000000000000e+01, 0.000000000000000e+00, // itest=177: ixxxxx#3 nsp=1 mass=0 - 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=177: ixxxxx#3 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=178: ixzxxx#3 nsp=1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=178: ixzxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=178: ixzxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=178: ixzxxx#3 nsp=1 mass=0 - 3.000000000000000e+01, 0.000000000000000e+00, // itest=178: ixzxxx#3 nsp=1 mass=0 - 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=178: ixzxxx#3 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=179: vxxxxx#3 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=179: vxxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=179: vxxxxx#3 nsp=1 mass=0 - -3.394112549695428e-01, -5.656854249492381e-01, // itest=179: vxxxxx#3 nsp=1 mass=0 - -4.525483399593904e-01, 4.242640687119285e-01, // itest=179: vxxxxx#3 nsp=1 mass=0 - 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=179: vxxxxx#3 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=180: vxxxxx#3 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=180: vxxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=180: vxxxxx#3 nsp=1 mass=0 - -3.394112549695428e-01, -5.656854249492381e-01, // itest=180: vxxxxx#3 nsp=1 mass=0 - -4.525483399593904e-01, 4.242640687119285e-01, // itest=180: vxxxxx#3 nsp=1 mass=0 - 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=180: vxxxxx#3 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=181: sxxxxx#3 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=181: sxxxxx#3 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=181: sxxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=181: sxxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=181: sxxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=181: sxxxxx#3 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=182: sxxxxx#3 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=182: sxxxxx#3 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=182: sxxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=182: sxxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=182: sxxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=182: sxxxxx#3 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=183: oxxxxx#3 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=183: oxxxxx#3 nsp=1 mass=0 - 3.000000000000000e+01, 0.000000000000000e+00, // itest=183: oxxxxx#3 nsp=1 mass=0 - 6.000000000000000e+00, -8.000000000000000e+00, // itest=183: oxxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=183: oxxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=183: oxxxxx#3 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=184: oxxxxx#3 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=184: oxxxxx#3 nsp=1 mass=0 - 3.000000000000000e+01, 0.000000000000000e+00, // itest=184: oxxxxx#3 nsp=1 mass=0 - 6.000000000000000e+00, -8.000000000000000e+00, // itest=184: oxxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=184: oxxxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=184: oxxxxx#3 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=185: oxzxxx#3 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=185: oxzxxx#3 nsp=1 mass=0 - 3.000000000000000e+01, 0.000000000000000e+00, // itest=185: oxzxxx#3 nsp=1 mass=0 - 6.000000000000000e+00, -8.000000000000000e+00, // itest=185: oxzxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=185: oxzxxx#3 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=185: oxzxxx#3 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 4.000000000000000e+02, // itest=186: ixxxxx#4 nsp=1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=186: ixxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=186: ixxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=186: ixxxxx#4 nsp=1 mass=0 - 1.000000000000000e+01, 0.000000000000000e+00, // itest=186: ixxxxx#4 nsp=1 mass=0 - 1.800000000000000e+01, 2.400000000000000e+01 } ); // itest=186: ixxxxx#4 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 4.000000000000000e+02, // itest=187: ixxxxx#4 nsp=1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=187: ixxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=187: ixxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=187: ixxxxx#4 nsp=1 mass=0 - 1.000000000000000e+01, 0.000000000000000e+00, // itest=187: ixxxxx#4 nsp=1 mass=0 - 1.800000000000000e+01, 2.400000000000000e+01 } ); // itest=187: ixxxxx#4 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 4.000000000000000e+02, // itest=188: ixzxxx#4 nsp=1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=188: ixzxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=188: ixzxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=188: ixzxxx#4 nsp=1 mass=0 - 1.000000000000000e+01, 0.000000000000000e+00, // itest=188: ixzxxx#4 nsp=1 mass=0 - 1.800000000000000e+01, 2.400000000000000e+01 } ); // itest=188: ixzxxx#4 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -4.000000000000000e+02, // itest=189: vxxxxx#4 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=189: vxxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=189: vxxxxx#4 nsp=1 mass=0 - 3.394112549695428e-01, -5.656854249492381e-01, // itest=189: vxxxxx#4 nsp=1 mass=0 - 4.525483399593904e-01, 4.242640687119285e-01, // itest=189: vxxxxx#4 nsp=1 mass=0 - 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=189: vxxxxx#4 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -4.000000000000000e+02, // itest=190: vxxxxx#4 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=190: vxxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=190: vxxxxx#4 nsp=1 mass=0 - 3.394112549695428e-01, -5.656854249492381e-01, // itest=190: vxxxxx#4 nsp=1 mass=0 - 4.525483399593904e-01, 4.242640687119285e-01, // itest=190: vxxxxx#4 nsp=1 mass=0 - 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=190: vxxxxx#4 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -4.000000000000000e+02, // itest=191: sxxxxx#4 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=191: sxxxxx#4 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=191: sxxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=191: sxxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=191: sxxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=191: sxxxxx#4 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -4.000000000000000e+02, // itest=192: sxxxxx#4 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=192: sxxxxx#4 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=192: sxxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=192: sxxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=192: sxxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=192: sxxxxx#4 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -4.000000000000000e+02, // itest=193: oxxxxx#4 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=193: oxxxxx#4 nsp=1 mass=0 - 1.000000000000000e+01, 0.000000000000000e+00, // itest=193: oxxxxx#4 nsp=1 mass=0 - 1.800000000000000e+01, -2.400000000000000e+01, // itest=193: oxxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=193: oxxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=193: oxxxxx#4 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -4.000000000000000e+02, // itest=194: oxxxxx#4 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=194: oxxxxx#4 nsp=1 mass=0 - 1.000000000000000e+01, 0.000000000000000e+00, // itest=194: oxxxxx#4 nsp=1 mass=0 - 1.800000000000000e+01, -2.400000000000000e+01, // itest=194: oxxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=194: oxxxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=194: oxxxxx#4 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -4.000000000000000e+02, // itest=195: oxzxxx#4 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=195: oxzxxx#4 nsp=1 mass=0 - 1.000000000000000e+01, 0.000000000000000e+00, // itest=195: oxzxxx#4 nsp=1 mass=0 - 1.800000000000000e+01, -2.400000000000000e+01, // itest=195: oxzxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=195: oxzxxx#4 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=195: oxzxxx#4 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=196: ixxxxx#5 nsp=1 mass=500 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=196: ixxxxx#5 nsp=1 mass=500 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=196: ixxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=196: ixxxxx#5 nsp=1 mass=500 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=196: ixxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=196: ixxxxx#5 nsp=1 mass=500 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=197: ixxxxx#5 nsp=1 mass=-500 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=197: ixxxxx#5 nsp=1 mass=-500 - -2.236067977499790e+01, 0.000000000000000e+00, // itest=197: ixxxxx#5 nsp=1 mass=-500 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=197: ixxxxx#5 nsp=1 mass=-500 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=197: ixxxxx#5 nsp=1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=197: ixxxxx#5 nsp=1 mass=-500 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=198: vxxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=198: vxxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=198: vxxxxx#5 nsp=1 mass=500 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=198: vxxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 7.071067811865476e-01, // itest=198: vxxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=198: vxxxxx#5 nsp=1 mass=500 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=199: vxxxxx#5 nsp=1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=199: vxxxxx#5 nsp=1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=199: vxxxxx#5 nsp=1 mass=-500 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=199: vxxxxx#5 nsp=1 mass=-500 - 0.000000000000000e+00, 7.071067811865476e-01, // itest=199: vxxxxx#5 nsp=1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=199: vxxxxx#5 nsp=1 mass=-500 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=200: sxxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=200: sxxxxx#5 nsp=1 mass=500 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=200: sxxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=200: sxxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=200: sxxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=200: sxxxxx#5 nsp=1 mass=500 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=201: sxxxxx#5 nsp=1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=201: sxxxxx#5 nsp=1 mass=-500 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=201: sxxxxx#5 nsp=1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=201: sxxxxx#5 nsp=1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=201: sxxxxx#5 nsp=1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=201: sxxxxx#5 nsp=1 mass=-500 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=202: oxxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=202: oxxxxx#5 nsp=1 mass=500 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=202: oxxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=202: oxxxxx#5 nsp=1 mass=500 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=202: oxxxxx#5 nsp=1 mass=500 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=202: oxxxxx#5 nsp=1 mass=500 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=203: oxxxxx#5 nsp=1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=203: oxxxxx#5 nsp=1 mass=-500 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=203: oxxxxx#5 nsp=1 mass=-500 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=203: oxxxxx#5 nsp=1 mass=-500 - -2.236067977499790e+01, 0.000000000000000e+00, // itest=203: oxxxxx#5 nsp=1 mass=-500 - -0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=203: oxxxxx#5 nsp=1 mass=-500 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -3.000000000000000e+02, // itest=204: ixxxxx#6 nsp=1 mass=400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=204: ixxxxx#6 nsp=1 mass=400 - 1.414213562373095e+01, 0.000000000000000e+00, // itest=204: ixxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=204: ixxxxx#6 nsp=1 mass=400 - 2.828427124746190e+01, 0.000000000000000e+00, // itest=204: ixxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=204: ixxxxx#6 nsp=1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -3.000000000000000e+02, // itest=205: ixxxxx#6 nsp=1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=205: ixxxxx#6 nsp=1 mass=-400 - -1.414213562373095e+01, -0.000000000000000e+00, // itest=205: ixxxxx#6 nsp=1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=205: ixxxxx#6 nsp=1 mass=-400 - 2.828427124746190e+01, 0.000000000000000e+00, // itest=205: ixxxxx#6 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=205: ixxxxx#6 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 3.000000000000000e+02, // itest=206: vxxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=206: vxxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=206: vxxxxx#6 nsp=1 mass=400 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=206: vxxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, 7.071067811865476e-01, // itest=206: vxxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=206: vxxxxx#6 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 3.000000000000000e+02, // itest=207: vxxxxx#6 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=207: vxxxxx#6 nsp=1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=207: vxxxxx#6 nsp=1 mass=-400 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=207: vxxxxx#6 nsp=1 mass=-400 - 0.000000000000000e+00, 7.071067811865476e-01, // itest=207: vxxxxx#6 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=207: vxxxxx#6 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 3.000000000000000e+02, // itest=208: sxxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=208: sxxxxx#6 nsp=1 mass=400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=208: sxxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=208: sxxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=208: sxxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=208: sxxxxx#6 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 3.000000000000000e+02, // itest=209: sxxxxx#6 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=209: sxxxxx#6 nsp=1 mass=-400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=209: sxxxxx#6 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=209: sxxxxx#6 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=209: sxxxxx#6 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=209: sxxxxx#6 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 3.000000000000000e+02, // itest=210: oxxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=210: oxxxxx#6 nsp=1 mass=400 - 2.828427124746190e+01, 0.000000000000000e+00, // itest=210: oxxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=210: oxxxxx#6 nsp=1 mass=400 - 1.414213562373095e+01, 0.000000000000000e+00, // itest=210: oxxxxx#6 nsp=1 mass=400 - 0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=210: oxxxxx#6 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 3.000000000000000e+02, // itest=211: oxxxxx#6 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=211: oxxxxx#6 nsp=1 mass=-400 - 2.828427124746190e+01, 0.000000000000000e+00, // itest=211: oxxxxx#6 nsp=1 mass=-400 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=211: oxxxxx#6 nsp=1 mass=-400 - -1.414213562373095e+01, -0.000000000000000e+00, // itest=211: oxxxxx#6 nsp=1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=211: oxxxxx#6 nsp=1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 3.000000000000000e+02, // itest=212: ixxxxx#7 nsp=1 mass=400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=212: ixxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=212: ixxxxx#7 nsp=1 mass=400 - -1.414213562373095e+01, 0.000000000000000e+00, // itest=212: ixxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=212: ixxxxx#7 nsp=1 mass=400 - -2.828427124746190e+01, 0.000000000000000e+00 } ); // itest=212: ixxxxx#7 nsp=1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 3.000000000000000e+02, // itest=213: ixxxxx#7 nsp=1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=213: ixxxxx#7 nsp=1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=213: ixxxxx#7 nsp=1 mass=-400 - 1.414213562373095e+01, -0.000000000000000e+00, // itest=213: ixxxxx#7 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=213: ixxxxx#7 nsp=1 mass=-400 - -2.828427124746190e+01, 0.000000000000000e+00 } ); // itest=213: ixxxxx#7 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -3.000000000000000e+02, // itest=214: vxxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=214: vxxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=214: vxxxxx#7 nsp=1 mass=400 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=214: vxxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, -7.071067811865476e-01, // itest=214: vxxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=214: vxxxxx#7 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -3.000000000000000e+02, // itest=215: vxxxxx#7 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=215: vxxxxx#7 nsp=1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=215: vxxxxx#7 nsp=1 mass=-400 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=215: vxxxxx#7 nsp=1 mass=-400 - 0.000000000000000e+00, -7.071067811865476e-01, // itest=215: vxxxxx#7 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=215: vxxxxx#7 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -3.000000000000000e+02, // itest=216: sxxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=216: sxxxxx#7 nsp=1 mass=400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=216: sxxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=216: sxxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=216: sxxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=216: sxxxxx#7 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -3.000000000000000e+02, // itest=217: sxxxxx#7 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=217: sxxxxx#7 nsp=1 mass=-400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=217: sxxxxx#7 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=217: sxxxxx#7 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=217: sxxxxx#7 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=217: sxxxxx#7 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -3.000000000000000e+02, // itest=218: oxxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=218: oxxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=218: oxxxxx#7 nsp=1 mass=400 - -2.828427124746190e+01, 0.000000000000000e+00, // itest=218: oxxxxx#7 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=218: oxxxxx#7 nsp=1 mass=400 - -1.414213562373095e+01, 0.000000000000000e+00 } ); // itest=218: oxxxxx#7 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -3.000000000000000e+02, // itest=219: oxxxxx#7 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=219: oxxxxx#7 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=219: oxxxxx#7 nsp=1 mass=-400 - -2.828427124746190e+01, 0.000000000000000e+00, // itest=219: oxxxxx#7 nsp=1 mass=-400 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=219: oxxxxx#7 nsp=1 mass=-400 - 1.414213562373095e+01, -0.000000000000000e+00 } ); // itest=219: oxxxxx#7 nsp=1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=220: ixxxxx#8 nsp=1 mass=400 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=220: ixxxxx#8 nsp=1 mass=400 - 1.000000000000000e+01, 0.000000000000000e+00, // itest=220: ixxxxx#8 nsp=1 mass=400 - 5.999999999999999e+00, 7.999999999999999e+00, // itest=220: ixxxxx#8 nsp=1 mass=400 - 2.000000000000000e+01, 0.000000000000000e+00, // itest=220: ixxxxx#8 nsp=1 mass=400 - 1.200000000000000e+01, 1.600000000000000e+01 } ); // itest=220: ixxxxx#8 nsp=1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=221: ixxxxx#8 nsp=1 mass=-400 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=221: ixxxxx#8 nsp=1 mass=-400 - -1.000000000000000e+01, -0.000000000000000e+00, // itest=221: ixxxxx#8 nsp=1 mass=-400 - -5.999999999999999e+00, -7.999999999999999e+00, // itest=221: ixxxxx#8 nsp=1 mass=-400 - 2.000000000000000e+01, 0.000000000000000e+00, // itest=221: ixxxxx#8 nsp=1 mass=-400 - 1.200000000000000e+01, 1.600000000000000e+01 } ); // itest=221: ixxxxx#8 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=222: vxxxxx#8 nsp=1 mass=400 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=222: vxxxxx#8 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=222: vxxxxx#8 nsp=1 mass=400 - 0.000000000000000e+00, -5.656854249492381e-01, // itest=222: vxxxxx#8 nsp=1 mass=400 - 0.000000000000000e+00, 4.242640687119285e-01, // itest=222: vxxxxx#8 nsp=1 mass=400 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=222: vxxxxx#8 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=223: vxxxxx#8 nsp=1 mass=-400 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=223: vxxxxx#8 nsp=1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=223: vxxxxx#8 nsp=1 mass=-400 - -0.000000000000000e+00, -5.656854249492381e-01, // itest=223: vxxxxx#8 nsp=1 mass=-400 - -0.000000000000000e+00, 4.242640687119285e-01, // itest=223: vxxxxx#8 nsp=1 mass=-400 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=223: vxxxxx#8 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=224: sxxxxx#8 nsp=1 mass=400 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=224: sxxxxx#8 nsp=1 mass=400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=224: sxxxxx#8 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=224: sxxxxx#8 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=224: sxxxxx#8 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=224: sxxxxx#8 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=225: sxxxxx#8 nsp=1 mass=-400 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=225: sxxxxx#8 nsp=1 mass=-400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=225: sxxxxx#8 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=225: sxxxxx#8 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=225: sxxxxx#8 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=225: sxxxxx#8 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=226: oxxxxx#8 nsp=1 mass=400 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=226: oxxxxx#8 nsp=1 mass=400 - 2.000000000000000e+01, 0.000000000000000e+00, // itest=226: oxxxxx#8 nsp=1 mass=400 - 1.200000000000000e+01, -1.600000000000000e+01, // itest=226: oxxxxx#8 nsp=1 mass=400 - 1.000000000000000e+01, 0.000000000000000e+00, // itest=226: oxxxxx#8 nsp=1 mass=400 - 5.999999999999999e+00, -7.999999999999999e+00 } ); // itest=226: oxxxxx#8 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=227: oxxxxx#8 nsp=1 mass=-400 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=227: oxxxxx#8 nsp=1 mass=-400 - 2.000000000000000e+01, 0.000000000000000e+00, // itest=227: oxxxxx#8 nsp=1 mass=-400 - 1.200000000000000e+01, -1.600000000000000e+01, // itest=227: oxxxxx#8 nsp=1 mass=-400 - -1.000000000000000e+01, -0.000000000000000e+00, // itest=227: oxxxxx#8 nsp=1 mass=-400 - -5.999999999999999e+00, 7.999999999999999e+00 } ); // itest=227: oxxxxx#8 nsp=1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=228: ixxxxx#9 nsp=1 mass=400 - 2.400000000000000e+02, 1.800000000000000e+02, // itest=228: ixxxxx#9 nsp=1 mass=400 - 1.000000000000000e+01, 0.000000000000000e+00, // itest=228: ixxxxx#9 nsp=1 mass=400 - -7.999999999999999e+00, -5.999999999999999e+00, // itest=228: ixxxxx#9 nsp=1 mass=400 - 2.000000000000000e+01, 0.000000000000000e+00, // itest=228: ixxxxx#9 nsp=1 mass=400 - -1.600000000000000e+01, -1.200000000000000e+01 } ); // itest=228: ixxxxx#9 nsp=1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=229: ixxxxx#9 nsp=1 mass=-400 - 2.400000000000000e+02, 1.800000000000000e+02, // itest=229: ixxxxx#9 nsp=1 mass=-400 - -1.000000000000000e+01, -0.000000000000000e+00, // itest=229: ixxxxx#9 nsp=1 mass=-400 - 7.999999999999999e+00, 5.999999999999999e+00, // itest=229: ixxxxx#9 nsp=1 mass=-400 - 2.000000000000000e+01, 0.000000000000000e+00, // itest=229: ixxxxx#9 nsp=1 mass=-400 - -1.600000000000000e+01, -1.200000000000000e+01 } ); // itest=229: ixxxxx#9 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=230: vxxxxx#9 nsp=1 mass=400 - -2.400000000000000e+02, -1.800000000000000e+02, // itest=230: vxxxxx#9 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=230: vxxxxx#9 nsp=1 mass=400 - 0.000000000000000e+00, 4.242640687119285e-01, // itest=230: vxxxxx#9 nsp=1 mass=400 - 0.000000000000000e+00, -5.656854249492381e-01, // itest=230: vxxxxx#9 nsp=1 mass=400 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=230: vxxxxx#9 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=231: vxxxxx#9 nsp=1 mass=-400 - -2.400000000000000e+02, -1.800000000000000e+02, // itest=231: vxxxxx#9 nsp=1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=231: vxxxxx#9 nsp=1 mass=-400 - 0.000000000000000e+00, 4.242640687119285e-01, // itest=231: vxxxxx#9 nsp=1 mass=-400 - 0.000000000000000e+00, -5.656854249492381e-01, // itest=231: vxxxxx#9 nsp=1 mass=-400 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=231: vxxxxx#9 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=232: sxxxxx#9 nsp=1 mass=400 - -2.400000000000000e+02, -1.800000000000000e+02, // itest=232: sxxxxx#9 nsp=1 mass=400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=232: sxxxxx#9 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=232: sxxxxx#9 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=232: sxxxxx#9 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=232: sxxxxx#9 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=233: sxxxxx#9 nsp=1 mass=-400 - -2.400000000000000e+02, -1.800000000000000e+02, // itest=233: sxxxxx#9 nsp=1 mass=-400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=233: sxxxxx#9 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=233: sxxxxx#9 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=233: sxxxxx#9 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=233: sxxxxx#9 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=234: oxxxxx#9 nsp=1 mass=400 - -2.400000000000000e+02, -1.800000000000000e+02, // itest=234: oxxxxx#9 nsp=1 mass=400 - 2.000000000000000e+01, 0.000000000000000e+00, // itest=234: oxxxxx#9 nsp=1 mass=400 - -1.600000000000000e+01, 1.200000000000000e+01, // itest=234: oxxxxx#9 nsp=1 mass=400 - 1.000000000000000e+01, 0.000000000000000e+00, // itest=234: oxxxxx#9 nsp=1 mass=400 - -7.999999999999999e+00, 5.999999999999999e+00 } ); // itest=234: oxxxxx#9 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=235: oxxxxx#9 nsp=1 mass=-400 - -2.400000000000000e+02, -1.800000000000000e+02, // itest=235: oxxxxx#9 nsp=1 mass=-400 - 2.000000000000000e+01, 0.000000000000000e+00, // itest=235: oxxxxx#9 nsp=1 mass=-400 - -1.600000000000000e+01, 1.200000000000000e+01, // itest=235: oxxxxx#9 nsp=1 mass=-400 - -1.000000000000000e+01, -0.000000000000000e+00, // itest=235: oxxxxx#9 nsp=1 mass=-400 - 7.999999999999999e+00, -5.999999999999999e+00 } ); // itest=235: oxxxxx#9 nsp=1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -1.440000000000000e+02, // itest=236: ixxxxx#10 nsp=1 mass=400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=236: ixxxxx#10 nsp=1 mass=400 - 1.216552506059644e+01, 0.000000000000000e+00, // itest=236: ixxxxx#10 nsp=1 mass=400 - 4.931969619160719e+00, 5.260767593771432e+00, // itest=236: ixxxxx#10 nsp=1 mass=400 - 2.433105012119288e+01, 0.000000000000000e+00, // itest=236: ixxxxx#10 nsp=1 mass=400 - 9.863939238321439e+00, 1.052153518754287e+01 } ); // itest=236: ixxxxx#10 nsp=1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -1.440000000000000e+02, // itest=237: ixxxxx#10 nsp=1 mass=-400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=237: ixxxxx#10 nsp=1 mass=-400 - -1.216552506059644e+01, -0.000000000000000e+00, // itest=237: ixxxxx#10 nsp=1 mass=-400 - -4.931969619160719e+00, -5.260767593771432e+00, // itest=237: ixxxxx#10 nsp=1 mass=-400 - 2.433105012119288e+01, 0.000000000000000e+00, // itest=237: ixxxxx#10 nsp=1 mass=-400 - 9.863939238321439e+00, 1.052153518754287e+01 } ); // itest=237: ixxxxx#10 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 1.440000000000000e+02, // itest=238: vxxxxx#10 nsp=1 mass=400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=238: vxxxxx#10 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=238: vxxxxx#10 nsp=1 mass=400 - -2.321373168788980e-01, -5.158607041753289e-01, // itest=238: vxxxxx#10 nsp=1 mass=400 - -2.476131380041579e-01, 4.836194101643708e-01, // itest=238: vxxxxx#10 nsp=1 mass=400 - 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=238: vxxxxx#10 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 1.440000000000000e+02, // itest=239: vxxxxx#10 nsp=1 mass=-400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=239: vxxxxx#10 nsp=1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=239: vxxxxx#10 nsp=1 mass=-400 - -2.321373168788980e-01, -5.158607041753289e-01, // itest=239: vxxxxx#10 nsp=1 mass=-400 - -2.476131380041579e-01, 4.836194101643708e-01, // itest=239: vxxxxx#10 nsp=1 mass=-400 - 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=239: vxxxxx#10 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 1.440000000000000e+02, // itest=240: sxxxxx#10 nsp=1 mass=400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=240: sxxxxx#10 nsp=1 mass=400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=240: sxxxxx#10 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=240: sxxxxx#10 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=240: sxxxxx#10 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=240: sxxxxx#10 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 1.440000000000000e+02, // itest=241: sxxxxx#10 nsp=1 mass=-400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=241: sxxxxx#10 nsp=1 mass=-400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=241: sxxxxx#10 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=241: sxxxxx#10 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=241: sxxxxx#10 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=241: sxxxxx#10 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 1.440000000000000e+02, // itest=242: oxxxxx#10 nsp=1 mass=400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=242: oxxxxx#10 nsp=1 mass=400 - 2.433105012119288e+01, 0.000000000000000e+00, // itest=242: oxxxxx#10 nsp=1 mass=400 - 9.863939238321439e+00, -1.052153518754287e+01, // itest=242: oxxxxx#10 nsp=1 mass=400 - 1.216552506059644e+01, 0.000000000000000e+00, // itest=242: oxxxxx#10 nsp=1 mass=400 - 4.931969619160719e+00, -5.260767593771432e+00 } ); // itest=242: oxxxxx#10 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 1.440000000000000e+02, // itest=243: oxxxxx#10 nsp=1 mass=-400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=243: oxxxxx#10 nsp=1 mass=-400 - 2.433105012119288e+01, 0.000000000000000e+00, // itest=243: oxxxxx#10 nsp=1 mass=-400 - 9.863939238321439e+00, -1.052153518754287e+01, // itest=243: oxxxxx#10 nsp=1 mass=-400 - -1.216552506059644e+01, -0.000000000000000e+00, // itest=243: oxxxxx#10 nsp=1 mass=-400 - -4.931969619160719e+00, 5.260767593771432e+00 } ); // itest=243: oxxxxx#10 nsp=1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 1.440000000000000e+02, // itest=244: ixxxxx#11 nsp=1 mass=400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=244: ixxxxx#11 nsp=1 mass=400 - 7.211102550927978e+00, 0.000000000000000e+00, // itest=244: ixxxxx#11 nsp=1 mass=400 - 8.320502943378436e+00, 8.875203139603666e+00, // itest=244: ixxxxx#11 nsp=1 mass=400 - 1.442220510185596e+01, 0.000000000000000e+00, // itest=244: ixxxxx#11 nsp=1 mass=400 - 1.664100588675688e+01, 1.775040627920733e+01 } ); // itest=244: ixxxxx#11 nsp=1 mass=400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 1.440000000000000e+02, // itest=245: ixxxxx#11 nsp=1 mass=-400 - -1.800000000000000e+02, -1.920000000000000e+02, // itest=245: ixxxxx#11 nsp=1 mass=-400 - -7.211102550927978e+00, -0.000000000000000e+00, // itest=245: ixxxxx#11 nsp=1 mass=-400 - -8.320502943378436e+00, -8.875203139603666e+00, // itest=245: ixxxxx#11 nsp=1 mass=-400 - 1.442220510185596e+01, 0.000000000000000e+00, // itest=245: ixxxxx#11 nsp=1 mass=-400 - 1.664100588675688e+01, 1.775040627920733e+01 } ); // itest=245: ixxxxx#11 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -1.440000000000000e+02, // itest=246: vxxxxx#11 nsp=1 mass=400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=246: vxxxxx#11 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=246: vxxxxx#11 nsp=1 mass=400 - 2.321373168788980e-01, -5.158607041753289e-01, // itest=246: vxxxxx#11 nsp=1 mass=400 - 2.476131380041579e-01, 4.836194101643708e-01, // itest=246: vxxxxx#11 nsp=1 mass=400 - 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=246: vxxxxx#11 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -1.440000000000000e+02, // itest=247: vxxxxx#11 nsp=1 mass=-400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=247: vxxxxx#11 nsp=1 mass=-400 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=247: vxxxxx#11 nsp=1 mass=-400 - 2.321373168788980e-01, -5.158607041753289e-01, // itest=247: vxxxxx#11 nsp=1 mass=-400 - 2.476131380041579e-01, 4.836194101643708e-01, // itest=247: vxxxxx#11 nsp=1 mass=-400 - 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=247: vxxxxx#11 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -1.440000000000000e+02, // itest=248: sxxxxx#11 nsp=1 mass=400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=248: sxxxxx#11 nsp=1 mass=400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=248: sxxxxx#11 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=248: sxxxxx#11 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=248: sxxxxx#11 nsp=1 mass=400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=248: sxxxxx#11 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -1.440000000000000e+02, // itest=249: sxxxxx#11 nsp=1 mass=-400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=249: sxxxxx#11 nsp=1 mass=-400 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=249: sxxxxx#11 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=249: sxxxxx#11 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=249: sxxxxx#11 nsp=1 mass=-400 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=249: sxxxxx#11 nsp=1 mass=-400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -1.440000000000000e+02, // itest=250: oxxxxx#11 nsp=1 mass=400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=250: oxxxxx#11 nsp=1 mass=400 - 1.442220510185596e+01, 0.000000000000000e+00, // itest=250: oxxxxx#11 nsp=1 mass=400 - 1.664100588675688e+01, -1.775040627920733e+01, // itest=250: oxxxxx#11 nsp=1 mass=400 - 7.211102550927978e+00, 0.000000000000000e+00, // itest=250: oxxxxx#11 nsp=1 mass=400 - 8.320502943378436e+00, -8.875203139603666e+00 } ); // itest=250: oxxxxx#11 nsp=1 mass=400 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -1.440000000000000e+02, // itest=251: oxxxxx#11 nsp=1 mass=-400 - 1.800000000000000e+02, 1.920000000000000e+02, // itest=251: oxxxxx#11 nsp=1 mass=-400 - 1.442220510185596e+01, 0.000000000000000e+00, // itest=251: oxxxxx#11 nsp=1 mass=-400 - 1.664100588675688e+01, -1.775040627920733e+01, // itest=251: oxxxxx#11 nsp=1 mass=-400 - -7.211102550927978e+00, -0.000000000000000e+00, // itest=251: oxxxxx#11 nsp=1 mass=-400 - -8.320502943378436e+00, 8.875203139603666e+00 } ); // itest=251: oxxxxx#11 nsp=1 mass=-400 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=252: ixxxxx#12 nsp=1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=252: ixxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=252: ixxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=252: ixxxxx#12 nsp=1 mass=0 - 3.162277660168379e+01, 0.000000000000000e+00, // itest=252: ixxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=252: ixxxxx#12 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=253: ixxxxx#12 nsp=1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=253: ixxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=253: ixxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=253: ixxxxx#12 nsp=1 mass=0 - 3.162277660168379e+01, 0.000000000000000e+00, // itest=253: ixxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=253: ixxxxx#12 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -5.000000000000000e+02, // itest=254: ipzxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=254: ipzxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=254: ipzxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=254: ipzxxx#12 nsp=1 mass=0 - 3.162277660168379e+01, 0.000000000000000e+00, // itest=254: ipzxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=254: ipzxxx#12 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=255: vxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=255: vxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=255: vxxxxx#12 nsp=1 mass=0 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=255: vxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 7.071067811865476e-01, // itest=255: vxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=255: vxxxxx#12 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=256: vxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=256: vxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=256: vxxxxx#12 nsp=1 mass=0 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=256: vxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 7.071067811865476e-01, // itest=256: vxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=256: vxxxxx#12 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=257: sxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=257: sxxxxx#12 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=257: sxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=257: sxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=257: sxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=257: sxxxxx#12 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=258: sxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=258: sxxxxx#12 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=258: sxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=258: sxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=258: sxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=258: sxxxxx#12 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=259: oxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=259: oxxxxx#12 nsp=1 mass=0 - 3.162277660168379e+01, 0.000000000000000e+00, // itest=259: oxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=259: oxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=259: oxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=259: oxxxxx#12 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=260: oxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=260: oxxxxx#12 nsp=1 mass=0 - 3.162277660168379e+01, 0.000000000000000e+00, // itest=260: oxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, -0.000000000000000e+00, // itest=260: oxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=260: oxxxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=260: oxxxxx#12 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 5.000000000000000e+02, // itest=261: opzxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=261: opzxxx#12 nsp=1 mass=0 - 3.162277660168379e+01, 0.000000000000000e+00, // itest=261: opzxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=261: opzxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=261: opzxxx#12 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=261: opzxxx#12 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=262: ixxxxx#13 nsp=1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=262: ixxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=262: ixxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=262: ixxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=262: ixxxxx#13 nsp=1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=262: ixxxxx#13 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=263: ixxxxx#13 nsp=1 mass=0 - -0.000000000000000e+00, -0.000000000000000e+00, // itest=263: ixxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=263: ixxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=263: ixxxxx#13 nsp=1 mass=0 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=263: ixxxxx#13 nsp=1 mass=0 - -3.162277660168379e+01, -0.000000000000000e+00 } ); // itest=263: ixxxxx#13 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, 5.000000000000000e+02, // itest=264: imzxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=264: imzxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=264: imzxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=264: imzxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=264: imzxxx#13 nsp=1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=264: imzxxx#13 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=265: vxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=265: vxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=265: vxxxxx#13 nsp=1 mass=0 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=265: vxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, -7.071067811865476e-01, // itest=265: vxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=265: vxxxxx#13 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=266: vxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=266: vxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=266: vxxxxx#13 nsp=1 mass=0 - -7.071067811865476e-01, 0.000000000000000e+00, // itest=266: vxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, -7.071067811865476e-01, // itest=266: vxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=266: vxxxxx#13 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=267: sxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=267: sxxxxx#13 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=267: sxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=267: sxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=267: sxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=267: sxxxxx#13 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=268: sxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=268: sxxxxx#13 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=268: sxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=268: sxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=268: sxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=268: sxxxxx#13 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=269: oxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=269: oxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=269: oxxxxx#13 nsp=1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00, // itest=269: oxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=269: oxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=269: oxxxxx#13 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=270: oxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=270: oxxxxx#13 nsp=1 mass=0 - -0.000000000000000e+00, 0.000000000000000e+00, // itest=270: oxxxxx#13 nsp=1 mass=0 - -3.162277660168379e+01, -0.000000000000000e+00, // itest=270: oxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=270: oxxxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=270: oxxxxx#13 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, -5.000000000000000e+02, // itest=271: omzxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=271: omzxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=271: omzxxx#13 nsp=1 mass=0 - -3.162277660168379e+01, 0.000000000000000e+00, // itest=271: omzxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=271: omzxxx#13 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=271: omzxxx#13 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=272: ixxxxx#14 nsp=1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=272: ixxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=272: ixxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=272: ixxxxx#14 nsp=1 mass=0 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=272: ixxxxx#14 nsp=1 mass=0 - 1.341640786499874e+01, 1.788854381999832e+01 } ); // itest=272: ixxxxx#14 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=273: ixxxxx#14 nsp=1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=273: ixxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=273: ixxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=273: ixxxxx#14 nsp=1 mass=0 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=273: ixxxxx#14 nsp=1 mass=0 - 1.341640786499874e+01, 1.788854381999832e+01 } ); // itest=273: ixxxxx#14 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -0.000000000000000e+00, // itest=274: ixzxxx#14 nsp=1 mass=0 - -3.000000000000000e+02, -4.000000000000000e+02, // itest=274: ixzxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=274: ixzxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=274: ixzxxx#14 nsp=1 mass=0 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=274: ixzxxx#14 nsp=1 mass=0 - 1.341640786499874e+01, 1.788854381999832e+01 } ); // itest=274: ixzxxx#14 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=275: vxxxxx#14 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=275: vxxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=275: vxxxxx#14 nsp=1 mass=0 - -0.000000000000000e+00, -5.656854249492381e-01, // itest=275: vxxxxx#14 nsp=1 mass=0 - -0.000000000000000e+00, 4.242640687119285e-01, // itest=275: vxxxxx#14 nsp=1 mass=0 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=275: vxxxxx#14 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=276: vxxxxx#14 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=276: vxxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=276: vxxxxx#14 nsp=1 mass=0 - -0.000000000000000e+00, -5.656854249492381e-01, // itest=276: vxxxxx#14 nsp=1 mass=0 - -0.000000000000000e+00, 4.242640687119285e-01, // itest=276: vxxxxx#14 nsp=1 mass=0 - 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=276: vxxxxx#14 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=277: sxxxxx#14 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=277: sxxxxx#14 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=277: sxxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=277: sxxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=277: sxxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=277: sxxxxx#14 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=278: sxxxxx#14 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=278: sxxxxx#14 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=278: sxxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=278: sxxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=278: sxxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=278: sxxxxx#14 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=279: oxxxxx#14 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=279: oxxxxx#14 nsp=1 mass=0 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=279: oxxxxx#14 nsp=1 mass=0 - 1.341640786499874e+01, -1.788854381999832e+01, // itest=279: oxxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=279: oxxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=279: oxxxxx#14 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=280: oxxxxx#14 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=280: oxxxxx#14 nsp=1 mass=0 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=280: oxxxxx#14 nsp=1 mass=0 - 1.341640786499874e+01, -1.788854381999832e+01, // itest=280: oxxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=280: oxxxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=280: oxxxxx#14 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 0.000000000000000e+00, // itest=281: oxzxxx#14 nsp=1 mass=0 - 3.000000000000000e+02, 4.000000000000000e+02, // itest=281: oxzxxx#14 nsp=1 mass=0 - 2.236067977499790e+01, 0.000000000000000e+00, // itest=281: oxzxxx#14 nsp=1 mass=0 - 1.341640786499874e+01, -1.788854381999832e+01, // itest=281: oxzxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=281: oxzxxx#14 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=281: oxzxxx#14 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=282: ixxxxx#15 nsp=1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=282: ixxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=282: ixxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=282: ixxxxx#15 nsp=1 mass=0 - 3.000000000000000e+01, 0.000000000000000e+00, // itest=282: ixxxxx#15 nsp=1 mass=0 - 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=282: ixxxxx#15 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=283: ixxxxx#15 nsp=1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=283: ixxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=283: ixxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=283: ixxxxx#15 nsp=1 mass=0 - 3.000000000000000e+01, 0.000000000000000e+00, // itest=283: ixxxxx#15 nsp=1 mass=0 - 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=283: ixxxxx#15 nsp=1 mass=0 - expwfs.push_back( { // --------- - -5.000000000000000e+02, -4.000000000000000e+02, // itest=284: ixzxxx#15 nsp=1 mass=0 - -1.800000000000000e+02, -2.400000000000000e+02, // itest=284: ixzxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=284: ixzxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=284: ixzxxx#15 nsp=1 mass=0 - 3.000000000000000e+01, 0.000000000000000e+00, // itest=284: ixzxxx#15 nsp=1 mass=0 - 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=284: ixzxxx#15 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=285: vxxxxx#15 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=285: vxxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=285: vxxxxx#15 nsp=1 mass=0 - -3.394112549695428e-01, -5.656854249492381e-01, // itest=285: vxxxxx#15 nsp=1 mass=0 - -4.525483399593904e-01, 4.242640687119285e-01, // itest=285: vxxxxx#15 nsp=1 mass=0 - 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=285: vxxxxx#15 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=286: vxxxxx#15 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=286: vxxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=286: vxxxxx#15 nsp=1 mass=0 - -3.394112549695428e-01, -5.656854249492381e-01, // itest=286: vxxxxx#15 nsp=1 mass=0 - -4.525483399593904e-01, 4.242640687119285e-01, // itest=286: vxxxxx#15 nsp=1 mass=0 - 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=286: vxxxxx#15 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=287: sxxxxx#15 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=287: sxxxxx#15 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=287: sxxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=287: sxxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=287: sxxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=287: sxxxxx#15 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=288: sxxxxx#15 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=288: sxxxxx#15 nsp=1 mass=0 - 1.000000000000000e+00, 0.000000000000000e+00, // itest=288: sxxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=288: sxxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=288: sxxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=288: sxxxxx#15 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=289: oxxxxx#15 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=289: oxxxxx#15 nsp=1 mass=0 - 3.000000000000000e+01, 0.000000000000000e+00, // itest=289: oxxxxx#15 nsp=1 mass=0 - 6.000000000000000e+00, -8.000000000000000e+00, // itest=289: oxxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=289: oxxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=289: oxxxxx#15 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=290: oxxxxx#15 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=290: oxxxxx#15 nsp=1 mass=0 - 3.000000000000000e+01, 0.000000000000000e+00, // itest=290: oxxxxx#15 nsp=1 mass=0 - 6.000000000000000e+00, -8.000000000000000e+00, // itest=290: oxxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=290: oxxxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=290: oxxxxx#15 nsp=1 mass=0 - expwfs.push_back( { // --------- - 5.000000000000000e+02, 4.000000000000000e+02, // itest=291: oxzxxx#15 nsp=1 mass=0 - 1.800000000000000e+02, 2.400000000000000e+02, // itest=291: oxzxxx#15 nsp=1 mass=0 - 3.000000000000000e+01, 0.000000000000000e+00, // itest=291: oxzxxx#15 nsp=1 mass=0 - 6.000000000000000e+00, -8.000000000000000e+00, // itest=291: oxzxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00, // itest=291: oxzxxx#15 nsp=1 mass=0 - 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=291: oxzxxx#15 nsp=1 mass=0 + 5.000000000000000e+02, 5.000000000000000e+02, // itest=50: ixxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=50: ixxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=50: ixxxxx#5 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=50: ixxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=50: ixxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=50: ixxxxx#5 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=51: ixxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=51: ixxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=51: ixxxxx#5 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=51: ixxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=51: ixxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=51: ixxxxx#5 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=52: ipzxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=52: ipzxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=52: ipzxxx#5 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=52: ipzxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=52: ipzxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=52: ipzxxx#5 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=53: vxxxxx#5 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=53: vxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=53: vxxxxx#5 nsp=-1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=53: vxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=53: vxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=53: vxxxxx#5 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=54: vxxxxx#5 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=54: vxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=54: vxxxxx#5 nsp=-1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=54: vxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=54: vxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=54: vxxxxx#5 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=55: sxxxxx#5 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=55: sxxxxx#5 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=55: sxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=55: sxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=55: sxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=55: sxxxxx#5 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=56: sxxxxx#5 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=56: sxxxxx#5 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=56: sxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=56: sxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=56: sxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=56: sxxxxx#5 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=57: oxxxxx#5 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=57: oxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=57: oxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=57: oxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=57: oxxxxx#5 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=57: oxxxxx#5 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=58: oxxxxx#5 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=58: oxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=58: oxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=58: oxxxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=58: oxxxxx#5 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=58: oxxxxx#5 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=59: opzxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=59: opzxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=59: opzxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=59: opzxxx#5 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=59: opzxxx#5 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=59: opzxxx#5 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=60: ixxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=60: ixxxxx#6 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=60: ixxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=60: ixxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=60: ixxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=60: ixxxxx#6 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=61: ixxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=61: ixxxxx#6 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=61: ixxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=61: ixxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=61: ixxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=61: ixxxxx#6 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=62: imzxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=62: imzxxx#6 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=62: imzxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=62: imzxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=62: imzxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=62: imzxxx#6 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=63: vxxxxx#6 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=63: vxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=63: vxxxxx#6 nsp=-1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=63: vxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=63: vxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=63: vxxxxx#6 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=64: vxxxxx#6 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=64: vxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=64: vxxxxx#6 nsp=-1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=64: vxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=64: vxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=64: vxxxxx#6 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=65: sxxxxx#6 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=65: sxxxxx#6 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=65: sxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=65: sxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=65: sxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=65: sxxxxx#6 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=66: sxxxxx#6 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=66: sxxxxx#6 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=66: sxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=66: sxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=66: sxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=66: sxxxxx#6 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=67: oxxxxx#6 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=67: oxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=67: oxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=67: oxxxxx#6 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=67: oxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=67: oxxxxx#6 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=68: oxxxxx#6 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=68: oxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=68: oxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=68: oxxxxx#6 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=68: oxxxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=68: oxxxxx#6 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=69: omzxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=69: omzxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=69: omzxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=69: omzxxx#6 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=69: omzxxx#6 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=69: omzxxx#6 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=70: ixxxxx#7 nsp=-1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=70: ixxxxx#7 nsp=-1 mass=0 + 1.341640786499874e+01, -1.788854381999831e+01, // itest=70: ixxxxx#7 nsp=-1 mass=0 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=70: ixxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=70: ixxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=70: ixxxxx#7 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=71: ixxxxx#7 nsp=-1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=71: ixxxxx#7 nsp=-1 mass=0 + 1.341640786499874e+01, -1.788854381999831e+01, // itest=71: ixxxxx#7 nsp=-1 mass=0 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=71: ixxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=71: ixxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=71: ixxxxx#7 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=72: ixzxxx#7 nsp=-1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=72: ixzxxx#7 nsp=-1 mass=0 + 1.341640786499874e+01, -1.788854381999832e+01, // itest=72: ixzxxx#7 nsp=-1 mass=0 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=72: ixzxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=72: ixzxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=72: ixzxxx#7 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=73: vxxxxx#7 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=73: vxxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=73: vxxxxx#7 nsp=-1 mass=0 + -0.000000000000000e+00, 5.656854249492381e-01, // itest=73: vxxxxx#7 nsp=-1 mass=0 + -0.000000000000000e+00, -4.242640687119285e-01, // itest=73: vxxxxx#7 nsp=-1 mass=0 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=73: vxxxxx#7 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=74: vxxxxx#7 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=74: vxxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=74: vxxxxx#7 nsp=-1 mass=0 + -0.000000000000000e+00, 5.656854249492381e-01, // itest=74: vxxxxx#7 nsp=-1 mass=0 + -0.000000000000000e+00, -4.242640687119285e-01, // itest=74: vxxxxx#7 nsp=-1 mass=0 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=74: vxxxxx#7 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=75: sxxxxx#7 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=75: sxxxxx#7 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=75: sxxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=75: sxxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=75: sxxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=75: sxxxxx#7 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=76: sxxxxx#7 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=76: sxxxxx#7 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=76: sxxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=76: sxxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=76: sxxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=76: sxxxxx#7 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=77: oxxxxx#7 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=77: oxxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=77: oxxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=77: oxxxxx#7 nsp=-1 mass=0 + 1.341640786499874e+01, 1.788854381999831e+01, // itest=77: oxxxxx#7 nsp=-1 mass=0 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=77: oxxxxx#7 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=78: oxxxxx#7 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=78: oxxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=78: oxxxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=78: oxxxxx#7 nsp=-1 mass=0 + 1.341640786499874e+01, 1.788854381999831e+01, // itest=78: oxxxxx#7 nsp=-1 mass=0 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=78: oxxxxx#7 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=79: oxzxxx#7 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=79: oxzxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=79: oxzxxx#7 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=79: oxzxxx#7 nsp=-1 mass=0 + 1.341640786499874e+01, 1.788854381999832e+01, // itest=79: oxzxxx#7 nsp=-1 mass=0 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=79: oxzxxx#7 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=80: ixxxxx#8 nsp=-1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=80: ixxxxx#8 nsp=-1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=80: ixxxxx#8 nsp=-1 mass=0 + -3.000000000000000e+01, 0.000000000000000e+00, // itest=80: ixxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=80: ixxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=80: ixxxxx#8 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=81: ixxxxx#8 nsp=-1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=81: ixxxxx#8 nsp=-1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=81: ixxxxx#8 nsp=-1 mass=0 + -3.000000000000000e+01, 0.000000000000000e+00, // itest=81: ixxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=81: ixxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=81: ixxxxx#8 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=82: ixzxxx#8 nsp=-1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=82: ixzxxx#8 nsp=-1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=82: ixzxxx#8 nsp=-1 mass=0 + -3.000000000000000e+01, 0.000000000000000e+00, // itest=82: ixzxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=82: ixzxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=82: ixzxxx#8 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=83: vxxxxx#8 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=83: vxxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=83: vxxxxx#8 nsp=-1 mass=0 + -3.394112549695428e-01, 5.656854249492381e-01, // itest=83: vxxxxx#8 nsp=-1 mass=0 + -4.525483399593904e-01, -4.242640687119285e-01, // itest=83: vxxxxx#8 nsp=-1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=83: vxxxxx#8 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=84: vxxxxx#8 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=84: vxxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=84: vxxxxx#8 nsp=-1 mass=0 + -3.394112549695428e-01, 5.656854249492381e-01, // itest=84: vxxxxx#8 nsp=-1 mass=0 + -4.525483399593904e-01, -4.242640687119285e-01, // itest=84: vxxxxx#8 nsp=-1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=84: vxxxxx#8 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=85: sxxxxx#8 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=85: sxxxxx#8 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=85: sxxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=85: sxxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=85: sxxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=85: sxxxxx#8 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=86: sxxxxx#8 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=86: sxxxxx#8 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=86: sxxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=86: sxxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=86: sxxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=86: sxxxxx#8 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=87: oxxxxx#8 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=87: oxxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=87: oxxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=87: oxxxxx#8 nsp=-1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00, // itest=87: oxxxxx#8 nsp=-1 mass=0 + -3.000000000000000e+01, 0.000000000000000e+00 } ); // itest=87: oxxxxx#8 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=88: oxxxxx#8 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=88: oxxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=88: oxxxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=88: oxxxxx#8 nsp=-1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00, // itest=88: oxxxxx#8 nsp=-1 mass=0 + -3.000000000000000e+01, 0.000000000000000e+00 } ); // itest=88: oxxxxx#8 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=89: oxzxxx#8 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=89: oxzxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=89: oxzxxx#8 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=89: oxzxxx#8 nsp=-1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00, // itest=89: oxzxxx#8 nsp=-1 mass=0 + -3.000000000000000e+01, 0.000000000000000e+00 } ); // itest=89: oxzxxx#8 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=90: ixxxxx#9 nsp=-1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=90: ixxxxx#9 nsp=-1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=90: ixxxxx#9 nsp=-1 mass=0 + -1.000000000000000e+01, 0.000000000000000e+00, // itest=90: ixxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=90: ixxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=90: ixxxxx#9 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=91: ixxxxx#9 nsp=-1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=91: ixxxxx#9 nsp=-1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=91: ixxxxx#9 nsp=-1 mass=0 + -1.000000000000000e+01, 0.000000000000000e+00, // itest=91: ixxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=91: ixxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=91: ixxxxx#9 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=92: ixzxxx#9 nsp=-1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=92: ixzxxx#9 nsp=-1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=92: ixzxxx#9 nsp=-1 mass=0 + -1.000000000000000e+01, 0.000000000000000e+00, // itest=92: ixzxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=92: ixzxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=92: ixzxxx#9 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=93: vxxxxx#9 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=93: vxxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=93: vxxxxx#9 nsp=-1 mass=0 + 3.394112549695428e-01, 5.656854249492381e-01, // itest=93: vxxxxx#9 nsp=-1 mass=0 + 4.525483399593904e-01, -4.242640687119285e-01, // itest=93: vxxxxx#9 nsp=-1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=93: vxxxxx#9 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=94: vxxxxx#9 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=94: vxxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=94: vxxxxx#9 nsp=-1 mass=0 + 3.394112549695428e-01, 5.656854249492381e-01, // itest=94: vxxxxx#9 nsp=-1 mass=0 + 4.525483399593904e-01, -4.242640687119285e-01, // itest=94: vxxxxx#9 nsp=-1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=94: vxxxxx#9 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=95: sxxxxx#9 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=95: sxxxxx#9 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=95: sxxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=95: sxxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=95: sxxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=95: sxxxxx#9 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=96: sxxxxx#9 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=96: sxxxxx#9 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=96: sxxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=96: sxxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=96: sxxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=96: sxxxxx#9 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=97: oxxxxx#9 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=97: oxxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=97: oxxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=97: oxxxxx#9 nsp=-1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01, // itest=97: oxxxxx#9 nsp=-1 mass=0 + -1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=97: oxxxxx#9 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=98: oxxxxx#9 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=98: oxxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=98: oxxxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=98: oxxxxx#9 nsp=-1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01, // itest=98: oxxxxx#9 nsp=-1 mass=0 + -1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=98: oxxxxx#9 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=99: oxzxxx#9 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=99: oxzxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=99: oxzxxx#9 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=99: oxzxxx#9 nsp=-1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01, // itest=99: oxzxxx#9 nsp=-1 mass=0 + -1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=99: oxzxxx#9 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=100: ixxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=100: ixxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=100: ixxxxx#10 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=100: ixxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=100: ixxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=100: ixxxxx#10 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=101: ixxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=101: ixxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=101: ixxxxx#10 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=101: ixxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=101: ixxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=101: ixxxxx#10 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=102: ipzxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=102: ipzxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=102: ipzxxx#10 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=102: ipzxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=102: ipzxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=102: ipzxxx#10 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=103: vxxxxx#10 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=103: vxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=103: vxxxxx#10 nsp=-1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=103: vxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=103: vxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=103: vxxxxx#10 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=104: vxxxxx#10 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=104: vxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=104: vxxxxx#10 nsp=-1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=104: vxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=104: vxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=104: vxxxxx#10 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=105: sxxxxx#10 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=105: sxxxxx#10 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=105: sxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=105: sxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=105: sxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=105: sxxxxx#10 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=106: sxxxxx#10 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=106: sxxxxx#10 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=106: sxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=106: sxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=106: sxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=106: sxxxxx#10 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=107: oxxxxx#10 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=107: oxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=107: oxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=107: oxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=107: oxxxxx#10 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=107: oxxxxx#10 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=108: oxxxxx#10 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=108: oxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=108: oxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=108: oxxxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=108: oxxxxx#10 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=108: oxxxxx#10 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=109: opzxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=109: opzxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=109: opzxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=109: opzxxx#10 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=109: opzxxx#10 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=109: opzxxx#10 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=110: ixxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=110: ixxxxx#11 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=110: ixxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=110: ixxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=110: ixxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=110: ixxxxx#11 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=111: ixxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=111: ixxxxx#11 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=111: ixxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=111: ixxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=111: ixxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=111: ixxxxx#11 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=112: imzxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=112: imzxxx#11 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=112: imzxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=112: imzxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=112: imzxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=112: imzxxx#11 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=113: vxxxxx#11 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=113: vxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=113: vxxxxx#11 nsp=-1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=113: vxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=113: vxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=113: vxxxxx#11 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=114: vxxxxx#11 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=114: vxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=114: vxxxxx#11 nsp=-1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=114: vxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=114: vxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=114: vxxxxx#11 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=115: sxxxxx#11 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=115: sxxxxx#11 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=115: sxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=115: sxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=115: sxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=115: sxxxxx#11 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=116: sxxxxx#11 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=116: sxxxxx#11 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=116: sxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=116: sxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=116: sxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=116: sxxxxx#11 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=117: oxxxxx#11 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=117: oxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=117: oxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=117: oxxxxx#11 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=117: oxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=117: oxxxxx#11 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=118: oxxxxx#11 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=118: oxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=118: oxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=118: oxxxxx#11 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=118: oxxxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=118: oxxxxx#11 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=119: omzxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=119: omzxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=119: omzxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=119: omzxxx#11 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=119: omzxxx#11 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=119: omzxxx#11 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=120: ixxxxx#12 nsp=-1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=120: ixxxxx#12 nsp=-1 mass=0 + 1.341640786499874e+01, -1.788854381999831e+01, // itest=120: ixxxxx#12 nsp=-1 mass=0 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=120: ixxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=120: ixxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=120: ixxxxx#12 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=121: ixxxxx#12 nsp=-1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=121: ixxxxx#12 nsp=-1 mass=0 + 1.341640786499874e+01, -1.788854381999831e+01, // itest=121: ixxxxx#12 nsp=-1 mass=0 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=121: ixxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=121: ixxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=121: ixxxxx#12 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=122: ixzxxx#12 nsp=-1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=122: ixzxxx#12 nsp=-1 mass=0 + 1.341640786499874e+01, -1.788854381999832e+01, // itest=122: ixzxxx#12 nsp=-1 mass=0 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=122: ixzxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=122: ixzxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=122: ixzxxx#12 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=123: vxxxxx#12 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=123: vxxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=123: vxxxxx#12 nsp=-1 mass=0 + -0.000000000000000e+00, 5.656854249492381e-01, // itest=123: vxxxxx#12 nsp=-1 mass=0 + -0.000000000000000e+00, -4.242640687119285e-01, // itest=123: vxxxxx#12 nsp=-1 mass=0 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=123: vxxxxx#12 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=124: vxxxxx#12 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=124: vxxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=124: vxxxxx#12 nsp=-1 mass=0 + -0.000000000000000e+00, 5.656854249492381e-01, // itest=124: vxxxxx#12 nsp=-1 mass=0 + -0.000000000000000e+00, -4.242640687119285e-01, // itest=124: vxxxxx#12 nsp=-1 mass=0 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=124: vxxxxx#12 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=125: sxxxxx#12 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=125: sxxxxx#12 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=125: sxxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=125: sxxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=125: sxxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=125: sxxxxx#12 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=126: sxxxxx#12 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=126: sxxxxx#12 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=126: sxxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=126: sxxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=126: sxxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=126: sxxxxx#12 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=127: oxxxxx#12 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=127: oxxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=127: oxxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=127: oxxxxx#12 nsp=-1 mass=0 + 1.341640786499874e+01, 1.788854381999831e+01, // itest=127: oxxxxx#12 nsp=-1 mass=0 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=127: oxxxxx#12 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=128: oxxxxx#12 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=128: oxxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=128: oxxxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=128: oxxxxx#12 nsp=-1 mass=0 + 1.341640786499874e+01, 1.788854381999831e+01, // itest=128: oxxxxx#12 nsp=-1 mass=0 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=128: oxxxxx#12 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=129: oxzxxx#12 nsp=-1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=129: oxzxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=129: oxzxxx#12 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=129: oxzxxx#12 nsp=-1 mass=0 + 1.341640786499874e+01, 1.788854381999832e+01, // itest=129: oxzxxx#12 nsp=-1 mass=0 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=129: oxzxxx#12 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=130: ixxxxx#13 nsp=-1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=130: ixxxxx#13 nsp=-1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=130: ixxxxx#13 nsp=-1 mass=0 + -3.000000000000000e+01, 0.000000000000000e+00, // itest=130: ixxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=130: ixxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=130: ixxxxx#13 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=131: ixxxxx#13 nsp=-1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=131: ixxxxx#13 nsp=-1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=131: ixxxxx#13 nsp=-1 mass=0 + -3.000000000000000e+01, 0.000000000000000e+00, // itest=131: ixxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=131: ixxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=131: ixxxxx#13 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=132: ixzxxx#13 nsp=-1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=132: ixzxxx#13 nsp=-1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=132: ixzxxx#13 nsp=-1 mass=0 + -3.000000000000000e+01, 0.000000000000000e+00, // itest=132: ixzxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=132: ixzxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=132: ixzxxx#13 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=133: vxxxxx#13 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=133: vxxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=133: vxxxxx#13 nsp=-1 mass=0 + -3.394112549695428e-01, 5.656854249492381e-01, // itest=133: vxxxxx#13 nsp=-1 mass=0 + -4.525483399593904e-01, -4.242640687119285e-01, // itest=133: vxxxxx#13 nsp=-1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=133: vxxxxx#13 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=134: vxxxxx#13 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=134: vxxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=134: vxxxxx#13 nsp=-1 mass=0 + -3.394112549695428e-01, 5.656854249492381e-01, // itest=134: vxxxxx#13 nsp=-1 mass=0 + -4.525483399593904e-01, -4.242640687119285e-01, // itest=134: vxxxxx#13 nsp=-1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=134: vxxxxx#13 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=135: sxxxxx#13 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=135: sxxxxx#13 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=135: sxxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=135: sxxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=135: sxxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=135: sxxxxx#13 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=136: sxxxxx#13 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=136: sxxxxx#13 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=136: sxxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=136: sxxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=136: sxxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=136: sxxxxx#13 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=137: oxxxxx#13 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=137: oxxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=137: oxxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=137: oxxxxx#13 nsp=-1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00, // itest=137: oxxxxx#13 nsp=-1 mass=0 + -3.000000000000000e+01, 0.000000000000000e+00 } ); // itest=137: oxxxxx#13 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=138: oxxxxx#13 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=138: oxxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=138: oxxxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=138: oxxxxx#13 nsp=-1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00, // itest=138: oxxxxx#13 nsp=-1 mass=0 + -3.000000000000000e+01, 0.000000000000000e+00 } ); // itest=138: oxxxxx#13 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=139: oxzxxx#13 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=139: oxzxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=139: oxzxxx#13 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=139: oxzxxx#13 nsp=-1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00, // itest=139: oxzxxx#13 nsp=-1 mass=0 + -3.000000000000000e+01, 0.000000000000000e+00 } ); // itest=139: oxzxxx#13 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=140: ixxxxx#14 nsp=-1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=140: ixxxxx#14 nsp=-1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=140: ixxxxx#14 nsp=-1 mass=0 + -1.000000000000000e+01, 0.000000000000000e+00, // itest=140: ixxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=140: ixxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=140: ixxxxx#14 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=141: ixxxxx#14 nsp=-1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=141: ixxxxx#14 nsp=-1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=141: ixxxxx#14 nsp=-1 mass=0 + -1.000000000000000e+01, 0.000000000000000e+00, // itest=141: ixxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=141: ixxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=141: ixxxxx#14 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=142: ixzxxx#14 nsp=-1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=142: ixzxxx#14 nsp=-1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=142: ixzxxx#14 nsp=-1 mass=0 + -1.000000000000000e+01, 0.000000000000000e+00, // itest=142: ixzxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=142: ixzxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=142: ixzxxx#14 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=143: vxxxxx#14 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=143: vxxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=143: vxxxxx#14 nsp=-1 mass=0 + 3.394112549695428e-01, 5.656854249492381e-01, // itest=143: vxxxxx#14 nsp=-1 mass=0 + 4.525483399593904e-01, -4.242640687119285e-01, // itest=143: vxxxxx#14 nsp=-1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=143: vxxxxx#14 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=144: vxxxxx#14 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=144: vxxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=144: vxxxxx#14 nsp=-1 mass=0 + 3.394112549695428e-01, 5.656854249492381e-01, // itest=144: vxxxxx#14 nsp=-1 mass=0 + 4.525483399593904e-01, -4.242640687119285e-01, // itest=144: vxxxxx#14 nsp=-1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=144: vxxxxx#14 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=145: sxxxxx#14 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=145: sxxxxx#14 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=145: sxxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=145: sxxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=145: sxxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=145: sxxxxx#14 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=146: sxxxxx#14 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=146: sxxxxx#14 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=146: sxxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=146: sxxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=146: sxxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=146: sxxxxx#14 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=147: oxxxxx#14 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=147: oxxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=147: oxxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=147: oxxxxx#14 nsp=-1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01, // itest=147: oxxxxx#14 nsp=-1 mass=0 + -1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=147: oxxxxx#14 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=148: oxxxxx#14 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=148: oxxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=148: oxxxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=148: oxxxxx#14 nsp=-1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01, // itest=148: oxxxxx#14 nsp=-1 mass=0 + -1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=148: oxxxxx#14 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=149: oxzxxx#14 nsp=-1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=149: oxzxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=149: oxzxxx#14 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=149: oxzxxx#14 nsp=-1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01, // itest=149: oxzxxx#14 nsp=-1 mass=0 + -1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=149: oxzxxx#14 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=150: ixxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=150: ixxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=150: ixxxxx#15 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=150: ixxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=150: ixxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=150: ixxxxx#15 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=151: ixxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=151: ixxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=151: ixxxxx#15 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=151: ixxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=151: ixxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=151: ixxxxx#15 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=152: ipzxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=152: ipzxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=152: ipzxxx#15 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=152: ipzxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=152: ipzxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=152: ipzxxx#15 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=153: vxxxxx#15 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=153: vxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=153: vxxxxx#15 nsp=-1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=153: vxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=153: vxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=153: vxxxxx#15 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=154: vxxxxx#15 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=154: vxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=154: vxxxxx#15 nsp=-1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=154: vxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=154: vxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=154: vxxxxx#15 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=155: sxxxxx#15 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=155: sxxxxx#15 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=155: sxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=155: sxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=155: sxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=155: sxxxxx#15 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=156: sxxxxx#15 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=156: sxxxxx#15 nsp=-1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=156: sxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=156: sxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=156: sxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=156: sxxxxx#15 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=157: oxxxxx#15 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=157: oxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=157: oxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=157: oxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=157: oxxxxx#15 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=157: oxxxxx#15 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=158: oxxxxx#15 nsp=-1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=158: oxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=158: oxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=158: oxxxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=158: oxxxxx#15 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=158: oxxxxx#15 nsp=-1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=159: opzxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=159: opzxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=159: opzxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=159: opzxxx#15 nsp=-1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=159: opzxxx#15 nsp=-1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=159: opzxxx#15 nsp=-1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=160: ixxxxx#16 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=160: ixxxxx#16 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=160: ixxxxx#16 nsp=-1 mass=500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=160: ixxxxx#16 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=160: ixxxxx#16 nsp=-1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=160: ixxxxx#16 nsp=-1 mass=500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=161: ixxxxx#16 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=161: ixxxxx#16 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=161: ixxxxx#16 nsp=-1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=161: ixxxxx#16 nsp=-1 mass=-500 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=161: ixxxxx#16 nsp=-1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=161: ixxxxx#16 nsp=-1 mass=-500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=162: vxxxxx#16 nsp=-1 mass=500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=162: vxxxxx#16 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=162: vxxxxx#16 nsp=-1 mass=500 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=162: vxxxxx#16 nsp=-1 mass=500 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=162: vxxxxx#16 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=162: vxxxxx#16 nsp=-1 mass=500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=163: vxxxxx#16 nsp=-1 mass=-500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=163: vxxxxx#16 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=163: vxxxxx#16 nsp=-1 mass=-500 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=163: vxxxxx#16 nsp=-1 mass=-500 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=163: vxxxxx#16 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=163: vxxxxx#16 nsp=-1 mass=-500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=164: sxxxxx#16 nsp=-1 mass=500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=164: sxxxxx#16 nsp=-1 mass=500 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=164: sxxxxx#16 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=164: sxxxxx#16 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=164: sxxxxx#16 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=164: sxxxxx#16 nsp=-1 mass=500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=165: sxxxxx#16 nsp=-1 mass=-500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=165: sxxxxx#16 nsp=-1 mass=-500 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=165: sxxxxx#16 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=165: sxxxxx#16 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=165: sxxxxx#16 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=165: sxxxxx#16 nsp=-1 mass=-500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=166: oxxxxx#16 nsp=-1 mass=500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=166: oxxxxx#16 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=166: oxxxxx#16 nsp=-1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=166: oxxxxx#16 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=166: oxxxxx#16 nsp=-1 mass=500 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=166: oxxxxx#16 nsp=-1 mass=500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=167: oxxxxx#16 nsp=-1 mass=-500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=167: oxxxxx#16 nsp=-1 mass=-500 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=167: oxxxxx#16 nsp=-1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=167: oxxxxx#16 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=167: oxxxxx#16 nsp=-1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=167: oxxxxx#16 nsp=-1 mass=-500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=168: ixxxxx#17 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=168: ixxxxx#17 nsp=-1 mass=400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=168: ixxxxx#17 nsp=-1 mass=400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=168: ixxxxx#17 nsp=-1 mass=400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=168: ixxxxx#17 nsp=-1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00 } ); // itest=168: ixxxxx#17 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=169: ixxxxx#17 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=169: ixxxxx#17 nsp=-1 mass=-400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=169: ixxxxx#17 nsp=-1 mass=-400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=169: ixxxxx#17 nsp=-1 mass=-400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=169: ixxxxx#17 nsp=-1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00 } ); // itest=169: ixxxxx#17 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=170: vxxxxx#17 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=170: vxxxxx#17 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=170: vxxxxx#17 nsp=-1 mass=400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=170: vxxxxx#17 nsp=-1 mass=400 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=170: vxxxxx#17 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=170: vxxxxx#17 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=171: vxxxxx#17 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=171: vxxxxx#17 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=171: vxxxxx#17 nsp=-1 mass=-400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=171: vxxxxx#17 nsp=-1 mass=-400 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=171: vxxxxx#17 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=171: vxxxxx#17 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=172: sxxxxx#17 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=172: sxxxxx#17 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=172: sxxxxx#17 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=172: sxxxxx#17 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=172: sxxxxx#17 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=172: sxxxxx#17 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=173: sxxxxx#17 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=173: sxxxxx#17 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=173: sxxxxx#17 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=173: sxxxxx#17 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=173: sxxxxx#17 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=173: sxxxxx#17 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=174: oxxxxx#17 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=174: oxxxxx#17 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=174: oxxxxx#17 nsp=-1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=174: oxxxxx#17 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=174: oxxxxx#17 nsp=-1 mass=400 + -2.828427124746190e+01, -0.000000000000000e+00 } ); // itest=174: oxxxxx#17 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=175: oxxxxx#17 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=175: oxxxxx#17 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=175: oxxxxx#17 nsp=-1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=175: oxxxxx#17 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=175: oxxxxx#17 nsp=-1 mass=-400 + -2.828427124746190e+01, -0.000000000000000e+00 } ); // itest=175: oxxxxx#17 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=176: ixxxxx#18 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=176: ixxxxx#18 nsp=-1 mass=400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=176: ixxxxx#18 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=176: ixxxxx#18 nsp=-1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=176: ixxxxx#18 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=176: ixxxxx#18 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=177: ixxxxx#18 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=177: ixxxxx#18 nsp=-1 mass=-400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=177: ixxxxx#18 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=177: ixxxxx#18 nsp=-1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=177: ixxxxx#18 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=177: ixxxxx#18 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=178: vxxxxx#18 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=178: vxxxxx#18 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=178: vxxxxx#18 nsp=-1 mass=400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=178: vxxxxx#18 nsp=-1 mass=400 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=178: vxxxxx#18 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=178: vxxxxx#18 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=179: vxxxxx#18 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=179: vxxxxx#18 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=179: vxxxxx#18 nsp=-1 mass=-400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=179: vxxxxx#18 nsp=-1 mass=-400 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=179: vxxxxx#18 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=179: vxxxxx#18 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=180: sxxxxx#18 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=180: sxxxxx#18 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=180: sxxxxx#18 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=180: sxxxxx#18 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=180: sxxxxx#18 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=180: sxxxxx#18 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=181: sxxxxx#18 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=181: sxxxxx#18 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=181: sxxxxx#18 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=181: sxxxxx#18 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=181: sxxxxx#18 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=181: sxxxxx#18 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=182: oxxxxx#18 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=182: oxxxxx#18 nsp=-1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=182: oxxxxx#18 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=182: oxxxxx#18 nsp=-1 mass=400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=182: oxxxxx#18 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=182: oxxxxx#18 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=183: oxxxxx#18 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=183: oxxxxx#18 nsp=-1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=183: oxxxxx#18 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=183: oxxxxx#18 nsp=-1 mass=-400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=183: oxxxxx#18 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=183: oxxxxx#18 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=184: ixxxxx#19 nsp=-1 mass=400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=184: ixxxxx#19 nsp=-1 mass=400 + 1.200000000000000e+01, -1.600000000000000e+01, // itest=184: ixxxxx#19 nsp=-1 mass=400 + -2.000000000000000e+01, -0.000000000000000e+00, // itest=184: ixxxxx#19 nsp=-1 mass=400 + -5.999999999999999e+00, 7.999999999999999e+00, // itest=184: ixxxxx#19 nsp=-1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=184: ixxxxx#19 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=185: ixxxxx#19 nsp=-1 mass=-400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=185: ixxxxx#19 nsp=-1 mass=-400 + 1.200000000000000e+01, -1.600000000000000e+01, // itest=185: ixxxxx#19 nsp=-1 mass=-400 + -2.000000000000000e+01, -0.000000000000000e+00, // itest=185: ixxxxx#19 nsp=-1 mass=-400 + 5.999999999999999e+00, -7.999999999999999e+00, // itest=185: ixxxxx#19 nsp=-1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00 } ); // itest=185: ixxxxx#19 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=186: vxxxxx#19 nsp=-1 mass=400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=186: vxxxxx#19 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=186: vxxxxx#19 nsp=-1 mass=400 + 0.000000000000000e+00, 5.656854249492381e-01, // itest=186: vxxxxx#19 nsp=-1 mass=400 + 0.000000000000000e+00, -4.242640687119285e-01, // itest=186: vxxxxx#19 nsp=-1 mass=400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=186: vxxxxx#19 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=187: vxxxxx#19 nsp=-1 mass=-400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=187: vxxxxx#19 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=187: vxxxxx#19 nsp=-1 mass=-400 + -0.000000000000000e+00, 5.656854249492381e-01, // itest=187: vxxxxx#19 nsp=-1 mass=-400 + -0.000000000000000e+00, -4.242640687119285e-01, // itest=187: vxxxxx#19 nsp=-1 mass=-400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=187: vxxxxx#19 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=188: sxxxxx#19 nsp=-1 mass=400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=188: sxxxxx#19 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=188: sxxxxx#19 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=188: sxxxxx#19 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=188: sxxxxx#19 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=188: sxxxxx#19 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=189: sxxxxx#19 nsp=-1 mass=-400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=189: sxxxxx#19 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=189: sxxxxx#19 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=189: sxxxxx#19 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=189: sxxxxx#19 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=189: sxxxxx#19 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=190: oxxxxx#19 nsp=-1 mass=400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=190: oxxxxx#19 nsp=-1 mass=400 + -5.999999999999999e+00, -7.999999999999999e+00, // itest=190: oxxxxx#19 nsp=-1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=190: oxxxxx#19 nsp=-1 mass=400 + 1.200000000000000e+01, 1.600000000000000e+01, // itest=190: oxxxxx#19 nsp=-1 mass=400 + -2.000000000000000e+01, -0.000000000000000e+00 } ); // itest=190: oxxxxx#19 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=191: oxxxxx#19 nsp=-1 mass=-400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=191: oxxxxx#19 nsp=-1 mass=-400 + 5.999999999999999e+00, 7.999999999999999e+00, // itest=191: oxxxxx#19 nsp=-1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00, // itest=191: oxxxxx#19 nsp=-1 mass=-400 + 1.200000000000000e+01, 1.600000000000000e+01, // itest=191: oxxxxx#19 nsp=-1 mass=-400 + -2.000000000000000e+01, -0.000000000000000e+00 } ); // itest=191: oxxxxx#19 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=192: ixxxxx#20 nsp=-1 mass=400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=192: ixxxxx#20 nsp=-1 mass=400 + -1.600000000000000e+01, 1.200000000000000e+01, // itest=192: ixxxxx#20 nsp=-1 mass=400 + -2.000000000000000e+01, -0.000000000000000e+00, // itest=192: ixxxxx#20 nsp=-1 mass=400 + 7.999999999999999e+00, -5.999999999999999e+00, // itest=192: ixxxxx#20 nsp=-1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=192: ixxxxx#20 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=193: ixxxxx#20 nsp=-1 mass=-400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=193: ixxxxx#20 nsp=-1 mass=-400 + -1.600000000000000e+01, 1.200000000000000e+01, // itest=193: ixxxxx#20 nsp=-1 mass=-400 + -2.000000000000000e+01, -0.000000000000000e+00, // itest=193: ixxxxx#20 nsp=-1 mass=-400 + -7.999999999999999e+00, 5.999999999999999e+00, // itest=193: ixxxxx#20 nsp=-1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00 } ); // itest=193: ixxxxx#20 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=194: vxxxxx#20 nsp=-1 mass=400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=194: vxxxxx#20 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=194: vxxxxx#20 nsp=-1 mass=400 + 0.000000000000000e+00, -4.242640687119285e-01, // itest=194: vxxxxx#20 nsp=-1 mass=400 + 0.000000000000000e+00, 5.656854249492381e-01, // itest=194: vxxxxx#20 nsp=-1 mass=400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=194: vxxxxx#20 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=195: vxxxxx#20 nsp=-1 mass=-400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=195: vxxxxx#20 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=195: vxxxxx#20 nsp=-1 mass=-400 + 0.000000000000000e+00, -4.242640687119285e-01, // itest=195: vxxxxx#20 nsp=-1 mass=-400 + 0.000000000000000e+00, 5.656854249492381e-01, // itest=195: vxxxxx#20 nsp=-1 mass=-400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=195: vxxxxx#20 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=196: sxxxxx#20 nsp=-1 mass=400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=196: sxxxxx#20 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=196: sxxxxx#20 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=196: sxxxxx#20 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=196: sxxxxx#20 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=196: sxxxxx#20 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=197: sxxxxx#20 nsp=-1 mass=-400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=197: sxxxxx#20 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=197: sxxxxx#20 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=197: sxxxxx#20 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=197: sxxxxx#20 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=197: sxxxxx#20 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=198: oxxxxx#20 nsp=-1 mass=400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=198: oxxxxx#20 nsp=-1 mass=400 + 7.999999999999999e+00, 5.999999999999999e+00, // itest=198: oxxxxx#20 nsp=-1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=198: oxxxxx#20 nsp=-1 mass=400 + -1.600000000000000e+01, -1.200000000000000e+01, // itest=198: oxxxxx#20 nsp=-1 mass=400 + -2.000000000000000e+01, -0.000000000000000e+00 } ); // itest=198: oxxxxx#20 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=199: oxxxxx#20 nsp=-1 mass=-400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=199: oxxxxx#20 nsp=-1 mass=-400 + -7.999999999999999e+00, -5.999999999999999e+00, // itest=199: oxxxxx#20 nsp=-1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00, // itest=199: oxxxxx#20 nsp=-1 mass=-400 + -1.600000000000000e+01, -1.200000000000000e+01, // itest=199: oxxxxx#20 nsp=-1 mass=-400 + -2.000000000000000e+01, -0.000000000000000e+00 } ); // itest=199: oxxxxx#20 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=200: ixxxxx#21 nsp=-1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=200: ixxxxx#21 nsp=-1 mass=400 + 9.863939238321439e+00, -1.052153518754287e+01, // itest=200: ixxxxx#21 nsp=-1 mass=400 + -2.433105012119288e+01, -0.000000000000000e+00, // itest=200: ixxxxx#21 nsp=-1 mass=400 + -4.931969619160719e+00, 5.260767593771432e+00, // itest=200: ixxxxx#21 nsp=-1 mass=400 + 1.216552506059644e+01, 0.000000000000000e+00 } ); // itest=200: ixxxxx#21 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=201: ixxxxx#21 nsp=-1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=201: ixxxxx#21 nsp=-1 mass=-400 + 9.863939238321439e+00, -1.052153518754287e+01, // itest=201: ixxxxx#21 nsp=-1 mass=-400 + -2.433105012119288e+01, -0.000000000000000e+00, // itest=201: ixxxxx#21 nsp=-1 mass=-400 + 4.931969619160719e+00, -5.260767593771432e+00, // itest=201: ixxxxx#21 nsp=-1 mass=-400 + -1.216552506059644e+01, -0.000000000000000e+00 } ); // itest=201: ixxxxx#21 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=202: vxxxxx#21 nsp=-1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=202: vxxxxx#21 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=202: vxxxxx#21 nsp=-1 mass=400 + -2.321373168788980e-01, 5.158607041753289e-01, // itest=202: vxxxxx#21 nsp=-1 mass=400 + -2.476131380041579e-01, -4.836194101643708e-01, // itest=202: vxxxxx#21 nsp=-1 mass=400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=202: vxxxxx#21 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=203: vxxxxx#21 nsp=-1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=203: vxxxxx#21 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=203: vxxxxx#21 nsp=-1 mass=-400 + -2.321373168788980e-01, 5.158607041753289e-01, // itest=203: vxxxxx#21 nsp=-1 mass=-400 + -2.476131380041579e-01, -4.836194101643708e-01, // itest=203: vxxxxx#21 nsp=-1 mass=-400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=203: vxxxxx#21 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=204: sxxxxx#21 nsp=-1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=204: sxxxxx#21 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=204: sxxxxx#21 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=204: sxxxxx#21 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=204: sxxxxx#21 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=204: sxxxxx#21 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=205: sxxxxx#21 nsp=-1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=205: sxxxxx#21 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=205: sxxxxx#21 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=205: sxxxxx#21 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=205: sxxxxx#21 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=205: sxxxxx#21 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=206: oxxxxx#21 nsp=-1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=206: oxxxxx#21 nsp=-1 mass=400 + -4.931969619160719e+00, -5.260767593771432e+00, // itest=206: oxxxxx#21 nsp=-1 mass=400 + 1.216552506059644e+01, 0.000000000000000e+00, // itest=206: oxxxxx#21 nsp=-1 mass=400 + 9.863939238321439e+00, 1.052153518754287e+01, // itest=206: oxxxxx#21 nsp=-1 mass=400 + -2.433105012119288e+01, -0.000000000000000e+00 } ); // itest=206: oxxxxx#21 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=207: oxxxxx#21 nsp=-1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=207: oxxxxx#21 nsp=-1 mass=-400 + 4.931969619160719e+00, 5.260767593771432e+00, // itest=207: oxxxxx#21 nsp=-1 mass=-400 + -1.216552506059644e+01, -0.000000000000000e+00, // itest=207: oxxxxx#21 nsp=-1 mass=-400 + 9.863939238321439e+00, 1.052153518754287e+01, // itest=207: oxxxxx#21 nsp=-1 mass=-400 + -2.433105012119288e+01, -0.000000000000000e+00 } ); // itest=207: oxxxxx#21 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=208: ixxxxx#22 nsp=-1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=208: ixxxxx#22 nsp=-1 mass=400 + 1.664100588675688e+01, -1.775040627920733e+01, // itest=208: ixxxxx#22 nsp=-1 mass=400 + -1.442220510185596e+01, -0.000000000000000e+00, // itest=208: ixxxxx#22 nsp=-1 mass=400 + -8.320502943378436e+00, 8.875203139603666e+00, // itest=208: ixxxxx#22 nsp=-1 mass=400 + 7.211102550927978e+00, 0.000000000000000e+00 } ); // itest=208: ixxxxx#22 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=209: ixxxxx#22 nsp=-1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=209: ixxxxx#22 nsp=-1 mass=-400 + 1.664100588675688e+01, -1.775040627920733e+01, // itest=209: ixxxxx#22 nsp=-1 mass=-400 + -1.442220510185596e+01, -0.000000000000000e+00, // itest=209: ixxxxx#22 nsp=-1 mass=-400 + 8.320502943378436e+00, -8.875203139603666e+00, // itest=209: ixxxxx#22 nsp=-1 mass=-400 + -7.211102550927978e+00, -0.000000000000000e+00 } ); // itest=209: ixxxxx#22 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=210: vxxxxx#22 nsp=-1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=210: vxxxxx#22 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=210: vxxxxx#22 nsp=-1 mass=400 + 2.321373168788980e-01, 5.158607041753289e-01, // itest=210: vxxxxx#22 nsp=-1 mass=400 + 2.476131380041579e-01, -4.836194101643708e-01, // itest=210: vxxxxx#22 nsp=-1 mass=400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=210: vxxxxx#22 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=211: vxxxxx#22 nsp=-1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=211: vxxxxx#22 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=211: vxxxxx#22 nsp=-1 mass=-400 + 2.321373168788980e-01, 5.158607041753289e-01, // itest=211: vxxxxx#22 nsp=-1 mass=-400 + 2.476131380041579e-01, -4.836194101643708e-01, // itest=211: vxxxxx#22 nsp=-1 mass=-400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=211: vxxxxx#22 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=212: sxxxxx#22 nsp=-1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=212: sxxxxx#22 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=212: sxxxxx#22 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=212: sxxxxx#22 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=212: sxxxxx#22 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=212: sxxxxx#22 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=213: sxxxxx#22 nsp=-1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=213: sxxxxx#22 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=213: sxxxxx#22 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=213: sxxxxx#22 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=213: sxxxxx#22 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=213: sxxxxx#22 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=214: oxxxxx#22 nsp=-1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=214: oxxxxx#22 nsp=-1 mass=400 + -8.320502943378436e+00, -8.875203139603666e+00, // itest=214: oxxxxx#22 nsp=-1 mass=400 + 7.211102550927978e+00, 0.000000000000000e+00, // itest=214: oxxxxx#22 nsp=-1 mass=400 + 1.664100588675688e+01, 1.775040627920733e+01, // itest=214: oxxxxx#22 nsp=-1 mass=400 + -1.442220510185596e+01, -0.000000000000000e+00 } ); // itest=214: oxxxxx#22 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=215: oxxxxx#22 nsp=-1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=215: oxxxxx#22 nsp=-1 mass=-400 + 8.320502943378436e+00, 8.875203139603666e+00, // itest=215: oxxxxx#22 nsp=-1 mass=-400 + -7.211102550927978e+00, -0.000000000000000e+00, // itest=215: oxxxxx#22 nsp=-1 mass=-400 + 1.664100588675688e+01, 1.775040627920733e+01, // itest=215: oxxxxx#22 nsp=-1 mass=-400 + -1.442220510185596e+01, -0.000000000000000e+00 } ); // itest=215: oxxxxx#22 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=216: ixxxxx#23 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=216: ixxxxx#23 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=216: ixxxxx#23 nsp=-1 mass=500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=216: ixxxxx#23 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=216: ixxxxx#23 nsp=-1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=216: ixxxxx#23 nsp=-1 mass=500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=217: ixxxxx#23 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=217: ixxxxx#23 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=217: ixxxxx#23 nsp=-1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=217: ixxxxx#23 nsp=-1 mass=-500 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=217: ixxxxx#23 nsp=-1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=217: ixxxxx#23 nsp=-1 mass=-500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=218: vxxxxx#23 nsp=-1 mass=500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=218: vxxxxx#23 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=218: vxxxxx#23 nsp=-1 mass=500 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=218: vxxxxx#23 nsp=-1 mass=500 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=218: vxxxxx#23 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=218: vxxxxx#23 nsp=-1 mass=500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=219: vxxxxx#23 nsp=-1 mass=-500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=219: vxxxxx#23 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=219: vxxxxx#23 nsp=-1 mass=-500 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=219: vxxxxx#23 nsp=-1 mass=-500 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=219: vxxxxx#23 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=219: vxxxxx#23 nsp=-1 mass=-500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=220: sxxxxx#23 nsp=-1 mass=500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=220: sxxxxx#23 nsp=-1 mass=500 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=220: sxxxxx#23 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=220: sxxxxx#23 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=220: sxxxxx#23 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=220: sxxxxx#23 nsp=-1 mass=500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=221: sxxxxx#23 nsp=-1 mass=-500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=221: sxxxxx#23 nsp=-1 mass=-500 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=221: sxxxxx#23 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=221: sxxxxx#23 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=221: sxxxxx#23 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=221: sxxxxx#23 nsp=-1 mass=-500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=222: oxxxxx#23 nsp=-1 mass=500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=222: oxxxxx#23 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=222: oxxxxx#23 nsp=-1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=222: oxxxxx#23 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=222: oxxxxx#23 nsp=-1 mass=500 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=222: oxxxxx#23 nsp=-1 mass=500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=223: oxxxxx#23 nsp=-1 mass=-500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=223: oxxxxx#23 nsp=-1 mass=-500 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=223: oxxxxx#23 nsp=-1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=223: oxxxxx#23 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=223: oxxxxx#23 nsp=-1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=223: oxxxxx#23 nsp=-1 mass=-500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=224: ixxxxx#24 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=224: ixxxxx#24 nsp=-1 mass=400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=224: ixxxxx#24 nsp=-1 mass=400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=224: ixxxxx#24 nsp=-1 mass=400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=224: ixxxxx#24 nsp=-1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00 } ); // itest=224: ixxxxx#24 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=225: ixxxxx#24 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=225: ixxxxx#24 nsp=-1 mass=-400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=225: ixxxxx#24 nsp=-1 mass=-400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=225: ixxxxx#24 nsp=-1 mass=-400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=225: ixxxxx#24 nsp=-1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00 } ); // itest=225: ixxxxx#24 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=226: vxxxxx#24 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=226: vxxxxx#24 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=226: vxxxxx#24 nsp=-1 mass=400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=226: vxxxxx#24 nsp=-1 mass=400 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=226: vxxxxx#24 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=226: vxxxxx#24 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=227: vxxxxx#24 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=227: vxxxxx#24 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=227: vxxxxx#24 nsp=-1 mass=-400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=227: vxxxxx#24 nsp=-1 mass=-400 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=227: vxxxxx#24 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=227: vxxxxx#24 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=228: sxxxxx#24 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=228: sxxxxx#24 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=228: sxxxxx#24 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=228: sxxxxx#24 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=228: sxxxxx#24 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=228: sxxxxx#24 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=229: sxxxxx#24 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=229: sxxxxx#24 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=229: sxxxxx#24 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=229: sxxxxx#24 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=229: sxxxxx#24 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=229: sxxxxx#24 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=230: oxxxxx#24 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=230: oxxxxx#24 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=230: oxxxxx#24 nsp=-1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=230: oxxxxx#24 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=230: oxxxxx#24 nsp=-1 mass=400 + -2.828427124746190e+01, -0.000000000000000e+00 } ); // itest=230: oxxxxx#24 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=231: oxxxxx#24 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=231: oxxxxx#24 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=231: oxxxxx#24 nsp=-1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=231: oxxxxx#24 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=231: oxxxxx#24 nsp=-1 mass=-400 + -2.828427124746190e+01, -0.000000000000000e+00 } ); // itest=231: oxxxxx#24 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=232: ixxxxx#25 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=232: ixxxxx#25 nsp=-1 mass=400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=232: ixxxxx#25 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=232: ixxxxx#25 nsp=-1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=232: ixxxxx#25 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=232: ixxxxx#25 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=233: ixxxxx#25 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=233: ixxxxx#25 nsp=-1 mass=-400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=233: ixxxxx#25 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=233: ixxxxx#25 nsp=-1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=233: ixxxxx#25 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=233: ixxxxx#25 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=234: vxxxxx#25 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=234: vxxxxx#25 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=234: vxxxxx#25 nsp=-1 mass=400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=234: vxxxxx#25 nsp=-1 mass=400 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=234: vxxxxx#25 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=234: vxxxxx#25 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=235: vxxxxx#25 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=235: vxxxxx#25 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=235: vxxxxx#25 nsp=-1 mass=-400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=235: vxxxxx#25 nsp=-1 mass=-400 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=235: vxxxxx#25 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=235: vxxxxx#25 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=236: sxxxxx#25 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=236: sxxxxx#25 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=236: sxxxxx#25 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=236: sxxxxx#25 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=236: sxxxxx#25 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=236: sxxxxx#25 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=237: sxxxxx#25 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=237: sxxxxx#25 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=237: sxxxxx#25 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=237: sxxxxx#25 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=237: sxxxxx#25 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=237: sxxxxx#25 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=238: oxxxxx#25 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=238: oxxxxx#25 nsp=-1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=238: oxxxxx#25 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=238: oxxxxx#25 nsp=-1 mass=400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=238: oxxxxx#25 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=238: oxxxxx#25 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=239: oxxxxx#25 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=239: oxxxxx#25 nsp=-1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=239: oxxxxx#25 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=239: oxxxxx#25 nsp=-1 mass=-400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=239: oxxxxx#25 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=239: oxxxxx#25 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=240: ixxxxx#26 nsp=-1 mass=400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=240: ixxxxx#26 nsp=-1 mass=400 + 1.200000000000000e+01, -1.600000000000000e+01, // itest=240: ixxxxx#26 nsp=-1 mass=400 + -2.000000000000000e+01, -0.000000000000000e+00, // itest=240: ixxxxx#26 nsp=-1 mass=400 + -5.999999999999999e+00, 7.999999999999999e+00, // itest=240: ixxxxx#26 nsp=-1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=240: ixxxxx#26 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=241: ixxxxx#26 nsp=-1 mass=-400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=241: ixxxxx#26 nsp=-1 mass=-400 + 1.200000000000000e+01, -1.600000000000000e+01, // itest=241: ixxxxx#26 nsp=-1 mass=-400 + -2.000000000000000e+01, -0.000000000000000e+00, // itest=241: ixxxxx#26 nsp=-1 mass=-400 + 5.999999999999999e+00, -7.999999999999999e+00, // itest=241: ixxxxx#26 nsp=-1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00 } ); // itest=241: ixxxxx#26 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=242: vxxxxx#26 nsp=-1 mass=400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=242: vxxxxx#26 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=242: vxxxxx#26 nsp=-1 mass=400 + 0.000000000000000e+00, 5.656854249492381e-01, // itest=242: vxxxxx#26 nsp=-1 mass=400 + 0.000000000000000e+00, -4.242640687119285e-01, // itest=242: vxxxxx#26 nsp=-1 mass=400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=242: vxxxxx#26 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=243: vxxxxx#26 nsp=-1 mass=-400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=243: vxxxxx#26 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=243: vxxxxx#26 nsp=-1 mass=-400 + -0.000000000000000e+00, 5.656854249492381e-01, // itest=243: vxxxxx#26 nsp=-1 mass=-400 + -0.000000000000000e+00, -4.242640687119285e-01, // itest=243: vxxxxx#26 nsp=-1 mass=-400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=243: vxxxxx#26 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=244: sxxxxx#26 nsp=-1 mass=400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=244: sxxxxx#26 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=244: sxxxxx#26 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=244: sxxxxx#26 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=244: sxxxxx#26 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=244: sxxxxx#26 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=245: sxxxxx#26 nsp=-1 mass=-400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=245: sxxxxx#26 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=245: sxxxxx#26 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=245: sxxxxx#26 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=245: sxxxxx#26 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=245: sxxxxx#26 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=246: oxxxxx#26 nsp=-1 mass=400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=246: oxxxxx#26 nsp=-1 mass=400 + -5.999999999999999e+00, -7.999999999999999e+00, // itest=246: oxxxxx#26 nsp=-1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=246: oxxxxx#26 nsp=-1 mass=400 + 1.200000000000000e+01, 1.600000000000000e+01, // itest=246: oxxxxx#26 nsp=-1 mass=400 + -2.000000000000000e+01, -0.000000000000000e+00 } ); // itest=246: oxxxxx#26 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=247: oxxxxx#26 nsp=-1 mass=-400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=247: oxxxxx#26 nsp=-1 mass=-400 + 5.999999999999999e+00, 7.999999999999999e+00, // itest=247: oxxxxx#26 nsp=-1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00, // itest=247: oxxxxx#26 nsp=-1 mass=-400 + 1.200000000000000e+01, 1.600000000000000e+01, // itest=247: oxxxxx#26 nsp=-1 mass=-400 + -2.000000000000000e+01, -0.000000000000000e+00 } ); // itest=247: oxxxxx#26 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=248: ixxxxx#27 nsp=-1 mass=400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=248: ixxxxx#27 nsp=-1 mass=400 + -1.600000000000000e+01, 1.200000000000000e+01, // itest=248: ixxxxx#27 nsp=-1 mass=400 + -2.000000000000000e+01, -0.000000000000000e+00, // itest=248: ixxxxx#27 nsp=-1 mass=400 + 7.999999999999999e+00, -5.999999999999999e+00, // itest=248: ixxxxx#27 nsp=-1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00 } ); // itest=248: ixxxxx#27 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=249: ixxxxx#27 nsp=-1 mass=-400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=249: ixxxxx#27 nsp=-1 mass=-400 + -1.600000000000000e+01, 1.200000000000000e+01, // itest=249: ixxxxx#27 nsp=-1 mass=-400 + -2.000000000000000e+01, -0.000000000000000e+00, // itest=249: ixxxxx#27 nsp=-1 mass=-400 + -7.999999999999999e+00, 5.999999999999999e+00, // itest=249: ixxxxx#27 nsp=-1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00 } ); // itest=249: ixxxxx#27 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=250: vxxxxx#27 nsp=-1 mass=400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=250: vxxxxx#27 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=250: vxxxxx#27 nsp=-1 mass=400 + 0.000000000000000e+00, -4.242640687119285e-01, // itest=250: vxxxxx#27 nsp=-1 mass=400 + 0.000000000000000e+00, 5.656854249492381e-01, // itest=250: vxxxxx#27 nsp=-1 mass=400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=250: vxxxxx#27 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=251: vxxxxx#27 nsp=-1 mass=-400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=251: vxxxxx#27 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=251: vxxxxx#27 nsp=-1 mass=-400 + 0.000000000000000e+00, -4.242640687119285e-01, // itest=251: vxxxxx#27 nsp=-1 mass=-400 + 0.000000000000000e+00, 5.656854249492381e-01, // itest=251: vxxxxx#27 nsp=-1 mass=-400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=251: vxxxxx#27 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=252: sxxxxx#27 nsp=-1 mass=400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=252: sxxxxx#27 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=252: sxxxxx#27 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=252: sxxxxx#27 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=252: sxxxxx#27 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=252: sxxxxx#27 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=253: sxxxxx#27 nsp=-1 mass=-400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=253: sxxxxx#27 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=253: sxxxxx#27 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=253: sxxxxx#27 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=253: sxxxxx#27 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=253: sxxxxx#27 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=254: oxxxxx#27 nsp=-1 mass=400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=254: oxxxxx#27 nsp=-1 mass=400 + 7.999999999999999e+00, 5.999999999999999e+00, // itest=254: oxxxxx#27 nsp=-1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=254: oxxxxx#27 nsp=-1 mass=400 + -1.600000000000000e+01, -1.200000000000000e+01, // itest=254: oxxxxx#27 nsp=-1 mass=400 + -2.000000000000000e+01, -0.000000000000000e+00 } ); // itest=254: oxxxxx#27 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=255: oxxxxx#27 nsp=-1 mass=-400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=255: oxxxxx#27 nsp=-1 mass=-400 + -7.999999999999999e+00, -5.999999999999999e+00, // itest=255: oxxxxx#27 nsp=-1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00, // itest=255: oxxxxx#27 nsp=-1 mass=-400 + -1.600000000000000e+01, -1.200000000000000e+01, // itest=255: oxxxxx#27 nsp=-1 mass=-400 + -2.000000000000000e+01, -0.000000000000000e+00 } ); // itest=255: oxxxxx#27 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=256: ixxxxx#28 nsp=-1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=256: ixxxxx#28 nsp=-1 mass=400 + 9.863939238321439e+00, -1.052153518754287e+01, // itest=256: ixxxxx#28 nsp=-1 mass=400 + -2.433105012119288e+01, -0.000000000000000e+00, // itest=256: ixxxxx#28 nsp=-1 mass=400 + -4.931969619160719e+00, 5.260767593771432e+00, // itest=256: ixxxxx#28 nsp=-1 mass=400 + 1.216552506059644e+01, 0.000000000000000e+00 } ); // itest=256: ixxxxx#28 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=257: ixxxxx#28 nsp=-1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=257: ixxxxx#28 nsp=-1 mass=-400 + 9.863939238321439e+00, -1.052153518754287e+01, // itest=257: ixxxxx#28 nsp=-1 mass=-400 + -2.433105012119288e+01, -0.000000000000000e+00, // itest=257: ixxxxx#28 nsp=-1 mass=-400 + 4.931969619160719e+00, -5.260767593771432e+00, // itest=257: ixxxxx#28 nsp=-1 mass=-400 + -1.216552506059644e+01, -0.000000000000000e+00 } ); // itest=257: ixxxxx#28 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=258: vxxxxx#28 nsp=-1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=258: vxxxxx#28 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=258: vxxxxx#28 nsp=-1 mass=400 + -2.321373168788980e-01, 5.158607041753289e-01, // itest=258: vxxxxx#28 nsp=-1 mass=400 + -2.476131380041579e-01, -4.836194101643708e-01, // itest=258: vxxxxx#28 nsp=-1 mass=400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=258: vxxxxx#28 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=259: vxxxxx#28 nsp=-1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=259: vxxxxx#28 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=259: vxxxxx#28 nsp=-1 mass=-400 + -2.321373168788980e-01, 5.158607041753289e-01, // itest=259: vxxxxx#28 nsp=-1 mass=-400 + -2.476131380041579e-01, -4.836194101643708e-01, // itest=259: vxxxxx#28 nsp=-1 mass=-400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=259: vxxxxx#28 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=260: sxxxxx#28 nsp=-1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=260: sxxxxx#28 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=260: sxxxxx#28 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=260: sxxxxx#28 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=260: sxxxxx#28 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=260: sxxxxx#28 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=261: sxxxxx#28 nsp=-1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=261: sxxxxx#28 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=261: sxxxxx#28 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=261: sxxxxx#28 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=261: sxxxxx#28 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=261: sxxxxx#28 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=262: oxxxxx#28 nsp=-1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=262: oxxxxx#28 nsp=-1 mass=400 + -4.931969619160719e+00, -5.260767593771432e+00, // itest=262: oxxxxx#28 nsp=-1 mass=400 + 1.216552506059644e+01, 0.000000000000000e+00, // itest=262: oxxxxx#28 nsp=-1 mass=400 + 9.863939238321439e+00, 1.052153518754287e+01, // itest=262: oxxxxx#28 nsp=-1 mass=400 + -2.433105012119288e+01, -0.000000000000000e+00 } ); // itest=262: oxxxxx#28 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=263: oxxxxx#28 nsp=-1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=263: oxxxxx#28 nsp=-1 mass=-400 + 4.931969619160719e+00, 5.260767593771432e+00, // itest=263: oxxxxx#28 nsp=-1 mass=-400 + -1.216552506059644e+01, -0.000000000000000e+00, // itest=263: oxxxxx#28 nsp=-1 mass=-400 + 9.863939238321439e+00, 1.052153518754287e+01, // itest=263: oxxxxx#28 nsp=-1 mass=-400 + -2.433105012119288e+01, -0.000000000000000e+00 } ); // itest=263: oxxxxx#28 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=264: ixxxxx#29 nsp=-1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=264: ixxxxx#29 nsp=-1 mass=400 + 1.664100588675688e+01, -1.775040627920733e+01, // itest=264: ixxxxx#29 nsp=-1 mass=400 + -1.442220510185596e+01, -0.000000000000000e+00, // itest=264: ixxxxx#29 nsp=-1 mass=400 + -8.320502943378436e+00, 8.875203139603666e+00, // itest=264: ixxxxx#29 nsp=-1 mass=400 + 7.211102550927978e+00, 0.000000000000000e+00 } ); // itest=264: ixxxxx#29 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=265: ixxxxx#29 nsp=-1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=265: ixxxxx#29 nsp=-1 mass=-400 + 1.664100588675688e+01, -1.775040627920733e+01, // itest=265: ixxxxx#29 nsp=-1 mass=-400 + -1.442220510185596e+01, -0.000000000000000e+00, // itest=265: ixxxxx#29 nsp=-1 mass=-400 + 8.320502943378436e+00, -8.875203139603666e+00, // itest=265: ixxxxx#29 nsp=-1 mass=-400 + -7.211102550927978e+00, -0.000000000000000e+00 } ); // itest=265: ixxxxx#29 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=266: vxxxxx#29 nsp=-1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=266: vxxxxx#29 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=266: vxxxxx#29 nsp=-1 mass=400 + 2.321373168788980e-01, 5.158607041753289e-01, // itest=266: vxxxxx#29 nsp=-1 mass=400 + 2.476131380041579e-01, -4.836194101643708e-01, // itest=266: vxxxxx#29 nsp=-1 mass=400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=266: vxxxxx#29 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=267: vxxxxx#29 nsp=-1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=267: vxxxxx#29 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=267: vxxxxx#29 nsp=-1 mass=-400 + 2.321373168788980e-01, 5.158607041753289e-01, // itest=267: vxxxxx#29 nsp=-1 mass=-400 + 2.476131380041579e-01, -4.836194101643708e-01, // itest=267: vxxxxx#29 nsp=-1 mass=-400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=267: vxxxxx#29 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=268: sxxxxx#29 nsp=-1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=268: sxxxxx#29 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=268: sxxxxx#29 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=268: sxxxxx#29 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=268: sxxxxx#29 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=268: sxxxxx#29 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=269: sxxxxx#29 nsp=-1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=269: sxxxxx#29 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=269: sxxxxx#29 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=269: sxxxxx#29 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=269: sxxxxx#29 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=269: sxxxxx#29 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=270: oxxxxx#29 nsp=-1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=270: oxxxxx#29 nsp=-1 mass=400 + -8.320502943378436e+00, -8.875203139603666e+00, // itest=270: oxxxxx#29 nsp=-1 mass=400 + 7.211102550927978e+00, 0.000000000000000e+00, // itest=270: oxxxxx#29 nsp=-1 mass=400 + 1.664100588675688e+01, 1.775040627920733e+01, // itest=270: oxxxxx#29 nsp=-1 mass=400 + -1.442220510185596e+01, -0.000000000000000e+00 } ); // itest=270: oxxxxx#29 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=271: oxxxxx#29 nsp=-1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=271: oxxxxx#29 nsp=-1 mass=-400 + 8.320502943378436e+00, 8.875203139603666e+00, // itest=271: oxxxxx#29 nsp=-1 mass=-400 + -7.211102550927978e+00, -0.000000000000000e+00, // itest=271: oxxxxx#29 nsp=-1 mass=-400 + 1.664100588675688e+01, 1.775040627920733e+01, // itest=271: oxxxxx#29 nsp=-1 mass=-400 + -1.442220510185596e+01, -0.000000000000000e+00 } ); // itest=271: oxxxxx#29 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=272: ixxxxx#30 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=272: ixxxxx#30 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=272: ixxxxx#30 nsp=-1 mass=500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=272: ixxxxx#30 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=272: ixxxxx#30 nsp=-1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=272: ixxxxx#30 nsp=-1 mass=500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=273: ixxxxx#30 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=273: ixxxxx#30 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=273: ixxxxx#30 nsp=-1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=273: ixxxxx#30 nsp=-1 mass=-500 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=273: ixxxxx#30 nsp=-1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=273: ixxxxx#30 nsp=-1 mass=-500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=274: vxxxxx#30 nsp=-1 mass=500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=274: vxxxxx#30 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=274: vxxxxx#30 nsp=-1 mass=500 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=274: vxxxxx#30 nsp=-1 mass=500 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=274: vxxxxx#30 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=274: vxxxxx#30 nsp=-1 mass=500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=275: vxxxxx#30 nsp=-1 mass=-500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=275: vxxxxx#30 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=275: vxxxxx#30 nsp=-1 mass=-500 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=275: vxxxxx#30 nsp=-1 mass=-500 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=275: vxxxxx#30 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=275: vxxxxx#30 nsp=-1 mass=-500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=276: sxxxxx#30 nsp=-1 mass=500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=276: sxxxxx#30 nsp=-1 mass=500 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=276: sxxxxx#30 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=276: sxxxxx#30 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=276: sxxxxx#30 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=276: sxxxxx#30 nsp=-1 mass=500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=277: sxxxxx#30 nsp=-1 mass=-500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=277: sxxxxx#30 nsp=-1 mass=-500 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=277: sxxxxx#30 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=277: sxxxxx#30 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=277: sxxxxx#30 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=277: sxxxxx#30 nsp=-1 mass=-500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=278: oxxxxx#30 nsp=-1 mass=500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=278: oxxxxx#30 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=278: oxxxxx#30 nsp=-1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=278: oxxxxx#30 nsp=-1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=278: oxxxxx#30 nsp=-1 mass=500 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=278: oxxxxx#30 nsp=-1 mass=500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=279: oxxxxx#30 nsp=-1 mass=-500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=279: oxxxxx#30 nsp=-1 mass=-500 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=279: oxxxxx#30 nsp=-1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=279: oxxxxx#30 nsp=-1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=279: oxxxxx#30 nsp=-1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00 } ); // itest=279: oxxxxx#30 nsp=-1 mass=-500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=280: ixxxxx#31 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=280: ixxxxx#31 nsp=-1 mass=400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=280: ixxxxx#31 nsp=-1 mass=400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=280: ixxxxx#31 nsp=-1 mass=400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=280: ixxxxx#31 nsp=-1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00 } ); // itest=280: ixxxxx#31 nsp=-1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=281: ixxxxx#31 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=281: ixxxxx#31 nsp=-1 mass=-400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=281: ixxxxx#31 nsp=-1 mass=-400 + -2.828427124746190e+01, -0.000000000000000e+00, // itest=281: ixxxxx#31 nsp=-1 mass=-400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=281: ixxxxx#31 nsp=-1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00 } ); // itest=281: ixxxxx#31 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=282: vxxxxx#31 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=282: vxxxxx#31 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=282: vxxxxx#31 nsp=-1 mass=400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=282: vxxxxx#31 nsp=-1 mass=400 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=282: vxxxxx#31 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=282: vxxxxx#31 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=283: vxxxxx#31 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=283: vxxxxx#31 nsp=-1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=283: vxxxxx#31 nsp=-1 mass=-400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=283: vxxxxx#31 nsp=-1 mass=-400 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=283: vxxxxx#31 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=283: vxxxxx#31 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=284: sxxxxx#31 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=284: sxxxxx#31 nsp=-1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=284: sxxxxx#31 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=284: sxxxxx#31 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=284: sxxxxx#31 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=284: sxxxxx#31 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=285: sxxxxx#31 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=285: sxxxxx#31 nsp=-1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=285: sxxxxx#31 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=285: sxxxxx#31 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=285: sxxxxx#31 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=285: sxxxxx#31 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=286: oxxxxx#31 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=286: oxxxxx#31 nsp=-1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=286: oxxxxx#31 nsp=-1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=286: oxxxxx#31 nsp=-1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=286: oxxxxx#31 nsp=-1 mass=400 + -2.828427124746190e+01, -0.000000000000000e+00 } ); // itest=286: oxxxxx#31 nsp=-1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=287: oxxxxx#31 nsp=-1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=287: oxxxxx#31 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=287: oxxxxx#31 nsp=-1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=287: oxxxxx#31 nsp=-1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=287: oxxxxx#31 nsp=-1 mass=-400 + -2.828427124746190e+01, -0.000000000000000e+00 } ); // itest=287: oxxxxx#31 nsp=-1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=288: ixxxxx#0 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=288: ixxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=288: ixxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=288: ixxxxx#0 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=288: ixxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=288: ixxxxx#0 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=289: ixxxxx#0 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=289: ixxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=289: ixxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=289: ixxxxx#0 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=289: ixxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=289: ixxxxx#0 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=290: ipzxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=290: ipzxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=290: ipzxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=290: ipzxxx#0 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=290: ipzxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=290: ipzxxx#0 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=291: vxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=291: vxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=291: vxxxxx#0 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=291: vxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=291: vxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=291: vxxxxx#0 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=292: vxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=292: vxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=292: vxxxxx#0 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=292: vxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=292: vxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=292: vxxxxx#0 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=293: sxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=293: sxxxxx#0 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=293: sxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=293: sxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=293: sxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=293: sxxxxx#0 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=294: sxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=294: sxxxxx#0 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=294: sxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=294: sxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=294: sxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=294: sxxxxx#0 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=295: oxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=295: oxxxxx#0 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=295: oxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=295: oxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=295: oxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=295: oxxxxx#0 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=296: oxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=296: oxxxxx#0 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=296: oxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=296: oxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=296: oxxxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=296: oxxxxx#0 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=297: opzxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=297: opzxxx#0 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=297: opzxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=297: opzxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=297: opzxxx#0 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=297: opzxxx#0 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=298: ixxxxx#1 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=298: ixxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=298: ixxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=298: ixxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=298: ixxxxx#1 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=298: ixxxxx#1 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=299: ixxxxx#1 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=299: ixxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=299: ixxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=299: ixxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=299: ixxxxx#1 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=299: ixxxxx#1 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=300: imzxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=300: imzxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=300: imzxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=300: imzxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=300: imzxxx#1 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=300: imzxxx#1 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=301: vxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=301: vxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=301: vxxxxx#1 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=301: vxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=301: vxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=301: vxxxxx#1 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=302: vxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=302: vxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=302: vxxxxx#1 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=302: vxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=302: vxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=302: vxxxxx#1 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=303: sxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=303: sxxxxx#1 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=303: sxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=303: sxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=303: sxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=303: sxxxxx#1 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=304: sxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=304: sxxxxx#1 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=304: sxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=304: sxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=304: sxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=304: sxxxxx#1 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=305: oxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=305: oxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=305: oxxxxx#1 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=305: oxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=305: oxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=305: oxxxxx#1 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=306: oxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=306: oxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=306: oxxxxx#1 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=306: oxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=306: oxxxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=306: oxxxxx#1 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=307: omzxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=307: omzxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=307: omzxxx#1 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=307: omzxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=307: omzxxx#1 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=307: omzxxx#1 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=308: ixxxxx#2 nsp=1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=308: ixxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=308: ixxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=308: ixxxxx#2 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=308: ixxxxx#2 nsp=1 mass=0 + 1.341640786499874e+01, 1.788854381999831e+01 } ); // itest=308: ixxxxx#2 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=309: ixxxxx#2 nsp=1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=309: ixxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=309: ixxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=309: ixxxxx#2 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=309: ixxxxx#2 nsp=1 mass=0 + 1.341640786499874e+01, 1.788854381999831e+01 } ); // itest=309: ixxxxx#2 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=310: ixzxxx#2 nsp=1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=310: ixzxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=310: ixzxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=310: ixzxxx#2 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=310: ixzxxx#2 nsp=1 mass=0 + 1.341640786499874e+01, 1.788854381999832e+01 } ); // itest=310: ixzxxx#2 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=311: vxxxxx#2 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=311: vxxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=311: vxxxxx#2 nsp=1 mass=0 + -0.000000000000000e+00, -5.656854249492381e-01, // itest=311: vxxxxx#2 nsp=1 mass=0 + -0.000000000000000e+00, 4.242640687119285e-01, // itest=311: vxxxxx#2 nsp=1 mass=0 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=311: vxxxxx#2 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=312: vxxxxx#2 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=312: vxxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=312: vxxxxx#2 nsp=1 mass=0 + -0.000000000000000e+00, -5.656854249492381e-01, // itest=312: vxxxxx#2 nsp=1 mass=0 + -0.000000000000000e+00, 4.242640687119285e-01, // itest=312: vxxxxx#2 nsp=1 mass=0 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=312: vxxxxx#2 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=313: sxxxxx#2 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=313: sxxxxx#2 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=313: sxxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=313: sxxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=313: sxxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=313: sxxxxx#2 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=314: sxxxxx#2 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=314: sxxxxx#2 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=314: sxxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=314: sxxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=314: sxxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=314: sxxxxx#2 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=315: oxxxxx#2 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=315: oxxxxx#2 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=315: oxxxxx#2 nsp=1 mass=0 + 1.341640786499874e+01, -1.788854381999831e+01, // itest=315: oxxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=315: oxxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=315: oxxxxx#2 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=316: oxxxxx#2 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=316: oxxxxx#2 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=316: oxxxxx#2 nsp=1 mass=0 + 1.341640786499874e+01, -1.788854381999831e+01, // itest=316: oxxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=316: oxxxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=316: oxxxxx#2 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=317: oxzxxx#2 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=317: oxzxxx#2 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=317: oxzxxx#2 nsp=1 mass=0 + 1.341640786499874e+01, -1.788854381999832e+01, // itest=317: oxzxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=317: oxzxxx#2 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=317: oxzxxx#2 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=318: ixxxxx#3 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=318: ixxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=318: ixxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=318: ixxxxx#3 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=318: ixxxxx#3 nsp=1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=318: ixxxxx#3 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=319: ixxxxx#3 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=319: ixxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=319: ixxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=319: ixxxxx#3 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=319: ixxxxx#3 nsp=1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=319: ixxxxx#3 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=320: ixzxxx#3 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=320: ixzxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=320: ixzxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=320: ixzxxx#3 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=320: ixzxxx#3 nsp=1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=320: ixzxxx#3 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=321: vxxxxx#3 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=321: vxxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=321: vxxxxx#3 nsp=1 mass=0 + -3.394112549695428e-01, -5.656854249492381e-01, // itest=321: vxxxxx#3 nsp=1 mass=0 + -4.525483399593904e-01, 4.242640687119285e-01, // itest=321: vxxxxx#3 nsp=1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=321: vxxxxx#3 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=322: vxxxxx#3 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=322: vxxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=322: vxxxxx#3 nsp=1 mass=0 + -3.394112549695428e-01, -5.656854249492381e-01, // itest=322: vxxxxx#3 nsp=1 mass=0 + -4.525483399593904e-01, 4.242640687119285e-01, // itest=322: vxxxxx#3 nsp=1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=322: vxxxxx#3 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=323: sxxxxx#3 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=323: sxxxxx#3 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=323: sxxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=323: sxxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=323: sxxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=323: sxxxxx#3 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=324: sxxxxx#3 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=324: sxxxxx#3 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=324: sxxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=324: sxxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=324: sxxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=324: sxxxxx#3 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=325: oxxxxx#3 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=325: oxxxxx#3 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=325: oxxxxx#3 nsp=1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=325: oxxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=325: oxxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=325: oxxxxx#3 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=326: oxxxxx#3 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=326: oxxxxx#3 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=326: oxxxxx#3 nsp=1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=326: oxxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=326: oxxxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=326: oxxxxx#3 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=327: oxzxxx#3 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=327: oxzxxx#3 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=327: oxzxxx#3 nsp=1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=327: oxzxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=327: oxzxxx#3 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=327: oxzxxx#3 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=328: ixxxxx#4 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=328: ixxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=328: ixxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=328: ixxxxx#4 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=328: ixxxxx#4 nsp=1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01 } ); // itest=328: ixxxxx#4 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=329: ixxxxx#4 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=329: ixxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=329: ixxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=329: ixxxxx#4 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=329: ixxxxx#4 nsp=1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01 } ); // itest=329: ixxxxx#4 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=330: ixzxxx#4 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=330: ixzxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=330: ixzxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=330: ixzxxx#4 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=330: ixzxxx#4 nsp=1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01 } ); // itest=330: ixzxxx#4 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=331: vxxxxx#4 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=331: vxxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=331: vxxxxx#4 nsp=1 mass=0 + 3.394112549695428e-01, -5.656854249492381e-01, // itest=331: vxxxxx#4 nsp=1 mass=0 + 4.525483399593904e-01, 4.242640687119285e-01, // itest=331: vxxxxx#4 nsp=1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=331: vxxxxx#4 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=332: vxxxxx#4 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=332: vxxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=332: vxxxxx#4 nsp=1 mass=0 + 3.394112549695428e-01, -5.656854249492381e-01, // itest=332: vxxxxx#4 nsp=1 mass=0 + 4.525483399593904e-01, 4.242640687119285e-01, // itest=332: vxxxxx#4 nsp=1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=332: vxxxxx#4 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=333: sxxxxx#4 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=333: sxxxxx#4 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=333: sxxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=333: sxxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=333: sxxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=333: sxxxxx#4 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=334: sxxxxx#4 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=334: sxxxxx#4 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=334: sxxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=334: sxxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=334: sxxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=334: sxxxxx#4 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=335: oxxxxx#4 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=335: oxxxxx#4 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=335: oxxxxx#4 nsp=1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=335: oxxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=335: oxxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=335: oxxxxx#4 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=336: oxxxxx#4 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=336: oxxxxx#4 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=336: oxxxxx#4 nsp=1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=336: oxxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=336: oxxxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=336: oxxxxx#4 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=337: oxzxxx#4 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=337: oxzxxx#4 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=337: oxzxxx#4 nsp=1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=337: oxzxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=337: oxzxxx#4 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=337: oxzxxx#4 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=338: ixxxxx#5 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=338: ixxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=338: ixxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=338: ixxxxx#5 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=338: ixxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=338: ixxxxx#5 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=339: ixxxxx#5 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=339: ixxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=339: ixxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=339: ixxxxx#5 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=339: ixxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=339: ixxxxx#5 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=340: ipzxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=340: ipzxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=340: ipzxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=340: ipzxxx#5 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=340: ipzxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=340: ipzxxx#5 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=341: vxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=341: vxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=341: vxxxxx#5 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=341: vxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=341: vxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=341: vxxxxx#5 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=342: vxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=342: vxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=342: vxxxxx#5 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=342: vxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=342: vxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=342: vxxxxx#5 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=343: sxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=343: sxxxxx#5 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=343: sxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=343: sxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=343: sxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=343: sxxxxx#5 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=344: sxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=344: sxxxxx#5 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=344: sxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=344: sxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=344: sxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=344: sxxxxx#5 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=345: oxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=345: oxxxxx#5 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=345: oxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=345: oxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=345: oxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=345: oxxxxx#5 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=346: oxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=346: oxxxxx#5 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=346: oxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=346: oxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=346: oxxxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=346: oxxxxx#5 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=347: opzxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=347: opzxxx#5 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=347: opzxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=347: opzxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=347: opzxxx#5 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=347: opzxxx#5 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=348: ixxxxx#6 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=348: ixxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=348: ixxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=348: ixxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=348: ixxxxx#6 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=348: ixxxxx#6 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=349: ixxxxx#6 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=349: ixxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=349: ixxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=349: ixxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=349: ixxxxx#6 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=349: ixxxxx#6 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=350: imzxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=350: imzxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=350: imzxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=350: imzxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=350: imzxxx#6 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=350: imzxxx#6 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=351: vxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=351: vxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=351: vxxxxx#6 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=351: vxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=351: vxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=351: vxxxxx#6 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=352: vxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=352: vxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=352: vxxxxx#6 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=352: vxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=352: vxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=352: vxxxxx#6 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=353: sxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=353: sxxxxx#6 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=353: sxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=353: sxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=353: sxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=353: sxxxxx#6 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=354: sxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=354: sxxxxx#6 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=354: sxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=354: sxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=354: sxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=354: sxxxxx#6 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=355: oxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=355: oxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=355: oxxxxx#6 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=355: oxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=355: oxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=355: oxxxxx#6 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=356: oxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=356: oxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=356: oxxxxx#6 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=356: oxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=356: oxxxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=356: oxxxxx#6 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=357: omzxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=357: omzxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=357: omzxxx#6 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=357: omzxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=357: omzxxx#6 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=357: omzxxx#6 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=358: ixxxxx#7 nsp=1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=358: ixxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=358: ixxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=358: ixxxxx#7 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=358: ixxxxx#7 nsp=1 mass=0 + 1.341640786499874e+01, 1.788854381999831e+01 } ); // itest=358: ixxxxx#7 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=359: ixxxxx#7 nsp=1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=359: ixxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=359: ixxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=359: ixxxxx#7 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=359: ixxxxx#7 nsp=1 mass=0 + 1.341640786499874e+01, 1.788854381999831e+01 } ); // itest=359: ixxxxx#7 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=360: ixzxxx#7 nsp=1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=360: ixzxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=360: ixzxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=360: ixzxxx#7 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=360: ixzxxx#7 nsp=1 mass=0 + 1.341640786499874e+01, 1.788854381999832e+01 } ); // itest=360: ixzxxx#7 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=361: vxxxxx#7 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=361: vxxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=361: vxxxxx#7 nsp=1 mass=0 + -0.000000000000000e+00, -5.656854249492381e-01, // itest=361: vxxxxx#7 nsp=1 mass=0 + -0.000000000000000e+00, 4.242640687119285e-01, // itest=361: vxxxxx#7 nsp=1 mass=0 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=361: vxxxxx#7 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=362: vxxxxx#7 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=362: vxxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=362: vxxxxx#7 nsp=1 mass=0 + -0.000000000000000e+00, -5.656854249492381e-01, // itest=362: vxxxxx#7 nsp=1 mass=0 + -0.000000000000000e+00, 4.242640687119285e-01, // itest=362: vxxxxx#7 nsp=1 mass=0 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=362: vxxxxx#7 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=363: sxxxxx#7 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=363: sxxxxx#7 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=363: sxxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=363: sxxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=363: sxxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=363: sxxxxx#7 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=364: sxxxxx#7 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=364: sxxxxx#7 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=364: sxxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=364: sxxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=364: sxxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=364: sxxxxx#7 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=365: oxxxxx#7 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=365: oxxxxx#7 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=365: oxxxxx#7 nsp=1 mass=0 + 1.341640786499874e+01, -1.788854381999831e+01, // itest=365: oxxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=365: oxxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=365: oxxxxx#7 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=366: oxxxxx#7 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=366: oxxxxx#7 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=366: oxxxxx#7 nsp=1 mass=0 + 1.341640786499874e+01, -1.788854381999831e+01, // itest=366: oxxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=366: oxxxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=366: oxxxxx#7 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=367: oxzxxx#7 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=367: oxzxxx#7 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=367: oxzxxx#7 nsp=1 mass=0 + 1.341640786499874e+01, -1.788854381999832e+01, // itest=367: oxzxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=367: oxzxxx#7 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=367: oxzxxx#7 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=368: ixxxxx#8 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=368: ixxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=368: ixxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=368: ixxxxx#8 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=368: ixxxxx#8 nsp=1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=368: ixxxxx#8 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=369: ixxxxx#8 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=369: ixxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=369: ixxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=369: ixxxxx#8 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=369: ixxxxx#8 nsp=1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=369: ixxxxx#8 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=370: ixzxxx#8 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=370: ixzxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=370: ixzxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=370: ixzxxx#8 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=370: ixzxxx#8 nsp=1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=370: ixzxxx#8 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=371: vxxxxx#8 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=371: vxxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=371: vxxxxx#8 nsp=1 mass=0 + -3.394112549695428e-01, -5.656854249492381e-01, // itest=371: vxxxxx#8 nsp=1 mass=0 + -4.525483399593904e-01, 4.242640687119285e-01, // itest=371: vxxxxx#8 nsp=1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=371: vxxxxx#8 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=372: vxxxxx#8 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=372: vxxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=372: vxxxxx#8 nsp=1 mass=0 + -3.394112549695428e-01, -5.656854249492381e-01, // itest=372: vxxxxx#8 nsp=1 mass=0 + -4.525483399593904e-01, 4.242640687119285e-01, // itest=372: vxxxxx#8 nsp=1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=372: vxxxxx#8 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=373: sxxxxx#8 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=373: sxxxxx#8 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=373: sxxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=373: sxxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=373: sxxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=373: sxxxxx#8 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=374: sxxxxx#8 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=374: sxxxxx#8 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=374: sxxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=374: sxxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=374: sxxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=374: sxxxxx#8 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=375: oxxxxx#8 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=375: oxxxxx#8 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=375: oxxxxx#8 nsp=1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=375: oxxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=375: oxxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=375: oxxxxx#8 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=376: oxxxxx#8 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=376: oxxxxx#8 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=376: oxxxxx#8 nsp=1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=376: oxxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=376: oxxxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=376: oxxxxx#8 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=377: oxzxxx#8 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=377: oxzxxx#8 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=377: oxzxxx#8 nsp=1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=377: oxzxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=377: oxzxxx#8 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=377: oxzxxx#8 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=378: ixxxxx#9 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=378: ixxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=378: ixxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=378: ixxxxx#9 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=378: ixxxxx#9 nsp=1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01 } ); // itest=378: ixxxxx#9 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=379: ixxxxx#9 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=379: ixxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=379: ixxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=379: ixxxxx#9 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=379: ixxxxx#9 nsp=1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01 } ); // itest=379: ixxxxx#9 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=380: ixzxxx#9 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=380: ixzxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=380: ixzxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=380: ixzxxx#9 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=380: ixzxxx#9 nsp=1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01 } ); // itest=380: ixzxxx#9 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=381: vxxxxx#9 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=381: vxxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=381: vxxxxx#9 nsp=1 mass=0 + 3.394112549695428e-01, -5.656854249492381e-01, // itest=381: vxxxxx#9 nsp=1 mass=0 + 4.525483399593904e-01, 4.242640687119285e-01, // itest=381: vxxxxx#9 nsp=1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=381: vxxxxx#9 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=382: vxxxxx#9 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=382: vxxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=382: vxxxxx#9 nsp=1 mass=0 + 3.394112549695428e-01, -5.656854249492381e-01, // itest=382: vxxxxx#9 nsp=1 mass=0 + 4.525483399593904e-01, 4.242640687119285e-01, // itest=382: vxxxxx#9 nsp=1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=382: vxxxxx#9 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=383: sxxxxx#9 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=383: sxxxxx#9 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=383: sxxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=383: sxxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=383: sxxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=383: sxxxxx#9 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=384: sxxxxx#9 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=384: sxxxxx#9 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=384: sxxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=384: sxxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=384: sxxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=384: sxxxxx#9 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=385: oxxxxx#9 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=385: oxxxxx#9 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=385: oxxxxx#9 nsp=1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=385: oxxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=385: oxxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=385: oxxxxx#9 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=386: oxxxxx#9 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=386: oxxxxx#9 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=386: oxxxxx#9 nsp=1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=386: oxxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=386: oxxxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=386: oxxxxx#9 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=387: oxzxxx#9 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=387: oxzxxx#9 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=387: oxzxxx#9 nsp=1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=387: oxzxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=387: oxzxxx#9 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=387: oxzxxx#9 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=388: ixxxxx#10 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=388: ixxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=388: ixxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=388: ixxxxx#10 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=388: ixxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=388: ixxxxx#10 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=389: ixxxxx#10 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=389: ixxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=389: ixxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=389: ixxxxx#10 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=389: ixxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=389: ixxxxx#10 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=390: ipzxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=390: ipzxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=390: ipzxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=390: ipzxxx#10 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=390: ipzxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=390: ipzxxx#10 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=391: vxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=391: vxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=391: vxxxxx#10 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=391: vxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=391: vxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=391: vxxxxx#10 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=392: vxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=392: vxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=392: vxxxxx#10 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=392: vxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=392: vxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=392: vxxxxx#10 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=393: sxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=393: sxxxxx#10 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=393: sxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=393: sxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=393: sxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=393: sxxxxx#10 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=394: sxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=394: sxxxxx#10 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=394: sxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=394: sxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=394: sxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=394: sxxxxx#10 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=395: oxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=395: oxxxxx#10 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=395: oxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=395: oxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=395: oxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=395: oxxxxx#10 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=396: oxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=396: oxxxxx#10 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=396: oxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=396: oxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=396: oxxxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=396: oxxxxx#10 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=397: opzxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=397: opzxxx#10 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=397: opzxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=397: opzxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=397: opzxxx#10 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=397: opzxxx#10 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=398: ixxxxx#11 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=398: ixxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=398: ixxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=398: ixxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=398: ixxxxx#11 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=398: ixxxxx#11 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=399: ixxxxx#11 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=399: ixxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=399: ixxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=399: ixxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=399: ixxxxx#11 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=399: ixxxxx#11 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 5.000000000000000e+02, // itest=400: imzxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=400: imzxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=400: imzxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=400: imzxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=400: imzxxx#11 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00 } ); // itest=400: imzxxx#11 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=401: vxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=401: vxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=401: vxxxxx#11 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=401: vxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=401: vxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=401: vxxxxx#11 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=402: vxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=402: vxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=402: vxxxxx#11 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=402: vxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=402: vxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=402: vxxxxx#11 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=403: sxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=403: sxxxxx#11 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=403: sxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=403: sxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=403: sxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=403: sxxxxx#11 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=404: sxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=404: sxxxxx#11 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=404: sxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=404: sxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=404: sxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=404: sxxxxx#11 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=405: oxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=405: oxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=405: oxxxxx#11 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=405: oxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=405: oxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=405: oxxxxx#11 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=406: oxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=406: oxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=406: oxxxxx#11 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=406: oxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=406: oxxxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=406: oxxxxx#11 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -5.000000000000000e+02, // itest=407: omzxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=407: omzxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=407: omzxxx#11 nsp=1 mass=0 + -3.162277660168379e+01, 0.000000000000000e+00, // itest=407: omzxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=407: omzxxx#11 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=407: omzxxx#11 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=408: ixxxxx#12 nsp=1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=408: ixxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=408: ixxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=408: ixxxxx#12 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=408: ixxxxx#12 nsp=1 mass=0 + 1.341640786499874e+01, 1.788854381999831e+01 } ); // itest=408: ixxxxx#12 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=409: ixxxxx#12 nsp=1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=409: ixxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=409: ixxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=409: ixxxxx#12 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=409: ixxxxx#12 nsp=1 mass=0 + 1.341640786499874e+01, 1.788854381999831e+01 } ); // itest=409: ixxxxx#12 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=410: ixzxxx#12 nsp=1 mass=0 + -3.000000000000000e+02, -4.000000000000000e+02, // itest=410: ixzxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=410: ixzxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=410: ixzxxx#12 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=410: ixzxxx#12 nsp=1 mass=0 + 1.341640786499874e+01, 1.788854381999832e+01 } ); // itest=410: ixzxxx#12 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=411: vxxxxx#12 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=411: vxxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=411: vxxxxx#12 nsp=1 mass=0 + -0.000000000000000e+00, -5.656854249492381e-01, // itest=411: vxxxxx#12 nsp=1 mass=0 + -0.000000000000000e+00, 4.242640687119285e-01, // itest=411: vxxxxx#12 nsp=1 mass=0 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=411: vxxxxx#12 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=412: vxxxxx#12 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=412: vxxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=412: vxxxxx#12 nsp=1 mass=0 + -0.000000000000000e+00, -5.656854249492381e-01, // itest=412: vxxxxx#12 nsp=1 mass=0 + -0.000000000000000e+00, 4.242640687119285e-01, // itest=412: vxxxxx#12 nsp=1 mass=0 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=412: vxxxxx#12 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=413: sxxxxx#12 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=413: sxxxxx#12 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=413: sxxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=413: sxxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=413: sxxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=413: sxxxxx#12 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=414: sxxxxx#12 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=414: sxxxxx#12 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=414: sxxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=414: sxxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=414: sxxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=414: sxxxxx#12 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=415: oxxxxx#12 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=415: oxxxxx#12 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=415: oxxxxx#12 nsp=1 mass=0 + 1.341640786499874e+01, -1.788854381999831e+01, // itest=415: oxxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=415: oxxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=415: oxxxxx#12 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=416: oxxxxx#12 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=416: oxxxxx#12 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=416: oxxxxx#12 nsp=1 mass=0 + 1.341640786499874e+01, -1.788854381999831e+01, // itest=416: oxxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=416: oxxxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=416: oxxxxx#12 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=417: oxzxxx#12 nsp=1 mass=0 + 3.000000000000000e+02, 4.000000000000000e+02, // itest=417: oxzxxx#12 nsp=1 mass=0 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=417: oxzxxx#12 nsp=1 mass=0 + 1.341640786499874e+01, -1.788854381999832e+01, // itest=417: oxzxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=417: oxzxxx#12 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=417: oxzxxx#12 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=418: ixxxxx#13 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=418: ixxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=418: ixxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=418: ixxxxx#13 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=418: ixxxxx#13 nsp=1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=418: ixxxxx#13 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=419: ixxxxx#13 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=419: ixxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=419: ixxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=419: ixxxxx#13 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=419: ixxxxx#13 nsp=1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=419: ixxxxx#13 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -4.000000000000000e+02, // itest=420: ixzxxx#13 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=420: ixzxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=420: ixzxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=420: ixzxxx#13 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=420: ixzxxx#13 nsp=1 mass=0 + 6.000000000000000e+00, 8.000000000000000e+00 } ); // itest=420: ixzxxx#13 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=421: vxxxxx#13 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=421: vxxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=421: vxxxxx#13 nsp=1 mass=0 + -3.394112549695428e-01, -5.656854249492381e-01, // itest=421: vxxxxx#13 nsp=1 mass=0 + -4.525483399593904e-01, 4.242640687119285e-01, // itest=421: vxxxxx#13 nsp=1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=421: vxxxxx#13 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=422: vxxxxx#13 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=422: vxxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=422: vxxxxx#13 nsp=1 mass=0 + -3.394112549695428e-01, -5.656854249492381e-01, // itest=422: vxxxxx#13 nsp=1 mass=0 + -4.525483399593904e-01, 4.242640687119285e-01, // itest=422: vxxxxx#13 nsp=1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=422: vxxxxx#13 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=423: sxxxxx#13 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=423: sxxxxx#13 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=423: sxxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=423: sxxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=423: sxxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=423: sxxxxx#13 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=424: sxxxxx#13 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=424: sxxxxx#13 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=424: sxxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=424: sxxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=424: sxxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=424: sxxxxx#13 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=425: oxxxxx#13 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=425: oxxxxx#13 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=425: oxxxxx#13 nsp=1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=425: oxxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=425: oxxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=425: oxxxxx#13 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=426: oxxxxx#13 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=426: oxxxxx#13 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=426: oxxxxx#13 nsp=1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=426: oxxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=426: oxxxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=426: oxxxxx#13 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 4.000000000000000e+02, // itest=427: oxzxxx#13 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=427: oxzxxx#13 nsp=1 mass=0 + 3.000000000000000e+01, 0.000000000000000e+00, // itest=427: oxzxxx#13 nsp=1 mass=0 + 6.000000000000000e+00, -8.000000000000000e+00, // itest=427: oxzxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=427: oxzxxx#13 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=427: oxzxxx#13 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=428: ixxxxx#14 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=428: ixxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=428: ixxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=428: ixxxxx#14 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=428: ixxxxx#14 nsp=1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01 } ); // itest=428: ixxxxx#14 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=429: ixxxxx#14 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=429: ixxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=429: ixxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=429: ixxxxx#14 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=429: ixxxxx#14 nsp=1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01 } ); // itest=429: ixxxxx#14 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 4.000000000000000e+02, // itest=430: ixzxxx#14 nsp=1 mass=0 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=430: ixzxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=430: ixzxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=430: ixzxxx#14 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=430: ixzxxx#14 nsp=1 mass=0 + 1.800000000000000e+01, 2.400000000000000e+01 } ); // itest=430: ixzxxx#14 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=431: vxxxxx#14 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=431: vxxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=431: vxxxxx#14 nsp=1 mass=0 + 3.394112549695428e-01, -5.656854249492381e-01, // itest=431: vxxxxx#14 nsp=1 mass=0 + 4.525483399593904e-01, 4.242640687119285e-01, // itest=431: vxxxxx#14 nsp=1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=431: vxxxxx#14 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=432: vxxxxx#14 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=432: vxxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=432: vxxxxx#14 nsp=1 mass=0 + 3.394112549695428e-01, -5.656854249492381e-01, // itest=432: vxxxxx#14 nsp=1 mass=0 + 4.525483399593904e-01, 4.242640687119285e-01, // itest=432: vxxxxx#14 nsp=1 mass=0 + 4.242640687119285e-01, 0.000000000000000e+00 } ); // itest=432: vxxxxx#14 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=433: sxxxxx#14 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=433: sxxxxx#14 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=433: sxxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=433: sxxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=433: sxxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=433: sxxxxx#14 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=434: sxxxxx#14 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=434: sxxxxx#14 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=434: sxxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=434: sxxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=434: sxxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=434: sxxxxx#14 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=435: oxxxxx#14 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=435: oxxxxx#14 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=435: oxxxxx#14 nsp=1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=435: oxxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=435: oxxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=435: oxxxxx#14 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=436: oxxxxx#14 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=436: oxxxxx#14 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=436: oxxxxx#14 nsp=1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=436: oxxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=436: oxxxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=436: oxxxxx#14 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -4.000000000000000e+02, // itest=437: oxzxxx#14 nsp=1 mass=0 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=437: oxzxxx#14 nsp=1 mass=0 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=437: oxzxxx#14 nsp=1 mass=0 + 1.800000000000000e+01, -2.400000000000000e+01, // itest=437: oxzxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=437: oxzxxx#14 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=437: oxzxxx#14 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=438: ixxxxx#15 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=438: ixxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=438: ixxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=438: ixxxxx#15 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=438: ixxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=438: ixxxxx#15 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=439: ixxxxx#15 nsp=1 mass=0 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=439: ixxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=439: ixxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=439: ixxxxx#15 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=439: ixxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=439: ixxxxx#15 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -5.000000000000000e+02, // itest=440: ipzxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=440: ipzxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=440: ipzxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=440: ipzxxx#15 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=440: ipzxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=440: ipzxxx#15 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=441: vxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=441: vxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=441: vxxxxx#15 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=441: vxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=441: vxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=441: vxxxxx#15 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=442: vxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=442: vxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=442: vxxxxx#15 nsp=1 mass=0 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=442: vxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=442: vxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=442: vxxxxx#15 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=443: sxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=443: sxxxxx#15 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=443: sxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=443: sxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=443: sxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=443: sxxxxx#15 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=444: sxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=444: sxxxxx#15 nsp=1 mass=0 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=444: sxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=444: sxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=444: sxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=444: sxxxxx#15 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=445: oxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=445: oxxxxx#15 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=445: oxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=445: oxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=445: oxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=445: oxxxxx#15 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=446: oxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=446: oxxxxx#15 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=446: oxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=446: oxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=446: oxxxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=446: oxxxxx#15 nsp=1 mass=0 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 5.000000000000000e+02, // itest=447: opzxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=447: opzxxx#15 nsp=1 mass=0 + 3.162277660168379e+01, 0.000000000000000e+00, // itest=447: opzxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=447: opzxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=447: opzxxx#15 nsp=1 mass=0 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=447: opzxxx#15 nsp=1 mass=0 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=448: ixxxxx#16 nsp=1 mass=500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=448: ixxxxx#16 nsp=1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=448: ixxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=448: ixxxxx#16 nsp=1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=448: ixxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=448: ixxxxx#16 nsp=1 mass=500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=449: ixxxxx#16 nsp=1 mass=-500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=449: ixxxxx#16 nsp=1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=449: ixxxxx#16 nsp=1 mass=-500 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=449: ixxxxx#16 nsp=1 mass=-500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=449: ixxxxx#16 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=449: ixxxxx#16 nsp=1 mass=-500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=450: vxxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=450: vxxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=450: vxxxxx#16 nsp=1 mass=500 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=450: vxxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=450: vxxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=450: vxxxxx#16 nsp=1 mass=500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=451: vxxxxx#16 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=451: vxxxxx#16 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=451: vxxxxx#16 nsp=1 mass=-500 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=451: vxxxxx#16 nsp=1 mass=-500 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=451: vxxxxx#16 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=451: vxxxxx#16 nsp=1 mass=-500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=452: sxxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=452: sxxxxx#16 nsp=1 mass=500 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=452: sxxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=452: sxxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=452: sxxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=452: sxxxxx#16 nsp=1 mass=500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=453: sxxxxx#16 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=453: sxxxxx#16 nsp=1 mass=-500 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=453: sxxxxx#16 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=453: sxxxxx#16 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=453: sxxxxx#16 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=453: sxxxxx#16 nsp=1 mass=-500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=454: oxxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=454: oxxxxx#16 nsp=1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=454: oxxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=454: oxxxxx#16 nsp=1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=454: oxxxxx#16 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=454: oxxxxx#16 nsp=1 mass=500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=455: oxxxxx#16 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=455: oxxxxx#16 nsp=1 mass=-500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=455: oxxxxx#16 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=455: oxxxxx#16 nsp=1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=455: oxxxxx#16 nsp=1 mass=-500 + -0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=455: oxxxxx#16 nsp=1 mass=-500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=456: ixxxxx#17 nsp=1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=456: ixxxxx#17 nsp=1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=456: ixxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=456: ixxxxx#17 nsp=1 mass=400 + 2.828427124746190e+01, 0.000000000000000e+00, // itest=456: ixxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=456: ixxxxx#17 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=457: ixxxxx#17 nsp=1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=457: ixxxxx#17 nsp=1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=457: ixxxxx#17 nsp=1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=457: ixxxxx#17 nsp=1 mass=-400 + 2.828427124746190e+01, 0.000000000000000e+00, // itest=457: ixxxxx#17 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=457: ixxxxx#17 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=458: vxxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=458: vxxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=458: vxxxxx#17 nsp=1 mass=400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=458: vxxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=458: vxxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=458: vxxxxx#17 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=459: vxxxxx#17 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=459: vxxxxx#17 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=459: vxxxxx#17 nsp=1 mass=-400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=459: vxxxxx#17 nsp=1 mass=-400 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=459: vxxxxx#17 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=459: vxxxxx#17 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=460: sxxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=460: sxxxxx#17 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=460: sxxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=460: sxxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=460: sxxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=460: sxxxxx#17 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=461: sxxxxx#17 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=461: sxxxxx#17 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=461: sxxxxx#17 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=461: sxxxxx#17 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=461: sxxxxx#17 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=461: sxxxxx#17 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=462: oxxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=462: oxxxxx#17 nsp=1 mass=400 + 2.828427124746190e+01, 0.000000000000000e+00, // itest=462: oxxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=462: oxxxxx#17 nsp=1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=462: oxxxxx#17 nsp=1 mass=400 + 0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=462: oxxxxx#17 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=463: oxxxxx#17 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=463: oxxxxx#17 nsp=1 mass=-400 + 2.828427124746190e+01, 0.000000000000000e+00, // itest=463: oxxxxx#17 nsp=1 mass=-400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=463: oxxxxx#17 nsp=1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=463: oxxxxx#17 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=463: oxxxxx#17 nsp=1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=464: ixxxxx#18 nsp=1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=464: ixxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=464: ixxxxx#18 nsp=1 mass=400 + -1.414213562373095e+01, 0.000000000000000e+00, // itest=464: ixxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=464: ixxxxx#18 nsp=1 mass=400 + -2.828427124746190e+01, 0.000000000000000e+00 } ); // itest=464: ixxxxx#18 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=465: ixxxxx#18 nsp=1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=465: ixxxxx#18 nsp=1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=465: ixxxxx#18 nsp=1 mass=-400 + 1.414213562373095e+01, -0.000000000000000e+00, // itest=465: ixxxxx#18 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=465: ixxxxx#18 nsp=1 mass=-400 + -2.828427124746190e+01, 0.000000000000000e+00 } ); // itest=465: ixxxxx#18 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=466: vxxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=466: vxxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=466: vxxxxx#18 nsp=1 mass=400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=466: vxxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=466: vxxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=466: vxxxxx#18 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=467: vxxxxx#18 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=467: vxxxxx#18 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=467: vxxxxx#18 nsp=1 mass=-400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=467: vxxxxx#18 nsp=1 mass=-400 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=467: vxxxxx#18 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=467: vxxxxx#18 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=468: sxxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=468: sxxxxx#18 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=468: sxxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=468: sxxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=468: sxxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=468: sxxxxx#18 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=469: sxxxxx#18 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=469: sxxxxx#18 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=469: sxxxxx#18 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=469: sxxxxx#18 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=469: sxxxxx#18 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=469: sxxxxx#18 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=470: oxxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=470: oxxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=470: oxxxxx#18 nsp=1 mass=400 + -2.828427124746190e+01, 0.000000000000000e+00, // itest=470: oxxxxx#18 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=470: oxxxxx#18 nsp=1 mass=400 + -1.414213562373095e+01, 0.000000000000000e+00 } ); // itest=470: oxxxxx#18 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=471: oxxxxx#18 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=471: oxxxxx#18 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=471: oxxxxx#18 nsp=1 mass=-400 + -2.828427124746190e+01, 0.000000000000000e+00, // itest=471: oxxxxx#18 nsp=1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=471: oxxxxx#18 nsp=1 mass=-400 + 1.414213562373095e+01, -0.000000000000000e+00 } ); // itest=471: oxxxxx#18 nsp=1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=472: ixxxxx#19 nsp=1 mass=400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=472: ixxxxx#19 nsp=1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=472: ixxxxx#19 nsp=1 mass=400 + 5.999999999999999e+00, 7.999999999999999e+00, // itest=472: ixxxxx#19 nsp=1 mass=400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=472: ixxxxx#19 nsp=1 mass=400 + 1.200000000000000e+01, 1.600000000000000e+01 } ); // itest=472: ixxxxx#19 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=473: ixxxxx#19 nsp=1 mass=-400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=473: ixxxxx#19 nsp=1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00, // itest=473: ixxxxx#19 nsp=1 mass=-400 + -5.999999999999999e+00, -7.999999999999999e+00, // itest=473: ixxxxx#19 nsp=1 mass=-400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=473: ixxxxx#19 nsp=1 mass=-400 + 1.200000000000000e+01, 1.600000000000000e+01 } ); // itest=473: ixxxxx#19 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=474: vxxxxx#19 nsp=1 mass=400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=474: vxxxxx#19 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=474: vxxxxx#19 nsp=1 mass=400 + 0.000000000000000e+00, -5.656854249492381e-01, // itest=474: vxxxxx#19 nsp=1 mass=400 + 0.000000000000000e+00, 4.242640687119285e-01, // itest=474: vxxxxx#19 nsp=1 mass=400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=474: vxxxxx#19 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=475: vxxxxx#19 nsp=1 mass=-400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=475: vxxxxx#19 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=475: vxxxxx#19 nsp=1 mass=-400 + -0.000000000000000e+00, -5.656854249492381e-01, // itest=475: vxxxxx#19 nsp=1 mass=-400 + -0.000000000000000e+00, 4.242640687119285e-01, // itest=475: vxxxxx#19 nsp=1 mass=-400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=475: vxxxxx#19 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=476: sxxxxx#19 nsp=1 mass=400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=476: sxxxxx#19 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=476: sxxxxx#19 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=476: sxxxxx#19 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=476: sxxxxx#19 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=476: sxxxxx#19 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=477: sxxxxx#19 nsp=1 mass=-400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=477: sxxxxx#19 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=477: sxxxxx#19 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=477: sxxxxx#19 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=477: sxxxxx#19 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=477: sxxxxx#19 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=478: oxxxxx#19 nsp=1 mass=400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=478: oxxxxx#19 nsp=1 mass=400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=478: oxxxxx#19 nsp=1 mass=400 + 1.200000000000000e+01, -1.600000000000000e+01, // itest=478: oxxxxx#19 nsp=1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=478: oxxxxx#19 nsp=1 mass=400 + 5.999999999999999e+00, -7.999999999999999e+00 } ); // itest=478: oxxxxx#19 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=479: oxxxxx#19 nsp=1 mass=-400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=479: oxxxxx#19 nsp=1 mass=-400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=479: oxxxxx#19 nsp=1 mass=-400 + 1.200000000000000e+01, -1.600000000000000e+01, // itest=479: oxxxxx#19 nsp=1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00, // itest=479: oxxxxx#19 nsp=1 mass=-400 + -5.999999999999999e+00, 7.999999999999999e+00 } ); // itest=479: oxxxxx#19 nsp=1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=480: ixxxxx#20 nsp=1 mass=400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=480: ixxxxx#20 nsp=1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=480: ixxxxx#20 nsp=1 mass=400 + -7.999999999999999e+00, -5.999999999999999e+00, // itest=480: ixxxxx#20 nsp=1 mass=400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=480: ixxxxx#20 nsp=1 mass=400 + -1.600000000000000e+01, -1.200000000000000e+01 } ); // itest=480: ixxxxx#20 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=481: ixxxxx#20 nsp=1 mass=-400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=481: ixxxxx#20 nsp=1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00, // itest=481: ixxxxx#20 nsp=1 mass=-400 + 7.999999999999999e+00, 5.999999999999999e+00, // itest=481: ixxxxx#20 nsp=1 mass=-400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=481: ixxxxx#20 nsp=1 mass=-400 + -1.600000000000000e+01, -1.200000000000000e+01 } ); // itest=481: ixxxxx#20 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=482: vxxxxx#20 nsp=1 mass=400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=482: vxxxxx#20 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=482: vxxxxx#20 nsp=1 mass=400 + 0.000000000000000e+00, 4.242640687119285e-01, // itest=482: vxxxxx#20 nsp=1 mass=400 + 0.000000000000000e+00, -5.656854249492381e-01, // itest=482: vxxxxx#20 nsp=1 mass=400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=482: vxxxxx#20 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=483: vxxxxx#20 nsp=1 mass=-400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=483: vxxxxx#20 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=483: vxxxxx#20 nsp=1 mass=-400 + 0.000000000000000e+00, 4.242640687119285e-01, // itest=483: vxxxxx#20 nsp=1 mass=-400 + 0.000000000000000e+00, -5.656854249492381e-01, // itest=483: vxxxxx#20 nsp=1 mass=-400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=483: vxxxxx#20 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=484: sxxxxx#20 nsp=1 mass=400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=484: sxxxxx#20 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=484: sxxxxx#20 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=484: sxxxxx#20 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=484: sxxxxx#20 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=484: sxxxxx#20 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=485: sxxxxx#20 nsp=1 mass=-400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=485: sxxxxx#20 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=485: sxxxxx#20 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=485: sxxxxx#20 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=485: sxxxxx#20 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=485: sxxxxx#20 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=486: oxxxxx#20 nsp=1 mass=400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=486: oxxxxx#20 nsp=1 mass=400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=486: oxxxxx#20 nsp=1 mass=400 + -1.600000000000000e+01, 1.200000000000000e+01, // itest=486: oxxxxx#20 nsp=1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=486: oxxxxx#20 nsp=1 mass=400 + -7.999999999999999e+00, 5.999999999999999e+00 } ); // itest=486: oxxxxx#20 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=487: oxxxxx#20 nsp=1 mass=-400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=487: oxxxxx#20 nsp=1 mass=-400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=487: oxxxxx#20 nsp=1 mass=-400 + -1.600000000000000e+01, 1.200000000000000e+01, // itest=487: oxxxxx#20 nsp=1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00, // itest=487: oxxxxx#20 nsp=1 mass=-400 + 7.999999999999999e+00, -5.999999999999999e+00 } ); // itest=487: oxxxxx#20 nsp=1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=488: ixxxxx#21 nsp=1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=488: ixxxxx#21 nsp=1 mass=400 + 1.216552506059644e+01, 0.000000000000000e+00, // itest=488: ixxxxx#21 nsp=1 mass=400 + 4.931969619160719e+00, 5.260767593771432e+00, // itest=488: ixxxxx#21 nsp=1 mass=400 + 2.433105012119288e+01, 0.000000000000000e+00, // itest=488: ixxxxx#21 nsp=1 mass=400 + 9.863939238321439e+00, 1.052153518754287e+01 } ); // itest=488: ixxxxx#21 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=489: ixxxxx#21 nsp=1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=489: ixxxxx#21 nsp=1 mass=-400 + -1.216552506059644e+01, -0.000000000000000e+00, // itest=489: ixxxxx#21 nsp=1 mass=-400 + -4.931969619160719e+00, -5.260767593771432e+00, // itest=489: ixxxxx#21 nsp=1 mass=-400 + 2.433105012119288e+01, 0.000000000000000e+00, // itest=489: ixxxxx#21 nsp=1 mass=-400 + 9.863939238321439e+00, 1.052153518754287e+01 } ); // itest=489: ixxxxx#21 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=490: vxxxxx#21 nsp=1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=490: vxxxxx#21 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=490: vxxxxx#21 nsp=1 mass=400 + -2.321373168788980e-01, -5.158607041753289e-01, // itest=490: vxxxxx#21 nsp=1 mass=400 + -2.476131380041579e-01, 4.836194101643708e-01, // itest=490: vxxxxx#21 nsp=1 mass=400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=490: vxxxxx#21 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=491: vxxxxx#21 nsp=1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=491: vxxxxx#21 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=491: vxxxxx#21 nsp=1 mass=-400 + -2.321373168788980e-01, -5.158607041753289e-01, // itest=491: vxxxxx#21 nsp=1 mass=-400 + -2.476131380041579e-01, 4.836194101643708e-01, // itest=491: vxxxxx#21 nsp=1 mass=-400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=491: vxxxxx#21 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=492: sxxxxx#21 nsp=1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=492: sxxxxx#21 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=492: sxxxxx#21 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=492: sxxxxx#21 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=492: sxxxxx#21 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=492: sxxxxx#21 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=493: sxxxxx#21 nsp=1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=493: sxxxxx#21 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=493: sxxxxx#21 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=493: sxxxxx#21 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=493: sxxxxx#21 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=493: sxxxxx#21 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=494: oxxxxx#21 nsp=1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=494: oxxxxx#21 nsp=1 mass=400 + 2.433105012119288e+01, 0.000000000000000e+00, // itest=494: oxxxxx#21 nsp=1 mass=400 + 9.863939238321439e+00, -1.052153518754287e+01, // itest=494: oxxxxx#21 nsp=1 mass=400 + 1.216552506059644e+01, 0.000000000000000e+00, // itest=494: oxxxxx#21 nsp=1 mass=400 + 4.931969619160719e+00, -5.260767593771432e+00 } ); // itest=494: oxxxxx#21 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=495: oxxxxx#21 nsp=1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=495: oxxxxx#21 nsp=1 mass=-400 + 2.433105012119288e+01, 0.000000000000000e+00, // itest=495: oxxxxx#21 nsp=1 mass=-400 + 9.863939238321439e+00, -1.052153518754287e+01, // itest=495: oxxxxx#21 nsp=1 mass=-400 + -1.216552506059644e+01, -0.000000000000000e+00, // itest=495: oxxxxx#21 nsp=1 mass=-400 + -4.931969619160719e+00, 5.260767593771432e+00 } ); // itest=495: oxxxxx#21 nsp=1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=496: ixxxxx#22 nsp=1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=496: ixxxxx#22 nsp=1 mass=400 + 7.211102550927978e+00, 0.000000000000000e+00, // itest=496: ixxxxx#22 nsp=1 mass=400 + 8.320502943378436e+00, 8.875203139603666e+00, // itest=496: ixxxxx#22 nsp=1 mass=400 + 1.442220510185596e+01, 0.000000000000000e+00, // itest=496: ixxxxx#22 nsp=1 mass=400 + 1.664100588675688e+01, 1.775040627920733e+01 } ); // itest=496: ixxxxx#22 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=497: ixxxxx#22 nsp=1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=497: ixxxxx#22 nsp=1 mass=-400 + -7.211102550927978e+00, -0.000000000000000e+00, // itest=497: ixxxxx#22 nsp=1 mass=-400 + -8.320502943378436e+00, -8.875203139603666e+00, // itest=497: ixxxxx#22 nsp=1 mass=-400 + 1.442220510185596e+01, 0.000000000000000e+00, // itest=497: ixxxxx#22 nsp=1 mass=-400 + 1.664100588675688e+01, 1.775040627920733e+01 } ); // itest=497: ixxxxx#22 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=498: vxxxxx#22 nsp=1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=498: vxxxxx#22 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=498: vxxxxx#22 nsp=1 mass=400 + 2.321373168788980e-01, -5.158607041753289e-01, // itest=498: vxxxxx#22 nsp=1 mass=400 + 2.476131380041579e-01, 4.836194101643708e-01, // itest=498: vxxxxx#22 nsp=1 mass=400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=498: vxxxxx#22 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=499: vxxxxx#22 nsp=1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=499: vxxxxx#22 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=499: vxxxxx#22 nsp=1 mass=-400 + 2.321373168788980e-01, -5.158607041753289e-01, // itest=499: vxxxxx#22 nsp=1 mass=-400 + 2.476131380041579e-01, 4.836194101643708e-01, // itest=499: vxxxxx#22 nsp=1 mass=-400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=499: vxxxxx#22 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=500: sxxxxx#22 nsp=1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=500: sxxxxx#22 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=500: sxxxxx#22 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=500: sxxxxx#22 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=500: sxxxxx#22 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=500: sxxxxx#22 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=501: sxxxxx#22 nsp=1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=501: sxxxxx#22 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=501: sxxxxx#22 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=501: sxxxxx#22 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=501: sxxxxx#22 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=501: sxxxxx#22 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=502: oxxxxx#22 nsp=1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=502: oxxxxx#22 nsp=1 mass=400 + 1.442220510185596e+01, 0.000000000000000e+00, // itest=502: oxxxxx#22 nsp=1 mass=400 + 1.664100588675688e+01, -1.775040627920733e+01, // itest=502: oxxxxx#22 nsp=1 mass=400 + 7.211102550927978e+00, 0.000000000000000e+00, // itest=502: oxxxxx#22 nsp=1 mass=400 + 8.320502943378436e+00, -8.875203139603666e+00 } ); // itest=502: oxxxxx#22 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=503: oxxxxx#22 nsp=1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=503: oxxxxx#22 nsp=1 mass=-400 + 1.442220510185596e+01, 0.000000000000000e+00, // itest=503: oxxxxx#22 nsp=1 mass=-400 + 1.664100588675688e+01, -1.775040627920733e+01, // itest=503: oxxxxx#22 nsp=1 mass=-400 + -7.211102550927978e+00, -0.000000000000000e+00, // itest=503: oxxxxx#22 nsp=1 mass=-400 + -8.320502943378436e+00, 8.875203139603666e+00 } ); // itest=503: oxxxxx#22 nsp=1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=504: ixxxxx#23 nsp=1 mass=500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=504: ixxxxx#23 nsp=1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=504: ixxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=504: ixxxxx#23 nsp=1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=504: ixxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=504: ixxxxx#23 nsp=1 mass=500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=505: ixxxxx#23 nsp=1 mass=-500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=505: ixxxxx#23 nsp=1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=505: ixxxxx#23 nsp=1 mass=-500 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=505: ixxxxx#23 nsp=1 mass=-500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=505: ixxxxx#23 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=505: ixxxxx#23 nsp=1 mass=-500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=506: vxxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=506: vxxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=506: vxxxxx#23 nsp=1 mass=500 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=506: vxxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=506: vxxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=506: vxxxxx#23 nsp=1 mass=500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=507: vxxxxx#23 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=507: vxxxxx#23 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=507: vxxxxx#23 nsp=1 mass=-500 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=507: vxxxxx#23 nsp=1 mass=-500 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=507: vxxxxx#23 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=507: vxxxxx#23 nsp=1 mass=-500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=508: sxxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=508: sxxxxx#23 nsp=1 mass=500 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=508: sxxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=508: sxxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=508: sxxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=508: sxxxxx#23 nsp=1 mass=500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=509: sxxxxx#23 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=509: sxxxxx#23 nsp=1 mass=-500 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=509: sxxxxx#23 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=509: sxxxxx#23 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=509: sxxxxx#23 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=509: sxxxxx#23 nsp=1 mass=-500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=510: oxxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=510: oxxxxx#23 nsp=1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=510: oxxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=510: oxxxxx#23 nsp=1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=510: oxxxxx#23 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=510: oxxxxx#23 nsp=1 mass=500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=511: oxxxxx#23 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=511: oxxxxx#23 nsp=1 mass=-500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=511: oxxxxx#23 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=511: oxxxxx#23 nsp=1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=511: oxxxxx#23 nsp=1 mass=-500 + -0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=511: oxxxxx#23 nsp=1 mass=-500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=512: ixxxxx#24 nsp=1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=512: ixxxxx#24 nsp=1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=512: ixxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=512: ixxxxx#24 nsp=1 mass=400 + 2.828427124746190e+01, 0.000000000000000e+00, // itest=512: ixxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=512: ixxxxx#24 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=513: ixxxxx#24 nsp=1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=513: ixxxxx#24 nsp=1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=513: ixxxxx#24 nsp=1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=513: ixxxxx#24 nsp=1 mass=-400 + 2.828427124746190e+01, 0.000000000000000e+00, // itest=513: ixxxxx#24 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=513: ixxxxx#24 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=514: vxxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=514: vxxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=514: vxxxxx#24 nsp=1 mass=400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=514: vxxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=514: vxxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=514: vxxxxx#24 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=515: vxxxxx#24 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=515: vxxxxx#24 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=515: vxxxxx#24 nsp=1 mass=-400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=515: vxxxxx#24 nsp=1 mass=-400 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=515: vxxxxx#24 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=515: vxxxxx#24 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=516: sxxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=516: sxxxxx#24 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=516: sxxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=516: sxxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=516: sxxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=516: sxxxxx#24 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=517: sxxxxx#24 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=517: sxxxxx#24 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=517: sxxxxx#24 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=517: sxxxxx#24 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=517: sxxxxx#24 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=517: sxxxxx#24 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=518: oxxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=518: oxxxxx#24 nsp=1 mass=400 + 2.828427124746190e+01, 0.000000000000000e+00, // itest=518: oxxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=518: oxxxxx#24 nsp=1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=518: oxxxxx#24 nsp=1 mass=400 + 0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=518: oxxxxx#24 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=519: oxxxxx#24 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=519: oxxxxx#24 nsp=1 mass=-400 + 2.828427124746190e+01, 0.000000000000000e+00, // itest=519: oxxxxx#24 nsp=1 mass=-400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=519: oxxxxx#24 nsp=1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=519: oxxxxx#24 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=519: oxxxxx#24 nsp=1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=520: ixxxxx#25 nsp=1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=520: ixxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=520: ixxxxx#25 nsp=1 mass=400 + -1.414213562373095e+01, 0.000000000000000e+00, // itest=520: ixxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=520: ixxxxx#25 nsp=1 mass=400 + -2.828427124746190e+01, 0.000000000000000e+00 } ); // itest=520: ixxxxx#25 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 3.000000000000000e+02, // itest=521: ixxxxx#25 nsp=1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=521: ixxxxx#25 nsp=1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=521: ixxxxx#25 nsp=1 mass=-400 + 1.414213562373095e+01, -0.000000000000000e+00, // itest=521: ixxxxx#25 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=521: ixxxxx#25 nsp=1 mass=-400 + -2.828427124746190e+01, 0.000000000000000e+00 } ); // itest=521: ixxxxx#25 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=522: vxxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=522: vxxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=522: vxxxxx#25 nsp=1 mass=400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=522: vxxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=522: vxxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=522: vxxxxx#25 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=523: vxxxxx#25 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=523: vxxxxx#25 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=523: vxxxxx#25 nsp=1 mass=-400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=523: vxxxxx#25 nsp=1 mass=-400 + 0.000000000000000e+00, -7.071067811865476e-01, // itest=523: vxxxxx#25 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=523: vxxxxx#25 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=524: sxxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=524: sxxxxx#25 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=524: sxxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=524: sxxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=524: sxxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=524: sxxxxx#25 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=525: sxxxxx#25 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=525: sxxxxx#25 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=525: sxxxxx#25 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=525: sxxxxx#25 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=525: sxxxxx#25 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=525: sxxxxx#25 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=526: oxxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=526: oxxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=526: oxxxxx#25 nsp=1 mass=400 + -2.828427124746190e+01, 0.000000000000000e+00, // itest=526: oxxxxx#25 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=526: oxxxxx#25 nsp=1 mass=400 + -1.414213562373095e+01, 0.000000000000000e+00 } ); // itest=526: oxxxxx#25 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -3.000000000000000e+02, // itest=527: oxxxxx#25 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=527: oxxxxx#25 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=527: oxxxxx#25 nsp=1 mass=-400 + -2.828427124746190e+01, 0.000000000000000e+00, // itest=527: oxxxxx#25 nsp=1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=527: oxxxxx#25 nsp=1 mass=-400 + 1.414213562373095e+01, -0.000000000000000e+00 } ); // itest=527: oxxxxx#25 nsp=1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=528: ixxxxx#26 nsp=1 mass=400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=528: ixxxxx#26 nsp=1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=528: ixxxxx#26 nsp=1 mass=400 + 5.999999999999999e+00, 7.999999999999999e+00, // itest=528: ixxxxx#26 nsp=1 mass=400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=528: ixxxxx#26 nsp=1 mass=400 + 1.200000000000000e+01, 1.600000000000000e+01 } ); // itest=528: ixxxxx#26 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=529: ixxxxx#26 nsp=1 mass=-400 + -1.800000000000000e+02, -2.400000000000000e+02, // itest=529: ixxxxx#26 nsp=1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00, // itest=529: ixxxxx#26 nsp=1 mass=-400 + -5.999999999999999e+00, -7.999999999999999e+00, // itest=529: ixxxxx#26 nsp=1 mass=-400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=529: ixxxxx#26 nsp=1 mass=-400 + 1.200000000000000e+01, 1.600000000000000e+01 } ); // itest=529: ixxxxx#26 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=530: vxxxxx#26 nsp=1 mass=400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=530: vxxxxx#26 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=530: vxxxxx#26 nsp=1 mass=400 + 0.000000000000000e+00, -5.656854249492381e-01, // itest=530: vxxxxx#26 nsp=1 mass=400 + 0.000000000000000e+00, 4.242640687119285e-01, // itest=530: vxxxxx#26 nsp=1 mass=400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=530: vxxxxx#26 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=531: vxxxxx#26 nsp=1 mass=-400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=531: vxxxxx#26 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=531: vxxxxx#26 nsp=1 mass=-400 + -0.000000000000000e+00, -5.656854249492381e-01, // itest=531: vxxxxx#26 nsp=1 mass=-400 + -0.000000000000000e+00, 4.242640687119285e-01, // itest=531: vxxxxx#26 nsp=1 mass=-400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=531: vxxxxx#26 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=532: sxxxxx#26 nsp=1 mass=400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=532: sxxxxx#26 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=532: sxxxxx#26 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=532: sxxxxx#26 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=532: sxxxxx#26 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=532: sxxxxx#26 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=533: sxxxxx#26 nsp=1 mass=-400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=533: sxxxxx#26 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=533: sxxxxx#26 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=533: sxxxxx#26 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=533: sxxxxx#26 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=533: sxxxxx#26 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=534: oxxxxx#26 nsp=1 mass=400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=534: oxxxxx#26 nsp=1 mass=400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=534: oxxxxx#26 nsp=1 mass=400 + 1.200000000000000e+01, -1.600000000000000e+01, // itest=534: oxxxxx#26 nsp=1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=534: oxxxxx#26 nsp=1 mass=400 + 5.999999999999999e+00, -7.999999999999999e+00 } ); // itest=534: oxxxxx#26 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=535: oxxxxx#26 nsp=1 mass=-400 + 1.800000000000000e+02, 2.400000000000000e+02, // itest=535: oxxxxx#26 nsp=1 mass=-400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=535: oxxxxx#26 nsp=1 mass=-400 + 1.200000000000000e+01, -1.600000000000000e+01, // itest=535: oxxxxx#26 nsp=1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00, // itest=535: oxxxxx#26 nsp=1 mass=-400 + -5.999999999999999e+00, 7.999999999999999e+00 } ); // itest=535: oxxxxx#26 nsp=1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=536: ixxxxx#27 nsp=1 mass=400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=536: ixxxxx#27 nsp=1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=536: ixxxxx#27 nsp=1 mass=400 + -7.999999999999999e+00, -5.999999999999999e+00, // itest=536: ixxxxx#27 nsp=1 mass=400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=536: ixxxxx#27 nsp=1 mass=400 + -1.600000000000000e+01, -1.200000000000000e+01 } ); // itest=536: ixxxxx#27 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=537: ixxxxx#27 nsp=1 mass=-400 + 2.400000000000000e+02, 1.800000000000000e+02, // itest=537: ixxxxx#27 nsp=1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00, // itest=537: ixxxxx#27 nsp=1 mass=-400 + 7.999999999999999e+00, 5.999999999999999e+00, // itest=537: ixxxxx#27 nsp=1 mass=-400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=537: ixxxxx#27 nsp=1 mass=-400 + -1.600000000000000e+01, -1.200000000000000e+01 } ); // itest=537: ixxxxx#27 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=538: vxxxxx#27 nsp=1 mass=400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=538: vxxxxx#27 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=538: vxxxxx#27 nsp=1 mass=400 + 0.000000000000000e+00, 4.242640687119285e-01, // itest=538: vxxxxx#27 nsp=1 mass=400 + 0.000000000000000e+00, -5.656854249492381e-01, // itest=538: vxxxxx#27 nsp=1 mass=400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=538: vxxxxx#27 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=539: vxxxxx#27 nsp=1 mass=-400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=539: vxxxxx#27 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=539: vxxxxx#27 nsp=1 mass=-400 + 0.000000000000000e+00, 4.242640687119285e-01, // itest=539: vxxxxx#27 nsp=1 mass=-400 + 0.000000000000000e+00, -5.656854249492381e-01, // itest=539: vxxxxx#27 nsp=1 mass=-400 + 7.071067811865476e-01, 0.000000000000000e+00 } ); // itest=539: vxxxxx#27 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=540: sxxxxx#27 nsp=1 mass=400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=540: sxxxxx#27 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=540: sxxxxx#27 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=540: sxxxxx#27 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=540: sxxxxx#27 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=540: sxxxxx#27 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=541: sxxxxx#27 nsp=1 mass=-400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=541: sxxxxx#27 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=541: sxxxxx#27 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=541: sxxxxx#27 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=541: sxxxxx#27 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=541: sxxxxx#27 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=542: oxxxxx#27 nsp=1 mass=400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=542: oxxxxx#27 nsp=1 mass=400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=542: oxxxxx#27 nsp=1 mass=400 + -1.600000000000000e+01, 1.200000000000000e+01, // itest=542: oxxxxx#27 nsp=1 mass=400 + 1.000000000000000e+01, 0.000000000000000e+00, // itest=542: oxxxxx#27 nsp=1 mass=400 + -7.999999999999999e+00, 5.999999999999999e+00 } ); // itest=542: oxxxxx#27 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=543: oxxxxx#27 nsp=1 mass=-400 + -2.400000000000000e+02, -1.800000000000000e+02, // itest=543: oxxxxx#27 nsp=1 mass=-400 + 2.000000000000000e+01, 0.000000000000000e+00, // itest=543: oxxxxx#27 nsp=1 mass=-400 + -1.600000000000000e+01, 1.200000000000000e+01, // itest=543: oxxxxx#27 nsp=1 mass=-400 + -1.000000000000000e+01, -0.000000000000000e+00, // itest=543: oxxxxx#27 nsp=1 mass=-400 + 7.999999999999999e+00, -5.999999999999999e+00 } ); // itest=543: oxxxxx#27 nsp=1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=544: ixxxxx#28 nsp=1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=544: ixxxxx#28 nsp=1 mass=400 + 1.216552506059644e+01, 0.000000000000000e+00, // itest=544: ixxxxx#28 nsp=1 mass=400 + 4.931969619160719e+00, 5.260767593771432e+00, // itest=544: ixxxxx#28 nsp=1 mass=400 + 2.433105012119288e+01, 0.000000000000000e+00, // itest=544: ixxxxx#28 nsp=1 mass=400 + 9.863939238321439e+00, 1.052153518754287e+01 } ); // itest=544: ixxxxx#28 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -1.440000000000000e+02, // itest=545: ixxxxx#28 nsp=1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=545: ixxxxx#28 nsp=1 mass=-400 + -1.216552506059644e+01, -0.000000000000000e+00, // itest=545: ixxxxx#28 nsp=1 mass=-400 + -4.931969619160719e+00, -5.260767593771432e+00, // itest=545: ixxxxx#28 nsp=1 mass=-400 + 2.433105012119288e+01, 0.000000000000000e+00, // itest=545: ixxxxx#28 nsp=1 mass=-400 + 9.863939238321439e+00, 1.052153518754287e+01 } ); // itest=545: ixxxxx#28 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=546: vxxxxx#28 nsp=1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=546: vxxxxx#28 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=546: vxxxxx#28 nsp=1 mass=400 + -2.321373168788980e-01, -5.158607041753289e-01, // itest=546: vxxxxx#28 nsp=1 mass=400 + -2.476131380041579e-01, 4.836194101643708e-01, // itest=546: vxxxxx#28 nsp=1 mass=400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=546: vxxxxx#28 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=547: vxxxxx#28 nsp=1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=547: vxxxxx#28 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=547: vxxxxx#28 nsp=1 mass=-400 + -2.321373168788980e-01, -5.158607041753289e-01, // itest=547: vxxxxx#28 nsp=1 mass=-400 + -2.476131380041579e-01, 4.836194101643708e-01, // itest=547: vxxxxx#28 nsp=1 mass=-400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=547: vxxxxx#28 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=548: sxxxxx#28 nsp=1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=548: sxxxxx#28 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=548: sxxxxx#28 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=548: sxxxxx#28 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=548: sxxxxx#28 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=548: sxxxxx#28 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=549: sxxxxx#28 nsp=1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=549: sxxxxx#28 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=549: sxxxxx#28 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=549: sxxxxx#28 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=549: sxxxxx#28 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=549: sxxxxx#28 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=550: oxxxxx#28 nsp=1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=550: oxxxxx#28 nsp=1 mass=400 + 2.433105012119288e+01, 0.000000000000000e+00, // itest=550: oxxxxx#28 nsp=1 mass=400 + 9.863939238321439e+00, -1.052153518754287e+01, // itest=550: oxxxxx#28 nsp=1 mass=400 + 1.216552506059644e+01, 0.000000000000000e+00, // itest=550: oxxxxx#28 nsp=1 mass=400 + 4.931969619160719e+00, -5.260767593771432e+00 } ); // itest=550: oxxxxx#28 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 1.440000000000000e+02, // itest=551: oxxxxx#28 nsp=1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=551: oxxxxx#28 nsp=1 mass=-400 + 2.433105012119288e+01, 0.000000000000000e+00, // itest=551: oxxxxx#28 nsp=1 mass=-400 + 9.863939238321439e+00, -1.052153518754287e+01, // itest=551: oxxxxx#28 nsp=1 mass=-400 + -1.216552506059644e+01, -0.000000000000000e+00, // itest=551: oxxxxx#28 nsp=1 mass=-400 + -4.931969619160719e+00, 5.260767593771432e+00 } ); // itest=551: oxxxxx#28 nsp=1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=552: ixxxxx#29 nsp=1 mass=400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=552: ixxxxx#29 nsp=1 mass=400 + 7.211102550927978e+00, 0.000000000000000e+00, // itest=552: ixxxxx#29 nsp=1 mass=400 + 8.320502943378436e+00, 8.875203139603666e+00, // itest=552: ixxxxx#29 nsp=1 mass=400 + 1.442220510185596e+01, 0.000000000000000e+00, // itest=552: ixxxxx#29 nsp=1 mass=400 + 1.664100588675688e+01, 1.775040627920733e+01 } ); // itest=552: ixxxxx#29 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, 1.440000000000000e+02, // itest=553: ixxxxx#29 nsp=1 mass=-400 + -1.800000000000000e+02, -1.920000000000000e+02, // itest=553: ixxxxx#29 nsp=1 mass=-400 + -7.211102550927978e+00, -0.000000000000000e+00, // itest=553: ixxxxx#29 nsp=1 mass=-400 + -8.320502943378436e+00, -8.875203139603666e+00, // itest=553: ixxxxx#29 nsp=1 mass=-400 + 1.442220510185596e+01, 0.000000000000000e+00, // itest=553: ixxxxx#29 nsp=1 mass=-400 + 1.664100588675688e+01, 1.775040627920733e+01 } ); // itest=553: ixxxxx#29 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=554: vxxxxx#29 nsp=1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=554: vxxxxx#29 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=554: vxxxxx#29 nsp=1 mass=400 + 2.321373168788980e-01, -5.158607041753289e-01, // itest=554: vxxxxx#29 nsp=1 mass=400 + 2.476131380041579e-01, 4.836194101643708e-01, // itest=554: vxxxxx#29 nsp=1 mass=400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=554: vxxxxx#29 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=555: vxxxxx#29 nsp=1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=555: vxxxxx#29 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=555: vxxxxx#29 nsp=1 mass=-400 + 2.321373168788980e-01, -5.158607041753289e-01, // itest=555: vxxxxx#29 nsp=1 mass=-400 + 2.476131380041579e-01, 4.836194101643708e-01, // itest=555: vxxxxx#29 nsp=1 mass=-400 + 6.203224967708328e-01, 0.000000000000000e+00 } ); // itest=555: vxxxxx#29 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=556: sxxxxx#29 nsp=1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=556: sxxxxx#29 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=556: sxxxxx#29 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=556: sxxxxx#29 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=556: sxxxxx#29 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=556: sxxxxx#29 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=557: sxxxxx#29 nsp=1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=557: sxxxxx#29 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=557: sxxxxx#29 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=557: sxxxxx#29 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=557: sxxxxx#29 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=557: sxxxxx#29 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=558: oxxxxx#29 nsp=1 mass=400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=558: oxxxxx#29 nsp=1 mass=400 + 1.442220510185596e+01, 0.000000000000000e+00, // itest=558: oxxxxx#29 nsp=1 mass=400 + 1.664100588675688e+01, -1.775040627920733e+01, // itest=558: oxxxxx#29 nsp=1 mass=400 + 7.211102550927978e+00, 0.000000000000000e+00, // itest=558: oxxxxx#29 nsp=1 mass=400 + 8.320502943378436e+00, -8.875203139603666e+00 } ); // itest=558: oxxxxx#29 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, -1.440000000000000e+02, // itest=559: oxxxxx#29 nsp=1 mass=-400 + 1.800000000000000e+02, 1.920000000000000e+02, // itest=559: oxxxxx#29 nsp=1 mass=-400 + 1.442220510185596e+01, 0.000000000000000e+00, // itest=559: oxxxxx#29 nsp=1 mass=-400 + 1.664100588675688e+01, -1.775040627920733e+01, // itest=559: oxxxxx#29 nsp=1 mass=-400 + -7.211102550927978e+00, -0.000000000000000e+00, // itest=559: oxxxxx#29 nsp=1 mass=-400 + -8.320502943378436e+00, 8.875203139603666e+00 } ); // itest=559: oxxxxx#29 nsp=1 mass=-400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=560: ixxxxx#30 nsp=1 mass=500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=560: ixxxxx#30 nsp=1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=560: ixxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=560: ixxxxx#30 nsp=1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=560: ixxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=560: ixxxxx#30 nsp=1 mass=500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -0.000000000000000e+00, // itest=561: ixxxxx#30 nsp=1 mass=-500 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=561: ixxxxx#30 nsp=1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=561: ixxxxx#30 nsp=1 mass=-500 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=561: ixxxxx#30 nsp=1 mass=-500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=561: ixxxxx#30 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=561: ixxxxx#30 nsp=1 mass=-500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=562: vxxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=562: vxxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=562: vxxxxx#30 nsp=1 mass=500 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=562: vxxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=562: vxxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=562: vxxxxx#30 nsp=1 mass=500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=563: vxxxxx#30 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=563: vxxxxx#30 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=563: vxxxxx#30 nsp=1 mass=-500 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=563: vxxxxx#30 nsp=1 mass=-500 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=563: vxxxxx#30 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=563: vxxxxx#30 nsp=1 mass=-500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=564: sxxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=564: sxxxxx#30 nsp=1 mass=500 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=564: sxxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=564: sxxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=564: sxxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=564: sxxxxx#30 nsp=1 mass=500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=565: sxxxxx#30 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=565: sxxxxx#30 nsp=1 mass=-500 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=565: sxxxxx#30 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=565: sxxxxx#30 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=565: sxxxxx#30 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=565: sxxxxx#30 nsp=1 mass=-500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=566: oxxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=566: oxxxxx#30 nsp=1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=566: oxxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=566: oxxxxx#30 nsp=1 mass=500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=566: oxxxxx#30 nsp=1 mass=500 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=566: oxxxxx#30 nsp=1 mass=500 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 0.000000000000000e+00, // itest=567: oxxxxx#30 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=567: oxxxxx#30 nsp=1 mass=-500 + 2.236067977499790e+01, 0.000000000000000e+00, // itest=567: oxxxxx#30 nsp=1 mass=-500 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=567: oxxxxx#30 nsp=1 mass=-500 + -2.236067977499790e+01, 0.000000000000000e+00, // itest=567: oxxxxx#30 nsp=1 mass=-500 + -0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=567: oxxxxx#30 nsp=1 mass=-500 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=568: ixxxxx#31 nsp=1 mass=400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=568: ixxxxx#31 nsp=1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=568: ixxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=568: ixxxxx#31 nsp=1 mass=400 + 2.828427124746190e+01, 0.000000000000000e+00, // itest=568: ixxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=568: ixxxxx#31 nsp=1 mass=400 + expwfs.push_back( { // --------- + -5.000000000000000e+02, -3.000000000000000e+02, // itest=569: ixxxxx#31 nsp=1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=569: ixxxxx#31 nsp=1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=569: ixxxxx#31 nsp=1 mass=-400 + -0.000000000000000e+00, -0.000000000000000e+00, // itest=569: ixxxxx#31 nsp=1 mass=-400 + 2.828427124746190e+01, 0.000000000000000e+00, // itest=569: ixxxxx#31 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=569: ixxxxx#31 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=570: vxxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=570: vxxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=570: vxxxxx#31 nsp=1 mass=400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=570: vxxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=570: vxxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=570: vxxxxx#31 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=571: vxxxxx#31 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=571: vxxxxx#31 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00, // itest=571: vxxxxx#31 nsp=1 mass=-400 + -7.071067811865476e-01, 0.000000000000000e+00, // itest=571: vxxxxx#31 nsp=1 mass=-400 + 0.000000000000000e+00, 7.071067811865476e-01, // itest=571: vxxxxx#31 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=571: vxxxxx#31 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=572: sxxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=572: sxxxxx#31 nsp=1 mass=400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=572: sxxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=572: sxxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=572: sxxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=572: sxxxxx#31 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=573: sxxxxx#31 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=573: sxxxxx#31 nsp=1 mass=-400 + 1.000000000000000e+00, 0.000000000000000e+00, // itest=573: sxxxxx#31 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=573: sxxxxx#31 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=573: sxxxxx#31 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=573: sxxxxx#31 nsp=1 mass=-400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=574: oxxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=574: oxxxxx#31 nsp=1 mass=400 + 2.828427124746190e+01, 0.000000000000000e+00, // itest=574: oxxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=574: oxxxxx#31 nsp=1 mass=400 + 1.414213562373095e+01, 0.000000000000000e+00, // itest=574: oxxxxx#31 nsp=1 mass=400 + 0.000000000000000e+00, -0.000000000000000e+00 } ); // itest=574: oxxxxx#31 nsp=1 mass=400 + expwfs.push_back( { // --------- + 5.000000000000000e+02, 3.000000000000000e+02, // itest=575: oxxxxx#31 nsp=1 mass=-400 + 0.000000000000000e+00, 0.000000000000000e+00, // itest=575: oxxxxx#31 nsp=1 mass=-400 + 2.828427124746190e+01, 0.000000000000000e+00, // itest=575: oxxxxx#31 nsp=1 mass=-400 + 0.000000000000000e+00, -0.000000000000000e+00, // itest=575: oxxxxx#31 nsp=1 mass=-400 + -1.414213562373095e+01, -0.000000000000000e+00, // itest=575: oxxxxx#31 nsp=1 mass=-400 + -0.000000000000000e+00, 0.000000000000000e+00 } ); // itest=575: oxxxxx#31 nsp=1 mass=-400 diff --git a/epochX/cudacpp/heft_gg_h.sa/src/HelAmps_heft.h b/epochX/cudacpp/heft_gg_h.sa/src/HelAmps_heft.h index 5e79643e1c..46b9942456 100644 --- a/epochX/cudacpp/heft_gg_h.sa/src/HelAmps_heft.h +++ b/epochX/cudacpp/heft_gg_h.sa/src/HelAmps_heft.h @@ -1,3 +1,4 @@ +// Copyright (C) 2010 The ALOHA Development team and Contributors. // Copyright (C) 2010 The MadGraph5_aMC@NLO development team and contributors. // Created by: J. Alwall (Sep 2010) for the MG5aMC backend. //========================================================================== @@ -21,6 +22,7 @@ #include "Parameters_heft.h" +#include //#include //#include //#include @@ -190,6 +192,9 @@ namespace mg5amcCpu const int ipar ) // input: particle# out of npar { mgDebug( 0, __FUNCTION__ ); + // NEW IMPLEMENTATION FIXING FLOATING POINT EXCEPTIONS IN SIMD CODE (#701) + // Variables xxxDENOM are a hack to avoid division-by-0 FPE while preserving speed (#701 and #727) + // Variables xxxDENOM are declared as 'volatile' to make sure they are not optimized away on clang! (#724) const fptype_sv& pvec0 = M_ACCESS::kernelAccessIp4IparConst( momenta, 0, ipar ); const fptype_sv& pvec1 = M_ACCESS::kernelAccessIp4IparConst( momenta, 1, ipar ); const fptype_sv& pvec2 = M_ACCESS::kernelAccessIp4IparConst( momenta, 2, ipar ); @@ -201,6 +206,11 @@ namespace mg5amcCpu if( fmass != 0. ) { const fptype_sv pp = fpmin( pvec0, fpsqrt( pvec1 * pvec1 + pvec2 * pvec2 + pvec3 * pvec3 ) ); + // In C++ ixxxxx, use a single ip/im numbering that is valid both for pp==0 and pp>0, which have two numbering schemes in Fortran ixxxxx: + // for pp==0, Fortran sqm(0:1) has indexes 0,1 as in C++; but for Fortran pp>0, omega(2) has indexes 1,2 and not 0,1 + // NB: this is only possible in ixxxx, but in oxxxxx two different numbering schemes must be used + const int ip = ( 1 + nh ) / 2; // NB: same as in Fortran pp==0, differs from Fortran pp>0, which is (3+nh)/2 because omega(2) has indexes 1,2 + const int im = ( 1 - nh ) / 2; // NB: same as in Fortran pp==0, differs from Fortran pp>0, which is (3-nh)/2 because omega(2) has indexes 1,2 #ifndef MGONGPU_CPPSIMD if( pp == 0. ) { @@ -208,8 +218,6 @@ namespace mg5amcCpu fptype sqm[2] = { fpsqrt( std::abs( fmass ) ), 0. }; // possibility of negative fermion masses //sqm[1] = ( fmass < 0. ? -abs( sqm[0] ) : abs( sqm[0] ) ); // AV: why abs here? sqm[1] = ( fmass < 0. ? -sqm[0] : sqm[0] ); // AV: removed an abs here - const int ip = ( 1 + nh ) / 2; // NB: Fortran sqm(0:1) also has indexes 0,1 as in C++ - const int im = ( 1 - nh ) / 2; // NB: Fortran sqm(0:1) also has indexes 0,1 as in C++ fi[2] = cxmake( ip * sqm[ip], 0 ); fi[3] = cxmake( im * nsf * sqm[ip], 0 ); fi[4] = cxmake( ip * nsf * sqm[im], 0 ); @@ -221,8 +229,6 @@ namespace mg5amcCpu fptype( 1 + nsf - ( 1 - nsf ) * nh ) * (fptype)0.5 }; fptype omega[2] = { fpsqrt( pvec0 + pp ), 0. }; omega[1] = fmass / omega[0]; - const int ip = ( 1 + nh ) / 2; // NB: Fortran is (3+nh)/2 because omega(2) has indexes 1,2 and not 0,1 - const int im = ( 1 - nh ) / 2; // NB: Fortran is (3-nh)/2 because omega(2) has indexes 1,2 and not 0,1 const fptype sfomega[2] = { sf[0] * omega[ip], sf[1] * omega[im] }; const fptype pp3 = fpmax( pp + pvec3, 0. ); const cxtype chi[2] = { cxmake( fpsqrt( pp3 * (fptype)0.5 / pp ), 0. ), @@ -233,8 +239,6 @@ namespace mg5amcCpu fi[5] = sfomega[1] * chi[ip]; } #else - const int ip = ( 1 + nh ) / 2; - const int im = ( 1 - nh ) / 2; // Branch A: pp == 0. // NB: Do not use "abs" for floats! It returns an integer with no build warning! Use std::abs! fptype sqm[2] = { fpsqrt( std::abs( fmass ) ), 0 }; // possibility of negative fermion masses (NB: SCALAR!) @@ -250,10 +254,12 @@ namespace mg5amcCpu omega[1] = fmass / omega[0]; const fptype_v sfomega[2] = { sf[0] * omega[ip], sf[1] * omega[im] }; const fptype_v pp3 = fpmax( pp + pvec3, 0 ); - const cxtype_v chi[2] = { cxmake( fpsqrt( pp3 * 0.5 / pp ), 0 ), + volatile fptype_v ppDENOM = fpternary( pp != 0, pp, 1. ); // hack: ppDENOM[ieppV]=1 if pp[ieppV]==0 + volatile fptype_v pp3DENOM = fpternary( pp3 != 0, pp3, 1. ); // hack: pp3DENOM[ieppV]=1 if pp3[ieppV]==0 + const cxtype_v chi[2] = { cxmake( fpsqrt( pp3 * 0.5 / ppDENOM ), 0 ), // hack: dummy[ieppV] is not used if pp[ieppV]==0 cxternary( ( pp3 == 0. ), cxmake( -nh, 0 ), - cxmake( (fptype)nh * pvec1, pvec2 ) / fpsqrt( 2. * pp * pp3 ) ) }; + cxmake( (fptype)nh * pvec1, pvec2 ) / fpsqrt( 2. * ppDENOM * pp3DENOM ) ) }; // hack: dummy[ieppV] is not used if pp[ieppV]==0 const cxtype_v fiB_2 = sfomega[0] * chi[im]; const cxtype_v fiB_3 = sfomega[0] * chi[ip]; const cxtype_v fiB_4 = sfomega[1] * chi[im]; @@ -271,7 +277,16 @@ namespace mg5amcCpu const fptype_sv sqp0p3 = fpternary( ( pvec1 == 0. and pvec2 == 0. and pvec3 < 0. ), fptype_sv{ 0 }, fpsqrt( fpmax( pvec0 + pvec3, 0. ) ) * (fptype)nsf ); - const cxtype_sv chi[2] = { cxmake( sqp0p3, 0. ), cxternary( ( sqp0p3 == 0. ), cxmake( -(fptype)nhel * fpsqrt( 2. * pvec0 ), 0. ), cxmake( (fptype)nh * pvec1, pvec2 ) / sqp0p3 ) }; +#ifdef MGONGPU_CPPSIMD + volatile fptype_v sqp0p3DENOM = fpternary( sqp0p3 != 0, sqp0p3, 1. ); // hack: dummy sqp0p3DENOM[ieppV]=1 if sqp0p3[ieppV]==0 + cxtype_sv chi[2] = { cxmake( sqp0p3, 0. ), + cxternary( sqp0p3 == 0, + cxmake( -(fptype)nhel * fpsqrt( 2. * pvec0 ), 0. ), + cxmake( (fptype)nh * pvec1, pvec2 ) / (const fptype_v)sqp0p3DENOM ) }; // hack: dummy[ieppV] is not used if sqp0p3[ieppV]==0 +#else + const cxtype_sv chi[2] = { cxmake( sqp0p3, 0. ), + ( sqp0p3 == 0. ? cxmake( -(fptype)nhel * fpsqrt( 2. * pvec0 ), 0. ) : cxmake( (fptype)nh * pvec1, pvec2 ) / sqp0p3 ) }; +#endif if( nh == 1 ) { fi[2] = cxzero_sv(); @@ -422,6 +437,9 @@ namespace mg5amcCpu const int ipar ) // input: particle# out of npar { mgDebug( 0, __FUNCTION__ ); + // NEW IMPLEMENTATION FIXING FLOATING POINT EXCEPTIONS IN SIMD CODE (#701) + // Variables xxxDENOM are a hack to avoid division-by-0 FPE while preserving speed (#701 and #727) + // Variables xxxDENOM are declared as 'volatile' to make sure they are not optimized away on clang! (#724) const fptype_sv& pvec0 = M_ACCESS::kernelAccessIp4IparConst( momenta, 0, ipar ); const fptype_sv& pvec1 = M_ACCESS::kernelAccessIp4IparConst( momenta, 1, ipar ); const fptype_sv& pvec2 = M_ACCESS::kernelAccessIp4IparConst( momenta, 2, ipar ); @@ -472,13 +490,15 @@ namespace mg5amcCpu const cxtype vcA_4 = cxmake( 0, nsvahl * sqh ); const cxtype vcA_5 = cxmake( hel0, 0 ); // Branch B: pp != 0. - const fptype_v emp = pvec0 / ( vmass * pp ); + volatile fptype_v ppDENOM = fpternary( pp != 0, pp, 1. ); // hack: ppDENOM[ieppV]=1 if pp[ieppV]==0 + const fptype_v emp = pvec0 / ( vmass * ppDENOM ); // hack: dummy[ieppV] is not used if pp[ieppV]==0 const cxtype_v vcB_2 = cxmake( hel0 * pp / vmass, 0 ); - const cxtype_v vcB_5 = cxmake( hel0 * pvec3 * emp + hel * pt / pp * sqh, 0 ); + const cxtype_v vcB_5 = cxmake( hel0 * pvec3 * emp + hel * pt / ppDENOM * sqh, 0 ); // hack: dummy[ieppV] is not used if pp[ieppV]==0 // Branch B1: pp != 0. and pt != 0. - const fptype_v pzpt = pvec3 / ( pp * pt ) * sqh * hel; - const cxtype_v vcB1_3 = cxmake( hel0 * pvec1 * emp - pvec1 * pzpt, -(fptype)nsvahl * pvec2 / pt * sqh ); - const cxtype_v vcB1_4 = cxmake( hel0 * pvec2 * emp - pvec2 * pzpt, (fptype)nsvahl * pvec1 / pt * sqh ); + volatile fptype_v ptDENOM = fpternary( pt != 0, pt, 1. ); // hack: ptDENOM[ieppV]=1 if pt[ieppV]==0 + const fptype_v pzpt = pvec3 / ( ppDENOM * ptDENOM ) * sqh * hel; // hack: dummy[ieppV] is not used if pp[ieppV]==0 + const cxtype_v vcB1_3 = cxmake( hel0 * pvec1 * emp - pvec1 * pzpt, -(fptype)nsvahl * pvec2 / ptDENOM * sqh ); // hack: dummy[ieppV] is not used if pt[ieppV]==0 + const cxtype_v vcB1_4 = cxmake( hel0 * pvec2 * emp - pvec2 * pzpt, (fptype)nsvahl * pvec1 / ptDENOM * sqh ); // hack: dummy[ieppV] is not used if pt[ieppV]==0 // Branch B2: pp != 0. and pt == 0. const cxtype vcB2_3 = cxmake( -hel * sqh, 0. ); const cxtype_v vcB2_4 = cxmake( 0., (fptype)nsvahl * fpternary( ( pvec3 < 0 ), -sqh, sqh ) ); // AV: removed an abs here @@ -513,9 +533,10 @@ namespace mg5amcCpu } #else // Branch A: pt != 0. - const fptype_v pzpt = pvec3 / ( pp * pt ) * sqh * hel; - const cxtype_v vcA_3 = cxmake( -pvec1 * pzpt, -(fptype)nsv * pvec2 / pt * sqh ); - const cxtype_v vcA_4 = cxmake( -pvec2 * pzpt, (fptype)nsv * pvec1 / pt * sqh ); + volatile fptype_v ptDENOM = fpternary( pt != 0, pt, 1. ); // hack: ptDENOM[ieppV]=1 if pt[ieppV]==0 + const fptype_v pzpt = pvec3 / ( pp * ptDENOM ) * sqh * hel; // hack: dummy[ieppV] is not used if pt[ieppV]==0 + const cxtype_v vcA_3 = cxmake( -pvec1 * pzpt, -(fptype)nsv * pvec2 / ptDENOM * sqh ); // hack: dummy[ieppV] is not used if pt[ieppV]==0 + const cxtype_v vcA_4 = cxmake( -pvec2 * pzpt, (fptype)nsv * pvec1 / ptDENOM * sqh ); // hack: dummy[ieppV] is not used if pt[ieppV]==0 // Branch B: pt == 0. const cxtype vcB_3 = cxmake( -(fptype)hel * sqh, 0 ); const cxtype_v vcB_4 = cxmake( 0, (fptype)nsv * fpternary( ( pvec3 < 0 ), -sqh, sqh ) ); // AV: removed an abs here @@ -567,6 +588,9 @@ namespace mg5amcCpu const int ipar ) // input: particle# out of npar { mgDebug( 0, __FUNCTION__ ); + // NEW IMPLEMENTATION FIXING FLOATING POINT EXCEPTIONS IN SIMD CODE (#701) + // Variables xxxDENOM are a hack to avoid division-by-0 FPE while preserving speed (#701 and #727) + // Variables xxxDENOM are declared as 'volatile' to make sure they are not optimized away on clang! (#724) const fptype_sv& pvec0 = M_ACCESS::kernelAccessIp4IparConst( momenta, 0, ipar ); const fptype_sv& pvec1 = M_ACCESS::kernelAccessIp4IparConst( momenta, 1, ipar ); const fptype_sv& pvec2 = M_ACCESS::kernelAccessIp4IparConst( momenta, 2, ipar ); @@ -630,10 +654,12 @@ namespace mg5amcCpu const int imB = ( 1 - nh ) / 2; const fptype_v sfomeg[2] = { sf[0] * omega[ipB], sf[1] * omega[imB] }; const fptype_v pp3 = fpmax( pp + pvec3, 0. ); - const cxtype_v chi[2] = { cxmake( fpsqrt( pp3 * 0.5 / pp ), 0. ), + volatile fptype_v ppDENOM = fpternary( pp != 0, pp, 1. ); // hack: ppDENOM[ieppV]=1 if pp[ieppV]==0 + volatile fptype_v pp3DENOM = fpternary( pp3 != 0, pp3, 1. ); // hack: pp3DENOM[ieppV]=1 if pp3[ieppV]==0 + const cxtype_v chi[2] = { cxmake( fpsqrt( pp3 * 0.5 / ppDENOM ), 0. ), // hack: dummy[ieppV] is not used if pp[ieppV]==0 ( cxternary( ( pp3 == 0. ), cxmake( -nh, 0. ), - cxmake( (fptype)nh * pvec1, -pvec2 ) / fpsqrt( 2. * pp * pp3 ) ) ) }; + cxmake( (fptype)nh * pvec1, -pvec2 ) / fpsqrt( 2. * ppDENOM * pp3DENOM ) ) ) }; // hack: dummy[ieppV] is not used if pp[ieppV]==0 const cxtype_v foB_2 = sfomeg[1] * chi[imB]; const cxtype_v foB_3 = sfomeg[1] * chi[ipB]; const cxtype_v foB_4 = sfomeg[0] * chi[imB]; @@ -651,10 +677,16 @@ namespace mg5amcCpu const fptype_sv sqp0p3 = fpternary( ( pvec1 == 0. ) and ( pvec2 == 0. ) and ( pvec3 < 0. ), 0, fpsqrt( fpmax( pvec0 + pvec3, 0. ) ) * (fptype)nsf ); +#ifdef MGONGPU_CPPSIMD + volatile fptype_v sqp0p3DENOM = fpternary( sqp0p3 != 0, sqp0p3, 1. ); // hack: sqp0p3DENOM[ieppV]=1 if sqp0p3[ieppV]==0 + const cxtype_v chi[2] = { cxmake( sqp0p3, 0. ), + cxternary( ( sqp0p3 == 0. ), + cxmake( -nhel, 0. ) * fpsqrt( 2. * pvec0 ), + cxmake( (fptype)nh * pvec1, -pvec2 ) / (const fptype_sv)sqp0p3DENOM ) }; // hack: dummy[ieppV] is not used if sqp0p3[ieppV]==0 +#else const cxtype_sv chi[2] = { cxmake( sqp0p3, 0. ), - cxternary( ( sqp0p3 == 0. ), - cxmake( -nhel, 0. ) * fpsqrt( 2. * pvec0 ), - cxmake( (fptype)nh * pvec1, -pvec2 ) / sqp0p3 ) }; + ( sqp0p3 == 0. ? cxmake( -nhel, 0. ) * fpsqrt( 2. * pvec0 ) : cxmake( (fptype)nh * pvec1, -pvec2 ) / sqp0p3 ) }; +#endif if( nh == 1 ) { fo[2] = chi[0]; diff --git a/epochX/cudacpp/heft_gg_h.sa/src/Parameters_heft.cc b/epochX/cudacpp/heft_gg_h.sa/src/Parameters_heft.cc index fcf1b455b9..dfdf69026a 100644 --- a/epochX/cudacpp/heft_gg_h.sa/src/Parameters_heft.cc +++ b/epochX/cudacpp/heft_gg_h.sa/src/Parameters_heft.cc @@ -17,6 +17,12 @@ #include #include +#ifdef __CUDACC__ +using namespace mg5amcGpu; +#else +using namespace mg5amcCpu; +#endif + #ifndef MGONGPU_HARDCODE_PARAM // Initialize static instance diff --git a/epochX/cudacpp/heft_gg_h.sa/src/Parameters_heft.h b/epochX/cudacpp/heft_gg_h.sa/src/Parameters_heft.h index 6d56738204..1d6891c05c 100644 --- a/epochX/cudacpp/heft_gg_h.sa/src/Parameters_heft.h +++ b/epochX/cudacpp/heft_gg_h.sa/src/Parameters_heft.h @@ -27,198 +27,223 @@ #include "read_slha.h" -class Parameters_heft +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { -public: + class Parameters_heft + { + public: + + static Parameters_heft* getInstance(); - static Parameters_heft* getInstance(); + // Define "zero" + double zero, ZERO; - // Define "zero" - double zero, ZERO; + // Model parameters independent of aS + //double aS; // now retrieved event-by-event (as G) from Fortran (running alphas #373) + double mdl_WH1, mdl_WH, mdl_WW, mdl_WZ, mdl_WT, mdl_ymtau, mdl_ymt, mdl_ymb, mdl_Gf, aEWM1, mdl_MP, mdl_MH, mdl_MZ, mdl_MTA, mdl_MT, mdl_MB, mdl_conjg__CKM3x3, mdl_MZ__exp__2, mdl_MZ__exp__4, mdl_sqrt__2, mdl_MH__exp__4, mdl_MT__exp__4, mdl_MH__exp__2, mdl_MT__exp__2, mdl_MH__exp__12, mdl_MH__exp__10, mdl_MH__exp__8, mdl_MH__exp__6, mdl_MT__exp__6, mdl_aEW, mdl_MW, mdl_sqrt__aEW, mdl_ee, mdl_MW__exp__2, mdl_sw2, mdl_cw, mdl_sqrt__sw2, mdl_sw, mdl_g1, mdl_gw, mdl_v, mdl_ee__exp__2, mdl_MW__exp__12, mdl_MW__exp__10, mdl_MW__exp__8, mdl_MW__exp__6, mdl_MW__exp__4, mdl_AH, mdl_v__exp__2, mdl_lam, mdl_yb, mdl_yt, mdl_ytau, mdl_muH, mdl_gw__exp__2, mdl_cw__exp__2, mdl_sw__exp__2; + cxsmpl mdl_complexi; - // Model parameters independent of aS - //double aS; // now retrieved event-by-event (as G) from Fortran (running alphas #373) - double mdl_WH1, mdl_WH, mdl_WW, mdl_WZ, mdl_WT, mdl_ymtau, mdl_ymt, mdl_ymb, mdl_Gf, aEWM1, mdl_MP, mdl_MH, mdl_MZ, mdl_MTA, mdl_MT, mdl_MB, mdl_conjg__CKM3x3, mdl_MZ__exp__2, mdl_MZ__exp__4, mdl_sqrt__2, mdl_MH__exp__4, mdl_MT__exp__4, mdl_MH__exp__2, mdl_MT__exp__2, mdl_MH__exp__12, mdl_MH__exp__10, mdl_MH__exp__8, mdl_MH__exp__6, mdl_MT__exp__6, mdl_aEW, mdl_MW, mdl_sqrt__aEW, mdl_ee, mdl_MW__exp__2, mdl_sw2, mdl_cw, mdl_sqrt__sw2, mdl_sw, mdl_g1, mdl_gw, mdl_v, mdl_ee__exp__2, mdl_MW__exp__12, mdl_MW__exp__10, mdl_MW__exp__8, mdl_MW__exp__6, mdl_MW__exp__4, mdl_AH, mdl_v__exp__2, mdl_lam, mdl_yb, mdl_yt, mdl_ytau, mdl_muH, mdl_gw__exp__2, mdl_cw__exp__2, mdl_sw__exp__2; - cxsmpl mdl_complexi; + // Model couplings independent of aS + // (none) - // Model couplings independent of aS - // (none) + // Model parameters dependent on aS + //double mdl_sqrt__aS, G, mdl_G__exp__2, mdl_GH, mdl_Gphi; // now computed event-by-event (running alphas #373) - // Model parameters dependent on aS - //double mdl_sqrt__aS, G, mdl_G__exp__2, mdl_GH, mdl_Gphi; // now computed event-by-event (running alphas #373) + // Model couplings dependent on aS + //cxsmpl GC_13; // now computed event-by-event (running alphas #373) - // Model couplings dependent on aS - //cxsmpl GC_13; // now computed event-by-event (running alphas #373) + // Set parameters that are unchanged during the run + void setIndependentParameters( SLHAReader& slha ); - // Set parameters that are unchanged during the run - void setIndependentParameters( SLHAReader& slha ); + // Set couplings that are unchanged during the run + void setIndependentCouplings(); - // Set couplings that are unchanged during the run - void setIndependentCouplings(); + // Set parameters that are changed event by event + //void setDependentParameters(); // now computed event-by-event (running alphas #373) - // Set parameters that are changed event by event - //void setDependentParameters(); // now computed event-by-event (running alphas #373) + // Set couplings that are changed event by event + //void setDependentCouplings(); // now computed event-by-event (running alphas #373) - // Set couplings that are changed event by event - //void setDependentCouplings(); // now computed event-by-event (running alphas #373) + // Print parameters that are unchanged during the run + void printIndependentParameters(); - // Print parameters that are unchanged during the run - void printIndependentParameters(); + // Print couplings that are unchanged during the run + void printIndependentCouplings(); - // Print couplings that are unchanged during the run - void printIndependentCouplings(); + // Print parameters that are changed event by event + //void printDependentParameters(); // now computed event-by-event (running alphas #373) - // Print parameters that are changed event by event - //void printDependentParameters(); // now computed event-by-event (running alphas #373) + // Print couplings that are changed event by event + //void printDependentCouplings(); // now computed event-by-event (running alphas #373) - // Print couplings that are changed event by event - //void printDependentCouplings(); // now computed event-by-event (running alphas #373) + private: -private: + static Parameters_heft* instance; + }; - static Parameters_heft* instance; -}; +} // end namespace mg5amcGpu/mg5amcCpu #else #include #include -// Hardcoded constexpr physics parameters -namespace Parameters_heft // keep the same name rather than HardcodedParameters_heft for simplicity +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { - // Constexpr implementation of sqrt (see https://stackoverflow.com/a/34134071) - double constexpr sqrtNewtonRaphson( double x, double curr, double prev ) - { - return curr == prev ? curr : sqrtNewtonRaphson( x, 0.5 * ( curr + x / curr ), curr ); - } - double constexpr constexpr_sqrt( double x ) + // Hardcoded constexpr physics parameters + namespace Parameters_heft // keep the same name rather than HardcodedParameters_heft for simplicity { - return x >= 0 // && x < std::numeric_limits::infinity() // avoid -Wtautological-constant-compare warning in fast math - ? sqrtNewtonRaphson( x, x, 0 ) - : std::numeric_limits::quiet_NaN(); - } + // Constexpr implementation of sqrt (see https://stackoverflow.com/a/34134071) + double constexpr sqrtNewtonRaphson( double x, double curr, double prev ) + { + return curr == prev ? curr : sqrtNewtonRaphson( x, 0.5 * ( curr + x / curr ), curr ); + } + double constexpr constexpr_sqrt( double x ) + { + return x >= 0 // && x < std::numeric_limits::infinity() // avoid -Wtautological-constant-compare warning in fast math + ? sqrtNewtonRaphson( x, x, 0 ) + : std::numeric_limits::quiet_NaN(); + } - // Constexpr implementation of floor (see https://stackoverflow.com/a/66146159) - constexpr int constexpr_floor( double d ) - { - const int i = static_cast( d ); - return d < i ? i - 1 : i; - } + // Constexpr implementation of floor (see https://stackoverflow.com/a/66146159) + constexpr int constexpr_floor( double d ) + { + const int i = static_cast( d ); + return d < i ? i - 1 : i; + } - // Constexpr implementation of pow - constexpr double constexpr_pow( double base, double exp ) - { - // NB(1): this implementation of constexpr_pow requires exponent >= 0 - assert( exp >= 0 ); // NB would fail at compile time with "error: call to non-‘constexpr’ function ‘void __assert_fail'" - // NB(2): this implementation of constexpr_pow requires an integer exponent - const int iexp = constexpr_floor( exp ); - assert( static_cast( iexp ) == exp ); // NB would fail at compile time with "error: call to non-‘constexpr’ function ‘void __assert_fail'" - // Iterative implementation of pow if exp is a non negative integer - return iexp == 0 ? 1 : base * constexpr_pow( base, iexp - 1 ); + // Constexpr implementation of pow + constexpr double constexpr_pow( double base, double exp ) + { + // NB(1): this implementation of constexpr_pow requires exponent >= 0 + assert( exp >= 0 ); // NB would fail at compile time with "error: call to non-‘constexpr’ function ‘void __assert_fail'" + // NB(2): this implementation of constexpr_pow requires an integer exponent + const int iexp = constexpr_floor( exp ); + assert( static_cast( iexp ) == exp ); // NB would fail at compile time with "error: call to non-‘constexpr’ function ‘void __assert_fail'" + // Iterative implementation of pow if exp is a non negative integer + return iexp == 0 ? 1 : base * constexpr_pow( base, iexp - 1 ); + } + + // Model parameters independent of aS + constexpr double zero = 0; + constexpr double ZERO = 0; + constexpr double mdl_WH1 = 6.382339e-03; + constexpr double mdl_WH = 6.382339e-03; + constexpr double mdl_WW = 2.047600e+00; + constexpr double mdl_WZ = 2.441404e+00; + constexpr double mdl_WT = 1.491500e+00; + constexpr double mdl_ymtau = 1.777000e+00; + constexpr double mdl_ymt = 1.645000e+02; + constexpr double mdl_ymb = 4.200000e+00; + //constexpr double aS = 1.180000e-01; // now retrieved event-by-event (as G) from Fortran (running alphas #373) + constexpr double mdl_Gf = 1.166390e-05; + constexpr double aEWM1 = 1.325070e+02; + constexpr double mdl_MP = 1.250001e+02; + constexpr double mdl_MH = 1.250000e+02; + constexpr double mdl_MZ = 9.118800e+01; + constexpr double mdl_MTA = 1.777000e+00; + constexpr double mdl_MT = 1.730000e+02; + constexpr double mdl_MB = 4.700000e+00; + constexpr double mdl_conjg__CKM3x3 = 1.; + constexpr cxsmpl mdl_complexi = cxsmpl( 0., 1. ); + constexpr double mdl_MZ__exp__2 = ( ( mdl_MZ ) * ( mdl_MZ ) ); + constexpr double mdl_MZ__exp__4 = ( ( mdl_MZ ) * ( mdl_MZ ) * ( mdl_MZ ) * ( mdl_MZ ) ); + constexpr double mdl_sqrt__2 = constexpr_sqrt( 2. ); + constexpr double mdl_MH__exp__4 = ( ( mdl_MH ) * ( mdl_MH ) * ( mdl_MH ) * ( mdl_MH ) ); + constexpr double mdl_MT__exp__4 = ( ( mdl_MT ) * ( mdl_MT ) * ( mdl_MT ) * ( mdl_MT ) ); + constexpr double mdl_MH__exp__2 = ( ( mdl_MH ) * ( mdl_MH ) ); + constexpr double mdl_MT__exp__2 = ( ( mdl_MT ) * ( mdl_MT ) ); + constexpr double mdl_MH__exp__12 = constexpr_pow( mdl_MH, 12. ); + constexpr double mdl_MH__exp__10 = constexpr_pow( mdl_MH, 10. ); + constexpr double mdl_MH__exp__8 = constexpr_pow( mdl_MH, 8. ); + constexpr double mdl_MH__exp__6 = constexpr_pow( mdl_MH, 6. ); + constexpr double mdl_MT__exp__6 = constexpr_pow( mdl_MT, 6. ); + constexpr double mdl_aEW = 1. / aEWM1; + constexpr double mdl_MW = constexpr_sqrt( mdl_MZ__exp__2 / 2. + constexpr_sqrt( mdl_MZ__exp__4 / 4. - ( mdl_aEW * M_PI * mdl_MZ__exp__2 ) / ( mdl_Gf * mdl_sqrt__2 ) ) ); + constexpr double mdl_sqrt__aEW = constexpr_sqrt( mdl_aEW ); + constexpr double mdl_ee = 2. * mdl_sqrt__aEW * constexpr_sqrt( M_PI ); + constexpr double mdl_MW__exp__2 = ( ( mdl_MW ) * ( mdl_MW ) ); + constexpr double mdl_sw2 = 1. - mdl_MW__exp__2 / mdl_MZ__exp__2; + constexpr double mdl_cw = constexpr_sqrt( 1. - mdl_sw2 ); + constexpr double mdl_sqrt__sw2 = constexpr_sqrt( mdl_sw2 ); + constexpr double mdl_sw = mdl_sqrt__sw2; + constexpr double mdl_g1 = mdl_ee / mdl_cw; + constexpr double mdl_gw = mdl_ee / mdl_sw; + constexpr double mdl_v = ( 2. * mdl_MW * mdl_sw ) / mdl_ee; + constexpr double mdl_ee__exp__2 = ( ( mdl_ee ) * ( mdl_ee ) ); + constexpr double mdl_MW__exp__12 = constexpr_pow( mdl_MW, 12. ); + constexpr double mdl_MW__exp__10 = constexpr_pow( mdl_MW, 10. ); + constexpr double mdl_MW__exp__8 = constexpr_pow( mdl_MW, 8. ); + constexpr double mdl_MW__exp__6 = constexpr_pow( mdl_MW, 6. ); + constexpr double mdl_MW__exp__4 = ( ( mdl_MW ) * ( mdl_MW ) * ( mdl_MW ) * ( mdl_MW ) ); + constexpr double mdl_AH = ( 47. * mdl_ee__exp__2 * ( 1. - ( 2. * mdl_MH__exp__4 ) / ( 987. * mdl_MT__exp__4 ) - ( 14. * mdl_MH__exp__2 ) / ( 705. * mdl_MT__exp__2 ) + ( 213. * mdl_MH__exp__12 ) / ( 2.634632e7 * mdl_MW__exp__12 ) + ( 5. * mdl_MH__exp__10 ) / ( 119756. * mdl_MW__exp__10 ) + ( 41. * mdl_MH__exp__8 ) / ( 180950. * mdl_MW__exp__8 ) + ( 87. * mdl_MH__exp__6 ) / ( 65800. * mdl_MW__exp__6 ) + ( 57. * mdl_MH__exp__4 ) / ( 6580. * mdl_MW__exp__4 ) + ( 33. * mdl_MH__exp__2 ) / ( 470. * mdl_MW__exp__2 ) ) ) / ( 72. * ( ( M_PI ) * ( M_PI ) ) * mdl_v ); + constexpr double mdl_v__exp__2 = ( ( mdl_v ) * ( mdl_v ) ); + constexpr double mdl_lam = mdl_MH__exp__2 / ( 2. * mdl_v__exp__2 ); + constexpr double mdl_yb = ( mdl_ymb * mdl_sqrt__2 ) / mdl_v; + constexpr double mdl_yt = ( mdl_ymt * mdl_sqrt__2 ) / mdl_v; + constexpr double mdl_ytau = ( mdl_ymtau * mdl_sqrt__2 ) / mdl_v; + constexpr double mdl_muH = constexpr_sqrt( mdl_lam * mdl_v__exp__2 ); + constexpr double mdl_gw__exp__2 = ( ( mdl_gw ) * ( mdl_gw ) ); + constexpr double mdl_cw__exp__2 = ( ( mdl_cw ) * ( mdl_cw ) ); + constexpr double mdl_sw__exp__2 = ( ( mdl_sw ) * ( mdl_sw ) ); + + // Model couplings independent of aS + // (none) + + // Model parameters dependent on aS + //constexpr double mdl_sqrt__aS = //constexpr_sqrt( aS ); // now computed event-by-event (running alphas #373) + //constexpr double G = 2. * mdl_sqrt__aS * //constexpr_sqrt( M_PI ); // now computed event-by-event (running alphas #373) + //constexpr double mdl_G__exp__2 = ( ( G ) * ( G ) ); // now computed event-by-event (running alphas #373) + //constexpr double mdl_GH = -( mdl_G__exp__2 * ( 1. + ( 13. * mdl_MH__exp__6 ) / ( 16800. * mdl_MT__exp__6 ) + mdl_MH__exp__4 / ( 168. * mdl_MT__exp__4 ) + ( 7. * mdl_MH__exp__2 ) / ( 120. * mdl_MT__exp__2 ) ) ) / ( 12. * ( ( M_PI ) * ( M_PI ) ) * mdl_v ); // now computed event-by-event (running alphas #373) + //constexpr double mdl_Gphi = -( mdl_G__exp__2 * ( 1. + mdl_MH__exp__6 / ( 560. * mdl_MT__exp__6 ) + mdl_MH__exp__4 / ( 90. * mdl_MT__exp__4 ) + mdl_MH__exp__2 / ( 12. * mdl_MT__exp__2 ) ) ) / ( 8. * ( ( M_PI ) * ( M_PI ) ) * mdl_v ); // now computed event-by-event (running alphas #373) + + // Model couplings dependent on aS + //constexpr cxsmpl GC_13 = -( mdl_complexi * mdl_GH ); // now computed event-by-event (running alphas #373) + + // Print parameters that are unchanged during the run + void printIndependentParameters(); + + // Print couplings that are unchanged during the run + void printIndependentCouplings(); + + // Print parameters that are changed event by event + //void printDependentParameters(); // now computed event-by-event (running alphas #373) + + // Print couplings that are changed event by event + //void printDependentCouplings(); // now computed event-by-event (running alphas #373) } - // Model parameters independent of aS - constexpr double zero = 0; - constexpr double ZERO = 0; - constexpr double mdl_WH1 = 6.382339e-03; - constexpr double mdl_WH = 6.382339e-03; - constexpr double mdl_WW = 2.047600e+00; - constexpr double mdl_WZ = 2.441404e+00; - constexpr double mdl_WT = 1.491500e+00; - constexpr double mdl_ymtau = 1.777000e+00; - constexpr double mdl_ymt = 1.645000e+02; - constexpr double mdl_ymb = 4.200000e+00; - //constexpr double aS = 1.180000e-01; // now retrieved event-by-event (as G) from Fortran (running alphas #373) - constexpr double mdl_Gf = 1.166390e-05; - constexpr double aEWM1 = 1.325070e+02; - constexpr double mdl_MP = 1.250001e+02; - constexpr double mdl_MH = 1.250000e+02; - constexpr double mdl_MZ = 9.118800e+01; - constexpr double mdl_MTA = 1.777000e+00; - constexpr double mdl_MT = 1.730000e+02; - constexpr double mdl_MB = 4.700000e+00; - constexpr double mdl_conjg__CKM3x3 = 1.; - constexpr cxsmpl mdl_complexi = cxsmpl( 0., 1. ); - constexpr double mdl_MZ__exp__2 = ( ( mdl_MZ ) * ( mdl_MZ ) ); - constexpr double mdl_MZ__exp__4 = ( ( mdl_MZ ) * ( mdl_MZ ) * ( mdl_MZ ) * ( mdl_MZ ) ); - constexpr double mdl_sqrt__2 = constexpr_sqrt( 2. ); - constexpr double mdl_MH__exp__4 = ( ( mdl_MH ) * ( mdl_MH ) * ( mdl_MH ) * ( mdl_MH ) ); - constexpr double mdl_MT__exp__4 = ( ( mdl_MT ) * ( mdl_MT ) * ( mdl_MT ) * ( mdl_MT ) ); - constexpr double mdl_MH__exp__2 = ( ( mdl_MH ) * ( mdl_MH ) ); - constexpr double mdl_MT__exp__2 = ( ( mdl_MT ) * ( mdl_MT ) ); - constexpr double mdl_MH__exp__12 = constexpr_pow( mdl_MH, 12. ); - constexpr double mdl_MH__exp__10 = constexpr_pow( mdl_MH, 10. ); - constexpr double mdl_MH__exp__8 = constexpr_pow( mdl_MH, 8. ); - constexpr double mdl_MH__exp__6 = constexpr_pow( mdl_MH, 6. ); - constexpr double mdl_MT__exp__6 = constexpr_pow( mdl_MT, 6. ); - constexpr double mdl_aEW = 1. / aEWM1; - constexpr double mdl_MW = constexpr_sqrt( mdl_MZ__exp__2 / 2. + constexpr_sqrt( mdl_MZ__exp__4 / 4. - ( mdl_aEW * M_PI * mdl_MZ__exp__2 ) / ( mdl_Gf * mdl_sqrt__2 ) ) ); - constexpr double mdl_sqrt__aEW = constexpr_sqrt( mdl_aEW ); - constexpr double mdl_ee = 2. * mdl_sqrt__aEW * constexpr_sqrt( M_PI ); - constexpr double mdl_MW__exp__2 = ( ( mdl_MW ) * ( mdl_MW ) ); - constexpr double mdl_sw2 = 1. - mdl_MW__exp__2 / mdl_MZ__exp__2; - constexpr double mdl_cw = constexpr_sqrt( 1. - mdl_sw2 ); - constexpr double mdl_sqrt__sw2 = constexpr_sqrt( mdl_sw2 ); - constexpr double mdl_sw = mdl_sqrt__sw2; - constexpr double mdl_g1 = mdl_ee / mdl_cw; - constexpr double mdl_gw = mdl_ee / mdl_sw; - constexpr double mdl_v = ( 2. * mdl_MW * mdl_sw ) / mdl_ee; - constexpr double mdl_ee__exp__2 = ( ( mdl_ee ) * ( mdl_ee ) ); - constexpr double mdl_MW__exp__12 = constexpr_pow( mdl_MW, 12. ); - constexpr double mdl_MW__exp__10 = constexpr_pow( mdl_MW, 10. ); - constexpr double mdl_MW__exp__8 = constexpr_pow( mdl_MW, 8. ); - constexpr double mdl_MW__exp__6 = constexpr_pow( mdl_MW, 6. ); - constexpr double mdl_MW__exp__4 = ( ( mdl_MW ) * ( mdl_MW ) * ( mdl_MW ) * ( mdl_MW ) ); - constexpr double mdl_AH = ( 47. * mdl_ee__exp__2 * ( 1. - ( 2. * mdl_MH__exp__4 ) / ( 987. * mdl_MT__exp__4 ) - ( 14. * mdl_MH__exp__2 ) / ( 705. * mdl_MT__exp__2 ) + ( 213. * mdl_MH__exp__12 ) / ( 2.634632e7 * mdl_MW__exp__12 ) + ( 5. * mdl_MH__exp__10 ) / ( 119756. * mdl_MW__exp__10 ) + ( 41. * mdl_MH__exp__8 ) / ( 180950. * mdl_MW__exp__8 ) + ( 87. * mdl_MH__exp__6 ) / ( 65800. * mdl_MW__exp__6 ) + ( 57. * mdl_MH__exp__4 ) / ( 6580. * mdl_MW__exp__4 ) + ( 33. * mdl_MH__exp__2 ) / ( 470. * mdl_MW__exp__2 ) ) ) / ( 72. * ( ( M_PI ) * ( M_PI ) ) * mdl_v ); - constexpr double mdl_v__exp__2 = ( ( mdl_v ) * ( mdl_v ) ); - constexpr double mdl_lam = mdl_MH__exp__2 / ( 2. * mdl_v__exp__2 ); - constexpr double mdl_yb = ( mdl_ymb * mdl_sqrt__2 ) / mdl_v; - constexpr double mdl_yt = ( mdl_ymt * mdl_sqrt__2 ) / mdl_v; - constexpr double mdl_ytau = ( mdl_ymtau * mdl_sqrt__2 ) / mdl_v; - constexpr double mdl_muH = constexpr_sqrt( mdl_lam * mdl_v__exp__2 ); - constexpr double mdl_gw__exp__2 = ( ( mdl_gw ) * ( mdl_gw ) ); - constexpr double mdl_cw__exp__2 = ( ( mdl_cw ) * ( mdl_cw ) ); - constexpr double mdl_sw__exp__2 = ( ( mdl_sw ) * ( mdl_sw ) ); - - // Model couplings independent of aS - // (none) - - // Model parameters dependent on aS - //constexpr double mdl_sqrt__aS = //constexpr_sqrt( aS ); // now computed event-by-event (running alphas #373) - //constexpr double G = 2. * mdl_sqrt__aS * //constexpr_sqrt( M_PI ); // now computed event-by-event (running alphas #373) - //constexpr double mdl_G__exp__2 = ( ( G ) * ( G ) ); // now computed event-by-event (running alphas #373) - //constexpr double mdl_GH = -( mdl_G__exp__2 * ( 1. + ( 13. * mdl_MH__exp__6 ) / ( 16800. * mdl_MT__exp__6 ) + mdl_MH__exp__4 / ( 168. * mdl_MT__exp__4 ) + ( 7. * mdl_MH__exp__2 ) / ( 120. * mdl_MT__exp__2 ) ) ) / ( 12. * ( ( M_PI ) * ( M_PI ) ) * mdl_v ); // now computed event-by-event (running alphas #373) - //constexpr double mdl_Gphi = -( mdl_G__exp__2 * ( 1. + mdl_MH__exp__6 / ( 560. * mdl_MT__exp__6 ) + mdl_MH__exp__4 / ( 90. * mdl_MT__exp__4 ) + mdl_MH__exp__2 / ( 12. * mdl_MT__exp__2 ) ) ) / ( 8. * ( ( M_PI ) * ( M_PI ) ) * mdl_v ); // now computed event-by-event (running alphas #373) - - // Model couplings dependent on aS - //constexpr cxsmpl GC_13 = -( mdl_complexi * mdl_GH ); // now computed event-by-event (running alphas #373) - - // Print parameters that are unchanged during the run - void printIndependentParameters(); - - // Print couplings that are unchanged during the run - void printIndependentCouplings(); - - // Print parameters that are changed event by event - //void printDependentParameters(); // now computed event-by-event (running alphas #373) - - // Print couplings that are changed event by event - //void printDependentCouplings(); // now computed event-by-event (running alphas #373) -} +} // end namespace mg5amcGpu/mg5amcCpu #endif //========================================================================== -namespace Parameters_heft_dependentCouplings +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { - constexpr size_t ndcoup = 1; // #couplings that vary event by event because they depend on the running alphas QCD - constexpr size_t idcoup_GC_13 = 0; - struct DependentCouplings_sv + namespace Parameters_heft_dependentCouplings { - cxtype_sv GC_13; - }; + constexpr size_t ndcoup = 1; // #couplings that vary event by event because they depend on the running alphas QCD + constexpr size_t idcoup_GC_13 = 0; + struct DependentCouplings_sv + { + cxtype_sv GC_13; + }; #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wunused-variable" // e.g. <> #pragma GCC diagnostic ignored "-Wunused-parameter" // e.g. <> @@ -226,75 +251,69 @@ namespace Parameters_heft_dependentCouplings #pragma nv_diagnostic push #pragma nv_diag_suppress 177 // e.g. <> #endif - __host__ __device__ inline const DependentCouplings_sv computeDependentCouplings_fromG( const fptype_sv& G_sv ) - { + __host__ __device__ inline const DependentCouplings_sv computeDependentCouplings_fromG( const fptype_sv& G_sv ) + { #ifdef MGONGPU_HARDCODE_PARAM - using namespace Parameters_heft; + using namespace Parameters_heft; #endif - // NB: hardcode cxtype cI(0,1) instead of cxtype (or hardcoded cxsmpl) mdl_complexi (which exists in Parameters_heft) because: - // (1) mdl_complexi is always (0,1); (2) mdl_complexi is undefined in device code; (3) need cxsmpl conversion to cxtype in code below - const cxtype cI( 0., 1. ); - DependentCouplings_sv out; - // Begin non-SM (e.g. EFT) implementation - special handling of vectors of floats (#439) + // NB: hardcode cxtype cI(0,1) instead of cxtype (or hardcoded cxsmpl) mdl_complexi (which exists in Parameters_heft) because: + // (1) mdl_complexi is always (0,1); (2) mdl_complexi is undefined in device code; (3) need cxsmpl conversion to cxtype in code below + const cxtype cI( 0., 1. ); + DependentCouplings_sv out; + // Begin non-SM (e.g. EFT) implementation - special handling of vectors of floats (#439) #if not( defined MGONGPU_CPPSIMD && defined MGONGPU_FPTYPE_FLOAT ) - { - const fptype_sv& G = G_sv; - // Model parameters dependent on aS - //const fptype_sv mdl_sqrt__aS = constexpr_sqrt( aS ); - //const fptype_sv G = 2. * mdl_sqrt__aS * constexpr_sqrt( M_PI ); - const fptype_sv mdl_G__exp__2 = ( ( G ) * ( G ) ); - const fptype_sv mdl_GH = -( mdl_G__exp__2 * ( 1. + ( 13. * mdl_MH__exp__6 ) / ( 16800. * mdl_MT__exp__6 ) + mdl_MH__exp__4 / ( 168. * mdl_MT__exp__4 ) + ( 7. * mdl_MH__exp__2 ) / ( 120. * mdl_MT__exp__2 ) ) ) / ( 12. * ( ( M_PI ) * ( M_PI ) ) * mdl_v ); - const fptype_sv mdl_Gphi = -( mdl_G__exp__2 * ( 1. + mdl_MH__exp__6 / ( 560. * mdl_MT__exp__6 ) + mdl_MH__exp__4 / ( 90. * mdl_MT__exp__4 ) + mdl_MH__exp__2 / ( 12. * mdl_MT__exp__2 ) ) ) / ( 8. * ( ( M_PI ) * ( M_PI ) ) * mdl_v ); - // Model couplings dependent on aS - out.GC_13 = -( cI * mdl_GH ); - } + { + const fptype_sv& G = G_sv; + // Model parameters dependent on aS + //const fptype_sv mdl_sqrt__aS = constexpr_sqrt( aS ); + //const fptype_sv G = 2. * mdl_sqrt__aS * constexpr_sqrt( M_PI ); + const fptype_sv mdl_G__exp__2 = ( ( G ) * ( G ) ); + const fptype_sv mdl_GH = -( mdl_G__exp__2 * ( 1. + ( 13. * mdl_MH__exp__6 ) / ( 16800. * mdl_MT__exp__6 ) + mdl_MH__exp__4 / ( 168. * mdl_MT__exp__4 ) + ( 7. * mdl_MH__exp__2 ) / ( 120. * mdl_MT__exp__2 ) ) ) / ( 12. * ( ( M_PI ) * ( M_PI ) ) * mdl_v ); + const fptype_sv mdl_Gphi = -( mdl_G__exp__2 * ( 1. + mdl_MH__exp__6 / ( 560. * mdl_MT__exp__6 ) + mdl_MH__exp__4 / ( 90. * mdl_MT__exp__4 ) + mdl_MH__exp__2 / ( 12. * mdl_MT__exp__2 ) ) ) / ( 8. * ( ( M_PI ) * ( M_PI ) ) * mdl_v ); + // Model couplings dependent on aS + out.GC_13 = -( cI * mdl_GH ); + } #else - // ** NB #439: special handling is necessary ONLY FOR VECTORS OF FLOATS (variable Gs are vector floats, fixed parameters are scalar doubles) - // Use an explicit loop to avoid <> - // Problems may come e.g. in EFTs from multiplying a vector float (related to aS-dependent G) by a scalar double (aS-independent parameters) - fptype_v GC_13r_v; - fptype_v GC_13i_v; - for( int i = 0; i < neppV; i++ ) - { - const fptype& G = G_sv[i]; - // Model parameters dependent on aS - //const fptype mdl_sqrt__aS = constexpr_sqrt( aS ); - //const fptype G = 2. * mdl_sqrt__aS * constexpr_sqrt( M_PI ); - const fptype mdl_G__exp__2 = ( ( G ) * ( G ) ); - const fptype mdl_GH = -( mdl_G__exp__2 * ( 1. + ( 13. * mdl_MH__exp__6 ) / ( 16800. * mdl_MT__exp__6 ) + mdl_MH__exp__4 / ( 168. * mdl_MT__exp__4 ) + ( 7. * mdl_MH__exp__2 ) / ( 120. * mdl_MT__exp__2 ) ) ) / ( 12. * ( ( M_PI ) * ( M_PI ) ) * mdl_v ); - const fptype mdl_Gphi = -( mdl_G__exp__2 * ( 1. + mdl_MH__exp__6 / ( 560. * mdl_MT__exp__6 ) + mdl_MH__exp__4 / ( 90. * mdl_MT__exp__4 ) + mdl_MH__exp__2 / ( 12. * mdl_MT__exp__2 ) ) ) / ( 8. * ( ( M_PI ) * ( M_PI ) ) * mdl_v ); - // Model couplings dependent on aS - const cxtype GC_13 = -( cI * mdl_GH ); - GC_13r_v[i] = cxreal( GC_13 ); - GC_13i_v[i] = cximag( GC_13 ); - } - out.GC_13 = cxtype_v( GC_13r_v, GC_13i_v ); + // ** NB #439: special handling is necessary ONLY FOR VECTORS OF FLOATS (variable Gs are vector floats, fixed parameters are scalar doubles) + // Use an explicit loop to avoid <> + // Problems may come e.g. in EFTs from multiplying a vector float (related to aS-dependent G) by a scalar double (aS-independent parameters) + fptype_v GC_13r_v; + fptype_v GC_13i_v; + for( int i = 0; i < neppV; i++ ) + { + const fptype& G = G_sv[i]; + // Model parameters dependent on aS + //const fptype mdl_sqrt__aS = constexpr_sqrt( aS ); + //const fptype G = 2. * mdl_sqrt__aS * constexpr_sqrt( M_PI ); + const fptype mdl_G__exp__2 = ( ( G ) * ( G ) ); + const fptype mdl_GH = -( mdl_G__exp__2 * ( 1. + ( 13. * mdl_MH__exp__6 ) / ( 16800. * mdl_MT__exp__6 ) + mdl_MH__exp__4 / ( 168. * mdl_MT__exp__4 ) + ( 7. * mdl_MH__exp__2 ) / ( 120. * mdl_MT__exp__2 ) ) ) / ( 12. * ( ( M_PI ) * ( M_PI ) ) * mdl_v ); + const fptype mdl_Gphi = -( mdl_G__exp__2 * ( 1. + mdl_MH__exp__6 / ( 560. * mdl_MT__exp__6 ) + mdl_MH__exp__4 / ( 90. * mdl_MT__exp__4 ) + mdl_MH__exp__2 / ( 12. * mdl_MT__exp__2 ) ) ) / ( 8. * ( ( M_PI ) * ( M_PI ) ) * mdl_v ); + // Model couplings dependent on aS + const cxtype GC_13 = -( cI * mdl_GH ); + GC_13r_v[i] = cxreal( GC_13 ); + GC_13i_v[i] = cximag( GC_13 ); + } + out.GC_13 = cxtype_v( GC_13r_v, GC_13i_v ); #endif - // End non-SM (e.g. EFT) implementation - special handling of vectors of floats (#439) - return out; - } + // End non-SM (e.g. EFT) implementation - special handling of vectors of floats (#439) + return out; + } #ifdef __CUDACC__ #pragma GCC diagnostic pop #pragma nv_diagnostic pop #endif -} + } -//========================================================================== + //========================================================================== -namespace Parameters_heft_independentCouplings -{ - constexpr size_t nicoup = 0; // #couplings that are fixed for all events because they do not depend on the running alphas QCD - // NB: there are no aS-independent couplings in this physics process -} + namespace Parameters_heft_independentCouplings + { + constexpr size_t nicoup = 0; // #couplings that are fixed for all events because they do not depend on the running alphas QCD + // NB: there are no aS-independent couplings in this physics process + } -//========================================================================== + //========================================================================== -#ifdef __CUDACC__ -namespace mg5amcGpu -#else -namespace mg5amcCpu -#endif -{ #pragma GCC diagnostic push #ifndef __clang__ #pragma GCC diagnostic ignored "-Wunused-but-set-variable" // e.g. <> @@ -316,7 +335,8 @@ namespace mg5amcCpu return; } #pragma GCC diagnostic pop -} + +} // end namespace mg5amcGpu/mg5amcCpu //========================================================================== diff --git a/epochX/cudacpp/heft_gg_h.sa/src/cudacpp_src.mk b/epochX/cudacpp/heft_gg_h.sa/src/cudacpp_src.mk index 34324df052..632d2135c5 100644 --- a/epochX/cudacpp/heft_gg_h.sa/src/cudacpp_src.mk +++ b/epochX/cudacpp/heft_gg_h.sa/src/cudacpp_src.mk @@ -38,7 +38,13 @@ endif #------------------------------------------------------------------------------- -#=== Configure ccache for CUDA and C++ builds +#=== Configure the CUDA compiler (note: NVCC is already exported including ccache) + +###$(info NVCC=$(NVCC)) + +#------------------------------------------------------------------------------- + +#=== Configure ccache for C++ builds (note: NVCC is already exported including ccache) # Enable ccache if USECCACHE=1 ifeq ($(USECCACHE)$(shell echo $(CXX) | grep ccache),1) @@ -47,11 +53,6 @@ endif #ifeq ($(USECCACHE)$(shell echo $(AR) | grep ccache),1) # override AR:=ccache $(AR) #endif -#ifneq ($(NVCC),) -# ifeq ($(USECCACHE)$(shell echo $(NVCC) | grep ccache),1) -# override NVCC:=ccache $(NVCC) -# endif -#endif #------------------------------------------------------------------------------- @@ -115,7 +116,9 @@ else ifneq ($(shell $(CXX) --version | grep ^nvc++),) # support nvc++ #531 $(error Unknown AVX='$(AVX)': only 'none', 'sse4', 'avx2', '512y' and '512z' are supported) endif else - ifeq ($(AVX),sse4) + ifeq ($(AVX),none) + override AVXFLAGS = -march=x86-64 # no SIMD (see #588) + else ifeq ($(AVX),sse4) override AVXFLAGS = -march=nehalem # SSE4.2 with 128 width (xmm registers) else ifeq ($(AVX),avx2) override AVXFLAGS = -march=haswell # AVX2 with 256 width (ymm registers) [DEFAULT for clang] @@ -216,7 +219,7 @@ MG5AMC_COMMONLIB = mg5amc_common all.$(TAG): $(BUILDDIR)/.build.$(TAG) $(LIBDIR)/.build.$(TAG) $(LIBDIR)/lib$(MG5AMC_COMMONLIB).so # Target (and build options): debug -debug: OPTFLAGS = -g -O0 -DDEBUG2 +debug: OPTFLAGS = -g -O0 debug: all.$(TAG) # Target: tag-specific build lockfiles @@ -237,17 +240,31 @@ $(LIBDIR)/.build.$(TAG): # Generic target and build rules: objects from C++ compilation $(BUILDDIR)/%.o : %.cc *.h $(BUILDDIR)/.build.$(TAG) - @if [ ! -d $(BUILDDIR) ]; then mkdir -p $(BUILDDIR); fi - $(CXX) $(CPPFLAGS) $(CXXFLAGS) -c $< -o $@ + @if [ ! -d $(BUILDDIR) ]; then echo "mkdir -p $(BUILDDIR)"; mkdir -p $(BUILDDIR); fi + $(CXX) $(CPPFLAGS) $(CXXFLAGS) -fPIC -c $< -o $@ + +# Generic target and build rules: objects from CUDA compilation +$(BUILDDIR)/%_cu.o : %.cc *.h $(BUILDDIR)/.build.$(TAG) + @if [ ! -d $(BUILDDIR) ]; then echo "mkdir -p $(BUILDDIR)"; mkdir -p $(BUILDDIR); fi + $(NVCC) $(CPPFLAGS) $(CUFLAGS) -Xcompiler -fPIC -c -x cu $< -o $@ #------------------------------------------------------------------------------- cxx_objects=$(addprefix $(BUILDDIR)/, Parameters_heft.o read_slha.o) +ifneq ($(NVCC),) +cu_objects=$(addprefix $(BUILDDIR)/, Parameters_heft_cu.o) +endif # Target (and build rules): common (src) library +ifneq ($(NVCC),) +$(LIBDIR)/lib$(MG5AMC_COMMONLIB).so : $(cxx_objects) $(cu_objects) + @if [ ! -d $(LIBDIR) ]; then echo "mkdir -p $(LIBDIR)"; mkdir -p $(LIBDIR); fi + $(NVCC) -shared -o $@ $(cxx_objects) $(cu_objects) +else $(LIBDIR)/lib$(MG5AMC_COMMONLIB).so : $(cxx_objects) @if [ ! -d $(LIBDIR) ]; then echo "mkdir -p $(LIBDIR)"; mkdir -p $(LIBDIR); fi - $(CXX) -shared -o$@ $(cxx_objects) + $(CXX) -shared -o $@ $(cxx_objects) +endif #------------------------------------------------------------------------------- diff --git a/epochX/cudacpp/heft_gg_h.sa/src/mgOnGpuConfig.h b/epochX/cudacpp/heft_gg_h.sa/src/mgOnGpuConfig.h index 6c0c4919e9..c0f067f1d8 100644 --- a/epochX/cudacpp/heft_gg_h.sa/src/mgOnGpuConfig.h +++ b/epochX/cudacpp/heft_gg_h.sa/src/mgOnGpuConfig.h @@ -98,6 +98,7 @@ #endif #endif +// NB: namespace mgOnGpu includes types which are defined in exactly the same way for CPU and GPU builds (see #318 and #725) namespace mgOnGpu { diff --git a/epochX/cudacpp/heft_gg_h.sa/src/mgOnGpuCxtypes.h b/epochX/cudacpp/heft_gg_h.sa/src/mgOnGpuCxtypes.h index 0cb2f1db7e..b56348bc58 100644 --- a/epochX/cudacpp/heft_gg_h.sa/src/mgOnGpuCxtypes.h +++ b/epochX/cudacpp/heft_gg_h.sa/src/mgOnGpuCxtypes.h @@ -43,8 +43,12 @@ // COMPLEX TYPES: SIMPLE COMPLEX CLASS (cxsmpl) //========================================================================== +// NB: namespace mgOnGpu includes types which are defined in exactly the same way for CPU and GPU builds (see #318 and #725) namespace mgOnGpu /* clang-format off */ { + // The number of floating point types in a complex type (real, imaginary) + constexpr int nx2 = 2; + // --- Type definition (simple complex type derived from cxtype_v) template class cxsmpl @@ -78,128 +82,139 @@ namespace mgOnGpu /* clang-format off */ using mgOnGpu::cxsmpl; // Printout to stream for user defined types -template -inline __host__ __device__ std::ostream& -operator<<( std::ostream& out, const cxsmpl& c ) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { - out << std::complex( c.real(), c.imag() ); - return out; -} + template + inline __host__ std::ostream& + operator<<( std::ostream& out, const cxsmpl& c ) + { + out << std::complex( c.real(), c.imag() ); + return out; + } -// Operators for cxsmpl -template -inline __host__ __device__ constexpr cxsmpl -operator+( const cxsmpl a ) -{ - return a; -} + // Operators for cxsmpl + template + inline __host__ __device__ constexpr cxsmpl + operator+( const cxsmpl a ) + { + return a; + } -template -inline __host__ __device__ constexpr cxsmpl -operator-( const cxsmpl& a ) -{ - return cxsmpl( -a.real(), -a.imag() ); -} + template + inline __host__ __device__ constexpr cxsmpl + operator-( const cxsmpl& a ) + { + return cxsmpl( -a.real(), -a.imag() ); + } -template -inline __host__ __device__ constexpr cxsmpl -operator+( const cxsmpl& a, const cxsmpl& b ) -{ - return cxsmpl( a.real() + b.real(), a.imag() + b.imag() ); -} + template + inline __host__ __device__ constexpr cxsmpl + operator+( const cxsmpl& a, const cxsmpl& b ) + { + return cxsmpl( a.real() + b.real(), a.imag() + b.imag() ); + } -template -inline __host__ __device__ constexpr cxsmpl -operator+( const FP& a, const cxsmpl& b ) -{ - return cxsmpl( a, 0 ) + b; -} + template + inline __host__ __device__ constexpr cxsmpl + operator+( const FP& a, const cxsmpl& b ) + { + return cxsmpl( a, 0 ) + b; + } -template -inline __host__ __device__ constexpr cxsmpl -operator-( const cxsmpl& a, const cxsmpl& b ) -{ - return cxsmpl( a.real() - b.real(), a.imag() - b.imag() ); -} + template + inline __host__ __device__ constexpr cxsmpl + operator-( const cxsmpl& a, const cxsmpl& b ) + { + return cxsmpl( a.real() - b.real(), a.imag() - b.imag() ); + } -template -inline __host__ __device__ constexpr cxsmpl -operator-( const FP& a, const cxsmpl& b ) -{ - return cxsmpl( a, 0 ) - b; -} + template + inline __host__ __device__ constexpr cxsmpl + operator-( const FP& a, const cxsmpl& b ) + { + return cxsmpl( a, 0 ) - b; + } -template -inline __host__ __device__ constexpr cxsmpl -operator*( const cxsmpl& a, const cxsmpl& b ) -{ - return cxsmpl( a.real() * b.real() - a.imag() * b.imag(), a.imag() * b.real() + a.real() * b.imag() ); -} + template + inline __host__ __device__ constexpr cxsmpl + operator*( const cxsmpl& a, const cxsmpl& b ) + { + return cxsmpl( a.real() * b.real() - a.imag() * b.imag(), a.imag() * b.real() + a.real() * b.imag() ); + } -template -inline __host__ __device__ constexpr cxsmpl -operator*( const FP& a, const cxsmpl& b ) -{ - return cxsmpl( a, 0 ) * b; -} + template + inline __host__ __device__ constexpr cxsmpl + operator*( const FP& a, const cxsmpl& b ) + { + return cxsmpl( a, 0 ) * b; + } -inline __host__ __device__ constexpr cxsmpl -operator*( const double& a, const cxsmpl& b ) -{ - return cxsmpl( a, 0 ) * b; -} + inline __host__ __device__ constexpr cxsmpl + operator*( const double& a, const cxsmpl& b ) + { + return cxsmpl( a, 0 ) * b; + } -template -inline __host__ __device__ constexpr cxsmpl -operator/( const cxsmpl& a, const cxsmpl& b ) -{ - FP bnorm = b.real() * b.real() + b.imag() * b.imag(); - return cxsmpl( ( a.real() * b.real() + a.imag() * b.imag() ) / bnorm, - ( a.imag() * b.real() - a.real() * b.imag() ) / bnorm ); -} + template + inline __host__ __device__ constexpr cxsmpl + operator/( const cxsmpl& a, const cxsmpl& b ) + { + FP bnorm = b.real() * b.real() + b.imag() * b.imag(); + return cxsmpl( ( a.real() * b.real() + a.imag() * b.imag() ) / bnorm, + ( a.imag() * b.real() - a.real() * b.imag() ) / bnorm ); + } -template -inline __host__ __device__ constexpr cxsmpl -operator/( const FP& a, const cxsmpl& b ) -{ - return cxsmpl( a, 0 ) / b; -} + template + inline __host__ __device__ constexpr cxsmpl + operator/( const FP& a, const cxsmpl& b ) + { + return cxsmpl( a, 0 ) / b; + } -template -inline __host__ __device__ constexpr cxsmpl -operator+( const cxsmpl& a, const FP& b ) -{ - return a + cxsmpl( b, 0 ); -} + template + inline __host__ __device__ constexpr cxsmpl + operator+( const cxsmpl& a, const FP& b ) + { + return a + cxsmpl( b, 0 ); + } -template -inline __host__ __device__ constexpr cxsmpl -operator-( const cxsmpl& a, const FP& b ) -{ - return a - cxsmpl( b, 0 ); -} + template + inline __host__ __device__ constexpr cxsmpl + operator-( const cxsmpl& a, const FP& b ) + { + return a - cxsmpl( b, 0 ); + } -template -inline __host__ __device__ constexpr cxsmpl -operator*( const cxsmpl& a, const FP& b ) -{ - return a * cxsmpl( b, 0 ); -} + template + inline __host__ __device__ constexpr cxsmpl + operator*( const cxsmpl& a, const FP& b ) + { + return a * cxsmpl( b, 0 ); + } -template -inline __host__ __device__ constexpr cxsmpl -operator/( const cxsmpl& a, const FP& b ) -{ - return a / cxsmpl( b, 0 ); + template + inline __host__ __device__ constexpr cxsmpl + operator/( const cxsmpl& a, const FP& b ) + { + return a / cxsmpl( b, 0 ); + } } //========================================================================== // COMPLEX TYPES: (PLATFORM-SPECIFIC) TYPEDEFS //========================================================================== -namespace mgOnGpu +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { - // --- Type definitions (complex type: cxtype) #ifdef __CUDACC__ // cuda #if defined MGONGPU_CUCXTYPE_THRUST @@ -221,390 +236,402 @@ namespace mgOnGpu #endif #endif - // The number of floating point types in a complex type (real, imaginary) - constexpr int nx2 = 2; - // SANITY CHECK: memory access may be based on casts of fptype[2] to cxtype (e.g. for wavefunctions) - static_assert( sizeof( cxtype ) == nx2 * sizeof( fptype ), "sizeof(cxtype) is not 2*sizeof(fptype)" ); + static_assert( sizeof( cxtype ) == mgOnGpu::nx2 * sizeof( fptype ), "sizeof(cxtype) is not 2*sizeof(fptype)" ); } -// Expose typedefs and operators outside the namespace -using mgOnGpu::cxtype; +// DANGEROUS! this was mixing different cxtype definitions for CPU and GPU builds (see #318 and #725) +// DO NOT expose typedefs and operators outside the namespace +//using mgOnGpu::cxtype; //========================================================================== // COMPLEX TYPES: (PLATFORM-SPECIFIC) FUNCTIONS AND OPERATORS //========================================================================== +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif +{ #if defined MGONGPU_CUCXTYPE_CXSMPL or defined MGONGPU_CPPCXTYPE_CXSMPL -//------------------------------ -// CUDA or C++ - using cxsmpl -//------------------------------ + //------------------------------ + // CUDA or C++ - using cxsmpl + //------------------------------ -inline __host__ __device__ cxtype -cxmake( const fptype& r, const fptype& i ) -{ - return cxtype( r, i ); // cxsmpl constructor -} + inline __host__ __device__ cxtype + cxmake( const fptype& r, const fptype& i ) + { + return cxtype( r, i ); // cxsmpl constructor + } -inline __host__ __device__ fptype -cxreal( const cxtype& c ) -{ - return c.real(); // cxsmpl::real() -} + inline __host__ __device__ fptype + cxreal( const cxtype& c ) + { + return c.real(); // cxsmpl::real() + } -inline __host__ __device__ fptype -cximag( const cxtype& c ) -{ - return c.imag(); // cxsmpl::imag() -} + inline __host__ __device__ fptype + cximag( const cxtype& c ) + { + return c.imag(); // cxsmpl::imag() + } -inline __host__ __device__ cxtype -cxconj( const cxtype& c ) -{ - return conj( c ); // conj( cxsmpl ) -} + inline __host__ __device__ cxtype + cxconj( const cxtype& c ) + { + return conj( c ); // conj( cxsmpl ) + } -inline __host__ cxtype // NOT __device__ -cxmake( const std::complex& c ) // std::complex to cxsmpl (float-to-float or float-to-double) -{ - return cxmake( c.real(), c.imag() ); -} + inline __host__ cxtype // NOT __device__ + cxmake( const std::complex& c ) // std::complex to cxsmpl (float-to-float or float-to-double) + { + return cxmake( c.real(), c.imag() ); + } -inline __host__ cxtype // NOT __device__ -cxmake( const std::complex& c ) // std::complex to cxsmpl (double-to-float or double-to-double) -{ - return cxmake( c.real(), c.imag() ); -} + inline __host__ cxtype // NOT __device__ + cxmake( const std::complex& c ) // std::complex to cxsmpl (double-to-float or double-to-double) + { + return cxmake( c.real(), c.imag() ); + } #endif // #if defined MGONGPU_CUCXTYPE_CXSMPL or defined MGONGPU_CPPCXTYPE_CXSMPL -//========================================================================== + //========================================================================== #if defined __CUDACC__ and defined MGONGPU_CUCXTYPE_THRUST // cuda + thrust -//------------------------------ -// CUDA - using thrust::complex -//------------------------------ + //------------------------------ + // CUDA - using thrust::complex + //------------------------------ -inline __host__ __device__ cxtype -cxmake( const fptype& r, const fptype& i ) -{ - return cxtype( r, i ); // thrust::complex constructor -} + inline __host__ __device__ cxtype + cxmake( const fptype& r, const fptype& i ) + { + return cxtype( r, i ); // thrust::complex constructor + } -inline __host__ __device__ fptype -cxreal( const cxtype& c ) -{ - return c.real(); // thrust::complex::real() -} + inline __host__ __device__ fptype + cxreal( const cxtype& c ) + { + return c.real(); // thrust::complex::real() + } -inline __host__ __device__ fptype -cximag( const cxtype& c ) -{ - return c.imag(); // thrust::complex::imag() -} + inline __host__ __device__ fptype + cximag( const cxtype& c ) + { + return c.imag(); // thrust::complex::imag() + } -inline __host__ __device__ cxtype -cxconj( const cxtype& c ) -{ - return conj( c ); // conj( thrust::complex ) -} + inline __host__ __device__ cxtype + cxconj( const cxtype& c ) + { + return conj( c ); // conj( thrust::complex ) + } -inline __host__ __device__ const cxtype& -cxmake( const cxtype& c ) -{ - return c; -} + inline __host__ __device__ const cxtype& + cxmake( const cxtype& c ) + { + return c; + } #endif // #if defined __CUDACC__ and defined MGONGPU_CUCXTYPE_THRUST -//========================================================================== + //========================================================================== #if defined __CUDACC__ and defined MGONGPU_CUCXTYPE_CUCOMPLEX // cuda + cucomplex -//------------------------------ -// CUDA - using cuComplex -//------------------------------ + //------------------------------ + // CUDA - using cuComplex + //------------------------------ #if defined MGONGPU_FPTYPE_DOUBLE // cuda + cucomplex + double -//+++++++++++++++++++++++++ -// cuDoubleComplex ONLY -//+++++++++++++++++++++++++ + //+++++++++++++++++++++++++ + // cuDoubleComplex ONLY + //+++++++++++++++++++++++++ -inline __host__ __device__ cxtype -cxmake( const fptype& r, const fptype& i ) -{ - return make_cuDoubleComplex( r, i ); -} + inline __host__ __device__ cxtype + cxmake( const fptype& r, const fptype& i ) + { + return make_cuDoubleComplex( r, i ); + } -inline __host__ __device__ fptype -cxreal( const cxtype& c ) -{ - return cuCreal( c ); // returns by value -} + inline __host__ __device__ fptype + cxreal( const cxtype& c ) + { + return cuCreal( c ); // returns by value + } -inline __host__ __device__ fptype -cximag( const cxtype& c ) -{ - return cuCimag( c ); // returns by value -} + inline __host__ __device__ fptype + cximag( const cxtype& c ) + { + return cuCimag( c ); // returns by value + } -inline __host__ __device__ cxtype -operator+( const cxtype& a, const cxtype& b ) -{ - return cuCadd( a, b ); -} + inline __host__ __device__ cxtype + operator+( const cxtype& a, const cxtype& b ) + { + return cuCadd( a, b ); + } -inline __host__ __device__ cxtype& -operator+=( cxtype& a, const cxtype& b ) -{ - a = cuCadd( a, b ); - return a; -} + inline __host__ __device__ cxtype& + operator+=( cxtype& a, const cxtype& b ) + { + a = cuCadd( a, b ); + return a; + } -inline __host__ __device__ cxtype -operator-( const cxtype& a, const cxtype& b ) -{ - return cuCsub( a, b ); -} + inline __host__ __device__ cxtype + operator-( const cxtype& a, const cxtype& b ) + { + return cuCsub( a, b ); + } -inline __host__ __device__ cxtype& -operator-=( cxtype& a, const cxtype& b ) -{ - a = cuCsub( a, b ); - return a; -} + inline __host__ __device__ cxtype& + operator-=( cxtype& a, const cxtype& b ) + { + a = cuCsub( a, b ); + return a; + } -inline __host__ __device__ cxtype -operator*( const cxtype& a, const cxtype& b ) -{ - return cuCmul( a, b ); -} + inline __host__ __device__ cxtype + operator*( const cxtype& a, const cxtype& b ) + { + return cuCmul( a, b ); + } -inline __host__ __device__ cxtype -operator/( const cxtype& a, const cxtype& b ) -{ - return cuCdiv( a, b ); -} + inline __host__ __device__ cxtype + operator/( const cxtype& a, const cxtype& b ) + { + return cuCdiv( a, b ); + } #elif defined MGONGPU_FPTYPE_FLOAT // cuda + cucomplex + float -//+++++++++++++++++++++++++ -// cuFloatComplex ONLY -//+++++++++++++++++++++++++ + //+++++++++++++++++++++++++ + // cuFloatComplex ONLY + //+++++++++++++++++++++++++ -inline __host__ __device__ cxtype -cxmake( const fptype& r, const fptype& i ) -{ - return make_cuFloatComplex( r, i ); -} + inline __host__ __device__ cxtype + cxmake( const fptype& r, const fptype& i ) + { + return make_cuFloatComplex( r, i ); + } -inline __host__ __device__ fptype -cxreal( const cxtype& c ) -{ - return cuCrealf( c ); // returns by value -} + inline __host__ __device__ fptype + cxreal( const cxtype& c ) + { + return cuCrealf( c ); // returns by value + } -inline __host__ __device__ fptype -cximag( const cxtype& c ) -{ - return cuCimagf( c ); // returns by value -} + inline __host__ __device__ fptype + cximag( const cxtype& c ) + { + return cuCimagf( c ); // returns by value + } -inline __host__ __device__ cxtype -operator+( const cxtype& a, const cxtype& b ) -{ - return cuCaddf( a, b ); -} + inline __host__ __device__ cxtype + operator+( const cxtype& a, const cxtype& b ) + { + return cuCaddf( a, b ); + } -inline __host__ __device__ cxtype& -operator+=( cxtype& a, const cxtype& b ) -{ - a = cuCaddf( a, b ); - return a; -} + inline __host__ __device__ cxtype& + operator+=( cxtype& a, const cxtype& b ) + { + a = cuCaddf( a, b ); + return a; + } -inline __host__ __device__ cxtype -operator-( const cxtype& a, const cxtype& b ) -{ - return cuCsubf( a, b ); -} + inline __host__ __device__ cxtype + operator-( const cxtype& a, const cxtype& b ) + { + return cuCsubf( a, b ); + } -inline __host__ __device__ cxtype& -operator-=( cxtype& a, const cxtype& b ) -{ - a = cuCsubf( a, b ); - return a; -} + inline __host__ __device__ cxtype& + operator-=( cxtype& a, const cxtype& b ) + { + a = cuCsubf( a, b ); + return a; + } -inline __host__ __device__ cxtype -operator*( const cxtype& a, const cxtype& b ) -{ - return cuCmulf( a, b ); -} + inline __host__ __device__ cxtype + operator*( const cxtype& a, const cxtype& b ) + { + return cuCmulf( a, b ); + } -inline __host__ __device__ cxtype -operator/( const cxtype& a, const cxtype& b ) -{ - return cuCdivf( a, b ); -} + inline __host__ __device__ cxtype + operator/( const cxtype& a, const cxtype& b ) + { + return cuCdivf( a, b ); + } -inline __host__ cxtype // NOT __device__ -cxmake( const std::complex& c ) // std::complex to cucomplex (cast double-to-float) -{ - return cxmake( (fptype)c.real(), (fptype)c.imag() ); -} + inline __host__ cxtype // NOT __device__ + cxmake( const std::complex& c ) // std::complex to cucomplex (cast double-to-float) + { + return cxmake( (fptype)c.real(), (fptype)c.imag() ); + } #endif -//+++++++++++++++++++++++++ -// cuDoubleComplex OR -// cuFloatComplex -//+++++++++++++++++++++++++ + //+++++++++++++++++++++++++ + // cuDoubleComplex OR + // cuFloatComplex + //+++++++++++++++++++++++++ -inline __host__ __device__ cxtype -operator+( const cxtype a ) -{ - return a; -} + inline __host__ __device__ cxtype + operator+( const cxtype a ) + { + return a; + } -inline __host__ __device__ cxtype -operator-( const cxtype& a ) -{ - return cxmake( -cxreal( a ), -cximag( a ) ); -} + inline __host__ __device__ cxtype + operator-( const cxtype& a ) + { + return cxmake( -cxreal( a ), -cximag( a ) ); + } -inline __host__ __device__ cxtype -operator+( const fptype& a, const cxtype& b ) -{ - return cxmake( a, 0 ) + b; -} + inline __host__ __device__ cxtype + operator+( const fptype& a, const cxtype& b ) + { + return cxmake( a, 0 ) + b; + } -inline __host__ __device__ cxtype -operator-( const fptype& a, const cxtype& b ) -{ - return cxmake( a, 0 ) - b; -} + inline __host__ __device__ cxtype + operator-( const fptype& a, const cxtype& b ) + { + return cxmake( a, 0 ) - b; + } -inline __host__ __device__ cxtype -operator*( const fptype& a, const cxtype& b ) -{ - return cxmake( a, 0 ) * b; -} + inline __host__ __device__ cxtype + operator*( const fptype& a, const cxtype& b ) + { + return cxmake( a, 0 ) * b; + } -inline __host__ __device__ cxtype -operator/( const fptype& a, const cxtype& b ) -{ - return cxmake( a, 0 ) / b; -} + inline __host__ __device__ cxtype + operator/( const fptype& a, const cxtype& b ) + { + return cxmake( a, 0 ) / b; + } -inline __host__ __device__ cxtype -operator+( const cxtype& a, const fptype& b ) -{ - return a + cxmake( b, 0 ); -} + inline __host__ __device__ cxtype + operator+( const cxtype& a, const fptype& b ) + { + return a + cxmake( b, 0 ); + } -inline __host__ __device__ cxtype -operator-( const cxtype& a, const fptype& b ) -{ - return a - cxmake( b, 0 ); -} + inline __host__ __device__ cxtype + operator-( const cxtype& a, const fptype& b ) + { + return a - cxmake( b, 0 ); + } -inline __host__ __device__ cxtype -operator*( const cxtype& a, const fptype& b ) -{ - return a * cxmake( b, 0 ); -} + inline __host__ __device__ cxtype + operator*( const cxtype& a, const fptype& b ) + { + return a * cxmake( b, 0 ); + } -inline __host__ __device__ cxtype -operator/( const cxtype& a, const fptype& b ) -{ - return a / cxmake( b, 0 ); -} + inline __host__ __device__ cxtype + operator/( const cxtype& a, const fptype& b ) + { + return a / cxmake( b, 0 ); + } -inline __host__ __device__ cxtype -cxconj( const cxtype& c ) -{ - return cxmake( cxreal( c ), -cximag( c ) ); -} + inline __host__ __device__ cxtype + cxconj( const cxtype& c ) + { + return cxmake( cxreal( c ), -cximag( c ) ); + } -inline __host__ cxtype // NOT __device__ -cxmake( const std::complex& c ) // std::complex to cucomplex (float-to-float or double-to-double) -{ - return cxmake( c.real(), c.imag() ); -} + inline __host__ cxtype // NOT __device__ + cxmake( const std::complex& c ) // std::complex to cucomplex (float-to-float or double-to-double) + { + return cxmake( c.real(), c.imag() ); + } #endif // #if defined __CUDACC__ and defined MGONGPU_CUCXTYPE_CUCOMPLEX -//========================================================================== + //========================================================================== #if not defined __CUDACC__ and defined MGONGPU_CPPCXTYPE_STDCOMPLEX // c++ + stdcomplex -//------------------------------ -// C++ - using std::complex -//------------------------------ + //------------------------------ + // C++ - using std::complex + //------------------------------ -inline cxtype -cxmake( const fptype& r, const fptype& i ) -{ - return cxtype( r, i ); // std::complex constructor -} + inline cxtype + cxmake( const fptype& r, const fptype& i ) + { + return cxtype( r, i ); // std::complex constructor + } -inline fptype -cxreal( const cxtype& c ) -{ - return c.real(); // std::complex::real() -} + inline fptype + cxreal( const cxtype& c ) + { + return c.real(); // std::complex::real() + } -inline fptype -cximag( const cxtype& c ) -{ - return c.imag(); // std::complex::imag() -} + inline fptype + cximag( const cxtype& c ) + { + return c.imag(); // std::complex::imag() + } -inline cxtype -cxconj( const cxtype& c ) -{ - return conj( c ); // conj( std::complex ) -} + inline cxtype + cxconj( const cxtype& c ) + { + return conj( c ); // conj( std::complex ) + } -inline const cxtype& -cxmake( const cxtype& c ) // std::complex to std::complex (float-to-float or double-to-double) -{ - return c; -} + inline const cxtype& + cxmake( const cxtype& c ) // std::complex to std::complex (float-to-float or double-to-double) + { + return c; + } #if defined MGONGPU_FPTYPE_FLOAT -inline cxtype -cxmake( const std::complex& c ) // std::complex to std::complex (cast double-to-float) -{ - return cxmake( (fptype)c.real(), (fptype)c.imag() ); -} + inline cxtype + cxmake( const std::complex& c ) // std::complex to std::complex (cast double-to-float) + { + return cxmake( (fptype)c.real(), (fptype)c.imag() ); + } #endif #endif // #if not defined __CUDACC__ and defined MGONGPU_CPPCXTYPE_STDCOMPLEX -//========================================================================== + //========================================================================== -inline __host__ __device__ const cxtype -cxmake( const cxsmpl& c ) // cxsmpl to cxtype (float-to-float or float-to-double) -{ - return cxmake( c.real(), c.imag() ); -} + inline __host__ __device__ const cxtype + cxmake( const cxsmpl& c ) // cxsmpl to cxtype (float-to-float or float-to-double) + { + return cxmake( c.real(), c.imag() ); + } -inline __host__ __device__ const cxtype -cxmake( const cxsmpl& c ) // cxsmpl to cxtype (double-to-float or double-to-double) -{ - return cxmake( c.real(), c.imag() ); -} + inline __host__ __device__ const cxtype + cxmake( const cxsmpl& c ) // cxsmpl to cxtype (double-to-float or double-to-double) + { + return cxmake( c.real(), c.imag() ); + } + +} // end namespace mg5amcGpu/mg5amcCpu //========================================================================== // COMPLEX TYPES: WRAPPER OVER RI FLOATING POINT PAIR (cxtype_ref) //========================================================================== -namespace mgOnGpu /* clang-format off */ +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { // The cxtype_ref class (a non-const reference to two fp variables) was originally designed for cxtype_v::operator[] // It used to be included in the code only when MGONGPU_HAS_CPPCXTYPEV_BRK (originally MGONGPU_HAS_CPPCXTYPE_REF) is defined @@ -615,23 +642,30 @@ namespace mgOnGpu /* clang-format off */ cxtype_ref() = delete; cxtype_ref( const cxtype_ref& ) = delete; cxtype_ref( cxtype_ref&& ) = default; // copy refs - __host__ __device__ cxtype_ref( fptype& r, fptype& i ) : m_preal( &r ), m_pimag( &i ) {} // copy refs + __host__ __device__ cxtype_ref( fptype& r, fptype& i ) + : m_preal( &r ), m_pimag( &i ) {} // copy refs cxtype_ref& operator=( const cxtype_ref& ) = delete; //__host__ __device__ cxtype_ref& operator=( cxtype_ref&& c ) {...} // REMOVED! Should copy refs or copy values? No longer needed in cxternary - __host__ __device__ cxtype_ref& operator=( const cxtype& c ) { *m_preal = cxreal( c ); *m_pimag = cximag( c ); return *this; } // copy values + __host__ __device__ cxtype_ref& operator=( const cxtype& c ) + { + *m_preal = cxreal( c ); + *m_pimag = cximag( c ); + return *this; + } // copy values __host__ __device__ operator cxtype() const { return cxmake( *m_preal, *m_pimag ); } private: fptype *m_preal, *m_pimag; // RI }; -} /* clang-format on */ -// Printout to stream for user defined types -inline __host__ __device__ std::ostream& -operator<<( std::ostream& out, const mgOnGpu::cxtype_ref& c ) -{ - out << (cxtype)c; - return out; -} + // Printout to stream for user defined types + inline __host__ __device__ std::ostream& + operator<<( std::ostream& out, const cxtype_ref& c ) + { + out << (cxtype)c; + return out; + } + +} // end namespace mg5amcGpu/mg5amcCpu //========================================================================== diff --git a/epochX/cudacpp/heft_gg_h.sa/src/mgOnGpuFptypes.h b/epochX/cudacpp/heft_gg_h.sa/src/mgOnGpuFptypes.h index a1cde16a67..905c97d700 100644 --- a/epochX/cudacpp/heft_gg_h.sa/src/mgOnGpuFptypes.h +++ b/epochX/cudacpp/heft_gg_h.sa/src/mgOnGpuFptypes.h @@ -11,82 +11,91 @@ #include #include -//========================================================================== - -#ifdef __CUDACC__ // cuda - -//------------------------------ -// Floating point types - Cuda -//------------------------------ - -/* -inline __host__ __device__ fptype -fpmax( const fptype& a, const fptype& b ) -{ - return max( a, b ); -} - -inline __host__ __device__ fptype -fpmin( const fptype& a, const fptype& b ) -{ - return min( a, b ); -} -*/ - -inline __host__ __device__ const fptype& -fpmax( const fptype& a, const fptype& b ) +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { - return ( ( b < a ) ? a : b ); -} + //========================================================================== -inline __host__ __device__ const fptype& -fpmin( const fptype& a, const fptype& b ) -{ - return ( ( a < b ) ? a : b ); -} +#ifdef __CUDACC__ // cuda -inline __host__ __device__ fptype -fpsqrt( const fptype& f ) -{ + //------------------------------ + // Floating point types - Cuda + //------------------------------ + + /* + inline __host__ __device__ fptype + fpmax( const fptype& a, const fptype& b ) + { + return max( a, b ); + } + + inline __host__ __device__ fptype + fpmin( const fptype& a, const fptype& b ) + { + return min( a, b ); + } + */ + + inline __host__ __device__ const fptype& + fpmax( const fptype& a, const fptype& b ) + { + return ( ( b < a ) ? a : b ); + } + + inline __host__ __device__ const fptype& + fpmin( const fptype& a, const fptype& b ) + { + return ( ( a < b ) ? a : b ); + } + + inline __host__ __device__ fptype + fpsqrt( const fptype& f ) + { #if defined MGONGPU_FPTYPE_FLOAT - // See https://docs.nvidia.com/cuda/cuda-math-api/group__CUDA__MATH__SINGLE.html - return sqrtf( f ); + // See https://docs.nvidia.com/cuda/cuda-math-api/group__CUDA__MATH__SINGLE.html + return sqrtf( f ); #else - // See https://docs.nvidia.com/cuda/cuda-math-api/group__CUDA__MATH__DOUBLE.html - return sqrt( f ); + // See https://docs.nvidia.com/cuda/cuda-math-api/group__CUDA__MATH__DOUBLE.html + return sqrt( f ); #endif -} + } #endif // #ifdef __CUDACC__ -//========================================================================== + //========================================================================== #ifndef __CUDACC__ -//------------------------------ -// Floating point types - C++ -//------------------------------ + //------------------------------ + // Floating point types - C++ + //------------------------------ -inline const fptype& -fpmax( const fptype& a, const fptype& b ) -{ - return std::max( a, b ); -} + inline const fptype& + fpmax( const fptype& a, const fptype& b ) + { + return std::max( a, b ); + } -inline const fptype& -fpmin( const fptype& a, const fptype& b ) -{ - return std::min( a, b ); -} + inline const fptype& + fpmin( const fptype& a, const fptype& b ) + { + return std::min( a, b ); + } -inline fptype -fpsqrt( const fptype& f ) -{ - return std::sqrt( f ); -} + inline fptype + fpsqrt( const fptype& f ) + { + return std::sqrt( f ); + } #endif // #ifndef __CUDACC__ -//========================================================================== + //========================================================================== + +} // end namespace mg5amcGpu/mg5amcCpu #endif // MGONGPUFPTYPES_H diff --git a/epochX/cudacpp/heft_gg_h.sa/src/mgOnGpuVectors.h b/epochX/cudacpp/heft_gg_h.sa/src/mgOnGpuVectors.h index 9d3e82b1e3..0d3892d026 100644 --- a/epochX/cudacpp/heft_gg_h.sa/src/mgOnGpuVectors.h +++ b/epochX/cudacpp/heft_gg_h.sa/src/mgOnGpuVectors.h @@ -31,7 +31,12 @@ //#undef MGONGPU_HAS_CPPCXTYPEV_BRK // gcc test (very slightly slower? issue #172) #endif -namespace mgOnGpu /* clang-format off */ +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif { #ifdef MGONGPU_CPPSIMD @@ -72,22 +77,40 @@ namespace mgOnGpu /* clang-format off */ public: // Array initialization: zero-out as "{0}" (C and C++) or as "{}" (C++ only) // See https://en.cppreference.com/w/c/language/array_initialization#Notes - cxtype_v() : m_real{ 0 }, m_imag{ 0 } {} // RRRR=0000 IIII=0000 + cxtype_v() + : m_real{ 0 }, m_imag{ 0 } {} // RRRR=0000 IIII=0000 cxtype_v( const cxtype_v& ) = default; cxtype_v( cxtype_v&& ) = default; - cxtype_v( const fptype_v& r, const fptype_v& i ) : m_real( r ), m_imag( i ) {} - cxtype_v( const fptype_v& r ) : m_real( r ), m_imag{ 0 } {} // IIII=0000 + cxtype_v( const fptype_v& r, const fptype_v& i ) + : m_real( r ), m_imag( i ) {} + cxtype_v( const fptype_v& r ) + : m_real( r ), m_imag{ 0 } {} // IIII=0000 + cxtype_v( const fptype& r ) + : m_real( fptype_v{} + r ), m_imag{ 0 } {} // IIII=0000 cxtype_v& operator=( const cxtype_v& ) = default; cxtype_v& operator=( cxtype_v&& ) = default; - cxtype_v& operator+=( const cxtype_v& c ) { m_real += c.real(); m_imag += c.imag(); return *this; } - cxtype_v& operator-=( const cxtype_v& c ) { m_real -= c.real(); m_imag -= c.imag(); return *this; } + cxtype_v& operator+=( const cxtype_v& c ) + { + m_real += c.real(); + m_imag += c.imag(); + return *this; + } + cxtype_v& operator-=( const cxtype_v& c ) + { + m_real -= c.real(); + m_imag -= c.imag(); + return *this; + } #ifdef MGONGPU_HAS_CPPCXTYPEV_BRK // NB: THIS IS THE FUNDAMENTAL DIFFERENCE BETWEEN MGONGPU_HAS_CPPCXTYPEV_BRK DEFINED AND NOT DEFINED // NB: the alternative "clang" implementation is simpler: it simply does not have any bracket operator[] // NB: ** do NOT implement operator[] to return a value: it does not fail the build (why?) and gives unexpected results! ** cxtype_ref operator[]( size_t i ) const { return cxtype_ref( m_real[i], m_imag[i] ); } #endif - const fptype_v& real() const { return m_real; } + const fptype_v& real() const + { + return m_real; + } const fptype_v& imag() const { return m_imag; } private: fptype_v m_real, m_imag; // RRRRIIII @@ -98,7 +121,7 @@ namespace mgOnGpu /* clang-format off */ #if defined MGONGPU_FPTYPE_DOUBLE typedef long int bool_v __attribute__( ( ext_vector_type( neppV ) ) ); // bbbb #elif defined MGONGPU_FPTYPE_FLOAT - typedef int bool_v __attribute__( ( ext_vector_type( neppV ) ) ); // bbbb + typedef int bool_v __attribute__( ( ext_vector_type( neppV ) ) ); // bbbb #endif #else // gcc #if defined MGONGPU_FPTYPE_DOUBLE @@ -113,532 +136,551 @@ namespace mgOnGpu /* clang-format off */ const int neppV = 1; #endif // #ifdef MGONGPU_CPPSIMD - -} /* clang-format on */ +} //-------------------------------------------------------------------------- -// Expose typedefs outside the namespace -using mgOnGpu::neppV; -#ifdef MGONGPU_CPPSIMD -using mgOnGpu::fptype_v; -using mgOnGpu::fptype2_v; -using mgOnGpu::cxtype_v; -using mgOnGpu::bool_v; -#endif +// DANGEROUS! this was mixing different cxtype definitions for CPU and GPU builds (see #318 and #725) +// DO NOT expose typedefs outside the namespace +//using mgOnGpu::neppV; +//#ifdef MGONGPU_CPPSIMD +//using mgOnGpu::fptype_v; +//using mgOnGpu::fptype2_v; +//using mgOnGpu::cxtype_v; +//using mgOnGpu::bool_v; +//#endif -//-------------------------------------------------------------------------- +//========================================================================== +// NB: namespaces mg5amcGpu and mg5amcCpu includes types which are defined in different ways for CPU and GPU builds (see #318 and #725) +#ifdef __CUDACC__ +namespace mg5amcGpu +#else +namespace mg5amcCpu +#endif +{ #ifndef __CUDACC__ -// Printout to stream for user defined types + // Printout to stream for user defined types #ifndef MGONGPU_CPPCXTYPE_CXSMPL // operator<< for cxsmpl has already been defined! -inline std::ostream& -operator<<( std::ostream& out, const cxtype& c ) -{ - out << "[" << cxreal( c ) << "," << cximag( c ) << "]"; - //out << cxreal(c) << "+i" << cximag(c); - return out; -} + inline std::ostream& + operator<<( std::ostream& out, const cxtype& c ) + { + out << "[" << cxreal( c ) << "," << cximag( c ) << "]"; + //out << cxreal(c) << "+i" << cximag(c); + return out; + } #endif -/* + /* #ifdef MGONGPU_CPPSIMD -inline std::ostream& -operator<<( std::ostream& out, const bool_v& v ) -{ - out << "{ " << v[0]; - for ( int i=1; i